@vellumai/web 0.12.2 → 0.12.3-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 (496) hide show
  1. package/dist/assets/{a2a-invite-BOdHy8O9.js → a2a-invite-YEhyUfHN.js} +1 -1
  2. package/dist/assets/about-page-DQ4Ec_gj.js +1 -0
  3. package/dist/assets/{account-page-CYNbvuWs.js → account-page-BghnPvuL.js} +1 -1
  4. package/dist/assets/{account-shell-CbiWTAQP.js → account-shell-CT_g1Cvn.js} +1 -1
  5. package/dist/assets/acp-run-detail-panel-ZMurb2U4.js +3 -0
  6. package/dist/assets/activation-list-route-B6gs5a1E.js +1 -0
  7. package/dist/assets/{activity-redirect-page-BWj7yOid.js → activity-redirect-page-XGaUoIu2.js} +1 -1
  8. package/dist/assets/activity-steps-panel-oPxwforM.js +1 -0
  9. package/dist/assets/add-credits-modal-DPxdUzMN.js +1 -0
  10. package/dist/assets/add-credits-modal-DQewP5v-.js +1 -0
  11. package/dist/assets/ai-page-CkRPZ6AS.js +1 -0
  12. package/dist/assets/{android-billing-handoff-CpzR7JDr.js → android-billing-handoff-BsKu5TdI.js} +1 -1
  13. package/dist/assets/api-key-screen-BQqbHhQW.js +1 -0
  14. package/dist/assets/app-Bt7_4qDf.css +2 -0
  15. package/dist/assets/app-CuJb51Ub.js +392 -0
  16. package/dist/assets/{app-info-B8Mqmeak.js → app-info-_UBZr9dH.js} +1 -1
  17. package/dist/assets/archive-redirect-page-RvHNp7Bj.js +1 -0
  18. package/dist/assets/assistant-handle-modal-BRiG9i6h.js +1 -0
  19. package/dist/assets/assistant-inbox-BTthGy8r.js +1 -0
  20. package/dist/assets/assistant-inbox-D9TUdSDf.js +1 -0
  21. package/dist/assets/assistant-inbox-DsdFMHPG.js +1 -0
  22. package/dist/assets/assistant-inbox-afWVgVXS.js +1 -0
  23. package/dist/assets/assistant-inbox-page-route-bl3sym1B.js +8 -0
  24. package/dist/assets/assistant-inbox-upgrade-body-vP7feu0-.js +1 -0
  25. package/dist/assets/assistant-status-panel-DyZG5B7d.js +1 -0
  26. package/dist/assets/auth-store-DaELMwxW.js +1 -0
  27. package/dist/assets/{auth-welcome-screen-D2mxoZEG.js → auth-welcome-screen-OOkWXm3h.js} +1 -1
  28. package/dist/assets/avatar-bundled-components-B17wqAfu.js +1 -0
  29. package/dist/assets/avatar-random-pfwnM7gG.js +2 -0
  30. package/dist/assets/{await-org-header-settled-CYxBtSPa.js → await-org-header-settled-BXDHXjvn.js} +1 -1
  31. package/dist/assets/background-task-detail-panel-ByKAldw1.js +1 -0
  32. package/dist/assets/billing-page-C8Kct5_W.js +3 -0
  33. package/dist/assets/{billing-redirect-page-nGTPWHMN.js → billing-redirect-page-C8yes4JF.js} +1 -1
  34. package/dist/assets/{bookmarks-page-CGd4Okx8.js → bookmarks-page-DMD8fJ_4.js} +1 -1
  35. package/dist/assets/{bundle-confirm-page-BuQ9wfYw.js → bundle-confirm-page-NBQ9F6Qf.js} +1 -1
  36. package/dist/assets/channel-transcript-panel-CTebK_R-.js +1 -0
  37. package/dist/assets/channels-page-route-DdD8wtc6.js +1 -0
  38. package/dist/assets/chat-BMvgjoaE.js +3 -0
  39. package/dist/assets/chat-CuuC3zzW.js +3 -0
  40. package/dist/assets/chat-Tf6vwiZF.js +3 -0
  41. package/dist/assets/chat-XTdwAIMs.js +3 -0
  42. package/dist/assets/chat-info-panel-ZWQoXKte.js +1 -0
  43. package/dist/assets/checkout-continuation-B4jzmA7d.js +1 -0
  44. package/dist/assets/checkout-page-DXa67FMK.js +1 -0
  45. package/dist/assets/checkout-return-target-BPGhcrkl.js +1 -0
  46. package/dist/assets/command-palette-BA8nwW7R.js +1 -0
  47. package/dist/assets/command-palette-fmZyoBR-.js +1 -0
  48. package/dist/assets/{command-palette-window-page-UeoQHE-2.js → command-palette-window-page-B7uBXbJY.js} +1 -1
  49. package/dist/assets/common-9xzLIcrw.js +1 -0
  50. package/dist/assets/common-Bs6eHe6c.js +1 -0
  51. package/dist/assets/common-DqBxs0W6.js +1 -0
  52. package/dist/assets/common-qa5Iw8ye.js +1 -0
  53. package/dist/assets/community-page-B8TI9Wcd.js +1 -0
  54. package/dist/assets/{companion-accent-C3xBrXHO.js → companion-accent-ggBv1xjm.js} +1 -1
  55. package/dist/assets/{companion-dock-zones-page-plFxxNVK.js → companion-dock-zones-page-DK4KtiQ3.js} +1 -1
  56. package/dist/assets/{companion-layout-Cu_j-nKV.js → companion-layout-BTsiJq0U.js} +1 -1
  57. package/dist/assets/{companion-popover-STvrRaku.js → companion-popover-CgAs-3Gu.js} +1 -1
  58. package/dist/assets/{companion-popover-page-Dvft1iSc.js → companion-popover-page-BeUJyhWH.js} +1 -1
  59. package/dist/assets/companion-surface-page-3XNMFxTQ.js +1 -0
  60. package/dist/assets/companion-watch-frame-page-dPkoED3s.js +1 -0
  61. package/dist/assets/connect-page-DbLeEQxF.js +1 -0
  62. package/dist/assets/consent-controls-DfR6IsHI.js +1 -0
  63. package/dist/assets/contacts-gateway-d-y646Z7.js +1 -0
  64. package/dist/assets/contacts-page-route-fdw7hTRm.js +1 -0
  65. package/dist/assets/copy-button-D4V65x9R.js +1 -0
  66. package/dist/assets/{credential-entry-page-CvXfQZPl.js → credential-entry-page-CC_NFEbF.js} +1 -1
  67. package/dist/assets/credentials-page-DB9ZdkHa.js +1 -0
  68. package/dist/assets/{csv-preview-TFV8b1Dq.js → csv-preview-DWddWd8B.js} +2 -2
  69. package/dist/assets/danger-zone-redirect-page-CSRwK5IS.js +1 -0
  70. package/dist/assets/debug-page-DhHfz_7g.js +4 -0
  71. package/dist/assets/deploy-dialogs-DR-3t8lu.js +1 -0
  72. package/dist/assets/deploy-dialogs-DjptDCDt.js +1 -0
  73. package/dist/assets/desktop-preview-content-DVu8RwqH.js +2 -0
  74. package/dist/assets/{desktop-status-CPR10G_B.js → desktop-status-D6XhFAXD.js} +1 -1
  75. package/dist/assets/{desktop-viewer-Cm09cFMg.js → desktop-viewer-CwGjxDiz.js} +2 -2
  76. package/dist/assets/{detail-card-pT0agbKq.js → detail-card-RBkdhZeE.js} +1 -1
  77. package/dist/assets/{detail-panel-stop-button-DWoO-nJN.js → detail-panel-stop-button-OKauZTzu.js} +1 -1
  78. package/dist/assets/detail-primitives-DUplMiby.js +1 -0
  79. package/dist/assets/developer-page-C2A5rbGd.js +1 -0
  80. package/dist/assets/devices-redirect-page-CEhKfx9w.js +1 -0
  81. package/dist/assets/{dictation-overlay-page-CG8S4p0x.js → dictation-overlay-page-DWi_654w.js} +1 -1
  82. package/dist/assets/document-load-BImJKE6b.js +1 -0
  83. package/dist/assets/document-load-DigzYkKe.js +1 -0
  84. package/dist/assets/document-viewer-page-Ba33RQu-.js +1 -0
  85. package/dist/assets/{ellipsis-vertical-Dbz00Lo-.js → ellipsis-vertical-Bg7ccW1x.js} +1 -1
  86. package/dist/assets/emails-page-DRgG2iU-.js +1 -0
  87. package/dist/assets/esm-BH0KFYVK.js +2 -0
  88. package/dist/assets/esm-BXFfs0Tk.js +2 -0
  89. package/dist/assets/{esm-BRap8C09.js → esm-CAEWVAik.js} +1 -1
  90. package/dist/assets/{esm-BfMa-HX2.js → esm-CG0ueXyz.js} +2 -2
  91. package/dist/assets/esm-CT0ZrwJA.js +2 -0
  92. package/dist/assets/{esm-C8i-Nf3-.js → esm-DOxardAg.js} +1 -1
  93. package/dist/assets/esm-KPTngYDV.js +1 -0
  94. package/dist/assets/esm-bM6TjnbQ.js +2 -0
  95. package/dist/assets/esm-baSLKmq7.js +1 -0
  96. package/dist/assets/esm-v_AdtkOG.js +2 -0
  97. package/dist/assets/{file-diff-view-CO2QJdSQ.js → file-diff-view-MJLG55XC.js} +1 -1
  98. package/dist/assets/file-editor-zljxVqM1.js +1 -0
  99. package/dist/assets/general-page-Cpso8KX8.js +2 -0
  100. package/dist/assets/hatching-screen-DxPhFMQU.js +1 -0
  101. package/dist/assets/home-B4mFw6dT.js +1 -0
  102. package/dist/assets/home-BzR8_HQU.js +1 -0
  103. package/dist/assets/home-CYyxII3D.js +1 -0
  104. package/dist/assets/home-CmNwqbst.js +1 -0
  105. package/dist/assets/hosting-screen-DCDIt-t-.js +1 -0
  106. package/dist/assets/icons-C0wyat6T.js +1 -0
  107. package/dist/assets/identity-page-route-BrQVfOp-.js +7 -0
  108. package/dist/assets/inspect-page-xaoUoICP.js +9 -0
  109. package/dist/assets/integrations-page-CLoQBZkk.js +1 -0
  110. package/dist/assets/{intelligence-C2fySq4l.js → intelligence-CpXzEjYF.js} +1 -1
  111. package/dist/assets/{intelligence-DFMbHITq.js → intelligence-DBi0b7qu.js} +1 -1
  112. package/dist/assets/{intelligence-dNqws_vC.js → intelligence-DGdtAPWo.js} +1 -1
  113. package/dist/assets/{intelligence-8J0ZD9Ph.js → intelligence-DNltjvNx.js} +1 -1
  114. package/dist/assets/intelligence-layout-CaIcPBw8.js +1 -0
  115. package/dist/assets/intelligence-layout-slots-store-DvsrWW-i.js +1 -0
  116. package/dist/assets/is-record-dXfGpgI1.js +1 -0
  117. package/dist/assets/keyboard-shortcuts-redirect-page-BPqjRP4K.js +1 -0
  118. package/dist/assets/{latest-assistant-text-CaZrfk6l.js → latest-assistant-text-BTp150tH.js} +3 -3
  119. package/dist/assets/library-Bf8joD86.js +1 -0
  120. package/dist/assets/library-Cx2cjKPf.js +1 -0
  121. package/dist/assets/library-DOKbGvUV.js +1 -0
  122. package/dist/assets/library-detail-page-BzSb6IEQ.js +1 -0
  123. package/dist/assets/library-page-CtJ9kssD.js +1 -0
  124. package/dist/assets/library-zJtAtUFf.js +1 -0
  125. package/dist/assets/local-mode-CaoN0Sn7.js +1 -0
  126. package/dist/assets/login-page-BjrVlKsv.js +1 -0
  127. package/dist/assets/logout-page-DUl9JwnN.js +1 -0
  128. package/dist/assets/{logs-layout-BqrW_P--.js → logs-layout-Xb4wGoWT.js} +1 -1
  129. package/dist/assets/markdown-preview-D0DqF7iz.js +1 -0
  130. package/dist/assets/{media-preview-DvdWd4rA.js → media-preview-DZN2yf7r.js} +1 -1
  131. package/dist/assets/memory-page-route-DbTGy5dS.js +2 -0
  132. package/dist/assets/memory-router-playground-page-DAFTIiv5.js +1 -0
  133. package/dist/assets/{message-files-panel-B4KcGaTu.js → message-files-panel-BuDKGaLT.js} +1 -1
  134. package/dist/assets/{metric-card-BLErTI6M.js → metric-card-BncToo74.js} +1 -1
  135. package/dist/assets/native-attachment-pickers-AncXy1zz.js +1 -0
  136. package/dist/assets/native-file-DM_uMrba.js +1 -0
  137. package/dist/assets/{notifications-page-wjJIxJdC.js → notifications-page-C3i9p5Vc.js} +1 -1
  138. package/dist/assets/{oauth-complete-page-DMvGhbPg.js → oauth-complete-page-DgqkoY_m.js} +1 -1
  139. package/dist/assets/{oauth-popup-complete-page-BjtYXKTi.js → oauth-popup-complete-page-BmxSR325.js} +2 -2
  140. package/dist/assets/onboarding-BKY3R-h7.js +1 -0
  141. package/dist/assets/onboarding-Bcx45nYG.js +1 -0
  142. package/dist/assets/onboarding-DPxPqQZZ.js +1 -0
  143. package/dist/assets/onboarding-xZiMELt_.js +1 -0
  144. package/dist/assets/paired-platform-identity-DGOgilFb.js +1 -0
  145. package/dist/assets/{pairing-page-BfrUX_YA.js → pairing-page-Dsbzq7L8.js} +1 -1
  146. package/dist/assets/password-reset-page-PdHEN7Fr.js +1 -0
  147. package/dist/assets/pdf-file-preview-CWJ0OMTa.js +1 -0
  148. package/dist/assets/{peeking-eyes-DJkKQl-G.js → peeking-eyes-CnCoikI6.js} +1 -1
  149. package/dist/assets/personality-page-DKo_lJxu.js +1 -0
  150. package/dist/assets/{personality-page-D03UdQms.js → personality-page-DlHUe2qc.js} +1 -1
  151. package/dist/assets/personality-sliders-BqmVzcmM.js +1 -0
  152. package/dist/assets/plans-page-BpFMs8mZ.js +1 -0
  153. package/dist/assets/{platform-loopback-page-C3a-am1y.js → platform-loopback-page-BzQhvfv_.js} +1 -1
  154. package/dist/assets/{plugin-detail-page-D52frrTx.js → plugin-detail-page-rt0R_AaV.js} +1 -1
  155. package/dist/assets/{plugins-page-RrhNT7og.js → plugins-page-Dl7GFK6d.js} +1 -1
  156. package/dist/assets/plugins-surface-iPrkdvkP.js +1 -0
  157. package/dist/assets/{preview-error-BlHGLqgj.js → preview-error-DuDAfoam.js} +1 -1
  158. package/dist/assets/privacy-page-Bh12czrY.js +1 -0
  159. package/dist/assets/privacy-screen-Cz6H68zD.js +1 -0
  160. package/dist/assets/profile-card-J_samGMh.js +1 -0
  161. package/dist/assets/provider-callback-page-C0UGaWIw.js +1 -0
  162. package/dist/assets/{provider-key-CHOBBf9E.js → provider-key-CbhZiNNN.js} +1 -1
  163. package/dist/assets/provider-signup-page-Drji-PwC.js +1 -0
  164. package/dist/assets/{provisioning-targets-B5flnyHy.js → provisioning-targets-DdCpl6ZX.js} +1 -1
  165. package/dist/assets/quick-input-page-DmpCyTr4.js +1 -0
  166. package/dist/assets/referral-modal-BSn13lRu.js +1 -0
  167. package/dist/assets/referral-modal-QJAdmDzx.js +1 -0
  168. package/dist/assets/{rehype-katex-Bp74Wkmo.js → rehype-katex-BYCIqkMD.js} +3 -3
  169. package/dist/assets/{research-mock-page-CHfDwifi.js → research-mock-page-8RHdSLhH.js} +1 -1
  170. package/dist/assets/research-onboarding-route-BqvFXKx_.js +50 -0
  171. package/dist/assets/review-terms-screen-CpSlI6us.js +1 -0
  172. package/dist/assets/routes-DRjjKNUc.js +1 -0
  173. package/dist/assets/schedules-Dusp4Vm1.js +1 -0
  174. package/dist/assets/schedules-page-B5_qnJEH.js +1 -0
  175. package/dist/assets/security-redirect-page-DDk2mqiF.js +1 -0
  176. package/dist/assets/select-assistant-screen-CFAo9xC-.js +1 -0
  177. package/dist/assets/{self-hosted-servers-CsZVedz3.js → self-hosted-servers-Cmtr5Sxi.js} +1 -1
  178. package/dist/assets/service-form-controls-DlTzRBdL.js +1 -0
  179. package/dist/assets/{setting-row-B9yebbEq.js → setting-row-DJHlwNfk.js} +1 -1
  180. package/dist/assets/settings-B3vTMNhh.js +3 -0
  181. package/dist/assets/settings-C3z9L8MJ.js +3 -0
  182. package/dist/assets/settings-DB7J6r5t.js +3 -0
  183. package/dist/assets/settings-divider-2hwVjQ2t.js +1 -0
  184. package/dist/assets/settings-fUw4hAbD.js +3 -0
  185. package/dist/assets/{settings-layout-D6972VFH.js → settings-layout-BO2YTV10.js} +1 -1
  186. package/dist/assets/share-feedback-modal-BCn8wVXT.js +1 -0
  187. package/dist/assets/share-feedback-modal-bqiJ8vPh.js +2 -0
  188. package/dist/assets/{sidebar-tree-C-XVAOgc.js → sidebar-tree-CTzyarHJ.js} +1 -1
  189. package/dist/assets/{signup-page-DdiJpBz3.js → signup-page-BKvCi12D.js} +1 -1
  190. package/dist/assets/{signup-shell-_mEn5UNl.js → signup-shell-gBjslY90.js} +1 -1
  191. package/dist/assets/skill-detail-page-zLTItuem.js +2 -0
  192. package/dist/assets/skill-detail-panel-_BKlfS5A.js +1 -0
  193. package/dist/assets/{skill-removal-dialog-CWQDV20Q.js → skill-removal-dialog-CJY2_gFa.js} +1 -1
  194. package/dist/assets/{skills-page-CkHlkDe4.js → skills-page-BkT3-aGG.js} +1 -1
  195. package/dist/assets/{sounds-page-DZ9H_Uhf.js → sounds-page-4d7iyYdU.js} +1 -1
  196. package/dist/assets/{start-screen-CPuK_kcL.js → start-screen-BIVBGox6.js} +1 -1
  197. package/dist/assets/{stt-language-picker-modal-vTox8Zp8.js → stt-language-picker-modal-D_LD1BqB.js} +1 -1
  198. package/dist/assets/subagent-detail-panel-DxQEOvTp.js +1 -0
  199. package/dist/assets/superpowers-page-BjEYHHMk.js +1 -0
  200. package/dist/assets/system-events-page-BZ7CDi5p.js +1 -0
  201. package/dist/assets/system-events-redirect-page-DqVcQQuk.js +1 -0
  202. package/dist/assets/{text-preview-BZ7GgUAU.js → text-preview-Nsx4hRjY.js} +1 -1
  203. package/dist/assets/{theme-stage-page-BBUhsE2D.js → theme-stage-page-SR2lpWko.js} +1 -1
  204. package/dist/assets/{tiptap-document-editor-DR6f403A.js → tiptap-document-editor-Dugai94Z.js} +3 -3
  205. package/dist/assets/tool-detail-panel-Bj8XNtkn.js +16 -0
  206. package/dist/assets/tool-detail-panel-CwG8CQh8.js +1 -0
  207. package/dist/assets/{trait-cycle-row-BRsd1qDW.js → trait-cycle-row-BF-99QGB.js} +1 -1
  208. package/dist/assets/{upgrade-cancel-page-Cb2Knf6m.js → upgrade-cancel-page-CsrYUn80.js} +1 -1
  209. package/dist/assets/upgrade-success-page-pgUoRwgU.js +1 -0
  210. package/dist/assets/{usage-redirect-page-DmacFGtX.js → usage-redirect-page-gcglHutp.js} +1 -1
  211. package/dist/assets/use-app-delete-6cqgxcYk.js +1 -0
  212. package/dist/assets/use-assistant-identity-details-CE2qbada.js +1 -0
  213. package/dist/assets/use-checkout-dismiss-refresh-DkBaF6E8.js +1 -0
  214. package/dist/assets/use-debounced-value-Dbgs3rOl.js +1 -0
  215. package/dist/assets/use-edge-swipe-back-DkP4tGf3.js +1 -0
  216. package/dist/assets/{use-hotkey-recorder-CVYKioKK.js → use-hotkey-recorder-Byjcx16O.js} +1 -1
  217. package/dist/assets/use-invite-link-dialog-EnK2z5A8.js +1 -0
  218. package/dist/assets/use-plugins-list-B6wYwnD_.js +1 -0
  219. package/dist/assets/use-return-to-short-circuit-H0BQmE_J.js +1 -0
  220. package/dist/assets/{use-side-list-room-XknEC6_F.js → use-side-list-room-T8KJvH7p.js} +1 -1
  221. package/dist/assets/use-skill-actions-DBpPjM48.js +1 -0
  222. package/dist/assets/use-skill-detail-files-DdP4ERwy.js +1 -0
  223. package/dist/assets/use-supports-credentials-settings-bnerf0ml.js +1 -0
  224. package/dist/assets/use-transcript-message-by-id-DMHKS6AX.js +1 -0
  225. package/dist/assets/vendor-CYmPHUS2.js +127 -0
  226. package/dist/assets/voice-page-BSofznRi.js +1 -0
  227. package/dist/assets/{wake-detail-panel-JG7TyKGn.js → wake-detail-panel-BrI4U7x3.js} +1 -1
  228. package/dist/assets/{weather-forecast-display-CZYQX4n1.js → weather-forecast-display-z2cn9Ylw.js} +1 -1
  229. package/dist/assets/{web-CQyztjRg.js → web-5CbNg5DV.js} +1 -1
  230. package/dist/assets/{web-Bb3bM_rE.js → web-BYVWYFiV.js} +1 -1
  231. package/dist/assets/{web-7w3Y8MVH.js → web-CI3vhYW4.js} +1 -1
  232. package/dist/assets/{web-ocPGQzbv.js → web-Ctv2Az05.js} +1 -1
  233. package/dist/assets/{web-CkN0uo01.js → web-CvkUifWd.js} +1 -1
  234. package/dist/assets/{web-B_ZkQa17.js → web-D2TFV4O3.js} +1 -1
  235. package/dist/assets/{web-DZd0e2iR.js → web-Dapt-meP.js} +1 -1
  236. package/dist/assets/{web-ZV0_2EZ9.js → web-DxZPopg-.js} +1 -1
  237. package/dist/assets/{web-DpFmNxr1.js → web-uMYezZUh.js} +1 -1
  238. package/dist/assets/welcome-screen-DwN2j4Gh.js +1 -0
  239. package/dist/assets/{workflow-detail-panel-rYCgZeUb.js → workflow-detail-panel-nERp7IVc.js} +1 -1
  240. package/dist/assets/workspace-CI_A5iz2.js +1 -0
  241. package/dist/assets/{workspace-DOerIby3.js → workspace-CUWfQ3RP.js} +1 -1
  242. package/dist/assets/workspace-DUGmDQIb.js +1 -0
  243. package/dist/assets/workspace-Dh6SfA9u.js +1 -0
  244. package/dist/assets/workspace-page-CAKrqiua.js +1 -0
  245. package/dist/images/integrations/ATTRIBUTION.md +19 -0
  246. package/dist/images/integrations/amplemarket-mcp.png +0 -0
  247. package/dist/images/integrations/ashby-mcp.png +0 -0
  248. package/dist/images/integrations/atlassian-mcp.png +0 -0
  249. package/dist/images/integrations/attio-mcp.png +0 -0
  250. package/dist/images/integrations/brex-mcp.png +0 -0
  251. package/dist/images/integrations/calendly-mcp.png +0 -0
  252. package/dist/images/integrations/circleback-mcp.png +0 -0
  253. package/dist/images/integrations/clay-mcp.png +0 -0
  254. package/dist/images/integrations/craft-mcp.png +0 -0
  255. package/dist/images/integrations/customer-io-mcp.png +0 -0
  256. package/dist/images/integrations/fathom-mcp.png +0 -0
  257. package/dist/images/integrations/fireflies-mcp.png +0 -0
  258. package/dist/images/integrations/gamma-mcp.png +0 -0
  259. package/dist/images/integrations/guru-mcp.png +0 -0
  260. package/dist/images/integrations/interactive-brokers-mcp.png +0 -0
  261. package/dist/images/integrations/intercom-mcp.png +0 -0
  262. package/dist/images/integrations/jotform-mcp.png +0 -0
  263. package/dist/images/integrations/juicebox-mcp.png +0 -0
  264. package/dist/images/integrations/klaviyo-mcp.png +0 -0
  265. package/dist/images/integrations/linear-mcp.png +0 -0
  266. package/dist/images/integrations/mailerlite-mcp.png +0 -0
  267. package/dist/images/integrations/meltwater-mcp.png +0 -0
  268. package/dist/images/integrations/mem-mcp.png +0 -0
  269. package/dist/images/integrations/mercury-mcp.png +0 -0
  270. package/dist/images/integrations/navan-mcp.png +0 -0
  271. package/dist/images/integrations/notion-mcp.png +0 -0
  272. package/dist/images/integrations/notion.svg +4 -1
  273. package/dist/images/integrations/otter-mcp.png +0 -0
  274. package/dist/images/integrations/profound-mcp.png +0 -0
  275. package/dist/images/integrations/ramp-mcp.png +0 -0
  276. package/dist/images/integrations/readwise-mcp.png +0 -0
  277. package/dist/images/integrations/semrush-mcp.png +0 -0
  278. package/dist/images/integrations/sentry-mcp.png +0 -0
  279. package/dist/images/integrations/stripe-mcp.png +0 -0
  280. package/dist/images/integrations/todoist-mcp.png +0 -0
  281. package/dist/images/integrations/typeform-mcp.png +0 -0
  282. package/dist/images/integrations/upwork-mcp.png +0 -0
  283. package/dist/images/integrations/webull-mcp.png +0 -0
  284. package/dist/index.html +4 -4
  285. package/package.json +1 -1
  286. package/dist/assets/about-page-COxmu2oQ.js +0 -1
  287. package/dist/assets/acp-run-detail-panel-B5vKfWQN.js +0 -3
  288. package/dist/assets/activation-list-route-BOb-rtBa.js +0 -1
  289. package/dist/assets/activity-steps-panel-DmC1H7g8.js +0 -1
  290. package/dist/assets/add-credits-modal-B0DI6Rs_.js +0 -1
  291. package/dist/assets/add-credits-modal-Clg9vuy6.js +0 -1
  292. package/dist/assets/ai-page-CUKc_nmb.js +0 -1
  293. package/dist/assets/api-key-screen-fY9JjhTe.js +0 -1
  294. package/dist/assets/app-BNL3dwNm.css +0 -2
  295. package/dist/assets/app-Tg6YU_tZ.js +0 -392
  296. package/dist/assets/archive-redirect-page-De-Keegk.js +0 -1
  297. package/dist/assets/assistant-status-panel-BALzwsAc.js +0 -1
  298. package/dist/assets/auth-store-D-6LI7o_.js +0 -1
  299. package/dist/assets/avatar-bundled-components-Bo-wVBBE.js +0 -1
  300. package/dist/assets/avatar-random-ZUs-wFAP.js +0 -2
  301. package/dist/assets/background-task-detail-panel-D4CYPLDN.js +0 -1
  302. package/dist/assets/billing-page-CqDMGSHe.js +0 -3
  303. package/dist/assets/channel-transcript-panel-Ca2IqSxd.js +0 -1
  304. package/dist/assets/channels-page-route-BrkM9cD0.js +0 -1
  305. package/dist/assets/chat-8C19KXOV.js +0 -3
  306. package/dist/assets/chat-B8bCjQZ1.js +0 -3
  307. package/dist/assets/chat-BMyAegHU.js +0 -3
  308. package/dist/assets/chat-info-panel-CFHg5G5C.js +0 -1
  309. package/dist/assets/chat-k0ASlCf6.js +0 -3
  310. package/dist/assets/checkout-continuation-ATko7N-k.js +0 -1
  311. package/dist/assets/checkout-page-CVp2T6mP.js +0 -1
  312. package/dist/assets/checkout-return-target-BM6j8E5w.js +0 -1
  313. package/dist/assets/command-palette-BuaJlwlj.js +0 -1
  314. package/dist/assets/command-palette-DkTYuZU8.js +0 -1
  315. package/dist/assets/common-Bj2G8_g5.js +0 -1
  316. package/dist/assets/common-CaTw6iFT.js +0 -1
  317. package/dist/assets/common-DvY3wB2D.js +0 -1
  318. package/dist/assets/common-HddDknEB.js +0 -1
  319. package/dist/assets/community-page-rNFPZE2f.js +0 -1
  320. package/dist/assets/companion-surface-page-DHxOTQOL.js +0 -1
  321. package/dist/assets/companion-watch-frame-page-DLTwthiI.js +0 -1
  322. package/dist/assets/connect-page-BtvEUJj6.js +0 -1
  323. package/dist/assets/consent-controls-CjyXQ2Ju.js +0 -1
  324. package/dist/assets/contacts-gateway-CZ3fJfK5.js +0 -1
  325. package/dist/assets/contacts-page-route-CNXEHOrf.js +0 -1
  326. package/dist/assets/credentials-page-DsxuB0Ui.js +0 -1
  327. package/dist/assets/danger-zone-redirect-page-C23hsdDS.js +0 -1
  328. package/dist/assets/debug-page-6PKrAjce.js +0 -4
  329. package/dist/assets/deploy-dialogs-BXYdSkVL.js +0 -1
  330. package/dist/assets/deploy-dialogs-C0gFbHA2.js +0 -1
  331. package/dist/assets/desktop-preview-content-Cc9hlQ4Q.js +0 -2
  332. package/dist/assets/detail-primitives-ue4wzzCx.js +0 -1
  333. package/dist/assets/developer-page-DcZbWcLH.js +0 -1
  334. package/dist/assets/devices-redirect-page-Bxu6ZvQb.js +0 -1
  335. package/dist/assets/document-load-B8iTfjYL.js +0 -1
  336. package/dist/assets/document-load-DShQChFM.js +0 -1
  337. package/dist/assets/document-viewer-page-BStfu3jJ.js +0 -1
  338. package/dist/assets/emails-page-BlP1KP70.js +0 -1
  339. package/dist/assets/environment-store-rH-YdiqT.js +0 -1
  340. package/dist/assets/esm-BarLUlPV.js +0 -2
  341. package/dist/assets/esm-C19uvbek.js +0 -2
  342. package/dist/assets/esm-CI79f_VT.js +0 -2
  343. package/dist/assets/esm-CtAM062C.js +0 -1
  344. package/dist/assets/esm-DGqMBGum.js +0 -1
  345. package/dist/assets/esm-DYrMpsGJ.js +0 -2
  346. package/dist/assets/esm-Y7e1KRCK.js +0 -2
  347. package/dist/assets/file-editor-EZsnOrB1.js +0 -1
  348. package/dist/assets/general-page-DjmqGNEh.js +0 -2
  349. package/dist/assets/hatching-screen-Vx631ARz.js +0 -1
  350. package/dist/assets/home-CQRYKQ5-.js +0 -1
  351. package/dist/assets/home-DQz-gw5J.js +0 -1
  352. package/dist/assets/home-jvtY7w4T.js +0 -1
  353. package/dist/assets/home-uZ5Qvj6E.js +0 -1
  354. package/dist/assets/hosting-screen-nVYKldkt.js +0 -1
  355. package/dist/assets/icons-QG1KAFmx.js +0 -1
  356. package/dist/assets/identity-page-route-B4R5hI3l.js +0 -7
  357. package/dist/assets/inspect-page-CYYIbGHx.js +0 -9
  358. package/dist/assets/integrations-page-BjXxWGKz.js +0 -1
  359. package/dist/assets/intelligence-layout-BUGM35jP.js +0 -1
  360. package/dist/assets/intelligence-layout-slots-store-nrEU1pdD.js +0 -1
  361. package/dist/assets/keyboard-shortcuts-redirect-page-UFsztRh3.js +0 -1
  362. package/dist/assets/library-BXLScXI1.js +0 -1
  363. package/dist/assets/library-D7tisF9R.js +0 -1
  364. package/dist/assets/library-IMXA70AZ.js +0 -1
  365. package/dist/assets/library-detail-page-BcqVyl-x.js +0 -1
  366. package/dist/assets/library-gTJv7Oz7.js +0 -1
  367. package/dist/assets/library-page-CK7LA8to.js +0 -1
  368. package/dist/assets/local-mode-B63ogN2h.js +0 -1
  369. package/dist/assets/login-page-Cw14hc03.js +0 -1
  370. package/dist/assets/logout-page-DpNGL-t4.js +0 -1
  371. package/dist/assets/markdown-preview-DsAfiAyB.js +0 -1
  372. package/dist/assets/memory-page-route-B98b_k6V.js +0 -2
  373. package/dist/assets/memory-router-playground-page-BmST7_Kw.js +0 -1
  374. package/dist/assets/native-attachment-pickers-DXW2YF-J.js +0 -1
  375. package/dist/assets/native-file-DIYnpRix.js +0 -1
  376. package/dist/assets/onboarding-4AB8OdqK.js +0 -1
  377. package/dist/assets/onboarding-Bv6Vw7rT.js +0 -1
  378. package/dist/assets/onboarding-C9uVVsD1.js +0 -1
  379. package/dist/assets/onboarding-CFxxcqra.js +0 -1
  380. package/dist/assets/paired-platform-identity-DyA-oZ1a.js +0 -1
  381. package/dist/assets/password-reset-page-DyCdaLlT.js +0 -1
  382. package/dist/assets/pdf-file-preview-Cv30v3e_.js +0 -1
  383. package/dist/assets/personality-page-CUwdmzId.js +0 -1
  384. package/dist/assets/personality-sliders-BZ5p3Svp.js +0 -1
  385. package/dist/assets/plans-page-Bt7rWPBi.js +0 -1
  386. package/dist/assets/plugins-surface-f4dAI31U.js +0 -1
  387. package/dist/assets/privacy-page-CKEUMx1C.js +0 -1
  388. package/dist/assets/privacy-screen-Bkjr2dIv.js +0 -1
  389. package/dist/assets/provider-callback-page-DGAy5DvE.js +0 -1
  390. package/dist/assets/provider-signup-page-BG1mhVYr.js +0 -1
  391. package/dist/assets/quick-input-page-CCDzeBSI.js +0 -1
  392. package/dist/assets/referral-modal-BTG7IbD5.js +0 -1
  393. package/dist/assets/referral-modal-BWGbrPeD.js +0 -1
  394. package/dist/assets/research-onboarding-route-DvnsATHR.js +0 -50
  395. package/dist/assets/review-terms-screen-C2vdbHvu.js +0 -1
  396. package/dist/assets/routes-64wTPHX3.js +0 -1
  397. package/dist/assets/schedules-AMG6VEfS.js +0 -1
  398. package/dist/assets/schedules-page-DQ0p71wD.js +0 -1
  399. package/dist/assets/security-redirect-page-C8sxzPnV.js +0 -1
  400. package/dist/assets/select-assistant-screen-B57uDK4U.js +0 -1
  401. package/dist/assets/service-form-controls-DTfO4j3O.js +0 -1
  402. package/dist/assets/settings-C-QPO0as.js +0 -3
  403. package/dist/assets/settings-D9OIWncF.js +0 -3
  404. package/dist/assets/settings-DGQfZ51D.js +0 -3
  405. package/dist/assets/settings-divider-BkQcvD1N.js +0 -1
  406. package/dist/assets/settings-gxBTr-j9.js +0 -3
  407. package/dist/assets/share-feedback-modal-CYWA8ArT.js +0 -1
  408. package/dist/assets/share-feedback-modal-DwmVNIDD.js +0 -2
  409. package/dist/assets/skill-detail-page-bMQCOgEU.js +0 -2
  410. package/dist/assets/skill-detail-panel-jkm8mNzk.js +0 -1
  411. package/dist/assets/subagent-detail-panel-p9ahsacR.js +0 -1
  412. package/dist/assets/superpowers-page-BiVUrsDa.js +0 -1
  413. package/dist/assets/system-events-page-CxJryFCX.js +0 -1
  414. package/dist/assets/system-events-redirect-page-CORiS4Xr.js +0 -1
  415. package/dist/assets/tool-detail-panel-Bia85tXo.js +0 -15
  416. package/dist/assets/tool-detail-panel-CEtClwDC.js +0 -1
  417. package/dist/assets/upgrade-success-page-5FOrQc3B.js +0 -1
  418. package/dist/assets/use-app-delete-C6E5CTp4.js +0 -1
  419. package/dist/assets/use-assistant-identity-details-BqNoC_Po.js +0 -1
  420. package/dist/assets/use-checkout-dismiss-refresh-DFYkYYpp.js +0 -1
  421. package/dist/assets/use-edge-swipe-back-DMaMp9xI.js +0 -1
  422. package/dist/assets/use-invite-link-dialog-ChgRhNyN.js +0 -1
  423. package/dist/assets/use-platform-assistant-id-CPNM_Svc.js +0 -1
  424. package/dist/assets/use-return-to-short-circuit-dsa2YMci.js +0 -1
  425. package/dist/assets/use-skill-actions-B7qsFEjO.js +0 -1
  426. package/dist/assets/use-skill-detail-files-Caa0kAOC.js +0 -1
  427. package/dist/assets/use-supports-credentials-settings-CxEHVJ-e.js +0 -1
  428. package/dist/assets/use-transcript-message-by-id-Bnbe06RA.js +0 -1
  429. package/dist/assets/vendor-DYOeoIwg.js +0 -127
  430. package/dist/assets/voice-page-D237ka3h.js +0 -1
  431. package/dist/assets/welcome-screen-CQo-_cIi.js +0 -1
  432. package/dist/assets/workspace-CrT6IjXz.js +0 -1
  433. package/dist/assets/workspace-D-j7Q1o1.js +0 -1
  434. package/dist/assets/workspace-Db-P5zkL.js +0 -1
  435. package/dist/assets/workspace-page-Bx0l3azH.js +0 -1
  436. /package/dist/assets/{account-BBvlSFcW.js → account-B6SZEbjB.js} +0 -0
  437. /package/dist/assets/{account-DV-tB0oh.js → account-BTCX8OvN.js} +0 -0
  438. /package/dist/assets/{account-1POZPT9m.js → account-CGF4YCs6.js} +0 -0
  439. /package/dist/assets/{account-n9xXc949.js → account-CJNvbYMo.js} +0 -0
  440. /package/dist/assets/{activation-BtZhlZ_s.js → activation-BIb8yZib.js} +0 -0
  441. /package/dist/assets/{activation-B2g-Oe-r.js → activation-BcmlXlki.js} +0 -0
  442. /package/dist/assets/{activation-dc_gRGWQ.js → activation-CtKKSwsj.js} +0 -0
  443. /package/dist/assets/{activation-CaYos65l.js → activation-D4Z8d600.js} +0 -0
  444. /package/dist/assets/{activation-tasks-CvYLTc0s.js → activation-tasks-0CJ2Ckhl.js} +0 -0
  445. /package/dist/assets/{activation-tasks-C5NV7wu7.js → activation-tasks-BUCVYC6O.js} +0 -0
  446. /package/dist/assets/{activation-tasks-CzjUeEj1.js → activation-tasks-CxKVYvoX.js} +0 -0
  447. /package/dist/assets/{activation-tasks-D057dozu.js → activation-tasks-DIl_NU8H.js} +0 -0
  448. /package/dist/assets/{app-types-2kvircdH.js → app-types-Bhv1QIYY.js} +0 -0
  449. /package/dist/assets/{build.umd-BWfbInTw.js → build.umd-D2Gn4hc9.js} +0 -0
  450. /package/dist/assets/{channels-LgPH3TQp.js → channels-BuZPelJ-.js} +0 -0
  451. /package/dist/assets/{channels-itxMVi8q.js → channels-CuNLefDI.js} +0 -0
  452. /package/dist/assets/{channels-QZtdATsC.js → channels-D8sm_qqv.js} +0 -0
  453. /package/dist/assets/{channels-BnJWh26Z.js → channels-Ig5E4zAW.js} +0 -0
  454. /package/dist/assets/{contacts-X4REeAsN.js → contacts-CK3oNIfb.js} +0 -0
  455. /package/dist/assets/{contacts-yIhQlpq2.js → contacts-Du0mkP7C.js} +0 -0
  456. /package/dist/assets/{contacts-D6N3gRLL.js → contacts-MUCkcGvC.js} +0 -0
  457. /package/dist/assets/{contacts-DP3Crat5.js → contacts-_nz42ZZ_.js} +0 -0
  458. /package/dist/assets/{credential-requests-DrJdsdeJ.js → credential-requests-BE0rJ0wR.js} +0 -0
  459. /package/dist/assets/{credential-requests-DKbR-6qV.js → credential-requests-Cp59Lsj5.js} +0 -0
  460. /package/dist/assets/{credential-requests-D6SU6G2Z.js → credential-requests-DkdgEuGe.js} +0 -0
  461. /package/dist/assets/{credential-requests-1WDcifE6.js → credential-requests-DubAqUiZ.js} +0 -0
  462. /package/dist/assets/{definitions-Qg1-j0J7.js → definitions-COMG0KSg.js} +0 -0
  463. /package/dist/assets/{definitions-DhwHuMC5.js → definitions-DaNVCwWR.js} +0 -0
  464. /package/dist/assets/{diff-rows-Bf-wMfUA.js → diff-rows-DXG1Tw8n.js} +0 -0
  465. /package/dist/assets/{emoji-catalog-data-Yyjk_IDu.js → emoji-catalog-data-CJSzZ2xi.js} +0 -0
  466. /package/dist/assets/{format-countdown-BEyU91h0.js → format-countdown-V7kp5VfL.js} +0 -0
  467. /package/dist/assets/{format-file-size-CEqN0m2h.js → format-file-size-BW7P6CE0.js} +0 -0
  468. /package/dist/assets/{link-click-BYgcUBN3.js → link-click-Dui3RyC1.js} +0 -0
  469. /package/dist/assets/{logs-gUmqmCAe.js → logs-Ax_rHiGT.js} +0 -0
  470. /package/dist/assets/{logs-itULWBC4.js → logs-B5trKA2g.js} +0 -0
  471. /package/dist/assets/{logs-DV_rbeyU.js → logs-BF5SeNKP.js} +0 -0
  472. /package/dist/assets/{logs-ji3E1A5W.js → logs-xFKvsM90.js} +0 -0
  473. /package/dist/assets/{machine-sizes-Cyr9sICv.js → machine-sizes-3x95p4n1.js} +0 -0
  474. /package/dist/assets/{onboarding-step-layout-XiwLE8P3.js → onboarding-step-layout-B7jTKWhx.js} +0 -0
  475. /package/dist/assets/{pdf-DZqed7HH.js → pdf-BxHYDuSN.js} +0 -0
  476. /package/dist/assets/{plugin-attribution-B2jD5Q1N.js → plugin-attribution-BxpfUKdX.js} +0 -0
  477. /package/dist/assets/{radio-card-nav-BtZq6gZp.js → radio-card-nav-DkCS-TkI.js} +0 -0
  478. /package/dist/assets/{remote-web-BqE5HtVx.js → remote-web-BNCSZhe7.js} +0 -0
  479. /package/dist/assets/{remote-web-Cy9y7nTE.js → remote-web-D7sTkxyl.js} +0 -0
  480. /package/dist/assets/{remote-web-BClKYDvU.js → remote-web-DBr-nqs0.js} +0 -0
  481. /package/dist/assets/{remote-web-BTqxQIZY.js → remote-web-DLWX5CP8.js} +0 -0
  482. /package/dist/assets/{schedules-BZCt6hXe.js → schedules-BM8Lza7o.js} +0 -0
  483. /package/dist/assets/{schedules-DO26F1mH.js → schedules-COt7uOT5.js} +0 -0
  484. /package/dist/assets/{schedules-DDJ36QQM.js → schedules-DR6w8i2K.js} +0 -0
  485. /package/dist/assets/{schedules-Capmqn71.js → schedules-Dg-sdjRQ.js} +0 -0
  486. /package/dist/assets/{signup-onboarding-handoff-CEICxhlG.js → signup-onboarding-handoff-eYcYQqY4.js} +0 -0
  487. /package/dist/assets/{skill-icon-DLqnaRMf.js → skill-icon-DcBBE55l.js} +0 -0
  488. /package/dist/assets/{status-badge-pill-Dw3L9IOE.js → status-badge-pill-DOZpKLHj.js} +0 -0
  489. /package/dist/assets/{terminal-BKHabeoN.js → terminal-B2CXYcEa.js} +0 -0
  490. /package/dist/assets/{terminal-1uiH9Lk0.js → terminal-B5az4g11.js} +0 -0
  491. /package/dist/assets/{terminal-CWSI_cvE.js → terminal-C2Mcr7Di.js} +0 -0
  492. /package/dist/assets/{terminal-DHtM2WSE.js → terminal-YHk7L5QT.js} +0 -0
  493. /package/dist/assets/{usage-window-DA_JAjjs.js → usage-window-ClzDdz34.js} +0 -0
  494. /package/dist/assets/{use-truncated-blob-text-BArL-keL.js → use-truncated-blob-text-Ch2wbCLN.js} +0 -0
  495. /package/dist/assets/{xterm-DuUTQzS6.js → xterm-BLrzNn2R.js} +0 -0
  496. /package/dist/assets/{xterm-addon-fit-DuSb5pvT.js → xterm-addon-fit-Dcf9juuw.js} +0 -0
@@ -0,0 +1 @@
1
+ var e={build:`构建`,taglineMacOS:`您的 Mac AI 助手`,taglineWindows:`您的 Windows PC AI 助手`,version:`版本`},t={connecting:`正在连接到您的助手…`,logIn:`登录`,logOut:`注销`},n={cancel:`取消`,credentialSaved:`凭据已保存。`,description:`添加 API 密钥或令牌,以便工具和集成可以使用它。`,fieldLabel:`字段`,fieldPlaceholder:`例如 api_token`,labelOptional:`标签(可选)`,labelPlaceholder:`例如 GitHub 个人访问令牌`,save:`保存`,saveFailed:`保存凭据失败`,serviceLabel:`服务`,servicePlaceholder:`例如 github`,title:`添加凭据`,valueLabel:`值`,valuePlaceholder:`输入秘密值`},r={amount:`金额`,cancel:`取消`,configureAutoReload:`配置自动充值`,continue:`继续`,description:`您将被重定向到 Stripe 完成支付。`,title:`添加点数`},i={openApp:`打开应用`,pin:`置顶`,previewTitle:`{name} 预览`,unpin:`取消置顶`},a={close:`关闭`,copyLink:`复制链接`,deploy:`部署`,deployToVercel:`部署到 Vercel`,deployToVercelSubtitle:`发布为静态页面`,deployedCopyLinkAria:`已部署到 Vercel,复制链接`,deployedCopyLinkTooltip:`已部署:复制链接`,deployedToVercel:`已部署到 Vercel`,deploying:`正在部署…`,edit:`编辑`,expandApp:`展开应用`,fullscreen:`全屏`,openApp:`打开应用`,redeploy:`重新部署`,redeploySubtitle:`发布当前版本`,share:`分享`,shareAndDeploy:`分享并部署`,shareExportSubtitle:`导出为 .vellum 文件`,sharing:`正在分享…`},o={exitFullscreen:`退出全屏`},s={failed:`连接助手失败。`},c={updateFailed:`无法更新“{label}”。您的更改已恢复。`},l={accent:`强调色`,accentAutomatic:`自动`,accentPickerLabel:`强调色`,accentReset:`重置`,body:`身体`,color:`颜色`,eyes:`眼睛`,keepUploadedDescription:`保存角色会替换它`,keepUploadedLabel:`保留您上传的图片`,loadError:`无法加载头像组件。请确保您的助手正在运行。`,name:`名称`,next:`下一个 {label}`,previous:`上一个 {label}`,randomize:`随机化`,save:`保存`,saving:`正在保存…`,title:`更新头像`,uploadImage:`上传图片`,uploadedAlt:`已上传头像`,useCharacterDescription:`从我们内置的头像中选择`,useCharacterLabel:`改用角色`},u={bySigner:`由 {name}`,cancel:`取消`,capabilities:`功能`,createdBy:`创建者`,hideWarnings:`隐藏警告 ({count})`,install:`安装`,installAnyway:`仍然安装`,loading:`正在加载...`,showWarnings:`显示警告 ({count})`,size:`大小`},d={body:`您的助手通过您自己配置的提供商进行语音交互。请在<settingsLink>模型与服务</settingsLink>中设置其语音。`},f={verifyTitle:`最后一步:确认您的身份`,verifyAction:`验证我`,verifyBody:`您的助手还不知道哪个 {channel} 账号是您的,所以暂时不会回复您。在聊天中说“在 {channel} 上验证我”即可完成。`,verifyActionBody:`您的助手还不知道哪个 {channel} 账号是您的,所以暂时不会回复您。它会在聊天中陪您完成。`,verifiedTitle:`身份已验证`,verifiedBody:`您的助手已识别您的 {channel} 账号,会回复您。一切就绪。`},p={alt:`助手头像`,fallbackLetter:`V`},m={alt:`助手头像`},h={actionsTitle:`{title} 操作`},g={ariaLabel:`命令面板`,clear:`清除`,clearSearch:`清除搜索`,closeSearch:`关闭搜索`,noResults:`无结果`,placeholder:`搜索对话、记忆…`,searchAriaLabel:`搜索`,searching:`正在搜索…`},_={ariaLabel:`介绍您的助手`,back:`上一步`,call:{click:`点击`,line:`正在聆听`,shortcut:`快捷键`},close:`关闭`,done:`知道了`,draw:{body:`指出屏幕上的任何内容`,title:`标注`},idle:{body:`把光标移到我上面,我就出来。`,title:`嘿,是我`,titleNamed:`嘿,我是 {name}`},key:{scolded:`不是这个,是键盘上的那个键`},meet:{body:`我会在您的桌面上,即使 Vellum 不可见。`},mute:{body:`点击麦克风把自己静音,点击喇叭把我静音`,title:`静音`},next:`下一步`,share:{body:`把标签页、窗口或整个屏幕分享给我`,title:`分享您的屏幕`},talk:{body:`点击我就能开始对话。`,gesture:`或者连按两次这个键:`,greeted:`成功了!就这么简单。`,prompt:`我会请求使用您的麦克风`,title:`和我说话`},try:{body:`跟我打个招呼,我会说出声来回答。`,how:`点击我,或连按两次这个键`,title:`试一试`}},v={allow:`允许`,confirm:`确认`,credentialLabel:`凭据`,defaultSuffix:`(默认)`,deny:`拒绝`,dismiss:`关闭`,enter:`输入`,microphoneFallback:`麦克风 {index}`,microphonePermissionHint:`允许访问麦克风后即可按名称查看每个麦克风。`,microphoneTitle:`麦克风`,needsCredentials:`需要凭据`,needsCredentialsFor:`需要 {service} 的凭据`,needsOkCount:`{count, plural, other {有 # 项需要你的同意}}`,notNow:`暂不`,openApp:`打开 Vellum`,pendingBadge:`{count, plural, other {有 # 项需要你的同意}}`,previewVoice:`试听 {voice}`,review:`查看`,savedMicrophone:`已保存的麦克风`,savedMicrophoneNotConnected:`已保存的麦克风(未连接)`,stopPreview:`停止试听`,surfaceFallback:`有内容要给你看`,systemDefault:`系统默认`,voiceTitle:`声音`},y={calling:`正在呼叫…`,callingNamed:`正在呼叫 {name}…`,captureKind:`来源类型`,captureNothing:`没有可显示的内容`,capturePicker:`教学来源`,captureScreen:`屏幕 {n}`,captureScreens:`屏幕`,captureTabs:`Chrome 标签页`,captureWindows:`窗口`,draw:`绘制`,clearMarks:`清除标记`,drawTools:`绘图工具`,drawFreehand:`自由绘制`,drawLine:`直线`,drawBox:`方框`,drawCircle:`圆形`,endSession:`结束会话`,muteAssistant:`静音助手`,muteAssistantNamed:`静音 {name}`,muteMicrophone:`静音麦克风`,notNow:`暂不`,offerCopy:`复制`,offerDiscard:`丢弃`,offerHeard:`{app} 已粘贴了那段`,offerNowhere:`没有地方可以放`,offerPasteFailed:`无法粘贴这些内容`,offerQuit:`退出 {app}`,offerUse:`使用 Vellum 的版本`,offerVersion:`Vellum 听到的是`,openVellum:`打开 Vellum`,share:`共享`,sharePicker:`共享来源`,showSummary:`显示摘要`,stopTeaching:`停止教学`,summarizing:`正在摘要`,talk:`交谈`,teach:`教学`,unmuteAssistant:`取消助手静音`,unmuteAssistantNamed:`取消 {name} 静音`,unmuteMicrophone:`取消麦克风静音`,dictating:`正在聆听`,dictatingTranscribing:`正在思考`,chooseMicrophone:`选择麦克风`,chooseVoice:`选择声音`,workCount:`{count, plural, =0 {没有正在进行的任务} other {# 项任务进行中}}`,workDone:`已完成`,workStopped:`已停止`,workMore:`还有 {count} 项`,workWaiting:`{count, plural, other {# 项等待你的回复}}`,workWaitingStep:`等待你的回复`},b={sharingScreen:`正在分享你的屏幕`,sharingScreenNamed:`正在与 {name} 分享你的屏幕`,sharingWindow:`正在分享一个窗口`,sharingWindowNamed:`正在与 {name} 分享一个窗口`,teaching:`正在教学`,teachingNamed:`正在教 {name}`},x={copiedAria:`已复制`,copyFailed:`无法复制文件内容。`,copyFileContentsAria:`复制文件内容`,downloadFileAria:`下载文件`,editFileAria:`编辑文件`},S={untitled:`无标题`},C={copied:`已复制`,copyFailed:`无法复制到剪贴板。`},w={cancel:`取消`,create:`创建`,description:`配置一个新助手。它将在后台启动。`,namePlaceholder:`助手名称(可选)`,title:`新助手`,toastSuccess:`新助手已创建。`},T={ariaLabel:`日期范围`,lastDays:`{days, plural, other {过去 # 天}}`},E={delete:`删除`,deleting:`正在删除…`,message:`"{name}" 将被永久删除。`,title:`删除应用`},D={confirmLabel:`让您的助手处理`,confirmLabelNamed:`让 {assistantName} 处理`,message:`"{appName}" 使用后端服务,这些服务无法在静态 Vercel 页面上运行。您的助手可以使用无服务器函数正确部署它。`,messageNamed:`"{appName}" 使用后端服务,这些服务无法在静态 Vercel 页面上运行。{assistantName} 可以使用无服务器函数正确部署它。`,title:`此应用需要完整部署`},O={appExported:`应用已导出`,deployFailed:`部署失败`,deployedToVercel:`已部署到 Vercel`,open:`打开`,shareFailed:`分享应用失败`},k={tooltip:`停止`},A={copy:`复制`,expandedValue:`展开的值`,showLess:`显示更少`,showMore:`显示更多`},j={stopRecording:`停止录音`},M={ariaLabel:`加入 Vellum Discord 社区`,ctaLong:`加入 Discord`,ctaShort:`加入`,subtitleLong:`与团队交流 - 分享反馈、请求功能、更快获得答案`,subtitleShort:`分享反馈、请求功能、更快获得答案`,title:`加入我们的社区!`},N={instructions:`粘贴您从“机器人”页面复制的机器人令牌。`,verificationNoticeTitle:`请忽略“验证您的应用”页面`,verificationNoticeBody:`Discord 对每个新应用都会显示它。只有超过 100 个服务器时才有意义。`,botTokenLabel:`机器人令牌`,save:`连接`,saving:`正在连接...`,saved:`已连接。接下来,将机器人添加到服务器。`,botTokenPlaceholder:`MTk4NjIyNDgzNzAyNDU0...`},P={inPortal:`在 Discord 开发者门户中:`,stepCreateApp:`点击<strong>New Application</strong>,并用您助手的名字命名应用:`,copyName:`复制名称`,copied:`已复制!`,stepAppIcon:`可选:下载头像,然后在<strong>一般信息</strong>页面上传为应用图标。`,stepResetToken:`前往应用菜单中的<strong>机器人</strong>页面,点击<strong>重置令牌</strong>并立即复制令牌。Discord 只显示一次。`,stepIntentsOff:`在同一页面,保持三个<strong>特权网关意图</strong>开关全部关闭。您的助手不需要它们:它只读取私信和提及它的消息。`,openPortal:`打开 Discord 门户`,continue:`我已拥有令牌`},F={connectedTitle:`机器人已添加`,connectedBody:`令牌已保存,机器人已加入您的服务器。Discord 这边已完成。`},I={instructions:`机器人加入服务器前什么都看不到、也无法回复。打开链接,选择您的服务器并批准。`,openInvite:`添加到服务器`,confirmJoined:`我已添加机器人`,noAppId:`请先连接机器人令牌,然后返回此处将其添加到服务器。`},L={channelLabel:`Discord`,stepCreate:`创建应用`,stepConnect:`连接`,stepInvite:`添加到服务器`,stepFinish:`完成`,copyError:`无法复制名称。请改为在 Discord 中输入。`},R={acknowledge:`确认`,acknowledging:`正在确认...`,cleanupBody:`提示您的助手释放空间,以免空间耗尽并进入锁定状态。`,cleanupTitle:`清理模式已激活`,criticalBody:`如果存储空间耗尽,您的助手将进入锁定状态。`,criticalModalDescription:`如果存储空间耗尽,您的助手将进入锁定状态。您应该提示您的助手释放空间或增加存储空间。`,criticalTitle:`存储空间严重不足`,dontShowAgain:`不再显示`,manageStorage:`管理存储`,review:`查看`,upgrade:`升级`,warningBody:`释放空间以避免中断。`,warningBodyWithUpgrade:`释放空间或增加更多存储空间以避免中断。`,warningTitle:`您的存储空间即将耗尽`},z={failed:`下载失败`,revealMac:`在访达中显示`,revealWindows:`在文件资源管理器中显示`,saved:`已保存到“下载”`,started:`下载已开始`,startedDescription:`请在浏览器的下载内容中查找 {filename}。`},B={discard:`放弃`,save:`保存`,saving:`正在保存…`},V={copyAriaLabel:`复制邀请链接`,createFailed:`创建邀请链接失败。请确保您的助手已启用 A2A。`,creating:`正在创建邀请链接…`,done:`完成`,shareHint:`与另一位助手所有者分享此链接以建立连接。`,title:`分享连接链接`,tryAgain:`重试`},H={ariaLabel:`Vellum 在 GitHub 上开源`,ctaAriaLabel:`在 GitHub 上为 Vellum 点赞`,ctaLabel:`为我们点赞`,subtitle:`在 GitHub 上为我们点赞或贡献代码`,title:`Vellum 是开源的`},U={loadError:`此部分无法加载。请重新加载页面重试。`},W={goToConversation:`前往对话`},G={ariaLabelMacOS:`下载 macOS 应用`,ariaLabelWindows:`下载 Windows 应用`,ctaAriaLabelMacOS:`下载 macOS 应用`,ctaAriaLabelWindows:`下载 Windows 应用`,ctaLabel:`下载`,subtitle:`电脑使用 · 终端访问 · 原生自动化`,titleMacOS:`获取 macOS 应用`,titleWindows:`获取 Windows 应用`},K={bannerAria:`下载 {appName} 应用`,bannerAriaGeneric:`下载 Vellum 移动应用`,download:`下载`,downloadAppAria:`下载 {appName} 应用`,downloadAppAriaGeneric:`下载 Vellum 移动应用`,subtitle:`推送通知 · 生物识别登录 · 触觉反馈`,title:`获取 {appName} 应用`,titleGeneric:`获取 Vellum 应用`},q={backToAssistant:`返回您的助手`,badge:`错误 404`,body:`您要查找的页面不存在或可能已移动。`,goBack:`返回`,title:`页面未找到`},J={dismissAria:`关闭`},Y={back:`返回`},X={cancel:`取消`,logIn:`登录`},Z={assistantHandleIdleEmpty:`您的助手尚未设置句柄,请设置一个以便提及。`,assistantHandleLabel:`助手句柄`,assistantHandleUpdated:`助手句柄已更新。`,available:`可用`,availableHelper:`可用。`,checkAvailabilityFailed:`无法检查可用性。`,checkingAvailability:`正在检查可用性…`,chooseDifferentHandle:`请选择一个不同的句柄。`,emailLabel:`电子邮件`,handleHelper:`小写字母、数字、连字符和下划线。3–30个字符。`,handleLocked:`您的助手句柄已锁定,因为它被用作其电子邮件子域名。要更改它,请先<releaseLink>释放子域名</releaseLink>。`,loading:`正在加载您的个人资料…`,notAvailable:`不可用`,profileUpdated:`个人资料已更新。`,save:`保存`,saved:`已保存`,saving:`正在保存…`,subtitle:`管理您的账户详情和偏好设置。`,title:`个人资料`,userHandleIdleAutoGenerated:`您的句柄是在注册时自动生成的 - 请选择一个您喜欢的。`,userHandleLabel:`用户句柄`},Q={created:`个人资料“{name}”已创建`},$={logoAlt:`Vellum`,placeholder:`向 Vellum 提问...`,send:`发送消息`},ee={copied:`已复制!`,copyError:`无法复制推荐链接。`,copySuccess:`已复制到剪贴板!`,creditsEarned:`已赚取积分`,friendsReferred:`已推荐好友`,gatedTooltip:`订阅或购买积分以开始赚取!`,loadError:`加载推荐信息失败。`,loading:`加载中...`,shareLink:`分享链接`,subtitleDefault:`与好友分享 Vellum,每次注册均可赚取积分。`,subtitleWithAmounts:`与好友分享 Vellum - 他们注册后,您和好友将各获得 {creditAmount} 积分,总计最高可达 {earningCap}。`},te={title:`赚取免费积分`},ne={confirm:`移除`,messageOrigin:`这不会影响 {assistantName} 或让您在那里退出登录。它只会忘记此设备上的条目。您可以随时再次添加。`,messagePaired:`这不会影响 {assistantName} 在其主机上的状态。它只会忘记此设备上的配对。您可以随时使用 vellum connect import 再次配对。`,messagePlatform:`这不会删除 {assistantName}。它只会将其从此设备中移除。登录后它将再次可用。`,title:`从该设备移除?`},re={body:`您的助手正在努力工作,并已达到其当前资源限制。请升级以确保其平稳运行。`,bodyNoUpgrade:`您的助手正在努力工作,并已达到其当前资源限制。`,dontShowAgain:`不再显示`,title:`您的助手需要更多算力`,titleNamed:`{assistantName} 需要更多算力`,upgrade:`升级`},ie={confirmLabel:`停用`,message:`这将永久停用此助手及其所有数据。您需要重新完成引导流程才能创建新助手。此操作无法撤销。`,title:`停用助手`},ae={loadingAria:`正在加载`},oe={loadingAria:`正在加载`},se={unnamedAssistant:`该助手`},ce={chunkFailBody:`此部分无法加载。可能是网络故障或版本过旧。请重新加载页面重试。`,reload:`重新加载`},le={confirmMessage:`更新到版本 {version}?更新期间助手将暂时不可用。`,confirmTitle:`更新助手运行时`,later:`稍后`,title:`有新的助手版本可用:{version}`,toastComplete:`更新完成。您的助手运行正常。`,toastFailed:`未能触发更新。请重试。`,update:`更新`},ue={ariaLabel:`{name} 操作`},de={reset:`重置`,save:`保存`},fe={label:`分享连接链接`},pe={aboutDiagnosticsAria:`关于诊断信息`,addFiles:`添加文件`,adminOnlyHint:`仅限管理员 - 在本地构建诊断存档并下载,而不是提交反馈或通知 Slack。`,attachments:`附件`,bugTip:`提示:在我们的 <discordLink>Discord 社区</discordLink> 发布问题可获得更快的支持`,cancel:`取消`,category:`类别`,closeAria:`关闭`,diagnosticsTooltip:`诊断信息包括浏览器上下文、助手日志和时间戳,绝不包含密码或凭据。`,downloadDiagnostics:`直接下载诊断信息`,downloadDiagnosticsAria:`直接下载诊断信息`,downloadDiagnosticsButton:`下载诊断信息`,dropFiles:`拖放文件以附加…`,email:`电子邮件`,featureTip:`提示:在我们的 <roadmapLink>公开路线图</roadmapLink> 上为功能投票`,includeConversation:`包含最近的对话`,includeConversationAria:`包含最近的对话`,includeDiagnostics:`包含诊断信息`,includeDiagnosticsAria:`包含浏览器诊断信息`,messageLabelBug:`哪里出错了?`,messageLabelFeature:`描述您的想法`,messageLabelOther:`您有什么想法?`,messagePlaceholderBug:`您预期会发生什么,实际发生了什么?`,messagePlaceholderFeature:`这将为您解决什么问题?`,messagePlaceholderOther:`分享您的想法...`,preparingDiagnostics:`正在准备诊断信息…`,reasonBugReport:`错误报告`,reasonFeatureRequest:`功能请求`,reasonOther:`其他`,removeAttachmentAria:`移除 {name}`,sendingFeedback:`正在发送反馈…`,submit:`提交`,timeRange:`时间范围`,timeRangeAllTime:`所有时间`,timeRangeAria:`诊断信息时间范围`,timeRangePast24Hours:`过去 24 小时`,timeRangePastHour:`过去一小时`,title:`分享反馈`},me={loadingAria:`正在加载反馈表单`},he={close:`关闭`,message:`无法加载反馈表单。`,retry:`重试`},ge={closeAria:`关闭`,closeSidebarAria:`关闭侧边栏`,openSidebarAria:`打开侧边栏`},_e={backFrom:`从 {title} 返回`,backToMenu:`返回 {title} 菜单`,navigationAria:`{title} 导航`},ve={ariaLabel:`侧边栏导航`},ye={label:`从本次对话中学习`},be={message:`从该助手移除“{name}”?`,remove:`移除`,title:`移除技能`},xe={approvalNotice:`如果 Slack 显示“请求批准”而不是<strong>安装</strong>,则工作区管理员需要先批准该应用。`,createdApp:`我已创建应用`,inSlack:`在 Slack 中:`,stepManifest:`在<strong>或以您自己的方式开始</strong>下,选择<strong>从清单</strong>,然后选择<strong>继续</strong>`,stepPaste:`选择您的工作区并粘贴清单`,stepReview:`审查权限,然后点击<strong>创建并安装</strong>`},Se={appName:`应用名称`,appNamePlaceholder:`我的助手`,copied:`已复制!`,copyManifest:`复制清单`,description:`描述(可选)`,descriptionHelper:`显示在应用的 Slack 个人资料中。`,descriptionPlaceholder:`此助手提供哪些帮助`,intro:`命名您的 Slack 应用并复制其清单。所有权限和设置均已预配置。`,next:`下一步`},Ce={body:`在新标签页中打开 Slack 以创建应用,然后返回此处查看后续步骤。`,copied:`已复制!`,copyManifest:`复制清单`,manifestCopiedNotice:`您已在此处复制此应用的清单。如果您在此之后复制了其他内容,请在粘贴前再次复制。`,manifestNotCopiedNotice:`您尚未复制此应用的清单。Slack 的创建应用模态框没有其他方式获取它,因此请在粘贴前复制它。`,next:`下一步`,openSlack:`打开 Slack`},we={appTokenLabel:`应用令牌`,botTokenLabel:`机器人令牌`,connectSlack:`连接 Slack`,connecting:`正在连接…`,credentialsSaved:`凭据已保存`,instructions:`在 Slack 的确认屏幕上,展开 <credentials>您的应用凭据</credentials> 并复制两个 Token。`,skipNotice:`该屏幕还提供命令行演练和 <download>下载应用文件</download> 按钮。请跳过这两项。它们会设置一个独立的本地应用,而此助手只需要这两个 Token。`,savedBody:`两个 Token都已保存。Slack 这边已完成。`},Te={channelLabel:`Slack`,copyError:`无法复制清单。请在继续之前重新复制。`,stepConnect:`连接`,stepCreate:`创建`,stepName:`名称`,stepOpen:`打开`},Ee={total:`总计:{value}`},De={reloadApp:`重新加载应用`},Oe={reconnecting:`正在重新连接到你的助手…`,dismiss:`忽略`,goToDoctor:`前往诊断`,resumeAssistant:`恢复助手`,retryNow:`立即重试`,wakeUp:`唤醒`},ke={allLanguages:`所有语言`,featured:`精选`,languagesAriaLabel:`语言`,noMatch:`无匹配语言。`,searchAriaLabel:`搜索语言`,searchPlaceholder:`搜索语言`,suggested:`建议`},Ae={description:`从您下次语音输入开始生效。`},je={apiKeyLabel:`API 密钥`,apiKeyPlaceholderReplace:`•••••••• (输入新密钥以替换)`,providerAriaLabel:`语音转文本提供商`,providerLabel:`提供商`,saveFailed:`保存语音转文本设置失败`,saveSuccess:`语音转文本设置已保存`,spokenLanguage:`口语语言`,spokenLanguageApplies:`从您下次语音输入开始生效。`,vellumTranscription:`转录通过您的 Vellum 账户运行。`,windowsNativeDisplayName:`Windows 本机听写`,windowsNativeSetupWarning:`需要为您的 Windows 显示语言启用基本语音识别:打开“设置”>“时间和语言”>“语言和区域”,选择显示语言旁边的三个点,选择“语言选项”,然后在“语言功能”下下载“基本语音识别”。`,windowsNativeSubtitle:`Windows 设备上的语音识别,通过 Windows 助手在本地运行。可离线工作,无需 API 密钥。`},Me={ariaLabel:`子代理 {subagentId}`},Ne={accessibilityDescription:`允许您的助手代表您点击、输入和控制应用程序。`,accessibilityLabel:`辅助功能`,checking:`正在检查权限...`,dockIcon:`程序坞图标`,microphoneDescription:`允许您的助手捕获音频用于语音输入和录音。`,microphoneLabel:`麦克风`,notificationBadgesDescription:`允许您的助手在 {surface} 上显示未读对话计数。`,notificationBadgesLabel:`通知标记`,notificationsDescription:`允许您的助手发送 macOS 提醒,用于审批、消息和任务更新。`,notificationsLabel:`通知`,notificationsWindowsDescription:`允许您的助手显示 Windows 通知,用于审批、消息和任务更新。`,screenDescription:`允许您的助手在计算机使用任务期间捕获屏幕上下文。`,screenLabel:`屏幕录制`,speechRecognitionDescription:`允许您的助手在设备上将您的语音转录为文本。`,speechRecognitionLabel:`语音识别`,speechRecognitionWindowsDescription:`允许您的助手使用 Windows 语音识别将您的语音转录为文本。`,taskbarIcon:`任务栏图标`,title:`系统权限`},Pe={botTokenLabel:`机器人令牌`,connectTelegram:`连接 Telegram`,instructions:`粘贴 BotFather 回复中的令牌。它是 <tokenLine>Use this token to access the HTTP API</tokenLine> 之后的整行内容。`,saving:`正在保存…`,savedTitle:`令牌已保存`,savedBody:`机器人令牌已保存。Telegram 这边已完成。`},Fe={copied:`已复制!`,copyName:`复制名称`,displayNameHint:`对于显示名称,<strong>{suggestedName}</strong> 可使此机器人与您的助手匹配。用户名是独立的,不必匹配。`,chatScopeNotice:`支持私聊和群组。在群组中,助手会在被提及或有人回复它时作出回应。不支持广播频道。`,inBotFather:`在 BotFather 中:`,intro:`Telegram 机器人通过向 <strong>@BotFather</strong> 发送消息来创建。打开它,按照提示操作,然后带着它给您的令牌回来。`,next:`下一步`,openBotFather:`打开 BotFather`,stepDisplayName:`给它一个显示名称,这是人们在聊天中看到的名称`,stepSendNewBot:`发送 <strong>/newbot</strong>`,stepTokenReply:`BotFather 会在 <strong>Use this token to access the HTTP API</strong> 之后回复一个 Token`,stepUsername:`给它一个用户名,该用户名必须是唯一的,并以 <strong>bot</strong> 结尾`},Ie={channelLabel:`Telegram`,copyError:`无法复制名称。请改为在 BotFather 中输入。`,stepConnect:`连接`,stepCreate:`创建机器人`},Le={shopifyLabel:`店铺域名`,shopifyPlaceholder:`your-store.myshopify.com`},Re={recoveryModeBanner:`恢复模式已激活:此会话已连接到调试终端。`},ze={accentFill:`强调色填充`,activeBorder:`活动边框`,activeSurface:`活动表面`,assistantBubble:`助手回复,在页面表面全宽渲染。`,buttonDisabled:`禁用`,buttonPrimary:`主要`,buttonSecondary:`次要`,chatAssistant1:`完成。摘要已准备就绪。收入稳步增长,上季度标记的两个风险已解决,我已将值得展示的三张图表提取到单独的页面中。`,chatAssistant2:`已安排在上午9点。我将包含图表和一个段落版本,供在手机上快速浏览的人查看。`,chatUser1:`你能在明天的会议前总结一下季度报告吗?`,chatUser2:`太好了。早上发给团队。`,composerPlaceholder:`给你的助手发消息`,faintText:`淡文本 - 斜坡上最后一个清晰可见的步骤。`,inputFilled:`已输入到字段中的文本。`,inputPlaceholder:`空字段中的占位符`,newConversation:`新对话`,overlaySurface:`叠加表面`,primaryText:`主要文本 - 应用的主要阅读表面。`,quietText:`安静文本 - 元数据和时间戳。`,raisedCard:`凸起卡片`,raisedCardBody:`凸起表面位于面板和页面背景之上。`,samplerTitle:`主题样本`,secondaryText:`次要文本 - 辅助文案和描述。`,sectionAccent:`强调色`,sectionButtons:`按钮`,sectionInputs:`输入`,sectionMessages:`消息`,sectionSurfaces:`表面和边框`,sectionText:`文本`,send:`发送`,subtleDivider:`此线上方的细分隔线。`,tertiaryText:`三级文本 - 字幕、标签和占位符。`,userBubble:`用户在其气泡中的消息。`},Be={dark:`深色`,label:`主题`,light:`浅色`,system:`系统`,velvet:`丝绒`},Ve={apiKey:`API 密钥`,apiKeyRequired:`测试前请为此提供商保存 API 密钥。`,chooseFromCatalog:`从目录中选择`,customVoiceIdAriaLabel:`自定义语音 ID`,noManagedVoices:`目前没有可用的托管语音。`,provider:`提供商`,providerAriaLabel:`TTS 提供商`,saveFailed:`保存文本转语音设置失败`,saved:`文本转语音设置已保存`,test:`测试`,testing:`正在测试…`,voice:`语音`,voiceId:`语音 ID`,voiceIdPlaceholder:`输入语音 ID`},He={available:`有可用更新。正在开始下载…`,closeAriaLabel:`关闭`,downloading:`正在下载更新…`,ready:`Vellum {version} 已准备就绪。`,restartToInstall:`重启以安装`,versionFallback:`更新`},Ue={deleteFailed:`删除应用失败`},We={copyFailed:`无法复制链接。请在 {url} 打开。`,linkCopied:`链接已复制`,open:`打开`},Ge={setupPrompt:{slack:`我想在 Slack 上联系你。我们来设置一下。`,telegram:`我想在 Telegram 上联系你。我们来设置一下。`,discord:`我想在 Discord 上联系你。我们来设置一下。`,email:`我想给你发邮件。我们来设置你的电子邮件地址。`,phone:`我想能够给你打电话。我们来设置你的电话号码。`},finishPrompt:{slack:`Slack 已设置但无法工作。你能完成它吗?`,telegram:`Telegram 已设置但无法工作。你能完成它吗?`,discord:`Discord 已设置但无法工作。你能完成它吗?`,email:`我的电子邮件地址已设置但无法工作。你能完成它吗?`,phone:`我的电话号码已设置但无法工作。你能完成它吗?`}},Ke={addFailed:`收藏消息失败。`,removeFailed:`移除收藏失败。`},qe={exchangeFailed:`请检查粘贴的密钥并重试。`,failed:`连接 Claude 失败。请重试。`,notStarted:`请先启动连接 Claude 流程。`,pasteEmpty:`请粘贴 Claude 页面上显示的代码。`,popupBlocked:`您的浏览器阻止了登录标签页。请允许此站点的弹窗,然后再次点击连接。`,startFailed:`无法启动连接 Claude。请重试。`,timedOut:`等待 Claude 连接超时。请重试。`},Je={accountConnected:`{name} 账户已连接。`,authorizationError:`{name} 错误:{code}`,authorizationFailed:`{name} 授权失败`,popupBlocked:`弹窗被阻止。请启用弹窗并重试。`,startFailed:`启动 {name} 授权失败。`,startFailedWithReason:`启动 {name} 授权失败:{reason}`},Ye={blocked:`您的浏览器阻止了助手尝试打开的页面。`,openPage:`打开页面`},Xe={playFailed:`无法播放语音样本。`},Ze={updated:`主题已更新`},Qe={body:`输入您的 Vercel API 令牌,将应用程序部署为静态页面。`,cancel:`取消`,createToken:`在 Vercel 上创建令牌 →`,save:`保存`,saveFailed:`保存 Vercel 令牌失败。`,saving:`正在保存…`,title:`连接 Vercel`,tokenLabel:`API 令牌`,tokenPlaceholder:`Vercel API 令牌`},$e={assistantVoiceAriaLabel:`助手语音`,defaultSuffix:`(默认)`,previewVoice:`预览 {description}`,providerAriaLabel:`语音提供商`,stopPreview:`停止预览`},et={ariaLabel:`语音`,selectVoice:`选择语音`},tt={done:`完成`,title:`语音`},nt={body:`语音提供商、转录和 API 密钥位于<modelsLink>模型与服务</modelsLink>中。`},rt={recommendedOff:`建议关闭`,userTranscriptLabel:`显示你说的话`,userTranscriptDescription:`在你说话时实时转录文字。`,assistantTranscriptLabel:`显示助手说的话`,assistantTranscriptDescription:`在语音回复旁同步显示文本。`},it={developer:`开发者`,file:`文件`,help:`帮助`,view:`视图`},at={checkingDomain:`正在检查域名…`,domainVerified:`域名已验证`,failedTitle:`域名验证失败。DNS 记录可能未正确传播。您可以尝试释放并重新注册该域名。`,unknownStatus:`未知状态`,unknownStatusTitle:`无法检索域名验证状态。`,verificationFailed:`验证失败`,verifiedTitle:`DNS 记录已验证。您的域名已准备好发送和接收电子邮件。`,verifyingDomain:`正在验证域名…`,verifyingTitle:`DNS 记录已配置。正在等待电子邮件提供商验证它们 - 这通常需要几分钟。`,setupRequired:`需要设置域名`,setupRequiredTitle:`此域名尚未在电子邮件提供商处完成配置。在完成设置前,它无法发送或接收电子邮件。`},ot={body:`托管服务按量计费,并从您的 Vellum 账户余额中扣除。<link>查看定价</link>`},st={managedLabel:`托管`,modeToggleAriaLabel:`服务模式`,yourOwnLabel:`自托管`},ct={previewAlt:`您的助手头像`,download:`下载头像`,prompt:{slack:`下载您的助手头像以上传为应用图标。`,discord:`下载您的助手头像以上传为机器人图标。`,telegram:`下载您的助手头像,然后使用 /setuserpic 发送给 BotFather。`}},lt={strict:{label:`严格`,description:`执行任何操作前均需确认。不自动批准任何操作。`},conservative:{label:`保守`,description:`自动批准低风险操作,例如网络搜索以及在其自身工作区中读写文件。`},relaxed:{label:`宽松`,description:`自动批准低风险与中等风险操作,例如修改其工作区之外的文件。`},fullAccess:{label:`完全访问`,description:`自动批准所有操作,包括高风险和无法识别的命令。助手将绝不请求权限确认。`}},ut={everyHours:`每 {count} 小时`,everyMinutes:`每 {count} 分钟`,retrospectiveSubtitle:`在对话活动后触发`},dt={title:`助手用户名`,description:`你的助手的公开名称,它的邮箱地址也基于这个名称。`,helper:`小写字母、数字、连字符和下划线。`},ft={aboutPage:e,activeAssistantGate:t,addCredentialModal:n,addCreditsModal:r,appCard:i,appNavBar:a,appViewerContainer:o,assistantConnect:s,assistantFeatureFlagStore:c,avatarManagementModal:l,bundleConfirmPage:u,byoVoiceNote:d,channelSetupCompleteNotice:f,chatAvatar:p,chooserAvatarChip:m,collapsibleNavSection:h,commandPalette:g,companionIntro:_,companionPopover:v,companionSurface:y,companionWatchFramePage:b,contentActionBar:x,conversationTitle:S,copyButton:C,createAssistantDialog:w,dateRangeSelect:T,deleteAppDialog:E,deployDialogs:D,deployStore:O,detailPanelStopButton:k,detailPrimitives:A,dictationOverlayPage:j,discordNudgeBanner:M,discordSetupConnectStep:N,discordSetupCreateStep:P,discordSetupFinishStep:F,discordSetupInviteStep:I,discordSetupWizard:L,diskPressureBanner:R,downloadFeedback:z,editFooter:B,generateInviteLinkDialog:V,githubNudgeBanner:H,lazyBoundary:U,localNotification:W,desktopAppBanner:G,nativeAppBanner:K,notFound:q,nudgeChatBanner:J,onboardingBackButton:Y,platformLoginNotice:X,profileCard:Z,profileQuickAddProvider:Q,quickInputPage:$,referralContent:ee,referralModal:te,removeFromDeviceDialog:ne,resourcePressureBanner:re,retireConfirmDialog:ie,rootHydrateFallback:ae,routePendingIndicator:oe,rootLayout:se,routeErrorBoundary:ce,runtimeUpgradeBanner:le,sectionActionsButton:ue,serviceFormControls:de,shareConnectionLinkButton:fe,shareFeedbackModal:pe,shareFeedbackModalFallback:me,shareFeedbackModalLoadError:he,sideListDrawer:ge,sidebarShell:_e,sidebarTree:ve,skillLineageLink:ye,skillRemovalDialog:be,slackSetupCreateStep:xe,slackSetupNameStep:Se,slackSetupOpenStep:Ce,slackSetupTokensStep:we,slackSetupWizard:Te,stackedBarTooltip:Ee,startupFailure:De,statusBanner:Oe,sttLanguagePicker:ke,sttLanguagePickerModal:Ae,sttProviderForm:je,subagentAvatarChip:Me,systemPermissionsCard:Ne,telegramSetupConnectStep:Pe,telegramSetupCreateStep:Fe,telegramSetupWizard:Ie,tenantHost:Le,terminalPanel:Re,themeStagePage:ze,themeToggle:Be,ttsProviderForm:Ve,updateToast:He,useAppDelete:Ue,useAppDeployment:We,useAssistantChannels:Ge,useBookmarks:Ke,useConnectClaude:qe,useOauthConnect:Je,useOpenUrlDirectives:Ye,useVoiceSamplePreview:Xe,useWorkspaceTheme:Ze,vercelTokenDialog:Qe,voiceList:$e,voicePickerField:et,voicePickerModal:tt,voiceProvidersNote:nt,voiceTranscriptToggles:rt,windowsMenuBar:it,domainVerificationChip:at,managedServicesBanner:ot,serviceCard:st,channelAvatarDownload:ct,thresholdPresets:lt,scheduleFormatters:ut,assistantHandleModal:dt};export{e as aboutPage,t as activeAssistantGate,n as addCredentialModal,r as addCreditsModal,i as appCard,a as appNavBar,o as appViewerContainer,s as assistantConnect,c as assistantFeatureFlagStore,dt as assistantHandleModal,l as avatarManagementModal,u as bundleConfirmPage,d as byoVoiceNote,ct as channelAvatarDownload,f as channelSetupCompleteNotice,p as chatAvatar,m as chooserAvatarChip,h as collapsibleNavSection,g as commandPalette,_ as companionIntro,v as companionPopover,y as companionSurface,b as companionWatchFramePage,x as contentActionBar,S as conversationTitle,C as copyButton,w as createAssistantDialog,T as dateRangeSelect,ft as default,E as deleteAppDialog,D as deployDialogs,O as deployStore,G as desktopAppBanner,k as detailPanelStopButton,A as detailPrimitives,j as dictationOverlayPage,M as discordNudgeBanner,N as discordSetupConnectStep,P as discordSetupCreateStep,F as discordSetupFinishStep,I as discordSetupInviteStep,L as discordSetupWizard,R as diskPressureBanner,at as domainVerificationChip,z as downloadFeedback,B as editFooter,V as generateInviteLinkDialog,H as githubNudgeBanner,U as lazyBoundary,W as localNotification,ot as managedServicesBanner,K as nativeAppBanner,q as notFound,J as nudgeChatBanner,Y as onboardingBackButton,X as platformLoginNotice,Z as profileCard,Q as profileQuickAddProvider,$ as quickInputPage,ee as referralContent,te as referralModal,ne as removeFromDeviceDialog,re as resourcePressureBanner,ie as retireConfirmDialog,ae as rootHydrateFallback,se as rootLayout,ce as routeErrorBoundary,oe as routePendingIndicator,le as runtimeUpgradeBanner,ut as scheduleFormatters,ue as sectionActionsButton,st as serviceCard,de as serviceFormControls,fe as shareConnectionLinkButton,pe as shareFeedbackModal,me as shareFeedbackModalFallback,he as shareFeedbackModalLoadError,ge as sideListDrawer,_e as sidebarShell,ve as sidebarTree,ye as skillLineageLink,be as skillRemovalDialog,xe as slackSetupCreateStep,Se as slackSetupNameStep,Ce as slackSetupOpenStep,we as slackSetupTokensStep,Te as slackSetupWizard,Ee as stackedBarTooltip,De as startupFailure,Oe as statusBanner,ke as sttLanguagePicker,Ae as sttLanguagePickerModal,je as sttProviderForm,Me as subagentAvatarChip,Ne as systemPermissionsCard,Pe as telegramSetupConnectStep,Fe as telegramSetupCreateStep,Ie as telegramSetupWizard,Le as tenantHost,Re as terminalPanel,ze as themeStagePage,Be as themeToggle,lt as thresholdPresets,Ve as ttsProviderForm,He as updateToast,Ue as useAppDelete,We as useAppDeployment,Ge as useAssistantChannels,Ke as useBookmarks,qe as useConnectClaude,Je as useOauthConnect,Ye as useOpenUrlDirectives,Xe as useVoiceSamplePreview,Ze as useWorkspaceTheme,Qe as vercelTokenDialog,$e as voiceList,et as voicePickerField,tt as voicePickerModal,nt as voiceProvidersNote,rt as voiceTranscriptToggles,it as windowsMenuBar};
@@ -0,0 +1 @@
1
+ var e={build:`建置`,taglineMacOS:`您 Mac 的 AI 助理`,taglineWindows:`您 Windows PC 的 AI 助理`,version:`版本`},t={connecting:`正在連線至您的助理…`,logIn:`登入`,logOut:`登出`},n={cancel:`取消`,credentialSaved:`憑證已儲存。`,description:`新增 API 金鑰或權杖,讓工具和整合功能可以使用它。`,fieldLabel:`欄位`,fieldPlaceholder:`例如 api_token`,labelOptional:`標籤 (選填)`,labelPlaceholder:`例如 GitHub 個人存取權杖`,save:`儲存`,saveFailed:`儲存憑證失敗`,serviceLabel:`服務`,servicePlaceholder:`例如 github`,title:`新增憑證`,valueLabel:`值`,valuePlaceholder:`輸入密碼值`},r={amount:`金額`,cancel:`取消`,configureAutoReload:`設定自動儲值`,continue:`繼續`,description:`您將被重新導向至 Stripe 以完成付款。`,title:`新增點數`},i={openApp:`開啟應用程式`,pin:`釘選`,previewTitle:`{name} 預覽`,unpin:`取消釘選`},a={close:`關閉`,copyLink:`複製連結`,deploy:`部署`,deployToVercel:`部署至 Vercel`,deployToVercelSubtitle:`發佈為靜態頁面`,deployedCopyLinkAria:`已部署至 Vercel,複製連結`,deployedCopyLinkTooltip:`已部署:複製連結`,deployedToVercel:`已部署至 Vercel`,deploying:`正在部署…`,edit:`編輯`,expandApp:`展開應用程式`,fullscreen:`全螢幕`,openApp:`開啟應用程式`,redeploy:`重新部署`,redeploySubtitle:`發佈目前版本`,share:`分享`,shareAndDeploy:`分享並部署`,shareExportSubtitle:`匯出為 .vellum 檔案`,sharing:`正在分享…`},o={exitFullscreen:`結束全螢幕`},s={failed:`連線至助理失敗。`},c={updateFailed:`無法更新「{label}」。您的變更已還原。`},l={accent:`強調色`,accentAutomatic:`自動`,accentPickerLabel:`強調色`,accentReset:`重設`,body:`身體`,color:`顏色`,eyes:`眼睛`,keepUploadedDescription:`儲存角色將會取代它`,keepUploadedLabel:`保留您上傳的圖片`,loadError:`無法載入虛擬替身元件。請確認您的助理正在執行。`,name:`名稱`,next:`下一個 {label}`,previous:`上一個 {label}`,randomize:`隨機化`,save:`儲存`,saving:`正在儲存…`,title:`更新虛擬替身`,uploadImage:`上傳圖片`,uploadedAlt:`已上傳的虛擬替身`,useCharacterDescription:`從我們內建的虛擬替身中選擇`,useCharacterLabel:`改用角色`},u={bySigner:`由 {name}`,cancel:`取消`,capabilities:`功能`,createdBy:`建立者`,hideWarnings:`隱藏警告 ({count})`,install:`安裝`,installAnyway:`仍要安裝`,loading:`正在載入...`,showWarnings:`顯示警告 ({count})`,size:`大小`},d={body:`您的助理透過您自行設定的供應商發聲。請在<settingsLink>模型與服務</settingsLink>中設定其語音。`},f={verifyTitle:`最後一步:確認您的身分`,verifyAction:`驗證我`,verifyBody:`您的助理還不知道哪個 {channel} 帳號是您的,所以暫時不會回覆您。在聊天中說「在 {channel} 上驗證我」即可完成。`,verifyActionBody:`您的助理還不知道哪個 {channel} 帳號是您的,所以暫時不會回覆您。它會在聊天中陪您完成。`,verifiedTitle:`身分已驗證`,verifiedBody:`您的助理已識別您的 {channel} 帳號,會回覆您。一切就緒。`},p={alt:`助理頭像`,fallbackLetter:`V`},m={alt:`助理頭像`},h={actionsTitle:`{title} 動作`},g={ariaLabel:`指令面板`,clear:`清除`,clearSearch:`清除搜尋`,closeSearch:`關閉搜尋`,noResults:`沒有結果`,placeholder:`搜尋對話、記憶…`,searchAriaLabel:`搜尋`,searching:`正在搜尋…`},_={ariaLabel:`介紹您的助理`,back:`上一步`,call:{click:`點擊`,line:`正在聆聽`,shortcut:`快速鍵`},close:`關閉`,done:`知道了`,draw:{body:`指出螢幕上的任何內容`,title:`標註`},idle:{body:`把游標移到我上面,我就出來。`,title:`嘿,是我`,titleNamed:`嘿,我是 {name}`},key:{scolded:`不是這個,是鍵盤上的那個鍵`},meet:{body:`我會留在您的桌面上,即使 Vellum 沒有顯示。`},mute:{body:`點擊麥克風把自己靜音,點擊喇叭把我靜音`,title:`靜音`},next:`下一步`,share:{body:`把分頁、視窗或整個螢幕分享給我`,title:`分享您的螢幕`},talk:{body:`點擊我就能開始對話。`,gesture:`或者連按兩次這個鍵:`,greeted:`成功了!就這麼簡單。`,prompt:`我會請求使用您的麥克風`,title:`和我說話`},try:{body:`跟我打個招呼,我會說出聲來回答。`,how:`點擊我,或連按兩次這個鍵`,title:`試試看`}},v={allow:`允許`,confirm:`確認`,credentialLabel:`憑證`,defaultSuffix:`(預設)`,deny:`拒絕`,dismiss:`關閉`,enter:`輸入`,microphoneFallback:`麥克風 {index}`,microphonePermissionHint:`允許存取麥克風後即可依名稱查看每個麥克風。`,microphoneTitle:`麥克風`,needsCredentials:`需要憑證`,needsCredentialsFor:`需要 {service} 的憑證`,needsOkCount:`{count, plural, other {有 # 項需要你的同意}}`,notNow:`暫不`,openApp:`開啟 Vellum`,pendingBadge:`{count, plural, other {有 # 項需要你的同意}}`,previewVoice:`試聽 {voice}`,review:`檢視`,savedMicrophone:`已儲存的麥克風`,savedMicrophoneNotConnected:`已儲存的麥克風(未連接)`,stopPreview:`停止試聽`,surfaceFallback:`有內容要給你看`,systemDefault:`系統預設`,voiceTitle:`聲音`},y={calling:`正在呼叫…`,callingNamed:`正在呼叫 {name}…`,captureKind:`來源類型`,captureNothing:`沒有可顯示的內容`,capturePicker:`教學來源`,captureScreen:`螢幕 {n}`,captureScreens:`螢幕`,captureTabs:`Chrome 分頁`,captureWindows:`視窗`,endSession:`結束會話`,muteAssistant:`將助理靜音`,muteAssistantNamed:`將 {name} 靜音`,muteMicrophone:`將麥克風靜音`,notNow:`暫不`,offerCopy:`複製`,offerDiscard:`捨棄`,offerHeard:`{app} 已貼上那段`,offerNowhere:`沒有地方可以放`,offerPasteFailed:`無法貼上這些內容`,offerQuit:`結束 {app}`,offerUse:`使用 Vellum 的版本`,offerVersion:`Vellum 聽到的是`,openVellum:`開啟 Vellum`,share:`共享`,sharePicker:`共享來源`,showSummary:`顯示摘要`,stopTeaching:`停止教學`,summarizing:`正在摘要`,talk:`交談`,teach:`教學`,unmuteAssistant:`解除助理靜音`,unmuteAssistantNamed:`解除 {name} 靜音`,unmuteMicrophone:`解除麥克風靜音`,dictating:`正在聆聽`,dictatingTranscribing:`正在思考`,draw:`繪製`,clearMarks:`清除標記`,drawTools:`繪圖工具`,drawFreehand:`自由繪製`,drawLine:`直線`,drawBox:`方框`,drawCircle:`圓形`,chooseMicrophone:`選擇麥克風`,chooseVoice:`選擇聲音`,workCount:`{count, plural, =0 {沒有進行中的工作} other {# 項工作進行中}}`,workDone:`已完成`,workStopped:`已停止`,workMore:`還有 {count} 項`,workWaiting:`{count, plural, other {# 項等待你的回覆}}`,workWaitingStep:`等待你的回覆`},b={sharingScreen:`正在分享你的螢幕`,sharingScreenNamed:`正在與 {name} 分享你的螢幕`,sharingWindow:`正在分享一個視窗`,sharingWindowNamed:`正在與 {name} 分享一個視窗`,teaching:`正在教學`,teachingNamed:`正在教 {name}`},x={copiedAria:`已複製`,copyFailed:`無法複製檔案內容。`,copyFileContentsAria:`複製檔案內容`,downloadFileAria:`下載檔案`,editFileAria:`編輯檔案`},S={untitled:`未命名`},C={copied:`已複製`,copyFailed:`無法複製到剪貼簿。`},w={cancel:`取消`,create:`建立`,description:`佈建一個新助理。它將在背景啟動。`,namePlaceholder:`助理名稱(選填)`,title:`新助理`,toastSuccess:`新助理已建立。`},T={ariaLabel:`日期範圍`,lastDays:`{days, plural, other {過去 # 天}}`},E={delete:`刪除`,deleting:`正在刪除…`,message:`"{name}" 將會被永久移除。`,title:`刪除應用程式`},D={confirmLabel:`讓您的助理處理`,confirmLabelNamed:`讓 {assistantName} 處理`,message:`"{appName}" 使用後端服務,這些服務無法在靜態 Vercel 頁面上運作。您的助理可以使用無伺服器函式正確部署它。`,messageNamed:`"{appName}" 使用後端服務,這些服務無法在靜態 Vercel 頁面上運作。{assistantName} 可以使用無伺服器函式正確部署它。`,title:`此應用程式需要完整部署`},O={appExported:`應用程式已匯出`,deployFailed:`部署失敗`,deployedToVercel:`已部署至 Vercel`,open:`開啟`,shareFailed:`分享應用程式失敗`},k={tooltip:`停止`},A={copy:`複製`,expandedValue:`展開的值`,showLess:`顯示較少`,showMore:`顯示更多`},j={stopRecording:`停止錄音`},M={ariaLabel:`加入 Vellum Discord 社群`,ctaLong:`加入 Discord`,ctaShort:`加入`,subtitleLong:`與團隊交流 - 分享意見回饋、提出功能需求、更快獲得解答`,subtitleShort:`分享意見回饋、提出功能需求、更快獲得解答`,title:`加入我們的社群!`},N={instructions:`貼上您從「機器人」頁面複製的機器人金鑰。`,verificationNoticeTitle:`請忽略「驗證您的應用程式」頁面`,verificationNoticeBody:`Discord 對每個新應用程式都會顯示它。只有超過 100 個伺服器時才有意義。`,botTokenLabel:`機器人金鑰`,save:`連線`,saving:`正在連線...`,saved:`已連線。接下來,將機器人新增至伺服器。`,botTokenPlaceholder:`MTk4NjIyNDgzNzAyNDU0...`},P={inPortal:`在 Discord 開發者入口網站中:`,stepCreateApp:`點擊<strong>New Application</strong>,並用您助理的名字命名應用程式:`,copyName:`複製名稱`,copied:`已複製!`,stepAppIcon:`可選:下載頭像,然後在<strong>一般資訊</strong>頁面上傳為應用程式圖示。`,stepResetToken:`前往應用程式選單中的<strong>機器人</strong>頁面,點擊<strong>重設金鑰</strong>並立即複製金鑰。Discord 只會顯示一次。`,stepIntentsOff:`在同一頁面,保持三個<strong>特權閘道意圖</strong>開關全部關閉。您的助理不需要它們:它只會讀取私訊和提及它的訊息。`,openPortal:`開啟 Discord 入口網站`,continue:`我已擁有金鑰`},F={connectedTitle:`機器人已新增`,connectedBody:`金鑰已儲存,機器人已加入您的伺服器。Discord 這邊已完成。`},I={instructions:`機器人加入伺服器前什麼都看不到、也無法回覆。開啟連結,選擇您的伺服器並核准。`,openInvite:`新增至伺服器`,confirmJoined:`我已新增機器人`,noAppId:`請先連線機器人金鑰,然後再回來將其新增至伺服器。`},L={channelLabel:`Discord`,stepCreate:`建立應用程式`,stepConnect:`連線`,stepInvite:`新增至伺服器`,stepFinish:`完成`,copyError:`無法複製名稱。請改為在 Discord 中輸入。`},R={acknowledge:`確認`,acknowledging:`正在確認...`,cleanupBody:`提示您的助理釋出空間,以免空間用盡並進入鎖定狀態。`,cleanupTitle:`清理模式已啟用`,criticalBody:`如果儲存空間用盡,您的助理將進入鎖定狀態。`,criticalModalDescription:`如果儲存空間用盡,您的助理將進入鎖定狀態。您應該提示您的助理釋出空間或增加儲存空間。`,criticalTitle:`儲存空間嚴重不足`,dontShowAgain:`不再顯示`,manageStorage:`管理儲存空間`,review:`檢閱`,upgrade:`升級`,warningBody:`釋出空間以避免中斷。`,warningBodyWithUpgrade:`釋出空間或增加更多儲存空間以避免中斷。`,warningTitle:`您的儲存空間即將用盡`},z={failed:`下載失敗`,revealMac:`在 Finder 中顯示`,revealWindows:`在檔案總管中顯示`,saved:`已儲存至「下載」`,started:`下載已開始`,startedDescription:`請在瀏覽器的下載內容中尋找 {filename}。`},B={discard:`捨棄`,save:`儲存`,saving:`正在儲存…`},V={copyAriaLabel:`複製邀請連結`,createFailed:`建立邀請連結失敗。請確認您的助理已啟用 A2A。`,creating:`正在建立邀請連結…`,done:`完成`,shareHint:`與另一位助理擁有者分享此連結以建立連線。`,title:`分享連線連結`,tryAgain:`再試一次`},H={ariaLabel:`Vellum 在 GitHub 上是開放原始碼`,ctaAriaLabel:`在 GitHub 上為 Vellum 加星`,ctaLabel:`為我們加星`,subtitle:`在 GitHub 上為我們加星或貢獻`,title:`Vellum 是開放原始碼`},U={loadError:`此區段無法載入。請重新載入頁面再試一次。`},W={goToConversation:`前往對話`},G={ariaLabelMacOS:`下載 macOS 應用程式`,ariaLabelWindows:`下載 Windows 應用程式`,ctaAriaLabelMacOS:`下載 macOS 應用程式`,ctaAriaLabelWindows:`下載 Windows 應用程式`,ctaLabel:`下載`,subtitle:`電腦使用 · 終端機存取 · 原生自動化`,titleMacOS:`取得 macOS 應用程式`,titleWindows:`取得 Windows 應用程式`},K={bannerAria:`下載 {appName} 應用程式`,bannerAriaGeneric:`下載 Vellum 行動應用程式`,download:`下載`,downloadAppAria:`下載 {appName} 應用程式`,downloadAppAriaGeneric:`下載 Vellum 行動應用程式`,subtitle:`推播通知 · 生物辨識登入 · 觸覺回饋`,title:`取得 {appName} 應用程式`,titleGeneric:`取得 Vellum 應用程式`},q={backToAssistant:`返回您的助理`,badge:`錯誤 404`,body:`您要尋找的頁面不存在或可能已移動。`,goBack:`返回`,title:`找不到頁面`},J={dismissAria:`關閉`},Y={back:`返回`},X={cancel:`取消`,logIn:`登入`},Z={assistantHandleIdleEmpty:`您的助理尚未設定識別名稱,請設定一個以便提及。`,assistantHandleLabel:`助理識別名稱`,assistantHandleUpdated:`助理識別名稱已更新。`,available:`可用`,availableHelper:`可用。`,checkAvailabilityFailed:`無法檢查可用性。`,checkingAvailability:`正在檢查可用性…`,chooseDifferentHandle:`請選擇不同的識別名稱。`,emailLabel:`電子郵件`,handleHelper:`小寫字母、數字、連字號和底線。3–30 個字元。`,handleLocked:`您的助理識別名稱已鎖定,因為它被用作電子郵件子網域。若要變更,請先<releaseLink>釋放子網域</releaseLink>。`,loading:`正在載入您的個人資料…`,notAvailable:`不可用`,profileUpdated:`個人資料已更新。`,save:`儲存`,saved:`已儲存`,saving:`正在儲存…`,subtitle:`管理您的帳號詳細資料和偏好設定。`,title:`個人資料`,userHandleIdleAutoGenerated:`您的識別名稱是在註冊時自動產生的 - 請選擇一個您喜歡的。`,userHandleLabel:`使用者識別名稱`},Q={created:`已建立個人資料「{name}」`},$={logoAlt:`Vellum`,placeholder:`詢問 Vellum 任何問題…`,send:`傳送訊息`},ee={copied:`已複製!`,copyError:`無法複製推薦連結。`,copySuccess:`已複製到剪貼簿!`,creditsEarned:`已賺取點數`,friendsReferred:`已推薦好友`,gatedTooltip:`訂閱或購買點數以開始賺取!`,loadError:`載入推薦資訊失敗。`,loading:`載入中...`,shareLink:`分享連結`,subtitleDefault:`與好友分享 Vellum,每次註冊均可賺取點數。`,subtitleWithAmounts:`與好友分享 Vellum - 他們註冊後,您和好友將各獲得 {creditAmount} 點數,總計最高可達 {earningCap}。`},te={title:`賺取免費點數`},ne={confirm:`移除`,messageOrigin:`這不會影響 {assistantName} 或讓您在那裡登出。它只會忘記此裝置上的項目。您可以隨時再次新增。`,messagePaired:`這不會影響 {assistantName} 在其主機上的狀態。它只會忘記此裝置上的配對。您可以隨時使用 vellum connect import 再次配對。`,messagePlatform:`這不會刪除 {assistantName}。它只會將其從此裝置移除。登入後它將再次可用。`,title:`從此裝置移除?`},re={body:`您的助理正在努力工作並達到其目前的資源限制。請升級以確保其順暢執行。`,bodyNoUpgrade:`您的助理正在努力工作並達到其目前的資源限制。`,dontShowAgain:`不再顯示`,title:`您的助理需要更多資源`,titleNamed:`{assistantName} 需要更多資源`,upgrade:`升級`},ie={confirmLabel:`停用`,message:`這將永久停用此助理及其所有資料。您需要再次完成引導流程才能建立新的助理。此動作無法復原。`,title:`停用助理`},ae={loadingAria:`正在載入`},oe={loadingAria:`正在載入`},se={unnamedAssistant:`該助理`},ce={chunkFailBody:`此區段無法載入。可能是網路瞬斷或版本過舊。請重新載入頁面再試一次。`,reload:`重新載入`},le={confirmMessage:`更新至版本 {version}?更新期間助理將暫時無法使用。`,confirmTitle:`更新助理執行環境`,later:`稍後`,title:`有新的助理版本可用:{version}`,toastComplete:`更新完成。您的助理運作正常。`,toastFailed:`無法觸發更新。請再試一次。`,update:`更新`},ue={ariaLabel:`{name} 動作`},de={reset:`重設`,save:`儲存`},fe={label:`分享連線連結`},pe={aboutDiagnosticsAria:`關於診斷資訊`,addFiles:`新增檔案`,adminOnlyHint:`僅限管理員 - 在本機建立診斷封存檔並下載,而非提交意見回饋或通知 Slack。`,attachments:`附件`,bugTip:`提示:在我們的 <discordLink>Discord 社群</discordLink> 發文可獲得更快的支援`,cancel:`取消`,category:`類別`,closeAria:`關閉`,diagnosticsTooltip:`診斷資訊包含瀏覽器內容、助理日誌和時間戳記 - 絕不包含密碼或憑證。`,downloadDiagnostics:`直接下載診斷資訊`,downloadDiagnosticsAria:`直接下載診斷資訊`,downloadDiagnosticsButton:`下載診斷資訊`,dropFiles:`拖曳檔案以附加…`,email:`電子郵件`,featureTip:`提示:在我們的 <roadmapLink>公開藍圖</roadmapLink> 上為功能投票`,includeConversation:`包含最近的對話`,includeConversationAria:`包含最近的對話`,includeDiagnostics:`包含診斷資訊`,includeDiagnosticsAria:`包含瀏覽器診斷資訊`,messageLabelBug:`哪裡出錯了?`,messageLabelFeature:`描述您的想法`,messageLabelOther:`您有什麼想法?`,messagePlaceholderBug:`您預期會發生什麼,而實際發生了什麼?`,messagePlaceholderFeature:`這將為您解決什麼問題?`,messagePlaceholderOther:`分享您的想法...`,preparingDiagnostics:`正在準備診斷資訊…`,reasonBugReport:`錯誤報告`,reasonFeatureRequest:`功能請求`,reasonOther:`其他`,removeAttachmentAria:`移除 {name}`,sendingFeedback:`正在傳送意見回饋…`,submit:`提交`,timeRange:`時間範圍`,timeRangeAllTime:`所有時間`,timeRangeAria:`診斷資訊時間範圍`,timeRangePast24Hours:`過去 24 小時`,timeRangePastHour:`過去一小時`,title:`分享意見回饋`},me={loadingAria:`正在載入意見回饋表單`},he={close:`關閉`,message:`無法載入意見回饋表單。`,retry:`再試一次`},ge={closeAria:`關閉`,closeSidebarAria:`關閉側邊欄`,openSidebarAria:`開啟側邊欄`},_e={backFrom:`從 {title} 返回`,backToMenu:`返回 {title} 選單`,navigationAria:`{title} 導覽`},ve={ariaLabel:`側邊欄導覽`},ye={label:`從此對話中學習`},be={message:`從此助理中移除「{name}」?`,remove:`移除`,title:`移除技能`},xe={approvalNotice:`如果 Slack 顯示「請求核准」而非 <strong>安裝</strong>,則工作區管理員需要先核准此應用程式。`,createdApp:`我已建立應用程式`,inSlack:`在 Slack 中:`,stepManifest:`在<strong>或以您自己的方式開始</strong>下方,選擇<strong>從資訊清單</strong>,然後<strong>繼續</strong>`,stepPaste:`選擇您的工作區並貼上資訊清單`,stepReview:`檢閱權限,然後點擊<strong>建立並安裝</strong>`},Se={appName:`應用程式名稱`,appNamePlaceholder:`我的助理`,copied:`已複製!`,copyManifest:`複製資訊清單`,description:`描述 (選填)`,descriptionHelper:`顯示在應用程式的 Slack 個人資料中。`,descriptionPlaceholder:`此助理提供哪些協助`,intro:`為您的 Slack 應用程式命名並複製其資訊清單。所有權限和設定皆已預先配置。`,next:`下一步`},Ce={body:`在新分頁中開啟 Slack 以建立應用程式,然後返回此處查看後續步驟。`,copied:`已複製!`,copyManifest:`複製資訊清單`,manifestCopiedNotice:`您已在此處複製此應用程式的資訊清單。如果您之後有複製任何其他內容,請在貼上前再次複製。`,manifestNotCopiedNotice:`您尚未複製此應用程式的資訊清單。Slack 的建立應用程式彈出視窗沒有其他方式可以取得,因此請在貼上前複製它。`,next:`下一步`,openSlack:`開啟 Slack`},we={appTokenLabel:`應用程式權杖`,botTokenLabel:`機器人權杖`,connectSlack:`連接 Slack`,connecting:`正在連接…`,credentialsSaved:`憑證已儲存`,instructions:`在 Slack 的確認畫面中,展開 <credentials>您的應用程式憑證</credentials> 並複製兩個權杖。`,skipNotice:`該畫面也提供命令列逐步說明和一個 <download>下載應用程式檔案</download> 按鈕。請跳過這兩項。它們會設定一個獨立的本機應用程式,而此助理只需要這兩個權杖。`,savedBody:`兩個金鑰都已儲存。Slack 這邊已完成。`},Te={channelLabel:`Slack`,copyError:`無法複製清單。請在繼續之前重新複製。`,stepConnect:`連接`,stepCreate:`建立`,stepName:`名稱`,stepOpen:`開啟`},Ee={total:`總計:{value}`},De={reloadApp:`重新載入應用程式`},Oe={reconnecting:`正在重新連線至你的助理…`,dismiss:`關閉`,goToDoctor:`前往診斷`,resumeAssistant:`恢復助理`,retryNow:`立即重試`,wakeUp:`喚醒`},ke={allLanguages:`所有語言`,featured:`精選`,languagesAriaLabel:`語言`,noMatch:`無符合的語言。`,searchAriaLabel:`搜尋語言`,searchPlaceholder:`搜尋語言`,suggested:`建議`},Ae={description:`從您下次語音輸入開始生效。`},je={apiKeyLabel:`API 金鑰`,apiKeyPlaceholderReplace:`•••••••• (輸入新金鑰以取代)`,providerAriaLabel:`語音轉文字提供者`,providerLabel:`提供者`,saveFailed:`儲存語音轉文字設定失敗`,saveSuccess:`語音轉文字設定已儲存`,spokenLanguage:`口說語言`,spokenLanguageApplies:`從您下次語音輸入開始生效。`,vellumTranscription:`轉錄會透過您的 Vellum 帳戶執行。`,windowsNativeDisplayName:`Windows 原生聽寫`,windowsNativeSetupWarning:`需要為您的 Windows 顯示語言啟用基本語音辨識:開啟「設定」>「時間與語言」>「語言與區域」,選取顯示語言旁邊的三個點,選擇「語言選項」,然後在「語言功能」下下載「基本語音辨識」。`,windowsNativeSubtitle:`Windows 裝置上的語音辨識,透過 Windows 輔助程式在本機執行。可離線運作且不需要 API 金鑰。`},Me={ariaLabel:`子助理 {subagentId}`},Ne={accessibilityDescription:`允許您的助理代表您點擊、輸入和控制應用程式。`,accessibilityLabel:`輔助使用`,checking:`正在檢查權限...`,dockIcon:`Dock 圖示`,microphoneDescription:`允許您的助理擷取音訊以進行語音輸入和錄音。`,microphoneLabel:`麥克風`,notificationBadgesDescription:`允許您的助理在 {surface} 上顯示未讀對話計數。`,notificationBadgesLabel:`通知標記`,notificationsDescription:`允許您的助理傳送 macOS 警示以進行核准、訊息和任務更新。`,notificationsLabel:`通知`,notificationsWindowsDescription:`允許您的助理顯示 Windows 通知以進行核准、訊息和任務更新。`,screenDescription:`允許您的助理在電腦使用任務期間擷取螢幕內容。`,screenLabel:`螢幕錄影`,speechRecognitionDescription:`允許您的助理在裝置上將您的語音轉錄為文字。`,speechRecognitionLabel:`語音辨識`,speechRecognitionWindowsDescription:`允許您的助理使用 Windows 語音辨識將您的語音轉錄為文字。`,taskbarIcon:`工作列圖示`,title:`系統權限`},Pe={botTokenLabel:`機器人權杖`,connectTelegram:`連接 Telegram`,instructions:`貼上 BotFather 回覆中的權杖。它是 <tokenLine>Use this token to access the HTTP API</tokenLine> 之後的整行內容。`,saving:`正在儲存…`,savedTitle:`權杖已儲存`,savedBody:`機器人金鑰已儲存。Telegram 這邊已完成。`},Fe={copied:`已複製!`,copyName:`複製名稱`,displayNameHint:`對於顯示名稱,<strong>{suggestedName}</strong> 可讓此機器人與您的助理相符。使用者名稱是獨立的,不一定要相符。`,chatScopeNotice:`支援私人聊天與群組。在群組中,助理會在被提及或有人回覆它時回應。不支援廣播頻道。`,inBotFather:`在 BotFather 中:`,intro:`Telegram 機器人是透過傳送訊息給 <strong>@BotFather</strong> 來建立的。開啟它,按照提示操作,然後帶著它給您的權杖回來。`,next:`下一步`,openBotFather:`開啟 BotFather`,stepDisplayName:`給它一個顯示名稱,這是人們在聊天中看到的名稱`,stepSendNewBot:`傳送 <strong>/newbot</strong>`,stepTokenReply:`BotFather 會在 <strong>Use this token to access the HTTP API</strong> 之後回覆一個權杖`,stepUsername:`給它一個使用者名稱,該名稱必須是唯一的並以 <strong>bot</strong> 結尾`},Ie={channelLabel:`Telegram`,copyError:`無法複製名稱。請改為在 BotFather 中輸入。`,stepConnect:`連接`,stepCreate:`建立機器人`},Le={shopifyLabel:`商店網域`,shopifyPlaceholder:`your-store.myshopify.com`},Re={recoveryModeBanner:`復原模式已啟用:此工作階段已連接到偵錯終端機。`},ze={accentFill:`強調色填充`,activeBorder:`啟用邊框`,activeSurface:`啟用表面`,assistantBubble:`助理的回覆,以全寬顯示在頁面表面上。`,buttonDisabled:`已停用`,buttonPrimary:`主要`,buttonSecondary:`次要`,chatAssistant1:`完成。摘要已備妥。營收穩定成長,上季標記的兩個風險已解決,我已將值得展示的三張圖表匯出到獨立頁面。`,chatAssistant2:`已排定上午 9 點。我會附上圖表和一段式版本,供手機快速瀏覽者參考。`,chatUser1:`你能在明天的會議前總結季度報告嗎?`,chatUser2:`太好了。早上發送給團隊。`,composerPlaceholder:`傳訊息給你的助理`,faintText:`淡色文字 - 漸層中最後一個清晰可辨的步驟。`,inputFilled:`已輸入到欄位中的文字。`,inputPlaceholder:`空白欄位中的預留位置`,newConversation:`新對話`,overlaySurface:`疊加表面`,primaryText:`主要文字 - 應用程式的主要閱讀表面。`,quietText:`靜態文字 - 中繼資料和時間戳記。`,raisedCard:`凸起卡片`,raisedCardBody:`凸起表面位於面板和頁面背景上方。`,samplerTitle:`主題範例`,secondaryText:`次要文字 - 輔助文案和說明。`,sectionAccent:`強調`,sectionButtons:`按鈕`,sectionInputs:`輸入`,sectionMessages:`訊息`,sectionSurfaces:`表面和邊框`,sectionText:`文字`,send:`傳送`,subtleDivider:`此行上方的細分隔線。`,tertiaryText:`第三層文字 - 標題、標籤和預留位置。`,userBubble:`使用者在其對話框中的訊息。`},Be={dark:`深色`,label:`主題`,light:`淺色`,system:`系統`,velvet:`絲絨`},Ve={apiKey:`API 金鑰`,apiKeyRequired:`測試前請為此供應商儲存 API 金鑰。`,chooseFromCatalog:`從目錄中選擇`,customVoiceIdAriaLabel:`自訂語音 ID`,noManagedVoices:`目前沒有可用的受管理語音。`,provider:`供應商`,providerAriaLabel:`TTS 供應商`,saveFailed:`儲存語音轉文字設定失敗`,saved:`語音轉文字設定已儲存`,test:`測試`,testing:`正在測試…`,voice:`語音`,voiceId:`語音 ID`,voiceIdPlaceholder:`輸入語音 ID`},He={available:`有可用的更新。正在開始下載…`,closeAriaLabel:`關閉`,downloading:`正在下載更新…`,ready:`Vellum {version} 已備妥。`,restartToInstall:`重新啟動以安裝`,versionFallback:`更新`},Ue={deleteFailed:`刪除應用程式失敗`},We={copyFailed:`無法複製連結。請在 {url} 開啟。`,linkCopied:`連結已複製`,open:`開啟`},Ge={setupPrompt:{slack:`我想在 Slack 上聯絡你。我們來設定吧。`,telegram:`我想在 Telegram 上聯絡你。我們來設定吧。`,discord:`我想在 Discord 上聯絡你。我們來設定吧。`,email:`我想寄電子郵件給你。我們來設定你的電子郵件地址。`,phone:`我希望能打電話給你。我們來設定你的電話號碼。`},finishPrompt:{slack:`Slack 已設定但無法運作。你能完成它嗎?`,telegram:`Telegram 已設定但無法運作。你能完成它嗎?`,discord:`Discord 已設定但無法運作。你能完成它嗎?`,email:`我的電子郵件地址已設定但無法運作。你能完成它嗎?`,phone:`我的電話號碼已設定但無法運作。你能完成它嗎?`}},Ke={addFailed:`加入書籤失敗。`,removeFailed:`移除書籤失敗。`},qe={exchangeFailed:`檢查貼上的金鑰,然後再試一次。`,failed:`連線 Claude 失敗。請再試一次。`,notStarted:`請先啟動連線 Claude 流程。`,pasteEmpty:`請貼上 Claude 頁面上顯示的程式碼。`,popupBlocked:`您的瀏覽器阻擋了登入分頁。請允許此網站的彈出視窗,然後再按一下「連線」。`,startFailed:`無法啟動連線 Claude。請再試一次。`,timedOut:`等待 Claude 連線逾時。請再試一次。`},Je={accountConnected:`{name} 帳號已連線。`,authorizationError:`{name} 錯誤:{code}`,authorizationFailed:`{name} 授權失敗`,popupBlocked:`彈出視窗已阻擋。請啟用彈出視窗,然後再試一次。`,startFailed:`無法啟動 {name} 授權。`,startFailedWithReason:`無法啟動 {name} 授權:{reason}`},Ye={blocked:`您的瀏覽器阻擋了助理嘗試開啟的頁面。`,openPage:`開啟頁面`},Xe={playFailed:`無法播放語音樣本。`},Ze={updated:`主題已更新`},Qe={body:`輸入您的 Vercel API 金鑰,以將應用程式部署為靜態頁面。`,cancel:`取消`,createToken:`在 Vercel 上建立金鑰 →`,save:`儲存`,saveFailed:`無法儲存 Vercel 金鑰。`,saving:`正在儲存…`,title:`連線 Vercel`,tokenLabel:`API 金鑰`,tokenPlaceholder:`Vercel API 金鑰`},$e={assistantVoiceAriaLabel:`助理語音`,defaultSuffix:`(預設)`,previewVoice:`預覽 {description}`,providerAriaLabel:`語音提供者`,stopPreview:`停止預覽`},et={ariaLabel:`語音`,selectVoice:`選取語音`},tt={done:`完成`,title:`語音`},nt={body:`語音提供者、轉錄和 API 金鑰位於<modelsLink>模型與服務</modelsLink>中。`},rt={recommendedOff:`建議關閉`,userTranscriptLabel:`顯示你說的話`,userTranscriptDescription:`在你說話時即時轉錄文字。`,assistantTranscriptLabel:`顯示助手說的話`,assistantTranscriptDescription:`在語音回覆旁同步顯示文字。`},it={developer:`開發人員`,file:`檔案`,help:`說明`,view:`檢視`},at={checkingDomain:`正在檢查網域…`,domainVerified:`網域已驗證`,failedTitle:`網域驗證失敗。DNS 記錄可能未正確傳播。您可以嘗試釋放並重新註冊網域。`,unknownStatus:`未知狀態`,unknownStatusTitle:`無法擷取網域驗證狀態。`,verificationFailed:`驗證失敗`,verifiedTitle:`DNS 記錄已驗證。您的網域已準備好傳送和接收電子郵件。`,verifyingDomain:`正在驗證網域…`,verifyingTitle:`DNS 記錄已佈建。正在等待電子郵件提供者驗證它們 - 這通常需要幾分鐘。`,setupRequired:`需要設定網域`,setupRequiredTitle:`此網域尚未在電子郵件提供者完成佈建。在完成設定前,它無法傳送或接收電子郵件。`},ot={body:`受管服務按用量計費,並從您的 Vellum 帳戶餘額中扣除。<link>檢視定價</link>`},st={managedLabel:`受管`,modeToggleAriaLabel:`服務模式`,yourOwnLabel:`自有`},ct={previewAlt:`您的助理頭像`,download:`下載頭像`,prompt:{slack:`下載您的助理頭像,以上傳為應用程式圖示。`,discord:`下載您的助理頭像,以上傳為機器人圖示。`,telegram:`下載您的助理頭像,然後透過 /setuserpic 傳送給 BotFather。`}},lt={strict:{label:`嚴格`,description:`執行任何操作前均需確認。不自動批准任何操作。`},conservative:{label:`保守`,description:`自動批准低風險操作,例如網路搜尋以及在其自身工作區中讀寫檔案。`},relaxed:{label:`寬鬆`,description:`自動批准低風險與中等風險操作,例如修改其工作區之外的檔案。`},fullAccess:{label:`完全存取`,description:`自動批准所有操作,包括高風險和無法識別的指令。助手將絕不請求權限確認。`}},ut={everyHours:`每 {count} 小時`,everyMinutes:`每 {count} 分鐘`,retrospectiveSubtitle:`在對話活動後觸發`},dt={title:`助理使用者名稱`,description:`你的助理的公開名稱,它的電子郵件地址也以這個名稱為基礎。`,helper:`小寫字母、數字、連字號和底線。`},ft={aboutPage:e,activeAssistantGate:t,addCredentialModal:n,addCreditsModal:r,appCard:i,appNavBar:a,appViewerContainer:o,assistantConnect:s,assistantFeatureFlagStore:c,avatarManagementModal:l,bundleConfirmPage:u,byoVoiceNote:d,channelSetupCompleteNotice:f,chatAvatar:p,chooserAvatarChip:m,collapsibleNavSection:h,commandPalette:g,companionIntro:_,companionPopover:v,companionSurface:y,companionWatchFramePage:b,contentActionBar:x,conversationTitle:S,copyButton:C,createAssistantDialog:w,dateRangeSelect:T,deleteAppDialog:E,deployDialogs:D,deployStore:O,detailPanelStopButton:k,detailPrimitives:A,dictationOverlayPage:j,discordNudgeBanner:M,discordSetupConnectStep:N,discordSetupCreateStep:P,discordSetupFinishStep:F,discordSetupInviteStep:I,discordSetupWizard:L,diskPressureBanner:R,downloadFeedback:z,editFooter:B,generateInviteLinkDialog:V,githubNudgeBanner:H,lazyBoundary:U,localNotification:W,desktopAppBanner:G,nativeAppBanner:K,notFound:q,nudgeChatBanner:J,onboardingBackButton:Y,platformLoginNotice:X,profileCard:Z,profileQuickAddProvider:Q,quickInputPage:$,referralContent:ee,referralModal:te,removeFromDeviceDialog:ne,resourcePressureBanner:re,retireConfirmDialog:ie,rootHydrateFallback:ae,routePendingIndicator:oe,rootLayout:se,routeErrorBoundary:ce,runtimeUpgradeBanner:le,sectionActionsButton:ue,serviceFormControls:de,shareConnectionLinkButton:fe,shareFeedbackModal:pe,shareFeedbackModalFallback:me,shareFeedbackModalLoadError:he,sideListDrawer:ge,sidebarShell:_e,sidebarTree:ve,skillLineageLink:ye,skillRemovalDialog:be,slackSetupCreateStep:xe,slackSetupNameStep:Se,slackSetupOpenStep:Ce,slackSetupTokensStep:we,slackSetupWizard:Te,stackedBarTooltip:Ee,startupFailure:De,statusBanner:Oe,sttLanguagePicker:ke,sttLanguagePickerModal:Ae,sttProviderForm:je,subagentAvatarChip:Me,systemPermissionsCard:Ne,telegramSetupConnectStep:Pe,telegramSetupCreateStep:Fe,telegramSetupWizard:Ie,tenantHost:Le,terminalPanel:Re,themeStagePage:ze,themeToggle:Be,ttsProviderForm:Ve,updateToast:He,useAppDelete:Ue,useAppDeployment:We,useAssistantChannels:Ge,useBookmarks:Ke,useConnectClaude:qe,useOauthConnect:Je,useOpenUrlDirectives:Ye,useVoiceSamplePreview:Xe,useWorkspaceTheme:Ze,vercelTokenDialog:Qe,voiceList:$e,voicePickerField:et,voicePickerModal:tt,voiceProvidersNote:nt,voiceTranscriptToggles:rt,windowsMenuBar:it,domainVerificationChip:at,managedServicesBanner:ot,serviceCard:st,channelAvatarDownload:ct,thresholdPresets:lt,scheduleFormatters:ut,assistantHandleModal:dt};export{e as aboutPage,t as activeAssistantGate,n as addCredentialModal,r as addCreditsModal,i as appCard,a as appNavBar,o as appViewerContainer,s as assistantConnect,c as assistantFeatureFlagStore,dt as assistantHandleModal,l as avatarManagementModal,u as bundleConfirmPage,d as byoVoiceNote,ct as channelAvatarDownload,f as channelSetupCompleteNotice,p as chatAvatar,m as chooserAvatarChip,h as collapsibleNavSection,g as commandPalette,_ as companionIntro,v as companionPopover,y as companionSurface,b as companionWatchFramePage,x as contentActionBar,S as conversationTitle,C as copyButton,w as createAssistantDialog,T as dateRangeSelect,ft as default,E as deleteAppDialog,D as deployDialogs,O as deployStore,G as desktopAppBanner,k as detailPanelStopButton,A as detailPrimitives,j as dictationOverlayPage,M as discordNudgeBanner,N as discordSetupConnectStep,P as discordSetupCreateStep,F as discordSetupFinishStep,I as discordSetupInviteStep,L as discordSetupWizard,R as diskPressureBanner,at as domainVerificationChip,z as downloadFeedback,B as editFooter,V as generateInviteLinkDialog,H as githubNudgeBanner,U as lazyBoundary,W as localNotification,ot as managedServicesBanner,K as nativeAppBanner,q as notFound,J as nudgeChatBanner,Y as onboardingBackButton,X as platformLoginNotice,Z as profileCard,Q as profileQuickAddProvider,$ as quickInputPage,ee as referralContent,te as referralModal,ne as removeFromDeviceDialog,re as resourcePressureBanner,ie as retireConfirmDialog,ae as rootHydrateFallback,se as rootLayout,ce as routeErrorBoundary,oe as routePendingIndicator,le as runtimeUpgradeBanner,ut as scheduleFormatters,ue as sectionActionsButton,st as serviceCard,de as serviceFormControls,fe as shareConnectionLinkButton,pe as shareFeedbackModal,me as shareFeedbackModalFallback,he as shareFeedbackModalLoadError,ge as sideListDrawer,_e as sidebarShell,ve as sidebarTree,ye as skillLineageLink,be as skillRemovalDialog,xe as slackSetupCreateStep,Se as slackSetupNameStep,Ce as slackSetupOpenStep,we as slackSetupTokensStep,Te as slackSetupWizard,Ee as stackedBarTooltip,De as startupFailure,Oe as statusBanner,ke as sttLanguagePicker,Ae as sttLanguagePickerModal,je as sttProviderForm,Me as subagentAvatarChip,Ne as systemPermissionsCard,Pe as telegramSetupConnectStep,Fe as telegramSetupCreateStep,Ie as telegramSetupWizard,Le as tenantHost,Re as terminalPanel,ze as themeStagePage,Be as themeToggle,lt as thresholdPresets,Ve as ttsProviderForm,He as updateToast,Ue as useAppDelete,We as useAppDeployment,Ge as useAssistantChannels,Ke as useBookmarks,qe as useConnectClaude,Je as useOauthConnect,Ye as useOpenUrlDirectives,Xe as useVoiceSamplePreview,Ze as useWorkspaceTheme,Qe as vercelTokenDialog,$e as voiceList,et as voicePickerField,tt as voicePickerModal,nt as voiceProvidersNote,rt as voiceTranscriptToggles,it as windowsMenuBar};
@@ -0,0 +1 @@
1
+ import{A as e,JS as t,Ki as n,LS as r,Uv as i,ec as a,j as o,jS as s,k as c}from"./app-CuJb51Ub.js";import{j as l}from"./vendor-CYmPHUS2.js";import{t as u}from"./react-B9IgSVeK.js";import{$ as d,Cr as f,La as p,U as m,Ya as h,Zr as g,_r as _,pa as v,y,zt as b}from"./icons-C0wyat6T.js";var x=h(`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`}]]),S=u();function C({size:e=24,className:t,style:n}){return(0,S.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,S.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 w({size:e=24,className:t,style:n}){return(0,S.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,S.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 T({size:e=24,className:t,style:n}){return(0,S.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,S.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 E({t:e}){return(0,S.jsx)(r,{padding:`lg`,className:`bg-[var(--surface-lift)]`,children:(0,S.jsxs)(`div`,{className:`relative`,children:[(0,S.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,S.jsxs)(`div`,{className:`relative flex flex-col items-start gap-3`,children:[(0,S.jsxs)(s,{tone:`neutral`,children:[(0,S.jsx)(b,{className:`h-3.5 w-3.5`}),e(`communityPage.heroTag`)]}),(0,S.jsx)(`h1`,{className:`text-[28px] font-semibold leading-tight tracking-tight text-[var(--content-emphasised)]`,children:e(`communityPage.heroTitle`)}),(0,S.jsx)(`p`,{className:`max-w-xl text-body-medium-default text-[color:var(--content-tertiary)]`,children:e(`communityPage.heroDescription`)})]})]})})}function D({icon:e,text:t}){return(0,S.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,S.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md bg-[var(--surface-base)]`,children:(0,S.jsx)(e,{size:14,className:`text-[var(--content-secondary)]`,"aria-hidden":!0})}),(0,S.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]})}function O({accentColor:e,iconColor:n=`var(--aux-white)`,label:i,icon:a,title:o,subtitle:s,benefits:c,primaryAction:l,secondaryAction:u}){return(0,S.jsx)(r,{padding:`lg`,className:`flex-1`,children:(0,S.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,S.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,S.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:e,color:n},children:a}),(0,S.jsx)(`span`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:i})]}),(0,S.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,S.jsx)(`h2`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:o}),(0,S.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:s})]}),(0,S.jsx)(`ul`,{className:`flex flex-col gap-3`,children:c.map(({icon:e,text:t})=>(0,S.jsx)(D,{icon:e,text:t},t))}),(0,S.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,S.jsxs)(t,{onClick:l.onClick,children:[l.icon,l.label]}),u&&(0,S.jsxs)(t,{variant:`ghost`,onClick:()=>window.open(u.href,`_blank`,`noopener,noreferrer`),children:[u.label,(0,S.jsx)(p,{className:`h-3.5 w-3.5`})]})]})]})})}function k({icon:e,iconBg:t,iconColor:n=`white`,title:a,description:o,href:s}){return(0,S.jsx)(i,{href:s,className:`flex flex-1 cursor-pointer`,glyph:!1,children:(0,S.jsx)(r,{className:`flex-1 transition-shadow hover:shadow-md`,padding:`lg`,children:(0,S.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,S.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,S.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-lg`,style:{backgroundColor:t,color:n},children:e}),(0,S.jsx)(g,{size:14,className:`text-[var(--content-tertiary)]`,"aria-hidden":!0})]}),(0,S.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,S.jsx)(`span`,{className:`text-title-medium text-[var(--content-emphasised)]`,children:a}),(0,S.jsx)(`p`,{className:`text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:o})]})]})})})}function A(){let{t}=l(`settings`),{handleStar:r}=o();return(0,S.jsxs)(`div`,{className:`space-y-6`,children:[(0,S.jsx)(E,{t}),(0,S.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:[(0,S.jsx)(O,{accentColor:`var(--content-emphasised)`,iconColor:`var(--surface-base)`,label:t(`communityPage.openSourceLabel`),icon:(0,S.jsx)(C,{size:20}),title:t(`communityPage.openSourceTitle`),subtitle:t(`communityPage.openSourceSubtitle`),benefits:[{icon:m,text:t(`communityPage.openSourceBenefitStar`)},{icon:v,text:t(`communityPage.openSourceBenefitIssues`)},{icon:x,text:t(`communityPage.openSourceBenefitContribute`)}],primaryAction:{label:t(`communityPage.starOnGitHub`),icon:(0,S.jsx)(m,{size:16}),onClick:r},secondaryAction:{label:t(`communityPage.viewSource`),href:e}}),(0,S.jsx)(O,{accentColor:`#5865F2`,label:t(`communityPage.discordLabel`),icon:(0,S.jsx)(n,{size:20}),title:t(`communityPage.discordTitle`),subtitle:t(`communityPage.discordSubtitle`),benefits:[{icon:_,text:t(`communityPage.discordBenefitTeam`)},{icon:d,text:t(`communityPage.discordBenefitFeedback`)},{icon:y,text:t(`communityPage.discordBenefitAnswers`)}],primaryAction:{label:t(`communityPage.joinDiscord`),icon:(0,S.jsx)(n,{size:16,style:{color:`currentColor`}}),onClick:c}})]}),(0,S.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,S.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wider text-[color:var(--content-tertiary)]`,children:t(`communityPage.moreFromVellum`)}),(0,S.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-3`,children:[(0,S.jsx)(k,{icon:(0,S.jsx)(f,{size:20}),iconBg:`#22c55e`,title:t(`communityPage.communityHubTitle`),description:t(`communityPage.communityHubDescription`),href:a}),(0,S.jsx)(k,{icon:(0,S.jsx)(w,{size:20}),iconBg:`var(--content-default)`,iconColor:`var(--surface-base)`,title:t(`communityPage.followOnXTitle`),description:t(`communityPage.followOnXDescription`),href:`https://x.com/vellum_ai`}),(0,S.jsx)(k,{icon:(0,S.jsx)(T,{size:20}),iconBg:`#ef4444`,title:t(`communityPage.youtubeChannelTitle`),description:t(`communityPage.youtubeChannelDescription`),href:`https://www.youtube.com/@Vellum_AI`})]})]})]})}export{A as CommunityPage};
@@ -1 +1 @@
1
- import{_m as e}from"./app-Tg6YU_tZ.js";var t=`#5eead4`,n=/^#[0-9a-f]{6}$/i;function r(e){return e!==void 0&&n.test(e)?e:void 0}function i(t,n,i){return(t===null?void 0:r(t.accentHex))??r(n)??e(i?.color)??void 0}export{i as n,t};
1
+ import{ih as e}from"./app-CuJb51Ub.js";var t=`#5eead4`,n=/^#[0-9a-f]{6}$/i;function r(e){return e!==void 0&&n.test(e)?e:void 0}function i(t,n,i){return(t===null?void 0:r(t.accentHex))??r(n)??e(i?.color)??void 0}export{i as n,t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Js as t,hh as n,lc as r}from"./app-Tg6YU_tZ.js";import{t as i,x as a}from"./react-B9IgSVeK.js";import{n as o}from"./companion-accent-C3xBrXHO.js";var s=e(a(),1),c=i(),l=10,u=e=>{let t=l;switch(e){case`top`:return{top:t,left:`50%`,translate:`-50% 0`,width:360,height:44};case`bottom`:return{bottom:t,left:`50%`,translate:`-50% 0`,width:360,height:44};case`left`:return{left:t,top:`50%`,translate:`0 -50%`,height:360,width:44};case`right`:return{right:t,top:`50%`,translate:`0 -50%`,height:360,width:44}}};function d(){let[e,i]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=r(i);return t().then(e=>{e&&i(e)}),e},[]);let a=e?.docking;if(a===void 0)return null;let l=o(e?.call??null,e?.accentHex,e?.character)??`#5eead4`;return(0,c.jsx)(`div`,{className:`pointer-events-none relative h-screen w-screen bg-transparent select-none`,"data-testid":`companion-dock-zones`,style:{"--companion-ring-accent":l},"aria-hidden":!0,children:n.map(e=>{let t=e===a;return(0,c.jsx)(`div`,{className:`absolute rounded-2xl transition-[background-color,border-color,box-shadow] duration-150`,"data-testid":`companion-dock-zone`,"data-dock":e,"data-armed":t?`true`:`false`,style:{...u(e),backgroundColor:`color-mix(in srgb, var(--companion-ring-accent) ${t?26:9}%, transparent)`,border:`1.5px ${t?`solid`:`dashed`} color-mix(in srgb, var(--companion-ring-accent) ${t?90:45}%, transparent)`,boxShadow:t?`0 0 24px color-mix(in srgb, var(--companion-ring-accent) 45%, transparent), inset 0 0 24px color-mix(in srgb, var(--companion-ring-accent) 25%, transparent)`:void 0}},e)})})}export{d as CompanionDockZonesPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Oc as t,Wc as n,rg as r}from"./app-CuJb51Ub.js";import{t as i,x as a}from"./react-B9IgSVeK.js";import{n as o}from"./companion-accent-ggBv1xjm.js";var s=e(a(),1),c=i(),l=10,u=e=>{let t=l;switch(e){case`top`:return{top:t,left:`50%`,translate:`-50% 0`,width:360,height:44};case`bottom`:return{bottom:t,left:`50%`,translate:`-50% 0`,width:360,height:44};case`left`:return{left:t,top:`50%`,translate:`0 -50%`,height:360,width:44};case`right`:return{right:t,top:`50%`,translate:`0 -50%`,height:360,width:44}}};function d(){let[e,i]=(0,s.useState)(null);(0,s.useEffect)(()=>{let e=n(i);return t().then(e=>{e&&i(e)}),e},[]);let a=e?.docking;if(a===void 0)return null;let l=o(e?.call??null,e?.accentHex,e?.character)??`#5eead4`;return(0,c.jsx)(`div`,{className:`pointer-events-none relative h-screen w-screen bg-transparent select-none`,"data-testid":`companion-dock-zones`,style:{"--companion-ring-accent":l},"aria-hidden":!0,children:r.map(e=>{let t=e===a;return(0,c.jsx)(`div`,{className:`absolute rounded-2xl transition-[background-color,border-color,box-shadow] duration-150`,"data-testid":`companion-dock-zone`,"data-dock":e,"data-armed":t?`true`:`false`,style:{...u(e),backgroundColor:`color-mix(in srgb, var(--companion-ring-accent) ${t?26:9}%, transparent)`,border:`1.5px ${t?`solid`:`dashed`} color-mix(in srgb, var(--companion-ring-accent) ${t?90:45}%, transparent)`,boxShadow:t?`0 0 24px color-mix(in srgb, var(--companion-ring-accent) 45%, transparent), inset 0 0 24px color-mix(in srgb, var(--companion-ring-accent) 25%, transparent)`:void 0}},e)})})}export{d as CompanionDockZonesPage};
@@ -1 +1 @@
1
- import{bh as e,vh as t,xh as n,yh as r}from"./app-Tg6YU_tZ.js";var i=(e,t,n)=>t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom,a=(e,t)=>{if(t.top>=e.bottom)return{left:t.left,right:t.right,top:e.bottom,bottom:t.top};let n={top:t.top,bottom:t.bottom};return t.left>=e.right?{left:e.right,right:t.left,...n}:{left:t.right,right:e.left,...n}},o=(e,{avatar:t,pill:n})=>{let r=t=>i(t,e.x,e.y);return r(t)?!0:n===null?!1:r(n)||r(a(t,n))};function s(i,a){let o=n(a),s=i/2,c=t(i),l=r(i,a),u=e(i,a),d=e=>e/o,f=Math.max(s,a-c),p=Math.max(s,c);return{scale:o,avatarRel:i/a,avatarHalf:s,baseline:c,gap:l,inUnits:d,lineAt:(e,t)=>e===`up`?`calc(100% - ${d(u-t)}px)`:`${d(u+t)}px`,edgeAt:(e,t)=>{let n=d(t),r=n<0?`calc(50% - ${-n}px)`:`calc(50% + ${n}px)`;return e===`left`?{right:r}:{left:r}},introStepOff:e=>(e===`up`?f:p)+l}}export{i as n,o as r,s as t};
1
+ import{cg as e,fg as t,lg as n,pg as r}from"./app-CuJb51Ub.js";var i=(e,t,n)=>t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom,a=(e,t)=>{if(t.top>=e.bottom)return{left:t.left,right:t.right,top:e.bottom,bottom:t.top};let n={top:t.top,bottom:t.bottom};return t.left>=e.right?{left:e.right,right:t.left,...n}:{left:t.right,right:e.left,...n}},o=(e,{avatar:t,pill:n})=>{let r=t=>i(t,e.x,e.y);return r(t)?!0:n===null?!1:r(n)||r(a(t,n))};function s(i,a){let o=r(a),s=i/2,c=e(i),l=n(i,a),u=t(i,a),d=e=>e/o,f=Math.max(s,a-c),p=Math.max(s,c);return{scale:o,avatarRel:i/a,avatarHalf:s,baseline:c,gap:l,inUnits:d,lineAt:(e,t)=>e===`up`?`calc(100% - ${d(u-t)}px)`:`${d(u+t)}px`,edgeAt:(e,t)=>{let n=d(t),r=n<0?`calc(50% - ${-n}px)`:`calc(50% + ${n}px)`;return e===`left`?{right:r}:{left:r}},introStepOff:e=>(e===`up`?f:p)+l}}export{i as n,o as r,s as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ha as t,Nr as n,Pr as r,Px as i,Rx as a,Wx as o,_h as s,ux as c}from"./app-Tg6YU_tZ.js";import{j as l,lt as u}from"./vendor-DYOeoIwg.js";import{t as d,x as f}from"./react-B9IgSVeK.js";import{W as p,i as m,lr as h,m as g,qi as _}from"./icons-QG1KAFmx.js";var v=e(f(),1),y=d();function b({label:e,selected:n,onPick:r,trailing:i}){return(0,y.jsxs)(`div`,{role:`option`,"aria-selected":n,className:t(`flex min-h-9 items-center gap-2 rounded-lg px-3 py-1.5 transition-colors`,n?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`),onClick:r,children:[(0,y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:e}),i,n?(0,y.jsx)(_,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`size-4 shrink-0`})]})}function x({label:e,children:t}){return(0,y.jsx)(a,{className:`-mx-2 min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{role:`listbox`,"aria-label":e,className:`flex flex-col`,children:t})})}function S({popover:e,onAnswer:t}){let{t:n}=l();return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(x,{label:n(`companionPopover.microphoneTitle`),children:[(0,y.jsx)(b,{label:n(`companionPopover.systemDefault`),selected:e.selected===``,onPick:()=>t?.({kind:`pick`,optionId:``})}),e.options.map(n=>(0,y.jsx)(b,{label:n.label,selected:e.selected===n.id,onPick:()=>t?.({kind:`pick`,optionId:n.id})},n.id))]}),e.needsPermission?(0,y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`companionPopover.microphonePermissionHint`)}):null]})}function C(){let[e,t]=(0,v.useState)(null),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>()=>{n.current?.pause(),n.current=null},[]),{playing:e,play:(e,r)=>{n.current?.pause();let i=new Audio(r);n.current=i,t(e);let a=()=>{n.current===i&&(n.current=null,t(null))};i.onended=a,i.onerror=a,i.play().catch(a)},stop:()=>{n.current?.pause(),n.current=null,t(null)}}}function w({popover:e,onAnswer:t}){let{t:n}=l(),{playing:r,play:i,stop:a}=C();return(0,y.jsx)(x,{label:n(`companionPopover.voiceTitle`),children:e.groups.map(s=>(0,y.jsxs)(`div`,{role:`group`,"aria-label":s.accent,children:[(0,y.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-label-small-default text-[var(--content-tertiary)]`,children:s.accent}),s.voices.map(s=>{let c=r===s.id;return(0,y.jsx)(b,{label:s.isDefault?(0,y.jsxs)(y.Fragment,{children:[s.label,(0,y.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:` ${n(`companionPopover.defaultSuffix`)}`})]}):s.label,selected:e.selected===s.id,onPick:()=>t?.({kind:`pick`,optionId:s.id}),trailing:s.sampleUrl===``?void 0:(0,y.jsx)(o,{variant:`ghost`,size:`compact`,className:`size-7 shrink-0`,iconOnly:c?(0,y.jsx)(p,{}):(0,y.jsx)(g,{}),"aria-label":c?n(`companionPopover.stopPreview`):n(`companionPopover.previewVoice`,{voice:s.label}),onClick:e=>{e.stopPropagation(),c?a():i(s.id,s.sampleUrl)}})},s.id)})]},s.accent))})}var T=e=>/^https?:\/\//i.test(e)||/^data:image\//i.test(e),E=`border border-white/5 bg-[var(--surface-base)] text-[var(--content-default)] shadow-lg shadow-black/40`,D=e=>`radial-gradient(120% 80% at 0% 0%, ${e===void 0?`transparent`:`color-mix(in srgb, ${e} 7%, transparent)`} 0%, transparent 70%), #17181b`;function O({popover:e,view:n,cardRef:r,onAnswer:i,onView:a,onOpenLink:o,accentHex:s,attached:c=!1,className:u,style:d}){let{t:f}=l();return(e.kind===`approvals`||e.kind===`secret`)&&n!==`expanded`?(0,y.jsx)(`div`,{ref:r,role:`group`,"data-companion-popover":e.kind,className:t(`w-max max-w-[640px] rounded-[22px]`,E,u),style:d,children:(0,y.jsx)(k,{popover:e,onAnswer:i,onView:a})}):(0,y.jsx)(`div`,{ref:r,role:`group`,"data-companion-popover":e.kind,className:t(`flex min-h-0 flex-col gap-3 p-4 text-[var(--content-default)]`,!c&&`rounded-[20px] border border-white/10 shadow-2xl shadow-black/50`,e.kind===`approvals`?`w-max max-w-[640px]`:`w-[360px]`,(e.kind===`microphones`||e.kind===`voices`)&&`gap-2 px-4 pb-3`,u),style:c?d:{background:D(s),...d},children:e.kind===`approvals`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.needsOkCount`,{count:e.items.length}),onClose:()=>a?.(`deferred`)}),(0,y.jsx)(L,{items:e.items,onAnswer:i})]}):e.kind===`secret`?(0,y.jsx)(R,{popover:e,onAnswer:i,onView:a}):e.kind===`microphones`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.microphoneTitle`),onClose:()=>i?.({kind:`dismiss`})}),(0,y.jsx)(S,{popover:e,onAnswer:i})]}):e.kind===`voices`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.voiceTitle`),onClose:()=>i?.({kind:`dismiss`})}),(0,y.jsx)(w,{popover:e,onAnswer:i})]}):(0,y.jsx)(z,{popover:e,onAnswer:i,onOpenLink:o})})}function k({popover:e,onAnswer:n,onView:r,className:i}){let{t:a}=l(),o=e.kind===`approvals`?e.items[0]:void 0,s=e.kind===`approvals`&&e.items.length===1;return(0,y.jsxs)(`div`,{"data-companion-prompt-row":e.kind,className:t(`flex min-h-11 min-w-0 items-center gap-1.5 py-1.5 pr-1.5 text-[var(--content-default)]`,e.kind===`secret`?`pl-2`:`pl-4`,i),children:[e.kind===`secret`?(0,y.jsx)(U,{providerKey:e.providerKey}):null,(0,y.jsx)(P,{className:`min-w-0 flex-1 text-body-medium-default`,maxWidth:A,text:e.kind===`secret`?e.service===``?a(`companionPopover.needsCredentials`):a(`companionPopover.needsCredentialsFor`,{service:e.service}):s&&o!==void 0?o.title:a(`companionPopover.needsOkCount`,{count:e.items.length})}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-1`,children:s&&o!==void 0?(0,y.jsx)(F,{item:o,pill:!0,onAnswer:n}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`secondary`,onClick:()=>r?.(`deferred`),children:a(`companionPopover.notNow`)}),(0,y.jsx)(K,{tone:`primary`,onClick:()=>r?.(`expanded`),children:e.kind===`secret`?a(`companionPopover.enter`):a(`companionPopover.review`)})]})})]})}var A=440,j=400;function M(e,t,n){let r=e.trim().split(/\s+/).filter(e=>e!==``),i=r.length;if(i<2||n(r.join(` `))<=t)return[r.join(` `)];let a=r.map(()=>[]);for(let e=0;e<i;e+=1)for(let t=e+1;t<=i;t+=1)a[e][t]=n(r.slice(e,t).join(` `));let o=(e,t)=>r.slice(e,t).join(` `),s=[];for(let e=0;e<i;){let n=e+1;for(;n<i&&a[e][n+1]<=t;)n+=1;s.push(o(e,n)),e=n}if(s.length<2||i>N)return s;let c=e=>{let n=null;for(let r=i-1;r>=e-1;--r){let o=a[r][i];if(o>t&&r!==i-1)continue;let s=new Map;for(let e=1;e<=r;e+=1)a[0][e]<=o&&s.set(`${e}:0`,{cost:(o-a[0][e])**2,breaks:[0]});for(let t=2;t<=e-1;t+=1){let e=new Map;for(let[t,n]of s){let[i,s]=t.split(`:`).map(Number),c=a[s][i];for(let t=i+1;t<=r;t+=1){let r=a[i][t];if(r<c||r>o)continue;let s=n.cost+(o-r)**2,l=`${t}:${i}`,u=e.get(l);(u===void 0||s<u.cost)&&e.set(l,{cost:s,breaks:[...n.breaks,i]})}}s=e}for(let[e,t]of s){let[i,s]=e.split(`:`).map(Number);i!==r||a[s][i]>o||(n===null||t.cost<n.cost)&&(n={cost:t.cost,breaks:[...t.breaks,r]})}}if(n===null)return null;let r=[...n.breaks,i];return n.breaks.map((e,t)=>o(e,r[t+1]))};for(let e=s.length;e<=i;e+=1){let t=c(e);if(t!==null)return t}return s}var N=48;function P({text:e,maxWidth:t,className:n,title:r}){let i=(0,v.useRef)(null),[a,o]=(0,v.useState)(null);return(0,v.useLayoutEffect)(()=>{let n=i.current;if(n===null)return;let r=!1,a=()=>{if(r)return;let i=document.createElement(`span`);i.style.cssText=`position:absolute;visibility:hidden;white-space:pre;left:0;top:0`,n.appendChild(i);let a=new Map,s=M(e,t,e=>{let t=a.get(e);if(t!==void 0)return t;i.textContent=e;let n=i.getBoundingClientRect().width;return a.set(e,n),n});i.remove(),o(s.length>1?s:null)};return a(),document.fonts?.addEventListener(`loadingdone`,a),document.fonts?.ready.then(a),()=>{r=!0,document.fonts?.removeEventListener(`loadingdone`,a)}},[e,t]),(0,y.jsx)(`span`,{ref:i,dir:`auto`,className:n,title:r,children:a===null?e:a.map((e,t)=>(0,y.jsxs)(`span`,{className:`block whitespace-nowrap`,children:[e,t<a.length-1?` `:null]},t))})}function F({item:e,pill:t,onAnswer:n}){let{t:r}=l(),i=()=>n?.({kind:`deny`,itemId:e.id}),a=()=>n?.({kind:e.permission===void 0?`allow`:`settings`,itemId:e.id});return t?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`negative`,onClick:i,children:r(`companionPopover.deny`)}),(0,y.jsx)(K,{tone:`primary`,onClick:a,children:r(`companionPopover.allow`)})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(o,{variant:`dangerOutline`,onClick:i,children:r(`companionPopover.deny`)}),(0,y.jsx)(o,{variant:`primary`,onClick:a,children:r(`companionPopover.allow`)})]})}function I({title:e,icon:n,emphasis:r=!1,onClose:i}){let{t:a}=l();return(0,y.jsxs)(`div`,{className:`-mt-0.5 -mr-1.5 flex min-h-7 items-center gap-2`,children:[n,(0,y.jsx)(`p`,{dir:`auto`,className:t(`min-w-0 flex-1`,r?`text-title-small leading-snug`:`text-body-small-default text-[var(--content-tertiary)] select-none`),children:e}),(0,y.jsx)(o,{variant:`ghost`,className:`size-7 rounded-lg px-0`,"aria-label":a(`companionPopover.dismiss`),iconOnly:(0,y.jsx)(m,{className:`size-4`,strokeWidth:2}),onClick:i})]})}function L({items:e,onAnswer:t}){return(0,y.jsx)(a,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`ol`,{className:`flex flex-col gap-2`,children:e.map((e,n)=>(0,y.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-[var(--surface-lift)] text-body-medium-default text-[var(--content-tertiary)]`,children:n+1}),(0,y.jsx)(P,{className:`min-w-0 flex-1 pl-1 text-body-medium-default`,maxWidth:j,title:e.detail===``?void 0:e.detail,text:e.title}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-2`,children:(0,y.jsx)(F,{item:e,pill:!1,onAnswer:t})})]},e.id))})})}function R({popover:e,onAnswer:t,onView:n}){let{t:r}=l(),[c,u]=(0,v.useState)(``),d=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=()=>{d.current?.focus()};return e(),window.addEventListener(`focus`,e),()=>{window.removeEventListener(`focus`,e)}},[]),(0,y.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col gap-3`,onSubmit:e=>{e.preventDefault(),c!==``&&t?.({kind:`secret`,value:c})},children:[(0,y.jsx)(I,{icon:(0,y.jsx)(U,{providerKey:e.providerKey}),title:e.service===``?r(`companionPopover.needsCredentials`):r(`companionPopover.needsCredentialsFor`,{service:e.service}),onClose:()=>n?.(`deferred`)}),(0,y.jsx)(a,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.detail===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.detail}),(0,y.jsx)(i,{ref:d,type:`password`,fullWidth:!0,autoComplete:`off`,className:`select-text`,maxLength:s,label:e.label===``?r(`companionPopover.credentialLabel`):e.label,placeholder:e.placeholder,value:c,onChange:e=>{u(e.target.value)}})]})}),(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2`,children:[(0,y.jsx)(o,{variant:`outlined`,onClick:()=>n?.(`deferred`),children:r(`companionPopover.notNow`)}),(0,y.jsx)(o,{variant:`primary`,type:`submit`,disabled:c===``,children:r(`companionPopover.confirm`)})]})]})}function z({popover:e,onAnswer:t,onOpenLink:n}){let{t:r}=l(),[i,s]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{emphasis:!0,title:e.title===``?e.kind===`surface`?r(`companionPopover.surfaceFallback`):``:e.title,onClose:()=>t?.({kind:`dismiss`})}),e.kind===`card`?(0,y.jsxs)(y.Fragment,{children:[e.subtitle===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`-mt-2.5 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e.subtitle}),(0,y.jsx)(a,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.body===``?null:(0,y.jsx)(B,{body:e.body,onOpenLink:n})})}),e.actions.length>0?(0,y.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2`,children:W(e.actions).map(e=>(0,y.jsx)(o,{variant:G(e),disabled:i,onClick:()=>{s(!0),t?.({kind:`action`,actionId:e.id})},children:e.label},e.id))}):null]}):(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,y.jsx)(o,{variant:`primary`,onClick:()=>t?.({kind:`open`}),children:r(`companionPopover.openApp`)})})})]})}function B({body:e,onOpenLink:t}){return(0,y.jsx)(c,{content:e,className:`text-body-medium-lighter text-[var(--content-secondary)] [&_li]:mb-1 [&_ol]:mb-2 [&_ol]:pl-4 [&_p]:mb-2 [&_ul]:mb-2 [&_ul]:pl-4`,linkComponent:(0,v.useCallback)(({href:e,children:n})=>(0,y.jsx)(`a`,{href:e,className:`text-[var(--content-default)] underline decoration-[var(--content-tertiary)] underline-offset-2 hover:decoration-[var(--content-default)]`,onClick:n=>{n.preventDefault(),e!==void 0&&t?.(e)},children:n}),[t]),imageComponent:H,urlTransform:V})}var V=e=>/^data:image\//i.test(e)?e:u(e),H=({src:e,alt:t})=>T(e)?(0,y.jsx)(`img`,{src:e,alt:t,draggable:!1,className:`my-1 max-h-60 w-full rounded-xl object-contain`}):null;function U({providerKey:e}){return e!==void 0&&r(e)?(0,y.jsx)(n,{providerKey:e,displayName:null,logoUrl:null,size:24}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-6 shrink-0 items-center justify-center text-[var(--content-tertiary)]`,children:(0,y.jsx)(h,{className:`size-4`,strokeWidth:2})})}var W=e=>[...e.filter(e=>e.style!==`primary`),...e.filter(e=>e.style===`primary`)],G=e=>{switch(e.style){case`primary`:return`primary`;case`destructive`:return`danger`;case`secondary`:return`outlined`}};function K({tone:e,onClick:n,type:r=`button`,disabled:i,children:a}){return(0,y.jsx)(o,{type:r,disabled:i,variant:e===`primary`?`primary`:e===`negative`?`dangerGhost`:`ghost`,className:t(`h-8 rounded-full px-3`,e===`secondary`&&`bg-[var(--surface-lift)] hover:bg-[var(--surface-active)]`,e===`negative`&&`bg-[var(--system-negative-weak)]`),onClick:n,children:a})}export{k as n,O as t};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{JS as t,Lr as n,NS as r,Rr as i,TS as a,ho as o,lS as s,sg as c}from"./app-CuJb51Ub.js";import{j as l,ut as u}from"./vendor-CYmPHUS2.js";import{t as d,x as f}from"./react-B9IgSVeK.js";import{G as p,Ji as m,dr as h,h as g,i as _}from"./icons-C0wyat6T.js";var v=e(f(),1),y=d();function b({label:e,selected:t,onPick:n,trailing:r}){return(0,y.jsxs)(`div`,{role:`option`,"aria-selected":t,className:o(`flex min-h-9 items-center gap-2 rounded-lg px-3 py-1.5 transition-colors`,t?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`),onClick:n,children:[(0,y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:e}),r,t?(0,y.jsx)(m,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`size-4 shrink-0`})]})}function x({label:e,children:t}){return(0,y.jsx)(r,{className:`-mx-2 min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{role:`listbox`,"aria-label":e,className:`flex flex-col`,children:t})})}function S({popover:e,onAnswer:t}){let{t:n}=l();return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(x,{label:n(`companionPopover.microphoneTitle`),children:[(0,y.jsx)(b,{label:n(`companionPopover.systemDefault`),selected:e.selected===``,onPick:()=>t?.({kind:`pick`,optionId:``})}),e.options.map(n=>(0,y.jsx)(b,{label:n.label,selected:e.selected===n.id,onPick:()=>t?.({kind:`pick`,optionId:n.id})},n.id))]}),e.needsPermission?(0,y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`companionPopover.microphonePermissionHint`)}):null]})}function C(){let[e,t]=(0,v.useState)(null),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>()=>{n.current?.pause(),n.current=null},[]),{playing:e,play:(e,r)=>{n.current?.pause();let i=new Audio(r);n.current=i,t(e);let a=()=>{n.current===i&&(n.current=null,t(null))};i.onended=a,i.onerror=a,i.play().catch(a)},stop:()=>{n.current?.pause(),n.current=null,t(null)}}}function w({popover:e,onAnswer:n}){let{t:r}=l(),{playing:i,play:a,stop:o}=C();return(0,y.jsx)(x,{label:r(`companionPopover.voiceTitle`),children:e.groups.map(s=>(0,y.jsxs)(`div`,{role:`group`,"aria-label":s.accent,children:[(0,y.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-label-small-default text-[var(--content-tertiary)]`,children:s.accent}),s.voices.map(s=>{let c=i===s.id;return(0,y.jsx)(b,{label:s.isDefault?(0,y.jsxs)(y.Fragment,{children:[s.label,(0,y.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:` ${r(`companionPopover.defaultSuffix`)}`})]}):s.label,selected:e.selected===s.id,onPick:()=>n?.({kind:`pick`,optionId:s.id}),trailing:s.sampleUrl===``?void 0:(0,y.jsx)(t,{variant:`ghost`,size:`compact`,className:`size-7 shrink-0`,iconOnly:c?(0,y.jsx)(p,{}):(0,y.jsx)(g,{}),"aria-label":c?r(`companionPopover.stopPreview`):r(`companionPopover.previewVoice`,{voice:s.label}),onClick:e=>{e.stopPropagation(),c?o():a(s.id,s.sampleUrl)}})},s.id)})]},s.accent))})}var T=e=>/^https?:\/\//i.test(e)||/^data:image\//i.test(e),E=`border border-white/5 bg-[var(--surface-base)] text-[var(--content-default)] shadow-lg shadow-black/40`,D=e=>`radial-gradient(120% 80% at 0% 0%, ${e===void 0?`transparent`:`color-mix(in srgb, ${e} 7%, transparent)`} 0%, transparent 70%), #17181b`;function O({popover:e,view:t,cardRef:n,onAnswer:r,onView:i,onOpenLink:a,accentHex:s,attached:c=!1,className:u,style:d}){let{t:f}=l();return(e.kind===`approvals`||e.kind===`secret`)&&t!==`expanded`?(0,y.jsx)(`div`,{ref:n,role:`group`,"data-companion-popover":e.kind,className:o(`w-max max-w-[640px] rounded-[22px]`,E,u),style:d,children:(0,y.jsx)(k,{popover:e,onAnswer:r,onView:i})}):(0,y.jsx)(`div`,{ref:n,role:`group`,"data-companion-popover":e.kind,className:o(`flex min-h-0 flex-col gap-3 p-4 text-[var(--content-default)]`,!c&&`rounded-[20px] border border-white/10 shadow-2xl shadow-black/50`,e.kind===`approvals`?`w-max max-w-[640px]`:`w-[360px]`,(e.kind===`microphones`||e.kind===`voices`)&&`gap-2 px-4 pb-3`,u),style:c?d:{background:D(s),...d},children:e.kind===`approvals`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.needsOkCount`,{count:e.items.length}),onClose:()=>i?.(`deferred`)}),(0,y.jsx)(L,{items:e.items,onAnswer:r})]}):e.kind===`secret`?(0,y.jsx)(R,{popover:e,onAnswer:r,onView:i}):e.kind===`microphones`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.microphoneTitle`),onClose:()=>r?.({kind:`dismiss`})}),(0,y.jsx)(S,{popover:e,onAnswer:r})]}):e.kind===`voices`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.voiceTitle`),onClose:()=>r?.({kind:`dismiss`})}),(0,y.jsx)(w,{popover:e,onAnswer:r})]}):(0,y.jsx)(z,{popover:e,onAnswer:r,onOpenLink:a})})}function k({popover:e,onAnswer:t,onView:n,className:r}){let{t:i}=l(),a=e.kind===`approvals`?e.items[0]:void 0,s=e.kind===`approvals`&&e.items.length===1;return(0,y.jsxs)(`div`,{"data-companion-prompt-row":e.kind,className:o(`flex min-h-11 min-w-0 items-center gap-1.5 py-1.5 pr-1.5 text-[var(--content-default)]`,e.kind===`secret`?`pl-2`:`pl-4`,r),children:[e.kind===`secret`?(0,y.jsx)(U,{providerKey:e.providerKey}):null,(0,y.jsx)(P,{className:`min-w-0 flex-1 text-body-medium-default`,maxWidth:A,text:e.kind===`secret`?e.service===``?i(`companionPopover.needsCredentials`):i(`companionPopover.needsCredentialsFor`,{service:e.service}):s&&a!==void 0?a.title:i(`companionPopover.needsOkCount`,{count:e.items.length})}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-1`,children:s&&a!==void 0?(0,y.jsx)(F,{item:a,pill:!0,onAnswer:t}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`secondary`,onClick:()=>n?.(`deferred`),children:i(`companionPopover.notNow`)}),(0,y.jsx)(K,{tone:`primary`,onClick:()=>n?.(`expanded`),children:e.kind===`secret`?i(`companionPopover.enter`):i(`companionPopover.review`)})]})})]})}var A=440,j=400;function M(e,t,n){let r=e.trim().split(/\s+/).filter(e=>e!==``),i=r.length;if(i<2||n(r.join(` `))<=t)return[r.join(` `)];let a=r.map(()=>[]);for(let e=0;e<i;e+=1)for(let t=e+1;t<=i;t+=1)a[e][t]=n(r.slice(e,t).join(` `));let o=(e,t)=>r.slice(e,t).join(` `),s=[];for(let e=0;e<i;){let n=e+1;for(;n<i&&a[e][n+1]<=t;)n+=1;s.push(o(e,n)),e=n}if(s.length<2||i>N)return s;let c=e=>{let n=null;for(let r=i-1;r>=e-1;--r){let o=a[r][i];if(o>t&&r!==i-1)continue;let s=new Map;for(let e=1;e<=r;e+=1)a[0][e]<=o&&s.set(`${e}:0`,{cost:(o-a[0][e])**2,breaks:[0]});for(let t=2;t<=e-1;t+=1){let e=new Map;for(let[t,n]of s){let[i,s]=t.split(`:`).map(Number),c=a[s][i];for(let t=i+1;t<=r;t+=1){let r=a[i][t];if(r<c||r>o)continue;let s=n.cost+(o-r)**2,l=`${t}:${i}`,u=e.get(l);(u===void 0||s<u.cost)&&e.set(l,{cost:s,breaks:[...n.breaks,i]})}}s=e}for(let[e,t]of s){let[i,s]=e.split(`:`).map(Number);i!==r||a[s][i]>o||(n===null||t.cost<n.cost)&&(n={cost:t.cost,breaks:[...t.breaks,r]})}}if(n===null)return null;let r=[...n.breaks,i];return n.breaks.map((e,t)=>o(e,r[t+1]))};for(let e=s.length;e<=i;e+=1){let t=c(e);if(t!==null)return t}return s}var N=48;function P({text:e,maxWidth:t,className:n,title:r}){let i=(0,v.useRef)(null),[a,o]=(0,v.useState)(null);return(0,v.useLayoutEffect)(()=>{let n=i.current;if(n===null)return;let r=!1,a=()=>{if(r)return;let i=document.createElement(`span`);i.style.cssText=`position:absolute;visibility:hidden;white-space:pre;left:0;top:0`,n.appendChild(i);let a=new Map,s=M(e,t,e=>{let t=a.get(e);if(t!==void 0)return t;i.textContent=e;let n=i.getBoundingClientRect().width;return a.set(e,n),n});i.remove(),o(s.length>1?s:null)};return a(),document.fonts?.addEventListener(`loadingdone`,a),document.fonts?.ready.then(a),()=>{r=!0,document.fonts?.removeEventListener(`loadingdone`,a)}},[e,t]),(0,y.jsx)(`span`,{ref:i,dir:`auto`,className:n,title:r,children:a===null?e:a.map((e,t)=>(0,y.jsxs)(`span`,{className:`block whitespace-nowrap`,children:[e,t<a.length-1?` `:null]},t))})}function F({item:e,pill:n,onAnswer:r}){let{t:i}=l(),a=()=>r?.({kind:`deny`,itemId:e.id}),o=()=>r?.({kind:e.permission===void 0?`allow`:`settings`,itemId:e.id});return n?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`negative`,onClick:a,children:i(`companionPopover.deny`)}),(0,y.jsx)(K,{tone:`primary`,onClick:o,children:i(`companionPopover.allow`)})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(t,{variant:`dangerOutline`,onClick:a,children:i(`companionPopover.deny`)}),(0,y.jsx)(t,{variant:`primary`,onClick:o,children:i(`companionPopover.allow`)})]})}function I({title:e,icon:n,emphasis:r=!1,onClose:i}){let{t:a}=l();return(0,y.jsxs)(`div`,{className:`-mt-0.5 -mr-1.5 flex min-h-7 items-center gap-2`,children:[n,(0,y.jsx)(`p`,{dir:`auto`,className:o(`min-w-0 flex-1`,r?`text-title-small leading-snug`:`text-body-small-default text-[var(--content-tertiary)] select-none`),children:e}),(0,y.jsx)(t,{variant:`ghost`,className:`size-7 rounded-lg px-0`,"aria-label":a(`companionPopover.dismiss`),iconOnly:(0,y.jsx)(_,{className:`size-4`,strokeWidth:2}),onClick:i})]})}function L({items:e,onAnswer:t}){return(0,y.jsx)(r,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`ol`,{className:`flex flex-col gap-2`,children:e.map((e,n)=>(0,y.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-[var(--surface-lift)] text-body-medium-default text-[var(--content-tertiary)]`,children:n+1}),(0,y.jsx)(P,{className:`min-w-0 flex-1 pl-1 text-body-medium-default`,maxWidth:j,title:e.detail===``?void 0:e.detail,text:e.title}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-2`,children:(0,y.jsx)(F,{item:e,pill:!1,onAnswer:t})})]},e.id))})})}function R({popover:e,onAnswer:n,onView:i}){let{t:o}=l(),[s,u]=(0,v.useState)(``),d=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=()=>{d.current?.focus()};return e(),window.addEventListener(`focus`,e),()=>{window.removeEventListener(`focus`,e)}},[]),(0,y.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col gap-3`,onSubmit:e=>{e.preventDefault(),s!==``&&n?.({kind:`secret`,value:s})},children:[(0,y.jsx)(I,{icon:(0,y.jsx)(U,{providerKey:e.providerKey}),title:e.service===``?o(`companionPopover.needsCredentials`):o(`companionPopover.needsCredentialsFor`,{service:e.service}),onClose:()=>i?.(`deferred`)}),(0,y.jsx)(r,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.detail===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.detail}),(0,y.jsx)(a,{ref:d,type:`password`,fullWidth:!0,autoComplete:`off`,className:`select-text`,maxLength:c,label:e.label===``?o(`companionPopover.credentialLabel`):e.label,placeholder:e.placeholder,value:s,onChange:e=>{u(e.target.value)}})]})}),(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2`,children:[(0,y.jsx)(t,{variant:`outlined`,onClick:()=>i?.(`deferred`),children:o(`companionPopover.notNow`)}),(0,y.jsx)(t,{variant:`primary`,type:`submit`,disabled:s===``,children:o(`companionPopover.confirm`)})]})]})}function z({popover:e,onAnswer:n,onOpenLink:i}){let{t:a}=l(),[o,s]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{emphasis:!0,title:e.title===``?e.kind===`surface`?a(`companionPopover.surfaceFallback`):``:e.title,onClose:()=>n?.({kind:`dismiss`})}),e.kind===`card`?(0,y.jsxs)(y.Fragment,{children:[e.subtitle===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`-mt-2.5 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e.subtitle}),(0,y.jsx)(r,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.body===``?null:(0,y.jsx)(B,{body:e.body,onOpenLink:i})})}),e.actions.length>0?(0,y.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2`,children:W(e.actions).map(e=>(0,y.jsx)(t,{variant:G(e),disabled:o,onClick:()=>{s(!0),n?.({kind:`action`,actionId:e.id})},children:e.label},e.id))}):null]}):(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,y.jsx)(t,{variant:`primary`,onClick:()=>n?.({kind:`open`}),children:a(`companionPopover.openApp`)})})})]})}function B({body:e,onOpenLink:t}){return(0,y.jsx)(s,{content:e,className:`text-body-medium-lighter text-[var(--content-secondary)] [&_li]:mb-1 [&_ol]:mb-2 [&_ol]:pl-4 [&_p]:mb-2 [&_ul]:mb-2 [&_ul]:pl-4`,linkComponent:(0,v.useCallback)(({href:e,children:n})=>(0,y.jsx)(`a`,{href:e,className:`text-[var(--content-default)] underline decoration-[var(--content-tertiary)] underline-offset-2 hover:decoration-[var(--content-default)]`,onClick:n=>{n.preventDefault(),e!==void 0&&t?.(e)},children:n}),[t]),imageComponent:H,urlTransform:V})}var V=e=>/^data:image\//i.test(e)?e:u(e),H=({src:e,alt:t})=>T(e)?(0,y.jsx)(`img`,{src:e,alt:t,draggable:!1,className:`my-1 max-h-60 w-full rounded-xl object-contain`}):null;function U({providerKey:e}){return e!==void 0&&i(e)?(0,y.jsx)(n,{providerKey:e,displayName:null,logoUrl:null,size:24}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-6 shrink-0 items-center justify-center text-[var(--content-tertiary)]`,children:(0,y.jsx)(h,{className:`size-4`,strokeWidth:2})})}var W=e=>[...e.filter(e=>e.style!==`primary`),...e.filter(e=>e.style===`primary`)],G=e=>{switch(e.style){case`primary`:return`primary`;case`destructive`:return`danger`;case`secondary`:return`outlined`}};function K({tone:e,onClick:n,type:r=`button`,disabled:i,children:a}){return(0,y.jsx)(t,{shape:`pill`,type:r,disabled:i,variant:e===`primary`?`primary`:e===`negative`?`dangerGhost`:`ghost`,className:o(`h-8 px-3`,e===`secondary`&&`bg-[var(--surface-lift)] hover:bg-[var(--surface-active)]`,e===`negative`&&`bg-[var(--system-negative-weak)]`),onClick:n,children:a})}export{k as n,O as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Js as t,Us as n,Zs as r,ac as i,ic as a,lc as o}from"./app-Tg6YU_tZ.js";import{t as s,x as c}from"./react-B9IgSVeK.js";import{n as l}from"./companion-accent-C3xBrXHO.js";import{t as u}from"./companion-popover-STvrRaku.js";var d=e(c(),1),f=s();function p(){let[e,s]=(0,d.useState)(null),c=(0,d.useRef)(null);(0,d.useEffect)(()=>{let e=o(s);return t().then(e=>{e&&s(e)}),e},[]);let p=e?.popover,m=p?.id,h=e?.popoverView??`row`;return(0,d.useLayoutEffect)(()=>{let e=c.current;if(m===void 0||e===null)return;let t=()=>{let{width:t,height:n}=e.getBoundingClientRect();a(m,Math.ceil(t)+24,Math.ceil(n)+24)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[m,h]),p===void 0?null:(0,f.jsx)(`div`,{"data-theme":`dark`,className:`h-screen w-screen bg-transparent select-none`,style:{padding:12},children:(0,f.jsx)(u,{popover:p,view:h,accentHex:l(e?.call??null,e?.accentHex,e?.character)??void 0,cardRef:c,style:{maxHeight:536},onAnswer:e=>{n(e,p.id)},onView:e=>{i(p.id,e)},onOpenLink:e=>{r(e)}},p.id)})}export{p as CompanionPopoverPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Bc as t,Cc as n,Oc as r,Wc as i,jc as a,zc as o}from"./app-CuJb51Ub.js";import{t as s,x as c}from"./react-B9IgSVeK.js";import{n as l}from"./companion-accent-ggBv1xjm.js";import{t as u}from"./companion-popover-CgAs-3Gu.js";var d=e(c(),1),f=s();function p(){let[e,s]=(0,d.useState)(null),c=(0,d.useRef)(null);(0,d.useEffect)(()=>{let e=i(s);return r().then(e=>{e&&s(e)}),e},[]);let p=e?.popover,m=p?.id,h=e?.popoverView??`row`;return(0,d.useLayoutEffect)(()=>{let e=c.current;if(m===void 0||e===null)return;let t=()=>{let{width:t,height:n}=e.getBoundingClientRect();o(m,Math.ceil(t)+24,Math.ceil(n)+24)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[m,h]),p===void 0?null:(0,f.jsx)(`div`,{"data-theme":`dark`,className:`h-screen w-screen bg-transparent select-none`,style:{padding:12},children:(0,f.jsx)(u,{popover:p,view:h,accentHex:l(e?.call??null,e?.accentHex,e?.character)??void 0,cardRef:c,style:{maxHeight:536},onAnswer:e=>{n(e,p.id)},onView:e=>{t(p.id,e)},onOpenLink:e=>{a(e)}},p.id)})}export{p as CompanionPopoverPage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$u as t,Ac as n,Bc as r,Bi as i,Cc as a,Dc as o,Ec as s,Fc as c,Gc as l,Hc as u,Ic as d,JS as f,Kc as p,Mc as m,NS as h,Oc as g,Pc as _,Qu as v,Rc as y,Sc as b,Tc as x,Uc as S,Vc as C,Wc as ee,Yc as te,Zu as w,_c as T,ag as ne,bc as E,bn as D,dg as re,ea as O,ed as k,ig as A,jc as ie,kc as ae,ng as j,og as oe,qc as se,ug as ce,wc as le,yS as ue,yc as de}from"./app-CuJb51Ub.js";import{f as fe,g as pe,j as M}from"./vendor-CYmPHUS2.js";import{t as me,x as he}from"./react-B9IgSVeK.js";import{Ai as ge,Cr as N,Fa as _e,G as ve,Gi as ye,Ji as be,Ka as xe,Ki as Se,Tn as Ce,Wi as we,Xr as Te,Ya as Ee,Yr as De,Zt as P,bt as Oe,h as ke,i as Ae,m as F,qi as je,wn as Me,yn as I}from"./icons-C0wyat6T.js";import{n as Ne}from"./companion-accent-ggBv1xjm.js";import{n as Pe,t as Fe}from"./companion-popover-CgAs-3Gu.js";import{n as Ie,r as Le,t as L}from"./companion-layout-BTsiJq0U.js";var Re=Ee(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),ze=Ee(`screen-share`,[[`path`,{d:`M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3`,key:`i8wdob`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m17 8 5-5`,key:`fqif7o`}],[`path`,{d:`M17 3h5v5`,key:`1o3tu8`}]]),Be=Ee(`slash`,[[`path`,{d:`M22 2 2 22`,key:`y4kqgn`}]]),R=e(he(),1),z=me(),Ve=460,He=3,Ue=88,We=3,Ge=[`screens`,`tabs`,`windows`],Ke=(e,t)=>t===`screens`?e.displays.length:t===`tabs`?e.tabs.length:e.windows.length,qe=e=>Ge.find(t=>Ke(e,t)>0)??`screens`,Je=e=>e.kind===`display`?`display-${e.displayId}`:`window-${e.windowId}`;function Ye({sources:e,captureThumbnail:t,cardGrowth:n=`up`,side:r,avatarBox:i=j,optionsBox:a=j,cardRef:o,label:s,onPick:c,onAllowScreenRecording:l}){let{t:u}=M(),{inUnits:d,lineAt:p,edgeAt:m,introStepOff:g,gap:_}=L(i,a),v=d(g(n)),y=r===void 0?{left:`50%`,top:p(n,0),transform:n===`up`?`translate(-50%, calc(-100% - ${v}px))`:`translate(-50%, ${v}px)`}:{...m(r,re(i,a)+_),top:`50%`,transform:`translateY(-50%)`},b=e!==null&&e.screenRecordingGranted===!1,x=b?null:e,S=x===null?[]:Ge.filter(e=>Ke(x,e)>0),C=x!==null&&S.length===0,[ee,te]=(0,R.useState)(null),w=x===null?`screens`:ee!==null&&S.includes(ee)?ee:qe(x),T=(0,R.useMemo)(()=>x===null?[]:w===`screens`?x.displays.map(e=>{let t={kind:`display`,displayId:e.displayId};return{key:Je(t),target:t}}):w===`windows`?x.windows.map(e=>{let t={kind:`window`,windowId:e.windowId};return{key:Je(t),target:t}}):[],[w,x]),[ne,E]=(0,R.useState)(new Map),D=(0,R.useRef)(new Set),O=(0,R.useRef)(0),k=(0,R.useRef)(!1);(0,R.useEffect)(()=>(k.current=!0,()=>{k.current=!1}),[]),(0,R.useEffect)(()=>{D.current=new Set,O.current+=1,E(new Map),te(null)},[e]);let A=(0,R.useRef)(null);(0,R.useEffect)(()=>{A.current!==null&&(A.current.scrollTop=0)},[w]),(0,R.useEffect)(()=>{if(t!==void 0)for(let{key:e,target:n}of T){if(D.current.has(e))continue;D.current.add(e);let r=O.current,i=t=>{!k.current||r!==O.current||E(n=>new Map(n).set(e,t))};t(n).then(i,()=>{i(null)})}},[t,T]);let ie=e=>t===void 0?null:ne.get(e),ae=e=>u(e===`screens`?`companionSurface.captureScreens`:e===`tabs`?`companionSurface.captureTabs`:`companionSurface.captureWindows`);return(0,z.jsxs)(`div`,{ref:o,role:`group`,"aria-label":s??u(`companionSurface.capturePicker`),"data-companion-capture-picker":!0,"data-theme":`dark`,className:`absolute flex flex-col rounded-2xl border border-white/10 bg-[#17181b]/95 p-1.5 shadow-lg shadow-black/40`,style:{width:Ve,...y},onPointerDown:e=>{e.stopPropagation()},children:[S.length>1&&(0,z.jsx)(ue,{className:`mx-auto mb-1.5 w-auto shrink-0`,items:S.map(e=>({value:e,label:ae(e)})),value:w,ariaLabel:u(`companionSurface.captureKind`),onChange:te}),(0,z.jsx)(h,{ref:A,className:`max-h-48 flex-col px-0.5`,size:24,fadeEdges:`end`,hideScrollBar:!0,children:(0,z.jsxs)(`div`,{className:`flex flex-col`,"data-slot":`capture-sources`,children:[e===null&&(0,z.jsx)(B,{}),b&&(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-2 py-2`,"data-slot":`capture-needs-grant`,children:[(0,z.jsx)(`span`,{className:`text-[12px] text-white/70`,children:u(`companionSurface.captureScreenRecordingOff`)}),(0,z.jsx)(f,{variant:`primary`,size:`compact`,className:`shrink-0`,onClick:l,children:u(`companionSurface.captureTurnOnScreenRecording`)})]}),x!==null&&w===`screens`&&(0,z.jsx)(Xe,{children:x.displays.map(e=>{let t=u(`companionSurface.captureScreen`,{n:e.index+1}),n=Je({kind:`display`,displayId:e.displayId});return(0,z.jsx)(Ze,{title:t,ariaLabel:t,answer:ie(n),fallback:(0,z.jsx)(I,{className:`size-5 text-white/40`,"aria-hidden":!0}),onClick:()=>{c?.({kind:`display`,displayId:e.displayId})}},n)})}),x!==null&&w===`windows`&&(0,z.jsx)(Xe,{children:x.windows.map(e=>{let t=Je({kind:`window`,windowId:e.windowId}),n=e.title===``?e.app:e.title;return(0,z.jsx)(Ze,{title:n,ariaLabel:e.title===``?n:`${n} (${e.app})`,answer:ie(t),fallback:(0,z.jsx)($e,{icon:e.icon,large:!0}),icon:(0,z.jsx)($e,{icon:e.icon}),onClick:()=>{c?.({kind:`window`,windowId:e.windowId})}},t)})}),x!==null&&w===`tabs`&&(0,z.jsx)(`div`,{className:`flex flex-col`,children:x.tabs.map(e=>(0,z.jsx)(Qe,{icon:(0,z.jsx)($e,{icon:e.icon}),title:e.title,onClick:()=>{c?.({kind:`tab`,chromeWindowId:e.chromeWindowId,tabIndex:e.tabIndex})}},`tab-${e.chromeWindowId}-${e.tabIndex}`))}),C&&(0,z.jsx)(`span`,{className:`px-2 py-3 text-[12px] text-white/50`,children:u(`companionSurface.captureNothing`)})]})})]})}function Xe({children:e}){return(0,z.jsx)(`div`,{className:`grid gap-1.5 py-0.5`,style:{gridTemplateColumns:`repeat(${He}, minmax(0, 1fr))`},children:e})}function Ze({title:e,ariaLabel:t,answer:n,fallback:r,icon:i,onClick:a}){return(0,z.jsxs)(`button`,{type:`button`,"aria-label":t,"data-slot":`capture-source`,className:`group flex min-w-0 flex-col gap-1 rounded-lg p-1 text-left transition-colors outline-none hover:bg-white/10 focus-visible:ring-1 focus-visible:ring-white/40 focus-visible:ring-inset active:bg-white/15`,onClick:a,children:[(0,z.jsx)(`span`,{"data-slot":`capture-preview`,className:`flex items-center justify-center overflow-hidden rounded-md bg-black/40 ring-1 ring-white/10 ${n===void 0?`animate-pulse`:``}`,style:{height:Ue},children:n==null?r:(0,z.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`max-h-full max-w-full object-contain`})}),(0,z.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[i,(0,z.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] text-white/75 group-hover:text-white/90`,children:e})]})]})}function Qe({icon:e,title:t,onClick:n}){return(0,z.jsxs)(`button`,{type:`button`,"aria-label":t,"data-slot":`capture-source`,className:`flex h-8 w-full shrink-0 items-center gap-2 rounded-lg px-2 text-left text-[12px] text-white/85 transition-colors outline-none hover:bg-white/10 focus-visible:ring-1 focus-visible:ring-white/40 focus-visible:ring-inset active:bg-white/15`,onClick:n,children:[e,(0,z.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t})]})}function $e({icon:e,large:t=!1}){return(0,z.jsx)(`span`,{className:`flex shrink-0 items-center justify-center overflow-hidden ring-1 ring-white/10 ${t?`size-7 rounded-lg`:`size-3.5 rounded-[4px]`}`,children:e===void 0?(0,z.jsx)(xe,{className:t?`size-5 text-white/40`:`size-3 text-white/70`,"aria-hidden":!0}):(0,z.jsx)(`img`,{src:e,alt:``,className:`size-full`,draggable:!1})})}function B(){return(0,z.jsx)(Xe,{children:Array.from({length:We},(e,t)=>(0,z.jsxs)(`div`,{className:`flex flex-col gap-1 p-1`,"aria-hidden":!0,children:[(0,z.jsx)(`span`,{className:`animate-pulse rounded-md bg-white/10`,style:{height:Ue}}),(0,z.jsx)(`span`,{className:`h-2 animate-pulse rounded-full bg-white/10`,style:{width:t===0?`70%`:`45%`}})]},t))})}function et(e){return e===`paste-failed`?`companionSurface.offerPasteFailed`:`companionSurface.offerNowhere`}var tt=260;function nt({offer:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=j,optionsBox:i=j,cardRef:a,onAnswer:o}){let{t:s}=M(),c=e.reason===`claimed`?s(`companionSurface.offerVersion`):s(et(e.reason)),{inUnits:l,avatarHalf:u,lineAt:d,edgeAt:f,introStepOff:p}=L(r,i),m=l(p(n)),g=f(t,-u),_={top:d(n,0),transform:n===`up`?`translateY(calc(-100% - ${m}px))`:`translateY(${m}px)`};return(0,z.jsxs)(`div`,{ref:a,role:`group`,"aria-label":c,"data-companion-dictation-offer":!0,className:`absolute flex flex-col gap-2 rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:tt,...g,..._},onPointerDown:e=>{e.stopPropagation()},children:[(0,z.jsx)(`p`,{className:`text-[11px] font-medium tracking-wide text-white/45 uppercase select-none`,children:c}),(0,z.jsx)(h,{className:`max-h-40 flex-col`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,z.jsx)(`p`,{dir:`auto`,className:`text-[13px] leading-[1.45] text-white/90`,children:e.text})}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-1 pt-0.5`,children:[(0,z.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/55 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>o?.(`dismiss`),children:e.reason===`claimed`?s(`companionSurface.notNow`):s(`companionSurface.offerDiscard`)}),e.reason===`claimed`?(0,z.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/70 transition-colors hover:bg-white/10 hover:text-white`,onClick:()=>o?.(`quit`),children:s(`companionSurface.offerQuit`,{app:e.app})}):null,(0,z.jsx)(`button`,{type:`button`,className:`h-7 rounded-full bg-white/15 px-3 text-[12px] text-white transition-colors hover:bg-white/25`,onClick:()=>o?.(e.reason===`claimed`?`use`:`copy`),children:e.reason===`claimed`?s(`companionSurface.offerUse`):s(`companionSurface.offerCopy`)})]})]})}var V=e=>e.filter(e=>e.state===`running`),H=e=>e.filter(e=>e.state===`waiting`),U=e=>({"--companion-ring-accent":e});function W({size:e,still:t=!1}){return(0,z.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 16 16`,className:`shrink-0 ${t?``:`companion-work-spin`}`,"aria-hidden":!0,children:[(0,z.jsx)(`circle`,{cx:`8`,cy:`8`,r:`6`,fill:`none`,stroke:`var(--companion-ring-accent)`,strokeOpacity:`0.2`,strokeWidth:`2`}),(0,z.jsx)(`circle`,{cx:`8`,cy:`8`,r:`6`,fill:`none`,stroke:`var(--companion-ring-accent)`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:t?void 0:`10 28`,strokeOpacity:t?.6:void 0})]})}function G({state:e}){return e===`done`?(0,z.jsx)(be,{className:`companion-work-pop size-3.5 shrink-0 text-[var(--companion-ring-accent)]`,"aria-hidden":!0}):(0,z.jsx)(Ae,{className:`companion-work-pop size-3.5 shrink-0 text-white/50`,"aria-hidden":!0})}function rt(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function it(){let[e,t]=(0,R.useState)(()=>Date.now());return(0,R.useEffect)(()=>{let e=window.setInterval(()=>{t(Date.now())},1e3);return()=>{window.clearInterval(e)}},[]),e}function K({work:e,accentHex:t}){let{t:n}=M(),r=it(),i=e.slice(0,5),a=e.length-i.length;return(0,z.jsxs)(`div`,{className:`flex w-full min-w-[300px] flex-col gap-1.5 px-4 py-3 text-[12px] text-white/85`,style:U(t),"data-companion-work-shelf":!0,children:[i.map(e=>(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.state===`running`||e.state===`waiting`?(0,z.jsx)(W,{size:14,still:e.state===`waiting`}):(0,z.jsx)(G,{state:e.state}),(0,z.jsx)(`span`,{className:`max-w-[55%] shrink-0 truncate font-medium ${e.state===`done`||e.state===`failed`?`text-white/55`:``}`,children:e.title}),(0,z.jsx)(`span`,{className:`companion-work-fade min-w-0 flex-1 truncate text-white/50`,children:e.state===`running`?e.step:e.state===`waiting`?n(`companionSurface.workWaitingStep`):e.state===`done`?n(`companionSurface.workDone`):n(`companionSurface.workStopped`)},e.state===`running`?e.step:e.state),e.kind===`subagent`?(0,z.jsx)(`span`,{className:`shrink-0 text-[11px] text-white/40 tabular-nums`,children:rt(r-e.startedAt)}):null]},e.id)),a>0?(0,z.jsx)(`div`,{className:`pl-[22px] text-[11px] text-white/40`,children:n(`companionSurface.workMore`,{count:a})}):null]})}var at={min:3,max:10},q=(e=Math.random)=>{let t=e();return t<1/3?`top`:t<2/3?`topLeft`:`topRight`},J=1600,ot=.22,st=.04,ct=4,lt=(e,t)=>{let n=Math.min(.95,Math.max(.25,e.eyeCenterFrac+e.eyeHalfFrac+st)),r=Math.min(t,24,14/n),i=r*n;return{size:r,exposed:i,clip:{width:r+2*ct,height:i+ct},rest:i+2}},ut=(e,t=Math.random)=>(e.min+t()*(e.max-e.min))*1e3;function dt(e,t=at){let[n,r]=(0,R.useState)(0),{min:i,max:a}=t;return(0,R.useEffect)(()=>{if(!e)return;let t,n=()=>{t=setTimeout(()=>{r(e=>e+1),n()},ut({min:i,max:a}))};return n(),()=>{clearTimeout(t)}},[e,i,a]),n}var ft=(e,t,n={width:0,height:0})=>{let r=e===`topLeft`?n.width/4:e===`topRight`?n.width*3/4:n.width/2;return{slot:{width:t.width,height:t.height,bottom:`100%`,left:r-t.width/2}}};function Y({character:e,capsule:t,enabled:n,held:r=!1,edge:a,interval:o=at,className:s,style:c}){let l=fe(),u=(0,R.useMemo)(()=>D(O,e),[e]),d=dt(n&&!r&&!l&&u!==null,o),[f,p]=(0,R.useState)(!1),[m,h]=(0,R.useState)(`top`);if((0,R.useEffect)(()=>{if(d===0)return;h(q()),p(!0);let e=setTimeout(()=>{p(!1)},J);return()=>{clearTimeout(e)}},[d]),u===null||l)return null;let g=lt(u,t.width),_=r||f,v=a??m,y=ft(v,g.clip,t);return(0,z.jsx)(`div`,{className:`companion-peek ${s??``}`,style:{width:t.width,height:t.height,...c},"data-risen":_,"data-edge":v,"aria-hidden":!0,children:(0,z.jsx)(`div`,{className:`absolute`,style:y.slot,children:(0,z.jsx)(`div`,{className:`absolute inset-0 overflow-hidden`,children:(0,z.jsx)(pe.div,{className:`absolute left-1/2`,style:{width:g.size,height:g.size,marginLeft:-g.size/2,top:g.clip.height-g.exposed},initial:{y:g.rest},animate:{y:_?0:g.rest},transition:r?{duration:0}:_?{type:`spring`,stiffness:280,damping:14}:{duration:ot,ease:`easeIn`},children:(0,z.jsx)(i,{components:O,traits:e,size:g.size})})})})})}var pt=(0,R.createContext)(`above`),mt=`#5eead4`,ht=new Set([`transcribing`,`thinking`,`speaking`]),gt=28,X={idle:{width:64,height:14},closing:gt,rim:2,bloom:4},_t=X.idle,vt=(e,t,n)=>[`inset 0 0 0 ${t}px color-mix(in srgb, ${e} 78%, transparent)`,`0 0 ${n}px color-mix(in srgb, ${e} 85%, transparent)`,`0 0 ${n*4}px color-mix(in srgb, ${e} 42%, transparent)`,`0 8px 24px rgba(0, 0, 0, 0.45)`].join(`, `),yt=244,bt=200,xt=120,Z={watching:40,summary:220,dictating:yt+32,offer:bt+32,call:4+xt+180},St=84,Ct={width:28,height:St+140+20};function wt({phase:e,assistantName:t=``,accentHex:n=mt,avatarSrc:r,character:i,hovered:a=!1,growth:o=`right`,avatarBox:s=j,optionsBox:c=j,cardGrowth:l=`up`,dock:u=`bottom`,rootRef:d,restingPillRef:f,avatarRef:p,onSurfacePointerDown:m,onSurfaceContextMenu:h,spotlight:g,avatarStaged:_=!1,avatarTucked:v=!1,onWatch:y,onTeach:b,picking:x=!1,sharing:S=!1,shareEnabled:C=!1,sharePicking:ee=!1,onShare:te,onStopShare:w,annotating:T=!1,annotationTool:ne,onAnnotationTool:E,drawToolsRef:D,onAnnotate:re,marked:O=!1,onClearMarks:k,openPicker:A,voicesPickable:ie=!1,onPicker:ae,shortcuts:oe,onAvatarClick:se,working:ce=!1,watching:le=!1,watchRetro:ue,onWatchRetro:de,dictationOffer:pe,offer:me,watchEnabled:he=!1,dictating:ge,dictationText:N=``,call:_e,onControl:ve,intro:ye,picker:be,prompt:xe,promptRef:Se,promptsDeferred:Ce=0,onReviewPrompts:we,onWorkShelfChange:Te}){let{t:Ee}=M(),De=e===`call`?_e?.work:void 0,P=De!==void 0&&De.length>0,[Oe,ke]=(0,R.useState)(!1);(0,R.useEffect)(()=>{P||ke(!1)},[P]);let Ae=u===`left`||u===`right`?void 0:xe,F=Ae==null?Oe&&P:!1;(0,R.useEffect)(()=>{Te?.(F)},[Te,F]);let je=(0,R.useMemo)(()=>Ae??(Oe&&P?(0,z.jsx)(K,{work:De,accentHex:n}):void 0),[Ae,Oe,P,De,n]),Me=e!==`resting`,I=e===`call`||e===`dictating`||e===`offer`||e===`summary`||e===`watching`,Ne=(0,R.useRef)(null),[Pe,Fe]=(0,R.useState)(null),Ie=g===`talk`?void 0:g;(0,R.useEffect)(()=>{if(Ie===void 0){Fe(null);return}return Dt(Ne,`[data-control="${Ie}"]`,e=>{Fe(e.x)})},[Ie,e,S]);let[Le,Re]=(0,R.useState)(null);(0,R.useEffect)(()=>{if(!_){Re(null);return}return Dt(Ne,`[data-avatar-stage]`,Re)},[_,e]);let[ze,Be]=(0,R.useState)(!1);(0,R.useEffect)(()=>{if(e!==`hover`){Be(!1);return}let t=setTimeout(()=>{Be(!0)},500);return()=>{clearTimeout(t)}},[e]);let Ve=ye==null?g===`talk`||e===`hover`&&ze:!1,He=ue===`pending`,Ue=ce||_e!==void 0&&ht.has(_e.phase),We=fe(),Ge=(0,R.useRef)(null),[Ke,qe]=(0,R.useState)(null),Je=(0,R.useRef)({width:0,height:0});(0,R.useLayoutEffect)(()=>{let e=Ge.current;if(!e)return;let t=()=>{qe({width:e.scrollWidth-Je.current.width,height:e.scrollHeight-Je.current.height})};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let{scale:Ye,avatarRel:Xe,avatarHalf:Ze,baseline:Qe,gap:$e,inUnits:B,lineAt:et,edgeAt:tt}=L(s,c),nt=e===`call`,V=nt&&(u===`left`||u===`right`),H=V?u===`left`?`right`:`left`:`above`,U=I?V?(Ke?.width??Ct.width)+16:(Ke?.width??Z[e])+16:0,W=I?(Ke?.height??Ct.height)+16:0,G=nt&&je!=null,rt=(0,R.useRef)(null),[it,at]=(0,R.useState)({width:0,height:0});(0,R.useLayoutEffect)(()=>{let e=rt.current;if(!G||e===null)return;let t=()=>{let t=e.getBoundingClientRect();at({width:Math.ceil(t.width/Ye),height:Math.ceil(t.height/Ye)})};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[G,je,Ye]);let q=G&&!V?Math.max(U,it.width):U,J=G&&V?Math.max(W,it.height):W,ot=V?J-W:q-U;(0,R.useLayoutEffect)(()=>{Je.current=V?{width:0,height:ot}:{width:ot,height:0}},[ot,V]);let st=V?`50%`:et(l,0),ct=tt(o,Ze+$e),lt=s/j,ut=Me?{width:X.closing*lt,height:X.closing*lt}:X.idle,dt=ye!=null,ft=nt?{width:q,...V?{height:J}:{},left:`50%`,top:st,transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`}:{width:U,...ct,top:et(l,Qe),transform:`translateY(-100%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`},Y=Le===null?Pe!==null&&!V?`${Pe}px`:nt&&!V?`calc(50% - ${q/2+B(Ze+$e)}px)`:`50%`:`${Le.x}px`,gt=Le===null?Pe!==null&&!V?`calc(${st} - ${B(Ze+$e)+22}px)`:V?`calc(50% - ${W/2+B(Ze+$e)}px)`:st:`${Le.y}px`;return(0,z.jsxs)(`div`,{ref:Ne,className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100/Ye}%`,height:`${100/Ye}%`,transform:`scale(${Ye})`},children:[G?(0,z.jsx)(It,{dock:u,top:st,width:V?it.width:q,height:J,barThickness:V?U:44,accentHex:n,lit:I,promptRef:Se,children:je}):null,G?(0,z.jsx)(`div`,{ref:rt,inert:!0,"aria-hidden":!0,"data-theme":`dark`,className:`pointer-events-none invisible absolute top-0 left-0 w-max ${V?`max-w-[400px]`:`max-w-[640px]`}`,children:je}):null,(0,z.jsxs)(`div`,{className:`absolute flex cursor-grab items-center rounded-full duration-300 select-none active:cursor-grabbing ${V?`flex-col transition-[width,height] will-change-[width,height]`:`h-11 transition-[width] will-change-[width]`} ${!nt&&o===`left`?`justify-end`:``}`,style:ft,onPointerDown:m,onContextMenu:h,ref:d,children:[(0,z.jsx)(`span`,{className:`absolute inset-0 rounded-full transition-opacity duration-200 ${G?`bg-[#17181b]`:`border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40`}`,style:{opacity:+!!I},"aria-hidden":!0}),nt&&(0,z.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 rounded-full transition-opacity duration-200`,style:{opacity:I&&!G?1:0,"--companion-ring-accent":n},"aria-hidden":!0}),(0,z.jsx)(`div`,{className:`relative flex shrink-0 items-center ${V?`flex-col`:`h-11`}`,style:V?{paddingBlock:8,paddingInline:8}:{paddingInline:8},children:(0,z.jsx)(`div`,{className:`flex items-center gap-1 overflow-hidden transition-opacity duration-200 ${V?`min-h-0 flex-col`:`min-w-0`}`,ref:Ge,inert:!I,style:{opacity:+!!I,transitionDelay:I?`120ms`:`0ms`},children:e===`call`?(0,z.jsx)(pt.Provider,{value:H,children:(0,z.jsx)(Rt,{call:_e,assistantName:t,spotlight:g,watching:le,watchEnabled:he,picking:x,sharing:S,shareEnabled:C,sharePicking:ee,annotating:T,marked:O,annotationTool:ne,vertical:V,drawToolsPlacement:V?u===`left`?`right`:`left`:l===`up`?`above`:`below`,drawToolsRef:D,onAnnotationTool:E,onControl:ve,onWatch:y,onTeach:b,onShare:te,onStopShare:w,onAnnotate:re,onClearMarks:k,openPicker:A,voicesPickable:ie,onPicker:ae,pickerSide:V?u===`left`?`right`:`left`:u===`top`?`below`:`above`,shortcuts:oe,promptsDeferred:Ce,lineExtra:ot,onReviewPrompts:we,accentHex:n,workShelfOpen:F,onToggleWorkShelf:()=>{ke(e=>!e)}})}):e===`dictating`&&ge!==void 0?(0,z.jsx)(jt,{dictating:ge,dictationText:N}):e===`summary`&&ue!==void 0?(0,z.jsx)(Ft,{retro:ue,onWatchRetro:de}):e===`offer`&&pe!==void 0?(0,z.jsx)(Mt,{offer:pe}):(0,z.jsx)(Nt,{watching:le,onWatch:y})})})]}),(0,z.jsx)(`div`,{className:`absolute cursor-grab active:cursor-grabbing`,style:{width:B(X.idle.width),height:B(X.idle.height),pointerEvents:Me?`none`:void 0,left:`50%`,top:st,transform:`translate(-50%, -50%)`},onPointerDown:m,onContextMenu:h,ref:f,"aria-hidden":!0,children:(0,z.jsx)(`div`,{className:`absolute top-1/2 left-1/2 rounded-full transition-[width,height,opacity] duration-300`,style:{width:B(ut.width),height:B(ut.height),transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:We?`opacity`:void 0,boxShadow:vt(n,B(X.rim),B(X.bloom)),opacity:Me||Le!==null||dt&&!v?0:1}})}),(0,z.jsx)(kt,{className:Ve?`opacity-100`:`opacity-0`,"data-companion-name":Ve?`shown`:`hidden`,style:{left:`50%`,top:st,transform:`translate(-50%, calc(-100% - ${B(Ze)}px - ${Ot}px))`},label:Ee(`companionSurface.talk`)}),(0,z.jsx)(At,{label:Ee(e===`call`?`companionSurface.openVellum`:`companionSurface.talk`),accentHex:n,avatarSrc:r,character:i,attentive:a,busy:Ue||le||He,collapsed:!Me&&(!dt||v),restingScale:j/s,style:{left:Y,top:gt,zIndex:Le===null?void 0:2,transform:`translate(-50%, -50%)${Xe===1?``:` scale(${Xe})`}`,transition:We?void 0:Pe===null&&Le===null?`left 300ms cubic-bezier(.2,.8,.2,1), top 300ms cubic-bezier(.2,.8,.2,1)`:`left 420ms cubic-bezier(.34,1.56,.64,1), top 420ms cubic-bezier(.34,1.56,.64,1)`},elementRef:p,onPointerDown:m,onContextMenu:h,onClick:se}),ye,be,me]})}var Tt=`rgba(28, 28, 30, 0.55)`,Et=`backdrop-blur-md backdrop-saturate-150`,Dt=(e,t,n)=>{let r=0,i=performance.now(),a=()=>{let o=e.current,s=o?.querySelector(t);if(o&&s){let e=o.getBoundingClientRect(),t=s.getBoundingClientRect(),r=e.width===0?1:o.offsetWidth/e.width;n({x:(t.left+t.width/2-e.left)*r,y:(t.top+t.height/2-e.top)*r})}performance.now()-i<500&&(r=requestAnimationFrame(a))};return a(),()=>{cancelAnimationFrame(r)}},Ot=4;function kt({className:e,style:t,label:n,shortcut:r,beak:i=`down`,...a}){return(0,z.jsxs)(`span`,{className:`pointer-events-none absolute rounded-md px-2 py-1 text-[11px] leading-4 font-medium whitespace-nowrap text-white/90 shadow-md shadow-black/30 transition-opacity duration-200 ${Et} ${e}`,style:{...t,backgroundColor:Tt},"aria-hidden":!0,...a,children:[n,r===void 0?null:(0,z.jsx)(`span`,{className:`ml-1.5 font-normal text-white/60`,"data-shortcut":!0,children:r}),(0,z.jsx)(`span`,{className:`absolute ${i===`down`?`top-full left-1/2 h-1.5 w-2.5 -translate-x-1/2`:i===`left`?`top-1/2 right-full h-2.5 w-1.5 -translate-y-1/2`:`top-1/2 left-full h-2.5 w-1.5 -translate-y-1/2`} ${Et}`,style:{backgroundColor:Tt,clipPath:i===`down`?`polygon(0 0, 100% 0, 50% 100%)`:i===`left`?`polygon(100% 0, 100% 100%, 0 50%)`:`polygon(0 0, 0 100%, 100% 50%)`},"aria-hidden":!0})]})}function At({accentHex:e,avatarSrc:t,character:n,busy:r=!1,attentive:a=!1,collapsed:o=!1,restingScale:s=1,label:c,style:l,elementRef:u,onPointerDown:d,onContextMenu:f,onClick:p}){let m=fe();return(0,z.jsxs)(`div`,{role:`button`,"aria-label":c,className:`absolute grid size-11 cursor-grab place-items-center active:cursor-grabbing`,style:l,ref:u,onPointerDown:d,onContextMenu:f,onClick:p,children:[n===void 0?null:(0,z.jsx)(Y,{character:n,capsule:_t,enabled:o&&!r,className:`absolute top-1/2 left-1/2 transition-opacity duration-200`,style:{transform:`translate(-50%, -50%) scale(${s})`,opacity:+!!o}}),(0,z.jsx)(`div`,{className:`transition-[opacity,transform] duration-300`,style:{opacity:+!o,transform:o?`scale(0.35)`:`scale(1)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:m?`opacity`:void 0},children:(0,z.jsx)(`div`,{className:`companion-avatar-bob relative grid place-items-center`,style:{animation:m?`none`:void 0},children:n===void 0?t===void 0?(0,z.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:e},"aria-hidden":!0}):(0,z.jsx)(`img`,{src:t,alt:``,draggable:!1,className:`relative size-7 rounded-full object-contain drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)] [-webkit-user-drag:none]`}):(0,z.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,z.jsx)(i,{components:O,traits:n,size:gt,isAssistantBusy:r,attentive:a})})})})]})}function jt({dictating:e,dictationText:t}){let{t:n}=M(),r=t.trim();return(0,z.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,z.jsx)(_e,{className:`size-4 shrink-0`,"aria-hidden":!0}),r?(0,z.jsx)(`span`,{dir:`auto`,className:`flex justify-end overflow-hidden text-[12px] whitespace-nowrap text-white/85`,style:{width:yt},children:(0,z.jsx)(`span`,{className:`shrink-0`,children:r})}):(0,z.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:yt},children:n(e===`listening`?`companionSurface.dictating`:`companionSurface.dictatingTranscribing`)})]})}function Mt({offer:e}){let{t}=M();return(0,z.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,z.jsx)(_e,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,z.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:bt},children:e.reason===`claimed`?t(`companionSurface.offerHeard`,{app:e.app}):t(et(e.reason))})]})}function Nt({watching:e=!1,onWatch:t}){return(0,z.jsx)(z.Fragment,{children:e&&(0,z.jsx)(Wt,{onWatch:t})})}function Pt({watching:e,watchEnabled:t,picking:n,dimmed:r,onWatch:i,onTeach:a}){let{t:o}=M();return t?(0,z.jsx)($,{icon:(0,z.jsx)(De,{className:`size-4`}),label:o(`companionSurface.teach`),dimmed:r,pressed:e||n,onClick:e?i:a??i}):e?(0,z.jsx)(Wt,{onWatch:i}):null}function Ft({retro:e,onWatchRetro:t}){let{t:n}=M();return e===`pending`?(0,z.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:n(`companionSurface.summarizing`)}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)($,{icon:(0,z.jsx)(Oe,{className:`size-4`}),label:n(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{t?.(!0)}}),(0,z.jsx)($,{icon:(0,z.jsx)(Ae,{className:`size-4`}),label:n(`companionSurface.notNow`),showLabel:!0,onClick:()=>{t?.(!1)}})]})}function It({dock:e,top:t,width:n,height:r,barThickness:i,accentHex:a,lit:o,promptRef:s,children:c}){let l=i/2,u=e===`top`?`below`:e===`left`?`right`:e===`right`?`left`:`above`,d=u===`left`||u===`right`,f=d?{left:`50%`,top:t,width:n+l,height:r,transform:u===`right`?`translate(0, -50%)`:`translate(-100%, -50%)`,[u===`right`?`paddingLeft`:`paddingRight`]:l}:{left:`50%`,top:t,width:n,transform:u===`below`?`translate(-50%, 0)`:`translate(-50%, -100%)`,[u===`below`?`paddingTop`:`paddingBottom`]:l},p={above:`rounded-t-[22px]`,below:`rounded-b-[22px]`,left:`rounded-l-[22px]`,right:`rounded-r-[22px]`}[u];return(0,z.jsxs)(`div`,{ref:s,"data-theme":`dark`,"data-shelf-side":u,className:`absolute`,style:f,onPointerDown:e=>{e.stopPropagation()},children:[(0,z.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-0 bg-[#17181b] shadow-lg shadow-black/40 ${p}`}),(0,z.jsx)(`span`,{"aria-hidden":!0,className:`absolute bg-white/10 ${d?`top-4 bottom-4 w-px`:`right-4 left-4 h-px`}`,style:{[Lt[u]]:l}}),(0,z.jsx)(`span`,{"aria-hidden":!0,className:`companion-working-ring pointer-events-none absolute transition-opacity duration-200`,style:{left:-2,right:-2,top:-2,bottom:-2,[Lt[u]]:-(l+2),borderRadius:24,opacity:+!!o,"--companion-ring-accent":a}}),(0,z.jsx)(`div`,{className:`relative`,children:c})]})}var Lt={above:`bottom`,below:`top`,left:`right`,right:`left`};function Rt({call:e,assistantName:t,spotlight:n,watching:r,watchEnabled:i,picking:a,sharing:o,shareEnabled:s,sharePicking:c,annotating:l,marked:u,annotationTool:d,vertical:f,drawToolsPlacement:p,drawToolsRef:m,onAnnotationTool:h,onControl:g,onWatch:_,onTeach:v,onShare:y,onStopShare:b,onAnnotate:x,onClearMarks:S,openPicker:C,voicesPickable:ee,onPicker:te,pickerSide:w,shortcuts:T,promptsDeferred:ne=0,onReviewPrompts:E,lineExtra:D=0,accentHex:re,workShelfOpen:O,onToggleWorkShelf:k}){let{t:A}=M();if(e===void 0)return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(zt,{vertical:f,extra:D,text:t===``?A(`companionSurface.calling`):A(`companionSurface.callingNamed`,{name:t})}),(0,z.jsx)(Pt,{watching:r,watchEnabled:i,picking:a,onWatch:_,onTeach:v}),(0,z.jsx)(Ut,{onControl:g})]});let ie=e.work===void 0&&e.detail||e.label,{muted:ae,outputMuted:j}=e,oe=e.assistantName;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(zt,{vertical:f,extra:D,text:ie}),e.work!==void 0&&e.work.length>0?(0,z.jsx)(Jt,{work:e.work,accentHex:re,open:O,onToggle:k}):null,ne>0?(0,z.jsx)(`button`,{type:`button`,"data-theme":`dark`,"aria-label":A(`companionPopover.pendingBadge`,{count:ne}),className:`flex size-7 shrink-0 items-center justify-center rounded-full bg-[var(--system-negative-weak)] text-[13px] text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-hover)] hover:text-white`,onPointerDown:e=>{e.stopPropagation()},onClick:()=>{E?.()},children:ne}):null,(0,z.jsx)(Pt,{watching:r,watchEnabled:i,picking:a,dimmed:n!==void 0,onWatch:_,onTeach:v}),(0,z.jsx)(Q,{sharing:o,shareEnabled:s,sharePicking:c,shortcut:s?T?.share:void 0,spotlit:n===`share`,dimmed:n!==void 0&&n!==`share`,onShare:y,onStopShare:b}),(0,z.jsx)(Bt,{sharing:o,annotating:l,spotlit:n===`draw`,dimmed:n!==void 0&&n!==`draw`,shortcut:s?T?.draw:void 0,tool:d,placement:p,toolsRef:m,onAnnotate:x,onTool:h}),(0,z.jsx)(Ht,{sharing:o,marked:u,dimmed:n!==void 0,onClearMarks:S}),(0,z.jsx)($,{icon:ae?(0,z.jsx)(Ce,{className:`size-4`}):(0,z.jsx)(Me,{className:`size-4`}),label:A(ae?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),shortcut:T?.muteMicrophone,control:`mute`,spotlit:n===`mute`,dimmed:n!==void 0&&n!==`mute`,onClick:()=>{g?.(ae?`unmuteMicrophone`:`muteMicrophone`)}}),(0,z.jsx)(Xt,{picker:`microphones`,label:A(`companionSurface.chooseMicrophone`),side:w,open:C===`microphones`,onPicker:te}),(0,z.jsx)($,{icon:j?(0,z.jsx)(F,{className:`size-4`}):(0,z.jsx)(ke,{className:`size-4`}),label:oe===``?A(j?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`):A(j?`companionSurface.unmuteAssistantNamed`:`companionSurface.muteAssistantNamed`,{name:oe}),shortcut:T?.muteAssistant,spotlit:n===`mute`,dimmed:n!==void 0&&n!==`mute`,onClick:()=>{g?.(j?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),ee?(0,z.jsx)(Xt,{picker:`voices`,label:A(`companionSurface.chooseVoice`),side:w,open:C===`voices`,onPicker:te}):null,(0,z.jsx)(Ut,{dimmed:n!==void 0,onControl:g})]})}function zt({vertical:e,text:t,extra:n=0}){return e?(0,z.jsx)(`span`,{className:`mt-1 shrink-0 truncate text-[12px] text-white/85`,style:{height:St+n,writingMode:`vertical-rl`},"data-label":`line`,children:t}):(0,z.jsx)(`span`,{className:`ml-1 shrink-0 truncate text-[12px] text-white/85`,style:{width:xt+n},"data-label":`line`,children:t})}function Q({sharing:e,shareEnabled:t,sharePicking:n,shortcut:r,spotlit:i,dimmed:a,onShare:o,onStopShare:s}){let{t:c}=M();return!t&&!e?null:(0,z.jsx)($,{icon:(0,z.jsx)(ze,{className:`size-4`}),label:c(`companionSurface.share`),shortcut:r,control:`share`,spotlit:i,dimmed:a,pressed:e||n,onClick:e?s:o})}function Bt({sharing:e,annotating:t,shortcut:n,spotlit:r,dimmed:i,tool:a,placement:o,toolsRef:s,onAnnotate:c,onTool:l}){let{t:u}=M();return e?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)($,{icon:(0,z.jsx)(P,{className:`size-4`}),label:u(`companionSurface.draw`),shortcut:n,control:`draw`,spotlit:r,dimmed:i,pressed:t,className:`companion-draw-anchor`,onClick:()=>{c?.(!t)}}),t&&a!==void 0&&(0,z.jsx)(Vt,{tool:a,placement:o,toolsRef:s,onTool:l})]}):null}function Vt({tool:e,placement:t,toolsRef:n,onTool:r}){let{t:i}=M(),a=[{tool:`freehand`,icon:(0,z.jsx)(P,{className:`size-4`}),label:i(`companionSurface.drawFreehand`)},{tool:`line`,icon:(0,z.jsx)(Be,{className:`size-4`}),label:i(`companionSurface.drawLine`)},{tool:`box`,icon:(0,z.jsx)(ve,{className:`size-4`}),label:i(`companionSurface.drawBox`)},{tool:`circle`,icon:(0,z.jsx)(ge,{className:`size-4`}),label:i(`companionSurface.drawCircle`)}];return(0,z.jsx)(`div`,{className:`companion-draw-tools absolute flex items-center gap-0.5 rounded-full border border-white/10 bg-[#17181b]/95 p-0.5 shadow-lg shadow-black/40 companion-draw-tools-${t} ${t===`left`||t===`right`?`flex-col`:``}`,role:`group`,"aria-label":i(`companionSurface.drawTools`),"data-testid":`companion-draw-tools`,ref:n,onPointerDown:e=>{e.stopPropagation()},children:a.map(t=>(0,z.jsx)($,{icon:t.icon,label:t.label,pressed:e===t.tool,onClick:()=>{r?.(t.tool)}},t.tool))})}function Ht({sharing:e,marked:t,dimmed:n,onClearMarks:r}){let{t:i}=M();return!e||!t?null:(0,z.jsx)($,{icon:(0,z.jsx)(Re,{className:`size-4`}),label:i(`companionSurface.clearMarks`),dimmed:n,onClick:()=>{r?.()}})}function Ut({dimmed:e,onControl:t}){let{t:n}=M();return(0,z.jsx)($,{icon:(0,z.jsx)(Ae,{className:`size-4`,strokeWidth:2.5}),label:n(`companionSurface.endSession`),tone:`negative`,dimmed:e,onClick:()=>{t?.(`endSession`)}})}function Wt({onWatch:e}){let{t}=M();return(0,z.jsx)($,{icon:(0,z.jsx)(Te,{className:`size-4`}),label:t(`companionSurface.stopTeaching`),onClick:e})}var Gt=`-translate-y-[calc(50%+22px)]`,Kt={right:`translate-x-[calc(50%+22px)]`,left:`-translate-x-[calc(50%+22px)]`},qt=e=>e===`above`?{className:Gt,beak:`down`}:{className:Kt[e],beak:e===`right`?`left`:`right`};function Jt({work:e,accentHex:t,open:n,onToggle:r}){let{t:i}=M(),a=qt((0,R.useContext)(pt)),o=V(e),s=H(e),c=o.length>0?o:s,l=e.at(-1),u=(c.length>0?c:e).map(e=>e.title).join(` · `);return(0,z.jsxs)(`button`,{type:`button`,"aria-label":o.length===0&&s.length>0?i(`companionSurface.workWaiting`,{count:s.length}):i(`companionSurface.workCount`,{count:o.length}),"aria-expanded":r===void 0?void 0:n,"data-control":`work`,disabled:r===void 0,className:`group flex size-7 shrink-0 items-center justify-center rounded-full transition-colors enabled:hover:bg-white/15 ${n?`bg-white/15`:``}`,style:U(t),onPointerDown:e=>{e.stopPropagation()},onClick:r,children:[(0,z.jsx)(`span`,{className:`relative grid size-5 place-items-center`,children:c.length>0?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`absolute inset-0 grid place-items-center`,children:(0,z.jsx)(W,{size:20,still:o.length===0})}),(0,z.jsx)(`span`,{className:`text-[10px] leading-none font-semibold text-white/90 tabular-nums`,children:c.length})]}):(0,z.jsx)(G,{state:l?.state===`failed`?`failed`:`done`})}),n?null:(0,z.jsx)(kt,{label:u,className:`opacity-0 group-hover:opacity-100 ${a.className}`,beak:a.beak,"data-label":`hover`})]})}var Yt={above:we,below:je,left:Se,right:ye};function Xt({picker:e,label:t,side:n,open:r,onPicker:i}){if(i===void 0)return null;let a=Yt[n];return(0,z.jsx)($,{icon:(0,z.jsx)(a,{className:`size-3.5`,strokeWidth:2.25}),label:t,pressed:r,narrow:!0,onClick:()=>{i(e)}})}function $({icon:e,label:t,shortcut:n,tone:r,showLabel:i=!1,pressed:a,spotlit:o=!1,dimmed:s=!1,control:c,narrow:l=!1,className:u=``,onClick:d}){let f=qt((0,R.useContext)(pt));return(0,z.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":a,"data-control":c,onClick:d,onPointerDown:e=>{e.stopPropagation()},className:`group flex h-7 shrink-0 items-center justify-center gap-1.5 rounded-full text-[12px] transition-[background-color,opacity] duration-200 hover:bg-white/15 ${l?`-mx-1 px-0.5`:`px-2`} ${u} ${a===!0||o?`bg-white/15`:``} ${s?`opacity-35`:``} ${r===`negative`?`text-[#ff6b6b]`:r===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,i?(0,z.jsx)(`span`,{children:t}):(0,z.jsx)(kt,{label:t,shortcut:n,className:`opacity-0 group-hover:opacity-100 ${f.className}`,beak:f.beak,"data-label":`hover`})]})}var Zt=244,Qt=192,$t=3e3,en=6,tn={idle:{title:`companionIntro.idle.title`,titleNamed:`companionIntro.idle.titleNamed`,body:`companionIntro.idle.body`},meet:{title:`companionIntro.idle.title`,titleNamed:`companionIntro.idle.titleNamed`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},key:{title:`companionIntro.talk.title`},share:{title:`companionIntro.share.title`,body:`companionIntro.share.body`},draw:{title:`companionIntro.draw.title`,body:`companionIntro.draw.body`},mute:{title:`companionIntro.mute.title`,body:`companionIntro.mute.body`},try:{title:`companionIntro.try.title`,body:`companionIntro.try.body`}},nn=e=>ce(e),rn=e=>({phase:`listening`,label:e,accentHex:``,muted:!1,outputMuted:!1,detail:``,approvalRequestId:``,assistantName:``}),an={share:`⌥S`,draw:`⌥D`,muteMicrophone:`⌥M`,muteAssistant:`⌥A`},on={share:{icon:(0,z.jsx)(ze,{className:`size-5`}),shortcut:an.share},draw:{icon:(0,z.jsx)(P,{className:`size-5`}),shortcut:an.draw},mute:{icon:(0,z.jsx)(Me,{className:`size-5`}),shortcut:an.muteMicrophone}},sn=e=>nn(e)===void 0?null:`call`,cn=(e,t)=>nn(e)===void 0?null:{call:rn(t),sharing:e!==`share`};function ln({beat:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=j,optionsBox:i=j,accentHex:a,assistantName:o,cardRef:s,onAdvance:c,micGranted:l,greeted:u=!1,voiceKeyTaps:d=0,chordPresses:f=0,chordControl:p}){let{t:m}=M(),h=A.indexOf(e),g=h===A.length-1,_=h<=0,v=tn[e],y=ne[e],b=ce(e),x=b===void 0?void 0:on[b],[S,C]=(0,R.useState)(!1);(0,R.useEffect)(()=>{C(!1)},[e]),(0,R.useEffect)(()=>{if(!S)return;let e=setTimeout(()=>{C(!1)},$t);return()=>{clearTimeout(e)}},[S]),(0,R.useEffect)(()=>{C(!1)},[d]);let[ee,te]=(0,R.useState)(d),[w,T]=(0,R.useState)(f),[E,D]=(0,R.useState)(e);E===e?d<ee&&te(d):(D(e),te(d),T(f));let re=Math.min(Math.max(d-ee,0),2);f<w&&T(f);let O=b!==void 0&&p===b&&f>w,{inUnits:k,avatarHalf:ie,gap:ae,lineAt:se,edgeAt:le,introStepOff:ue}=L(r,i),de=n===`down`||nn(e)===void 0?k(ue(n)):k(ie+ae)+22+k(ie)+en,fe=le(t,-ie),pe={top:se(n,0),transform:n===`up`?`translateY(calc(-100% - ${de}px))`:`translateY(${de}px)`};return(0,z.jsxs)(`div`,{ref:s,role:`group`,"aria-label":m(`companionIntro.ariaLabel`),className:`absolute flex flex-col rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:Zt,height:Qt,...fe,...pe},onPointerDown:e=>{e.stopPropagation()},children:[(0,z.jsx)(`button`,{type:`button`,"aria-label":m(`companionIntro.close`),className:`absolute top-2 right-2 flex size-6 items-center justify-center rounded-full text-white/45 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>c?.(`dismiss`),children:(0,z.jsx)(Ae,{className:`size-3.5`})}),(0,z.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2`,children:[(0,z.jsx)(`p`,{className:`pr-6 text-[13px] leading-tight font-medium text-white`,children:(0,z.jsx)(`span`,{className:`line-clamp-2`,children:`titleNamed`in v&&o!==void 0?m(v.titleNamed,{name:o}):m(v.title)})}),`body`in v?(0,z.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:m(e===`talk`&&u?`companionIntro.talk.greeted`:v.body)}):null,e===`talk`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,z.jsx)(`span`,{"data-avatar-stage":!0,className:`block size-11`,"aria-hidden":!0})}),u&&l===!1?(0,z.jsx)(`p`,{className:`text-center text-[11px] leading-tight text-white/45`,children:m(`companionIntro.talk.prompt`)}):null]}),e===`key`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:m(S?`companionIntro.key.scolded`:`companionIntro.talk.gesture`)}),(0,z.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,z.jsx)(un,{label:`fn`,taps:re,scolded:S,take:()=>{C(!0)}})})]}),e===`try`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-3`,children:[(0,z.jsx)(`span`,{"data-avatar-stage":!0,className:`block size-11`,"aria-hidden":!0}),(0,z.jsx)(un,{label:`fn`,taps:re,scolded:S,take:()=>{C(!0)}})]}),(0,z.jsx)(`p`,{className:`text-center text-[11px] leading-tight text-white/45`,children:m(S?`companionIntro.key.scolded`:`companionIntro.try.how`)})]}),x!==void 0&&(0,z.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,z.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-xl bg-white/10 text-white/85`,children:x.icon}),(0,z.jsx)(`span`,{className:`text-[10px] leading-none text-white/40`,children:m(`companionIntro.call.click`)})]}),(0,z.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,z.jsx)(`span`,{className:`flex h-10 items-center rounded-xl border px-3 text-[13px] font-medium transition-colors ${O?`border-emerald-300/90 bg-emerald-400/55 text-emerald-50`:`border-white/15 bg-white/10 text-white/85`}`,children:x.shortcut}),(0,z.jsx)(`span`,{className:`text-[10px] leading-none text-white/40`,children:m(`companionIntro.call.shortcut`)})]})]})]}),(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pt-2`,children:[(0,z.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:oe.map(e=>(0,z.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:e===y?a??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[_?null:(0,z.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-3 text-[12px] text-white/60 transition-colors hover:bg-white/10 hover:text-white`,onClick:()=>c?.(`back`),children:m(`companionIntro.back`)}),(0,z.jsx)(`button`,{type:`button`,className:`h-7 rounded-full bg-white/15 px-3 text-[12px] text-white transition-colors hover:bg-white/25`,onClick:()=>c?.(`next`),children:m(g?`companionIntro.done`:`companionIntro.next`)})]})]})]})}function un({label:e,taps:t=0,scolded:n=!1,take:r}){let i=t>=2?`border-emerald-300/90 bg-emerald-400/55 text-emerald-50`:t===1?`border-emerald-400/70 bg-emerald-400/20 text-emerald-100`:`border-white/20 bg-white/10 text-white/85`,a=(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(N,{className:`size-4`,"aria-hidden":!0}),(0,z.jsx)(`span`,{className:`absolute bottom-1 left-1.5 text-[9px] leading-none opacity-70`,"aria-hidden":!0,children:e})]}),o=`relative inline-flex size-11 items-center justify-center rounded-lg border font-medium shadow-[inset_0_-2px_0_rgba(0,0,0,.4)] transition-[color,background-color,border-color,transform] ${i} ${n?`scale-90 opacity-70`:``}`;return r===void 0?(0,z.jsx)(`span`,{className:o,"aria-label":e,children:a}):(0,z.jsx)(`button`,{type:`button`,className:`${o}${t===0?`hover:border-white/40 hover:bg-white/20`:``}`,"aria-label":e,onClick:r,children:a})}var dn=3,fn=2400,pn=440;function mn(){let{t:e}=M(),[i,f]=(0,R.useState)(`right`),[h,ne]=(0,R.useState)(`up`),[D,re]=(0,R.useState)(`bottom`),[O,A]=(0,R.useState)(j),[oe,ce]=(0,R.useState)(j),[ue,fe]=(0,R.useState)(),[pe,me]=(0,R.useState)(),[he,ge]=(0,R.useState)(),[N,_e]=(0,R.useState)(null),[ve,ye]=(0,R.useState)(!1),[be,xe]=(0,R.useState)(void 0),[Se,Ce]=(0,R.useState)(``),[we,Te]=(0,R.useState)(``),[Ee,De]=(0,R.useState)(!1),[P,Oe]=(0,R.useState)(!1),[ke,Ae]=(0,R.useState)(void 0),[F,je]=(0,R.useState)(void 0),[Me,I]=(0,R.useState)(!1),[L,Re]=(0,R.useState)(void 0),[ze,Be]=(0,R.useState)(void 0),[Ve,He]=(0,R.useState)(!1),[Ue,We]=(0,R.useState)(!1),[Ge,Ke]=(0,R.useState)(void 0),[qe,Je]=(0,R.useState)(!1),[Xe,Ze]=(0,R.useState)(!1),[Qe,$e]=(0,R.useState)(!1),[B,et]=(0,R.useState)(!1),[tt,V]=(0,R.useState)(void 0),[H,U]=(0,R.useState)(!1),[W,G]=(0,R.useState)(`teach`),[rt,it]=(0,R.useState)(null),K=(0,R.useRef)(0),[at,q]=(0,R.useState)(!1),[J,ot]=(0,R.useState)(null),[st,ct]=(0,R.useState)(0),[lt,ut]=(0,R.useState)(0),[dt,ft]=(0,R.useState)(void 0),Y=(0,R.useRef)(!1),pt=(0,R.useRef)(null),mt=(0,R.useRef)(null),ht=(0,R.useRef)(null),gt=(0,R.useRef)(null),X=(0,R.useRef)(null),_t=(0,R.useRef)(null),vt=(0,R.useRef)(null),yt=(0,R.useRef)(null),bt=(0,R.useRef)(!1),xt=(0,R.useCallback)(e=>{yt.current=e,e===null&&bt.current&&(bt.current=!1,Y.current=!1,y(!1))},[]),Z=(0,R.useRef)(null),St=(0,R.useRef)(null),Ct=(0,R.useRef)(!1);(0,R.useEffect)(()=>{let e=e=>{f(e.growth),ne(e.cardGrowth),re(e.dock??`bottom`),A(e.avatarBox),ce(e.optionsBox??e.avatarBox),fe(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),me(e.character),ge(e.accentHex),_e(e.call),ye(e.dialing===!0),Te(e.assistantName),De(e.working),Oe(e.watching===!0),xe(e.dictating),Ce(e.dictationText??``),Ae(e.watchRetro),je(e.dictationOffer),Re(e.popover),I(e.voicesPickable===!0),Be(e.popoverView),He(e.watchEnabled===!0),We(e.watchTargets===!0),Ke(e.screenShare),Je(e.screenShareEnabled===!0),Ze(e.annotating===!0),$e((e.coachmarks?.length??0)>0),et(e.marksCleared!==void 0),V(e.annotationTool),ot(e.intro),ct(e.voiceKeyTaps??0),ut(e.introChordPresses??0),ft(e.introChordControl)},t=ee(e);return g().then(t=>{t&&e(t)}),t},[]),(0,R.useEffect)(()=>()=>{y(!1)},[]);let Tt=N!==null||ve,Et=Ge!==void 0,Dt=(0,R.useMemo)(()=>T()?se():void 0,[]);(0,R.useEffect)(()=>{Tt||(K.current+=1,U(!1))},[Tt]),(0,R.useEffect)(()=>{P&&W===`teach`&&(K.current+=1,U(!1))},[P,W]),(0,R.useEffect)(()=>{Et&&W===`share`&&(K.current+=1,U(!1))},[Et,W]);let Ot=(e,t)=>{it(null),G(e),U(!0);let n=++K.current;ae().then(e=>{if(n===K.current){if(e!==null){it(e);return}U(!1),t()}})},kt=H&&rt?.screenRecordingGranted===!1;(0,R.useEffect)(()=>{if(kt)return k(e=>{if(e.screen?.status!==`granted`)return;let t=++K.current;ae().then(e=>{t!==K.current||e===null||it(e)})})},[kt]);let At=()=>{if(!Ue){p();return}if(H&&W===`teach`){K.current+=1,U(!1);return}Ot(`teach`,p)},jt=()=>{if(H&&W===`share`){K.current+=1,U(!1);return}Ot(`share`,()=>void 0)};(0,R.useEffect)(()=>{!H&&Y.current&&(Y.current=!1,y(!1))},[H]),(0,R.useEffect)(()=>{F===void 0&&Y.current&&(Y.current=!1,y(!1))},[F]);let Mt=(0,R.useRef)(!1),Nt=L!==void 0&&ze!==void 0&&ze!==`deferred`&&(N!==null||ve)&&D!==`left`&&D!==`right`,Pt=Nt?L?.id:void 0;(0,R.useLayoutEffect)(()=>{let e=vt.current;if(Pt===void 0||e===null)return;let t=()=>{d(Pt,e.getBoundingClientRect().height)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[Pt,ze]);let[Ft,It]=(0,R.useState)(!1),Lt=Nt||Ft;(0,R.useEffect)(()=>{!Lt&&Mt.current&&(Mt.current=!1,Y.current=!1,y(!1))},[Lt]);let Rt=e=>{if(K.current+=1,U(!1),W===`share`){C(e);return}p(e)},zt=e=>{Y.current!==e&&(Y.current=e,y(e))},Q=J!==null&&N===null&&!ve,Bt=(0,R.useRef)(Q);(0,R.useEffect)(()=>{Bt.current&&!Q&&(q(!1),zt(!1)),Bt.current=Q},[Q]);let Vt=sn(J),Ht=Q?cn(J,e(`companionIntro.call.line`)):null,[Ut,Wt]=(0,R.useState)(null),Gt=Q&&(J===`talk`||J===`try`),Kt=Q&&J===`idle`&&at;(0,R.useEffect)(()=>{Kt&&E(`next`)},[Kt]);let[qt,Jt]=(0,R.useState)(!1);(0,R.useEffect)(()=>{Jt(!1)},[J]);let Yt=(0,R.useCallback)(()=>{if(Ut!==!1){E(`try`);return}t(`microphone`).then(e=>{Wt(e?.status===`granted`),E(`try`)})},[Ut]);(0,R.useEffect)(()=>{if(!qt)return;let e=setTimeout(()=>{E(`next`)},fn);return()=>{clearTimeout(e)}},[qt]);let Xt=Q&&J===`talk`;(0,R.useEffect)(()=>{if(!Xt)return;let e=()=>{w().then(e=>{Wt(e===null?null:e.microphone.status===`granted`)})};e();let t=setInterval(e,2e3);return()=>{clearInterval(t)}},[Xt]);let $=Ht!==null,Zt=N!==null||ve?`call`:be===void 0?F===void 0?P?`watching`:ke===void 0?Vt??(at?`hover`:`resting`):`summary`:`offer`:`dictating`,Qt=e=>{if(Z.current!==null&&e.buttons===0&&(Z.current=null,m()),Z.current!==null){let{x:t,y:r}=Z.current;n(e.screenX-t,e.screenY-r),Z.current={x:e.screenX,y:e.screenY};let i=St.current;i!==null&&Math.abs(e.screenX-i.x)+Math.abs(e.screenY-i.y)>dn&&(Ct.current=!0);return}let t=ht.current;if(!t)return;let r=pt.current?.getBoundingClientRect()??null,i=mt.current?.getBoundingClientRect()??null,a=r!==null&&r.width>0?r:i!==null&&i.width>0?i:null,o=Le({x:e.clientX,y:e.clientY},{avatar:t.getBoundingClientRect(),pill:a}),s=gt.current,c=s!==null&&Ie(s.getBoundingClientRect(),e.clientX,e.clientY),l=_t.current,u=l!==null&&Ie(l.getBoundingClientRect(),e.clientX,e.clientY),d=X.current,f=d!==null&&Ie(d.getBoundingClientRect(),e.clientX,e.clientY),p=vt.current,h=p!==null&&Ie(p.getBoundingClientRect(),e.clientX,e.clientY),g=yt.current,_=g!==null&&Ie(g.getBoundingClientRect(),e.clientX,e.clientY);q(o),bt.current=_,Mt.current=h,zt(o||c||f||u||_||h)},$t=Ne(N,he,pe),en=L===void 0||ze!==`deferred`?0:L.kind===`approvals`?L.items.length:1;return(0,z.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:Qt,onMouseUp:()=>{Z.current!==null&&(Z.current=null,m())},onPointerCancel:()=>{Z.current!==null&&(Z.current=null,m()),q(!1),zt(!1)},onMouseLeave:()=>{Z.current===null&&(q(!1),zt(!1))},children:(0,z.jsx)(wt,{phase:Zt,growth:i,cardGrowth:h,dock:D,avatarBox:O,optionsBox:oe,avatarSrc:ue,character:pe,hovered:at,accentHex:$t,call:N??Ht?.call??void 0,assistantName:we,dictating:be,dictationText:Se,working:Ee,watching:P,watchRetro:ke,onWatchRetro:le,dictationOffer:F,offer:F===void 0?null:(0,z.jsx)(nt,{offer:F,growth:i,cardGrowth:h,avatarBox:O,optionsBox:oe,cardRef:_t,onAnswer:e=>{b(e,F.id)}}),watchEnabled:Ve,spotlight:nn(J),avatarStaged:Gt,avatarTucked:Q&&J===`idle`,intro:!Q||J===null?null:(0,z.jsx)(ln,{beat:J,growth:i,cardGrowth:h,avatarBox:O,optionsBox:oe,accentHex:$t,assistantName:we===``?void 0:we,cardRef:gt,micGranted:Ut??void 0,greeted:qt,voiceKeyTaps:st,chordPresses:lt,chordControl:dt,onAdvance:e=>{if(e===`try`){Yt();return}E(e)}}),rootRef:pt,restingPillRef:mt,avatarRef:ht,onSurfacePointerDown:e=>{e.button===0&&e.target.closest(`button, a`)===null&&(e.currentTarget.setPointerCapture(e.pointerId),Z.current={x:e.screenX,y:e.screenY},St.current={x:e.screenX,y:e.screenY},Ct.current=!1)},onSurfaceContextMenu:e=>{(window.getSelection()?.toString().trim().length??0)>0||(e.preventDefault(),u())},onAvatarClick:()=>{if(!(Ct.current||$)){if(Q&&J===`talk`){Jt(!0);return}if(Q&&J===`try`){Yt();return}if(N!==null||ve){de();return}S()}},onWatch:()=>{$||p()},onTeach:$?void 0:At,picking:H&&W===`teach`,sharing:Ht?.sharing??Et,shareEnabled:$||qe,sharePicking:H&&W===`share`,onShare:$?void 0:jt,onStopShare:$?void 0:()=>{C()},annotating:Xe,onAnnotate:$?void 0:e=>{_(e)},marked:B&&(Qe||Xe),onClearMarks:$?void 0:()=>{s()},openPicker:L?.kind===`microphones`||L?.kind===`voices`?L.kind:void 0,voicesPickable:Me,onPicker:!$&&o()?e=>{l(e)}:void 0,annotationTool:tt,onAnnotationTool:$?void 0:e=>{c(e)},drawToolsRef:xt,shortcuts:$?an:Dt,picker:H?(0,z.jsx)(Ye,{sources:rt,captureThumbnail:x,cardGrowth:h,side:(N!==null||ve)&&(D===`left`||D===`right`)?D===`left`?`right`:`left`:void 0,avatarBox:O,optionsBox:oe,cardRef:X,label:W===`share`?e(`companionSurface.sharePicker`):void 0,onPick:Rt,onAllowScreenRecording:()=>{v(`screen`).catch(()=>void 0)}}):null,prompt:!Nt||L===void 0?null:ze===`row`&&(L.kind===`approvals`||L.kind===`secret`)?(0,z.jsx)(Pe,{popover:L,onAnswer:e=>{a(e,L.id)},onView:e=>{r(L.id,e)}}):(0,z.jsx)(Fe,{attached:!0,popover:L,view:ze??`expanded`,style:{maxHeight:pn},onAnswer:e=>{a(e,L.id)},onView:e=>{r(L.id,e)},onOpenLink:e=>{ie(e)}},L.id),promptRef:vt,onWorkShelfChange:It,promptsDeferred:en,onReviewPrompts:()=>{L!==void 0&&r(L.id,`expanded`)},onControl:$?void 0:(e,t)=>{te(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{mn as CompanionSurfacePage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Lc as t,Nc as n,Oc as r,Wc as i,eg as a,tg as o,xc as s}from"./app-CuJb51Ub.js";import{j as c}from"./vendor-CYmPHUS2.js";import{t as l,x as u}from"./react-B9IgSVeK.js";import{n as d}from"./companion-accent-ggBv1xjm.js";var f=e(u(),1);function p(e){let t=e>>>0;return()=>{t=t+1831565813>>>0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}function m(e,t){return Math.round(e*1e3)*73856093^Math.round(t*1e3)*19349663}function h(e,t){if(e.length<2)return``;let n=n=>t?e[(n+e.length)%e.length]:e[Math.min(Math.max(n,0),e.length-1)],r=n(0),i=`M ${g(r.x)} ${g(r.y)}`,a=t?e.length:e.length-1;for(let e=0;e<a;e+=1){let t=n(e-1),r=n(e),a=n(e+1),o=n(e+2),s={x:r.x+(a.x-t.x)/6,y:r.y+(a.y-t.y)/6},c={x:a.x-(o.x-r.x)/6,y:a.y-(o.y-r.y)/6};i+=` C ${g(s.x)} ${g(s.y)}, ${g(c.x)} ${g(c.y)}, ${g(a.x)} ${g(a.y)}`}return t?`${i} Z`:i}function g(e){return Math.round(e*100)/100}var _=.09,v=.05,y=.028;function b(e){return Math.min(Math.max(e,0),_)}var x=1.5;x-Math.SQRT2*(x-1);function S(e,t){let n=Math.min(t*x,Math.min(e.width,e.height)/2+t),r=n-t,i=r,a=e.width-r,o=r,s=e.height-r,c={x:Math.max(a-i,0),y:Math.max(s-o,0)},l=Math.PI*n/2,u=[l,c.x,l,c.y,l,c.x,l,c.y],d=u.reduce((e,t)=>e+t,0),f=[{centre:{x:i,y:o},from:Math.PI},{centre:{x:a,y:o},from:-Math.PI/2},{centre:{x:a,y:s},from:0},{centre:{x:i,y:s},from:Math.PI/2}];return{at:e=>{let t=e%1*d;t<0&&(t+=d);for(let e=0;e<u.length;e+=1){let r=u[e];if(t>r&&e<u.length-1){t-=r;continue}let c=r===0?0:Math.min(t/r,1),l=f[e/2];if(e%2==0){let e=l.from+Math.PI/2*c;return{x:l.centre.x+Math.cos(e)*n,y:l.centre.y+Math.sin(e)*n}}let[d,p]=[[{x:i,y:o-n},{x:a,y:o-n}],[{x:a+n,y:o},{x:a+n,y:s}],[{x:a,y:s+n},{x:i,y:s+n}],[{x:i-n,y:s},{x:i-n,y:o}]][(e-1)/2];return{x:d.x+(p.x-d.x)*c,y:d.y+(p.y-d.y)*c}}return{x:0,y:0}},length:d}}function C(e,t){let n=t.padding??8,r={x:e.width/2,y:e.height/2},i=S(e,n),a=b(t.strength),o=p(t.seed),s=[];for(let e=0;e<=13;e+=1){let t=i.at(.18+1.055*e/13),n={x:t.x-r.x,y:t.y-r.y},c=Math.hypot(n.x,n.y)||1,l=o()*a*c;s.push({x:t.x+n.x/c*l,y:t.y+n.y/c*l})}return s}function w(e,t){return h(C(e,t),!1)}function T(e){let t=e.gap??10,n=b(e.strength),r=p(e.seed),i=e.length+t,a=Math.max(28,e.length*.55),o=a/2,s={x:o,y:i},c={x:o,y:t},l=r()<.5?-1:1,u=a*.17*l,d=e=>({x:(1-e)*(1-e)*s.x+2*(1-e)*e*(o+u)+e*e*c.x,y:(1-e)*(1-e)*s.y+2*(1-e)*e*((s.y+c.y)/2)+e*e*c.y}),f=[];for(let e=0;e<=9;e+=1){let t=e/9,i=d(t),o=(1-t)*(1-t),s=(r()-.5)*2*n*a*o;f.push({x:i.x+s,y:i.y})}let m=d(1-1/9),_=Math.atan2(c.y-m.y,c.x-m.x),v=Math.max(11,e.length*.3),y=.42,x=`M ${g(c.x+Math.cos(_-Math.PI+y)*v)} ${g(c.y+Math.sin(_-Math.PI+y)*v)} L ${g(c.x)} ${g(c.y)} L ${g(c.x+Math.cos(_-Math.PI-y)*v)} ${g(c.y+Math.sin(_-Math.PI-y)*v)}`;return{shaft:h(f,!1),head:x,width:a,height:i}}function E(){let[e,t]=(0,f.useState)(()=>({width:typeof window>`u`?0:window.innerWidth,height:typeof window>`u`?0:window.innerHeight}));return(0,f.useEffect)(()=>{let e=()=>{t({width:window.innerWidth,height:window.innerHeight})};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),e}var D=l(),O=.6,k=10,A=52,j=10,M=A+j,N=10,P=8;function F(e,t){let n=e.kind===`point`?M:0,r=e.kind===`point`?e.y:e.y+e.height,i=e.kind===`point`?0:e.width,a=(1-r)*t-n,o=e.y*t-n;return{above:a<58&&o>a,trailing:e.x+i>O}}function I(e,t,n){let r=n?1-e.y:e.kind===`point`?e.y:e.y+e.height,i=Math.max(t-58,0),a=e.kind===`point`?A:0;return Math.round(Math.min(r*t+a+k,i))}function L(e){let t=Math.min(Math.max(e,0),1)*100;return`${Number(t.toFixed(4))}%`}function R(e){let t=e.kind===`region`?`${e.width},${e.height}`:`point`;return`${e.kind},${e.x},${e.y},${t},${e.caption??``}`}function z({mark:e,box:t}){let n=Math.max(e.width*t.width,1),r=Math.max(e.height*t.height,1),i=N+P,a=w({width:n,height:r},{strength:v,seed:m(e.x,e.y),padding:N});return(0,D.jsxs)(`svg`,{className:`companion-coachmark`,"data-testid":`companion-coachmark`,"aria-hidden":`true`,viewBox:`${-i} ${-i} ${n+i*2} ${r+i*2}`,width:n+i*2,height:r+i*2,style:{left:Math.round(e.x*t.width-i),top:Math.round(e.y*t.height-i)},children:[(0,D.jsx)(`path`,{className:`companion-coachmark-halo`,d:a}),(0,D.jsx)(`path`,{className:`companion-coachmark-ink`,d:a})]})}function B({mark:e,above:t,box:n}){let r=T({length:A,approach:t?`above`:`below`,strength:y,seed:m(e.x,e.y),gap:j});return(0,D.jsxs)(`svg`,{className:`companion-coachmark-pointer`,"data-testid":`companion-coachmark-pointer`,"data-above":t?``:void 0,"aria-hidden":`true`,viewBox:`0 0 ${r.width} ${r.height}`,width:r.width,height:r.height,style:{left:Math.round(e.x*n.width-r.width/2),top:Math.round(e.y*n.height-(t?r.height:0)),...t?{"--companion-coachmark-turn":`rotate(180deg)`}:{}},children:[(0,D.jsx)(`path`,{className:`companion-coachmark-halo`,d:r.shaft}),(0,D.jsx)(`path`,{className:`companion-coachmark-halo`,d:r.head}),(0,D.jsx)(`path`,{className:`companion-coachmark-ink`,d:r.shaft}),(0,D.jsx)(`path`,{className:`companion-coachmark-ink`,d:r.head})]})}function V({marks:e,ink:t}){let n=E();return(0,D.jsx)(`div`,{className:`pointer-events-none fixed inset-0`,"data-testid":`companion-coachmarks`,style:{"--companion-ring-accent":t},role:`presentation`,children:e.map(e=>{let{above:t,trailing:r}=F(e,n.height),i=`${I(e,n.height,t)}px`;return(0,D.jsxs)(f.Fragment,{children:[e.kind===`region`?(0,D.jsx)(z,{mark:e,box:n}):(0,D.jsx)(B,{mark:e,above:t,box:n}),e.caption!==void 0&&e.caption!==``&&(0,D.jsx)(`div`,{className:`companion-coachmark-caption`,"data-testid":`companion-coachmark-caption`,"data-above":t?``:void 0,"data-trailing":r?``:void 0,style:{...r?{right:L(1-(e.kind===`region`?e.x+e.width:e.x))}:{left:L(e.x)},...t?{bottom:i}:{top:i},maxWidth:L(.4)},children:e.caption})]},R(e))})})}var H=4500,U=e=>Math.min(Math.max(e,0),1);function W(e,t,n){switch(e){case`line`:return[t,n];case`box`:return[t,{x:n.x,y:t.y},n,{x:t.x,y:n.y},t];case`circle`:{let e=(t.x+n.x)/2,r=(t.y+n.y)/2,i=Math.abs(n.x-t.x)/2,a=Math.abs(n.y-t.y)/2;return Array.from({length:49},(t,n)=>{let o=n/48*Math.PI*2;return{x:e+i*Math.cos(o),y:r+a*Math.sin(o)}})}}}function G(e,t,n){let r=(t.x-e.x)*n,i=t.y-e.y;return r*r+i*i>=a**2}var K=`<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/><path d="m15 5 4 4"/>`;function q(e){let t=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><g stroke="#ffffff" stroke-width="4">${K}</g><g stroke="${e}" stroke-width="2">${K}</g></svg>`;return`url("data:image/svg+xml,${encodeURIComponent(t)}") 2 22, crosshair`}function J({ink:e,cleared:n=0,tool:r=`freehand`}){let[i,a]=(0,f.useState)([]),c=(0,f.useRef)([]),l=(0,f.useRef)(null),u=(0,f.useRef)({x:0,y:0}),d=(0,f.useRef)(!1),p=(0,f.useRef)(0),m=(0,f.useRef)(new Set),h=E(),g=h.height===0?1:h.width/h.height,_=(0,f.useRef)(e);(0,f.useEffect)(()=>{_.current=e},[e]),(0,f.useEffect)(()=>{let e=m.current;return()=>{for(let t of e)clearTimeout(t);e.clear(),l.current!==null&&(l.current=null,s(`released`,[],_.current))}},[]);let v=(0,f.useCallback)(e=>{c.current=e,a(e)},[]),y=(0,f.useRef)(n);(0,f.useEffect)(()=>{n!==y.current&&(y.current=n,v(c.current.filter(e=>e.id===l.current)))},[n,v]);let b=e=>({x:h.width===0?0:U(e.clientX/h.width),y:h.height===0?0:U(e.clientY/h.height)}),x=()=>{l.current===null&&(d.current=!0,t(!0))},S=()=>{d.current&&(d.current=!1,t(!1))},C=t=>{if(S(),l.current!==null)return;t.currentTarget.setPointerCapture(t.pointerId);let n=p.current++;l.current=n;let r=b(t);u.current=r,v([...c.current,{id:n,points:[r],spent:!1}]),s(`drawing`,[],e)},w=e=>{S();let t=l.current;if(t===null)return;let n=b(e),i=c.current.find(e=>e.id===t);if(i===void 0)return;let a=i.points[i.points.length-1];a!==void 0&&!G(a,n,g)||v(c.current.map(e=>e.id===t?{...e,points:r===`freehand`?[...e.points,n].slice(-512):W(r,u.current,n)}:e))},T=t=>{if(l.current===null)return;l.current=null,t.currentTarget.hasPointerCapture(t.pointerId)&&t.currentTarget.releasePointerCapture(t.pointerId);let n=c.current.map(e=>({...e,spent:!0}));v(n),s(`released`,n.slice(-24).map(e=>({points:e.points})),e);let r=new Set(n.map(e=>e.id)),i=setTimeout(()=>{m.current.delete(i),v(c.current.filter(e=>!r.has(e.id)))},H+900);m.current.add(i)},O=o*Math.min(h.width,h.height),k=(0,f.useMemo)(()=>q(e),[e]);return(0,D.jsx)(`svg`,{className:`companion-share-annotation fixed inset-0 h-full w-full`,style:{cursor:r===`freehand`?k:`crosshair`,"--companion-ink-hold":`${H}ms`,"--companion-ink-fade":`900ms`},"data-testid":`companion-share-annotation`,"data-cleared":n,"data-tool":r,role:`presentation`,onPointerDown:C,onPointerMove:w,onPointerUp:T,onPointerCancel:T,onWheel:x,children:i.map(t=>(0,D.jsx)(Y,{stroke:t,box:h,width:O,ink:e},t.id))})}function Y({stroke:e,box:t,width:n,ink:r}){let i=e.spent?`companion-share-ink companion-share-ink-spent`:`companion-share-ink`,a=e.points[0];return e.points.length===1&&a!==void 0?(0,D.jsx)(`circle`,{className:i,cx:a.x*t.width,cy:a.y*t.height,r:n/2,fill:r}):(0,D.jsx)(`polyline`,{className:i,points:e.points.map(e=>`${e.x*t.width},${e.y*t.height}`).join(` `),fill:`none`,stroke:r,strokeWidth:n,strokeLinecap:`round`,strokeLinejoin:`round`})}function X(e,t){return e?{kind:`teaching`}:t===void 0?null:{kind:`sharing`,target:t}}function Z({read:e,assistantName:t,style:n}){let{t:r}=c(),i=t!==``,a=e.kind===`teaching`?i?r(`companionWatchFramePage.teachingNamed`,{name:t}):r(`companionWatchFramePage.teaching`):e.target.kind===`display`?i?r(`companionWatchFramePage.sharingScreenNamed`,{name:t}):r(`companionWatchFramePage.sharingScreen`):i?r(`companionWatchFramePage.sharingWindowNamed`,{name:t}):r(`companionWatchFramePage.sharingWindow`);return(0,D.jsxs)(`div`,{className:`companion-watch-frame-label`,"data-testid":`companion-watch-frame-label`,"data-read":e.kind,style:n,children:[(0,D.jsx)(`span`,{className:`companion-watch-frame-label-dot`}),a]})}function Q(e,t){let n=(0,f.useRef)({captureCount:e,watching:t}),[r,i]=(0,f.useState)(0);return(0,f.useEffect)(()=>{let r=n.current;if(n.current={captureCount:e,watching:t},!t){i(0);return}r.watching&&e>r.captureCount&&i(e=>e+1)},[e,t]),r}function $(e){let t=(0,f.useRef)(!1);(0,f.useEffect)(()=>{if(!e||t.current)return;let r=0,i=requestAnimationFrame(()=>{r=requestAnimationFrame(()=>{t.current=!0,n()})});return()=>{cancelAnimationFrame(i),cancelAnimationFrame(r)}},[e])}function ee(){let[e,t]=(0,f.useState)(null);(0,f.useEffect)(()=>{let e=i(t);return r().then(e=>{e&&t(e)}),e},[]);let n=e?.watching===!0,a=e?.screenShare!==void 0,o=X(n,e?.screenShare),s=o!==null;$(s);let c=Q(e?.captureCount??0,n),l=d(e?.call??null,e?.accentHex,e?.character),u=l===void 0?void 0:{"--companion-ring-accent":l},p=e?.frameInsetTop??0,m=p>0?{...u,"--companion-frame-inset":`${p}px`}:u,h=e?.annotating===!0,g=a&&!n?e?.coachmarks??[]:[];return(0,D.jsxs)(`div`,{className:`pointer-events-none h-screen w-screen bg-transparent`,role:`presentation`,"aria-hidden":!0,children:[s&&(0,D.jsx)(`div`,{className:`companion-watch-frame fixed inset-0`,style:u}),o!==null&&(0,D.jsx)(Z,{read:o,assistantName:e?.assistantName??``,style:m}),n&&c>0&&(0,D.jsx)(`div`,{className:`companion-watch-frame-flash fixed inset-0`,style:u},c),h&&(0,D.jsx)(J,{ink:l??`#5eead4`,cleared:e?.marksCleared??0,tool:e?.annotationTool}),g.length>0&&(0,D.jsx)(V,{marks:g,ink:l??`#5eead4`})]})}export{ee as CompanionWatchFramePage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Cx as t,JS as n,LS as r,RS as i,gS as a,nt as o}from"./app-CuJb51Ub.js";import{Yn as s,j as c,tr as l}from"./vendor-CYmPHUS2.js";import{_ as u,f as d,t as f,x as p}from"./react-B9IgSVeK.js";import{D as m,tr as h}from"./icons-C0wyat6T.js";import{n as g}from"./a2a-invite-YEhyUfHN.js";import{r as _}from"./contacts-gateway-d-y646Z7.js";var v=e(p(),1),y=f();function b(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function x(e){switch(e){case`expired`:case`not_found`:return`connectPage.errorExpired`;case`already_redeemed_by_other`:return`connectPage.errorAlreadyRedeemed`;case`sender_not_found`:return`connectPage.errorSenderNotFound`;case`not_platform_managed`:return`connectPage.errorNotPlatformManaged`;default:return null}}function S(){return(0,y.jsx)(C,{assistantId:o()})}function C({assistantId:e}){let{t:o}=c(`contacts`),f=d(),p=l(),[S]=u(),C=(0,v.useMemo)(()=>g(S),[S]),w=s({mutationFn:()=>{if(!C)throw Error(`Invalid invite link`);return _(e,{senderAssistantId:C.senderAssistantId,token:C.token})},onSuccess:e=>{e.success&&(p.invalidateQueries({predicate:e=>b(e.queryKey)}),e.alreadyConnected?a(o(`connectPage.alreadyConnected`)):a(o(`connectPage.connected`)),f(t.contacts.root))}}),T=(0,v.useCallback)(()=>{f(t.contacts.root)},[f]),E=(0,v.useCallback)(()=>{w.mutate()},[w]),D=(0,v.useMemo)(()=>{if(w.isError)return w.error instanceof Error?w.error.message:o(`connectPage.errorGeneric`);if(w.data&&!w.data.success){let e=x(w.data.errorCode);return e?o(e):w.data.error||o(`connectPage.errorGeneric`)}return null},[w.isError,w.error,w.data,o]);return C?(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(r,{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)(h,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,y.jsx)(i,{variant:`title-small`,children:o(`connectPage.title`)})]}),(0,y.jsx)(i,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:o(`connectPage.body`)}),D&&(0,y.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md p-3`,style:{backgroundColor:`var(--system-negative-weak)`,color:`var(--system-negative-strong)`},children:[(0,y.jsx)(m,{className:`h-4 w-4 shrink-0`}),(0,y.jsx)(i,{variant:`body-small-default`,children:D})]}),(0,y.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,y.jsx)(n,{variant:`primary`,onClick:E,loading:w.isPending,disabled:w.isPending,children:w.isPending?o(`actions.connecting`):o(`actions.connect`)}),(0,y.jsx)(n,{variant:`outlined`,onClick:T,disabled:w.isPending,children:o(`actions.cancel`)})]})]})})}):(0,y.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,y.jsx)(r,{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)(m,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,y.jsx)(i,{variant:`title-small`,children:o(`connectPage.invalidTitle`)})]}),(0,y.jsx)(i,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:o(`connectPage.invalidBody`)}),(0,y.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,y.jsx)(n,{variant:`primary`,onClick:T,children:o(`connectPage.goToContacts`)})})]})})})}export{S as ConnectPage};
@@ -0,0 +1 @@
1
+ import{CS as e,Cx as t,LS as n,Sx as r,Uv as i}from"./app-CuJb51Ub.js";import{N as a,j as o}from"./vendor-CYmPHUS2.js";import{t as s}from"./react-B9IgSVeK.js";import{t as c}from"./setting-row-DJHlwNfk.js";var l=s(),u=[`[&_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(` `),d=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,f={privacy:{href:t.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:t.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function p({kind:t,checked:n,onChange:o}){let s=f[t];return(0,l.jsx)(e,{checked:n,onCheckedChange:e=>o(e===!0),label:(0,l.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,l.jsx)(a,{i18nKey:`consentControls.agreeTo`,ns:`onboarding`,values:{policy:s.text},components:{link:(0,l.jsx)(i,{href:r(s.href),tone:`quiet`,glyph:!1})}})}),"aria-label":s.aria,className:u})}function m(){return(0,l.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function h({notes:e}){let{t}=o(`onboarding`);return!e||e.length===0?null:(0,l.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,l.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:t(`consentControls.whatsChanged`)}),e.length===1?(0,l.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,l.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,l.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,l.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,l.jsx)(`span`,{children:e})]},e))})]})}function g({electron:e,showAnalytics:t=!0,showDiagnostics:r=!0,shareAnalytics:i,shareDiagnostics:a,onShareAnalyticsChange:s,onShareDiagnosticsChange:u,className:f,style:p}){let{t:h}=o(`onboarding`);return(0,l.jsxs)(`section`,{className:f,style:p,children:[(0,l.jsx)(`p`,{className:d,children:h(`consentControls.privacyPreferences`)}),(0,l.jsx)(n,{padding:e?`sm`:`md`,className:`w-full`,children:(0,l.jsxs)(`div`,{className:`flex flex-col ${e?`gap-3`:`gap-4`}`,children:[t&&(0,l.jsx)(c,{label:h(`consentControls.analyticsLabel`),helperText:h(`consentControls.analyticsHelp`),checked:i,onChange:s}),t&&r&&(0,l.jsx)(m,{}),r&&(0,l.jsx)(c,{label:h(`consentControls.diagnosticsLabel`),helperText:h(`consentControls.diagnosticsHelp`),checked:a,onChange:u})]})})]})}function _({electron:e,showPrivacy:t=!0,showTos:n=!0,privacyConsent:r,tosAccepted:i,onPrivacyChange:a,onTosChange:s,privacyNotes:c,tosNotes:u,className:f,style:m}){let{t:g}=o(`onboarding`);return(0,l.jsxs)(`section`,{className:f,style:m,children:[(0,l.jsx)(`p`,{className:d,children:g(`consentControls.agreements`)}),(0,l.jsxs)(`div`,{className:`flex flex-col pl-2 ${e?`gap-3.5`:`gap-4`}`,children:[t&&(0,l.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,l.jsx)(h,{notes:c}),(0,l.jsx)(p,{kind:`privacy`,checked:r,onChange:a})]}),n&&(0,l.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,l.jsx)(h,{notes:u}),(0,l.jsx)(p,{kind:`tos`,checked:i,onChange:s})]})]})]})}export{g as n,_ as t};
@@ -0,0 +1 @@
1
+ import{Ix as e,Jd as t,Lx as n,Yd as r,__ as i,qd as a,zx as o}from"./app-CuJb51Ub.js";async function s(t,i){let{data:a,error:s,response:c}=await r({path:{assistant_id:t},body:i,throwOnError:!1});if(n(c,s,`Failed to save contact`),!c.ok||!a?.contact)throw new e(c.status,o(s,c,`Failed to save contact`));return a.contact}async function c(r,i){let{error:a,response:s}=await t({path:{assistant_id:r,contact_id:i},throwOnError:!1});if(n(s,a,`Failed to delete contact`),!s.ok&&s.status!==204)throw new e(s.status,o(a,s,`Failed to delete contact`))}async function l(t,r){let{error:i,response:s}=await a({path:{assistant_id:t,channel_id:r},throwOnError:!1});if(n(s,i,`Failed to verify channel`),!s.ok)throw new e(s.status,o(i,s,`Failed to verify channel`))}async function u(t,n,r){let i=(await s(t,{id:n.id,displayName:n.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 e(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new e(409,`That account is blocked for this contact. Unblock it before linking.`);await l(t,i.id)}async function d(t,r){let{data:a,error:s,response:c}=await i.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:t},body:{sender_assistant_id:r.senderAssistantId,token:r.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(n(c,s,`Failed to redeem A2A invite`),!c.ok)throw new e(c.status,o(s,c,`Failed to redeem A2A invite`));return{success:a?.success??!0,alreadyConnected:a?.already_connected,error:a?.error,errorCode:a?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Cx as t,Dp as n,Gi as r,H as i,HS as a,Hd as o,Im as s,JS as c,LS as l,M_ as u,Op as d,RS as f,Sf as p,TS as m,Ui as h,Vi as g,Wi as _,Zc as v,_S as y,_s as b,bf as x,gS as S,hS as C,if as ee,jS as w,nt as te,pS as T,sx as ne,w as E,xf as re}from"./app-CuJb51Ub.js";import{I as D,N as ie,Qn as O,Yn as k,j as A,tr as ae}from"./vendor-CYmPHUS2.js";import{_ as oe,f as se,n as j,r as ce,t as le,x as M}from"./react-B9IgSVeK.js";import{Bi as N,Dn as ue,Kt as P,Lt as de,Ra as F,Vn as fe,Ya as I,Zt as L,_a as pe,_t as R,br as me,tr as he,vt as z,x as B,za as V}from"./icons-C0wyat6T.js";import{t as H}from"./ellipsis-vertical-Bg7ccW1x.js";import{t as U}from"./detail-card-RBkdhZeE.js";import{n as ge,r as _e,t as ve}from"./use-side-list-room-T8KJvH7p.js";import{c as W,i as ye,n as be,r as G,t as xe}from"./use-invite-link-dialog-EnK2z5A8.js";import{a as Se,i as Ce,n as we,t as Te}from"./contacts-gateway-d-y646Z7.js";var K=I(`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`}]]),Ee=I(`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`}]]),q=e(M(),1),De=new Set([`slack`]);function Oe(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function ke(e){switch(e){case`slack`:return`channelType.slack`;case`telegram`:return`channelType.telegram`;case`discord`:return`channelType.discord`;case`whatsapp`:return`channelType.whatsapp`;case`a2a`:return`channelType.a2a`;case`phone`:return`channelType.phone`;case`email`:return`channelType.email`;default:return null}}function Ae(e){let t=ke(e.toLowerCase());return t?D(t,{ns:`contacts`}):e}var je=`New Contact`;function Me(e){return e===je}var J=le();function Ne({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let{t:i}=A(`contacts`),[a,o]=(0,q.useState)(null);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,J.jsxs)(`div`,{children:[i>0?(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,J.jsx)(Pe,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r&&e.canDisconnect?()=>o(e.key):void 0})]},e.key))}),(0,J.jsx)(C,{open:a!==null,title:i(`assistantContactChannels.disconnectConfirmTitle`,{channel:a?_(a):``}),message:i(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:i(`actions.disconnect`),destructive:!0,onConfirm:()=>{a&&r&&r(a),o(null)},onCancel:()=>o(null)})]})}function Pe({channel:e,pending:n,onConnect:i,onDisconnect:a}){let{t:o}=A(`contacts`),s=e.configured,{Icon:l,label:u}=r(e.health);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(g,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:_(e.key)}),s&&e.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:s?(0,J.jsxs)(J.Fragment,{children:[(0,J.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,J.jsx)(l,{className:`h-3 w-3`}),u]}),a?(0,J.jsx)(c,{variant:`danger`,onClick:a,disabled:n,children:o(n?`actions.disconnecting`:`actions.disconnect`)}):(0,J.jsx)(c,{variant:`outlined`,asChild:!0,children:(0,J.jsx)(j,{to:`${t.channels}?setup=${e.key}`,children:o(`actions.manage`)})})]}):i?(0,J.jsx)(c,{variant:`outlined`,onClick:i,disabled:n,children:o(`actions.connect`)}):null})]})}function Y({role:e,contactType:t}){let{label:n,tone:r}=X(e,t);return(0,J.jsx)(w,{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 Fe({assistantName:e,...t}){let{t:n}=A(`contacts`),r=b(e);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(U,{title:n(`assistantChannelsDetail.title`,{name:r}),accessory:(0,J.jsx)(Y,{role:`assistant`}),compactAccessory:!0}),(0,J.jsx)(U,{title:n(`assistantChannelsDetail.channelsTitle`),subtitle:n(`assistantChannelsDetail.channelsSubtitle`,{name:r}),children:(0,J.jsx)(Ne,{...t})})]})}var Z=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Ie(e){return Z.has(e)}function Le(e){return typeof e.source==`string`&&e.source.startsWith(`plugin:`)}function Q(e){return e.supportsVerification||Le(e)}function Re(e){return!!e?.address?.trim()}function ze(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&Oe(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`||Le(e)?{kind:`unverified`}:{kind:`setup`}}function Be(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||Ie(e.type)&&(r.push({id:e.type,source:`default`,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 Ve({channelId:e,name:t,className:n,style:r}){let i=h(e);if(i)return(0,q.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,J.jsx)(pe,{className:n,style:r});case`hash`:return(0,J.jsx)(me,{className:n,style:r});case`send`:return(0,J.jsx)(R,{className:n,style:r});case`phone`:return(0,J.jsx)(P,{className:n,style:r});case`mail`:return(0,J.jsx)(fe,{className:n,style:r});case`message-square`:return(0,J.jsx)(ue,{className:n,style:r});default:return(0,J.jsx)(K,{className:n,style:r})}}function $({contactChannels:e,availableChannels:t,channelsLoadFailed:n,a2aEnabled:r,setupLabel:i,verifyLoading:a,verifySubject:o=`self`,onSetupChannel:s,onVerifyChannel:c,onRevokeChannel:l,onLinkAccount:u}){let{t:d}=A(`contacts`),[f,p]=(0,q.useState)(null),[m,h]=(0,q.useState)(null),g=new Map;for(let t of e)t.status!==`revoked`&&(g.has(t.type)||g.set(t.type,t));let _=e=>{f&&(c?.(f.info.id,e),p(null))},v=Be(t,e,r);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-col`,children:[n&&(0,J.jsx)(`div`,{className:`px-1 py-2 text-sm`,style:{color:`var(--content-secondary)`},role:`status`,children:d(`contactChannelsSection.loadFailed`)}),v.map((e,t)=>{let n=g.get(e.id);return(0,J.jsxs)(`div`,{children:[t>0&&(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,J.jsx)(He,{info:e,existing:n,setupLabel:i??d(`contactChannelsSection.setupDefault`),verifyLoading:a,onSetup:s?()=>s(e.id):void 0,onVerify:c&&Q(e)?()=>p({info:e,existing:n}):void 0,onRevoke:l&&n?()=>h({channelId:n.id,channel:e}):void 0,onLinkAccount:u&&De.has(e.id)?()=>u(e.id):void 0})]},e.id)})]}),f?(0,J.jsx)(Ue,{info:f.info,existing:f.existing,verifySubject:o,onConfirm:_,onCancel:()=>p(null)}):null,m&&(0,J.jsx)(C,{open:!0,title:d(`contactChannelsSection.revokeConfirmTitle`,{channel:m.channel.label}),message:d(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:d(`actions.revoke`),destructive:!0,onConfirm:()=>{l?.(m.channelId,m.channel.id),h(null)},onCancel:()=>h(null)})]})}function He({info:e,existing:t,setupLabel:n,verifyLoading:r,onSetup:i,onVerify:a,onRevoke:o,onLinkAccount:s}){let{t:l}=A(`contacts`),u=ze(e,t);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,J.jsx)(Ve,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,J.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,J.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,J.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:u.kind===`connected`?(0,J.jsxs)(J.Fragment,{children:[(0,J.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,J.jsx)(N,{className:`h-3 w-3`}),l(`channelStatus.connected`)]}),o?(0,J.jsx)(c,{variant:`danger`,onClick:o,children:l(`actions.revoke`)}):null]}):u.kind===`verified`?(0,J.jsxs)(J.Fragment,{children:[(0,J.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,J.jsx)(N,{className:`h-3 w-3`}),l(`channelStatus.verified`)]}),o?(0,J.jsx)(c,{variant:`danger`,onClick:o,children:l(`actions.revoke`)}):null]}):u.kind===`unverified`?(0,J.jsx)(c,{variant:`outlined`,onClick:a,disabled:!a||r,children:l(r?`actions.verifying`:`actions.verify`)}):u.kind===`setup`?e.id===`a2a`?null:(0,J.jsxs)(J.Fragment,{children:[s?(0,J.jsxs)(c,{onClick:s,children:[(0,J.jsx)(he,{className:`h-3.5 w-3.5`}),l(`contactChannelsSection.linkAccount`)]}):null,(0,J.jsx)(c,{variant:`outlined`,onClick:i,disabled:!i,children:n})]}):null})]})}function Ue({info:e,existing:t,verifySubject:n,onConfirm:r,onCancel:i}){let{t:a}=A(`contacts`),[o,s]=(0,q.useState)(t?.address?.trim()??``),l=(0,q.useRef)(null),u=(0,q.useId)(),d=o.trim();return Re(t)?(0,J.jsx)(C,{open:!0,title:a(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label}),message:a(n===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:e.label}),confirmLabel:a(`actions.verify`),onConfirm:()=>{r()},onCancel:i}):(0,J.jsx)(y.Root,{open:!0,onOpenChange:e=>{e||i()},children:(0,J.jsx)(y.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),l.current?.focus()},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),i()},children:(0,J.jsxs)(`form`,{className:`flex flex-col`,onSubmit:e=>{e.preventDefault(),d.length!==0&&r(d)},children:[(0,J.jsx)(y.Header,{children:(0,J.jsx)(y.Title,{children:a(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,J.jsxs)(y.Body,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(y.Description,{children:a(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,J.jsx)(m,{ref:l,id:u,label:a(`contactChannelsSection.verifyAddressLabel`),type:`text`,value:o,onChange:e=>{s(e.target.value)},placeholder:a(`contactChannelsSection.verifyAddressPlaceholder`),autoComplete:`off`,spellCheck:!1,fullWidth:!0})]}),(0,J.jsxs)(y.Footer,{children:[(0,J.jsx)(c,{variant:`outlined`,type:`button`,onClick:i,children:a(`actions.cancel`)}),(0,J.jsx)(c,{type:`submit`,disabled:d.length===0,children:a(`actions.verify`)})]})]})})})}function We(e){return e===`none`||e===`low`||e===`medium`||e===`high`}function Ge(e,t){switch(t){case`none`:return e(`contactPermissions.preset.none`);case`low`:return e(`contactPermissions.preset.low`);case`medium`:return e(`contactPermissions.preset.medium`);case`high`:return e(`contactPermissions.preset.high`)}}function Ke(e,t){if(t===null)return e(`contactPermissions.inheritDescription`);switch(t){case`none`:return e(`contactPermissions.description.none`);case`low`:return e(`contactPermissions.description.low`);case`medium`:return e(`contactPermissions.description.medium`);case`high`:return e(`contactPermissions.description.high`)}}function qe(e){return e.role!==`guardian`&&e.contactType!==`assistant`}function Je({contact:e,pending:t,onAutoApproveThresholdChange:n}){let{t:r}=A(`contacts`),a=We(e.autoApproveThreshold)?e.autoApproveThreshold:null,o=a===null?null:i.find(e=>e.riskThreshold===a);return(0,J.jsx)(U,{title:r(`contactPermissions.title`),subtitle:r(`contactPermissions.subtitle`),children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`contact-permissions`,children:[(0,J.jsx)(`div`,{style:{maxWidth:280},children:(0,J.jsx)(T,{value:o?.id??null,placeholder:r(`contactPermissions.inheritLabel`),disabled:t,onSelectNone:()=>{n(null)},onChange:e=>{let t=i.find(t=>t.id===e);t&&n(t.riskThreshold)},options:[{value:null,label:r(`contactPermissions.inheritLabel`)},...i.map(e=>{let t=e.icon;return{value:e.id,label:Ge(r,e.riskThreshold),icon:(0,J.jsx)(t,{className:`h-3.5 w-3.5`})}})]})}),(0,J.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:Ke(r,a)})]})})}function Ye(e){return(0,J.jsx)(Xe,{...e},e.contact.id)}function Xe({contact:e,savePending:t,deletePending:n,verifyPending:r,mergePending:i=!1,canMerge:a=!1,availableChannels:o,channelsLoadFailed:s,a2aEnabled:l,onSave:u,onDelete:d,onMerge:f,onSetupChannel:p,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_,pendingAutoApproveThreshold:v,onAutoApproveThresholdChange:y}){let{t:b}=A(`contacts`),x=Me(e.displayName),[S,ee]=(0,q.useState)(x?``:e.displayName),[w,te]=(0,q.useState)(e.notes??``),[T,ne]=(0,q.useState)(!1),E=S.trim(),re=w.trim(),D=x?``:e.displayName,ie=e.notes??``,O=E!==D||re!==ie,k=E.length>0&&O&&!t&&!n,ae=x&&e.channels.length===0&&e.interactionCount===0,oe=E||(x?b(`contact.draftName`):e.displayName),se=b(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(U,{title:oe,accessory:(0,J.jsx)(Y,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:se,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(m,{label:b(`contact.nameLabel`),type:`text`,value:S,onChange:e=>ee(e.target.value),placeholder:b(`contactDetailView.namePlaceholder`),autoFocus:x,disabled:t||n,fullWidth:!0}),(0,J.jsx)(m,{label:b(`contact.notesLabel`),type:`text`,value:w,onChange:e=>te(e.target.value),placeholder:b(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(c,{type:`button`,onClick:()=>u({displayName:E,notes:re}),disabled:!k,children:b(t?`actions.saving`:`actions.save`)}),f?(0,J.jsx)(c,{type:`button`,variant:`outlined`,onClick:f,disabled:!a||ae||O||i||t||n,title:a?ae?b(`contactDetailView.mergeBlockedUnsavedDraft`):O?b(`contact.mergeBlockedUnsaved`):void 0:b(`contact.mergeBlockedNoCandidates`),children:b(i?`actions.merging`:`actions.merge`)}):null,(0,J.jsx)(c,{type:`button`,variant:`danger`,onClick:()=>{ae?d():ne(!0)},disabled:n,children:b(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,J.jsx)(U,{title:b(`contactDetailView.linkedAccountsTitle`),subtitle:b(`contactDetailView.linkedAccountsSubtitle`),children:(0,J.jsx)($,{contactChannels:e.channels,availableChannels:o,channelsLoadFailed:s,a2aEnabled:l,verifyLoading:r,verifySubject:`contact`,onSetupChannel:p,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_})}),qe(e)&&y?(0,J.jsx)(Je,{contact:e,pending:v,onAutoApproveThresholdChange:y}):null,(0,J.jsx)(C,{open:T,title:b(`contactDetailView.deleteConfirmTitle`,{name:oe}),message:b(`contactDetailView.deleteConfirmMessage`),confirmLabel:b(`actions.delete`),destructive:!0,onConfirm:()=>{ne(!1),d()},onCancel:()=>ne(!1)})]})}function Ze(e){return(0,J.jsx)(Qe,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function Qe({open:e,survivor:t,candidates:n,pending:r,errorMessage:i,onMerge:a,onClose:o}){let{t:s}=A(`contacts`),[l,u]=(0,q.useState)(``),[d,p]=(0,q.useState)(null);(0,q.useEffect)(()=>{d&&!n.some(e=>e.id===d)&&p(null)},[n,d]);let m=(0,q.useMemo)(()=>{let e=l.trim().toLowerCase();return e?n.filter(t=>t.displayName.toLowerCase().includes(e)):n},[n,l]),h=d?n.find(e=>e.id===d)??null:null,g=rt(t);return(0,J.jsx)(y.Root,{open:e,onOpenChange:e=>{!e&&!r&&o()},children:(0,J.jsxs)(y.Content,{size:`md`,children:[(0,J.jsxs)(y.Header,{icon:Ee,children:[(0,J.jsx)(y.Title,{children:h?s(`contactMergeDialog.titlePicked`,{donor:h.displayName,survivor:g}):s(`contactMergeDialog.titlePicking`,{survivor:g})}),(0,J.jsx)(y.Description,{children:s(h?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,J.jsxs)(y.Body,{className:`flex flex-col gap-3`,children:[h?(0,J.jsx)(tt,{survivor:t,donor:h}):n.length===0?(0,J.jsx)(nt,{}):(0,J.jsx)($e,{search:l,onSearch:u,candidates:m,onPick:p}),i?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:i}):null]}),(0,J.jsx)(y.Footer,{children:h?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(c,{variant:`outlined`,onClick:()=>p(null),disabled:r,leftIcon:(0,J.jsx)(V,{"aria-hidden":!0}),children:s(`actions.back`)}),(0,J.jsx)(c,{variant:`danger`,onClick:()=>a(h.id),disabled:r,children:s(r?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,J.jsx)(c,{variant:`outlined`,onClick:o,disabled:r,children:s(`actions.cancel`)})})]})})}function $e({search:e,onSearch:t,candidates:n,onPick:r}){let{t:i}=A(`contacts`);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(m,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:i(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,J.jsx)(z,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,J.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":i(`contactMergeDialog.listAriaLabel`),children:n.length===0?(0,J.jsx)(f,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:i(`contactsList.noMatches`)}):n.map(e=>(0,J.jsx)(et,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function et({contact:e,onPick:t}){let n=at(e).join(` | `)||void 0;return(0,J.jsx)(a,{asChild:!0,children:(0,J.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,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,J.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function tt({survivor:e,donor:t}){let{t:n}=A(`contacts`),r=rt(e),{moved:i,duplicates:a}=it(e,t);return(0,J.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,J.jsx)(`li`,{children:(0,J.jsx)(ie,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,J.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,J.jsx)(`li`,{children:n(`contactMergeDialog.channelsMoved`,{count:i.length,survivor:r,channels:i.map(e=>Ae(e.type)).join(`, `)})}),a.length>0?(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.duplicatesSkipped`,{count:a.length,survivor:r})}):null,t.notes?(0,J.jsx)(`li`,{children:n(`contactMergeDialog.notesAppended`)}):null,(0,J.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.irreversible`)})]})}function nt(){let{t:e}=A(`contacts`);return(0,J.jsx)(f,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function rt(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?D(`survivorName.you`,{ns:`contacts`}):D(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||D(`survivorName.thisContact`,{ns:`contacts`})}function it(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 at(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(Ae(e)))}return n}function ot({loading:e,guardian:t,assistantName:n,regularContacts:r,selection:i,onSelect:a,onAddContact:o,addingContact:s=!1,search:u,onSearchChange:d}){let{t:f}=A(`contacts`),p=u.trim()?r.filter(e=>e.displayName.toLowerCase().includes(u.trim().toLowerCase())):r;return(0,J.jsx)(l.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsxs)(l.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,J.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:f(`contactsList.heading`)}),(0,J.jsx)(c,{type:`button`,variant:`ghost`,loading:s,iconOnly:(0,J.jsx)(de,{"aria-hidden":!0}),onClick:o,disabled:s,"aria-label":f(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,J.jsx)(st,{name:t.displayName?f(`contactsList.youNamed`,{name:t.displayName}):f(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:i?.kind===`contact`&&i.contactId===t.id,onClick:()=>a({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,J.jsx)(st,{name:n?.trim()||f(`contactsList.assistantFallback`),role:`assistant`,selected:i?.kind===`assistant`,onClick:()=>a({kind:`assistant`}),trailingIcon:`more`})]}),(0,J.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),r.length>0?(0,J.jsx)(m,{type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:f(`contactsList.searchPlaceholder`),leftIcon:(0,J.jsx)(z,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,r.length>0?(0,J.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[p.map(e=>(0,J.jsx)(st,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:i?.kind===`contact`&&i.contactId===e.id,onClick:()=>a({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),p.length===0?(0,J.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:f(`contactsList.noMatches`)}):null]}):e?null:(0,J.jsx)(c,{type:`button`,variant:`ghost`,onClick:o,disabled:s,tintColor:`var(--primary-base)`,loading:s,leftIcon:(0,J.jsx)(B,{"aria-hidden":!0}),children:f(`contactsList.add`)})]})})}function st({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:o,trailingIcon:s,verified:c}){let{t:l}=A(`contacts`),u=r&&r.length>0?r.join(` | `):void 0,d=s===`pencil`?(0,J.jsx)(L,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):s===`more`?(0,J.jsx)(H,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,J.jsx)(a,{asChild:!0,active:i,children:(0,J.jsxs)(`button`,{type:`button`,onClick:o,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),u?(0,J.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:u}):null]}),(0,J.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[c===void 0?null:(0,J.jsx)(w,{tone:c?`positive`:`neutral`,children:l(c?`contactsList.verified`:`contactsList.unverified`)}),(0,J.jsx)(Y,{role:t,contactType:n}),d]})]})})}function ct(e){return(0,J.jsx)(lt,{...e},e.contact.id)}function lt({contact:e,savePending:t,verifyPending:n,mergePending:r=!1,canMerge:i=!1,availableChannels:a,channelsLoadFailed:o,a2aEnabled:s,onSave:l,onMerge:u,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p,onGenerateInviteLink:h}){let{t:g}=A(`contacts`),_=e.displayName.startsWith(`vellum-principal-`),v=_?``:e.displayName,[y,b]=(0,q.useState)(v),[x,S]=(0,q.useState)(e.notes??``),C=y.trim(),ee=x.trim(),w=C!==v.trim()||ee!==(e.notes??``).trim(),te=w&&!t,T=g(`contact.interactions`,{count:e.interactionCount});return(0,J.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,J.jsx)(U,{title:_?g(`contactsList.you`):g(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,J.jsx)(Y,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsx)(m,{label:g(`contact.nameLabel`),type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:g(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsx)(m,{label:g(`contact.notesLabel`),type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:g(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,J.jsx)(c,{variant:`primary`,onClick:()=>l({displayName:C||e.displayName,notes:ee}),disabled:!te,children:g(t?`actions.saving`:`actions.save`)}),u?(0,J.jsx)(c,{variant:`outlined`,onClick:u,disabled:!i||w||r||t,title:i?w?g(`contact.mergeBlockedUnsaved`):void 0:g(`contact.mergeBlockedNoCandidates`),children:g(r?`actions.merging`:`actions.merge`)}):null]})]})}),(0,J.jsx)(U,{title:g(`guardianDetailView.channelsTitle`),subtitle:g(`guardianDetailView.channelsSubtitle`),children:(0,J.jsx)($,{contactChannels:e.channels,availableChannels:a,channelsLoadFailed:o,a2aEnabled:s,setupLabel:g(`guardianDetailView.setupLabel`),verifyLoading:n,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p})}),h?(0,J.jsx)(G,{onClick:h}):null]})}function ut(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 dt(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function ft({open:e,channelLabel:t,contactName:n,accounts:r,loading:i,errorMessage:a,pendingAccountId:o,onPick:s,onClose:l,onInviteInstead:u}){let{t:d}=A(`contacts`),[f,p]=(0,q.useState)(``);(0,q.useEffect)(()=>{e&&p(``)},[e]);let h=(0,q.useMemo)(()=>ut(r??[],f),[r,f]),g=o!=null;return(0,J.jsx)(y.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,J.jsxs)(y.Content,{size:`sm`,children:[(0,J.jsxs)(y.Header,{children:[(0,J.jsx)(y.Title,{children:d(`linkAccountDialog.title`,{channel:t})}),(0,J.jsx)(y.Description,{children:(0,J.jsx)(ie,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:n},components:{contact:(0,J.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,J.jsxs)(y.Body,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(m,{type:`search`,value:f,onChange:e=>p(e.target.value),placeholder:d(`linkAccountDialog.searchPlaceholder`),"aria-label":d(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,J.jsx)(z,{className:`h-4 w-4`}),fullWidth:!0}),a?(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--system-negative-strong)]`,children:a}):null,(0,J.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:i?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.loading`)}):h.length===0?(0,J.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(r?.length??0)===0?d(`linkAccountDialog.noMembers`):d(`linkAccountDialog.noMatches`)}):(0,J.jsx)(`ul`,{className:`flex flex-col`,children:h.map(e=>(0,J.jsx)(`li`,{children:(0,J.jsxs)(`button`,{type:`button`,onClick:()=>s(e),disabled:g,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,J.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,J.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:dt(e.displayName)}),(0,J.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,J.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),o===e.id?(0,J.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,J.jsxs)(y.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,J.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ie,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,J.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),u?(0,J.jsxs)(c,{variant:`link`,className:`shrink-0`,onClick:u,disabled:g,children:[d(`linkAccountDialog.inviteInstead`),(0,J.jsx)(F,{className:`h-3.5 w-3.5`})]}):null]})]})})}function pt({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,q.useState)(!1),o=k({mutationFn:n=>we(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),S.success(D(`accountLink.linked`,{ns:`contacts`,username:t.account.username})),r()}}),s=(0,q.useCallback)(()=>{o.reset(),a(!0)},[o]),c=(0,q.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),l=(0,q.useCallback)(e=>{!n||o.isPending||o.mutate({contact:n,account:e})},[n,o]);return{channelType:t,dialogOpen:i,open:s,close:c,linkErrorMessage:o.error instanceof Error?o.error.message:o.error?D(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:l}}var mt=[{id:`slack`,source:`default`,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`,source:`default`,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`,source:`default`,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?`}}],ht=[];function gt({assistantId:e,onStartSetupConversation:r}){let{t:i}=A(`contacts`),a=o.use.a2aChannel(),c=ne.use.name(),l=ae(),[f]=oe(),m=f.get(`setup`),h=m&&s(m)?m:null,[g,_]=(0,q.useState)({kind:`assistant`}),v=xe(e),{paneRef:y,hasRoomForList:C,drawerOpen:w,openDrawer:te,closeDrawer:T}=ve(),[D,ie]=(0,q.useState)(``),[se,j]=(0,q.useState)(!1),le=b(c),M=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),N=re(M),ue=O({...x(M),enabled:!!e,select:e=>e.contacts}),P=be({assistantId:e,onStartSetupConversation:r}),de=O({...ee({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await u({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:mt};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),F=de.data??ht,fe=de.isError,I=ue.data,L=(0,q.useMemo)(()=>I?.find(e=>e.role===`guardian`)??null,[I]),pe=(0,q.useMemo)(()=>I?.filter(e=>e.role!==`guardian`)??[],[I]),R=(0,q.useMemo)(()=>g.kind===`contact`?I?.find(e=>e.id===g.contactId)??null:null,[I,g]),me=(0,q.useMemo)(()=>!I||!R?[]:I.filter(e=>e.id!==R.id&&e.role!==`guardian`),[I,R]),he=me.length>0,z=(0,q.useRef)(!!h);(0,q.useEffect)(()=>{z.current||L&&(z.current=!0,_({kind:`contact`,contactId:L.id}))},[L]);let B=(0,q.useCallback)(()=>l.invalidateQueries({queryKey:N}),[l,N]),V=k({mutationFn:()=>Ce(e,{displayName:je}),onMutate:async()=>{await l.cancelQueries({queryKey:N})},onSuccess:e=>{p(l,M,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),_({kind:`contact`,contactId:e.id})},onError:W(i(`contactsPage.createFailed`)),onSettled:()=>B()}),H=k({mutationFn:t=>Te(e,t),onSuccess:(e,t)=>{p(l,M,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),_({kind:`assistant`})},onError:W(i(`contactsPage.deleteFailed`)),onSettled:()=>B()}),U=k({mutationFn:({contactId:t,patch:n})=>Ce(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{p(l,M,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:W(i(`contactsPage.saveFailed`)),onSettled:()=>B()}),G=k({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Ce(e,{id:t,displayName:n,autoApproveThreshold:r}),onSuccess:e=>{p(l,M,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:W(i(`contactPermissions.saveFailed`)),onSettled:()=>B()}),K=d({onMutate:async()=>{await l.cancelQueries({queryKey:N})},onSuccess:(e,t)=>{let n=e.contact,r=t.body.mergeId;n&&(p(l,M,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==r).map(e=>e.id===n.id?n:e)}:void 0),_({kind:`contact`,contactId:n.id})),j(!1),S.success(i(`contactsPage.mergeSucceeded`))},onSettled:()=>B()}),Ee=(0,q.useCallback)(e=>{_(e),T(),j(!1),K.reset()},[T,K]),De=(0,q.useCallback)(()=>{K.reset(),j(!0)},[K]),Oe=(0,q.useCallback)(()=>{K.isPending||(j(!1),K.reset())},[K]),ke=n({onSuccess:()=>B()}),Me=(0,q.useCallback)((t,n)=>{ke.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[ke,e]),Ne=(0,q.useCallback)(()=>{V.isPending||V.mutate()},[V]),Pe=(0,q.useCallback)(e=>{if(!r)return;let t=F.find(t=>t.id===e);if(!t||Le(t))return;let n=t.setupMessages.contact;n&&r(n)},[F,r]),Y=(0,q.useCallback)(e=>{if(!r)return;let t=F.find(t=>t.id===e);if(!t||Le(t))return;let n=t.setupMessages.guardian;n&&r(n)},[F,r]),X=k({mutationFn:t=>Se(e,t.channelId),onSuccess:()=>B(),onError:W(i(`contactsPage.verifyFailed`))}),Z=k({mutationFn:t=>{if(!R)throw Error(`No contact selected`);return we(e,{id:R.id,displayName:R.displayName},{type:t.type,address:t.address})},onSuccess:()=>B(),onError:W(i(`contactsPage.verifyFailed`))}),Ie=(0,q.useCallback)((e,t)=>{if(!R)return;let n=t?.trim();if(n){Z.mutate({type:e,address:n});return}let r=R.channels.find(t=>t.type===e&&t.status!==`revoked`);r?.address?.trim()&&X.mutate({channelId:r.id})},[R,Z,X]),Q=pt({assistantId:e,channelType:`slack`,contact:R?{id:R.id,displayName:R.displayName}:null,onLinked:B}),Re=O({...E(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),ze=P.channels.some(e=>e.key===`slack`&&e.configured),Be=(0,q.useCallback)(e=>{e===Q.channelType&&Q.open()},[Q]),Ve=H.isPending?H.variables:null,$=(0,q.useMemo)(()=>{if(!R)return null;let e=R;return U.isPending&&U.variables?.contactId===R.id&&(e={...e,displayName:U.variables.patch.displayName,notes:U.variables.patch.notes}),G.isPending&&G.variables?.contactId===R.id&&(e={...e,autoApproveThreshold:G.variables.autoApproveThreshold}),e},[R,U.isPending,U.variables,G.isPending,G.variables]);if(h)return(0,J.jsx)(ce,{to:`${t.channels}?setup=${h}`,replace:!0});let He={loading:ue.isLoading,assistantName:le,guardian:L?{id:L.id,displayName:L.displayName.startsWith(`vellum-principal-`)?``:L.displayName,role:L.role,channelTypes:yt(L.channels,a)}:null,regularContacts:pe.filter(e=>e.id!==Ve).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:yt(e.channels,a),verified:vt(e.channels)})),selection:g,onAddContact:Ne,addingContact:V.isPending,search:D,onSearchChange:ie};return(0,J.jsxs)(`div`,{ref:y,className:`flex min-h-0 flex-1 overflow-hidden ${C?`flex-row gap-6`:`flex-col gap-4`}`,children:[C?(0,J.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,J.jsx)(ot,{...He,onSelect:Ee})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex items-center`,children:(0,J.jsx)(_e,{onClick:te})}),(0,J.jsx)(ge,{open:w,onClose:T,title:i(`contactsPage.title`),children:(0,J.jsx)(ot,{...He,onSelect:Ee})})]}),(0,J.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:g.kind===`assistant`||g.kind===`contact`&&g.contactId===Ve?(0,J.jsx)(Fe,{assistantName:le,channels:P.channels,pendingChannelKey:P.pendingChannelKey,onConnect:P.onSetup,onDisconnect:P.onDisconnect}):$?$.role===`guardian`?(0,J.jsx)(ct,{contact:$,savePending:U.isPending,verifyPending:X.isPending||Z.isPending,mergePending:K.isPending,canMerge:he,availableChannels:F,channelsLoadFailed:fe,a2aEnabled:a,onSave:e=>{U.mutate({contactId:$.id,patch:e})},onMerge:De,onSetupChannel:r?Y:void 0,onVerifyChannel:Ie,onRevokeChannel:Me,onGenerateInviteLink:a?v.open:void 0}):(0,J.jsx)(Ye,{contact:$,savePending:U.isPending,deletePending:H.isPending,verifyPending:X.isPending||Z.isPending,mergePending:K.isPending,canMerge:he,availableChannels:F,channelsLoadFailed:fe,a2aEnabled:a,onSave:e=>{U.mutate({contactId:$.id,patch:e})},onDelete:()=>{H.mutate($.id)},onMerge:De,onSetupChannel:r?Pe:void 0,onVerifyChannel:Ie,onRevokeChannel:Me,onLinkAccount:ze?Be:void 0,pendingAutoApproveThreshold:G.isPending,onAutoApproveThresholdChange:e=>{G.mutate({contactId:$.id,displayName:$.displayName,autoApproveThreshold:e})}}):(0,J.jsx)(_t,{})}),R?(0,J.jsx)(Ze,{open:se,survivor:R,candidates:me,pending:K.isPending,errorMessage:K.error instanceof Error?K.error.message:K.error?i(`contactsPage.mergeFailed`):null,onMerge:t=>K.mutate({path:{assistant_id:e},body:{keepId:R.id,mergeId:t}}),onClose:Oe}):null,(0,J.jsx)(ft,{open:Q.dialogOpen,channelLabel:Ae(`slack`),contactName:R?.displayName??``,accounts:Re.data,loading:Re.isLoading,errorMessage:Re.isError?i(`contactsPage.rosterLoadFailed`):Q.linkErrorMessage,pendingAccountId:Q.pendingAccountId,onPick:Q.pick,onClose:Q.close,onInviteInstead:r?()=>{Q.close(),Pe(Q.channelType)}:void 0}),(0,J.jsx)(ye,{open:v.isOpen,assistantId:e,onClose:v.close})]})}function _t(){let{t:e}=A(`contacts`);return(0,J.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,J.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function vt(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||Oe(e)))}function yt(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(Ae(e)))}return r}function bt(){let e=se(),t=te();return(0,J.jsx)(gt,{assistantId:t,onStartSetupConversation:t=>{v(e,{prompt:t})}},t)}export{bt as ContactsPageRoute};