@vellumai/web 0.11.1 → 0.11.2-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 (565) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/{AnimatePresence-D23js3-M.js → AnimatePresence-CHo6D7IH.js} +1 -1
  3. package/dist/assets/{BundleConfirmPage-C1-BZKI9.js → BundleConfirmPage-j6ko1Z2E.js} +1 -1
  4. package/dist/assets/{a2a-invite-CfhpXDTT.js → a2a-invite-Bld7VHkJ.js} +1 -1
  5. package/dist/assets/{about-page-Dtg-I99x.js → about-page-BBS2ZLwu.js} +1 -1
  6. package/dist/assets/access-CVnesk0m.js +1 -0
  7. package/dist/assets/{account-page-DP2HVinz.js → account-page-mMG1nL1O.js} +1 -1
  8. package/dist/assets/{account-shell-BxZ339N3.js → account-shell-BmH96-Ie.js} +1 -1
  9. package/dist/assets/{acp-run-actions-BGbBYETY.js → acp-run-actions-zSUs8U3N.js} +1 -1
  10. package/dist/assets/acp-run-detail-panel-SN6NIuW5.js +5 -0
  11. package/dist/assets/{acp-run-store-CmGaPJm1.js → acp-run-store-DdzY8U9Y.js} +1 -1
  12. package/dist/assets/activity-steps-panel-bduSS8_d.js +1 -0
  13. package/dist/assets/{add-credential-modal-DQZ43BJU.js → add-credential-modal-4zzd0MPK.js} +1 -1
  14. package/dist/assets/add-credits-modal-DNYP2NMD.js +1 -0
  15. package/dist/assets/ai-page-BMqECtJX.js +1 -0
  16. package/dist/assets/android-consumption-only-D3L1Nc41.js +1 -0
  17. package/dist/assets/{animated-avatar-CDeJNhwm.js → animated-avatar-B0vCEKkY.js} +1 -1
  18. package/dist/assets/{api-C8TlQNEU.js → api-CGsj1Pig.js} +1 -1
  19. package/dist/assets/{api-key-screen-CoLZh8vw.js → api-key-screen-tqtaQUVf.js} +1 -1
  20. package/dist/assets/api-pN-AgY8Q.js +1 -0
  21. package/dist/assets/{app-card-DgDV-yMd.js → app-card-BJigGog3.js} +1 -1
  22. package/dist/assets/{app-info-Bdfw54u1.js → app-info-BDq_9VB8.js} +1 -1
  23. package/dist/assets/archive-BQ3zdIPv.js +1 -0
  24. package/dist/assets/{archive-redirect-page-CWJIEUlH.js → archive-redirect-page-Cxcg7zGt.js} +1 -1
  25. package/dist/assets/{assistant-feature-flag-store-CMUNSAPL.js → assistant-feature-flag-store-BvLDPeej.js} +1 -1
  26. package/dist/assets/assistant-identity-store-B51BX78j.js +1 -0
  27. package/dist/assets/{assistant-status-panel-Bt_19-BI.js → assistant-status-panel-DyjhJvK6.js} +1 -1
  28. package/dist/assets/auth-store-C9aYqB9U.js +2 -0
  29. package/dist/assets/{avatar-random-IysJ0Bdt.js → avatar-random-BR8w4F35.js} +1 -1
  30. package/dist/assets/{avatar-renderer-3EVhZ7TB.js → avatar-renderer-TpNgmnU1.js} +1 -1
  31. package/dist/assets/background-task-actions-DmocXKSr.js +1 -0
  32. package/dist/assets/{background-task-detail-panel-DqXuwo9q.js → background-task-detail-panel-DCtBOnvF.js} +1 -1
  33. package/dist/assets/{background-task-store-CN04oS2z.js → background-task-store-DpOSZFT8.js} +1 -1
  34. package/dist/assets/billing-page-TF_LgX6K.js +3 -0
  35. package/dist/assets/{billing-redirect-page-CiHoDQHE.js → billing-redirect-page-QFlD3jYy.js} +1 -1
  36. package/dist/assets/{bookmarks-page-Bk04EUIg.js → bookmarks-page-Brvj5Jf6.js} +1 -1
  37. package/dist/assets/browser-CcdNg0HN.js +2 -0
  38. package/dist/assets/build-state-9uUe0jN5.js +1 -0
  39. package/dist/assets/{capture-error-FWzaVb8P.js → capture-error-CqtAGHQu.js} +1 -1
  40. package/dist/assets/channels-page-route-8vJJE2LN.js +9 -0
  41. package/dist/assets/{chat-avatar-CIF_o6y5.js → chat-avatar-B5fx9Xm3.js} +1 -1
  42. package/dist/assets/{chat-layout-slots-store-C325hn1X.js → chat-layout-slots-store-DP8MgnXi.js} +1 -1
  43. package/dist/assets/chat-markdown-message-B7qvlO44.js +1 -0
  44. package/dist/assets/checkbox-PU47Djxg.js +1 -0
  45. package/dist/assets/checkout-continuation-CYDyrqci.js +1 -0
  46. package/dist/assets/checkout-page-MpIPAAgf.js +1 -0
  47. package/dist/assets/checkout-return-target-BStfEab4.js +1 -0
  48. package/dist/assets/{client-feature-flag-store-Bg5XEI2b.js → client-feature-flag-store-Cw39NfCq.js} +1 -1
  49. package/dist/assets/{client-identity-bdtPpHZK.js → client-identity-BZBfwdGQ.js} +1 -1
  50. package/dist/assets/{command-palette-B3TVIQUH.js → command-palette-Bd1GTwZQ.js} +1 -1
  51. package/dist/assets/command-palette-window-page-CoweYsZl.js +1 -0
  52. package/dist/assets/{community-page-BZmxfsXK.js → community-page-BWMwSeEZ.js} +1 -1
  53. package/dist/assets/{confirm-dialog-DZX6LhLy.js → confirm-dialog-j9o2h3xs.js} +1 -1
  54. package/dist/assets/{connect-page-D_I1YM62.js → connect-page-BxSNhZ8N.js} +1 -1
  55. package/dist/assets/{consent-controls-CiKmEzBn.js → consent-controls-Bs63UL5k.js} +1 -1
  56. package/dist/assets/consent-logPJwKV.js +1 -0
  57. package/dist/assets/{contacts-gateway-C628mrY_.js → contacts-gateway-DRzp5PC6.js} +1 -1
  58. package/dist/assets/{contacts-page-route--hTzWT8X.js → contacts-page-route-BOpVOsYK.js} +1 -1
  59. package/dist/assets/{conversation-cache-BzPdBPXN.js → conversation-cache-D1AJdwZd.js} +1 -1
  60. package/dist/assets/{conversation-list-fetchers-BZnx9EMN.js → conversation-list-fetchers-C6W8PkvR.js} +1 -1
  61. package/dist/assets/conversation-navigation-Bf3cDRKh.js +1 -0
  62. package/dist/assets/{conversation-queries-3taor2DZ.js → conversation-queries-BBj4FfQn.js} +1 -1
  63. package/dist/assets/{conversation-store-C0tvFESx.js → conversation-store-CTMy9QPV.js} +1 -1
  64. package/dist/assets/{copy-to-clipboard-DaTa8Tbi.js → copy-to-clipboard-DgY-nZpm.js} +1 -1
  65. package/dist/assets/{credential-entry-page-BCAYmsDK.js → credential-entry-page-CreYYbwf.js} +1 -1
  66. package/dist/assets/credentials-page-DBLT8nUI.js +1 -0
  67. package/dist/assets/csv-preview-cEf_PW-P.js +4 -0
  68. package/dist/assets/{danger-zone-redirect-page-BcdEHbAX.js → danger-zone-redirect-page-CIt8Y6Rf.js} +1 -1
  69. package/dist/assets/debug-page-DfPZPo6D.js +4 -0
  70. package/dist/assets/{deploy-dialogs-CpUMrpHq.js → deploy-dialogs-CuaO05wL.js} +1 -1
  71. package/dist/assets/{deploy-store-BJ-njgv-.js → deploy-store-BDIOP-i9.js} +1 -1
  72. package/dist/assets/{detail-card-D-5EWmAS.js → detail-card-BElAV1cp.js} +1 -1
  73. package/dist/assets/{detail-drawer-BglFkWVa.js → detail-drawer-Cd_EQJkJ.js} +1 -1
  74. package/dist/assets/detail-panel-stop-button-Bhew_kym.js +1 -0
  75. package/dist/assets/{detail-shell-D9L3L7AM.js → detail-shell-BjqibXNX.js} +1 -1
  76. package/dist/assets/developer-page-DwBmhm09.js +1 -0
  77. package/dist/assets/{device-settings-DXp9L4iB.js → device-settings-CUIsZfaf.js} +1 -1
  78. package/dist/assets/{devices-redirect-page-BNpxDctf.js → devices-redirect-page-DePzNUvG.js} +1 -1
  79. package/dist/assets/{diagnostics-CLHyv7Xw.js → diagnostics-DykDXmF3.js} +1 -1
  80. package/dist/assets/{dictation-overlay-w1YHEfFR.js → dictation-overlay-CnPWVnXc.js} +1 -1
  81. package/dist/assets/{dictation-overlay-page-DUWJ13of.js → dictation-overlay-page-C9yp3YUN.js} +1 -1
  82. package/dist/assets/{dist-BswnB-bR.js → dist-BDdp8zqz.js} +1 -1
  83. package/dist/assets/{dist-CQN0ZAOZ.js → dist-C68qFSny.js} +1 -1
  84. package/dist/assets/doctor-handoff-store-CvOwsVRo.js +1 -0
  85. package/dist/assets/document-viewer-container-iB63ww7P.js +2 -0
  86. package/dist/assets/document-viewer-page-CA1ParJ6.js +1 -0
  87. package/dist/assets/{domains-OaR_FpOR.js → domains-Cwi5sL0m.js} +1 -1
  88. package/dist/assets/{dropdown-DswWMJhz.js → dropdown-B3FHWc_n.js} +1 -1
  89. package/dist/assets/{edge-swipe-arbiter-store-D9XJTxJJ.js → edge-swipe-arbiter-store-BwC23ScO.js} +1 -1
  90. package/dist/assets/effective-timezone-BX46fWmk.js +1 -0
  91. package/dist/assets/{emails-page-Bqr8Buvt.js → emails-page-Bo0Bwem2.js} +1 -1
  92. package/dist/assets/{environment-store-Bbx4f6SQ.js → environment-store-DxX3xxt2.js} +1 -1
  93. package/dist/assets/esm-754moU0G.js +2 -0
  94. package/dist/assets/esm-Bek1ps3d.js +2 -0
  95. package/dist/assets/esm-CMkpCv1_.js +2 -0
  96. package/dist/assets/esm-ChJ8E5v0.js +1 -0
  97. package/dist/assets/esm-DjeyDwcY.js +2 -0
  98. package/dist/assets/esm-Jw5qNk7q.js +2 -0
  99. package/dist/assets/esm-S7iZcDlp.js +1 -0
  100. package/dist/assets/esm-Tsd0irpJ.js +2 -0
  101. package/dist/assets/esm-UxVM8v-Z.js +2 -0
  102. package/dist/assets/{feature-flag-catalog-CWHnoWvT.js → feature-flag-catalog-CpyCubJW.js} +1 -1
  103. package/dist/assets/file-DOePafLU.js +1 -0
  104. package/dist/assets/file-editor-BfJR0ScX.js +1 -0
  105. package/dist/assets/file-markdown-DnVLY_b_.js +2 -0
  106. package/dist/assets/{first-run-scope-7wWjJ4Tn.js → first-run-scope-CPJpXaWU.js} +1 -1
  107. package/dist/assets/{funnel-events-RT_kdQHK.js → funnel-events-B9hFLlxs.js} +1 -1
  108. package/dist/assets/general-page-BXeIQDGi.js +1 -0
  109. package/dist/assets/{get-memory-stats-CthVfpul.js → get-memory-stats-BnRGtUPT.js} +1 -1
  110. package/dist/assets/{haptics-rJpeBta-.js → haptics-C4p_Rjba.js} +2 -2
  111. package/dist/assets/hatching-screen-BUpSlvBy.js +1 -0
  112. package/dist/assets/home-page-route-BPht0PNp.js +1 -0
  113. package/dist/assets/hosting-screen-DxtyBx0I.js +1 -0
  114. package/dist/assets/identity-BplXBnQ5.js +1 -0
  115. package/dist/assets/{identity-page-route-CvxG-nhn.js → identity-page-route-DgmrXhhV.js} +2 -2
  116. package/dist/assets/index-C7_04HXM.css +2 -0
  117. package/dist/assets/index-CPeIfypI.js +11 -0
  118. package/dist/assets/{ingest-BbV11WbG.js → ingest-BzFSv_f8.js} +1 -1
  119. package/dist/assets/{inspect-page-D_9E5ham.js → inspect-page-C8aLJOd6.js} +4 -4
  120. package/dist/assets/{installed-plugins-query-6u0jUM-L.js → installed-plugins-query-3ACToZeY.js} +1 -1
  121. package/dist/assets/{integration-icon-tiuVoy54.js → integration-icon-B1G4FQT2.js} +1 -1
  122. package/dist/assets/integrations-page-Bp2Q81Qt.js +1 -0
  123. package/dist/assets/{intelligence-layout-CVzq_bDm.js → intelligence-layout-BRC0qkZ7.js} +1 -1
  124. package/dist/assets/{invalidate-memory-queries-BPL6t0Cu.js → invalidate-memory-queries-DonPN3eH.js} +1 -1
  125. package/dist/assets/{invalidate-plugin-queries-QmmXCyiN.js → invalidate-plugin-queries-B0OpJSUW.js} +1 -1
  126. package/dist/assets/{keyboard-shortcuts-redirect-page-D_Rf5W7f.js → keyboard-shortcuts-redirect-page-DTabmI62.js} +1 -1
  127. package/dist/assets/latest-assistant-text-CwHBWP6s.js +24 -0
  128. package/dist/assets/{library-detail-page-CKWN2cc7.js → library-detail-page-gC4yIWnV.js} +1 -1
  129. package/dist/assets/{library-page-CuNX2WgS.js → library-page-B10gnbXU.js} +1 -1
  130. package/dist/assets/{paperclip-DVE0scjU.js → lightbulb-NdZMkb6Y.js} +1 -1
  131. package/dist/assets/{local-mode-9zpgPNoq.js → local-mode-DHueA-BJ.js} +2 -2
  132. package/dist/assets/local-runtime-upgrade-CnY-6TiF.js +1 -0
  133. package/dist/assets/local-settings-Bx7FsNo5.js +1 -0
  134. package/dist/assets/{login-flow-llpmkEjN.js → login-flow-CQhvCbQQ.js} +1 -1
  135. package/dist/assets/{login-page-SG4TPVDu.js → login-page-CbWRbJDE.js} +1 -1
  136. package/dist/assets/{logout-page-CBGk_cSN.js → logout-page-DCyzi0V6.js} +1 -1
  137. package/dist/assets/{logs-layout-B4EPBuaC.js → logs-layout-CYkqau4S.js} +1 -1
  138. package/dist/assets/media-preview-D9t2Q84i.js +1 -0
  139. package/dist/assets/memory-page-route-j_3602nh.js +6 -0
  140. package/dist/assets/{memory-router-playground-page-ftfbkFhf.js → memory-router-playground-page-x5X662qi.js} +1 -1
  141. package/dist/assets/{menu-CKZtG-s_.js → menu-wESJw6y3.js} +1 -1
  142. package/dist/assets/message-content-B6_GZQl9.js +1 -0
  143. package/dist/assets/message-files-panel-C8JokH6e.js +1 -0
  144. package/dist/assets/messages-Dyp1xUqz.js +13 -0
  145. package/dist/assets/{metric-card-B-Tt9p-1.js → metric-card-DpZFp8-q.js} +1 -1
  146. package/dist/assets/mobile-sidebar-drawer-BwCIAm23.js +1 -0
  147. package/dist/assets/{modal-DwsThLGg.js → modal-xr_vw1ZO.js} +1 -1
  148. package/dist/assets/mutation-error-YLfUU5XL.js +1 -0
  149. package/dist/assets/native-anchor-D1Sy2PbD.js +1 -0
  150. package/dist/assets/native-biometric-DetUqtjl.js +6 -0
  151. package/dist/assets/native-file-B71h3csB.js +2 -0
  152. package/dist/assets/{navigation-resolver-Lxhf-tbn.js → navigation-resolver-CzEY-5nE.js} +1 -1
  153. package/dist/assets/{not-found-p1VhZpMs.js → not-found-Bh7ZsdAo.js} +1 -1
  154. package/dist/assets/notice-Dslxs3H6.js +1 -0
  155. package/dist/assets/notifications-BTG4cTbF.js +1 -0
  156. package/dist/assets/notifications-page-BA2BW5y6.js +1 -0
  157. package/dist/assets/{oauth-complete-page-KSpFlPD6.js → oauth-complete-page-3xYlafpb.js} +1 -1
  158. package/dist/assets/{oauth-connection-utils-D9CTptlA.js → oauth-connection-utils-BrGz4Zc5.js} +1 -1
  159. package/dist/assets/{oauth-popup-complete-page-C5cG_z3A.js → oauth-popup-complete-page-BtwDCi5P.js} +1 -1
  160. package/dist/assets/{onboarding-layout-K7X9fV8B.js → onboarding-layout-iPzXbZk1.js} +1 -1
  161. package/dist/assets/onboarding-store-BiTZenvP.js +1 -0
  162. package/dist/assets/open-workspace-file-CivxJWcw.js +2 -0
  163. package/dist/assets/{page-empty-state-B0da-Sm9.js → page-empty-state-D-y7eP1V.js} +1 -1
  164. package/dist/assets/{page-shell-CN7ioeP_.js → page-shell-ZNQR4ZTn.js} +1 -1
  165. package/dist/assets/pairing-page-P5ghxF0M.js +1 -0
  166. package/dist/assets/{panel-item-DGs4s9r-.js → panel-item-CJh95P_q.js} +1 -1
  167. package/dist/assets/paperclip--f908Kg3.js +1 -0
  168. package/dist/assets/{password-reset-page-Bq3ehgjW.js → password-reset-page-SsfAE_J-.js} +1 -1
  169. package/dist/assets/pdf-file-preview-Dj8vmmw-.js +1 -0
  170. package/dist/assets/pdf-preview-pscVmtvX.js +2 -0
  171. package/dist/assets/{personality-page-DeZSBQ6W.js → personality-page-Bz_rNBSs.js} +1 -1
  172. package/dist/assets/plans-page-BfyCgy38.js +1 -0
  173. package/dist/assets/platform-detection-AHYibqOx.js +1 -0
  174. package/dist/assets/{platform-login-notice-D-yQLWUo.js → platform-login-notice-DFmjUE9q.js} +1 -1
  175. package/dist/assets/platform-loopback-page-BGF_H8f_.js +1 -0
  176. package/dist/assets/{plugin-detail-page-DF9vmm23.js → plugin-detail-page-UUM9vxvV.js} +1 -1
  177. package/dist/assets/{plugins-page-BDZiCqWZ.js → plugins-page-Dae3rghA.js} +1 -1
  178. package/dist/assets/plugins-surface-C_pFzsVo.js +1 -0
  179. package/dist/assets/{popover-BFL-uOLh.js → popover-B-3isZCV.js} +1 -1
  180. package/dist/assets/{prefs-B6fvTCOn.js → prefs-CfRaGUUx.js} +1 -1
  181. package/dist/assets/preview-error-BrLE2D3A.js +1 -0
  182. package/dist/assets/preview-skeleton-Biw3dosM.js +1 -0
  183. package/dist/assets/privacy-page-BhEGh78C.js +1 -0
  184. package/dist/assets/{privacy-screen-D2EBZTX8.js → privacy-screen-CWVCI_KU.js} +1 -1
  185. package/dist/assets/provider-callback-page-DP5cKqPE.js +1 -0
  186. package/dist/assets/{provider-key-w3CzmGtq.js → provider-key-CgC-RLmR.js} +1 -1
  187. package/dist/assets/{provider-signup-page-D5mOXHww.js → provider-signup-page-BjiiJWS_.js} +1 -1
  188. package/dist/assets/{provisioning-targets-CT4slXZJ.js → provisioning-targets-Cah9jNBe.js} +1 -1
  189. package/dist/assets/{quick-input-page-COgnUnT_.js → quick-input-page-BYf7UWY4.js} +1 -1
  190. package/dist/assets/radio-card-nav-C_pSc4PD.js +1 -0
  191. package/dist/assets/{react-query.gen-BVTEjHsw.js → react-query.gen-BtYBixpk.js} +1 -1
  192. package/dist/assets/react-query.gen-C7om930f.js +1 -0
  193. package/dist/assets/{remote-gateway-session-CgxYHgOD.js → remote-gateway-session-C8pRadB2.js} +1 -1
  194. package/dist/assets/{research-facts-BcW4fghT.js → research-facts-BUfgocIh.js} +1 -1
  195. package/dist/assets/{research-mock-page-BFm8-rLU.js → research-mock-page-CGkqkXHp.js} +1 -1
  196. package/dist/assets/{research-onboarding-persistence-BN6g1lF7.js → research-onboarding-persistence-DwV372yy.js} +1 -1
  197. package/dist/assets/research-onboarding-route-DZF-B2Rk.js +50 -0
  198. package/dist/assets/{research-results-view-BBf2iyCA.js → research-results-view-BFZFPpev.js} +1 -1
  199. package/dist/assets/{resolved-assistants-store-8HQDfxZh.js → resolved-assistants-store-C6oDdTxB.js} +1 -1
  200. package/dist/assets/retire-confirm-dialog-8xlq4bkx.js +1 -0
  201. package/dist/assets/{review-terms-screen-zzdu4AQi.js → review-terms-screen-C5BAI3Rx.js} +1 -1
  202. package/dist/assets/{routes-GmNvdtLW.js → routes-DrfnNoYS.js} +1 -1
  203. package/dist/assets/routes-uGHUgv4F.js +23 -0
  204. package/dist/assets/runtime-upgrade-banner-DjFuJawk.js +2 -0
  205. package/dist/assets/{sandbox-bridge-CjHMJYTZ.js → sandbox-bridge-B5H4c27m.js} +84 -2
  206. package/dist/assets/{schedules-B6KivAAT.js → schedules-_ofAwdnr.js} +1 -1
  207. package/dist/assets/{schedules-page-BQSGUmn5.js → schedules-page-3ZE1nR6I.js} +1 -1
  208. package/dist/assets/{sdk.gen-BySz4QYj.js → sdk.gen-CjtCuSlS.js} +1 -1
  209. package/dist/assets/{sdk.gen-DVW3wpbx.js → sdk.gen-ies09CqM.js} +1 -1
  210. package/dist/assets/{security-redirect-page-T1J6IoOb.js → security-redirect-page-B9T_2mcB.js} +1 -1
  211. package/dist/assets/select-assistant-screen-D4WHHv61.js +1 -0
  212. package/dist/assets/semver-Bfq1LtyW.js +1 -0
  213. package/dist/assets/{setting-row-DEyL7IUP.js → setting-row-C4jX7c_4.js} +1 -1
  214. package/dist/assets/{settings-divider-Bf5WJ9ve.js → settings-divider-BkLQFMlW.js} +1 -1
  215. package/dist/assets/settings-layout-BmOglXDq.js +1 -0
  216. package/dist/assets/settings-navigation-CyH-twYD.js +1 -0
  217. package/dist/assets/share-feedback-modal-Rwuho_1S.js +2 -0
  218. package/dist/assets/{sidebar-tree-D6fHs4GK.js → sidebar-tree-Dxx5qLMQ.js} +1 -1
  219. package/dist/assets/{signup-page-DqfStkXZ.js → signup-page-BAEo45pt.js} +1 -1
  220. package/dist/assets/{signup-shell-CMXUBUal.js → signup-shell-Dwuv81sx.js} +1 -1
  221. package/dist/assets/site-favicon-CDH0mg6Q.js +1 -0
  222. package/dist/assets/{skill-detail-page-SvM2JKKY.js → skill-detail-page-DswXTTyb.js} +1 -1
  223. package/dist/assets/{skill-detail-panel-Cpl1Z7V3.js → skill-detail-panel-DhQFBAFF.js} +1 -1
  224. package/dist/assets/{skills-BL4RgwAd.js → skills-CbF2uKXV.js} +1 -1
  225. package/dist/assets/{skills-page-BYtAFZzb.js → skills-page-CNYM3Qsj.js} +1 -1
  226. package/dist/assets/{slack-setup-wizard-dVkbEE6P.js → slack-setup-wizard-DPzdheN0.js} +1 -1
  227. package/dist/assets/{sound-manager-DUo0lHGZ.js → sound-manager-Bv6Sc7Ut.js} +1 -1
  228. package/dist/assets/{sounds-page-CfeiEoJP.js → sounds-page-Bpeq0MQn.js} +1 -1
  229. package/dist/assets/src-Da9g8qsW.js +293 -0
  230. package/dist/assets/{start-screen-CqbeEmEE.js → start-screen-CSxaBn88.js} +1 -1
  231. package/dist/assets/subagent-detail-panel-CidisBCf.js +4 -0
  232. package/dist/assets/{subagent-store-DyKwOIj_.js → subagent-store-DibRR9Ij.js} +2 -2
  233. package/dist/assets/{superpowers-page-DltosgGe.js → superpowers-page-BouZK3P4.js} +1 -1
  234. package/dist/assets/{system-events-page-Cg0uMSMs.js → system-events-page-BrvTNeiN.js} +1 -1
  235. package/dist/assets/{system-events-redirect-page-C44suO-c.js → system-events-redirect-page-CKNhBiUK.js} +1 -1
  236. package/dist/assets/{tag-D8NAGb0r.js → tag-gOOX7fbA.js} +1 -1
  237. package/dist/assets/text-preview-DwgKh8PW.js +1 -0
  238. package/dist/assets/{theme-preferences-LQuLaIA6.js → theme-preferences-B2X7Xgir.js} +1 -1
  239. package/dist/assets/{theme-stage-page-CnKpq5QT.js → theme-stage-page-LIhQbqRQ.js} +1 -1
  240. package/dist/assets/{threshold-presets-B-gOdjC4.js → threshold-presets-B-RqvhUM.js} +1 -1
  241. package/dist/assets/{tiptap-document-editor-D-lwPWrV.js → tiptap-document-editor-BvGaiGeN.js} +1 -1
  242. package/dist/assets/{toast-DR7D7Uma.js → toast-BtFgiPe3.js} +1 -1
  243. package/dist/assets/tool-detail-panel-B2CIRZkB.js +2 -0
  244. package/dist/assets/transcript-message-body-shared-BfKwS5qD.js +1 -0
  245. package/dist/assets/{trust-rules-api-iUGCiDDM.js → trust-rules-api-Dbyz25hE.js} +1 -1
  246. package/dist/assets/typed-storage-OO7emDaU.js +1 -0
  247. package/dist/assets/{upgrade-cancel-page-D8is9-gw.js → upgrade-cancel-page-DjeqfvTa.js} +1 -1
  248. package/dist/assets/{upgrade-success-page-3W1VuHqB.js → upgrade-success-page-B4TCn340.js} +1 -1
  249. package/dist/assets/{usage-redirect-page-C6qXe-4h.js → usage-redirect-page-Cd58Bed0.js} +1 -1
  250. package/dist/assets/{use-active-assistant-id-CjvzlL4t.js → use-active-assistant-id-JLsAfn3e.js} +1 -1
  251. package/dist/assets/{use-app-theme-BLGjiz96.js → use-app-theme-yiZ38i4_.js} +1 -1
  252. package/dist/assets/{use-assistant-avatar--4s_vvar.js → use-assistant-avatar-Bjqx8JUy.js} +1 -1
  253. package/dist/assets/{use-assistant-capability-BaZVGuCu.js → use-assistant-capability-CnI3VItU.js} +1 -1
  254. package/dist/assets/use-assistant-identity-details-D-7oN9gr.js +1 -0
  255. package/dist/assets/use-attachment-preview-CQjpDfsc.js +2 -0
  256. package/dist/assets/use-attachment-squares-8Hx-p8ls.js +1 -0
  257. package/dist/assets/{use-avatar-accent-var-BaftJG7F.js → use-avatar-accent-var-BafXGBXW.js} +1 -1
  258. package/dist/assets/{use-bookmarks-B6Y60m9F.js → use-bookmarks-DO9wmU-2.js} +1 -1
  259. package/dist/assets/{use-bundled-avatar-components-IQw2k8-g.js → use-bundled-avatar-components-BcyasJwu.js} +2 -2
  260. package/dist/assets/{use-bus-subscription-CyRPH_gr.js → use-bus-subscription-DiCq1_ki.js} +1 -1
  261. package/dist/assets/use-checkout-dismiss-refresh-CV_H4uEB.js +1 -0
  262. package/dist/assets/use-command-palette-sections-BshFMe0w.js +1 -0
  263. package/dist/assets/{use-discord-nudge-CRU-lEHV.js → use-discord-nudge-DED9TaIm.js} +1 -1
  264. package/dist/assets/{use-edge-swipe-Gst62FjL.js → use-edge-swipe-CRkrRNLg.js} +1 -1
  265. package/dist/assets/{use-edge-swipe-back-D12vbvly.js → use-edge-swipe-back-Dk2xXjh4.js} +1 -1
  266. package/dist/assets/use-edit-app-Bd1eXXFq.js +1 -0
  267. package/dist/assets/{use-effective-timezone-Bx9QaO25.js → use-effective-timezone-BM5B7KHp.js} +1 -1
  268. package/dist/assets/use-invite-link-dialog-TNGI1l4g.js +1 -0
  269. package/dist/assets/{use-ios-app-nudge-CrBEIZ8w.js → use-ios-app-nudge-CadXZRJC.js} +1 -1
  270. package/dist/assets/use-is-org-ready-3vHDbj4G.js +1 -0
  271. package/dist/assets/use-local-file-info-D2-ycwyJ.js +1 -0
  272. package/dist/assets/{use-onboarding-login-X8pB53cV.js → use-onboarding-login-CiQyxJLM.js} +1 -1
  273. package/dist/assets/{use-platform-assistant-id-CIoqMsyh.js → use-platform-assistant-id-DgrNmSy2.js} +1 -1
  274. package/dist/assets/{use-platform-gate-CqEOGZtI.js → use-platform-gate-C5bNA5Pn.js} +1 -1
  275. package/dist/assets/{use-reduced-motion-bjjt6x6d.js → use-reduced-motion-fR0m_opJ.js} +1 -1
  276. package/dist/assets/{use-return-to-short-circuit-B295pgoV.js → use-return-to-short-circuit-g88hMnN8.js} +1 -1
  277. package/dist/assets/{use-save-twilio-credentials-CCp1iqBf.js → use-save-twilio-credentials-yqA7lnzq.js} +1 -1
  278. package/dist/assets/{use-skill-actions-BLHTDn21.js → use-skill-actions-B_tz3CI7.js} +1 -1
  279. package/dist/assets/{use-skill-detail-files-BVBb8uoK.js → use-skill-detail-files-DdWFIu5-.js} +1 -1
  280. package/dist/assets/use-sticky-profiles-D5TVHOgw.js +1 -0
  281. package/dist/assets/use-subagent-card-data-bjGydvhR.js +1 -0
  282. package/dist/assets/{use-supports-bookmarks-DbG5HZ6P.js → use-supports-bookmarks-DwTpI8uM.js} +1 -1
  283. package/dist/assets/use-supports-credentials-settings-3jGHR8fw.js +1 -0
  284. package/dist/assets/{use-swipe-engine-RAFE-Hrf.js → use-swipe-engine-Bkqjs1Zk.js} +1 -1
  285. package/dist/assets/use-transcript-message-by-id-BgyP3Ki5.js +1 -0
  286. package/dist/assets/use-transcript-messages-C2uwkjKL.js +3 -0
  287. package/dist/assets/{utils-Ction0uF.js → utils-3IBGVjNS.js} +1 -1
  288. package/dist/assets/utils-DtVy-_pB.js +1 -0
  289. package/dist/assets/viewer-store-DbIS4l8d.js +1 -0
  290. package/dist/assets/{voice-list-CCLkiF-c.js → voice-list-D26Lzbpv.js} +1 -1
  291. package/dist/assets/{voice-page-Bvgm-7L8.js → voice-page-CQ2Vp8p4.js} +1 -1
  292. package/dist/assets/{voice-providers-note-g4IBSHFm.js → voice-providers-note-Ck7hNTfp.js} +1 -1
  293. package/dist/assets/{weather-forecast-display-Bg_OjY6Q.js → weather-forecast-display-DrJp8zrP.js} +1 -1
  294. package/dist/assets/web-CDfRXQwd.js +1 -0
  295. package/dist/assets/web-Ccq6YqQk.js +1 -0
  296. package/dist/assets/web-Cw8N9FBf.js +1 -0
  297. package/dist/assets/web-Cwkvk3kH.js +1 -0
  298. package/dist/assets/web-KS3MoLo7.js +1 -0
  299. package/dist/assets/web-PODqCw-i.js +1 -0
  300. package/dist/assets/web-aKLBqXiN.js +1 -0
  301. package/dist/assets/web-vlqDFmAp.js +1 -0
  302. package/dist/assets/welcome-screen-CdsjDVfi.js +1 -0
  303. package/dist/assets/{workflow-detail-panel-BNzNSNAT.js → workflow-detail-panel-CsRhUrbM.js} +1 -1
  304. package/dist/assets/{workflow-store-Cbd3x6KN.js → workflow-store-zCcRcvi8.js} +1 -1
  305. package/dist/assets/workspace-page-CFuSxp5s.js +1 -0
  306. package/dist/assets/workspace-path-links-vDBIljq_.js +1 -0
  307. package/dist/assets/workspace-tree-query-Dfkrp_rV.js +1 -0
  308. package/dist/index.html +282 -271
  309. package/package.json +1 -1
  310. package/dist/assets/access-BJiXpwUJ.js +0 -1
  311. package/dist/assets/acp-run-detail-panel-C_M19m8P.js +0 -5
  312. package/dist/assets/activity-steps-panel-BsmwWzP1.js +0 -1
  313. package/dist/assets/add-credits-modal-3Rsd1ZeS.js +0 -1
  314. package/dist/assets/ai-page-B9mJkV_p.js +0 -1
  315. package/dist/assets/api-DDKNgE8n.js +0 -1
  316. package/dist/assets/assistant-identity-store-BczULg2T.js +0 -1
  317. package/dist/assets/auth-store-BwKMFgpK.js +0 -2
  318. package/dist/assets/background-task-actions-DX0pUvY9.js +0 -1
  319. package/dist/assets/billing-page-CED96NEp.js +0 -3
  320. package/dist/assets/browser-Bses4IN3.js +0 -2
  321. package/dist/assets/build-state-DPMhQpLB.js +0 -1
  322. package/dist/assets/channels-page-route-BooWFQMp.js +0 -9
  323. package/dist/assets/chat-markdown-message-f4cLJfax.js +0 -2
  324. package/dist/assets/checkbox-BZTUJtxM.js +0 -1
  325. package/dist/assets/checkout-continuation-CcuqWhhp.js +0 -1
  326. package/dist/assets/checkout-page-BateK-Nf.js +0 -1
  327. package/dist/assets/checkout-return-target-Cib3fzdY.js +0 -1
  328. package/dist/assets/command-palette-window-page-Bp9WplfA.js +0 -1
  329. package/dist/assets/consent-s5g0Gmb2.js +0 -1
  330. package/dist/assets/conversation-navigation-D63NJmBl.js +0 -1
  331. package/dist/assets/credentials-page-CYBmOQhl.js +0 -1
  332. package/dist/assets/debug-page-CHuby9yt.js +0 -4
  333. package/dist/assets/detail-panel-stop-button-DgKaA6yz.js +0 -1
  334. package/dist/assets/developer-page-CUJqTs2_.js +0 -1
  335. package/dist/assets/dist-BKxs5XmY.js +0 -1
  336. package/dist/assets/doctor-handoff-store-DWNbuW3P.js +0 -1
  337. package/dist/assets/document-viewer-container-Doc7G7NK.js +0 -2
  338. package/dist/assets/document-viewer-page-_jndOS7P.js +0 -1
  339. package/dist/assets/effective-timezone-CnKC3vj0.js +0 -1
  340. package/dist/assets/esm-B2M2kM_8.js +0 -2
  341. package/dist/assets/esm-BgRAHqeR.js +0 -2
  342. package/dist/assets/esm-CXX8rcv3.js +0 -2
  343. package/dist/assets/esm-Chh8mHmh.js +0 -1
  344. package/dist/assets/esm-Cl2UNC_o.js +0 -2
  345. package/dist/assets/esm-ClO8yhvi.js +0 -2
  346. package/dist/assets/esm-DOATKqE3.js +0 -2
  347. package/dist/assets/esm-UUuqyyp5.js +0 -1
  348. package/dist/assets/file-editor-DcH2Os5o.js +0 -1
  349. package/dist/assets/file-markdown-DBLxtb0M.js +0 -2
  350. package/dist/assets/general-page-DoAKoumC.js +0 -1
  351. package/dist/assets/handle-logout-BTgnSSUm.js +0 -1
  352. package/dist/assets/hatching-screen-Q59qvj8_.js +0 -1
  353. package/dist/assets/home-page-route-TPR5p3LW.js +0 -1
  354. package/dist/assets/hosting-screen-DRrmkmoO.js +0 -1
  355. package/dist/assets/identity-Cb4xS1Kk.js +0 -1
  356. package/dist/assets/index-Ch9eoFem.js +0 -11
  357. package/dist/assets/index-D8Xiv4z3.css +0 -2
  358. package/dist/assets/integrations-page-CnjTLjpf.js +0 -1
  359. package/dist/assets/latest-assistant-text-DPm0HIWu.js +0 -24
  360. package/dist/assets/list-row-BYrmPIC4.js +0 -1
  361. package/dist/assets/local-runtime-upgrade-JwVgn034.js +0 -1
  362. package/dist/assets/local-settings-C-dW2vkq.js +0 -1
  363. package/dist/assets/memory-page-route-C8nIc6Mb.js +0 -6
  364. package/dist/assets/messages-BzNSqJQx.js +0 -13
  365. package/dist/assets/mobile-sidebar-drawer-BnxfQaDB.js +0 -1
  366. package/dist/assets/mutation-error-CXV1BKlB.js +0 -1
  367. package/dist/assets/native-anchor-BiuEQHcy.js +0 -1
  368. package/dist/assets/native-biometric-B96mgKGP.js +0 -6
  369. package/dist/assets/native-file-BvwfoU6A.js +0 -2
  370. package/dist/assets/notice-DCp7WO3L.js +0 -1
  371. package/dist/assets/notifications-page-BAYd0t-0.js +0 -1
  372. package/dist/assets/onboarding-store-OVV4wyh5.js +0 -1
  373. package/dist/assets/open-workspace-file-DucrTmt3.js +0 -2
  374. package/dist/assets/pairing-page-BRPUYbzJ.js +0 -1
  375. package/dist/assets/plans-page-BxebYucs.js +0 -1
  376. package/dist/assets/platform-detection-a_IB3-0w.js +0 -1
  377. package/dist/assets/platform-loopback-page-DESnWJYO.js +0 -1
  378. package/dist/assets/plugins-surface-C4peMNec.js +0 -1
  379. package/dist/assets/privacy-page-sZhcJ3uB.js +0 -1
  380. package/dist/assets/provider-callback-page-BZlfsT4J.js +0 -1
  381. package/dist/assets/react-query.gen-0mspArBl.js +0 -1
  382. package/dist/assets/research-onboarding-route-ZOwRvfGs.js +0 -50
  383. package/dist/assets/retire-confirm-dialog-m6ORm5Pq.js +0 -1
  384. package/dist/assets/risk-uPLh5W5z.js +0 -3
  385. package/dist/assets/routes-BP00Ewbf.js +0 -23
  386. package/dist/assets/runtime-upgrade-banner-yZYtWxoJ.js +0 -2
  387. package/dist/assets/select-assistant-screen-B5N_TUcG.js +0 -1
  388. package/dist/assets/session-corner-action-vhb51vd3.js +0 -1
  389. package/dist/assets/settings-layout-BtT0532M.js +0 -1
  390. package/dist/assets/settings-navigation-BDpUXrOI.js +0 -1
  391. package/dist/assets/share-feedback-modal-DO6_oaZg.js +0 -2
  392. package/dist/assets/site-favicon-Dh1OTgFr.js +0 -1
  393. package/dist/assets/src-BAS7a2RG.js +0 -293
  394. package/dist/assets/subagent-detail-panel-jp0r0ZFk.js +0 -4
  395. package/dist/assets/tool-detail-panel-CXcjfDGo.js +0 -2
  396. package/dist/assets/transcript-message-body-shared-woOFNF_q.js +0 -1
  397. package/dist/assets/typed-storage-C-R1po3l.js +0 -1
  398. package/dist/assets/use-assistant-identity-details-C99kNyQf.js +0 -1
  399. package/dist/assets/use-checkout-dismiss-refresh-BkIzNk6B.js +0 -1
  400. package/dist/assets/use-command-palette-sections-CAmbyguu.js +0 -1
  401. package/dist/assets/use-edit-app-BF9YK7AV.js +0 -1
  402. package/dist/assets/use-invite-link-dialog-DN2IHVZE.js +0 -1
  403. package/dist/assets/use-is-org-ready-zouQ5CN4.js +0 -1
  404. package/dist/assets/use-sticky-profiles-bdq2XW7H.js +0 -1
  405. package/dist/assets/use-subagent-card-data-B8JTa5rQ.js +0 -1
  406. package/dist/assets/use-supports-credentials-settings-CgWfA2eQ.js +0 -1
  407. package/dist/assets/utils-C-YNXdkX.js +0 -1
  408. package/dist/assets/viewer-store--hIQLNm5.js +0 -1
  409. package/dist/assets/web-BEtLqoWJ.js +0 -1
  410. package/dist/assets/web-C8NouSk8.js +0 -1
  411. package/dist/assets/web-Cv3bLSQ5.js +0 -1
  412. package/dist/assets/web-D82T2zyn.js +0 -1
  413. package/dist/assets/web-RKFLO25W.js +0 -1
  414. package/dist/assets/web-XmQWRS1M.js +0 -1
  415. package/dist/assets/web-ZsA8B5nq.js +0 -1
  416. package/dist/assets/web-s9eE6ZyC.js +0 -1
  417. package/dist/assets/welcome-screen-Cga6YuF9.js +0 -1
  418. package/dist/assets/workspace-page-BFJO59Ch.js +0 -1
  419. package/dist/assets/workspace-tree-query-CqcOBNKw.js +0 -1
  420. /package/dist/assets/{Combination-C7TWRLS7.js → Combination-CWTYp834.js} +0 -0
  421. /package/dist/assets/{api-errors-SZKDzMLE.js → api-errors-BRGPPSWw.js} +0 -0
  422. /package/dist/assets/{app-types-o5Qc-xkK.js → app-types-BGJfNjSJ.js} +0 -0
  423. /package/dist/assets/{apple-logo-Cg-KnqW2.js → apple-logo-BOBq3-Sn.js} +0 -0
  424. /package/dist/assets/{arrow-down-to-line-Bh_5sIPp.js → arrow-down-to-line-DMGjBlMw.js} +0 -0
  425. /package/dist/assets/{arrow-left-C2ylPLHq.js → arrow-left-W84B6oJL.js} +0 -0
  426. /package/dist/assets/{arrow-right-B-jRJNWP.js → arrow-right-ChqGeAaW.js} +0 -0
  427. /package/dist/assets/{arrow-up-BNd4Gpy7.js → arrow-up-CWzHzcyU.js} +0 -0
  428. /package/dist/assets/{avatar-bundled-components-CTd294ra.js → avatar-bundled-components-BvKt7I7O.js} +0 -0
  429. /package/dist/assets/{avatar-subagent-BpXST4nO.js → avatar-subagent-tkmKhEWI.js} +0 -0
  430. /package/dist/assets/{avatar-svg-compositor-DclcUb1M.js → avatar-svg-compositor-axSwKFvf.js} +0 -0
  431. /package/dist/assets/{avatar-tone-4L7foPzW.js → avatar-tone-D99t9DAP.js} +0 -0
  432. /package/dist/assets/{ban-B__z3LwE.js → ban-BKp90l-0.js} +0 -0
  433. /package/dist/assets/{bell-Ct4a9v6Y.js → bell-2SnK9BVD.js} +0 -0
  434. /package/dist/assets/{brain-BIzJCPA6.js → brain-CN4zzNgU.js} +0 -0
  435. /package/dist/assets/{browser-timezone-DGz-HvxU.js → browser-timezone-Br-HawKV.js} +0 -0
  436. /package/dist/assets/{bug-VUcJFHwN.js → bug-DdmWJIkz.js} +0 -0
  437. /package/dist/assets/{build.umd-oXvZOmIf.js → build.umd-CaLt9YHe.js} +0 -0
  438. /package/dist/assets/{by-tool-use-id-index-DcsiqOhc.js → by-tool-use-id-index-CUFuQqHz.js} +0 -0
  439. /package/dist/assets/{calendar-RYdAv74D.js → calendar-qrPKlf1H.js} +0 -0
  440. /package/dist/assets/{chart-column-BLKW3sjY.js → chart-column-k8S2UYq8.js} +0 -0
  441. /package/dist/assets/{chat-BIJEFb5u.js → chat-Dy2BC2i1.js} +0 -0
  442. /package/dist/assets/{check-sC49_hjU.js → check-Dt2rQhdg.js} +0 -0
  443. /package/dist/assets/{chevron-down-B5A-0g8A.js → chevron-down-BNidRDh1.js} +0 -0
  444. /package/dist/assets/{chevron-left-CytMddTB.js → chevron-left-CrxnPze-.js} +0 -0
  445. /package/dist/assets/{chevron-right-HU6H84S0.js → chevron-right-CANAtgGn.js} +0 -0
  446. /package/dist/assets/{chevron-up-2Qqarz0p.js → chevron-up-DofScvyy.js} +0 -0
  447. /package/dist/assets/{circle-alert-DVCpoZrc.js → circle-alert-DQMH8VJH.js} +0 -0
  448. /package/dist/assets/{circle-check-CjGnAahM.js → circle-check-DvrCdroD.js} +0 -0
  449. /package/dist/assets/{circle-check-big-DSsDH5_6.js → circle-check-big-DtV6IJuh.js} +0 -0
  450. /package/dist/assets/{circle-minus-DNfBAj4g.js → circle-minus-BBDKV6k6.js} +0 -0
  451. /package/dist/assets/{circle-x-17dBxF06.js → circle-x-DTjJzoQl.js} +0 -0
  452. /package/dist/assets/{client.gen-DHOmbzD9.js → client.gen-Dq2brHDV.js} +0 -0
  453. /package/dist/assets/{clipboard-copy-JwIceweN.js → clipboard-copy-BYpgEh2O.js} +0 -0
  454. /package/dist/assets/{clock-BYTc0Ds9.js → clock-DeynsyYL.js} +0 -0
  455. /package/dist/assets/{cloud-off-BCBGTmt0.js → cloud-off-BFACQbO0.js} +0 -0
  456. /package/dist/assets/{cloud-RlApB3rO.js → cloud-q4J30bVb.js} +0 -0
  457. /package/dist/assets/{code-qafFA0_-.js → code-D6SOwRrI.js} +0 -0
  458. /package/dist/assets/{coins-Hrmb9tmj.js → coins-CcTuNVlN.js} +0 -0
  459. /package/dist/assets/{conversation-selection-B954w311.js → conversation-selection-CJs3Fnse.js} +0 -0
  460. /package/dist/assets/{create-selectors-B-P03-8K.js → create-selectors-BfxF8Sx_.js} +0 -0
  461. /package/dist/assets/{definitions-CL6e7nYF.js → definitions-BfdxiZ6b.js} +0 -0
  462. /package/dist/assets/{definitions-BD-g60mP.js → definitions-Rm_PEX9e.js} +0 -0
  463. /package/dist/assets/{dices-DcuIF52A.js → dices-C3diFTyP.js} +0 -0
  464. /package/dist/assets/{dist-CKLJHt4Z.js → dist-EanpjdWC.js} +0 -0
  465. /package/dist/assets/{dist-CFSiz2ry2.js → dist-an0Z446E.js} +0 -0
  466. /package/dist/assets/{download-CywcQLB2.js → download-Cnb8zZrK.js} +0 -0
  467. /package/dist/assets/{edit-chat-session-Beky6Vpg.js → edit-chat-session-DVzLQLWl.js} +0 -0
  468. /package/dist/assets/{ellipsis-BRJI5_P1.js → ellipsis-C5fQnusC.js} +0 -0
  469. /package/dist/assets/{ellipsis-vertical-nov0xhhF.js → ellipsis-vertical-qQRDY5dB.js} +0 -0
  470. /package/dist/assets/{emoji-catalog-data-5pJaL_3N.js → emoji-catalog-data-Cjooln6g.js} +0 -0
  471. /package/dist/assets/{event-bus-CvZyJQ26.js → event-bus-CbDg1VDt.js} +0 -0
  472. /package/dist/assets/{external-link-CAce-RVu.js → external-link-GPGZ1LGU.js} +0 -0
  473. /package/dist/assets/{external-urls-97O9n0lb.js → external-urls-BL9qY0s8.js} +0 -0
  474. /package/dist/assets/{eye-DTyDWiqu.js → eye-B_jBDDRn.js} +0 -0
  475. /package/dist/assets/{eye-bbox-DE8r0Vt3.js → eye-bbox-CRs175_n.js} +0 -0
  476. /package/dist/assets/{eye-off-fuOP4Lij.js → eye-off-DQ4xakzN.js} +0 -0
  477. /package/dist/assets/{file-code-DD3K2kve.js → file-code-CrtJR2ax.js} +0 -0
  478. /package/dist/assets/{file-plus-Dq2xo7Ic.js → file-plus-DjC7wnGp.js} +0 -0
  479. /package/dist/assets/{file-text-BCsUYVEF.js → file-text-CwGsMgaa.js} +0 -0
  480. /package/dist/assets/{folder-g06qTW2O.js → folder-_l8GIyQp.js} +0 -0
  481. /package/dist/assets/{folder-open-CAb0DLYq.js → folder-open-BTlvhHNO.js} +0 -0
  482. /package/dist/assets/{format-date-CKGQir4m.js → format-date-CQUMvfqf.js} +0 -0
  483. /package/dist/assets/{format-file-size-Eu-Z0CxL.js → format-file-size-C5XdzvvA.js} +0 -0
  484. /package/dist/assets/{globe-BDvXuPkw.js → globe-CdLn4IX7.js} +0 -0
  485. /package/dist/assets/{hard-drive-CncrDZ7V.js → hard-drive-sI2ZzmqM.js} +0 -0
  486. /package/dist/assets/{hard-navigate-V2EFapkk.js → hard-navigate-BYoBFmE4.js} +0 -0
  487. /package/dist/assets/{heart-2AHOP0tB.js → heart-DFD4eqW-.js} +0 -0
  488. /package/dist/assets/{inbox-DXYIwUrn.js → inbox-OC3STytq.js} +0 -0
  489. /package/dist/assets/{info-CYiVdnQV.js → info-DkhVkzmK.js} +0 -0
  490. /package/dist/assets/{input-C-GkeWCw.js → input-tXUFa7Eo.js} +0 -0
  491. /package/dist/assets/{is-electron-7N7iyz1y.js → is-electron-DIlIrdJX.js} +0 -0
  492. /package/dist/assets/{key-round-CSc3w5ka.js → key-round-BFkuiQGH.js} +0 -0
  493. /package/dist/assets/{laptop-ByoaxLxg.js → laptop-BGOychmC.js} +0 -0
  494. /package/dist/assets/{layout-grid-PPpVK0nJ.js → layout-grid-Ct4RT2Ea.js} +0 -0
  495. /package/dist/assets/{link-2-BMNZFfWH.js → link-2-DhyrrFaE.js} +0 -0
  496. /package/dist/assets/{link-CowyzCIZ.js → link-DOobzBVg.js} +0 -0
  497. /package/dist/assets/{link-click-BEiniqcG.js → link-click-aVk_YdAp.js} +0 -0
  498. /package/dist/assets/{list-CDyb1CGV.js → list-D2LnQ7lS.js} +0 -0
  499. /package/dist/assets/{loader-circle-BzJ2kz3F.js → loader-circle-DWWXcfTQ.js} +0 -0
  500. /package/dist/assets/{log-in-Bhye1kwc.js → log-in-D4nsqRbG.js} +0 -0
  501. /package/dist/assets/{log-out-BLE632qu.js → log-out-CF9mMMsz.js} +0 -0
  502. /package/dist/assets/{machine-sizes-D0oAlF9f.js → machine-sizes-B9nt_h-U.js} +0 -0
  503. /package/dist/assets/{mail-DABv3_Ue.js → mail-DyUf40pu.js} +0 -0
  504. /package/dist/assets/{message-circle-gk_DFUIg.js → message-circle-ByXBaIaq.js} +0 -0
  505. /package/dist/assets/{message-square-zCNXaHYX.js → message-square-CHUvAEY9.js} +0 -0
  506. /package/dist/assets/{message-square-text-asdoy3SW.js → message-square-text-CN_v46So.js} +0 -0
  507. /package/dist/assets/{mic-DZrWtAAu.js → mic-BZZo0R22.js} +0 -0
  508. /package/dist/assets/{middleware-HE0NLvPl.js → middleware-Bxr-mmHu.js} +0 -0
  509. /package/dist/assets/{minimize-2-BR0ed4mI.js → minimize-2-Dj9FY4aF.js} +0 -0
  510. /package/dist/assets/{misc-CAQM4FGM.js → misc-BBsGq1IU.js} +0 -0
  511. /package/dist/assets/{monitor-B5vtTCxm.js → monitor-RX4oi4Nj.js} +0 -0
  512. /package/dist/assets/{moon-DSdti3GO.js → moon-CHW45huN.js} +0 -0
  513. /package/dist/assets/{native-deep-link-BJjxOpZm.js → native-deep-link-jXO4XsVj.js} +0 -0
  514. /package/dist/assets/{oauth-popup-Ql5xgtlO.js → oauth-popup-DAMkjCsP.js} +0 -0
  515. /package/dist/assets/{onboarding-step-layout-DGtbhZJb.js → onboarding-step-layout-Bsc_5btV.js} +0 -0
  516. /package/dist/assets/{optimistic-lifecycle-50vNA6dY.js → optimistic-lifecycle-GoMZsAsc.js} +0 -0
  517. /package/dist/assets/{pdf-8fO1Wz7e.js → pdf-OYDWiYl0.js} +0 -0
  518. /package/dist/assets/{pencil-CLJIvYKH.js → pencil-Cm5DdeRM.js} +0 -0
  519. /package/dist/assets/{play-CCT817Ah.js → play-Dh6Bw5AP.js} +0 -0
  520. /package/dist/assets/{plugin-attribution-Hjqz10My.js → plugin-attribution-DAf_69AU.js} +0 -0
  521. /package/dist/assets/{plus-JG7kWjHA.js → plus-EJu6s6xR.js} +0 -0
  522. /package/dist/assets/{pointer-QlIwQKYH.js → pointer-CQ4DXHXb.js} +0 -0
  523. /package/dist/assets/{prechat-EVefdGcO.js → prechat-C4MZwKWX.js} +0 -0
  524. /package/dist/assets/{profile-metadata-BksFtHNq.js → profile-metadata-CA6wxcVJ.js} +0 -0
  525. /package/dist/assets/{progress-bar-CJxkStgF.js → progress-bar-3GUUAhXi.js} +0 -0
  526. /package/dist/assets/{proxy-CNtrhN4q.js → proxy-DrtKRLtr.js} +0 -0
  527. /package/dist/assets/{public-asset-CD3ouSWU.js → public-asset-OTnPMErp.js} +0 -0
  528. /package/dist/assets/{puzzle-CtM3jM-f.js → puzzle-4NgH5snP.js} +0 -0
  529. /package/dist/assets/{refresh-cw-Ci7hSykC.js → refresh-cw-EZQqnaxp.js} +0 -0
  530. /package/dist/assets/{repeat-CIQpv9Nd.js → repeat-CP_vsQPN.js} +0 -0
  531. /package/dist/assets/{rotate-ccw-Da_2DvhY.js → rotate-ccw-CL6IkaAI.js} +0 -0
  532. /package/dist/assets/{sdk.gen-DEFA-6EJ.js → sdk.gen-BpJ1vF7l.js} +0 -0
  533. /package/dist/assets/{search-DA3TmTuR.js → search-DL-2uX3K.js} +0 -0
  534. /package/dist/assets/{send-DHWUIK7G.js → send-Bdmy_GSE.js} +0 -0
  535. /package/dist/assets/{settings-DyEBEqeQ.js → settings-6_RIT4kT.js} +0 -0
  536. /package/dist/assets/{shield-9aFTFyT9.js → shield-CAWgGAqm.js} +0 -0
  537. /package/dist/assets/{shield-check-z7CU-gBq.js → shield-check-CNsbiH1v.js} +0 -0
  538. /package/dist/assets/{sliders-horizontal-slneqAyY.js → sliders-horizontal-BwdOIxz8.js} +0 -0
  539. /package/dist/assets/{smartphone-BbK6bGuE.js → smartphone-CIrxb2NM.js} +0 -0
  540. /package/dist/assets/{sparkles-DC8kqYjt.js → sparkles-DfEFn3Bh.js} +0 -0
  541. /package/dist/assets/{square-Bn3X6ZlO.js → square-DTFrgbZb.js} +0 -0
  542. /package/dist/assets/{status-badge-pill-ZNNoKV1T.js → status-badge-pill-CFoeNqKo.js} +0 -0
  543. /package/dist/assets/{sun-BKEPYS7Q.js → sun-BauGiwdK.js} +0 -0
  544. /package/dist/assets/{surface-parse-helpers-CEJ3tQ9Q.js → surface-parse-helpers-iPHZ9D7N.js} +0 -0
  545. /package/dist/assets/{target-cdw7WP5q.js → target-CJU4DUFo.js} +0 -0
  546. /package/dist/assets/{terminal-Cs_TREv-.js → terminal-BucMVaPU.js} +0 -0
  547. /package/dist/assets/{three-dot-indicator-CfjkCgEH.js → three-dot-indicator-CeTxs9-J.js} +0 -0
  548. /package/dist/assets/{toggle-D776PTw-.js → toggle-BEPV0rQM.js} +0 -0
  549. /package/dist/assets/{trash-2-De6X8YiM.js → trash-2-DfVRfykB.js} +0 -0
  550. /package/dist/assets/{triangle-alert--e3n47gm.js → triangle-alert-D6bAGtMw.js} +0 -0
  551. /package/dist/assets/{upload-Bdbyo_ok.js → upload-DsWG9TbD.js} +0 -0
  552. /package/dist/assets/{use-copy-to-clipboard-BarKTY4m.js → use-copy-to-clipboard-RUBxQIiE.js} +0 -0
  553. /package/dist/assets/{use-is-mobile-Cx2xnNUx.js → use-is-mobile-MmHo-OM6.js} +0 -0
  554. /package/dist/assets/{user-Dq9DUxnU.js → user-DHC7OLPE.js} +0 -0
  555. /package/dist/assets/{user-plus-CXMJ1x_5.js → user-plus-DjxxnQ8G.js} +0 -0
  556. /package/dist/assets/{users-DWDkv8ju.js → users-OcC3p9Jn.js} +0 -0
  557. /package/dist/assets/{video-CQJlht8Q.js → video-Dtwi0MD9.js} +0 -0
  558. /package/dist/assets/{volume-2-Bj3y3ZBJ.js → volume-2-BXDl4IEg.js} +0 -0
  559. /package/dist/assets/{workflow-DbPANJpf.js → workflow-Bsy5y3W0.js} +0 -0
  560. /package/dist/assets/{workflow-status-CgrMMiJT.js → workflow-status-D0bBEpGp.js} +0 -0
  561. /package/dist/assets/{workspace-theme-tokens-bLqHFK0a.js → workspace-theme-tokens-dJKcMIdP.js} +0 -0
  562. /package/dist/assets/{wrench-tjOqvzJ2.js → wrench-DhynFba1.js} +0 -0
  563. /package/dist/assets/{x-DuBvjmAE.js → x-D4O9yIS7.js} +0 -0
  564. /package/dist/assets/{xterm-Ip5qSQfD.js → xterm-DARAJ0SV.js} +0 -0
  565. /package/dist/assets/{xterm-addon-fit-BbxIpbO2.js → xterm-addon-fit-BDf8Eu9n.js} +0 -0
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-CqtAGHQu.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-Dy5001j6.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-CJf7MmLX.js";import{t as s}from"./typography-DEI9Ra9z.js";import{t as c}from"./createLucideIcon-CAM1RhH8.js";import{t as l}from"./archive-BQ3zdIPv.js";import{t as u}from"./check-Dt2rQhdg.js";import{t as d}from"./menu-wESJw6y3.js";import{a as f,c as p,l as m,o as h,s as g,t as _,u as v}from"./use-attachment-preview-CQjpDfsc.js";import{B as y,l as b,u as x,y as ee}from"./src-Da9g8qsW.js";import{t as S}from"./download-Cnb8zZrK.js";import{t as te}from"./ellipsis-C5fQnusC.js";import{t as C}from"./external-link-GPGZ1LGU.js";import{t as ne}from"./eye-off-DQ4xakzN.js";import{t as re}from"./eye-B_jBDDRn.js";import{t as ie}from"./file-text-CwGsMgaa.js";import{t as ae}from"./file-DOePafLU.js";import{t as w}from"./key-round-BFkuiQGH.js";import{t as oe}from"./loader-circle-DWWXcfTQ.js";import{n as T}from"./toast-BtFgiPe3.js";import{n as se}from"./resolved-assistants-store-C6oDdTxB.js";import{dt as ce,l as le}from"./sdk.gen-CjtCuSlS.js";import{t as ue}from"./dist-an0Z446E.js";import{r as de}from"./use-is-org-ready-3vHDbj4G.js";import{n as fe}from"./browser-CcdNg0HN.js";import{t as E}from"./conversation-store-CTMy9QPV.js";import{i as D}from"./viewer-store-DbIS4l8d.js";import{t as pe}from"./open-workspace-file-CivxJWcw.js";import{a as me,i as he,n as ge,o as O,r as k,s as _e,t as A}from"./workspace-path-links-vDBIljq_.js";import{t as ve}from"./copy-to-clipboard-DgY-nZpm.js";import{a as ye,i as be,s as xe}from"./use-local-file-info-D2-ycwyJ.js";import{a as Se,n as Ce,o as we}from"./pdf-preview-pscVmtvX.js";import{n as Te,r as Ee}from"./workspace-tree-query-Dfkrp_rV.js";import{t as De}from"./native-anchor-D1Sy2PbD.js";var Oe=c(`panel-right`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),ke=c(`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),Ae=`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 je(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 Ne(e){return M(e)?.href??null}function Pe(e){if(!je(e))return!1;if(ue.isNativePlatform()){let t=Ne(e);return t?(fe(t),!0):!1}let t=window.open(e,`_blank`,Ae);return t===null?!1:(t.focus(),!0)}function Fe(e){return Pe(e)}function Ie(e){if(Pe(e))return!0;let t=window.open(e,`_blank`);return t===null?!1:(t.focus(),!0)}function Le(e,t){let n=Me(e);if(n)return t.push(n),{kind:`routed`};let r=Ne(e);return r?t.isNative?(fe(r),{kind:`opened`}):Ie(r)?{kind:`opened`}:{kind:`blocked`,url:r}:{kind:`invalid`}}var N=a(),Re={image:p,video:g,audio:m,pdf:f,code:v,archive:l,spreadsheet:h,document:ie,text:ie,file:ae};function ze(e,t){return e===`file`?Ce(``,t):e}function P(e){return xe({sniffedMime:null,serverMime:null,filename:e}).kind}function F({kind:e,filename:t,className:n}){let r=Re[ze(e,t)];return(0,N.jsx)(r,{className:n,"aria-hidden":!0})}var Be=100*1024*1024,Ve=25*1024*1024;function He(e){switch(e){case`image`:case`audio`:case`video`:return Be;default:return Ve}}var Ue=1500,I=`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)]`,L=`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 We({type:e,service:t,field:n,assistantId:r,neutralized:i}){let a=se.use.activeAssistantId(),o=r===void 0?a:r,[s,c]=(0,j.useState)(null),[l,d]=(0,j.useState)(!1),[f,p]=(0,j.useState)(!1),m=(0,j.useRef)(null),h=(0,j.useRef)(0),g=e??`Secret`,_=t!==void 0&&n!==void 0&&o!=null,v=_?`${t}:${n}`:g,b=(0,j.useCallback)(()=>{h.current++,c(null),d(!1),p(!1),m.current&&=(clearTimeout(m.current),null)},[]),x=(0,j.useCallback)(async()=>{if(!_)return;let e=++h.current;d(!0);try{let{data:r}=await ce({path:{assistant_id:o},body:{service:t,field:n},throwOnError:!0});h.current===e&&c(r.value)}catch{h.current===e&&T.error(`Couldn't reveal ${v}.`)}finally{h.current===e&&d(!1)}},[_,o,t,n,v]),ee=(0,j.useCallback)(()=>{s!=null&&ve(s,{errorMessage:`Couldn't copy. Reveal and copy manually.`,onCopied:()=>{p(!0),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>p(!1),Ue)}})},[s]);if(i)return(0,N.jsxs)(`span`,{className:I,title:`Redaction marker — not verified by the assistant`,children:[(0,N.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,N.jsx)(`span`,{className:`truncate`,children:`Redacted`})]});if(!_)return(0,N.jsxs)(`span`,{className:I,title:`Redacted — this value is not linked to a stored credential`,children:[(0,N.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,N.jsx)(`span`,{className:`truncate`,children:g})]});let S=s!==null;return(0,N.jsxs)(`span`,{className:I,children:[(0,N.jsx)(w,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),S?(0,N.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[var(--content-default)]`,children:s}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:l,"aria-label":`Reveal value for ${v}`,title:`${g} · 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:v}),l?(0,N.jsx)(oe,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):S?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`button`,{type:`button`,onClick:ee,"aria-label":`Copy value for ${v}`,title:`Copy value`,className:L,children:f?(0,N.jsx)(u,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,N.jsx)(y,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,N.jsx)(`button`,{type:`button`,onClick:b,"aria-label":`Hide value for ${v}`,title:`Hide value`,className:L,children:(0,N.jsx)(ne,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>void x(),disabled:l,"aria-label":`Reveal value for ${v}`,title:`Click to reveal`,className:L,children:(0,N.jsx)(re,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]})}var R=`redacted`;function z(e){try{return decodeURIComponent(e)}catch{return}}function Ge(){return RegExp(`〔${R}:([^:\u3014\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function Ke(){return RegExp(`〔\\u2060${R}:([^:\\u3014\\u3015]+?)(?::([A-Za-z0-9_.%-]+):([A-Za-z0-9_.%-]+))?〕`,`g`)}function qe(e){let[,t,n,r]=e;if(n!==void 0&&r!==void 0){let e=z(n),i=z(r);if(e!==void 0&&i!==void 0)return{type:t,service:e,field:i}}return{type:t}}var B=`redacted-credential`,Je=new Set([`pre`,`code`,`style`,`script`,`a`]);function Ye(e){return e.type===`element`}function Xe(e){let t=[],n=Ge(),r;for(;(r=n.exec(e))!==null;){let e=qe(r);t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:B,properties:{type:e.type,...e.service!==void 0&&e.field!==void 0?{service:e.service,field:e.field}:{}},children:[]}})}let i=Ke();for(;(r=i.exec(e))!==null;)t.push({index:r.index,length:r[0].length,element:{type:`element`,tagName:B,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 V(e){if(Ye(e)&&Je.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`){V(n);continue}let r=n.value;if(!r.includes(`〔`))continue;let i=Xe(r);i&&t.splice(e,1,...i)}}function Ze(){return e=>{V(e)}}var Qe=new Set([`pre`,`code`,`style`,`script`]),H=5,U=.4,$e=`stream-word-fade`;function et(e){return e.type===`element`}function tt(e){if(et(e)&&Qe.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`){tt(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:[$e]},children:[{type:`text`,value:e}]});t.splice(e,1,...i)}}function nt(e,t){if(et(e)){let n=e.properties?.className;if(Array.isArray(n)&&n.includes($e)){t.push(e);return}}if(e.children)for(let n of e.children)nt(n,t)}function rt(e){let t=e?.caughtUp??!1;return e=>{if(tt(e),t)return;let n=[];nt(e,n);let r=Math.min(H,n.length);for(let e=0;e<r;e++){let t=n[n.length-1-e],r=(U+(1-U)*((e+1)/(H+1))).toFixed(3);t.properties={...t.properties,style:`opacity:${r}`}}}}var it=new Set([`pre`,`a`,`style`,`script`]);function at(e){return e.type===`element`}function ot(e){if(e.children.length!==1)return;let t=e.children[0];return t.type===`text`?t.value:void 0}function st(e){let t=e.children;if(t){for(let e of t)if(at(e)&&!it.has(e.tagName)){if(e.tagName===`code`){let t=ot(e),n=t===void 0?null:me(t);n!==null&&t!==void 0&&(e.tagName=A,e.properties={...e.properties,path:n,raw:t},e.children=[]);continue}st(e)}}}function ct(){return e=>{st(e)}}var lt=15e3,ut=1e4,dt=9e4;function ft({path:e,raw:t,assistantId:n,onOpen:r}){let a=t??e??``,o=de(),s=!!(e&&n&&r&&o),[c]=(0,j.useState)(()=>Date.now()+dt),{data:l}=i({...Te({assistantId:n??``,path:e?_e(e):``}),enabled:s,staleTime:lt,retry:!1,refetchInterval:t=>Date.now()>=c||(t.state.data?.entries.some(t=>t.type===`file`&&t.path===e)??!1)?!1:ut});return!(0,j.useMemo)(()=>e!=null&&(l?.entries.some(t=>t.type===`file`&&t.path===e)??!1),[l,e])||!e||!r?(0,N.jsx)(`code`,{className:b,children:a}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>r(he(e),O(e)),className:`${b} cursor-pointer text-[var(--system-positive-strong)] underline decoration-dotted underline-offset-2 hover:opacity-80`,title:`Open ${e}`,children:a})}var pt=/^[a-zA-Z][a-zA-Z0-9+.-]*:/;function mt(e){try{return decodeURIComponent(e)}catch{return null}}function ht(e){return(e.split(`#`,1)[0]??``).split(`?`,1)[0]??``}function gt(e){let t=mt(ht(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(ge);if(e===-1)return null;r=n.slice(e+ge.length)}else r=n.startsWith(`./`)?n.slice(2):n;return k(r)?r:null}function _t(e){let t=ht(e.trim()).split(`/`).pop()??``;return mt(t)??t}function W(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=pt.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=gt(t);return{kind:`local-file`,workspacePath:r,filename:r?O(r):_t(t)}}function G({workspacePath:e,filename:t,assistantId:n,disabled:i,onPictureInPicture:a,className:s}){let c=i===!0||e===null,l=(0,j.useCallback)(()=>{e!==null&&pe(e)},[e]),u=(0,j.useCallback)(async()=>{if(!(e===null||!n))try{await Ee({assistantId:n,path:e,filename:t})}catch{T.error(`Failed to download file`,{description:t})}},[n,t,e]);return(0,N.jsxs)(d.Root,{children:[(0,N.jsx)(d.Trigger,{asChild:!0,children:(0,N.jsx)(r,{variant:`ghost`,size:`compact`,expandOnMobile:!1,iconOnly:(0,N.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,N.jsxs)(d.Content,{align:`end`,sideOffset:4,children:[(0,N.jsx)(d.Item,{leftIcon:(0,N.jsx)(C,{size:14}),disabled:c,onSelect:l,className:`whitespace-nowrap`,children:`Go to file`}),a!==void 0&&(0,N.jsx)(d.Item,{leftIcon:(0,N.jsx)(ke,{size:14}),onSelect:a,className:`whitespace-nowrap`,children:`Picture in Picture`}),(0,N.jsx)(d.Item,{leftIcon:(0,N.jsx)(S,{size:14}),disabled:c||!n,onSelect:()=>void u(),className:`whitespace-nowrap`,children:`Download`})]})]})}var vt=new Set([`md`,`markdown`]),yt=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 bt(e){let t=e.lastIndexOf(`.`);return t<=0?null:e.slice(t+1).toLowerCase()}function xt(e){let t=bt(e);return t!==null&&vt.has(t)}function St(e){let t=bt(e);return t===null?null:yt.get(t)??null}function Ct(e){return St(e)??`unsupported`}function K(e,t,n){return t?xt(e)?n?{mode:`document`,assistantId:t,conversationId:n}:{mode:`workspace`}:{mode:`preview`,assistantId:t,previewKind:Ct(e)}:{mode:`workspace`}}function wt(e,t,n){return K(e,t,n).mode!==`workspace`}function Tt(e,t,n){return e===`document`&&t!==null&&t.workspacePath===n}function Et(e){let t=D.use.mainView(),n=D.use.openedDocumentState();return e===null?!1:Tt(t,n,e)}function Dt(e,t,n,r){let i=K(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}pe(e)}function q(e,t,n,r){let i=D.getState();if(wt(t,n,r)&&Tt(i.mainView,i.openedDocumentState,e)){i.closeDocument();return}Dt(e,t,n,r)}var Ot=[`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 kt(e){return e===`workspace`?{label:`Open in workspace`,Icon:C}:e===`preview`?{label:`Open preview`,Icon:Oe}:{label:`Open in editor`,Icon:Oe}}var At={workspace:`workspace`,document:`editor`,preview:`preview`};function jt(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}=K(t,c,l),p=f!==`workspace`,m=Et(d?a:null)&&p,h=jt(i,e,t),{label:g,Icon:_}=kt(f),v=m?`Close ${At[f]} for ${t}`:`Open ${t}`,y=()=>{d&&q(a,t,c,l)};return(0,N.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,N.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,N.jsx)(F,{kind:r,filename:t,className:`h-4 w-4`})}),(0,N.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,N.jsx)(s,{as:`span`,variant:`body-small-default`,className:o(`truncate`,m?`text-[var(--content-emphasised)]`:`text-[var(--content-default)]`),children:we(e,40)}),h!==null&&(0,N.jsx)(s,{as:`span`,variant:`label-small-default`,className:`truncate text-[var(--content-tertiary)]`,children:h})]}),d&&!m&&(0,N.jsxs)(`span`,{"aria-hidden":`true`,className:o(`flex shrink-0 items-center gap-1`,Ot,`text-[var(--content-tertiary)]`),children:[(0,N.jsx)(_,{className:`h-3.5 w-3.5`}),(0,N.jsx)(s,{as:`span`,variant:`label-small-default`,className:`whitespace-nowrap`,children:g})]}),n!==null&&(0,N.jsx)(s,{as:`span`,variant:`label-small-default`,className:`shrink-0 text-[var(--content-disabled)]`,children:Se(n)}),(0,N.jsx)(G,{workspacePath:a,filename:t,assistantId:c,disabled:!u})]})}var Mt=`vellum://workspace/`;function Nt(e){let t=e.trim().split(`/`).pop()??``;try{return decodeURIComponent(t)}catch{return t}}function Pt(e){return e.split(`/`).map(e=>{try{return decodeURIComponent(e)}catch{return e}}).join(`/`)}function Y(e){let t=e.trim();if(t.startsWith(Mt)){let e=Pt(t.slice(19));return{workspacePath:k(e)?e:null,filename:O(e)}}let n=W(t);return n.kind===`local-file`?{workspacePath:n.workspacePath,filename:n.filename}:{workspacePath:null,filename:Nt(t)}}var X=`max-h-[400px] max-w-full rounded-lg border border-[var(--border-element)] object-contain`,Ft=[`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 It(){return typeof document<`u`&&`pictureInPictureEnabled`in document&&document.pictureInPictureEnabled}function Lt({children:e,menu:t}){return(0,N.jsxs)(`span`,{className:`group/local-media relative my-2 inline-block max-w-full align-top`,children:[e,(0,N.jsx)(`span`,{className:Ft,children:t})]})}function Rt({href:e,alt:t,assistantId:n}){let r=(0,j.useMemo)(()=>Y(e),[e]),i=be(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??P(u),f=l?.sizeBytes??null,p=l!==null&&(d===`image`||d===`video`||d===`audio`)&&!(f!==null&&f>104857600)&&a!==e,{url:m,isError:h}=ye({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,N.jsx)(G,{workspacePath:r.workspacePath,filename:u,assistantId:n}),y=(0,N.jsx)(`span`,{role:`status`,"aria-label":`Loading ${_}`,className:`my-2 inline-block h-7 w-40 animate-pulse rounded-lg bg-[var(--surface-lift)] align-middle`});if(n===void 0)return(0,N.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,N.jsx)(J,{displayName:g,filename:u,sizeBytes:null,kind:d,state:i.reason===`missing`?`missing`:`unavailable`,workspacePath:r.workspacePath,assistantId:n});let b=(0,N.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,N.jsx)(Lt,{menu:v,children:(0,N.jsx)(`img`,{src:m,alt:t,onError:()=>o(e),className:X})}):d===`video`?(0,N.jsx)(Lt,{menu:(0,N.jsx)(G,{workspacePath:r.workspacePath,filename:u,assistantId:n,onPictureInPicture:It()?()=>void c():void 0}),children:(0,N.jsx)(`video`,{ref:s,src:m,controls:!0,controlsList:`nodownload noplaybackrate`,disablePictureInPicture:!0,playsInline:!0,preload:`metadata`,"aria-label":_,className:X})}):d===`audio`?(0,N.jsxs)(`span`,{className:`my-2 flex w-full max-w-md items-center gap-2`,children:[(0,N.jsx)(`audio`,{src:m,controls:!0,controlsList:`nodownload noplaybackrate`,preload:`metadata`,"aria-label":_,className:`min-w-0 flex-1`}),v]}):b}function zt({href:e,workspacePath:t,assistantId:n,children:r,onActivate:i}){let a=E.use.activeConversationId(),o=t===null?Nt(e):O(t);return(0,N.jsxs)(`a`,{href:e,onClick:e=>{if(e.preventDefault(),i){i();return}if(t===null){T.error(`This file isn't available here`);return}q(t,o,n,a)},className:`inline-flex items-baseline gap-1 cursor-pointer text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[(0,N.jsx)(F,{kind:P(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 Bt(e){return Z(e)?e:ee(e)}function Vt({href:e,children:t}){let n=je(e),r=/^https?:\/\//i.test(e??``);return(0,N.jsxs)(`a`,{href:e,target:`_blank`,rel:n?void 0:`noopener noreferrer`,onClick:t=>{if(Fe(e)){t.preventDefault();return}De(t,e)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[t,r?(0,N.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 Ht=`my-2 max-w-full max-h-[400px] rounded-lg border border-[var(--border-element)] object-contain`;function $({alt:e}){return(0,N.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 Ut({src:e,alt:t}){let[n,r]=(0,j.useState)(!1);return n?(0,N.jsx)($,{alt:t}):(0,N.jsx)(`img`,{src:e,alt:t,onError:()=>r(!0),className:Ht})}function Wt(e){try{return decodeURIComponent(e)}catch{return e}}function Gt(e,t){let n=Wt(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 Kt({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,N.jsx)($,{alt:n||e.filename});if(!a)return(0,N.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,N.jsx)(`img`,{src:a,alt:n,className:Ht});return i?(0,N.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 qt=(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}=_(a,i),d=E.use.activeConversationId(),f=(0,j.useCallback)((e,t)=>{let{workspacePath:n,filename:i}=Y(e);if(a&&n!==null){q(n,i,a,d);return}r?.(e,t)},[a,d,r]),p=(0,j.useCallback)(({href:e,children:t})=>{if(e!=null&&Z(e)){let{workspacePath:n}=Y(e);return(0,N.jsx)(zt,{href:e,workspacePath:n,assistantId:a??void 0,onActivate:r&&!(a&&n!==null)?()=>r(e,Q(t)):void 0,children:t})}let n=W(e);if(e!=null&&n.kind===`local-file`){let{workspacePath:i}=n;return(0,N.jsx)(zt,{href:e,workspacePath:i,assistantId:a??void 0,onActivate:r&&i!==null&&!a?()=>r(he(i),Q(t)):void 0,children:t})}return(0,N.jsx)(Vt,{href:e,children:t})},[r,a]),m=(0,j.useMemo)(()=>[...s?[Ze]:[],...c&&r?[ct]:[],...o?[[rt,{caughtUp:o===`caughtUp`}]]:[]],[s,o,c,r]),h=(0,j.useMemo)(()=>({src:e,alt:t})=>{let n=(0,N.jsx)(Rt,{href:e,alt:t,assistantId:a??void 0});if(Z(e)){let r=Gt(e,i);return r?(0,N.jsx)(Kt,{attachment:r,alt:t,assistantId:a,onOpenPreview:l}):n}return W(e).kind===`local-file`?n:e.length===0?(0,N.jsx)($,{alt:t}):(0,N.jsx)(Ut,{src:e,alt:t})},[i,a,l]),g=(0,j.useMemo)(()=>({[B]:e=>(0,N.jsx)(We,{...e,assistantId:a},`${a??``}\u0000${e.service??``}\u0000${e.field??``}`),[A]:e=>(0,N.jsx)(ft,{...e,assistantId:a,onOpen:r?f:void 0})}),[a,r,f]);return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(x,{content:e,className:t,hardLineBreaks:n,linkComponent:p,imageComponent:h,urlTransform:Bt,extraRehypePlugins:m,extraComponents:s||c&&r?g:void 0}),u]})});export{Le as a,P as i,He as n,Ie as o,F as r,qt as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{F as n}from"./button-Dy5001j6.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{a as i,i as a,t as o}from"./cn-CJf7MmLX.js";import{t as s}from"./typography-DEI9Ra9z.js";import{t as c}from"./createLucideIcon-CAM1RhH8.js";import{t as l}from"./check-Dt2rQhdg.js";var u=c(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),d=e(t(),1),f=r();function p(e,t=[]){let n=[];function r(t,r){let i=d.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=d.useMemo(()=>o,Object.values(o));return(0,f.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=d.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>d.createContext(e));return function(n){let r=n?.[e]||t;return d.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,m(i,...t)]}function m(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return d.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}typeof window<`u`&&window.document&&window.document.createElement;function h(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var g=globalThis?.document?d.useLayoutEffect:()=>{},_=d.useInsertionEffect||g;function v({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=y({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=d.useRef(e!==void 0);d.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,d.useCallback(t=>{if(s){let n=b(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function y({defaultProp:e,onChange:t}){let[n,r]=d.useState(e),i=d.useRef(n),a=d.useRef(t);return _(()=>{a.current=t},[t]),d.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function b(e){return typeof e==`function`}function x(e){let t=d.useRef({value:e,previous:e});return d.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function S(e){let[t,n]=d.useState(void 0);return g(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}function C(e,t){return d.useReducer((e,n)=>t[e][n]??e,e)}var w=e=>{let{present:t,children:n}=e,r=T(t),a=typeof n==`function`?n({present:r.isPresent}):d.Children.only(n),o=i(r.ref,D(a));return typeof n==`function`||r.isPresent?d.cloneElement(a,{ref:o}):null};w.displayName=`Presence`;function T(e){let[t,n]=d.useState(),r=d.useRef(null),i=d.useRef(e),a=d.useRef(`none`),[o,s]=C(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return d.useEffect(()=>{let e=E(r.current);a.current=o===`mounted`?e:`none`},[o]),g(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=E(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),g(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=E(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=E(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:d.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function E(e){return e?.animationName||`none`}function D(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}n();function O(e){let t=k(e),n=d.forwardRef((e,n)=>{let{children:r,...i}=e,a=d.Children.toArray(r),o=a.find(j);if(o){let e=o.props.children,r=a.map(t=>t===o?d.Children.count(e)>1?d.Children.only(null):d.isValidElement(e)?e.props.children:null:t);return(0,f.jsx)(t,{...i,ref:n,children:d.isValidElement(e)?d.cloneElement(e,void 0,r):null})}return(0,f.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function k(e){let t=d.forwardRef((e,t)=>{let{children:n,...r}=e;if(d.isValidElement(n)){let e=N(n),i=M(r,n.props);return n.type!==d.Fragment&&(i.ref=t?a(t,e):e),d.cloneElement(n,i)}return d.Children.count(n)>1?d.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var A=Symbol(`radix.slottable`);function j(e){return d.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===A}function M(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function N(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var P=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=O(`Primitive.${t}`),r=d.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,f.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),F=`Checkbox`,[I,L]=p(F),[R,z]=I(F);function B(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:p}=e,[m,h]=v({prop:n,defaultProp:i??!1,onChange:c,caller:F}),[g,_]=d.useState(null),[y,b]=d.useState(null),x=d.useRef(!1),S=g?!!o||!!g.closest(`form`):!0,C={checked:m,disabled:a,setChecked:h,control:g,setControl:_,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:x,required:l,defaultChecked:Y(i)?!1:i,isFormControl:S,bubbleInput:y,setBubbleInput:b};return(0,f.jsx)(R,{scope:t,...C,children:J(p)?p(C):r})}var V=`CheckboxTrigger`,H=d.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{let{control:o,value:s,disabled:c,checked:l,required:u,setControl:p,setChecked:m,hasConsumerStoppedPropagationRef:g,isFormControl:_,bubbleInput:v}=z(V,e),y=i(a,p),b=d.useRef(l);return d.useEffect(()=>{let e=o?.form;if(e){let t=()=>m(b.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[o,m]),(0,f.jsx)(P.button,{type:`button`,role:`checkbox`,"aria-checked":Y(l)?`mixed`:l,"aria-required":u,"data-state":X(l),"data-disabled":c?``:void 0,disabled:c,value:s,...r,ref:y,onKeyDown:h(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:h(n,e=>{m(e=>Y(e)?!0:!e),v&&_&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})})});H.displayName=V;var U=d.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,f.jsx)(B,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(H,{...d,ref:t,__scopeCheckbox:n}),e&&(0,f.jsx)(q,{__scopeCheckbox:n})]})})});U.displayName=F;var W=`CheckboxIndicator`,G=d.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:r,...i}=e,a=z(W,n);return(0,f.jsx)(w,{present:r||Y(a.checked)||a.checked===!0,children:(0,f.jsx)(P.span,{"data-state":X(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})});G.displayName=W;var K=`CheckboxBubbleInput`,q=d.forwardRef(({__scopeCheckbox:e,...t},n)=>{let{control:r,hasConsumerStoppedPropagationRef:a,checked:o,defaultChecked:s,required:c,disabled:l,name:u,value:p,form:m,bubbleInput:h,setBubbleInput:g}=z(K,e),_=i(n,g),v=x(o),y=S(r);d.useEffect(()=>{let e=h;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=!a.current;if(v!==o&&n){let t=new Event(`click`,{bubbles:r});e.indeterminate=Y(o),n.call(e,Y(o)?!1:o),e.dispatchEvent(t)}},[h,v,o,a]);let b=d.useRef(Y(o)?!1:o);return(0,f.jsx)(P.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:s??b.current,required:c,disabled:l,name:u,value:p,form:m,...t,tabIndex:-1,ref:_,style:{...t.style,...y,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})});q.displayName=K;function J(e){return typeof e==`function`}function Y(e){return e===`indeterminate`}function X(e){return Y(e)?`indeterminate`:e?`checked`:`unchecked`}function Z({checked:e,onCheckedChange:t,label:n,helperText:r,disabled:i=!1,id:a,name:c,className:p,ref:m,"aria-label":h,...g}){let _=(0,d.useId)(),v=a??_,y=n?`${v}-label`:void 0,b=r?`${v}-helper`:void 0,x=e===`indeterminate`,S=o(`inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-[4px]`,`border transition-colors outline-none cursor-pointer`,`keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)] keyboard-focus:ring-offset-0`,`bg-[var(--surface-lift)] border-[var(--border-base)]`,`data-[state=checked]:bg-[var(--system-positive-strong)] data-[state=checked]:border-transparent`,`data-[state=indeterminate]:bg-[var(--system-positive-strong)] data-[state=indeterminate]:border-transparent`,`disabled:cursor-not-allowed disabled:bg-[var(--surface-overlay)]`,`disabled:data-[state=checked]:bg-[var(--surface-overlay)]`,`disabled:data-[state=indeterminate]:bg-[var(--surface-overlay)]`,`disabled:border-[var(--border-base)]`),C=o(`h-3 w-3`,i?`text-[color:var(--content-disabled)]`:`text-[color:var(--aux-white)]`),w=(0,f.jsx)(U,{...g,ref:m,id:v,name:c,checked:e,disabled:i,onCheckedChange:t,"aria-label":n?void 0:h,"aria-labelledby":n?y:void 0,"aria-describedby":b,"data-slot":`checkbox`,className:S,children:(0,f.jsx)(G,{forceMount:!0,className:`flex items-center justify-center`,children:x?(0,f.jsx)(u,{className:C,strokeWidth:3,"aria-hidden":`true`}):e===!0?(0,f.jsx)(l,{className:C,strokeWidth:3,"aria-hidden":`true`}):null})});return!n&&!r?(0,f.jsx)(`span`,{"data-slot":`checkbox`,className:p,children:w}):(0,f.jsxs)(`div`,{"data-slot":`checkbox`,className:o(`flex gap-2.5`,r?`items-start`:`items-center`,p),children:[w,(0,f.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[n?(0,f.jsx)(s,{as:`label`,variant:`body-medium-default`,id:y,htmlFor:v,className:o(`cursor-pointer select-none`,i?`cursor-not-allowed text-[color:var(--content-disabled)]`:`text-[color:var(--content-default)]`),children:n}):null,r?(0,f.jsx)(`span`,{id:b,className:`text-body-small-default text-[color:var(--content-secondary)]`,children:r}):null]})]})}export{v as a,p as c,w as i,P as n,g as o,O as r,h as s,Z as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./client-feature-flag-store-Cw39NfCq.js";import{w as t}from"./native-biometric-DetUqtjl.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};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,t as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.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-DWWXcfTQ.js";import{at as u,c as d,l as f}from"./auth-store-C9aYqB9U.js";import{C as p,b as m,y as h}from"./native-biometric-DetUqtjl.js";import{d as g}from"./routes-DrfnNoYS.js";import{d as _}from"./platform-detection-AHYibqOx.js";import{a as v}from"./use-platform-gate-C5bNA5Pn.js";import{i as y}from"./use-is-org-ready-3vHDbj4G.js";import{n as b}from"./browser-CcdNg0HN.js";import{dt as x}from"./react-query.gen-BtYBixpk.js";import{n as S,r as C}from"./checkout-continuation-CYDyrqci.js";import{t as w}from"./checkout-return-target-BStfEab4.js";var T=e(t(),1),E=c();function D(){m(),f()}function O(){let e=a(),[t]=r(),c=t.get(`package`)??``,f=(0,T.useMemo)(()=>c?null:h(t),[c,t]),m=v(),_=y(),O=C(),k=S(t,g.plans),A=k===g.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=w();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`,p(f?{kind:`custom`,machineTier:f.machineTier,storageTier:f.storageTier,creditTier:f.creditTier}:{kind:`package`,packageKey:c}),d(j),I(t===`native`),b(n.checkout_url);return}L.current=`settled`,D(),e(k===g.plans&&c?g.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(_===`ready`){R();return}L.current=`idle`,P(!1),I(!1),_===`unavailable`&&u.getState().fetchOrganizations()},[_,R]);return(0,T.useEffect)(()=>{if(!c&&!f||m===`disabled`||m===`gated`||O===`disabled`){if(L.current===`handed_off`)return;L.current=`settled`,D(),e(k,{replace:!0});return}if(!(O!==`enabled`||m!==`full`||L.current!==`idle`)&&_!==`resolving`){if(_===`unavailable`){L.current=`settled`,P(!0);return}R()}},[k,f,m,e,_,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)(i,{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)(i,{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=a(),[t]=r(),n=S(t,g.settings.usageBilling);return(0,T.useEffect)(()=>{D(),e(n,{replace:!0})},[e,n]),null}function A(){return _()?(0,E.jsx)(k,{}):(0,E.jsx)(O,{})}export{A as CheckoutPage};
@@ -0,0 +1 @@
1
+ import{t as e}from"./is-electron-DIlIrdJX.js";import{t}from"./dist-an0Z446E.js";function n(){return e()||t.isNativePlatform()?`native`:`web`}export{n as t};
@@ -1 +1 @@
1
- import{n as e,t}from"./create-selectors-B-P03-8K.js";import{i as n,r,s as i}from"./feature-flag-catalog-CWHnoWvT.js";var a=`vellum:ff:`,o=`vellum:ff-str:`;function s(){if(typeof window>`u`)return{};let e={};try{for(let t of Object.keys(r)){let n=localStorage.getItem(a+t);n!==null&&(e[t]=n===`true`)}}catch{}return e}function c(){if(typeof window>`u`)return{};let e={};try{for(let t of Object.keys(n)){let n=localStorage.getItem(o+t);n!==null&&(e[t]=n)}}catch{}return e}var l=s(),u=c(),d=i(`client`);function f(){return{...r,...s(),...d.bool}}function p(){return{...n,...c(),...d.str}}function m(e,t){return e===null||t===null||e===t}var h=t(e()(e=>{let t=e;return{...r,...l,...d.bool,stringFlags:{...n,...u,...d.str},hydrated:!1,scopeKey:null,setFlags:(t,n)=>e(e=>{if(!m(e.scopeKey,n))return e;let r=s(),i={...t,...r,...d.bool};return Object.keys(i).some(t=>i[t]!==e[t])?{...i,hydrated:!0}:e.hydrated?e:{hydrated:!0}}),beginScope:e=>t(t=>t.scopeKey===e?t:{...f(),stringFlags:p(),hydrated:!1,scopeKey:e}),settleWithoutServerValues:t=>e(e=>e.hydrated||!m(e.scopeKey,t)?e:{...f(),hydrated:!0}),setFlag:(t,n)=>{try{localStorage.setItem(a+t,String(n))}catch{}e({[t]:d.bool[t]??n})},clearOverride:t=>{try{localStorage.removeItem(a+t)}catch{}let n=d.bool[t]??r[t];n!==void 0&&e({[t]:n})},setStringFlags:(e,n)=>t(t=>{if(!m(t.scopeKey,n))return t;let r=c(),i={...e,...r,...d.str},a=t.stringFlags;return Object.keys(i).some(e=>i[e]!==a[e])?{stringFlags:i}:t}),setStringFlag:(e,n)=>{try{localStorage.setItem(o+e,n)}catch{}t(t=>({stringFlags:{...t.stringFlags,[e]:d.str[e]??n}}))},clearStringOverride:e=>{try{localStorage.removeItem(o+e)}catch{}let r=d.str[e]??n[e];t(t=>({stringFlags:{...t.stringFlags,[e]:r??``}}))}}}));export{h as t};
1
+ import{n as e,t}from"./create-selectors-BfxF8Sx_.js";import{i as n,r,s as i}from"./feature-flag-catalog-CpyCubJW.js";var a=`vellum:ff:`,o=`vellum:ff-str:`;function s(){if(typeof window>`u`)return{};let e={};try{for(let t of Object.keys(r)){let n=localStorage.getItem(a+t);n!==null&&(e[t]=n===`true`)}}catch{}return e}function c(){if(typeof window>`u`)return{};let e={};try{for(let t of Object.keys(n)){let n=localStorage.getItem(o+t);n!==null&&(e[t]=n)}}catch{}return e}var l=s(),u=c(),d=i(`client`);function f(){return{...r,...s(),...d.bool}}function p(){return{...n,...c(),...d.str}}function m(e,t){return e===null||t===null||e===t}var h=t(e()(e=>{let t=e;return{...r,...l,...d.bool,stringFlags:{...n,...u,...d.str},hydrated:!1,scopeKey:null,setFlags:(t,n)=>e(e=>{if(!m(e.scopeKey,n))return e;let r=s(),i={...t,...r,...d.bool};return Object.keys(i).some(t=>i[t]!==e[t])?{...i,hydrated:!0}:e.hydrated?e:{hydrated:!0}}),beginScope:e=>t(t=>t.scopeKey===e?t:{...f(),stringFlags:p(),hydrated:!1,scopeKey:e}),settleWithoutServerValues:t=>e(e=>e.hydrated||!m(e.scopeKey,t)?e:{...f(),hydrated:!0}),setFlag:(t,n)=>{try{localStorage.setItem(a+t,String(n))}catch{}e({[t]:d.bool[t]??n})},clearOverride:t=>{try{localStorage.removeItem(a+t)}catch{}let n=d.bool[t]??r[t];n!==void 0&&e({[t]:n})},setStringFlags:(e,n)=>t(t=>{if(!m(t.scopeKey,n))return t;let r=c(),i={...e,...r,...d.str},a=t.stringFlags;return Object.keys(i).some(e=>i[e]!==a[e])?{stringFlags:i}:t}),setStringFlag:(e,n)=>{try{localStorage.setItem(o+e,n)}catch{}t(t=>({stringFlags:{...t.stringFlags,[e]:d.str[e]??n}}))},clearStringOverride:e=>{try{localStorage.removeItem(o+e)}catch{}let r=d.str[e]??n[e];t(t=>({stringFlags:{...t.stringFlags,[e]:r??``}}))}}}));export{h as t};
@@ -1 +1 @@
1
- import{n as e,t}from"./platform-detection-a_IB3-0w.js";var n={browser_family:`x-vellum-browser-family`,browser_version:`x-vellum-browser-version`,os:`x-vellum-client-os`,interface_version:`x-vellum-interface-version`},r=/^[a-z0-9._-]{1,64}$/;function i(e){let t=e?.trim().toLowerCase();if(t)return r.test(t)?t:void 0}var a=null;function o(){return a||(a=crypto.randomUUID(),a)}var s=null;function c(){if(s)return s;let r=t(),a=[[n.browser_family,r.family],[n.browser_version,r.version],[n.os,e()],[n.interface_version,void 0]],o={};for(let[e,t]of a){let n=i(t);n&&(o[e]=n)}return s=o,o}function l(){return{"X-Vellum-Client-Id":o(),"X-Vellum-Interface-Id":`web`,...c()}}export{l as n,o as t};
1
+ import{n as e,t}from"./platform-detection-AHYibqOx.js";var n={browser_family:`x-vellum-browser-family`,browser_version:`x-vellum-browser-version`,os:`x-vellum-client-os`,interface_version:`x-vellum-interface-version`},r=/^[a-z0-9._-]{1,64}$/;function i(e){let t=e?.trim().toLowerCase();if(t)return r.test(t)?t:void 0}var a=null;function o(){return a||(a=crypto.randomUUID(),a)}var s=null;function c(){if(s)return s;let r=t(),a=[[n.browser_family,r.family],[n.browser_version,r.version],[n.os,e()],[n.interface_version,void 0]],o={};for(let[e,t]of a){let n=i(t);n&&(o[e]=n)}return s=o,o}function l(){return{"X-Vellum-Client-Id":o(),"X-Vellum-Interface-Id":`web`,...c()}}export{l as n,o as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{F as n,t as r}from"./button-Dy5001j6.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-DEI9Ra9z.js";import{t as o}from"./loader-circle-BzJ2kz3F.js";import{t as s}from"./search-DA3TmTuR.js";import{t as c}from"./x-DuBvjmAE.js";import"./src-BAS7a2RG.js";import{t as l}from"./panel-item-DGs4s9r-.js";import{c as u}from"./platform-detection-a_IB3-0w.js";import{n as d}from"./use-is-mobile-Cx2xnNUx.js";import{n as f,t as p}from"./proxy-CNtrhN4q.js";import{t as m}from"./AnimatePresence-D23js3-M.js";import{t as h}from"./use-reduced-motion-bjjt6x6d.js";var g=e(t(),1),_=e(n(),1),v=i();function y(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function b(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(y).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,v.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,v.jsx)(v.Fragment,{children:a}))}function x({icon:e,title:t,subtitle:n,snippet:r,highlightTokens:i,shortcutHint:a,isSelected:o,onClick:s,surface:c=`overlay`}){let u=e;return c===`window`?(0,v.jsxs)(`button`,{type:`button`,role:`option`,"aria-current":o?`page`:void 0,"aria-selected":o,onClick:s,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`,o?`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,v.jsx)(u,{size:16,"aria-hidden":!0,className:o?`shrink-0 text-[var(--content-default)]`:`shrink-0 text-[var(--content-tertiary)]`}):null,(0,v.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,v.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`truncate`,children:t}),n?(0,v.jsx)(`span`,{className:`min-w-0 truncate text-xs text-[var(--content-tertiary)]`,children:n}):null,a?(0,v.jsx)(`span`,{className:`ml-auto shrink-0 text-xs text-[var(--content-tertiary)]`,children:a}):null]}),r?(0,v.jsx)(`span`,{className:`truncate text-xs font-normal text-[var(--content-tertiary)]`,children:b(r,i)}):null]})]}):(0,v.jsx)(l,{icon:e,label:(0,v.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,v.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`truncate`,children:t}),n?(0,v.jsx)(`span`,{className:`min-w-0 truncate text-[var(--content-tertiary)] text-body-small-default`,children:n}):null,a?(0,v.jsx)(`span`,{className:`ml-auto shrink-0 text-[var(--content-tertiary)] text-body-small-default`,children:a}):null]}),r?(0,v.jsx)(`span`,{className:`truncate text-[var(--content-tertiary)] text-body-small-default`,children:b(r,i)}):null]}),active:o,onSelect:s,className:r?`h-auto px-3 py-2`:`px-3 py-2`})}var S=`fixed inset-0 z-50 flex flex-col bg-[var(--surface-lift)]`,C={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))`},w={...C,pointerEvents:`none`},T=({onKeyDown:e,children:t})=>{let n=f(),r=h(),i=(0,g.useRef)(null);return(0,g.useLayoutEffect)(()=>{if(n)return;let e=document.activeElement;e instanceof HTMLElement&&i.current?.contains(e)&&e.blur()},[n]),(0,v.jsx)(p.div,{ref:i,className:S,style:n?C:w,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})},E=({isOpen:e,onClose:t,query:n,onQueryChange:i,highlightTokens:l,selectedIndex:f,sections:p,isSearching:h=!1,onItemSelect:y,onKeyDown:b,surface:w=`overlay`})=>{let E=d(),D=u(),O=(0,g.useRef)(null),k=(0,g.useRef)(null),A=(0,g.useRef)(null);(0,g.useEffect)(()=>{if(e){let e=requestAnimationFrame(()=>{k.current?.focus()});return()=>cancelAnimationFrame(e)}},[e]),(0,g.useEffect)(()=>{if(!e||!A.current)return;let t=A.current.querySelector(`[aria-current='page']`);t&&t.scrollIntoView({block:`nearest`})},[e,f]);let j=(0,g.useCallback)(e=>{e.target===O.current&&t()},[t]),M=w===`window`,N=E&&!M,P=D&&N;if(!e&&!P)return null;let F=0,I=(0,v.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[h?(0,v.jsx)(o,{size:16,"aria-hidden":!0,className:`shrink-0 animate-spin text-[var(--content-tertiary)]`}):(0,v.jsx)(s,{size:16,"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)]`}),(0,v.jsx)(`input`,{ref:k,type:`text`,value:n,onChange:e=>i(e.target.value),placeholder:`Search conversations, memories…`,className:M?`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?N?(0,v.jsx)(`button`,{type:`button`,className:`shrink-0 text-body-medium-lighter text-[var(--content-tertiary)]`,onClick:()=>i(``),"aria-label":`Clear search`,children:`Clear`}):M?(0,v.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,v.jsx)(c,{size:16,"aria-hidden":!0})}):(0,v.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,v.jsx)(c,{}),"aria-label":`Clear search`,onClick:()=>i(``),tintColor:`var(--content-tertiary)`}):N?null:(0,v.jsx)(`kbd`,{className:M?`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`}),N?(0,v.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,v.jsx)(c,{}),expandOnMobile:!1,"aria-label":`Close search`,onClick:t,tintColor:`var(--content-tertiary)`}):null]}),L=(0,v.jsx)(`div`,{ref:A,className:N?`flex-1 overflow-y-auto overscroll-contain p-2`:`max-h-[360px] overflow-y-auto overscroll-contain p-2`,role:`listbox`,children:p.length===0?(0,v.jsx)(`div`,{className:`px-3 py-6 text-center`,children:(0,v.jsx)(a,{variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,children:h?`Searching…`:`No results`})}):p.map(e=>(0,v.jsxs)(`div`,{role:`group`,"aria-label":e.label,children:[(0,v.jsx)(a,{variant:`label-small-default`,as:`div`,className:M?`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=F++;return(0,v.jsx)(x,{icon:e.icon,title:e.title,subtitle:e.subtitle,snippet:e.snippet,highlightTokens:l,shortcutHint:N?void 0:e.shortcutHint,isSelected:t===f,onClick:()=>y?.(e,t),surface:w},e.id)})]},e.id))});if(P)return(0,v.jsx)(m,{children:e?(0,v.jsxs)(T,{onKeyDown:b,children:[I,L]},`command-palette-sheet`):null});if(N)return(0,v.jsxs)(`div`,{className:S,role:`dialog`,"aria-modal":`true`,"aria-label":`Search`,onKeyDown:b,style:C,children:[I,L]});let R=(0,v.jsx)(`div`,{ref:O,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,className:w===`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:j,onKeyDown:b,children:(0,v.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:[I,L]})});return w===`window`?R:(0,_.createPortal)(R,document.body)};export{E as CommandPalette};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{F as n,t as r}from"./button-Dy5001j6.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./typography-DEI9Ra9z.js";import"./src-Da9g8qsW.js";import{t as o}from"./loader-circle-DWWXcfTQ.js";import{t as s}from"./search-DL-2uX3K.js";import{t as c}from"./x-D4O9yIS7.js";import{t as l}from"./panel-item-CJh95P_q.js";import{f as u}from"./platform-detection-AHYibqOx.js";import{n as d}from"./use-is-mobile-MmHo-OM6.js";import{n as f,t as p}from"./proxy-DrtKRLtr.js";import{t as m}from"./AnimatePresence-CHo6D7IH.js";import{t as h}from"./use-reduced-motion-fR0m_opJ.js";var g=e(t(),1),_=e(n(),1),v=i();function y(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function b(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(y).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,v.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,v.jsx)(v.Fragment,{children:a}))}function x({icon:e,title:t,subtitle:n,snippet:r,highlightTokens:i,shortcutHint:a,isSelected:o,onClick:s,surface:c=`overlay`}){let u=e;return c===`window`?(0,v.jsxs)(`button`,{type:`button`,role:`option`,"aria-current":o?`page`:void 0,"aria-selected":o,onClick:s,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`,o?`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,v.jsx)(u,{size:16,"aria-hidden":!0,className:o?`shrink-0 text-[var(--content-default)]`:`shrink-0 text-[var(--content-tertiary)]`}):null,(0,v.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,v.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`truncate`,children:t}),n?(0,v.jsx)(`span`,{className:`min-w-0 truncate text-xs text-[var(--content-tertiary)]`,children:n}):null,a?(0,v.jsx)(`span`,{className:`ml-auto shrink-0 text-xs text-[var(--content-tertiary)]`,children:a}):null]}),r?(0,v.jsx)(`span`,{className:`truncate text-xs font-normal text-[var(--content-tertiary)]`,children:b(r,i)}):null]})]}):(0,v.jsx)(l,{icon:e,label:(0,v.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,v.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`truncate`,children:t}),n?(0,v.jsx)(`span`,{className:`min-w-0 truncate text-[var(--content-tertiary)] text-body-small-default`,children:n}):null,a?(0,v.jsx)(`span`,{className:`ml-auto shrink-0 text-[var(--content-tertiary)] text-body-small-default`,children:a}):null]}),r?(0,v.jsx)(`span`,{className:`truncate text-[var(--content-tertiary)] text-body-small-default`,children:b(r,i)}):null]}),active:o,onSelect:s,className:r?`h-auto px-3 py-2`:`px-3 py-2`})}var S=`fixed inset-0 z-50 flex flex-col bg-[var(--surface-lift)]`,C={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))`},w={...C,pointerEvents:`none`},T=({onKeyDown:e,children:t})=>{let n=f(),r=h(),i=(0,g.useRef)(null);return(0,g.useLayoutEffect)(()=>{if(n)return;let e=document.activeElement;e instanceof HTMLElement&&i.current?.contains(e)&&e.blur()},[n]),(0,v.jsx)(p.div,{ref:i,className:S,style:n?C:w,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})},E=({isOpen:e,onClose:t,query:n,onQueryChange:i,highlightTokens:l,selectedIndex:f,sections:p,isSearching:h=!1,onItemSelect:y,onKeyDown:b,surface:w=`overlay`})=>{let E=d(),D=u(),O=(0,g.useRef)(null),k=(0,g.useRef)(null),A=(0,g.useRef)(null);(0,g.useEffect)(()=>{if(e){let e=requestAnimationFrame(()=>{k.current?.focus()});return()=>cancelAnimationFrame(e)}},[e]),(0,g.useEffect)(()=>{if(!e||!A.current)return;let t=A.current.querySelector(`[aria-current='page']`);t&&t.scrollIntoView({block:`nearest`})},[e,f]);let j=(0,g.useCallback)(e=>{e.target===O.current&&t()},[t]),M=w===`window`,N=E&&!M,P=D&&N;if(!e&&!P)return null;let F=0,I=(0,v.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[h?(0,v.jsx)(o,{size:16,"aria-hidden":!0,className:`shrink-0 animate-spin text-[var(--content-tertiary)]`}):(0,v.jsx)(s,{size:16,"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)]`}),(0,v.jsx)(`input`,{ref:k,type:`text`,value:n,onChange:e=>i(e.target.value),placeholder:`Search conversations, memories…`,className:M?`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?N?(0,v.jsx)(`button`,{type:`button`,className:`shrink-0 text-body-medium-lighter text-[var(--content-tertiary)]`,onClick:()=>i(``),"aria-label":`Clear search`,children:`Clear`}):M?(0,v.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,v.jsx)(c,{size:16,"aria-hidden":!0})}):(0,v.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,v.jsx)(c,{}),"aria-label":`Clear search`,onClick:()=>i(``),tintColor:`var(--content-tertiary)`}):N?null:(0,v.jsx)(`kbd`,{className:M?`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`}),N?(0,v.jsx)(r,{variant:`ghost`,size:`compact`,iconOnly:(0,v.jsx)(c,{}),expandOnMobile:!1,"aria-label":`Close search`,onClick:t,tintColor:`var(--content-tertiary)`}):null]}),L=(0,v.jsx)(`div`,{ref:A,className:N?`flex-1 overflow-y-auto overscroll-contain p-2`:`max-h-[360px] overflow-y-auto overscroll-contain p-2`,role:`listbox`,children:p.length===0?(0,v.jsx)(`div`,{className:`px-3 py-6 text-center`,children:(0,v.jsx)(a,{variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,children:h?`Searching…`:`No results`})}):p.map(e=>(0,v.jsxs)(`div`,{role:`group`,"aria-label":e.label,children:[(0,v.jsx)(a,{variant:`label-small-default`,as:`div`,className:M?`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=F++;return(0,v.jsx)(x,{icon:e.icon,title:e.title,subtitle:e.subtitle,snippet:e.snippet,highlightTokens:l,shortcutHint:N?void 0:e.shortcutHint,isSelected:t===f,onClick:()=>y?.(e,t),surface:w},e.id)})]},e.id))});if(P)return(0,v.jsx)(m,{children:e?(0,v.jsxs)(T,{onKeyDown:b,children:[I,L]},`command-palette-sheet`):null});if(N)return(0,v.jsxs)(`div`,{className:S,role:`dialog`,"aria-modal":`true`,"aria-label":`Search`,onKeyDown:b,style:C,children:[I,L]});let R=(0,v.jsx)(`div`,{ref:O,role:`dialog`,"aria-modal":`true`,"aria-label":`Command palette`,className:w===`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:j,onKeyDown:b,children:(0,v.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:[I,L]})});return w===`window`?R:(0,_.createPortal)(R,document.body)};export{E as CommandPalette};
@@ -0,0 +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-BshFMe0w.js";import{n as c}from"./resolved-assistants-store-C6oDdTxB.js";import{i as l,n as u,nt as d,s as f}from"./auth-store-C9aYqB9U.js";import{t as p}from"./use-app-theme-yiZ38i4_.js";import{i as m}from"./conversation-queries-BBj4FfQn.js";import{CommandPalette as h}from"./command-palette-Bd1GTwZQ.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=u.use.sessionStatus(),t=f(),n=l();p(),o(!t),r({sessionStatus:e,hasPlatformSession:n});let x=c.use.assistants(),S=c.use.activeAssistantId(),C=d(),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{t as e}from"./button-Dy5001j6.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./card-DRIctGVs.js";import{t as r}from"./createLucideIcon-CAM1RhH8.js";import{r as i}from"./middleware-HE0NLvPl.js";import{t as a}from"./bug-VUcJFHwN.js";import{t as o}from"./external-link-CAce-RVu.js";import{t as s}from"./globe-BDvXuPkw.js";import{t as c}from"./heart-2AHOP0tB.js";import{t as l}from"./play-CCT817Ah.js";import{t as u}from"./sparkles-DC8kqYjt.js";import{c as d,i as f,l as p,n as m,u as h}from"./use-discord-nudge-CRU-lEHV.js";import{t as g}from"./users-DWDkv8ju.js";import{t as _}from"./tag-D8NAGb0r.js";import{t as v}from"./external-urls-97O9n0lb.js";var y=r(`git-pull-request`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`line`,{x1:`6`,x2:`6`,y1:`9`,y2:`21`,key:`rroup`}]]),b=t();function x({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`})})}function S({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z`})})}function C({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z`})})}function w(){return(0,b.jsx)(n,{padding:`lg`,className:`bg-[var(--surface-lift)]`,children:(0,b.jsxs)(`div`,{className:`relative`,children:[(0,b.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-16 h-64 w-64 rounded-full opacity-30 blur-3xl`,style:{background:`radial-gradient(circle, var(--system-mid-weak) 0%, transparent 70%)`},"aria-hidden":!0}),(0,b.jsxs)(`div`,{className:`relative flex flex-col items-start gap-3`,children:[(0,b.jsxs)(_,{tone:`neutral`,children:[(0,b.jsx)(l,{className:`h-3.5 w-3.5`}),`Community`]}),(0,b.jsx)(`h1`,{className:`text-[28px] font-semibold leading-tight tracking-tight text-[var(--content-emphasised)]`,children:`Build with us, in the open.`}),(0,b.jsx)(`p`,{className:`max-w-xl text-body-medium-default text-[color:var(--content-tertiary)]`,children:`Vellum is built in the open with a growing community of developers, designers, and tinkerers. Here's how to get involved.`})]})]})})}function T({icon:e,text:t}){return(0,b.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,children:(0,b.jsx)(e,{size:14,className:`text-[var(--content-secondary)]`,"aria-hidden":!0})}),(0,b.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]})}function E({accentColor:t,iconColor:r=`var(--aux-white)`,label:a,icon:o,title:s,subtitle:c,benefits:l,primaryAction:u,secondaryAction:d}){return(0,b.jsx)(n,{padding:`lg`,className:`flex-1`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,b.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:r},children:o}),(0,b.jsx)(`span`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:a})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,b.jsx)(`h2`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:s}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:c})]}),(0,b.jsx)(`ul`,{className:`flex flex-col gap-3`,children:l.map(({icon:e,text:t})=>(0,b.jsx)(T,{icon:e,text:t},t))}),(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(e,{onClick:u.onClick,children:[u.icon,u.label]}),d&&(0,b.jsxs)(e,{variant:`ghost`,onClick:()=>window.open(d.href,`_blank`,`noopener,noreferrer`),children:[d.label,(0,b.jsx)(i,{className:`h-3.5 w-3.5`})]})]})]})})}function D({icon:e,iconBg:t,iconColor:r=`white`,title:i,description:a,href:s}){return(0,b.jsx)(`a`,{href:s,target:`_blank`,rel:`noopener noreferrer`,className:`flex flex-1 cursor-pointer`,children:(0,b.jsx)(n,{className:`flex-1 transition-shadow hover:shadow-md`,padding:`lg`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,b.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:r},children:e}),(0,b.jsx)(o,{size:14,className:`text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,b.jsx)(`span`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:i}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:a})]})]})})})}function O(){let{handleStar:e}=d();return(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(w,{}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,b.jsx)(E,{accentColor:`var(--content-emphasised)`,iconColor:`var(--surface-base)`,label:`Open Source`,icon:(0,b.jsx)(x,{size:20}),title:`Vellum is open source`,subtitle:`Read the source, star the repo, and contribute fixes and features on GitHub.`,benefits:[{icon:h,text:`Star the repo to follow updates`},{icon:a,text:`Open issues and report bugs`},{icon:y,text:`Contribute fixes and new features`}],primaryAction:{label:`Star on GitHub`,icon:(0,b.jsx)(h,{size:16}),onClick:e},secondaryAction:{label:`View source`,href:f}}),(0,b.jsx)(E,{accentColor:`#5865F2`,label:`Discord`,icon:(0,b.jsx)(p,{size:20}),title:`Join our community`,subtitle:`Talk to the team, share feedback, request features, and get answers faster.`,benefits:[{icon:c,text:`Talk directly with the team`},{icon:u,text:`Share feedback and request features`},{icon:g,text:`Get answers faster from the community`}],primaryAction:{label:`Join Discord`,icon:(0,b.jsx)(p,{size:16,style:{color:`currentColor`}}),onClick:m}})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:`More from Vellum`}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-3`,children:[(0,b.jsx)(D,{icon:(0,b.jsx)(s,{size:20}),iconBg:`#22c55e`,title:`Community Hub`,description:`Showcases, guides, and projects shared by the community.`,href:v}),(0,b.jsx)(D,{icon:(0,b.jsx)(S,{size:20}),iconBg:`var(--content-default)`,iconColor:`var(--surface-base)`,title:`Follow on X`,description:`Product updates, releases, and behind-the-scenes.`,href:`https://x.com/vellum_ai`}),(0,b.jsx)(D,{icon:(0,b.jsx)(C,{size:20}),iconBg:`#ef4444`,title:`YouTube channel`,description:`Walkthroughs, tutorials, and product deep-dives.`,href:`https://www.youtube.com/@Vellum_AI`})]})]})]})}export{O as CommunityPage};
1
+ import{t as e}from"./button-Dy5001j6.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./card-DRIctGVs.js";import{t as r}from"./createLucideIcon-CAM1RhH8.js";import{r as i}from"./middleware-Bxr-mmHu.js";import{t as a}from"./bug-DdmWJIkz.js";import{t as o}from"./external-link-GPGZ1LGU.js";import{t as s}from"./globe-CdLn4IX7.js";import{t as c}from"./heart-DFD4eqW-.js";import{t as l}from"./play-Dh6Bw5AP.js";import{t as u}from"./sparkles-DfEFn3Bh.js";import{c as d,i as f,l as p,n as m,u as h}from"./use-discord-nudge-DED9TaIm.js";import{t as g}from"./users-OcC3p9Jn.js";import{t as _}from"./tag-gOOX7fbA.js";import{t as v}from"./external-urls-BL9qY0s8.js";var y=r(`git-pull-request`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M13 6h3a2 2 0 0 1 2 2v7`,key:`1yeb86`}],[`line`,{x1:`6`,x2:`6`,y1:`9`,y2:`21`,key:`rroup`}]]),b=t();function x({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12`})})}function S({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z`})})}function C({size:e=24,className:t,style:n}){return(0,b.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:e,height:e,fill:`currentColor`,className:t,style:n,"aria-hidden":!0,children:(0,b.jsx)(`path`,{d:`M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z`})})}function w(){return(0,b.jsx)(n,{padding:`lg`,className:`bg-[var(--surface-lift)]`,children:(0,b.jsxs)(`div`,{className:`relative`,children:[(0,b.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-16 h-64 w-64 rounded-full opacity-30 blur-3xl`,style:{background:`radial-gradient(circle, var(--system-mid-weak) 0%, transparent 70%)`},"aria-hidden":!0}),(0,b.jsxs)(`div`,{className:`relative flex flex-col items-start gap-3`,children:[(0,b.jsxs)(_,{tone:`neutral`,children:[(0,b.jsx)(l,{className:`h-3.5 w-3.5`}),`Community`]}),(0,b.jsx)(`h1`,{className:`text-[28px] font-semibold leading-tight tracking-tight text-[var(--content-emphasised)]`,children:`Build with us, in the open.`}),(0,b.jsx)(`p`,{className:`max-w-xl text-body-medium-default text-[color:var(--content-tertiary)]`,children:`Vellum is built in the open with a growing community of developers, designers, and tinkerers. Here's how to get involved.`})]})]})})}function T({icon:e,text:t}){return(0,b.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,children:(0,b.jsx)(e,{size:14,className:`text-[var(--content-secondary)]`,"aria-hidden":!0})}),(0,b.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]})}function E({accentColor:t,iconColor:r=`var(--aux-white)`,label:a,icon:o,title:s,subtitle:c,benefits:l,primaryAction:u,secondaryAction:d}){return(0,b.jsx)(n,{padding:`lg`,className:`flex-1`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,b.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:r},children:o}),(0,b.jsx)(`span`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:a})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,b.jsx)(`h2`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:s}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:c})]}),(0,b.jsx)(`ul`,{className:`flex flex-col gap-3`,children:l.map(({icon:e,text:t})=>(0,b.jsx)(T,{icon:e,text:t},t))}),(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(e,{onClick:u.onClick,children:[u.icon,u.label]}),d&&(0,b.jsxs)(e,{variant:`ghost`,onClick:()=>window.open(d.href,`_blank`,`noopener,noreferrer`),children:[d.label,(0,b.jsx)(i,{className:`h-3.5 w-3.5`})]})]})]})})}function D({icon:e,iconBg:t,iconColor:r=`white`,title:i,description:a,href:s}){return(0,b.jsx)(`a`,{href:s,target:`_blank`,rel:`noopener noreferrer`,className:`flex flex-1 cursor-pointer`,children:(0,b.jsx)(n,{className:`flex-1 transition-shadow hover:shadow-md`,padding:`lg`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,b.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:r},children:e}),(0,b.jsx)(o,{size:14,className:`text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,b.jsx)(`span`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:i}),(0,b.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:a})]})]})})})}function O(){let{handleStar:e}=d();return(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(w,{}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,b.jsx)(E,{accentColor:`var(--content-emphasised)`,iconColor:`var(--surface-base)`,label:`Open Source`,icon:(0,b.jsx)(x,{size:20}),title:`Vellum is open source`,subtitle:`Read the source, star the repo, and contribute fixes and features on GitHub.`,benefits:[{icon:h,text:`Star the repo to follow updates`},{icon:a,text:`Open issues and report bugs`},{icon:y,text:`Contribute fixes and new features`}],primaryAction:{label:`Star on GitHub`,icon:(0,b.jsx)(h,{size:16}),onClick:e},secondaryAction:{label:`View source`,href:f}}),(0,b.jsx)(E,{accentColor:`#5865F2`,label:`Discord`,icon:(0,b.jsx)(p,{size:20}),title:`Join our community`,subtitle:`Talk to the team, share feedback, request features, and get answers faster.`,benefits:[{icon:c,text:`Talk directly with the team`},{icon:u,text:`Share feedback and request features`},{icon:g,text:`Get answers faster from the community`}],primaryAction:{label:`Join Discord`,icon:(0,b.jsx)(p,{size:16,style:{color:`currentColor`}}),onClick:m}})]}),(0,b.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,b.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:`More from Vellum`}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-3`,children:[(0,b.jsx)(D,{icon:(0,b.jsx)(s,{size:20}),iconBg:`#22c55e`,title:`Community Hub`,description:`Showcases, guides, and projects shared by the community.`,href:v}),(0,b.jsx)(D,{icon:(0,b.jsx)(S,{size:20}),iconBg:`var(--content-default)`,iconColor:`var(--surface-base)`,title:`Follow on X`,description:`Product updates, releases, and behind-the-scenes.`,href:`https://x.com/vellum_ai`}),(0,b.jsx)(D,{icon:(0,b.jsx)(C,{size:20}),iconBg:`#ef4444`,title:`YouTube channel`,description:`Walkthroughs, tutorials, and product deep-dives.`,href:`https://www.youtube.com/@Vellum_AI`})]})]})]})}export{O as CommunityPage};
@@ -1 +1 @@
1
- import{t as e}from"./button-Dy5001j6.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./loader-circle-BzJ2kz3F.js";import{t as r}from"./triangle-alert--e3n47gm.js";import{t as i}from"./modal-DwsThLGg.js";var a=t(),o=`data-confirm-dialog-confirm`;function s({open:t,title:s,message:c,confirmLabel:l=`Confirm`,cancelLabel:u=`Cancel`,destructive:d=!1,isPending:f=!1,onConfirm:p,onCancel:m}){return(0,a.jsx)(i.Root,{open:t,onOpenChange:e=>{!e&&!f&&m()},children:(0,a.jsxs)(i.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{let t=e.currentTarget?.querySelector(`[${o}]`);t&&(e.preventDefault(),t.focus())},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),f||m()},children:[(0,a.jsx)(i.Header,{children:(0,a.jsx)(i.Title,{icon:d?r:void 0,children:s})}),(0,a.jsx)(i.Body,{children:(0,a.jsx)(i.Description,{children:c})}),(0,a.jsxs)(i.Footer,{children:[(0,a.jsx)(e,{variant:`outlined`,onClick:m,disabled:f,children:u}),(0,a.jsx)(e,{variant:d?`danger`:`primary`,onClick:p,disabled:f,leftIcon:f?(0,a.jsx)(n,{className:`animate-spin`}):void 0,[o]:``,children:l})]})]})})}export{s as t};
1
+ import{t as e}from"./button-Dy5001j6.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import{t as n}from"./loader-circle-DWWXcfTQ.js";import{t as r}from"./triangle-alert-D6bAGtMw.js";import{t as i}from"./modal-xr_vw1ZO.js";var a=t(),o=`data-confirm-dialog-confirm`;function s({open:t,title:s,message:c,confirmLabel:l=`Confirm`,cancelLabel:u=`Cancel`,destructive:d=!1,isPending:f=!1,onConfirm:p,onCancel:m}){return(0,a.jsx)(i.Root,{open:t,onOpenChange:e=>{!e&&!f&&m()},children:(0,a.jsxs)(i.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{let t=e.currentTarget?.querySelector(`[${o}]`);t&&(e.preventDefault(),t.focus())},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),f||m()},children:[(0,a.jsx)(i.Header,{children:(0,a.jsx)(i.Title,{icon:d?r:void 0,children:s})}),(0,a.jsx)(i.Body,{children:(0,a.jsx)(i.Description,{children:c})}),(0,a.jsxs)(i.Footer,{children:[(0,a.jsx)(e,{variant:`outlined`,onClick:m,disabled:f,children:u}),(0,a.jsx)(e,{variant:d?`danger`:`primary`,onClick:p,disabled:f,leftIcon:f?(0,a.jsx)(n,{className:`animate-spin`}):void 0,[o]:``,children:l})]})]})})}export{s as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.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-DEI9Ra9z.js";import{t as l}from"./card-DRIctGVs.js";import{t as u}from"./link-2-BMNZFfWH.js";import{t as d}from"./loader-circle-BzJ2kz3F.js";import{t as f}from"./triangle-alert--e3n47gm.js";import{n as p}from"./toast-DR7D7Uma.js";import{d as m}from"./routes-GmNvdtLW.js";import{t as h}from"./use-active-assistant-id-CjvzlL4t.js";import{n as g}from"./a2a-invite-CfhpXDTT.js";import{r as _}from"./contacts-gateway-C628mrY_.js";var v=e(t(),1),y=s();function b(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function x(e,t){switch(e){case`expired`:case`not_found`:return`This invite link has expired or already been used.`;case`already_redeemed_by_other`:return`This invite has already been claimed by someone else.`;case`sender_not_found`:return`The sender's assistant could not be found.`;case`not_platform_managed`:return`A2A invite links are only supported for platform-hosted assistants.`;default:return t||`Something went wrong. Please try again.`}}function S(){return(0,y.jsx)(C,{assistantId:h()})}function C({assistantId:e}){let t=i(),s=a(),[h]=r(),S=(0,v.useMemo)(()=>g(h),[h]),C=o({mutationFn:()=>{if(!S)throw Error(`Invalid invite link`);return _(e,{senderAssistantId:S.senderAssistantId,token:S.token})},onSuccess:e=>{e.success&&(s.invalidateQueries({predicate:e=>b(e.queryKey)}),e.alreadyConnected?p(`Already connected`):p(`Connected!`),t(m.contacts.root))}}),w=(0,v.useCallback)(()=>{t(m.contacts.root)},[t]),T=(0,v.useCallback)(()=>{C.mutate()},[C]),E=(0,v.useMemo)(()=>C.isError?C.error instanceof Error?C.error.message:`Something went wrong. Please try again.`:C.data&&!C.data.success?x(C.data.errorCode,C.data.error):null,[C.isError,C.error,C.data]);return S?(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(l,{className:`w-full max-w-md`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(u,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,y.jsx)(c,{variant:`title-small`,children:`Connect assistants`})]}),(0,y.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Accepting this link will create a trusted A2A connection between your assistant and the sender's.`}),E&&(0,y.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,y.jsx)(f,{className:`h-4 w-4 shrink-0`}),(0,y.jsx)(c,{variant:`body-small-default`,children:E})]}),(0,y.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,y.jsx)(n,{variant:`primary`,onClick:T,disabled:C.isPending,children:C.isPending?(0,y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(d,{className:`h-4 w-4 animate-spin`}),`Connecting…`]}):`Connect`}),(0,y.jsx)(n,{variant:`outlined`,onClick:w,disabled:C.isPending,children:`Cancel`})]})]})})}):(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(l,{className:`w-full max-w-md`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(f,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,y.jsx)(c,{variant:`title-small`,children:`Invalid invite link`})]}),(0,y.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`The link you followed is missing required parameters and cannot be used.`}),(0,y.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,y.jsx)(n,{variant:`primary`,onClick:w,children:`Go to Contacts`})})]})})})}export{S as ConnectPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,u as i}from"./chunk-5KNZJZUH-Bsoom5--.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-DEI9Ra9z.js";import{t as l}from"./card-DRIctGVs.js";import{t as u}from"./link-2-DhyrrFaE.js";import{t as d}from"./loader-circle-DWWXcfTQ.js";import{t as f}from"./triangle-alert-D6bAGtMw.js";import{n as p}from"./toast-BtFgiPe3.js";import{d as m}from"./routes-DrfnNoYS.js";import{t as h}from"./use-active-assistant-id-JLsAfn3e.js";import{n as g}from"./a2a-invite-Bld7VHkJ.js";import{r as _}from"./contacts-gateway-DRzp5PC6.js";var v=e(t(),1),y=s();function b(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function x(e,t){switch(e){case`expired`:case`not_found`:return`This invite link has expired or already been used.`;case`already_redeemed_by_other`:return`This invite has already been claimed by someone else.`;case`sender_not_found`:return`The sender's assistant could not be found.`;case`not_platform_managed`:return`A2A invite links are only supported for platform-hosted assistants.`;default:return t||`Something went wrong. Please try again.`}}function S(){return(0,y.jsx)(C,{assistantId:h()})}function C({assistantId:e}){let t=i(),s=a(),[h]=r(),S=(0,v.useMemo)(()=>g(h),[h]),C=o({mutationFn:()=>{if(!S)throw Error(`Invalid invite link`);return _(e,{senderAssistantId:S.senderAssistantId,token:S.token})},onSuccess:e=>{e.success&&(s.invalidateQueries({predicate:e=>b(e.queryKey)}),e.alreadyConnected?p(`Already connected`):p(`Connected!`),t(m.contacts.root))}}),w=(0,v.useCallback)(()=>{t(m.contacts.root)},[t]),T=(0,v.useCallback)(()=>{C.mutate()},[C]),E=(0,v.useMemo)(()=>C.isError?C.error instanceof Error?C.error.message:`Something went wrong. Please try again.`:C.data&&!C.data.success?x(C.data.errorCode,C.data.error):null,[C.isError,C.error,C.data]);return S?(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(l,{className:`w-full max-w-md`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(u,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,y.jsx)(c,{variant:`title-small`,children:`Connect assistants`})]}),(0,y.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Accepting this link will create a trusted A2A connection between your assistant and the sender's.`}),E&&(0,y.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,y.jsx)(f,{className:`h-4 w-4 shrink-0`}),(0,y.jsx)(c,{variant:`body-small-default`,children:E})]}),(0,y.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,y.jsx)(n,{variant:`primary`,onClick:T,disabled:C.isPending,children:C.isPending?(0,y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(d,{className:`h-4 w-4 animate-spin`}),`Connecting…`]}):`Connect`}),(0,y.jsx)(n,{variant:`outlined`,onClick:w,disabled:C.isPending,children:`Cancel`})]})]})})}):(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(l,{className:`w-full max-w-md`,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(f,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,y.jsx)(c,{variant:`title-small`,children:`Invalid invite link`})]}),(0,y.jsx)(c,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`The link you followed is missing required parameters and cannot be used.`}),(0,y.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,y.jsx)(n,{variant:`primary`,onClick:w,children:`Go to Contacts`})})]})})})}export{S as ConnectPage};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./card-DRIctGVs.js";import{t as n}from"./checkbox-BZTUJtxM.js";import{d as r,u as i}from"./routes-GmNvdtLW.js";import{t as a}from"./setting-row-DEyL7IUP.js";var o=e(),s=[`[&_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(` `),c=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,l={privacy:{href:r.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:r.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function u({kind:e,checked:t,onChange:r}){let a=l[e];return(0,o.jsx)(n,{checked:t,onCheckedChange:e=>r(e===!0),label:(0,o.jsxs)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:[`I agree to the`,` `,(0,o.jsx)(`a`,{href:i(a.href),target:`_blank`,rel:`noreferrer`,className:`underline`,children:a.text})]}),"aria-label":a.aria,className:s})}function d(){return(0,o.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function f({notes:e}){return!e||e.length===0?null:(0,o.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,o.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:`What's changed`}),e.length===1?(0,o.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,o.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,o.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,o.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,o.jsx)(`span`,{children:e})]},e))})]})}function p({electron:e,showAnalytics:n=!0,showDiagnostics:r=!0,shareAnalytics:i,shareDiagnostics:s,onShareAnalyticsChange:l,onShareDiagnosticsChange:u,className:f,style:p}){return(0,o.jsxs)(`section`,{className:f,style:p,children:[(0,o.jsx)(`p`,{className:c,children:`Privacy preferences`}),(0,o.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,o.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3`:`gap-4`}`,children:[n&&(0,o.jsx)(a,{label:`Share Analytics`,helperText:`Send aggregated product usage data`,checked:i,onChange:l}),n&&r&&(0,o.jsx)(d,{}),r&&(0,o.jsx)(a,{label:`Share Diagnostics`,helperText:`Send crash reports, conversation traces, and session replay data`,checked:s,onChange:u})]})})]})}function m({electron:e,showPrivacy:n=!0,showTos:r=!0,privacyConsent:i,tosAccepted:a,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:m,style:h}){return(0,o.jsxs)(`section`,{className:m,style:h,children:[(0,o.jsx)(`p`,{className:c,children:`Agreements`}),(0,o.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,o.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3.5`:`gap-4`}`,children:[n&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(f,{notes:d}),(0,o.jsx)(u,{kind:`privacy`,checked:i,onChange:s})]}),r&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(f,{notes:p}),(0,o.jsx)(u,{kind:`tos`,checked:a,onChange:l})]})]})})]})}export{p as n,m as t};
1
+ import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./card-DRIctGVs.js";import{t as n}from"./checkbox-PU47Djxg.js";import{d as r,u as i}from"./routes-DrfnNoYS.js";import{t as a}from"./setting-row-C4jX7c_4.js";var o=e(),s=[`[&_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(` `),c=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,l={privacy:{href:r.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:r.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function u({kind:e,checked:t,onChange:r}){let a=l[e];return(0,o.jsx)(n,{checked:t,onCheckedChange:e=>r(e===!0),label:(0,o.jsxs)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:[`I agree to the`,` `,(0,o.jsx)(`a`,{href:i(a.href),target:`_blank`,rel:`noreferrer`,className:`underline`,children:a.text})]}),"aria-label":a.aria,className:s})}function d(){return(0,o.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function f({notes:e}){return!e||e.length===0?null:(0,o.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,o.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:`What's changed`}),e.length===1?(0,o.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,o.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,o.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,o.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,o.jsx)(`span`,{children:e})]},e))})]})}function p({electron:e,showAnalytics:n=!0,showDiagnostics:r=!0,shareAnalytics:i,shareDiagnostics:s,onShareAnalyticsChange:l,onShareDiagnosticsChange:u,className:f,style:p}){return(0,o.jsxs)(`section`,{className:f,style:p,children:[(0,o.jsx)(`p`,{className:c,children:`Privacy preferences`}),(0,o.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,o.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3`:`gap-4`}`,children:[n&&(0,o.jsx)(a,{label:`Share Analytics`,helperText:`Send aggregated product usage data`,checked:i,onChange:l}),n&&r&&(0,o.jsx)(d,{}),r&&(0,o.jsx)(a,{label:`Share Diagnostics`,helperText:`Send crash reports, conversation traces, and session replay data`,checked:s,onChange:u})]})})]})}function m({electron:e,showPrivacy:n=!0,showTos:r=!0,privacyConsent:i,tosAccepted:a,onPrivacyChange:s,onTosChange:l,privacyNotes:d,tosNotes:p,className:m,style:h}){return(0,o.jsxs)(`section`,{className:m,style:h,children:[(0,o.jsx)(`p`,{className:c,children:`Agreements`}),(0,o.jsx)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,o.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3.5`:`gap-4`}`,children:[n&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(f,{notes:d}),(0,o.jsx)(u,{kind:`privacy`,checked:i,onChange:s})]}),r&&(0,o.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,o.jsx)(f,{notes:p}),(0,o.jsx)(u,{kind:`tos`,checked:a,onChange:l})]})]})})]})}export{p as n,m as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./onboarding-store-BiTZenvP.js";function t(){let{shareAnalytics:t,serverAnalyticsEffective:n,pendingAnalyticsOptIn:r}=e.getState();return t===!1?!1:r?!0:n??!0}export{t};
@@ -1 +1 @@
1
- import{n as e,r as t,t as n}from"./api-errors-SZKDzMLE.js";import{t as r}from"./client.gen-DHOmbzD9.js";import{c as i,s as a,u as o}from"./sdk.gen-DEFA-6EJ.js";async function s(r,i){let{data:a,error:s,response:c}=await o({path:{assistant_id:r},body:i,throwOnError:!1});if(e(c,s,`Failed to save contact`),!c.ok||!a?.contact)throw new n(c.status,t(s,c,`Failed to save contact`));return a.contact}async function c(r,a){let{error:o,response:s}=await i({path:{assistant_id:r,contact_id:a},throwOnError:!1});if(e(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new n(s.status,t(o,s,`Failed to delete contact`))}async function l(r,i){let{error:o,response:s}=await a({path:{assistant_id:r,channel_id:i},throwOnError:!1});if(e(s,o,`Failed to verify channel`),!s.ok)throw new n(s.status,t(o,s,`Failed to verify channel`))}async function u(e,t,r){let i=(await s(e,{id:t.id,displayName:t.displayName,channels:[{type:r.type,address:r.address}]})).channels.find(e=>e.type===r.type&&e.address.toLowerCase()===r.address.toLowerCase());if(!i)throw new n(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new n(409,`That account is blocked for this contact. Unblock it before linking.`);await l(e,i.id)}async function d(i,a){let{data:o,error:s,response:c}=await r.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:i},body:{sender_assistant_id:a.senderAssistantId,token:a.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(e(c,s,`Failed to redeem A2A invite`),!c.ok)throw new n(c.status,t(s,c,`Failed to redeem A2A invite`));return{success:o?.success??!0,alreadyConnected:o?.already_connected,error:o?.error,errorCode:o?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
1
+ import{n as e,r as t,t as n}from"./api-errors-BRGPPSWw.js";import{t as r}from"./client.gen-Dq2brHDV.js";import{c as i,s as a,u as o}from"./sdk.gen-BpJ1vF7l.js";async function s(r,i){let{data:a,error:s,response:c}=await o({path:{assistant_id:r},body:i,throwOnError:!1});if(e(c,s,`Failed to save contact`),!c.ok||!a?.contact)throw new n(c.status,t(s,c,`Failed to save contact`));return a.contact}async function c(r,a){let{error:o,response:s}=await i({path:{assistant_id:r,contact_id:a},throwOnError:!1});if(e(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new n(s.status,t(o,s,`Failed to delete contact`))}async function l(r,i){let{error:o,response:s}=await a({path:{assistant_id:r,channel_id:i},throwOnError:!1});if(e(s,o,`Failed to verify channel`),!s.ok)throw new n(s.status,t(o,s,`Failed to verify channel`))}async function u(e,t,r){let i=(await s(e,{id:t.id,displayName:t.displayName,channels:[{type:r.type,address:r.address}]})).channels.find(e=>e.type===r.type&&e.address.toLowerCase()===r.address.toLowerCase());if(!i)throw new n(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new n(409,`That account is blocked for this contact. Unblock it before linking.`);await l(e,i.id)}async function d(i,a){let{data:o,error:s,response:c}=await r.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:i},body:{sender_assistant_id:a.senderAssistantId,token:a.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(e(c,s,`Failed to redeem A2A invite`),!c.ok)throw new n(c.status,t(s,c,`Failed to redeem A2A invite`));return{success:o?.success??!0,alreadyConnected:o?.already_connected,error:o?.error,errorCode:o?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,n as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./typography-DEI9Ra9z.js";import{t as d}from"./card-DRIctGVs.js";import{t as f}from"./createLucideIcon-CAM1RhH8.js";import{t as p}from"./arrow-left-C2ylPLHq.js";import{t as m}from"./arrow-right-B-jRJNWP.js";import{S as h,a as g,b as _,c as v,f as y,l as b,u as x,x as S}from"./use-save-twilio-credentials-CCp1iqBf.js";import{t as C}from"./circle-check-big-DSsDH5_6.js";import{t as w}from"./ellipsis-vertical-nov0xhhF.js";import{t as T}from"./link-2-BMNZFfWH.js";import{t as E}from"./loader-circle-BzJ2kz3F.js";import{t as D}from"./mail-DABv3_Ue.js";import{t as O}from"./message-square-zCNXaHYX.js";import{t as k}from"./pencil-CLJIvYKH.js";import{t as A}from"./plus-JG7kWjHA.js";import{t as j}from"./search-DA3TmTuR.js";import{t as M}from"./send-DHWUIK7G.js";import{t as N}from"./user-plus-CXMJ1x_5.js";import{t as P}from"./tag-D8NAGb0r.js";import{t as F}from"./input-C-GkeWCw.js";import{t as I}from"./modal-DwsThLGg.js";import{t as L}from"./panel-item-DGs4s9r-.js";import{n as ee}from"./toast-DR7D7Uma.js";import{t as R}from"./confirm-dialog-DZX6LhLy.js";import{t as te}from"./assistant-identity-store-BczULg2T.js";import{C as ne}from"./sdk.gen-BySz4QYj.js";import{d as re}from"./routes-GmNvdtLW.js";import{Gt as ie,Kt as ae,S as z,a as oe,b as se,x as ce}from"./react-query.gen-0mspArBl.js";import{n as B}from"./conversation-navigation-D63NJmBl.js";import{t as le}from"./assistant-feature-flag-store-CMUNSAPL.js";import{t as V}from"./use-active-assistant-id-CjvzlL4t.js";import{t as H}from"./detail-card-D-5EWmAS.js";import{n as ue,t as de}from"./mobile-sidebar-drawer-BnxfQaDB.js";import{i as fe,n as pe,r as U,t as me}from"./use-invite-link-dialog-DN2IHVZE.js";import{t as W}from"./mutation-error-CXV1BKlB.js";import{a as he,i as ge,n as _e,t as ve}from"./contacts-gateway-C628mrY_.js";var ye=f(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),be=f(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),G=e(t(),1),xe=new Set([`slack`]);function K(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}var q=l();function Se({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let[i,a]=(0,G.useState)(null);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,q.jsxs)(`div`,{children:[i>0?(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,q.jsx)(J,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r?()=>a(e.key):void 0})]},e.key))}),(0,q.jsx)(R,{open:i!==null,title:`Disconnect ${i?y(i):``}?`,message:`This clears the stored credentials for this channel. You can reconnect later.`,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{i&&r&&r(i),a(null)},onCancel:()=>a(null)})]})}function J({channel:e,pending:t,onConnect:r,onDisconnect:i}){let a=e.status===`ready`;return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,q.jsx)(x,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:y(e.key)}),a&&e.address?(0,q.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,q.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,q.jsx)(C,{className:`h-3 w-3`}),`Connected`]}),(0,q.jsx)(n,{variant:`danger`,onClick:i,disabled:!i||t,children:t?`Disconnecting…`:`Disconnect`})]}):(0,q.jsx)(n,{variant:`outlined`,onClick:r,disabled:!r||t,children:`Connect`})})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,q.jsx)(P,{tone:r,children:n})}function X(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Ce({assistantName:e,...t}){let n=b(e);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(H,{title:`${n} (Your Assistant)`,accessory:(0,q.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,q.jsx)(H,{title:`Channels`,subtitle:`Where ${n} can be reached.`,children:(0,q.jsx)(Se,{...t})})]})}var Z=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function we(e){return Z.has(e)}function Te(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&K(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ee(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||we(e.type)&&(r.push({id:e.type,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Q({name:e,className:t,style:n}){switch(e){case`bot`:return(0,q.jsx)(h,{className:t,style:n});case`hash`:return(0,q.jsx)(S,{className:t,style:n});case`send`:return(0,q.jsx)(M,{className:t,style:n});case`phone`:return(0,q.jsx)(_,{className:t,style:n});case`mail`:return(0,q.jsx)(D,{className:t,style:n});case`message-square`:return(0,q.jsx)(O,{className:t,style:n});default:return(0,q.jsx)(ye,{className:t,style:n})}}function $({contactChannels:e,availableChannels:t,a2aEnabled:n,setupLabel:r=`Invite`,verifyLoading:i,verifySubject:a=`self`,onSetupChannel:o,onVerifyChannel:s,onRevokeChannel:c,onLinkAccount:l}){let[u,d]=(0,G.useState)(null),[f,p]=(0,G.useState)(null),m=new Map;for(let t of e)t.status!==`revoked`&&(m.has(t.type)||m.set(t.type,t));return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col`,children:Ee(t,e,n).map((e,t)=>{let n=m.get(e.id);return(0,q.jsxs)(`div`,{children:[t>0&&(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,q.jsx)(De,{info:e,existing:n,setupLabel:r,verifyLoading:i,onSetup:o?()=>o(e.id):void 0,onVerify:s&&e.supportsVerification?()=>d(e):void 0,onRevoke:c&&n?()=>p({channelId:n.id,channel:e}):void 0,onLinkAccount:l&&xe.has(e.id)?()=>l(e.id):void 0})]},e.id)})}),u&&(0,q.jsx)(R,{open:!0,title:`Verify ${u.label}`,message:a===`contact`?`This will mark this contact's ${u.label} channel as verified. Your assistant will recognize them when they reach out from it.`:`This will mark your ${u.label} channel as verified. Your assistant will recognize you when you reach out from it.`,confirmLabel:`Verify`,onConfirm:()=>{u&&(s?.(u.id),d(null))},onCancel:()=>d(null)}),f&&(0,q.jsx)(R,{open:!0,title:`Revoke ${f.channel.label}`,message:`This will disconnect the verified channel. The contact will need to re-verify to use this channel again.`,confirmLabel:`Revoke`,destructive:!0,onConfirm:()=>{c?.(f.channelId,f.channel.id),p(null)},onCancel:()=>p(null)})]})}function De({info:e,existing:t,setupLabel:r,verifyLoading:i,onSetup:a,onVerify:o,onRevoke:s,onLinkAccount:c}){let l=Te(e,t);return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,q.jsx)(Q,{name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,q.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,q.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:l.kind===`connected`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,q.jsx)(C,{className:`h-3 w-3`}),`Connected`]}),s?(0,q.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):l.kind===`verified`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,q.jsx)(C,{className:`h-3 w-3`}),`Verified`]}),s?(0,q.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):l.kind===`unverified`?(0,q.jsx)(n,{variant:`outlined`,onClick:o,disabled:!o||i,children:i?`Verifying…`:`Verify`}):l.kind===`setup`?e.id===`a2a`?null:(0,q.jsxs)(q.Fragment,{children:[c?(0,q.jsxs)(n,{onClick:c,children:[(0,q.jsx)(T,{className:`h-3.5 w-3.5`}),`Link account`]}):null,(0,q.jsx)(n,{variant:`outlined`,onClick:a,disabled:!a,children:r})]}):null})]})}function Oe(e){return(0,q.jsx)(ke,{...e},e.contact.id)}function ke({contact:e,savePending:t,deletePending:r,verifyPending:i,mergePending:a=!1,canMerge:o=!1,availableChannels:s,a2aEnabled:c,onSave:l,onDelete:u,onMerge:d,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h}){let g=e.displayName===`New Contact`,[_,v]=(0,G.useState)(g?``:e.displayName),[y,b]=(0,G.useState)(e.notes??``),[x,S]=(0,G.useState)(!1),C=_.trim(),w=y.trim(),T=g?``:e.displayName,E=e.notes??``,D=C!==T||w!==E,O=C.length>0&&D&&!t&&!r,k=g&&e.channels.length===0&&e.interactionCount===0,A=C||e.displayName,j=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(H,{title:A,accessory:(0,q.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:j,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(F,{label:`Name`,type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Give this human a name`,autoFocus:g,disabled:t||r,fullWidth:!0}),(0,q.jsx)(F,{label:`Notes`,type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`Optional notes about the human which AI will take into account`,disabled:t||r,fullWidth:!0}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(n,{type:`button`,onClick:()=>l({displayName:C,notes:w}),disabled:!O,children:t?`Saving…`:`Save`}),d?(0,q.jsx)(n,{type:`button`,variant:`outlined`,onClick:d,disabled:!o||k||D||a||t||r,title:o?k?`Save this contact before merging`:D?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:a?`Merging…`:`Merge…`}):null,(0,q.jsx)(n,{type:`button`,variant:`danger`,onClick:()=>{k?u():S(!0)},disabled:r,children:r?`Deleting…`:`Delete Contact`})]})]})}),(0,q.jsx)(H,{title:`Linked accounts`,subtitle:`Where the assistant recognizes this contact. Link accounts you know, invite the ones you don't.`,children:(0,q.jsx)($,{contactChannels:e.channels,availableChannels:s,a2aEnabled:c,verifyLoading:i,verifySubject:`contact`,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h})}),(0,q.jsx)(R,{open:x,title:`Delete ${e.displayName}?`,message:`This will permanently delete this contact and all their channels. This action cannot be undone.`,confirmLabel:`Delete`,destructive:!0,onConfirm:()=>{S(!1),u()},onCancel:()=>S(!1)})]})}function Ae(e){return(0,q.jsx)(je,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function je({open:e,survivor:t,candidates:r,pending:i,errorMessage:a,onMerge:o,onClose:s}){let[c,l]=(0,G.useState)(``),[d,f]=(0,G.useState)(null);(0,G.useEffect)(()=>{d&&!r.some(e=>e.id===d)&&f(null)},[r,d]);let m=(0,G.useMemo)(()=>{let e=c.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,c]),h=d?r.find(e=>e.id===d)??null:null,g=Ie(t);return(0,q.jsx)(I.Root,{open:e,onOpenChange:e=>{!e&&!i&&s()},children:(0,q.jsxs)(I.Content,{size:`md`,children:[(0,q.jsxs)(I.Header,{children:[(0,q.jsx)(I.Title,{icon:be,children:h?`Merge "${h.displayName}" into ${g}?`:`Merge another contact into ${g}`}),(0,q.jsx)(I.Description,{children:h?`Channels and notes from the merged contact will move over. The merged contact will be deleted.`:`The contact you pick will be deleted. Its channels and notes will be added to this one.`})]}),(0,q.jsxs)(I.Body,{className:`flex flex-col gap-3`,children:[h?(0,q.jsx)(Pe,{survivor:t,donor:h}):r.length===0?(0,q.jsx)(Fe,{}):(0,q.jsx)(Me,{search:c,onSearch:l,candidates:m,onPick:f}),a?(0,q.jsx)(u,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,q.jsx)(I.Footer,{children:h?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(n,{variant:`outlined`,onClick:()=>f(null),disabled:i,leftIcon:(0,q.jsx)(p,{"aria-hidden":!0}),children:`Back`}),(0,q.jsx)(n,{variant:`danger`,onClick:()=>o(h.id),disabled:i,children:i?`Merging…`:`Merge`})]}):(0,q.jsx)(n,{variant:`outlined`,onClick:s,disabled:i,children:`Cancel`})})]})})}function Me({search:e,onSearch:t,candidates:n,onPick:r}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(F,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:`Search contacts`,leftIcon:(0,q.jsx)(j,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,q.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":`Select a contact to merge`,children:n.length===0?(0,q.jsx)(u,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:`No matching contacts`}):n.map(e=>(0,q.jsx)(Ne,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function Ne({contact:e,onPick:t}){let n=Be(e).join(` | `)||void 0;return(0,q.jsx)(L,{asChild:!0,label:``,children:(0,q.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,q.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function Pe({survivor:e,donor:t}){let n=Ie(e),{moved:r,duplicates:i}=ze(e,t);return(0,q.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,q.jsxs)(`li`,{children:[(0,q.jsxs)(`span`,{className:`text-(--content-default)`,children:[`“`,t.displayName,`”`]}),` `,`will be deleted.`]}),(0,q.jsx)(`li`,{children:r.length===0?`No new channels will move to ${n}.`:`${r.length} channel${r.length===1?``:`s`} will move to ${n}: ${r.map(e=>Re(e.type)).join(`, `)}.`}),i.length>0?(0,q.jsxs)(`li`,{className:`text-(--content-tertiary)`,children:[i.length,` duplicate channel`,i.length===1?``:`s`,` already on `,n,` `,`(skipped).`]}):null,t.notes?(0,q.jsx)(`li`,{children:`Notes from the merged contact will be appended.`}):null,(0,q.jsx)(`li`,{className:`text-(--content-tertiary)`,children:`This cannot be undone.`})]})}function Fe(){return(0,q.jsx)(u,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:`No other contacts available to merge.`})}function Ie(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?`you`:`${e.displayName} (you)`:e.displayName||`this contact`}var Le={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`};function Re(e){return Le[e.toLowerCase()]??e}function ze(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function Be(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(Le[e]??r.type))}return n}function Ve({loading:e,guardian:t,assistantName:r,regularContacts:i,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1}){let[l,u]=(0,G.useState)(``),f=l.trim()?i.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):i;return(0,q.jsx)(d.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,q.jsxs)(d.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:`Entries`}),(0,q.jsx)(n,{type:`button`,variant:`ghost`,iconOnly:c?(0,q.jsx)(E,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(A,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":`Add contact`,tintColor:`var(--content-secondary)`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,q.jsx)(He,{name:t.displayName?`${t.displayName} (You)`:`You`,role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,q.jsx)(He,{name:r?.trim()||`Your Assistant`,role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),i.length>0?(0,q.jsx)(F,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Search Contacts`,leftIcon:(0,q.jsx)(j,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,i.length>0?(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[f.map(e=>(0,q.jsx)(He,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:a?.kind===`contact`&&a.contactId===e.id,onClick:()=>o({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),f.length===0?(0,q.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`No matching contacts`}):null]}):e?null:(0,q.jsx)(n,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,q.jsx)(E,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(N,{"aria-hidden":!0}),children:`Add Contact`})]})})}function He({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:s}){let c=r&&r.length>0?r.join(` | `):void 0;return(0,q.jsx)(L,{asChild:!0,active:i,label:``,trailingAction:o===`pencil`?(0,q.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):o===`more`?(0,q.jsx)(w,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):void 0,children:(0,q.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),c?(0,q.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:c}):null]}),(0,q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[s===void 0?null:(0,q.jsx)(P,{tone:s?`positive`:`neutral`,children:s?`Verified`:`Unverified`}),(0,q.jsx)(Y,{role:t,contactType:n})]})]})})}function Ue(e){return(0,q.jsx)(We,{...e},e.contact.id)}function We({contact:e,savePending:t,verifyPending:r,mergePending:i=!1,canMerge:a=!1,availableChannels:o,a2aEnabled:s,onSave:c,onMerge:l,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f,onGenerateInviteLink:p}){let m=e.displayName.startsWith(`vellum-principal-`),h=m?``:e.displayName,[g,_]=(0,G.useState)(h),[v,y]=(0,G.useState)(e.notes??``),b=g.trim(),x=v.trim(),S=b!==h.trim()||x!==(e.notes??``).trim(),C=S&&!t,w=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(H,{title:m?`You`:`${e.displayName} (You)`,accessory:(0,q.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:w,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(F,{label:`Name`,type:`text`,value:g,onChange:e=>_(e.target.value),placeholder:`Your name`,disabled:t,fullWidth:!0}),(0,q.jsx)(F,{label:`Notes`,type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:`Notes about yourself which AI will take into account`,disabled:t,fullWidth:!0}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(n,{variant:`primary`,onClick:()=>c({displayName:b||e.displayName,notes:x}),disabled:!C,children:t?`Saving…`:`Save`}),l?(0,q.jsx)(n,{variant:`outlined`,onClick:l,disabled:!a||S||i||t,title:a?S?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:i?`Merging…`:`Merge…`}):null]})]})}),(0,q.jsx)(H,{title:`Channels`,subtitle:`Once verified, your assistant will recognize you when you message from these channels.`,children:(0,q.jsx)($,{contactChannels:e.channels,availableChannels:o,a2aEnabled:s,setupLabel:`Verify me`,verifyLoading:r,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f})}),p?(0,q.jsx)(U,{onClick:p}):null]})}function Ge(e,t){let n=t.trim().toLowerCase().replace(/^@/,``);return n===``?e:e.filter(e=>e.displayName.toLowerCase().includes(n)||e.username.toLowerCase().includes(n))}function Ke(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function qe({open:e,channelLabel:t,contactName:r,accounts:i,loading:a,errorMessage:o,pendingAccountId:s,onPick:c,onClose:l,onInviteInstead:u}){let[d,f]=(0,G.useState)(``);(0,G.useEffect)(()=>{e&&f(``)},[e]);let p=(0,G.useMemo)(()=>Ge(i??[],d),[i,d]),h=s!=null;return(0,q.jsx)(I.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,q.jsxs)(I.Content,{size:`sm`,children:[(0,q.jsxs)(I.Header,{children:[(0,q.jsxs)(I.Title,{children:[`Link `,t,` account`]}),(0,q.jsxs)(I.Description,{children:[`Search your `,t,` workspace and pick`,` `,(0,q.jsx)(`span`,{className:`text-[color:var(--content-default)]`,children:r}),`’s account.`]})]}),(0,q.jsxs)(I.Body,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(F,{type:`search`,value:d,onChange:e=>f(e.target.value),placeholder:`Search by name or @handle`,"aria-label":`Search ${t} workspace accounts`,leftIcon:(0,q.jsx)(j,{className:`h-4 w-4`}),fullWidth:!0}),o?(0,q.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:o}):null,(0,q.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:a?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:`Loading workspace members…`}):p.length===0?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(i?.length??0)===0?`No workspace members found.`:`No members match.`}):(0,q.jsx)(`ul`,{className:`flex flex-col`,children:p.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,onClick:()=>c(e),disabled:h,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,q.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,q.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:Ke(e.displayName)}),(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,q.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),s===e.id?(0,q.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:`Linking…`}):null]})},e.id))})})]}),(0,q.jsxs)(I.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,q.jsxs)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:[`Picking marks this account as`,` `,(0,q.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`,children:`guardian-linked`}),` `,`— you vouch for the identity, no handshake needed.`]}),u?(0,q.jsxs)(n,{variant:`link`,className:`shrink-0`,onClick:u,disabled:h,children:[`Or send an invite instead`,(0,q.jsx)(m,{className:`h-3.5 w-3.5`})]}):null]})]})})}function Je({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,G.useState)(!1),o=c({mutationFn:n=>_e(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),ee.success(`Linked as @${t.account.username}`),r()}}),s=(0,G.useCallback)(()=>{o.reset(),a(!0)},[o]),l=(0,G.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),u=(0,G.useCallback)(e=>{!n||o.isPending||o.mutate({contact:n,account:e})},[n,o]);return{channelType:t,dialogOpen:i,open:s,close:l,linkErrorMessage:o.error instanceof Error?o.error.message:o.error?`Failed to link account`:null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:u}}var Ye=[{id:`slack`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],Xe=[];function Ze({assistantId:e,onStartSetupConversation:t}){let n=le.use.a2aChannel(),a=te.use.name(),l=o(),[u]=r(),d=u.get(`setup`),f=d&&v(d)?d:null,[p,m]=(0,G.useState)({kind:`assistant`}),h=me(e),[_,y]=(0,G.useState)(!1),[x,S]=(0,G.useState)(!1),C=b(a),w=(0,G.useMemo)(()=>({path:{assistant_id:e}}),[e]),T=ce(w),E=s({...se(w),enabled:!!e,select:e=>e.contacts}),D=pe({assistantId:e,onStartSetupConversation:t}),O=s({...oe({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await ne({path:{assistant_id:e},signal:t,throwOnError:!1});if(!i||i.status===404)return{channels:Ye};if(!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}).data??Xe,k=E.data,A=(0,G.useMemo)(()=>k?.find(e=>e.role===`guardian`)??null,[k]),j=(0,G.useMemo)(()=>k?.filter(e=>e.role!==`guardian`)??[],[k]),M=(0,G.useMemo)(()=>p.kind===`contact`?k?.find(e=>e.id===p.contactId)??null:null,[k,p]),N=(0,G.useMemo)(()=>!k||!M?[]:k.filter(e=>e.id!==M.id&&e.role!==`guardian`),[k,M]),P=N.length>0,F=(0,G.useRef)(!!f);(0,G.useEffect)(()=>{F.current||A&&(F.current=!0,m({kind:`contact`,contactId:A.id}))},[A]);let I=(0,G.useCallback)(()=>l.invalidateQueries({queryKey:T}),[l,T]),L=c({mutationFn:()=>ge(e,{displayName:`New Contact`}),onMutate:async()=>{await l.cancelQueries({queryKey:T})},onSuccess:e=>{z(l,w,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),m({kind:`contact`,contactId:e.id})},onError:W(`Failed to create contact`),onSettled:()=>I()}),R=c({mutationFn:t=>ve(e,t),onSuccess:(e,t)=>{z(l,w,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),m({kind:`assistant`})},onError:W(`Failed to delete contact`),onSettled:()=>I()}),B=c({mutationFn:({contactId:t,patch:n})=>ge(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{z(l,w,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:W(`Failed to save contact`),onSettled:()=>I()}),V=ae({onMutate:async()=>{await l.cancelQueries({queryKey:T})},onSuccess:(e,t)=>{let n=e.contact,r=t.body.mergeId;n&&(z(l,w,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==r).map(e=>e.id===n.id?n:e)}:void 0),m({kind:`contact`,contactId:n.id})),S(!1),ee.success(`Contacts merged`)},onSettled:()=>I()}),H=(0,G.useCallback)(e=>{m(e),y(!1),S(!1),V.reset()},[V]),U=(0,G.useCallback)(()=>{V.reset(),S(!0)},[V]),_e=(0,G.useCallback)(()=>{V.isPending||(S(!1),V.reset())},[V]),ye=ie({onSuccess:()=>I()}),be=(0,G.useCallback)((t,n)=>{ye.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[ye,e]),xe=(0,G.useCallback)(()=>{L.isPending||L.mutate()},[L]),K=(0,G.useCallback)(e=>{if(!t)return;let n=O.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[O,t]),Se=(0,G.useCallback)(e=>{if(!t)return;let n=O.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[O,t]),J=c({mutationFn:t=>he(e,t.channelId),onSuccess:()=>I(),onError:W(`Failed to verify channel`)}),Y=(0,G.useCallback)(e=>{if(!M)return;let t=M.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&J.mutate({channelId:t.id})},[M,J]),X=Je({assistantId:e,channelType:`slack`,contact:M?{id:M.id,displayName:M.displayName}:null,onLinked:I}),Z=s({...g(e),enabled:!!e&&X.dialogOpen,select:e=>e.users}),we=D.channels.some(e=>e.key===`slack`&&e.status===`ready`),Te=(0,G.useCallback)(e=>{e===X.channelType&&X.open()},[X]),Ee=R.isPending?R.variables:null,Q=(0,G.useMemo)(()=>M?B.isPending&&B.variables?.contactId===M.id?{...M,displayName:B.variables.patch.displayName,notes:B.variables.patch.notes}:M:null,[M,B.isPending,B.variables]);if(f)return(0,q.jsx)(i,{to:`${re.channels}?setup=${f}`,replace:!0});let $={loading:E.isLoading,assistantName:C,guardian:A?{id:A.id,displayName:A.displayName.startsWith(`vellum-principal-`)?``:A.displayName,role:A.role,channelTypes:tt(A.channels,n)}:null,regularContacts:j.filter(e=>e.id!==Ee).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:tt(e.channels,n),verified:et(e.channels)})),selection:p,onAddContact:xe,addingContact:L.isPending};return(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden sm:flex-row sm:gap-6`,children:[(0,q.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,q.jsx)(ue,{onClick:()=>y(!0)})}),(0,q.jsx)(de,{open:_,onClose:()=>y(!1),title:`Contacts`,children:(0,q.jsx)(Ve,{...$,onSelect:H})}),(0,q.jsx)(`aside`,{className:`hidden min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch sm:block`,children:(0,q.jsx)(Ve,{...$,onSelect:H})}),(0,q.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:p.kind===`assistant`||p.kind===`contact`&&p.contactId===Ee?(0,q.jsx)(Ce,{assistantName:C,channels:D.channels,pendingChannelKey:D.pendingChannelKey,onConnect:D.onSetup,onDisconnect:D.onDisconnect}):Q?Q.role===`guardian`?(0,q.jsx)(Ue,{contact:Q,savePending:B.isPending,verifyPending:J.isPending,mergePending:V.isPending,canMerge:P,availableChannels:O,a2aEnabled:n,onSave:e=>{B.mutate({contactId:Q.id,patch:e})},onMerge:U,onSetupChannel:t?Se:void 0,onVerifyChannel:Y,onRevokeChannel:be,onGenerateInviteLink:n?h.open:void 0}):(0,q.jsx)(Oe,{contact:Q,savePending:B.isPending,deletePending:R.isPending,verifyPending:J.isPending,mergePending:V.isPending,canMerge:P,availableChannels:O,a2aEnabled:n,onSave:e=>{B.mutate({contactId:Q.id,patch:e})},onDelete:()=>{R.mutate(Q.id)},onMerge:U,onSetupChannel:t?K:void 0,onVerifyChannel:Y,onRevokeChannel:be,onLinkAccount:we?Te:void 0}):(0,q.jsx)(Qe,{})}),M?(0,q.jsx)(Ae,{open:x,survivor:M,candidates:N,pending:V.isPending,errorMessage:V.error instanceof Error?V.error.message:V.error?`Failed to merge contacts`:null,onMerge:t=>V.mutate({path:{assistant_id:e},body:{keepId:M.id,mergeId:t}}),onClose:_e}):null,(0,q.jsx)(qe,{open:X.dialogOpen,channelLabel:`Slack`,contactName:M?.displayName??``,accounts:Z.data,loading:Z.isLoading,errorMessage:Z.isError?`Couldn’t load the workspace roster. Check the Slack connection and try again.`:X.linkErrorMessage,pendingAccountId:X.pendingAccountId,onPick:X.pick,onClose:X.close,onInviteInstead:t?()=>{X.close(),K(X.channelType)}:void 0}),(0,q.jsx)(fe,{open:h.isOpen,assistantId:e,onClose:h.close})]})}function Qe(){return(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a contact`})})}var $e={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`,a2a:`A2A`};function et(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||K(e)))}function tt(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push($e[e]??i.type))}return r}function nt(){let e=a(),t=V();return(0,q.jsx)(Ze,{assistantId:t,onStartSetupConversation:t=>{B(e,{prompt:t})}},t)}export{nt as ContactsPageRoute};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{m as r,n as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useMutation-CXGTrp4W.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{t as u}from"./typography-DEI9Ra9z.js";import{t as d}from"./card-DRIctGVs.js";import{t as f}from"./createLucideIcon-CAM1RhH8.js";import{t as p}from"./arrow-left-W84B6oJL.js";import{t as m}from"./arrow-right-ChqGeAaW.js";import{S as h,a as g,b as _,c as v,f as y,l as b,u as x,x as S}from"./use-save-twilio-credentials-yqA7lnzq.js";import{t as C}from"./circle-check-big-DtV6IJuh.js";import{t as w}from"./ellipsis-vertical-qQRDY5dB.js";import{t as T}from"./link-2-DhyrrFaE.js";import{t as E}from"./loader-circle-DWWXcfTQ.js";import{t as D}from"./mail-DyUf40pu.js";import{t as O}from"./message-square-CHUvAEY9.js";import{t as k}from"./pencil-Cm5DdeRM.js";import{t as A}from"./plus-EJu6s6xR.js";import{t as j}from"./search-DL-2uX3K.js";import{t as M}from"./send-Bdmy_GSE.js";import{t as N}from"./user-plus-DjxxnQ8G.js";import{t as P}from"./tag-gOOX7fbA.js";import{t as F}from"./input-tXUFa7Eo.js";import{t as I}from"./modal-xr_vw1ZO.js";import{t as L}from"./panel-item-CJh95P_q.js";import{n as ee}from"./toast-BtFgiPe3.js";import{t as R}from"./confirm-dialog-j9o2h3xs.js";import{t as te}from"./assistant-identity-store-B51BX78j.js";import{C as ne}from"./sdk.gen-CjtCuSlS.js";import{d as re}from"./routes-DrfnNoYS.js";import{Gt as ie,Kt as ae,S as z,a as oe,b as se,x as ce}from"./react-query.gen-C7om930f.js";import{n as B}from"./conversation-navigation-Bf3cDRKh.js";import{t as le}from"./assistant-feature-flag-store-BvLDPeej.js";import{t as V}from"./use-active-assistant-id-JLsAfn3e.js";import{t as H}from"./detail-card-BElAV1cp.js";import{n as ue,t as de}from"./mobile-sidebar-drawer-BwCIAm23.js";import{i as fe,n as pe,r as U,t as me}from"./use-invite-link-dialog-TNGI1l4g.js";import{t as W}from"./mutation-error-YLfUU5XL.js";import{a as he,i as ge,n as _e,t as ve}from"./contacts-gateway-DRzp5PC6.js";var ye=f(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),be=f(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),G=e(t(),1),xe=new Set([`slack`]);function K(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}var q=l();function Se({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let[i,a]=(0,G.useState)(null);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,q.jsxs)(`div`,{children:[i>0?(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,q.jsx)(J,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r?()=>a(e.key):void 0})]},e.key))}),(0,q.jsx)(R,{open:i!==null,title:`Disconnect ${i?y(i):``}?`,message:`This clears the stored credentials for this channel. You can reconnect later.`,confirmLabel:`Disconnect`,destructive:!0,onConfirm:()=>{i&&r&&r(i),a(null)},onCancel:()=>a(null)})]})}function J({channel:e,pending:t,onConnect:r,onDisconnect:i}){let a=e.status===`ready`;return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,q.jsx)(x,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:y(e.key)}),a&&e.address?(0,q.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,q.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:a?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,q.jsx)(C,{className:`h-3 w-3`}),`Connected`]}),(0,q.jsx)(n,{variant:`danger`,onClick:i,disabled:!i||t,children:t?`Disconnecting…`:`Disconnect`})]}):(0,q.jsx)(n,{variant:`outlined`,onClick:r,disabled:!r||t,children:`Connect`})})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,q.jsx)(P,{tone:r,children:n})}function X(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Ce({assistantName:e,...t}){let n=b(e);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(H,{title:`${n} (Your Assistant)`,accessory:(0,q.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,q.jsx)(H,{title:`Channels`,subtitle:`Where ${n} can be reached.`,children:(0,q.jsx)(Se,{...t})})]})}var Z=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function we(e){return Z.has(e)}function Te(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&K(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`?{kind:`unverified`}:{kind:`setup`}}function Ee(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||we(e.type)&&(r.push({id:e.type,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Q({name:e,className:t,style:n}){switch(e){case`bot`:return(0,q.jsx)(h,{className:t,style:n});case`hash`:return(0,q.jsx)(S,{className:t,style:n});case`send`:return(0,q.jsx)(M,{className:t,style:n});case`phone`:return(0,q.jsx)(_,{className:t,style:n});case`mail`:return(0,q.jsx)(D,{className:t,style:n});case`message-square`:return(0,q.jsx)(O,{className:t,style:n});default:return(0,q.jsx)(ye,{className:t,style:n})}}function $({contactChannels:e,availableChannels:t,a2aEnabled:n,setupLabel:r=`Invite`,verifyLoading:i,verifySubject:a=`self`,onSetupChannel:o,onVerifyChannel:s,onRevokeChannel:c,onLinkAccount:l}){let[u,d]=(0,G.useState)(null),[f,p]=(0,G.useState)(null),m=new Map;for(let t of e)t.status!==`revoked`&&(m.has(t.type)||m.set(t.type,t));return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col`,children:Ee(t,e,n).map((e,t)=>{let n=m.get(e.id);return(0,q.jsxs)(`div`,{children:[t>0&&(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,q.jsx)(De,{info:e,existing:n,setupLabel:r,verifyLoading:i,onSetup:o?()=>o(e.id):void 0,onVerify:s&&e.supportsVerification?()=>d(e):void 0,onRevoke:c&&n?()=>p({channelId:n.id,channel:e}):void 0,onLinkAccount:l&&xe.has(e.id)?()=>l(e.id):void 0})]},e.id)})}),u&&(0,q.jsx)(R,{open:!0,title:`Verify ${u.label}`,message:a===`contact`?`This will mark this contact's ${u.label} channel as verified. Your assistant will recognize them when they reach out from it.`:`This will mark your ${u.label} channel as verified. Your assistant will recognize you when you reach out from it.`,confirmLabel:`Verify`,onConfirm:()=>{u&&(s?.(u.id),d(null))},onCancel:()=>d(null)}),f&&(0,q.jsx)(R,{open:!0,title:`Revoke ${f.channel.label}`,message:`This will disconnect the verified channel. The contact will need to re-verify to use this channel again.`,confirmLabel:`Revoke`,destructive:!0,onConfirm:()=>{c?.(f.channelId,f.channel.id),p(null)},onCancel:()=>p(null)})]})}function De({info:e,existing:t,setupLabel:r,verifyLoading:i,onSetup:a,onVerify:o,onRevoke:s,onLinkAccount:c}){let l=Te(e,t);return(0,q.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,q.jsx)(Q,{name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,q.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,q.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:l.kind===`connected`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,q.jsx)(C,{className:`h-3 w-3`}),`Connected`]}),s?(0,q.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):l.kind===`verified`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,q.jsx)(C,{className:`h-3 w-3`}),`Verified`]}),s?(0,q.jsx)(n,{variant:`danger`,onClick:s,children:`Revoke`}):null]}):l.kind===`unverified`?(0,q.jsx)(n,{variant:`outlined`,onClick:o,disabled:!o||i,children:i?`Verifying…`:`Verify`}):l.kind===`setup`?e.id===`a2a`?null:(0,q.jsxs)(q.Fragment,{children:[c?(0,q.jsxs)(n,{onClick:c,children:[(0,q.jsx)(T,{className:`h-3.5 w-3.5`}),`Link account`]}):null,(0,q.jsx)(n,{variant:`outlined`,onClick:a,disabled:!a,children:r})]}):null})]})}function Oe(e){return(0,q.jsx)(ke,{...e},e.contact.id)}function ke({contact:e,savePending:t,deletePending:r,verifyPending:i,mergePending:a=!1,canMerge:o=!1,availableChannels:s,a2aEnabled:c,onSave:l,onDelete:u,onMerge:d,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h}){let g=e.displayName===`New Contact`,[_,v]=(0,G.useState)(g?``:e.displayName),[y,b]=(0,G.useState)(e.notes??``),[x,S]=(0,G.useState)(!1),C=_.trim(),w=y.trim(),T=g?``:e.displayName,E=e.notes??``,D=C!==T||w!==E,O=C.length>0&&D&&!t&&!r,k=g&&e.channels.length===0&&e.interactionCount===0,A=C||e.displayName,j=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(H,{title:A,accessory:(0,q.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:j,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(F,{label:`Name`,type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Give this human a name`,autoFocus:g,disabled:t||r,fullWidth:!0}),(0,q.jsx)(F,{label:`Notes`,type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`Optional notes about the human which AI will take into account`,disabled:t||r,fullWidth:!0}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(n,{type:`button`,onClick:()=>l({displayName:C,notes:w}),disabled:!O,children:t?`Saving…`:`Save`}),d?(0,q.jsx)(n,{type:`button`,variant:`outlined`,onClick:d,disabled:!o||k||D||a||t||r,title:o?k?`Save this contact before merging`:D?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:a?`Merging…`:`Merge…`}):null,(0,q.jsx)(n,{type:`button`,variant:`danger`,onClick:()=>{k?u():S(!0)},disabled:r,children:r?`Deleting…`:`Delete Contact`})]})]})}),(0,q.jsx)(H,{title:`Linked accounts`,subtitle:`Where the assistant recognizes this contact. Link accounts you know, invite the ones you don't.`,children:(0,q.jsx)($,{contactChannels:e.channels,availableChannels:s,a2aEnabled:c,verifyLoading:i,verifySubject:`contact`,onSetupChannel:f,onVerifyChannel:p,onRevokeChannel:m,onLinkAccount:h})}),(0,q.jsx)(R,{open:x,title:`Delete ${e.displayName}?`,message:`This will permanently delete this contact and all their channels. This action cannot be undone.`,confirmLabel:`Delete`,destructive:!0,onConfirm:()=>{S(!1),u()},onCancel:()=>S(!1)})]})}function Ae(e){return(0,q.jsx)(je,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function je({open:e,survivor:t,candidates:r,pending:i,errorMessage:a,onMerge:o,onClose:s}){let[c,l]=(0,G.useState)(``),[d,f]=(0,G.useState)(null);(0,G.useEffect)(()=>{d&&!r.some(e=>e.id===d)&&f(null)},[r,d]);let m=(0,G.useMemo)(()=>{let e=c.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,c]),h=d?r.find(e=>e.id===d)??null:null,g=Ie(t);return(0,q.jsx)(I.Root,{open:e,onOpenChange:e=>{!e&&!i&&s()},children:(0,q.jsxs)(I.Content,{size:`md`,children:[(0,q.jsxs)(I.Header,{children:[(0,q.jsx)(I.Title,{icon:be,children:h?`Merge "${h.displayName}" into ${g}?`:`Merge another contact into ${g}`}),(0,q.jsx)(I.Description,{children:h?`Channels and notes from the merged contact will move over. The merged contact will be deleted.`:`The contact you pick will be deleted. Its channels and notes will be added to this one.`})]}),(0,q.jsxs)(I.Body,{className:`flex flex-col gap-3`,children:[h?(0,q.jsx)(Pe,{survivor:t,donor:h}):r.length===0?(0,q.jsx)(Fe,{}):(0,q.jsx)(Me,{search:c,onSearch:l,candidates:m,onPick:f}),a?(0,q.jsx)(u,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,q.jsx)(I.Footer,{children:h?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(n,{variant:`outlined`,onClick:()=>f(null),disabled:i,leftIcon:(0,q.jsx)(p,{"aria-hidden":!0}),children:`Back`}),(0,q.jsx)(n,{variant:`danger`,onClick:()=>o(h.id),disabled:i,children:i?`Merging…`:`Merge`})]}):(0,q.jsx)(n,{variant:`outlined`,onClick:s,disabled:i,children:`Cancel`})})]})})}function Me({search:e,onSearch:t,candidates:n,onPick:r}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(F,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:`Search contacts`,leftIcon:(0,q.jsx)(j,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,q.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":`Select a contact to merge`,children:n.length===0?(0,q.jsx)(u,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:`No matching contacts`}):n.map(e=>(0,q.jsx)(Ne,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function Ne({contact:e,onPick:t}){let n=Be(e).join(` | `)||void 0;return(0,q.jsx)(L,{asChild:!0,label:``,children:(0,q.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,q.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function Pe({survivor:e,donor:t}){let n=Ie(e),{moved:r,duplicates:i}=ze(e,t);return(0,q.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,q.jsxs)(`li`,{children:[(0,q.jsxs)(`span`,{className:`text-(--content-default)`,children:[`“`,t.displayName,`”`]}),` `,`will be deleted.`]}),(0,q.jsx)(`li`,{children:r.length===0?`No new channels will move to ${n}.`:`${r.length} channel${r.length===1?``:`s`} will move to ${n}: ${r.map(e=>Re(e.type)).join(`, `)}.`}),i.length>0?(0,q.jsxs)(`li`,{className:`text-(--content-tertiary)`,children:[i.length,` duplicate channel`,i.length===1?``:`s`,` already on `,n,` `,`(skipped).`]}):null,t.notes?(0,q.jsx)(`li`,{children:`Notes from the merged contact will be appended.`}):null,(0,q.jsx)(`li`,{className:`text-(--content-tertiary)`,children:`This cannot be undone.`})]})}function Fe(){return(0,q.jsx)(u,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:`No other contacts available to merge.`})}function Ie(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?`you`:`${e.displayName} (you)`:e.displayName||`this contact`}var Le={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`};function Re(e){return Le[e.toLowerCase()]??e}function ze(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function Be(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(Le[e]??r.type))}return n}function Ve({loading:e,guardian:t,assistantName:r,regularContacts:i,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1}){let[l,u]=(0,G.useState)(``),f=l.trim()?i.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):i;return(0,q.jsx)(d.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,q.jsxs)(d.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:`Entries`}),(0,q.jsx)(n,{type:`button`,variant:`ghost`,iconOnly:c?(0,q.jsx)(E,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(A,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":`Add contact`,tintColor:`var(--content-secondary)`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,q.jsx)(He,{name:t.displayName?`${t.displayName} (You)`:`You`,role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,q.jsx)(He,{name:r?.trim()||`Your Assistant`,role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,q.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),i.length>0?(0,q.jsx)(F,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:`Search Contacts`,leftIcon:(0,q.jsx)(j,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,i.length>0?(0,q.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[f.map(e=>(0,q.jsx)(He,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:a?.kind===`contact`&&a.contactId===e.id,onClick:()=>o({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),f.length===0?(0,q.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:`No matching contacts`}):null]}):e?null:(0,q.jsx)(n,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,q.jsx)(E,{className:`animate-spin`,"aria-hidden":!0}):(0,q.jsx)(N,{"aria-hidden":!0}),children:`Add Contact`})]})})}function He({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:s}){let c=r&&r.length>0?r.join(` | `):void 0;return(0,q.jsx)(L,{asChild:!0,active:i,label:``,trailingAction:o===`pencil`?(0,q.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):o===`more`?(0,q.jsx)(w,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):void 0,children:(0,q.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),c?(0,q.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:c}):null]}),(0,q.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[s===void 0?null:(0,q.jsx)(P,{tone:s?`positive`:`neutral`,children:s?`Verified`:`Unverified`}),(0,q.jsx)(Y,{role:t,contactType:n})]})]})})}function Ue(e){return(0,q.jsx)(We,{...e},e.contact.id)}function We({contact:e,savePending:t,verifyPending:r,mergePending:i=!1,canMerge:a=!1,availableChannels:o,a2aEnabled:s,onSave:c,onMerge:l,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f,onGenerateInviteLink:p}){let m=e.displayName.startsWith(`vellum-principal-`),h=m?``:e.displayName,[g,_]=(0,G.useState)(h),[v,y]=(0,G.useState)(e.notes??``),b=g.trim(),x=v.trim(),S=b!==h.trim()||x!==(e.notes??``).trim(),C=S&&!t,w=`${e.interactionCount} interaction${e.interactionCount===1?``:`s`}`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsx)(H,{title:m?`You`:`${e.displayName} (You)`,accessory:(0,q.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:w,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(F,{label:`Name`,type:`text`,value:g,onChange:e=>_(e.target.value),placeholder:`Your name`,disabled:t,fullWidth:!0}),(0,q.jsx)(F,{label:`Notes`,type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:`Notes about yourself which AI will take into account`,disabled:t,fullWidth:!0}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(n,{variant:`primary`,onClick:()=>c({displayName:b||e.displayName,notes:x}),disabled:!C,children:t?`Saving…`:`Save`}),l?(0,q.jsx)(n,{variant:`outlined`,onClick:l,disabled:!a||S||i||t,title:a?S?`Save your changes before merging`:void 0:`No other contacts available to merge`,children:i?`Merging…`:`Merge…`}):null]})]})}),(0,q.jsx)(H,{title:`Channels`,subtitle:`Once verified, your assistant will recognize you when you message from these channels.`,children:(0,q.jsx)($,{contactChannels:e.channels,availableChannels:o,a2aEnabled:s,setupLabel:`Verify me`,verifyLoading:r,onSetupChannel:u,onVerifyChannel:d,onRevokeChannel:f})}),p?(0,q.jsx)(U,{onClick:p}):null]})}function Ge(e,t){let n=t.trim().toLowerCase().replace(/^@/,``);return n===``?e:e.filter(e=>e.displayName.toLowerCase().includes(n)||e.username.toLowerCase().includes(n))}function Ke(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function qe({open:e,channelLabel:t,contactName:r,accounts:i,loading:a,errorMessage:o,pendingAccountId:s,onPick:c,onClose:l,onInviteInstead:u}){let[d,f]=(0,G.useState)(``);(0,G.useEffect)(()=>{e&&f(``)},[e]);let p=(0,G.useMemo)(()=>Ge(i??[],d),[i,d]),h=s!=null;return(0,q.jsx)(I.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,q.jsxs)(I.Content,{size:`sm`,children:[(0,q.jsxs)(I.Header,{children:[(0,q.jsxs)(I.Title,{children:[`Link `,t,` account`]}),(0,q.jsxs)(I.Description,{children:[`Search your `,t,` workspace and pick`,` `,(0,q.jsx)(`span`,{className:`text-[color:var(--content-default)]`,children:r}),`’s account.`]})]}),(0,q.jsxs)(I.Body,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(F,{type:`search`,value:d,onChange:e=>f(e.target.value),placeholder:`Search by name or @handle`,"aria-label":`Search ${t} workspace accounts`,leftIcon:(0,q.jsx)(j,{className:`h-4 w-4`}),fullWidth:!0}),o?(0,q.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:o}):null,(0,q.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:a?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:`Loading workspace members…`}):p.length===0?(0,q.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(i?.length??0)===0?`No workspace members found.`:`No members match.`}):(0,q.jsx)(`ul`,{className:`flex flex-col`,children:p.map(e=>(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,onClick:()=>c(e),disabled:h,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,q.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,q.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:Ke(e.displayName)}),(0,q.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,q.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,q.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),s===e.id?(0,q.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:`Linking…`}):null]})},e.id))})})]}),(0,q.jsxs)(I.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,q.jsxs)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:[`Picking marks this account as`,` `,(0,q.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`,children:`guardian-linked`}),` `,`— you vouch for the identity, no handshake needed.`]}),u?(0,q.jsxs)(n,{variant:`link`,className:`shrink-0`,onClick:u,disabled:h,children:[`Or send an invite instead`,(0,q.jsx)(m,{className:`h-3.5 w-3.5`})]}):null]})]})})}function Je({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,G.useState)(!1),o=c({mutationFn:n=>_e(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),ee.success(`Linked as @${t.account.username}`),r()}}),s=(0,G.useCallback)(()=>{o.reset(),a(!0)},[o]),l=(0,G.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),u=(0,G.useCallback)(e=>{!n||o.isPending||o.mutate({contact:n,account:e})},[n,o]);return{channelType:t,dialogOpen:i,open:s,close:l,linkErrorMessage:o.error instanceof Error?o.error.message:o.error?`Failed to link account`:null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:u}}var Ye=[{id:`slack`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],Xe=[];function Ze({assistantId:e,onStartSetupConversation:t}){let n=le.use.a2aChannel(),a=te.use.name(),l=o(),[u]=r(),d=u.get(`setup`),f=d&&v(d)?d:null,[p,m]=(0,G.useState)({kind:`assistant`}),h=me(e),[_,y]=(0,G.useState)(!1),[x,S]=(0,G.useState)(!1),C=b(a),w=(0,G.useMemo)(()=>({path:{assistant_id:e}}),[e]),T=ce(w),E=s({...se(w),enabled:!!e,select:e=>e.contacts}),D=pe({assistantId:e,onStartSetupConversation:t}),O=s({...oe({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await ne({path:{assistant_id:e},signal:t,throwOnError:!1});if(!i||i.status===404)return{channels:Ye};if(!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}).data??Xe,k=E.data,A=(0,G.useMemo)(()=>k?.find(e=>e.role===`guardian`)??null,[k]),j=(0,G.useMemo)(()=>k?.filter(e=>e.role!==`guardian`)??[],[k]),M=(0,G.useMemo)(()=>p.kind===`contact`?k?.find(e=>e.id===p.contactId)??null:null,[k,p]),N=(0,G.useMemo)(()=>!k||!M?[]:k.filter(e=>e.id!==M.id&&e.role!==`guardian`),[k,M]),P=N.length>0,F=(0,G.useRef)(!!f);(0,G.useEffect)(()=>{F.current||A&&(F.current=!0,m({kind:`contact`,contactId:A.id}))},[A]);let I=(0,G.useCallback)(()=>l.invalidateQueries({queryKey:T}),[l,T]),L=c({mutationFn:()=>ge(e,{displayName:`New Contact`}),onMutate:async()=>{await l.cancelQueries({queryKey:T})},onSuccess:e=>{z(l,w,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),m({kind:`contact`,contactId:e.id})},onError:W(`Failed to create contact`),onSettled:()=>I()}),R=c({mutationFn:t=>ve(e,t),onSuccess:(e,t)=>{z(l,w,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),m({kind:`assistant`})},onError:W(`Failed to delete contact`),onSettled:()=>I()}),B=c({mutationFn:({contactId:t,patch:n})=>ge(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{z(l,w,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:W(`Failed to save contact`),onSettled:()=>I()}),V=ae({onMutate:async()=>{await l.cancelQueries({queryKey:T})},onSuccess:(e,t)=>{let n=e.contact,r=t.body.mergeId;n&&(z(l,w,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==r).map(e=>e.id===n.id?n:e)}:void 0),m({kind:`contact`,contactId:n.id})),S(!1),ee.success(`Contacts merged`)},onSettled:()=>I()}),H=(0,G.useCallback)(e=>{m(e),y(!1),S(!1),V.reset()},[V]),U=(0,G.useCallback)(()=>{V.reset(),S(!0)},[V]),_e=(0,G.useCallback)(()=>{V.isPending||(S(!1),V.reset())},[V]),ye=ie({onSuccess:()=>I()}),be=(0,G.useCallback)((t,n)=>{ye.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[ye,e]),xe=(0,G.useCallback)(()=>{L.isPending||L.mutate()},[L]),K=(0,G.useCallback)(e=>{if(!t)return;let n=O.find(t=>t.id===e)?.setupMessages.contact;n&&t(n)},[O,t]),Se=(0,G.useCallback)(e=>{if(!t)return;let n=O.find(t=>t.id===e)?.setupMessages.guardian;n&&t(n)},[O,t]),J=c({mutationFn:t=>he(e,t.channelId),onSuccess:()=>I(),onError:W(`Failed to verify channel`)}),Y=(0,G.useCallback)(e=>{if(!M)return;let t=M.channels.find(t=>t.type===e&&t.status!==`revoked`);t&&J.mutate({channelId:t.id})},[M,J]),X=Je({assistantId:e,channelType:`slack`,contact:M?{id:M.id,displayName:M.displayName}:null,onLinked:I}),Z=s({...g(e),enabled:!!e&&X.dialogOpen,select:e=>e.users}),we=D.channels.some(e=>e.key===`slack`&&e.status===`ready`),Te=(0,G.useCallback)(e=>{e===X.channelType&&X.open()},[X]),Ee=R.isPending?R.variables:null,Q=(0,G.useMemo)(()=>M?B.isPending&&B.variables?.contactId===M.id?{...M,displayName:B.variables.patch.displayName,notes:B.variables.patch.notes}:M:null,[M,B.isPending,B.variables]);if(f)return(0,q.jsx)(i,{to:`${re.channels}?setup=${f}`,replace:!0});let $={loading:E.isLoading,assistantName:C,guardian:A?{id:A.id,displayName:A.displayName.startsWith(`vellum-principal-`)?``:A.displayName,role:A.role,channelTypes:tt(A.channels,n)}:null,regularContacts:j.filter(e=>e.id!==Ee).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:tt(e.channels,n),verified:et(e.channels)})),selection:p,onAddContact:xe,addingContact:L.isPending};return(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden sm:flex-row sm:gap-6`,children:[(0,q.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,q.jsx)(ue,{onClick:()=>y(!0)})}),(0,q.jsx)(de,{open:_,onClose:()=>y(!1),title:`Contacts`,children:(0,q.jsx)(Ve,{...$,onSelect:H})}),(0,q.jsx)(`aside`,{className:`hidden min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch sm:block`,children:(0,q.jsx)(Ve,{...$,onSelect:H})}),(0,q.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:p.kind===`assistant`||p.kind===`contact`&&p.contactId===Ee?(0,q.jsx)(Ce,{assistantName:C,channels:D.channels,pendingChannelKey:D.pendingChannelKey,onConnect:D.onSetup,onDisconnect:D.onDisconnect}):Q?Q.role===`guardian`?(0,q.jsx)(Ue,{contact:Q,savePending:B.isPending,verifyPending:J.isPending,mergePending:V.isPending,canMerge:P,availableChannels:O,a2aEnabled:n,onSave:e=>{B.mutate({contactId:Q.id,patch:e})},onMerge:U,onSetupChannel:t?Se:void 0,onVerifyChannel:Y,onRevokeChannel:be,onGenerateInviteLink:n?h.open:void 0}):(0,q.jsx)(Oe,{contact:Q,savePending:B.isPending,deletePending:R.isPending,verifyPending:J.isPending,mergePending:V.isPending,canMerge:P,availableChannels:O,a2aEnabled:n,onSave:e=>{B.mutate({contactId:Q.id,patch:e})},onDelete:()=>{R.mutate(Q.id)},onMerge:U,onSetupChannel:t?K:void 0,onVerifyChannel:Y,onRevokeChannel:be,onLinkAccount:we?Te:void 0}):(0,q.jsx)(Qe,{})}),M?(0,q.jsx)(Ae,{open:x,survivor:M,candidates:N,pending:V.isPending,errorMessage:V.error instanceof Error?V.error.message:V.error?`Failed to merge contacts`:null,onMerge:t=>V.mutate({path:{assistant_id:e},body:{keepId:M.id,mergeId:t}}),onClose:_e}):null,(0,q.jsx)(qe,{open:X.dialogOpen,channelLabel:`Slack`,contactName:M?.displayName??``,accounts:Z.data,loading:Z.isLoading,errorMessage:Z.isError?`Couldn’t load the workspace roster. Check the Slack connection and try again.`:X.linkErrorMessage,pendingAccountId:X.pendingAccountId,onPick:X.pick,onClose:X.close,onInviteInstead:t?()=>{X.close(),K(X.channelType)}:void 0}),(0,q.jsx)(fe,{open:h.isOpen,assistantId:e,onClose:h.close})]})}function Qe(){return(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a contact`})})}var $e={slack:`Slack`,telegram:`Telegram`,phone:`Phone`,email:`Email`,whatsapp:`WhatsApp`,a2a:`A2A`};function et(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||K(e)))}function tt(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push($e[e]??i.type))}return r}function nt(){let e=a(),t=V();return(0,q.jsx)(Ze,{assistantId:t,onStartSetupConversation:t=>{B(e,{prompt:t})}},t)}export{nt as ContactsPageRoute};
@@ -1 +1 @@
1
- import{i as e,m as t,o as n,s as r}from"./conversation-list-fetchers-BZnx9EMN.js";async function i(e,t){await e.cancelQueries({queryKey:n(t)})}function a(e,t){return e.getQueriesData({queryKey:n(t)}).map(([e,t])=>[e,t])}function o(e,t){for(let[n,r]of t)e.setQueryData(n,r)}async function s(e,t){await e.invalidateQueries({queryKey:n(t)})}function c(e,t,n){e.setQueryData(t,e=>{let t=e??[],r=n(t);return r===t?e:r})}function l(e,t,n){c(e,r(t),n)}function u(t,n,r){c(t,e(n),r)}function d(e,n,r){c(e,t(n),r)}function f(e,t,r){if(!t)return;let i=e.getQueriesData({queryKey:n(t)});for(let[t,n]of i){if(!n)continue;let i=r(n);i!==n&&e.setQueryData(t,i)}}function p(e,t,r){if(!t)return;let i=e.getQueriesData({queryKey:n(t)});for(let[,e]of i){let t=e?.find(e=>e.conversationId===r);if(t)return t}}function m(...e){let[t=[],...n]=e;if(n.every(e=>e.length===0))return t;let r=new Set(t.map(e=>e.conversationId)),i=[...t];for(let e of n)for(let t of e)r.has(t.conversationId)||(r.add(t.conversationId),i.push(t));return i}function h(e,t){return t?m(...e.getQueriesData({queryKey:n(t)}).map(([,e])=>e??[])):[]}function g(e,t,n,r){f(e,t,e=>{let t=!1,i=e.map(e=>e.conversationId===n?(t=!0,{...e,...r}):e);return t?i:e})}export{m as a,a as c,l as d,d as f,s as i,f as l,p as n,g as o,h as r,o as s,i as t,u};
1
+ import{i as e,m as t,o as n,s as r}from"./conversation-list-fetchers-C6W8PkvR.js";async function i(e,t){await e.cancelQueries({queryKey:n(t)})}function a(e,t){return e.getQueriesData({queryKey:n(t)}).map(([e,t])=>[e,t])}function o(e,t){for(let[n,r]of t)e.setQueryData(n,r)}async function s(e,t){await e.invalidateQueries({queryKey:n(t)})}function c(e,t,n){e.setQueryData(t,e=>{let t=e??[],r=n(t);return r===t?e:r})}function l(e,t,n){c(e,r(t),n)}function u(t,n,r){c(t,e(n),r)}function d(e,n,r){c(e,t(n),r)}function f(e,t,r){if(!t)return;let i=e.getQueriesData({queryKey:n(t)});for(let[t,n]of i){if(!n)continue;let i=r(n);i!==n&&e.setQueryData(t,i)}}function p(e,t,r){if(!t)return;let i=e.getQueriesData({queryKey:n(t)});for(let[,e]of i){let t=e?.find(e=>e.conversationId===r);if(t)return t}}function m(...e){let[t=[],...n]=e;if(n.every(e=>e.length===0))return t;let r=new Set(t.map(e=>e.conversationId)),i=[...t];for(let e of n)for(let t of e)r.has(t.conversationId)||(r.add(t.conversationId),i.push(t));return i}function h(e,t){return t?m(...e.getQueriesData({queryKey:n(t)}).map(([,e])=>e??[])):[]}function g(e,t,n,r){f(e,t,e=>{let t=!1,i=e.map(e=>e.conversationId===n?(t=!0,{...e,...r}):e);return t?i:e})}export{m as a,a as c,l as d,d as f,s as i,f as l,p as n,g as o,h as r,o as s,i as t,u};
@@ -1 +1 @@
1
- import{t as e}from"./queryOptions-CMSBCFOf.js";import{n as t,r as n,t as r}from"./api-errors-SZKDzMLE.js";import{$ as i}from"./sdk.gen-BySz4QYj.js";function a(e){return e.surfacedAt==null?e.conversationType===`background`||e.conversationType===`scheduled`||e.groupId===`system:background`||e.groupId===`system:scheduled`:!1}function o(e){return e.conversationType===`scheduled`||e.groupId===`system:scheduled`}function s(e){return!e.hasUnseenLatestAssistantMessage&&!a(e)&&e.conversationId!=null&&e.latestAssistantMessageAt!=null}function c(e){return e.hasUnseenLatestAssistantMessage===!0&&!a(e)&&e.conversationId!=null}function l(e){return e.hasUnseenLatestAssistantMessage===!0&&!a(e)&&e.archivedAt==null}function u(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function d(e){return typeof e==`string`?e:void 0}function f(e){if(e)return{sourceChannel:e.sourceChannel,externalChatId:e.externalChatId,externalThreadId:e.externalThreadId,externalChatName:e.externalChatName,externalUserId:d(e.externalUserId),displayName:d(e.displayName),username:d(e.username),slackChannel:e.slackChannel?{channelId:e.slackChannel.channelId,name:e.slackChannel.name,link:e.slackChannel.link?.webUrl?{webUrl:e.slackChannel.link.webUrl}:void 0}:void 0,slackThread:e.slackThread?{channelId:e.slackThread.channelId,threadTs:e.slackThread.threadTs,link:e.slackThread.link?.appUrl||e.slackThread.link?.webUrl?{appUrl:e.slackThread.link.appUrl,webUrl:e.slackThread.link.webUrl}:void 0}:void 0}}function p(e){let t=e.assistantAttention,n=e.channelBinding?.sourceChannel??d(e.conversationOriginChannel);return{conversationId:e.id,title:e.title,createdAt:u(e.createdAt),lastMessageAt:u(e.lastMessageAt??e.updatedAt),hasUnseenLatestAssistantMessage:t?.hasUnseenLatestAssistantMessage,latestAssistantMessageAt:u(t?.latestAssistantMessageAt),lastSeenAssistantMessageAt:u(t?.lastSeenAssistantMessageAt),archivedAt:e.archivedAt,surfacedAt:u(e.surfacedAt),groupId:d(e.groupId),source:e.source,isPinned:e.isPinned,conversationType:e.conversationType,scheduleJobId:e.scheduleJobId,displayOrder:u(e.displayOrder),channelBinding:f(e.channelBinding),originChannel:n,isProcessing:e.isProcessing}}function m(e){return p(e)}var h=`conversation-list`;function g(e){return[h,e??``]}function _(e){return[h,e??``,`foreground`]}function v(e){return[h,e??``,`archived`]}function y(e){return[h,e??``,`background`]}function b(e){return[h,e??``,`scheduled`]}function x(e){return[h,e??``,`channel`]}function S(e){return(t,n)=>(n[e]??0)-(t[e]??0)}var C=50,w=200;async function T(e,a,o={}){let{conversationType:s,archiveStatus:c,originChannel:l}=o,{data:u,error:d,response:f}=await i({path:{assistant_id:e},query:{limit:C,offset:a,...s?{conversationType:s}:{},...c?{archiveStatus:c}:{},...l?{originChannel:l}:{}},throwOnError:!1});if(t(f,d,`Failed to list conversations.`),!f.ok){let e=n(d,f,`Failed to list conversations.`);throw new r(f.status,e)}return{conversations:(u?.conversations??[]).map(p),hasMore:u?.hasMore??!1}}async function E(e,t={}){let n=[],r=new Set;for(let i=0;i<w;i++){let{conversations:a,hasMore:o}=await T(e,i*C,t);for(let e of a)r.has(e.conversationId)||(r.add(e.conversationId),n.push(e));if(!o||a.length===0)break}return n}async function D(e,t=`active`,n=`lastMessageAt`){let r=t===`active`?{}:{archiveStatus:t},i={...r,conversationType:`background`},[a,o]=await Promise.allSettled([E(e,r),E(e,i)]);if(a.status===`rejected`)throw a.reason;if(o.status===`rejected`)throw o.reason;let s=a.value,c=o.value,l=new Set,u=[];for(let e of[...s,...c])l.has(e.conversationId)||(l.add(e.conversationId),u.push(e));return u.sort(S(n)),u}async function O(e){return[...await E(e)].sort(S(`lastMessageAt`))}async function k(e){let{conversations:t}=await T(e,0);return t.length>0}async function A(e){return(await E(e,{conversationType:`background`})).filter(e=>!o(e)).sort(S(`lastMessageAt`))}async function j(e){return[...await E(e,{conversationType:`scheduled`})].sort(S(`lastMessageAt`))}async function M(e){return D(e,`archived`,`archivedAt`)}async function N(e){let t=await T(e,0);return{...t,conversations:[...t.conversations].sort(S(`lastMessageAt`))}}async function P(e){let t=await T(e,0,{conversationType:`background`});return{...t,conversations:t.conversations.filter(e=>!o(e)).sort(S(`lastMessageAt`))}}async function F(e){let t=await T(e,0,{conversationType:`scheduled`});return{...t,conversations:[...t.conversations].sort(S(`lastMessageAt`))}}var I=3e4;function L(t){return e({queryKey:_(t),queryFn:()=>O(t),staleTime:I})}function R(t){return e({queryKey:y(t),queryFn:()=>A(t),staleTime:I})}function z(t){return e({queryKey:b(t),queryFn:()=>j(t),staleTime:I})}function B(t){return e({queryKey:v(t),queryFn:()=>M(t),staleTime:I})}export{s as _,L as a,o as b,k as c,F as d,x as f,c as g,m as h,y as i,P as l,b as m,v as n,g as o,z as p,R as r,_ as s,B as t,N as u,l as v,a as y};
1
+ import{t as e}from"./queryOptions-CMSBCFOf.js";import{n as t,r as n,t as r}from"./api-errors-BRGPPSWw.js";import{$ as i}from"./sdk.gen-CjtCuSlS.js";function a(e){return e.surfacedAt==null?e.conversationType===`background`||e.conversationType===`scheduled`||e.groupId===`system:background`||e.groupId===`system:scheduled`:!1}function o(e){return e.conversationType===`scheduled`||e.groupId===`system:scheduled`}function s(e){return!e.hasUnseenLatestAssistantMessage&&!a(e)&&e.conversationId!=null&&e.latestAssistantMessageAt!=null}function c(e){return e.hasUnseenLatestAssistantMessage===!0&&!a(e)&&e.conversationId!=null}function l(e){return e.hasUnseenLatestAssistantMessage===!0&&!a(e)&&e.archivedAt==null}function u(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function d(e){return typeof e==`string`?e:void 0}function f(e){if(e)return{sourceChannel:e.sourceChannel,externalChatId:e.externalChatId,externalThreadId:e.externalThreadId,externalChatName:e.externalChatName,externalUserId:d(e.externalUserId),displayName:d(e.displayName),username:d(e.username),slackChannel:e.slackChannel?{channelId:e.slackChannel.channelId,name:e.slackChannel.name,link:e.slackChannel.link?.webUrl?{webUrl:e.slackChannel.link.webUrl}:void 0}:void 0,slackThread:e.slackThread?{channelId:e.slackThread.channelId,threadTs:e.slackThread.threadTs,link:e.slackThread.link?.appUrl||e.slackThread.link?.webUrl?{appUrl:e.slackThread.link.appUrl,webUrl:e.slackThread.link.webUrl}:void 0}:void 0}}function p(e){let t=e.assistantAttention,n=e.channelBinding?.sourceChannel??d(e.conversationOriginChannel);return{conversationId:e.id,title:e.title,createdAt:u(e.createdAt),lastMessageAt:u(e.lastMessageAt??e.updatedAt),hasUnseenLatestAssistantMessage:t?.hasUnseenLatestAssistantMessage,latestAssistantMessageAt:u(t?.latestAssistantMessageAt),lastSeenAssistantMessageAt:u(t?.lastSeenAssistantMessageAt),archivedAt:e.archivedAt,surfacedAt:u(e.surfacedAt),groupId:d(e.groupId),source:e.source,isPinned:e.isPinned,conversationType:e.conversationType,scheduleJobId:e.scheduleJobId,displayOrder:u(e.displayOrder),channelBinding:f(e.channelBinding),originChannel:n,isProcessing:e.isProcessing}}function m(e){return p(e)}var h=`conversation-list`;function g(e){return[h,e??``]}function _(e){return[h,e??``,`foreground`]}function v(e){return[h,e??``,`archived`]}function y(e){return[h,e??``,`background`]}function b(e){return[h,e??``,`scheduled`]}function x(e){return[h,e??``,`channel`]}function S(e){return(t,n)=>(n[e]??0)-(t[e]??0)}var C=50,w=200;async function T(e,a,o={}){let{conversationType:s,archiveStatus:c,originChannel:l}=o,{data:u,error:d,response:f}=await i({path:{assistant_id:e},query:{limit:C,offset:a,...s?{conversationType:s}:{},...c?{archiveStatus:c}:{},...l?{originChannel:l}:{}},throwOnError:!1});if(t(f,d,`Failed to list conversations.`),!f.ok){let e=n(d,f,`Failed to list conversations.`);throw new r(f.status,e)}return{conversations:(u?.conversations??[]).map(p),hasMore:u?.hasMore??!1}}async function E(e,t={}){let n=[],r=new Set;for(let i=0;i<w;i++){let{conversations:a,hasMore:o}=await T(e,i*C,t);for(let e of a)r.has(e.conversationId)||(r.add(e.conversationId),n.push(e));if(!o||a.length===0)break}return n}async function D(e,t=`active`,n=`lastMessageAt`){let r=t===`active`?{}:{archiveStatus:t},i={...r,conversationType:`background`},[a,o]=await Promise.allSettled([E(e,r),E(e,i)]);if(a.status===`rejected`)throw a.reason;if(o.status===`rejected`)throw o.reason;let s=a.value,c=o.value,l=new Set,u=[];for(let e of[...s,...c])l.has(e.conversationId)||(l.add(e.conversationId),u.push(e));return u.sort(S(n)),u}async function O(e){return[...await E(e)].sort(S(`lastMessageAt`))}async function k(e){let{conversations:t}=await T(e,0);return t.length>0}async function A(e){return(await E(e,{conversationType:`background`})).filter(e=>!o(e)).sort(S(`lastMessageAt`))}async function j(e){return[...await E(e,{conversationType:`scheduled`})].sort(S(`lastMessageAt`))}async function M(e){return D(e,`archived`,`archivedAt`)}async function N(e){let t=await T(e,0);return{...t,conversations:[...t.conversations].sort(S(`lastMessageAt`))}}async function P(e){let t=await T(e,0,{conversationType:`background`});return{...t,conversations:t.conversations.filter(e=>!o(e)).sort(S(`lastMessageAt`))}}async function F(e){let t=await T(e,0,{conversationType:`scheduled`});return{...t,conversations:[...t.conversations].sort(S(`lastMessageAt`))}}var I=3e4;function L(t){return e({queryKey:_(t),queryFn:()=>O(t),staleTime:I})}function R(t){return e({queryKey:y(t),queryFn:()=>A(t),staleTime:I})}function z(t){return e({queryKey:b(t),queryFn:()=>j(t),staleTime:I})}function B(t){return e({queryKey:v(t),queryFn:()=>M(t),staleTime:I})}export{s as _,L as a,o as b,k as c,F as d,x as f,c as g,m as h,y as i,P as l,b as m,v as n,g as o,z as p,R as r,_ as s,B as t,N as u,l as v,a as y};
@@ -0,0 +1 @@
1
+ import{d as e}from"./routes-DrfnNoYS.js";import{t}from"./conversation-store-CTMy9QPV.js";import{i as n}from"./viewer-store-DbIS4l8d.js";import{t as r}from"./haptics-C4p_Rjba.js";import{r as i}from"./subagent-store-DibRR9Ij.js";import{t as a}from"./workflow-store-zCcRcvi8.js";import{t as o}from"./conversation-selection-CJs3Fnse.js";import{t as s}from"./sound-manager-Bv6Sc7Ut.js";var c=`vellum:focus-composer`,l=!1;function u(){l=!0,typeof window<`u`&&window.dispatchEvent(new Event(c))}function d(){let e=l;return l=!1,e}var f=[`input`,`textarea`,`select`,`[contenteditable=""]`,`[contenteditable="true"]`,`[role="textbox"]`].join(`,`);function p(e){return!!e?.closest(f)}function m(e){return!!e?.closest(`a[href], button, summary`)}function h(e,t){return!(e.defaultPrevented||e.metaKey||e.ctrlKey||e.altKey||e.isComposing||e.keyCode===229||typeof e.key!=`string`||e.key.length!==1||p(t)||e.key===` `&&m(t))}function g({value:e,text:t,selectionStart:n,selectionEnd:r}){let i=Math.max(0,Math.min(n??e.length,e.length)),a=Math.max(i,Math.min(r??i,e.length));return{value:e.slice(0,i)+t+e.slice(a),cursor:i+t.length}}function _(o,s,c){c?.silent||r.light(),n.getState().setMainView(`chat`),s!==t.getState().activeConversationId&&(i.getState().reset(),a.getState().reset(),n.getState().clearTranscriptPanelPayloads()),t.getState().setActiveConversationId(s),o(c?.messageId?e.conversationAtMessage(s,c.messageId):e.conversation(s))}function v(c,l){l?.silent||(r.light(),s().play(`new_conversation`)),n.getState().setMainView(`chat`),i.getState().reset(),a.getState().reset(),n.getState().clearTranscriptPanelPayloads();let d=o();t.getState().setActiveConversationId(d);let f=e.conversation(d);if(l?.prompt){let e=new URLSearchParams({prompt:l.prompt});f=`${f}?${e.toString()}`}c(f),u()}export{g as a,d as i,v as n,u as o,c as r,h as s,_ as t};
@@ -1 +1 @@
1
- import{t as e}from"./useQuery-Bz-fbQ-m.js";import{r as t}from"./use-is-org-ready-zouQ5CN4.js";import{O as n}from"./react-query.gen-0mspArBl.js";import{a as r,p as i,r as a,t as o}from"./conversation-list-fetchers-BZnx9EMN.js";var s=[],c=[];function l(n,i=!0){let a=t(),o=e({...r(n),enabled:i&&!!n&&a});return{conversations:o.data??s,isLoading:o.isLoading,isPending:o.isPending,isError:o.isError,error:o.error,refetch:()=>{o.refetch()}}}function u(n,r=!0){let i=t(),o=e({...a(n),enabled:r&&!!n&&i});return{conversations:o.data??s,isLoading:o.isLoading,isPending:o.isPending,isError:o.isError,refetch:()=>{o.refetch()}}}function d(n,r=!0){let a=t(),o=e({...i(n),enabled:r&&!!n&&a});return{conversations:o.data??s,isLoading:o.isLoading,isPending:o.isPending,isError:o.isError,refetch:()=>{o.refetch()}}}function f(n,r=!0){let i=t(),a=e({...o(n),enabled:r&&!!n&&i});return{conversations:a.data??s,isLoading:a.isLoading,isPending:a.isPending,isError:a.isError,error:a.error,refetch:()=>{a.refetch()}}}function p(r,i=!0){let a=t(),o=e({...n({path:{assistant_id:r??``}}),select:e=>e.groups,enabled:i&&!!r&&a,staleTime:3e4});return{conversationGroups:o.data??c,isLoading:o.isLoading}}export{d as a,l as i,u as n,p as r,f as t};
1
+ import{t as e}from"./useQuery-Bz-fbQ-m.js";import{r as t}from"./use-is-org-ready-3vHDbj4G.js";import{O as n}from"./react-query.gen-C7om930f.js";import{a as r,p as i,r as a,t as o}from"./conversation-list-fetchers-C6W8PkvR.js";var s=[],c=[];function l(n,i=!0){let a=t(),o=e({...r(n),enabled:i&&!!n&&a});return{conversations:o.data??s,isLoading:o.isLoading,isPending:o.isPending,isError:o.isError,error:o.error,refetch:()=>{o.refetch()}}}function u(n,r=!0){let i=t(),o=e({...a(n),enabled:r&&!!n&&i});return{conversations:o.data??s,isLoading:o.isLoading,isPending:o.isPending,isError:o.isError,refetch:()=>{o.refetch()}}}function d(n,r=!0){let a=t(),o=e({...i(n),enabled:r&&!!n&&a});return{conversations:o.data??s,isLoading:o.isLoading,isPending:o.isPending,isError:o.isError,refetch:()=>{o.refetch()}}}function f(n,r=!0){let i=t(),a=e({...o(n),enabled:r&&!!n&&i});return{conversations:a.data??s,isLoading:a.isLoading,isPending:a.isPending,isError:a.isError,error:a.error,refetch:()=>{a.refetch()}}}function p(r,i=!0){let a=t(),o=e({...n({path:{assistant_id:r??``}}),select:e=>e.groups,enabled:i&&!!r&&a,staleTime:3e4});return{conversationGroups:o.data??c,isLoading:o.isLoading}}export{d as a,l as i,u as n,p as r,f as t};
@@ -1 +1 @@
1
- import{n as e,t}from"./create-selectors-B-P03-8K.js";function n(e,t){if(e.has(t))return e;let n=new Set(e);return n.add(t),n}function r(e,t){if(!e.has(t))return e;let n=new Set(e);return n.delete(t),n}function i(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function a(e,t){let n=t.filter(t=>e.has(t));if(n.length===0)return e;let r=new Set(e);for(let e of n)r.delete(e);return r}function o(e,t){if(!e.has(t))return e;let n=new Map(e);return n.delete(t),n}var s={activeConversationId:null,editingConversationId:null,processingConversationIds:new Set,processingSnapshots:new Map,attentionConversationIds:new Set,pendingDraftProfiles:new Map,pendingDraftPlugins:new Map},c=t(e((e,t)=>({...s,setActiveConversationId:t=>{e({activeConversationId:t})},setEditingConversationId:t=>{e({editingConversationId:t})},addProcessingConversationId:(r,i)=>{let{processingConversationIds:a,processingSnapshots:o}=t(),s=new Map(o);s.set(r,i),e({processingConversationIds:n(a,r),processingSnapshots:s})},markConversationProcessing:(r,i)=>{let{processingConversationIds:a,processingSnapshots:o}=t(),s=a.has(r),c=o.has(r);if(s&&c)return;let l=c?o:new Map(o).set(r,i);e({processingConversationIds:s?a:n(a,r),processingSnapshots:l})},removeProcessingConversationId:n=>{e({processingConversationIds:r(t().processingConversationIds,n),processingSnapshots:o(t().processingSnapshots,n)})},removeMultipleProcessingConversationIds:n=>{let{processingConversationIds:r,processingSnapshots:i}=t(),s=i;for(let e of n)s=o(s,e);e({processingConversationIds:a(r,n),processingSnapshots:s})},transferProcessingConversationId:(n,r)=>{let{processingConversationIds:i,processingSnapshots:a}=t();if(!i.has(n))return;let o=new Set(i);o.delete(n),o.add(r);let s=new Map(a),c=s.get(n);s.delete(n),s.set(r,c),e({processingConversationIds:o,processingSnapshots:s})},addAttentionConversationId:r=>{e({attentionConversationIds:n(t().attentionConversationIds,r)})},removeAttentionConversationId:n=>{e({attentionConversationIds:r(t().attentionConversationIds,n)})},setPendingDraftProfile:(n,r)=>{let i=t().pendingDraftProfiles;i.get(n)!==r&&e({pendingDraftProfiles:new Map(i).set(n,r)})},clearPendingDraftProfile:n=>{let r=t().pendingDraftProfiles;if(!r.has(n))return;let i=new Map(r);i.delete(n),e({pendingDraftProfiles:i})},setPendingDraftPlugins:(n,r)=>{e({pendingDraftPlugins:new Map(t().pendingDraftPlugins).set(n,r)})},togglePendingDraftPlugin:(n,r)=>{let a=t().pendingDraftPlugins,o=new Map(a);o.set(n,i(a.get(n),r)),e({pendingDraftPlugins:o})},clearPendingDraftPlugins:n=>{let r=t().pendingDraftPlugins;if(!r.has(n))return;let i=new Map(r);i.delete(n),e({pendingDraftPlugins:i})},graduateProcessingConversationId:(t,i)=>{e(e=>({processingConversationIds:r(e.processingConversationIds,t),processingSnapshots:o(e.processingSnapshots,t),attentionConversationIds:i?n(e.attentionConversationIds,t):e.attentionConversationIds}))},reset:()=>{e({...s,processingConversationIds:new Set,processingSnapshots:new Map,attentionConversationIds:new Set,pendingDraftProfiles:new Map,pendingDraftPlugins:new Map})}})));export{c as t};
1
+ import{n as e,t}from"./create-selectors-BfxF8Sx_.js";function n(e,t){if(e.has(t))return e;let n=new Set(e);return n.add(t),n}function r(e,t){if(!e.has(t))return e;let n=new Set(e);return n.delete(t),n}function i(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function a(e,t){let n=t.filter(t=>e.has(t));if(n.length===0)return e;let r=new Set(e);for(let e of n)r.delete(e);return r}function o(e,t){if(!e.has(t))return e;let n=new Map(e);return n.delete(t),n}var s={activeConversationId:null,editingConversationId:null,processingConversationIds:new Set,processingSnapshots:new Map,attentionConversationIds:new Set,pendingDraftProfiles:new Map,pendingDraftPlugins:new Map},c=t(e((e,t)=>({...s,setActiveConversationId:t=>{e({activeConversationId:t})},setEditingConversationId:t=>{e({editingConversationId:t})},addProcessingConversationId:(r,i)=>{let{processingConversationIds:a,processingSnapshots:o}=t(),s=new Map(o);s.set(r,i),e({processingConversationIds:n(a,r),processingSnapshots:s})},markConversationProcessing:(r,i)=>{let{processingConversationIds:a,processingSnapshots:o}=t(),s=a.has(r),c=o.has(r);if(s&&c)return;let l=c?o:new Map(o).set(r,i);e({processingConversationIds:s?a:n(a,r),processingSnapshots:l})},removeProcessingConversationId:n=>{e({processingConversationIds:r(t().processingConversationIds,n),processingSnapshots:o(t().processingSnapshots,n)})},removeMultipleProcessingConversationIds:n=>{let{processingConversationIds:r,processingSnapshots:i}=t(),s=i;for(let e of n)s=o(s,e);e({processingConversationIds:a(r,n),processingSnapshots:s})},transferProcessingConversationId:(n,r)=>{let{processingConversationIds:i,processingSnapshots:a}=t();if(!i.has(n))return;let o=new Set(i);o.delete(n),o.add(r);let s=new Map(a),c=s.get(n);s.delete(n),s.set(r,c),e({processingConversationIds:o,processingSnapshots:s})},addAttentionConversationId:r=>{e({attentionConversationIds:n(t().attentionConversationIds,r)})},removeAttentionConversationId:n=>{e({attentionConversationIds:r(t().attentionConversationIds,n)})},setPendingDraftProfile:(n,r)=>{let i=t().pendingDraftProfiles;i.get(n)!==r&&e({pendingDraftProfiles:new Map(i).set(n,r)})},clearPendingDraftProfile:n=>{let r=t().pendingDraftProfiles;if(!r.has(n))return;let i=new Map(r);i.delete(n),e({pendingDraftProfiles:i})},setPendingDraftPlugins:(n,r)=>{e({pendingDraftPlugins:new Map(t().pendingDraftPlugins).set(n,r)})},togglePendingDraftPlugin:(n,r)=>{let a=t().pendingDraftPlugins,o=new Map(a);o.set(n,i(a.get(n),r)),e({pendingDraftPlugins:o})},clearPendingDraftPlugins:n=>{let r=t().pendingDraftPlugins;if(!r.has(n))return;let i=new Map(r);i.delete(n),e({pendingDraftPlugins:i})},graduateProcessingConversationId:(t,i)=>{e(e=>({processingConversationIds:r(e.processingConversationIds,t),processingSnapshots:o(e.processingSnapshots,t),attentionConversationIds:i?n(e.attentionConversationIds,t):e.attentionConversationIds}))},reset:()=>{e({...s,processingConversationIds:new Set,processingSnapshots:new Map,attentionConversationIds:new Set,pendingDraftProfiles:new Map,pendingDraftPlugins:new Map})}})));export{c as t};
@@ -1 +1 @@
1
- import{t as e}from"./capture-error-FWzaVb8P.js";import{n as t}from"./toast-DR7D7Uma.js";function n(n,r){if(!navigator.clipboard?.writeText){e(Error(`Clipboard API unavailable`),{context:`copyToClipboard`}),t.error(r.errorMessage);return}navigator.clipboard.writeText(n).then(()=>{r.onCopied?.(),r.successMessage&&t.success(r.successMessage)},n=>{e(n,{context:`copyToClipboard`}),t.error(r.errorMessage)})}export{n as t};
1
+ import{t as e}from"./capture-error-CqtAGHQu.js";import{n as t}from"./toast-BtFgiPe3.js";function n(n,r){if(!navigator.clipboard?.writeText){e(Error(`Clipboard API unavailable`),{context:`copyToClipboard`}),t.error(r.errorMessage);return}navigator.clipboard.writeText(n).then(()=>{r.onCopied?.(),r.successMessage&&t.success(r.successMessage)},n=>{e(n,{context:`copyToClipboard`}),t.error(r.errorMessage)})}export{n as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./card-DRIctGVs.js";import{t as a}from"./circle-alert-DVCpoZrc.js";import{t as o}from"./circle-check-CjGnAahM.js";import{t as s}from"./key-round-CSc3w5ka.js";import{t as c}from"./loader-circle-BzJ2kz3F.js";import{t as l}from"./input-C-GkeWCw.js";import{s as u}from"./remote-gateway-session-CgxYHgOD.js";var d=e(t(),1),f=`/v1/credential-requests/peek`,p=`/v1/credential-requests/submit`;function m(e){return e>0xe8d4a51000?e:e*1e3}function h(e){let t=e?.error?.code;return t===`INVALID`?`invalid`:t===`EXPIRED`?`expired`:t===`USED`?`used`:null}function g(e){let t=e;return typeof t?.service==`string`&&typeof t.field==`string`&&(t.label===null||typeof t.label==`string`)&&typeof t.expiresAt==`number`}async function _(e,t){let n=await fetch(u(f),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e}),signal:t}),r=await n.json().catch(()=>null);return n.ok&&g(r)?{status:`ok`,request:r}:n.status===404?{status:h(r)??`invalid`}:{status:`error`}}async function v(e,t,n){let r=await fetch(u(p),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,value:t}),signal:n});if(r.ok)return{status:`ok`};let i=await r.json().catch(()=>null);return r.status===404?{status:h(i)??`invalid`}:r.status===502?{status:`store-failed`}:{status:`error`}}var y=r();function b(e){let[t,n]=(0,d.useState)(()=>Date.now());return(0,d.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function x(e){let t=Math.max(0,Math.ceil(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}function S({icon:e,title:t,children:n}){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e,(0,y.jsx)(`h1`,{className:`text-xl font-semibold`,children:t})]}),(0,y.jsx)(`p`,{className:`text-sm leading-6 text-[var(--content-secondary)]`,children:n})]})}function C(){let[e]=(0,d.useState)(()=>new URLSearchParams(window.location.hash.replace(/^#/,``)).get(`token`)?.trim()||new URLSearchParams(window.location.search).get(`token`)?.trim()||null),[t,r]=(0,d.useState)({kind:`loading`}),[u,f]=(0,d.useState)(``),[p,h]=(0,d.useState)(!1),[g,C]=(0,d.useState)(null),w=b(1e3);(0,d.useEffect)(()=>{let e=new URL(window.location.href),t=new URLSearchParams(e.hash.replace(/^#/,``));if(!t.has(`token`)&&!e.searchParams.has(`token`))return;e.searchParams.delete(`token`),t.delete(`token`);let n=t.toString();window.history.replaceState(window.history.state,``,`${e.pathname}${e.search}${n?`#${n}`:``}`)},[]),(0,d.useEffect)(()=>{if(!e){r({kind:`invalid`});return}let t=new AbortController;return(async()=>{let n=await _(e,t.signal).catch(()=>({status:`error`}));t.signal.aborted||(n.status===`ok`?r({kind:`form`,request:n.request}):r({kind:n.status}))})(),()=>{t.abort()}},[e]);let T=async n=>{if(n.preventDefault(),!e||t.kind!==`form`||!u.trim()||p)return;h(!0),C(null);let i=await v(e,u).catch(()=>({status:`error`}));switch(h(!1),i.status){case`ok`:f(``),r({kind:`success`});break;case`invalid`:case`expired`:case`used`:r({kind:i.status});break;case`store-failed`:f(``),r({kind:`store-failed`});break;case`error`:C(`Something went wrong while submitting. Check your connection and try again.`);break}},E=t.kind===`form`?m(t.request.expiresAt):null,D=t.kind===`form`&&E!==null&&E>w,O;if(t.kind===`loading`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(c,{className:`h-5 w-5 animate-spin text-blue-600`,"aria-hidden":!0}),title:`Checking link`,children:`Looking up this credential request.`});else if(t.kind===`success`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(o,{className:`h-5 w-5 text-green-600`,"aria-hidden":!0}),title:`Credential saved`,children:`You can close this tab and return to your conversation — the assistant can use the credential right away. The value can't be viewed again.`});else if(t.kind===`invalid`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Link not valid`,children:`This credential link isn't valid. Check that the full link was copied, or ask for a new one.`});else if(t.kind===`expired`||t.kind===`form`&&!D)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Link expired`,children:`This credential link has expired. Links only work for a short time — ask for a new one and enter the value again.`});else if(t.kind===`used`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Link already used`,children:`This credential link has already been used. Each link works exactly once — ask for a new one if the value still needs to be provided.`});else if(t.kind===`store-failed`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Link no longer valid`,children:`The assistant could not store the credential, and for safety this one-time link cannot be reused. Ask for a new link and try again there.`});else if(t.kind===`error`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Something went wrong`,children:`The credential request couldn't be loaded. Refresh the page to try again.`});else{let{request:e}=t,r=`${e.service}:${e.field}`,i=(E??0)-w;O=(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(s,{className:`h-5 w-5 text-blue-600`,"aria-hidden":!0}),(0,y.jsx)(`h1`,{className:`text-xl font-semibold`,children:`Provide a credential`})]}),(0,y.jsxs)(`div`,{className:`rounded-md border border-[var(--border-subtle)] bg-[var(--background-muted)] p-4`,children:[(0,y.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label||r}),(0,y.jsxs)(`p`,{className:`mt-1 font-mono text-body-small-default text-[var(--content-tertiary)]`,children:[e.label?`${r} · `:``,`one-time entry`]})]}),(0,y.jsx)(`p`,{className:`text-sm leading-6 text-[var(--content-secondary)]`,children:`Enter the secret value below. It is stored encrypted on the assistant, is never shown again, and this link stops working as soon as it's used.`}),(0,y.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>void T(e),children:[(0,y.jsx)(l,{label:`Secret value`,type:`password`,value:u,onChange:e=>f(e.target.value),placeholder:`Enter the secret value`,autoComplete:`off`,autoFocus:!0,fullWidth:!0,errorText:g??void 0}),(0,y.jsx)(n,{type:`submit`,disabled:p||!u.trim(),leftIcon:p?(0,y.jsx)(c,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:`Submit`})]}),(0,y.jsxs)(`p`,{className:`text-xs text-[var(--content-tertiary)]`,children:[`Expires in `,x(i),` (`,new Date(E??0).toLocaleTimeString(),`).`]})]})}return(0,y.jsx)(`main`,{className:`flex min-h-svh items-center justify-center bg-[var(--background-default)] px-6 py-10 text-[var(--content-primary)]`,children:(0,y.jsx)(`div`,{className:`w-full max-w-md`,children:(0,y.jsx)(i.Root,{bordered:!0,elevated:!0,padding:`lg`,children:(0,y.jsx)(`div`,{className:`flex flex-col gap-4`,children:O})})})})}export{C as CredentialEntryPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./card-DRIctGVs.js";import{t as a}from"./circle-alert-DQMH8VJH.js";import{t as o}from"./circle-check-DvrCdroD.js";import{t as s}from"./key-round-BFkuiQGH.js";import{t as c}from"./loader-circle-DWWXcfTQ.js";import{t as l}from"./input-tXUFa7Eo.js";import{s as u}from"./remote-gateway-session-C8pRadB2.js";var d=e(t(),1),f=`/v1/credential-requests/peek`,p=`/v1/credential-requests/submit`;function m(e){return e>0xe8d4a51000?e:e*1e3}function h(e){let t=e?.error?.code;return t===`INVALID`?`invalid`:t===`EXPIRED`?`expired`:t===`USED`?`used`:null}function g(e){let t=e;return typeof t?.service==`string`&&typeof t.field==`string`&&(t.label===null||typeof t.label==`string`)&&typeof t.expiresAt==`number`}async function _(e,t){let n=await fetch(u(f),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e}),signal:t}),r=await n.json().catch(()=>null);return n.ok&&g(r)?{status:`ok`,request:r}:n.status===404?{status:h(r)??`invalid`}:{status:`error`}}async function v(e,t,n){let r=await fetch(u(p),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,value:t}),signal:n});if(r.ok)return{status:`ok`};let i=await r.json().catch(()=>null);return r.status===404?{status:h(i)??`invalid`}:r.status===502?{status:`store-failed`}:{status:`error`}}var y=r();function b(e){let[t,n]=(0,d.useState)(()=>Date.now());return(0,d.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function x(e){let t=Math.max(0,Math.ceil(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}function S({icon:e,title:t,children:n}){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e,(0,y.jsx)(`h1`,{className:`text-xl font-semibold`,children:t})]}),(0,y.jsx)(`p`,{className:`text-sm leading-6 text-[var(--content-secondary)]`,children:n})]})}function C(){let[e]=(0,d.useState)(()=>new URLSearchParams(window.location.hash.replace(/^#/,``)).get(`token`)?.trim()||new URLSearchParams(window.location.search).get(`token`)?.trim()||null),[t,r]=(0,d.useState)({kind:`loading`}),[u,f]=(0,d.useState)(``),[p,h]=(0,d.useState)(!1),[g,C]=(0,d.useState)(null),w=b(1e3);(0,d.useEffect)(()=>{let e=new URL(window.location.href),t=new URLSearchParams(e.hash.replace(/^#/,``));if(!t.has(`token`)&&!e.searchParams.has(`token`))return;e.searchParams.delete(`token`),t.delete(`token`);let n=t.toString();window.history.replaceState(window.history.state,``,`${e.pathname}${e.search}${n?`#${n}`:``}`)},[]),(0,d.useEffect)(()=>{if(!e){r({kind:`invalid`});return}let t=new AbortController;return(async()=>{let n=await _(e,t.signal).catch(()=>({status:`error`}));t.signal.aborted||(n.status===`ok`?r({kind:`form`,request:n.request}):r({kind:n.status}))})(),()=>{t.abort()}},[e]);let T=async n=>{if(n.preventDefault(),!e||t.kind!==`form`||!u.trim()||p)return;h(!0),C(null);let i=await v(e,u).catch(()=>({status:`error`}));switch(h(!1),i.status){case`ok`:f(``),r({kind:`success`});break;case`invalid`:case`expired`:case`used`:r({kind:i.status});break;case`store-failed`:f(``),r({kind:`store-failed`});break;case`error`:C(`Something went wrong while submitting. Check your connection and try again.`);break}},E=t.kind===`form`?m(t.request.expiresAt):null,D=t.kind===`form`&&E!==null&&E>w,O;if(t.kind===`loading`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(c,{className:`h-5 w-5 animate-spin text-blue-600`,"aria-hidden":!0}),title:`Checking link`,children:`Looking up this credential request.`});else if(t.kind===`success`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(o,{className:`h-5 w-5 text-green-600`,"aria-hidden":!0}),title:`Credential saved`,children:`You can close this tab and return to your conversation — the assistant can use the credential right away. The value can't be viewed again.`});else if(t.kind===`invalid`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Link not valid`,children:`This credential link isn't valid. Check that the full link was copied, or ask for a new one.`});else if(t.kind===`expired`||t.kind===`form`&&!D)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Link expired`,children:`This credential link has expired. Links only work for a short time — ask for a new one and enter the value again.`});else if(t.kind===`used`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Link already used`,children:`This credential link has already been used. Each link works exactly once — ask for a new one if the value still needs to be provided.`});else if(t.kind===`store-failed`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Link no longer valid`,children:`The assistant could not store the credential, and for safety this one-time link cannot be reused. Ask for a new link and try again there.`});else if(t.kind===`error`)O=(0,y.jsx)(S,{icon:(0,y.jsx)(a,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:`Something went wrong`,children:`The credential request couldn't be loaded. Refresh the page to try again.`});else{let{request:e}=t,r=`${e.service}:${e.field}`,i=(E??0)-w;O=(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,y.jsx)(s,{className:`h-5 w-5 text-blue-600`,"aria-hidden":!0}),(0,y.jsx)(`h1`,{className:`text-xl font-semibold`,children:`Provide a credential`})]}),(0,y.jsxs)(`div`,{className:`rounded-md border border-[var(--border-subtle)] bg-[var(--background-muted)] p-4`,children:[(0,y.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label||r}),(0,y.jsxs)(`p`,{className:`mt-1 font-mono text-body-small-default text-[var(--content-tertiary)]`,children:[e.label?`${r} · `:``,`one-time entry`]})]}),(0,y.jsx)(`p`,{className:`text-sm leading-6 text-[var(--content-secondary)]`,children:`Enter the secret value below. It is stored encrypted on the assistant, is never shown again, and this link stops working as soon as it's used.`}),(0,y.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>void T(e),children:[(0,y.jsx)(l,{label:`Secret value`,type:`password`,value:u,onChange:e=>f(e.target.value),placeholder:`Enter the secret value`,autoComplete:`off`,autoFocus:!0,fullWidth:!0,errorText:g??void 0}),(0,y.jsx)(n,{type:`submit`,disabled:p||!u.trim(),leftIcon:p?(0,y.jsx)(c,{className:`animate-spin`,"aria-hidden":!0}):void 0,children:`Submit`})]}),(0,y.jsxs)(`p`,{className:`text-xs text-[var(--content-tertiary)]`,children:[`Expires in `,x(i),` (`,new Date(E??0).toLocaleTimeString(),`).`]})]})}return(0,y.jsx)(`main`,{className:`flex min-h-svh items-center justify-center bg-[var(--background-default)] px-6 py-10 text-[var(--content-primary)]`,children:(0,y.jsx)(`div`,{className:`w-full max-w-md`,children:(0,y.jsx)(i.Root,{bordered:!0,elevated:!0,padding:`lg`,children:(0,y.jsx)(`div`,{className:`flex flex-col gap-4`,children:O})})})})}export{C as CredentialEntryPage};