@vellumai/web 0.11.10 → 0.11.11-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 (371) hide show
  1. package/dist/assets/{a2a-invite-CXZCA0Zh.js → a2a-invite-_wGU6HWn.js} +1 -1
  2. package/dist/assets/{about-page-DiyUJjGf.js → about-page-DUO0LASY.js} +1 -1
  3. package/dist/assets/{account-page-CJWUeKni.js → account-page-D42H7PzM.js} +1 -1
  4. package/dist/assets/{account-shell-BF0wq3dL.js → account-shell-8ayvWwg5.js} +1 -1
  5. package/dist/assets/acp-run-detail-panel-B0Su6BSV.js +3 -0
  6. package/dist/assets/{activity-redirect-page-Bqoawew6.js → activity-redirect-page-CwB5jmpQ.js} +1 -1
  7. package/dist/assets/activity-steps-panel-GCIpCAXt.js +1 -0
  8. package/dist/assets/{add-credits-modal-0MXreRar.js → add-credits-modal-CcQltjVO.js} +1 -1
  9. package/dist/assets/ai-page-DOuG64bJ.js +1 -0
  10. package/dist/assets/android-billing-handoff-DX4FW2PE.js +1 -0
  11. package/dist/assets/{api-key-screen-DHqMahec.js → api-key-screen-BsqXUt8S.js} +1 -1
  12. package/dist/assets/{app-info-DmJ1IJBZ.js → app-info-CFw-pJBd.js} +1 -1
  13. package/dist/assets/archive-redirect-page-Dp1mnnnG.js +1 -0
  14. package/dist/assets/{assistant-status-panel-gPe4jn29.js → assistant-status-panel-Gu7yZfSV.js} +1 -1
  15. package/dist/assets/{auth-welcome-screen-CroiP_sh.js → auth-welcome-screen-CoRWc9Wn.js} +1 -1
  16. package/dist/assets/avatar-random-nmxBpjvk.js +2 -0
  17. package/dist/assets/{await-org-header-settled-CYg9juTz.js → await-org-header-settled-BuslhVn1.js} +1 -1
  18. package/dist/assets/background-task-detail-panel-BRJH3dlZ.js +1 -0
  19. package/dist/assets/billing-page-eEkbbsbp.js +3 -0
  20. package/dist/assets/{billing-redirect-page-piXEk2bD.js → billing-redirect-page-CvzCPneC.js} +1 -1
  21. package/dist/assets/{bookmarks-page-ixMKQPzN.js → bookmarks-page-BHTRMGuj.js} +1 -1
  22. package/dist/assets/{bundle-confirm-page-BZfmArZf.js → bundle-confirm-page-YP0P2TXv.js} +1 -1
  23. package/dist/assets/channel-transcript-panel-08PR-PLD.js +1 -0
  24. package/dist/assets/channels-page-route-B_xVOdyO.js +1 -0
  25. package/dist/assets/chat-BZAgyepa.js +3 -0
  26. package/dist/assets/chat-B_LNeTTq.js +3 -0
  27. package/dist/assets/chat-D6ymn2HV.js +3 -0
  28. package/dist/assets/chat-Dcr3nKow.js +3 -0
  29. package/dist/assets/chat-info-panel-BTcARkxm.js +1 -0
  30. package/dist/assets/checkout-continuation-tAX1_m3V.js +1 -0
  31. package/dist/assets/checkout-page-D8SAsMWh.js +1 -0
  32. package/dist/assets/checkout-return-target-Dwmbf6kF.js +1 -0
  33. package/dist/assets/{command-palette-BYjwAuJQ.js → command-palette-BCJ09PN8.js} +1 -1
  34. package/dist/assets/{command-palette-window-page-KNdnCkz_.js → command-palette-window-page-ChxjtkGN.js} +1 -1
  35. package/dist/assets/common-BwTsuJS0.js +1 -0
  36. package/dist/assets/common-C8F4Ck2i.js +1 -0
  37. package/dist/assets/common-CqRcxmv_.js +1 -0
  38. package/dist/assets/common-Pd0MI_So.js +1 -0
  39. package/dist/assets/{community-page-CGeHYhxR.js → community-page-CODQYbbU.js} +1 -1
  40. package/dist/assets/{companion-accent-DwBPqfnb.js → companion-accent-tJqpwbpU.js} +1 -1
  41. package/dist/assets/{companion-layout-Bv3xdQBy.js → companion-layout-B10TRaer.js} +1 -1
  42. package/dist/assets/companion-surface-page-CE94Tl96.js +1 -0
  43. package/dist/assets/companion-watch-frame-page-iLlHdxzO.js +1 -0
  44. package/dist/assets/{connect-page-DvDO8pYQ.js → connect-page-45_SQ9Hv.js} +1 -1
  45. package/dist/assets/{consent-controls-Cqi-XchY.js → consent-controls-BsInitSK.js} +1 -1
  46. package/dist/assets/contacts-gateway-7sXdqgaZ.js +1 -0
  47. package/dist/assets/contacts-page-route-Cw5iPa7X.js +1 -0
  48. package/dist/assets/{credential-entry-page-DVLlpzsQ.js → credential-entry-page-DFmx4GmU.js} +1 -1
  49. package/dist/assets/credentials-page-yqSKY71j.js +1 -0
  50. package/dist/assets/{csv-preview-ClM4J2DW.js → csv-preview-CJJ7UWi0.js} +1 -1
  51. package/dist/assets/danger-zone-redirect-page-Dnvt2tnF.js +1 -0
  52. package/dist/assets/debug-page-BGfvW4U3.js +4 -0
  53. package/dist/assets/deploy-dialogs-BPespFRy.js +1 -0
  54. package/dist/assets/{detail-card-DozMITtn.js → detail-card-DuMOMNDt.js} +1 -1
  55. package/dist/assets/{detail-panel-stop-button-DFPBKjBo.js → detail-panel-stop-button-b7hxWMlm.js} +1 -1
  56. package/dist/assets/{detail-primitives-0Z051SZJ.js → detail-primitives-Brk11nJ4.js} +1 -1
  57. package/dist/assets/developer-page-DUzrkexY.js +1 -0
  58. package/dist/assets/devices-redirect-page-DyOzvvCC.js +1 -0
  59. package/dist/assets/{dictation-overlay-page-Bocg7l5v.js → dictation-overlay-page-BpQMn4ur.js} +1 -1
  60. package/dist/assets/{document-viewer-page-C7s8-yWd.js → document-viewer-page-CRi_6mfy.js} +1 -1
  61. package/dist/assets/{ellipsis-vertical-D7YDF4in.js → ellipsis-vertical-DADudCz4.js} +1 -1
  62. package/dist/assets/{emails-page-aS97qZTB.js → emails-page-C74h6Q18.js} +1 -1
  63. package/dist/assets/emoji-catalog-data-0ErKKUgg.js +1 -0
  64. package/dist/assets/environment-store-B4U2yUid.js +1 -0
  65. package/dist/assets/{esm-a0gpEIyX.js → esm-BGgsNk0r.js} +1 -1
  66. package/dist/assets/esm-BRd6ii0N.js +2 -0
  67. package/dist/assets/esm-CAyJeylE.js +2 -0
  68. package/dist/assets/esm-CVGx4tdT.js +2 -0
  69. package/dist/assets/{esm-BhPoSi3M.js → esm-Dk9SdDAD.js} +1 -1
  70. package/dist/assets/{esm-ClRq7QTb.js → esm-Dl792NhE.js} +2 -2
  71. package/dist/assets/esm-Dm3aeuGe.js +1 -0
  72. package/dist/assets/esm-OKy-T4ws.js +2 -0
  73. package/dist/assets/esm-VMeibMx_.js +2 -0
  74. package/dist/assets/file-diff-view-CiCu8bMj.js +3 -0
  75. package/dist/assets/{file-editor-d-VpdSmC.js → file-editor-BD8PNNu7.js} +1 -1
  76. package/dist/assets/{folder-open-DbnJZzcO.js → folder-open-BDPMS2Bk.js} +1 -1
  77. package/dist/assets/general-page-RrOGJarz.js +2 -0
  78. package/dist/assets/hatching-screen-DVkz4QAA.js +1 -0
  79. package/dist/assets/home-BF9986ga.js +1 -0
  80. package/dist/assets/home-BG3X65Tv.js +1 -0
  81. package/dist/assets/home-BUeCo3yU.js +1 -0
  82. package/dist/assets/home-C8krCVKm.js +1 -0
  83. package/dist/assets/{hosting-screen-Cvd_lgtV.js → hosting-screen-DBzLZkSJ.js} +1 -1
  84. package/dist/assets/{icons-B-6TfGtd.js → icons-J6Mg9wGk.js} +1 -1
  85. package/dist/assets/identity-page-route-DHRyQDCH.js +7 -0
  86. package/dist/assets/index-jpjzZb6b.js +379 -0
  87. package/dist/assets/index-xoHlTuU-.css +2 -0
  88. package/dist/assets/inspect-page-BWNt4rrQ.js +9 -0
  89. package/dist/assets/integrations-page-DzvW1_85.js +1 -0
  90. package/dist/assets/{intelligence-layout-BHPtC2az.js → intelligence-layout-DJKG-nX6.js} +1 -1
  91. package/dist/assets/keyboard-shortcuts-redirect-page-BSIIufUC.js +1 -0
  92. package/dist/assets/latest-assistant-text-D48YOxGw.js +24 -0
  93. package/dist/assets/library-detail-page-ILf2Qy9p.js +1 -0
  94. package/dist/assets/library-page-Dz-I6fon.js +1 -0
  95. package/dist/assets/login-page-DHvA24qu.js +1 -0
  96. package/dist/assets/logout-page-VSAEudIL.js +1 -0
  97. package/dist/assets/{logs-layout-BtCoT0Cv.js → logs-layout-CfXGPNn_.js} +1 -1
  98. package/dist/assets/markdown-preview-DXQeH-xe.js +1 -0
  99. package/dist/assets/{media-preview-DvwMMiAb.js → media-preview-CeEbSIWW.js} +1 -1
  100. package/dist/assets/memory-page-route-PKbCFo_e.js +2 -0
  101. package/dist/assets/{memory-router-playground-page-knM-79pF.js → memory-router-playground-page-D-WxucPv.js} +1 -1
  102. package/dist/assets/message-files-panel-ClB4OHKu.js +1 -0
  103. package/dist/assets/{metric-card-tzSXowqX.js → metric-card-B4Gz0bhc.js} +1 -1
  104. package/dist/assets/{notifications-page-iwCiEsvG.js → notifications-page-hpLH5EtM.js} +1 -1
  105. package/dist/assets/{oauth-complete-page-BSNj9OfZ.js → oauth-complete-page-BtjuGpWP.js} +1 -1
  106. package/dist/assets/{oauth-popup-complete-page-C5tlMQzH.js → oauth-popup-complete-page-mp-6HzBF.js} +2 -2
  107. package/dist/assets/onboarding-Bp4I4_8q.js +1 -0
  108. package/dist/assets/onboarding-DWCktMSZ.js +1 -0
  109. package/dist/assets/onboarding-DfDEWpm3.js +1 -0
  110. package/dist/assets/onboarding-SOv21YJD.js +1 -0
  111. package/dist/assets/{page-shell-yrQdXH7t.js → page-shell-CHCSTsj9.js} +1 -1
  112. package/dist/assets/{pairing-page-CL8D36Jw.js → pairing-page-BvwfSoA6.js} +1 -1
  113. package/dist/assets/password-reset-page-C5pZc0DV.js +1 -0
  114. package/dist/assets/pdf-file-preview-CsGCw8JE.js +1 -0
  115. package/dist/assets/{peeking-eyes-CR9he4vp.js → peeking-eyes-DzPVjsGl.js} +1 -1
  116. package/dist/assets/personality-page-4aidsu27.js +1 -0
  117. package/dist/assets/personality-page-CEMD70q6.js +1 -0
  118. package/dist/assets/personality-sliders-DGm9A3BW.js +1 -0
  119. package/dist/assets/plans-page-_r8MVNhb.js +1 -0
  120. package/dist/assets/{platform-loopback-page-BJQB1fxq.js → platform-loopback-page-CwgM2jU7.js} +1 -1
  121. package/dist/assets/plugin-detail-page-C8rxUWMn.js +1 -0
  122. package/dist/assets/plugins-page-DNJlTg8g.js +1 -0
  123. package/dist/assets/{preview-error-CWZXjhgJ.js → preview-error-BUjzhle1.js} +1 -1
  124. package/dist/assets/privacy-page-CupfCCzq.js +1 -0
  125. package/dist/assets/privacy-screen-TaBkMvOR.js +1 -0
  126. package/dist/assets/{provider-callback-page-BiJRbo2j.js → provider-callback-page-BGXQSfbn.js} +1 -1
  127. package/dist/assets/{provider-key-e7bkE4FW.js → provider-key-Bq66KgUO.js} +1 -1
  128. package/dist/assets/{provider-signup-page-BHcqfJkj.js → provider-signup-page-D_eHOfl0.js} +1 -1
  129. package/dist/assets/{provisioning-targets-BudKfChL.js → provisioning-targets-BLTBrT0f.js} +1 -1
  130. package/dist/assets/{quick-input-page-CtnR_stl.js → quick-input-page-B5xvXL1F.js} +1 -1
  131. package/dist/assets/{rehype-katex-Byll-Mky.js → rehype-katex-BgUVZdyw.js} +1 -1
  132. package/dist/assets/{repeat-AwziNvx5.js → repeat-CCwj4O1J.js} +1 -1
  133. package/dist/assets/{research-mock-page-CcU6Ca5m.js → research-mock-page-PaQ837TX.js} +1 -1
  134. package/dist/assets/research-onboarding-route-CNoGqLkQ.js +50 -0
  135. package/dist/assets/{review-terms-screen-DNEe5COX.js → review-terms-screen-BqpTh6zA.js} +1 -1
  136. package/dist/assets/{schedules-C0VutBSw.js → schedules-2XQ76whr.js} +1 -1
  137. package/dist/assets/{schedules-DaEQbLMm.js → schedules-De4Odvkc.js} +1 -1
  138. package/dist/assets/{schedules-CtfOJ78L.js → schedules-De57J4ta.js} +1 -1
  139. package/dist/assets/schedules-DxeSUihA.js +1 -0
  140. package/dist/assets/{schedules-PMAnmP3b.js → schedules-blEdQ6yp.js} +1 -1
  141. package/dist/assets/schedules-page-d65A8NQF.js +1 -0
  142. package/dist/assets/security-redirect-page-CuZ3fT0R.js +1 -0
  143. package/dist/assets/select-assistant-screen-CdalEz_9.js +1 -0
  144. package/dist/assets/{self-hosted-servers-X73OsSz4.js → self-hosted-servers-CyDwHGSp.js} +1 -1
  145. package/dist/assets/{service-form-controls-Cn7xIKry.js → service-form-controls-CBEEpO26.js} +1 -1
  146. package/dist/assets/{setting-row-CwEW1k3A.js → setting-row-BvR6-08v.js} +1 -1
  147. package/dist/assets/settings-CBz3nIpZ.js +3 -0
  148. package/dist/assets/settings-CqYNz8kW.js +3 -0
  149. package/dist/assets/settings-CuRkdN0w.js +3 -0
  150. package/dist/assets/settings-divider-DU3ByZQg.js +1 -0
  151. package/dist/assets/settings-hFa4u0Fj.js +3 -0
  152. package/dist/assets/settings-layout-DCWgW5D0.js +1 -0
  153. package/dist/assets/share-feedback-modal-DHtKDVtF.js +2 -0
  154. package/dist/assets/{sidebar-tree-ppFGlSW4.js → sidebar-tree-BgbzXxYi.js} +1 -1
  155. package/dist/assets/{signup-page-CBFu4Phx.js → signup-page-BDateKEC.js} +1 -1
  156. package/dist/assets/{signup-shell-C9bkpRpP.js → signup-shell-CotTCquh.js} +1 -1
  157. package/dist/assets/skill-detail-page-nSrYNnY9.js +2 -0
  158. package/dist/assets/skill-detail-panel-BHAmYq37.js +1 -0
  159. package/dist/assets/{skill-removal-dialog-Dmej1bap.js → skill-removal-dialog-B_hpnrPZ.js} +1 -1
  160. package/dist/assets/skills-page-CY36J7Rw.js +1 -0
  161. package/dist/assets/{sounds-page-BqQ6POCA.js → sounds-page-CVl-NVDn.js} +1 -1
  162. package/dist/assets/{start-screen-ClrAUbI0.js → start-screen-CgauyZIw.js} +1 -1
  163. package/dist/assets/stt-language-picker-modal-N72XuoQE.js +1 -0
  164. package/dist/assets/subagent-detail-panel-DnC_SVFh.js +1 -0
  165. package/dist/assets/superpowers-page-INeojqYn.js +1 -0
  166. package/dist/assets/{system-events-page-Bm5hG4ru.js → system-events-page-OihKZDZU.js} +1 -1
  167. package/dist/assets/system-events-redirect-page-Bl15Jd-C.js +1 -0
  168. package/dist/assets/{text-preview-BKJ1Aeao.js → text-preview-BDpY47s1.js} +1 -1
  169. package/dist/assets/{theme-stage-page-DlRKsOdI.js → theme-stage-page-DT4intWx.js} +1 -1
  170. package/dist/assets/{tiptap-document-editor-B-vV6rr1.js → tiptap-document-editor-BLnpY6Pv.js} +2 -2
  171. package/dist/assets/tool-detail-panel-DC4D2Jlb.js +15 -0
  172. package/dist/assets/{trait-cycle-row-0CXwkqPS.js → trait-cycle-row-DaEuqLmF.js} +1 -1
  173. package/dist/assets/upgrade-cancel-page-CFVdwqug.js +1 -0
  174. package/dist/assets/{upgrade-success-page-CbbRpoIM.js → upgrade-success-page-BO2OzxPx.js} +1 -1
  175. package/dist/assets/usage-redirect-page-Cn2F7Ezg.js +1 -0
  176. package/dist/assets/use-app-delete-dvAb-5JI.js +1 -0
  177. package/dist/assets/use-assistant-identity-details--yIMhZJo.js +1 -0
  178. package/dist/assets/use-checkout-dismiss-refresh-BQT7Bbuc.js +1 -0
  179. package/dist/assets/{use-edge-swipe-back-DONCpBgK.js → use-edge-swipe-back-HAgGP4y-.js} +2 -2
  180. package/dist/assets/{use-hotkey-recorder-DKlT-BSf.js → use-hotkey-recorder-C2dwFKcz.js} +1 -1
  181. package/dist/assets/use-invite-link-dialog-DRWD3T4t.js +1 -0
  182. package/dist/assets/{use-platform-assistant-id-DxHYaWx7.js → use-platform-assistant-id-BtpswT_x.js} +1 -1
  183. package/dist/assets/use-return-to-short-circuit-OqzatVUm.js +1 -0
  184. package/dist/assets/{use-side-list-room-CKAXuhLb.js → use-side-list-room-CnAOR18Q.js} +1 -1
  185. package/dist/assets/{use-skill-actions-weVkg8kB.js → use-skill-actions-D4ct6gVy.js} +1 -1
  186. package/dist/assets/{use-skill-detail-files-B6B6qn4A.js → use-skill-detail-files-DYeHOVus.js} +1 -1
  187. package/dist/assets/use-supports-credentials-settings-DYOcFNFw.js +1 -0
  188. package/dist/assets/use-transcript-message-by-id-8Nt8lSao.js +1 -0
  189. package/dist/assets/{vendor-CCI2T82b.js → vendor-CV8wawxx.js} +3 -3
  190. package/dist/assets/voice-page-Dh62TnVf.js +1 -0
  191. package/dist/assets/wake-detail-panel-F1IlFslD.js +1 -0
  192. package/dist/assets/{weather-forecast-display-CuijMBMn.js → weather-forecast-display-DDqsvcr0.js} +1 -1
  193. package/dist/assets/{web-DFZ_YZd_.js → web-B7Y6zjYj.js} +1 -1
  194. package/dist/assets/{web-rdfhOXRa.js → web-BBa5psPY.js} +1 -1
  195. package/dist/assets/{web-B3en8Rn5.js → web-BEBOyL2B.js} +1 -1
  196. package/dist/assets/{web-EwBZl1wu.js → web-BOqVDQt4.js} +1 -1
  197. package/dist/assets/{web-WkD7VOGO.js → web-BZzdQ9pk.js} +1 -1
  198. package/dist/assets/{web-eI0P3yE6.js → web-DU-rNdfR.js} +1 -1
  199. package/dist/assets/{web-CoxWKp0K.js → web-J5TpUYg8.js} +1 -1
  200. package/dist/assets/{web-UubwrDv3.js → web-rLK7aHD3.js} +1 -1
  201. package/dist/assets/{web-BEoX04Jw.js → web-v3Sg2PMW.js} +1 -1
  202. package/dist/assets/welcome-screen-C2ky-B2i.js +1 -0
  203. package/dist/assets/workflow-detail-panel-B4xH8ny2.js +1 -0
  204. package/dist/assets/workspace-page-ND0GVGa5.js +1 -0
  205. package/dist/images/integrations/ATTRIBUTION.md +7 -1
  206. package/dist/images/integrations/stripe-link.svg +1 -0
  207. package/dist/index.html +4 -4
  208. package/dist/skills/stripe-app-setup/assets/icon.svg +1 -1
  209. package/dist/skills/stripe-link-wallet/assets/icon.svg +1 -1
  210. package/package.json +1 -1
  211. package/dist/assets/acp-run-detail-panel-rEbi1ucP.js +0 -5
  212. package/dist/assets/activity-steps-panel-BEVnG3V-.js +0 -1
  213. package/dist/assets/ai-page-CiAqQ6Bt.js +0 -1
  214. package/dist/assets/android-billing-handoff-Do0Z_tWL.js +0 -1
  215. package/dist/assets/archive-redirect-page-BHo8cKBO.js +0 -1
  216. package/dist/assets/avatar-random-B3s-p6ri.js +0 -2
  217. package/dist/assets/background-task-detail-panel-viJcb3cl.js +0 -1
  218. package/dist/assets/billing-page-DK2GIN6k.js +0 -3
  219. package/dist/assets/channel-transcript-panel-CjU1kHAM.js +0 -1
  220. package/dist/assets/channels-page-route-TMKiofYF.js +0 -1
  221. package/dist/assets/chat-BY2HhBFw.js +0 -3
  222. package/dist/assets/chat-BbBv19qz.js +0 -3
  223. package/dist/assets/chat-CXKEPjVV.js +0 -3
  224. package/dist/assets/chat-D7KieOMp.js +0 -3
  225. package/dist/assets/checkout-continuation--Gp9g8Cs.js +0 -1
  226. package/dist/assets/checkout-page-Dt_x1-Ak.js +0 -1
  227. package/dist/assets/checkout-return-target-DgcrCyAx.js +0 -1
  228. package/dist/assets/common-BPztxW3Y.js +0 -1
  229. package/dist/assets/common-BUtR7wv2.js +0 -1
  230. package/dist/assets/common-CbFrJQkH.js +0 -1
  231. package/dist/assets/common-Cl4fl5fm.js +0 -1
  232. package/dist/assets/companion-surface-page-DVqRvVT7.js +0 -1
  233. package/dist/assets/companion-watch-frame-page-Dmj0BZLk.js +0 -1
  234. package/dist/assets/contacts-gateway-BoQ3VEpG.js +0 -1
  235. package/dist/assets/contacts-page-route-dMHiwIhE.js +0 -1
  236. package/dist/assets/credentials-page-DGuGRbME.js +0 -1
  237. package/dist/assets/danger-zone-redirect-page-QSBD8j9D.js +0 -1
  238. package/dist/assets/debug-page-BNLV56hO.js +0 -4
  239. package/dist/assets/deploy-dialogs-B5rrR-6M.js +0 -1
  240. package/dist/assets/developer-page-bqyYnvvf.js +0 -1
  241. package/dist/assets/devices-redirect-page-D7XxyAb6.js +0 -1
  242. package/dist/assets/emoji-catalog-data-DyO0VsDK.js +0 -1
  243. package/dist/assets/environment-store-Cwp_aQVg.js +0 -1
  244. package/dist/assets/esm-BNAZWYPG.js +0 -2
  245. package/dist/assets/esm-C2CZjfig.js +0 -2
  246. package/dist/assets/esm-C66pb4Yp.js +0 -2
  247. package/dist/assets/esm-CblTp9Ve.js +0 -2
  248. package/dist/assets/esm-DP3PASER.js +0 -1
  249. package/dist/assets/esm-Egdl0RD-.js +0 -2
  250. package/dist/assets/general-page-Bpcb3cOw.js +0 -2
  251. package/dist/assets/hatching-screen-BqKoH9nP.js +0 -1
  252. package/dist/assets/home-C32sLT0d.js +0 -1
  253. package/dist/assets/home-D405qdeA.js +0 -1
  254. package/dist/assets/home-DFtnBWbS.js +0 -1
  255. package/dist/assets/home-uCy8kFT4.js +0 -1
  256. package/dist/assets/identity-page-route-Be9kkJ6U.js +0 -7
  257. package/dist/assets/index-BHBLeC80.js +0 -373
  258. package/dist/assets/index-D5tXP3pV.css +0 -2
  259. package/dist/assets/inspect-page-UYu_6yuD.js +0 -9
  260. package/dist/assets/integrations-page-4nGzHdaB.js +0 -1
  261. package/dist/assets/keyboard-shortcuts-redirect-page-HZbAKXV3.js +0 -1
  262. package/dist/assets/latest-assistant-text-BVDHPDcj.js +0 -24
  263. package/dist/assets/library-detail-page-0dxGGatK.js +0 -1
  264. package/dist/assets/library-page-CN0wcNRe.js +0 -1
  265. package/dist/assets/login-page-Ce0yHHIY.js +0 -1
  266. package/dist/assets/logout-page-HAgKDdSg.js +0 -1
  267. package/dist/assets/markdown-preview-oANTtJ4h.js +0 -1
  268. package/dist/assets/memory-page-route-Bafhl3aE.js +0 -2
  269. package/dist/assets/message-files-panel-CoABbiHA.js +0 -1
  270. package/dist/assets/onboarding-BPTfs_sw.js +0 -1
  271. package/dist/assets/onboarding-C7OPvVK5.js +0 -1
  272. package/dist/assets/onboarding-N4S8AW6k.js +0 -1
  273. package/dist/assets/onboarding-USgRFwiW.js +0 -1
  274. package/dist/assets/password-reset-page-BP0tU3JU.js +0 -1
  275. package/dist/assets/pdf-file-preview-DotetIoy.js +0 -1
  276. package/dist/assets/personality-page-BzN3CB4G.js +0 -1
  277. package/dist/assets/plans-page-BDO6hVar.js +0 -1
  278. package/dist/assets/plugin-detail-page-DbOSNUlU.js +0 -1
  279. package/dist/assets/plugins-page-CrmooYb6.js +0 -1
  280. package/dist/assets/privacy-page-DTg59h01.js +0 -1
  281. package/dist/assets/privacy-screen-CAuKxlCT.js +0 -1
  282. package/dist/assets/research-onboarding-route-C_1EYWlc.js +0 -50
  283. package/dist/assets/schedules-C6GFTq9e.js +0 -1
  284. package/dist/assets/schedules-page-DF9d_-hO.js +0 -1
  285. package/dist/assets/security-redirect-page-fOqpqXhg.js +0 -1
  286. package/dist/assets/select-assistant-screen-7s__H50j.js +0 -1
  287. package/dist/assets/settings--jCGbMu6.js +0 -3
  288. package/dist/assets/settings-3vxhzYeD.js +0 -3
  289. package/dist/assets/settings-B-KoDbyO.js +0 -3
  290. package/dist/assets/settings-DwOrI3PD.js +0 -3
  291. package/dist/assets/settings-divider-DvaVqZSv.js +0 -1
  292. package/dist/assets/settings-layout-DKQW650m.js +0 -1
  293. package/dist/assets/share-feedback-modal-CXO1WiLR.js +0 -2
  294. package/dist/assets/skill-detail-page-C34NDUXJ.js +0 -2
  295. package/dist/assets/skill-detail-panel-BFyWuPsn.js +0 -1
  296. package/dist/assets/skills-page-Cf_hKy9r.js +0 -1
  297. package/dist/assets/stt-language-picker-modal-CZO7JoYT.js +0 -1
  298. package/dist/assets/subagent-detail-panel-Cl9ImrOJ.js +0 -1
  299. package/dist/assets/superpowers-page-D1k1MEVI.js +0 -1
  300. package/dist/assets/system-events-redirect-page-B74O6yIF.js +0 -1
  301. package/dist/assets/tool-detail-panel-uczeeElt.js +0 -15
  302. package/dist/assets/upgrade-cancel-page-DonPXETN.js +0 -1
  303. package/dist/assets/usage-redirect-page-D9ARkbO8.js +0 -1
  304. package/dist/assets/use-assistant-identity-details-BCrYYzla.js +0 -1
  305. package/dist/assets/use-checkout-dismiss-refresh--5bkiBrA.js +0 -1
  306. package/dist/assets/use-invite-link-dialog-DBeao10u.js +0 -1
  307. package/dist/assets/use-return-to-short-circuit-_5KJP58I.js +0 -1
  308. package/dist/assets/use-supports-credentials-settings-CRJVJGGZ.js +0 -1
  309. package/dist/assets/use-transcript-message-by-id-DKwkoAvU.js +0 -1
  310. package/dist/assets/voice-page-ESLvI7Wk.js +0 -1
  311. package/dist/assets/welcome-screen-BKhi16Mk.js +0 -1
  312. package/dist/assets/workflow-detail-panel-CjgIzQ49.js +0 -1
  313. package/dist/assets/workspace-page-BVZIUjC3.js +0 -1
  314. package/dist/images/integrations/stripe.svg +0 -1
  315. /package/dist/assets/{account-FKgqRJu9.js → account-BRMQN3Hp.js} +0 -0
  316. /package/dist/assets/{account-BA5jqDj6.js → account-DFBVUaFj.js} +0 -0
  317. /package/dist/assets/{account-ip20tetF.js → account-DK-uFjDM.js} +0 -0
  318. /package/dist/assets/{account-DgnbnECc.js → account-DlHR5tom.js} +0 -0
  319. /package/dist/assets/{app-types-0Zm-1JhZ.js → app-types-R2BjVd4u.js} +0 -0
  320. /package/dist/assets/{build.umd-CVBQeTU4.js → build.umd-BDQjXK5l.js} +0 -0
  321. /package/dist/assets/{channels--lv8FGdf.js → channels-BlN6h5Yf.js} +0 -0
  322. /package/dist/assets/{channels-ClWUJtCx.js → channels-CYyjWubA.js} +0 -0
  323. /package/dist/assets/{channels-B9icBql9.js → channels-Fuiz6Bx7.js} +0 -0
  324. /package/dist/assets/{channels-v0C60cYP.js → channels-oV3BofDQ.js} +0 -0
  325. /package/dist/assets/{contacts-BQ94fuUV.js → contacts-BD1ZjH4R.js} +0 -0
  326. /package/dist/assets/{contacts-COqsemVO.js → contacts-DO23uT5c.js} +0 -0
  327. /package/dist/assets/{contacts-CoAmmYoi.js → contacts-DS4DGhkC.js} +0 -0
  328. /package/dist/assets/{contacts-Cf8Z8Ypm.js → contacts-Dh9S5trj.js} +0 -0
  329. /package/dist/assets/{credential-requests-D-BHmCso.js → credential-requests-B2nbIPCm.js} +0 -0
  330. /package/dist/assets/{credential-requests-WG2Ly11i.js → credential-requests-Cq0W2SLQ.js} +0 -0
  331. /package/dist/assets/{credential-requests-BfzszdNh.js → credential-requests-SsPu1I49.js} +0 -0
  332. /package/dist/assets/{credential-requests-72ffRzBF.js → credential-requests-orDT3GcS.js} +0 -0
  333. /package/dist/assets/{definitions-SYFqlqxu.js → definitions-CIDzXl-8.js} +0 -0
  334. /package/dist/assets/{definitions-BYsSaA4u.js → definitions-vY30nmPg.js} +0 -0
  335. /package/dist/assets/{format-countdown-Dz5XCJoT.js → format-countdown-Ck7dI0Xw.js} +0 -0
  336. /package/dist/assets/{intelligence-DE4NupPM.js → intelligence-D3QpZ2xn.js} +0 -0
  337. /package/dist/assets/{intelligence-BY-nSeKR.js → intelligence-DPqYLHNd.js} +0 -0
  338. /package/dist/assets/{intelligence-CP8sCCS_.js → intelligence-u56Yi_NI.js} +0 -0
  339. /package/dist/assets/{intelligence-C7n9yEoU.js → intelligence-y6vN_Mdd.js} +0 -0
  340. /package/dist/assets/{library-DBkZoDRF.js → library-6ZRxzyy2.js} +0 -0
  341. /package/dist/assets/{library-1J6AIi1i.js → library-C-Qksx7x.js} +0 -0
  342. /package/dist/assets/{library-Bc86UsJ1.js → library-CS5eEGWr.js} +0 -0
  343. /package/dist/assets/{library-Bqld62NF.js → library-CdIFgs3T.js} +0 -0
  344. /package/dist/assets/{link-click-x__AmmnM.js → link-click-k5mmNwCu.js} +0 -0
  345. /package/dist/assets/{logs-CLvjJFut.js → logs-CrmkpO3a.js} +0 -0
  346. /package/dist/assets/{logs-Dj54XwvB.js → logs-D0cXFJMX.js} +0 -0
  347. /package/dist/assets/{logs-t63DIvWv.js → logs-DAwJbr-Q.js} +0 -0
  348. /package/dist/assets/{logs-CCscJ0kU.js → logs-Dz-GMURf.js} +0 -0
  349. /package/dist/assets/{machine-sizes-Dnm82Ei9.js → machine-sizes-C3GmmuDZ.js} +0 -0
  350. /package/dist/assets/{onboarding-step-layout-DX3nTIye.js → onboarding-step-layout-DnL_IbCm.js} +0 -0
  351. /package/dist/assets/{pdf-BRXrngio.js → pdf-D2FMVYiD.js} +0 -0
  352. /package/dist/assets/{plugin-attribution-COvprnE5.js → plugin-attribution-CeJvw31w.js} +0 -0
  353. /package/dist/assets/{radio-card-nav-wiR_yhVP.js → radio-card-nav-BsBWpdyn.js} +0 -0
  354. /package/dist/assets/{remote-web-B_CKO1lH.js → remote-web-BDlWdbTR.js} +0 -0
  355. /package/dist/assets/{remote-web-CCHcuH5v.js → remote-web-BqT1bCst.js} +0 -0
  356. /package/dist/assets/{remote-web-CX-BHRlQ.js → remote-web-Cs7J640n.js} +0 -0
  357. /package/dist/assets/{remote-web-DZcYWPqy.js → remote-web-Csjf67ib.js} +0 -0
  358. /package/dist/assets/{skill-icon-FPL5xeRb.js → skill-icon-DEUidmqq.js} +0 -0
  359. /package/dist/assets/{status-badge-pill-DsYKTPMw.js → status-badge-pill-CBQvTIk7.js} +0 -0
  360. /package/dist/assets/{terminal-CDc9oJxM.js → terminal-C0WX32KF.js} +0 -0
  361. /package/dist/assets/{terminal-BEPJM1_8.js → terminal-CRBKHZm5.js} +0 -0
  362. /package/dist/assets/{terminal-rnCKES6C.js → terminal-DFgjzYGN.js} +0 -0
  363. /package/dist/assets/{terminal-D6cGApBS.js → terminal-DoWOKxv3.js} +0 -0
  364. /package/dist/assets/{usage-window-zygj9EXK.js → usage-window-5RXvRuB8.js} +0 -0
  365. /package/dist/assets/{use-truncated-blob-text-CS6VKRFh.js → use-truncated-blob-text-CvqS5q0a.js} +0 -0
  366. /package/dist/assets/{workspace-DBMxgrue.js → workspace-BLgcfQq4.js} +0 -0
  367. /package/dist/assets/{workspace-DECIUhvv.js → workspace-Bt8Q3v-7.js} +0 -0
  368. /package/dist/assets/{workspace-Bz-skFgd.js → workspace-Bu0imBiz.js} +0 -0
  369. /package/dist/assets/{workspace-BlqPRjdc.js → workspace-DLF1k434.js} +0 -0
  370. /package/dist/assets/{xterm-CnYdVfXB.js → xterm-CJ0yCq-Z.js} +0 -0
  371. /package/dist/assets/{xterm-addon-fit-D5lx1Kpc.js → xterm-addon-fit-IkN_XlHG.js} +0 -0
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Zn as t,er as n,j as r}from"./vendor-CV8wawxx.js";import{b as i,g as a,n as o,r as s,t as c}from"./react-DPM_L_aA.js";import{gn as l,pi as u}from"./icons-J6Mg9wGk.js";import{$ as d,At as f,Bv as p,By as m,Ca as h,Da as g,Ea as _,Ey as v,Ft as y,Gy as b,Il as x,Iy as S,Jo as C,Ko as w,My as T,Oa as E,Q as D,Rl as O,Rt as k,Ry as A,Sa as j,Ta as M,da as ee,ed as N,et as te,fa as ne,iy as re,jt as ie,ka as P,la as ae,ma as oe,nb as F,nc as I,nt as se,oy as ce,pa as le,qo as ue,tc as de,td as fe,ua as pe,uf as me,vp as he,wa as L,wv as R,xh as ge,xy as _e,zv as z,zy as ve}from"./index-jpjzZb6b.js";import{t as B}from"./detail-card-DuMOMNDt.js";import{t as ye}from"./stt-language-picker-modal-N72XuoQE.js";import{t as be}from"./use-hotkey-recorder-C2dwFKcz.js";var V=e(i(),1),H=c();function U({label:e,selected:t,recording:n=!1,onClick:r}){return(0,H.jsxs)(`button`,{type:`button`,onClick:r,className:[`inline-flex items-center gap-2 rounded-lg border px-3 py-1.5 text-body-medium-lighter transition-colors`,`border-[var(--border-subtle)]`,t?`bg-[var(--surface-active)]`:`bg-[var(--surface-lift)] hover:bg-[var(--surface-hover)]`,n?`animate-pulse`:``].filter(Boolean).join(` `),children:[(0,H.jsx)(`span`,{className:[`inline-block h-2.5 w-2.5 rounded-full border`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)]`].join(` `)}),(0,H.jsx)(`span`,{className:`text-[var(--content-default)]`,children:e})]})}function xe(){let{t:e}=r(`settings`),{available:t,currentCode:n,configuredProviderId:i,selectLanguage:a,selecting:o}=te(D()),[s,c]=(0,V.useState)(!1);return t?(0,H.jsxs)(B,{title:e(`listeningLanguageCard.title`),subtitle:e(`listeningLanguageCard.subtitle`),children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(`span`,{className:`min-w-0 text-body-medium-lighter text-[var(--content-default)]`,children:se(n,i)}),(0,H.jsx)(F,{variant:`outlined`,onClick:()=>c(!0),className:`shrink-0`,children:e(`listeningLanguageCard.change`)})]}),(0,H.jsx)(ye,{open:s,onOpenChange:c,title:e(`listeningLanguageCard.title`),currentCode:n,configuredProviderId:i,selectLanguage:a,selecting:o})]}):null}var W=`flux`;function Se(e){return e===`vellum`}function Ce(e,t){let n=e?.trim().toLowerCase();return!n||n===`multi`||t===void 0?!0:t.includes(n.split(`-`)[0]??n)}function we(){let{t:e}=r(`settings`),i=n(),a=he(),o=D(),[s,c]=(0,V.useState)(!1),{data:l}=t({...N({path:{assistant_id:o}}),enabled:a,staleTime:3e4}),u=l?.services?.stt,{data:d}=t({...me({path:{assistant_id:o}}),enabled:a,staleTime:5*6e4}),f=u?.roles?.liveVoice?.provider??u?.provider,p=d?.providers?.find(e=>e.id===f),m=p?.modelFamilies?.includes(W)??!1;if(!f||!m)return null;let h=Ce(u?.language,p?.turnDetectionLanguages),g=u?.roles?.liveVoice,_=g?g.model:u?.providers?.[f]?.model,v=_===void 0?Se(f)&&h:_===W,y=async t=>{c(!0);try{let{response:e}=await ge({path:{assistant_id:o},body:{services:{stt:{roles:{liveVoice:{provider:f,model:t?W:p?.baseModelFamily}}}}},throwOnError:!1});if(!e?.ok)throw Error(String(e?.status??``));await i.invalidateQueries({queryKey:fe({path:{assistant_id:o}})})}catch{S.error(e(`voicePage.turnDetectionFailed`))}finally{c(!1)}};return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e(`voicePage.turnDetectionLabel`)}),(0,H.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:e(h?`voicePage.turnDetectionDescription`:`voicePage.turnDetectionLanguageUnsupported`)}),(0,H.jsx)(b,{checked:v,disabled:s||!h&&!v,onChange:e=>void y(e),"aria-label":e(`voicePage.turnDetectionLabel`)})]})}var G=`flex items-start gap-1 pt-1 text-body-small-lighter text-[var(--content-quiet)]`,K=`flex items-start gap-1 pt-1 text-body-small-lighter text-[var(--system-negative-strong)]`,Te=2;function q(e){let t=[];return e.ctrlKey&&t.push(`control`),e.altKey&&t.push(`option`),e.shiftKey&&t.push(`shift`),e.metaKey&&t.push(`command`),P(t)}function Ee(){let{t:e}=r(`settings`),t=L(),n=ae(e=>e.registered)===!1,[i,a]=(0,V.useState)(null),[o,s]=(0,V.useState)(!1),[c,u]=(0,V.useState)([]),[d,f]=(0,V.useState)(!1),p=(0,V.useRef)(null),m=(0,V.useCallback)(async()=>{a((await x())?.inputMonitoring.status??null)},[]);(0,V.useEffect)(()=>{m();let e=setInterval(()=>{m()},2e3);return()=>{clearInterval(e)}},[m]);let g=(0,V.useCallback)(()=>{O(`inputMonitoring`).then(m)},[m]),_=(0,V.useCallback)(e=>{M(e),s(!1),u([]),f(!1),e.kind!==`off`&&g()},[g]),v=(0,V.useCallback)(()=>{s(!0),u([]),f(!1),requestAnimationFrame(()=>{p.current?.focus()})},[]),y=(0,V.useCallback)(()=>{s(!1),u([]),f(!1)},[]),b=(0,V.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){y();return}u(q(e))},[y]),S=(0,V.useCallback)(e=>{if(o&&!(q(e).length>0)){if(c.length>=Te){_({kind:`modifierOnly`,modifiers:c});return}u([]),f(!0)}},[_,c,o]);(0,V.useEffect)(()=>{if(!o)return;let e=e=>{p.current&&!p.current.contains(e.target)&&y()};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[y,o]);let C=h(t),w=t.kind===`modifierOnly`&&!C,T=t.kind!==`off`,D=t.kind===`modifierOnly`&&t.modifiers.includes(`control`)&&t.modifiers.includes(`option`),k=i===`granted`;return(0,H.jsx)(B,{title:e(`voiceKeyCard.title`),subtitle:e(`voiceKeyCard.subtitle`),children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`div`,{ref:p,tabIndex:o?0:-1,onKeyDown:o?b:void 0,onKeyUp:o?S:void 0,className:`flex flex-wrap items-center gap-2 focus:outline-none`,children:[(0,H.jsx)(U,{label:e(`voiceKeyCard.fnLabel`),selected:C,onClick:()=>_(j)}),o?(0,H.jsx)(U,{label:c.length>0?E(c):e(`voiceKeyCard.recordingPrompt`),selected:!0,recording:!0,onClick:y}):(0,H.jsx)(U,{label:t.kind===`modifierOnly`&&!C?E(t.modifiers):e(`voiceKeyCard.customLabel`),selected:w,onClick:v}),(0,H.jsx)(U,{label:e(`voiceKeyCard.offLabel`),selected:!T,onClick:()=>_({kind:`off`})})]}),d&&(0,H.jsxs)(`div`,{className:G,children:[(0,H.jsx)(l,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,H.jsx)(`span`,{children:e(`voiceKeyCard.customHint`)})]}),T&&i!==null&&!k&&(0,H.jsxs)(`div`,{className:`flex flex-col items-start gap-2 pt-1`,children:[(0,H.jsxs)(`div`,{className:K,children:[(0,H.jsx)(l,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,H.jsx)(`span`,{children:e(`voiceKeyCard.needsInputMonitoring`)})]}),(0,H.jsx)(F,{variant:`outlined`,onClick:g,children:e(`voiceKeyCard.allowInputMonitoring`)})]}),T&&k&&n&&(0,H.jsxs)(`div`,{className:K,children:[(0,H.jsx)(l,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,H.jsx)(`span`,{children:e(`voiceKeyCard.refusedNote`)})]}),C&&(0,H.jsxs)(`div`,{className:G,children:[(0,H.jsx)(l,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,H.jsx)(`span`,{children:e(`voiceKeyCard.fnDictationNote`)})]}),D&&(0,H.jsxs)(`div`,{className:G,children:[(0,H.jsx)(l,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,H.jsx)(`span`,{children:e(`voiceKeyCard.voiceOverNote`)})]})]})})}function De({assistantId:e,open:t,onOpenChange:n}){return(0,H.jsx)(A.Root,{open:t,onOpenChange:n,children:(0,H.jsx)(A.Content,{size:`md`,children:(0,H.jsx)(Oe,{assistantId:e,onDone:()=>n(!1)})})})}function Oe({assistantId:e,onDone:t}){let{t:n}=r(),{available:i,currentModel:a,selectModel:o,selecting:s}=y(e);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(A.Header,{children:[(0,H.jsx)(A.Title,{children:n(`voicePickerModal.title`)}),i&&(0,H.jsx)(A.Description,{children:`Uses Vellum credits, through providers like ElevenLabs and Deepgram.`})]}),(0,H.jsx)(A.Body,{children:(0,H.jsx)(ie,{assistantId:e,filterBySource:!0,value:a,onChange:o,autoScrollToSelected:!0})}),(0,H.jsxs)(A.Footer,{className:`items-center justify-between gap-3`,children:[(0,H.jsx)(d,{}),(0,H.jsx)(F,{variant:`primary`,onClick:t,disabled:s,className:`shrink-0`,children:n(`voicePickerModal.done`)})]})]})}function ke(){let{t:e}=r(`settings`),t=D(),{available:n,settled:i,voices:a,currentModel:o}=y(t),s=a.find(e=>e.model===o)??a[0],[c,l]=(0,V.useState)(!1),u=R.use.name(),d=u?e(`voicePickerCard.titleWithName`,{name:u}):e(`voicePickerCard.title`);return i?n&&s?(0,H.jsxs)(B,{title:d,subtitle:e(`voicePickerCard.creditsNote`),children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(f,{description:s.description,className:`min-w-0 text-body-medium-lighter text-[var(--content-default)]`}),(0,H.jsx)(F,{variant:`outlined`,onClick:()=>l(!0),className:`shrink-0`,children:e(`voicePickerCard.changeButton`)})]}),(0,H.jsx)(De,{assistantId:t,open:c,onOpenChange:l})]}):(0,H.jsx)(B,{title:d,children:(0,H.jsx)(k,{})}):(0,H.jsx)(B,{title:d,children:(0,H.jsx)(_e,{as:`span`,role:`status`,"aria-label":e(`voicePickerCard.loadingAria`),className:`block h-9 w-48`})})}var Ae=[{prefKey:`showUserTranscript`,label:`Show the words you say`,description:`Live transcription while you speak.`},{prefKey:`showAssistantTranscript`,label:`Show the words the assistant says`,description:`Text alongside the spoken response.`}],je=`We recommend keeping both off to start. It feels more like a real conversation.`;function Me(){let{t:e}=r();return(0,H.jsx)(`span`,{className:`shrink-0 rounded-full bg-[var(--surface-active)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:e(`voiceTranscriptToggles.recommendedOff`)})}function Ne({label:e,description:t,showBadge:n,checked:r,onChange:i}){return(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-1`,children:[(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`truncate text-body-medium-lighter text-[var(--content-default)]`,children:e}),n?(0,H.jsx)(Me,{}):null]}),t?(0,H.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:t}):null]}),(0,H.jsx)(b,{checked:r,onChange:i,"aria-label":e})]})}function Pe({showDescription:e=!1,showRecommendedBadge:t=!1}){let{t:n}=r(),i=I.use.showUserTranscript(),a=I.use.showAssistantTranscript(),o=I.use.setShowUserTranscript(),s=I.use.setShowAssistantTranscript(),c={showUserTranscript:{checked:i,onChange:o},showAssistantTranscript:{checked:a,onChange:s}},l=(e,t)=>n(e===`showUserTranscript`?`voiceTranscriptToggles.userTranscriptLabel`:`voiceTranscriptToggles.assistantTranscriptLabel`,t),u=(e,t)=>n(e===`showUserTranscript`?`voiceTranscriptToggles.userTranscriptDescription`:`voiceTranscriptToggles.assistantTranscriptDescription`,t);return(0,H.jsx)(H.Fragment,{children:Ae.map(n=>{let r=c[n.prefKey];return(0,H.jsx)(Ne,{label:l(n.prefKey,n.label),description:e?u(n.prefKey,n.description):void 0,showBadge:t,checked:r.checked,onChange:r.onChange},n.prefKey)})})}var J=`text-body-small-default text-[var(--content-tertiary)]`;function Fe(){let[e]=a(),t=e.get(`tab`);return t===`sounds`?(0,H.jsx)(s,{replace:!0,to:z.settings.sounds}):t===`services`?(0,H.jsx)(s,{replace:!0,to:z.settings.ai}):(0,H.jsx)(Ie,{})}function Ie(){let{t:e}=r(`settings`);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,H.jsxs)(Y,{heading:e(`voicePage.sectionOutputHeading`),description:e(`voicePage.sectionOutputDescription`),children:[(0,H.jsx)(ke,{}),(0,H.jsx)(Le,{})]}),(0,H.jsxs)(Y,{heading:e(`voicePage.sectionInputHeading`),description:e(`voicePage.sectionInputDescription`),children:[(0,H.jsx)(Re,{}),(0,H.jsx)(xe,{}),C()?(0,H.jsx)(Ee,{}):(0,H.jsx)(Ve,{}),(0,H.jsx)(He,{})]}),(0,H.jsx)(Y,{heading:e(`voicePage.sectionCaptionsHeading`),children:(0,H.jsx)(X,{})})]})}function Le(){let{t:e}=r(`settings`),{available:t}=y(D());return t?(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1 text-body-small-lighter text-[var(--content-tertiary)]`,children:[(0,H.jsx)(l,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-quiet)]`}),(0,H.jsx)(`span`,{children:e(`voicePage.speechServicesBannerPrompt`)}),(0,H.jsxs)(o,{to:`${z.settings.ai}#text-to-speech`,className:`inline-flex items-center gap-1 text-[var(--content-secondary)] underline decoration-[var(--border-element)] underline-offset-2 hover:text-[var(--content-default)]`,children:[e(`voicePage.speechServicesBannerLink`),(0,H.jsx)(u,{className:`h-3 w-3`})]})]}):null}function Y({heading:e,description:t,children:n}){return(0,H.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,H.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wide text-[var(--content-tertiary)]`,children:e}),t&&(0,H.jsx)(`p`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:t})]}),n]})}function X(){let{t:e}=r(`settings`);return(0,H.jsx)(B,{title:e(`voicePage.captionsTitle`),subtitle:e(`voicePage.captionsSubtitle`),children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(Pe,{showDescription:!0}),(0,H.jsx)(`p`,{className:`${J} pt-1`,children:e(`voicePage.captionsRecommendation`,je)})]})})}var Z=``;function Re(){let{t:e}=r(`settings`),[t,n]=(0,V.useState)([]),[i,a]=(0,V.useState)(!1),[o,s]=(0,V.useState)(!1),[c,l]=(0,V.useState)(()=>ue()),u=(0,V.useCallback)(async()=>{if(navigator.mediaDevices?.enumerateDevices)try{let e=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`);a(e.length>0&&e.every(e=>!e.label)),n(e.filter(e=>e.deviceId!==``&&e.deviceId!==`default`&&e.deviceId!==`communications`)),s(e.length===0||e.some(e=>!!e.label))}catch{n([]),a(!1),s(!1)}},[]),d=(0,V.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop()}catch{}u()},[u]);(0,V.useEffect)(()=>{u();let e=navigator.mediaDevices;if(!e?.addEventListener)return;let t=()=>void u();return e.addEventListener(`devicechange`,t),()=>e.removeEventListener(`devicechange`,t)},[u]);let f=(0,V.useMemo)(()=>{let n=t.map((t,n)=>({value:t.deviceId,label:t.label||e(`voicePage.microphoneFallbackLabel`,{index:n+1})})),r=c!==Z&&!n.some(e=>e.value===c);return[{value:null,label:e(`voicePage.systemDefault`)},...n,...r?[{value:c,label:e(o?`voicePage.savedMicrophoneNotConnected`:`voicePage.savedMicrophone`)}]:[]]},[t,c,o,e]),p=(0,V.useCallback)(e=>{l(e),e===Z?re(w):ce(w,e)},[]),m=c===Z?null:c;return(0,H.jsx)(B,{title:e(`voicePage.microphoneTitle`),subtitle:e(`voicePage.microphoneSubtitle`),children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,H.jsx)(`div`,{className:`max-w-xs`,children:(0,H.jsx)(v,{options:f,value:m,onChange:p,onSelectNone:()=>p(Z),"aria-label":e(`voicePage.microphoneAriaLabel`)})}),i&&(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,H.jsx)(F,{variant:`outlined`,onClick:d,children:e(`voicePage.allowMicrophoneAccess`)}),(0,H.jsx)(`span`,{className:J,children:e(`voicePage.grantMicrophoneAccessHint`)})]})]})})}var ze=new Set([`Control`,`Alt`,`Shift`,`Meta`]),Q=`toggleVoice`,Be=[{label:`Ctrl+Shift`,activator:{kind:`modifierOnly`,modifiers:[`control`,`shift`]}},{label:`Alt`,activator:{kind:`modifierOnly`,modifiers:[`option`]}}];function Ve(){let{t:e}=r(`settings`),t=p(),[n,i]=(0,V.useState)(()=>ne()),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)([]),[u,d]=(0,V.useState)(!1),f=(0,V.useRef)(null),m=(0,V.useMemo)(()=>{let e=ee();return[{label:_(e),activator:e}]},[]),h=n.kind!==`off`,v=(0,V.useCallback)(e=>{i(e),oe(e),o(!1),c([]),d(!1)},[]),y=be({onBound:()=>v({kind:`off`})}),x=y.catalog.find(e=>e.key===Q)?.accelerator??``,S=y.recordingKey===Q,C=le()?Be:[],w=(0,V.useCallback)(e=>{v(e),y.removeHotkey(Q)},[y,v]),D=(0,V.useCallback)(()=>{v({kind:`off`}),y.removeHotkey(Q)},[y,v]),O=(0,V.useCallback)(()=>{o(!0),c([]),d(!1),requestAnimationFrame(()=>{f.current?.focus()})},[]),k=(0,V.useCallback)(()=>{o(!1),c([]),d(!1)},[]),A=(0,V.useCallback)(e=>{let t=[];return e.ctrlKey&&t.push(`control`),e.altKey&&t.push(`option`),e.shiftKey&&t.push(`shift`),e.metaKey&&t.push(`command`),t},[]),j=(0,V.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){k();return}let t=A(e);if(ze.has(e.key)){d(!1),c(P(t));return}if(t.length===0){d(!0);return}v({kind:`key`,label:e.key.length===1?e.key.toUpperCase():e.key,modifiers:P(t)})},[k,A,v]),M=(0,V.useCallback)(e=>{a&&A(e).length===0&&s.length>0&&(c([]),d(!0))},[A,a,s]);(0,V.useEffect)(()=>{if(!a)return;let e=e=>{f.current&&!f.current.contains(e.target)&&k()};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[k,a]);let N=h&&!m.some(e=>g(e.activator,n));return t?(0,H.jsx)(B,{title:e(`voicePage.voiceShortcutTitle`),subtitle:e(`voicePage.voiceShortcutSubtitleDesktop`),children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[C.map(e=>(0,H.jsx)(U,{label:e.label,selected:g(e.activator,n),onClick:()=>w(e.activator)},e.label)),(0,H.jsx)(U,{label:S?e(`voicePage.recordingPrompt`):x?(0,H.jsx)(T,{accelerator:x}):e(`voicePage.customKey`),selected:x!==``,recording:S,onClick:S?y.stopRecording:()=>y.startRecording(Q)}),(0,H.jsx)(U,{label:e(`voicePage.offKeyLabel`),selected:n.kind===`off`&&!x&&!S,onClick:D})]}),y.conflict?.key===Q&&(0,H.jsxs)(`div`,{className:`flex items-start gap-1 pt-1 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,H.jsx)(l,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,H.jsx)(`span`,{children:e(`voicePage.shortcutConflict`,{command:y.conflict.label})})]})]})}):(0,H.jsx)(B,{title:e(`voicePage.voiceShortcutTitle`),subtitle:e(`voicePage.voiceShortcutSubtitle`),children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,H.jsx)(b,{checked:h,onChange:e=>{v(e?pe():{kind:`off`})},label:e(`voicePage.enableVoiceShortcut`)}),h&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(`span`,{className:J,children:e(`voicePage.activationKeyLabel`)}),(0,H.jsxs)(`div`,{ref:f,tabIndex:a?0:-1,onKeyDown:a?j:void 0,onKeyUp:a?M:void 0,className:`flex flex-wrap items-center gap-2 focus:outline-none`,children:[m.map(e=>(0,H.jsx)(U,{label:e.label,selected:g(e.activator,n),onClick:()=>v(e.activator)},e.label)),a?(0,H.jsx)(U,{label:s.length>0?E(s):e(`voicePage.pressShortcut`),selected:!0,recording:!0,onClick:k}):(0,H.jsx)(U,{label:N?_(n):e(`voicePage.customKey`),selected:N,onClick:O})]}),u&&(0,H.jsxs)(`div`,{className:`flex items-start gap-1 pt-1 text-body-small-lighter text-[var(--content-quiet)]`,children:[(0,H.jsx)(l,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,H.jsx)(`span`,{children:e(`voicePage.shortcutChordHint`)})]}),h&&(0,H.jsxs)(`div`,{className:`flex items-start gap-1 pt-1 text-body-small-lighter text-[var(--content-quiet)]`,children:[(0,H.jsx)(l,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,H.jsx)(`span`,{children:e(`voicePage.focusedTabNote`)})]})]})]})})}function He(){let{t:e}=r(`settings`),t=I.use.pauseBeforeReplyMs(),n=I.use.setPauseBeforeReplyMs(),i=I.use.interruptSensitivity(),a=I.use.setInterruptSensitivity(),o=(0,V.useMemo)(()=>[{value:`low`,label:e(`voicePage.interruptSensitivityLow`)},{value:`medium`,label:e(`voicePage.interruptSensitivityMedium`)},{value:`high`,label:e(`voicePage.interruptSensitivityHigh`)}],[e]),s=t!==null||i!==null;return(0,H.jsx)(B,{title:e(`voicePage.turnTakingTitle`),subtitle:e(`voicePage.turnTakingSubtitle`),children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,H.jsx)(we,{}),(0,H.jsx)($,{label:e(`voicePage.pauseBeforeReplyLabel`),description:e(`voicePage.pauseBeforeReplyDescription`),isDefault:t===null,children:(0,H.jsx)(`div`,{className:`max-w-xs`,children:(0,H.jsx)(ve,{value:(t??1200)/1e3,onValueChange:e=>{typeof e==`number`&&n(Math.round(e*1e3))},min:500/1e3,max:de/1e3,step:.1,showValue:!0,formatValue:e=>`${(typeof e==`number`?e:e[0]).toFixed(1)}s`,"aria-label":e(`voicePage.pauseBeforeReplyAriaLabel`)})})}),(0,H.jsx)($,{label:e(`voicePage.interruptSensitivityLabel`),description:e(`voicePage.interruptSensitivityDescription`),isDefault:i===null,children:(0,H.jsx)(`div`,{className:`max-w-xs`,children:(0,H.jsx)(m,{items:o,value:i??`medium`,onChange:a,ariaLabel:e(`voicePage.interruptSensitivityAriaLabel`)})})}),s&&(0,H.jsx)(`div`,{children:(0,H.jsx)(F,{variant:`outlined`,onClick:()=>{n(null),a(null)},children:e(`voicePage.resetToDefaults`)})})]})})}function $({label:e,description:t,isDefault:n,children:i}){let{t:a}=r(`settings`);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e}),n&&(0,H.jsx)(`span`,{className:`shrink-0 rounded-full bg-[var(--surface-active)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:a(`voicePage.defaultBadge`)})]}),(0,H.jsx)(`p`,{className:J,children:t}),i]})}export{Fe as VoicePage};
@@ -0,0 +1 @@
1
+ import{j as e}from"./vendor-CV8wawxx.js";import{t}from"./react-DPM_L_aA.js";import{P as n}from"./icons-J6Mg9wGk.js";import{cn as r,sn as i,v as a}from"./index-jpjzZb6b.js";var o=t();function s({payload:t,onClose:i}){let{t:s}=e(`chat`),u=r(t.body);return(0,o.jsx)(a,{Glyph:n,title:t.title||s(`wakeDetailPanel.title`),closeLabel:s(`wakeDetailPanel.close`),closeTooltip:s(`wakeDetailPanel.close`),closeVariant:`outlined`,onClose:i,children:(0,o.jsxs)(`dl`,{className:`flex flex-col gap-6`,children:[u.workflow&&(0,o.jsx)(l,{label:s(`wakeDetailPanel.workflow`),children:u.workflow}),u.runStatus&&(0,o.jsx)(l,{label:s(`wakeDetailPanel.runStatus`),children:(0,o.jsx)(`span`,{className:`whitespace-pre-wrap break-words`,children:u.runStatus})}),u.result&&(0,o.jsx)(l,{label:s(`wakeDetailPanel.result`),children:(0,o.jsx)(c,{result:u.result})}),u.rest&&(0,o.jsx)(l,{label:s(`wakeDetailPanel.details`),children:(0,o.jsx)(`span`,{className:`whitespace-pre-wrap break-words`,children:u.rest})}),t.metadata.length>0&&(0,o.jsx)(`div`,{className:`flex flex-col gap-6`,children:t.metadata.map(e=>(0,o.jsx)(l,{label:e.label,children:e.value},e.label))})]})})}function c({result:e}){let t=i(e);return t?(0,o.jsx)(`div`,{className:`flex flex-col gap-4`,children:t.map((e,t)=>(0,o.jsx)(`div`,{className:t>0?`flex flex-col gap-2 border-t border-[var(--border-hover)] pt-4`:`flex flex-col gap-2`,children:e.map(e=>(0,o.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,o.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e.key}),(0,o.jsx)(`span`,{className:`whitespace-pre-wrap break-words`,children:e.value})]},e.key))},t))}):(0,o.jsx)(`span`,{className:`whitespace-pre-wrap break-words`,children:e})}function l({label:e,children:t}){return(0,o.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,o.jsx)(`dt`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:e}),(0,o.jsx)(`dd`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t})]})}export{s as WakeDetailPanel};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{j as t}from"./vendor-CCI2T82b.js";import{b as n,t as r}from"./react-DPM_L_aA.js";import{At as i,D as a,I as o,Zn as s,dr as c,gr as l,hr as u,mr as d,pr as f,s as p,ur as m}from"./icons-B-6TfGtd.js";import{Bt as h,Lt as g,Rt as _,na as v,zt as y}from"./index-BHBLeC80.js";var b=e(n(),1),x={"sun.max.fill":{icon:a,className:`text-orange-500`},"cloud.sun.fill":{icon:c,className:`text-amber-400`},"moon.fill":{icon:i,className:`text-blue-400`},"cloud.moon.fill":{icon:d,className:`text-blue-400`},"cloud.fill":{icon:m,className:`text-stone-400`},"cloud.rain.fill":{icon:f,className:`text-blue-400`},snowflake:{icon:o,className:`text-blue-300`},"cloud.bolt.fill":{icon:u,className:`text-orange-500`},"cloud.fog.fill":{icon:l,className:`text-stone-400`}},S={sunny:{icon:a,className:`text-orange-500`},clear:{icon:a,className:`text-orange-500`},"partly cloudy":{icon:c,className:`text-amber-400`},"mostly sunny":{icon:c,className:`text-amber-400`},cloudy:{icon:m,className:`text-stone-400`},overcast:{icon:m,className:`text-stone-400`},rainy:{icon:f,className:`text-blue-400`},rain:{icon:f,className:`text-blue-400`},drizzle:{icon:f,className:`text-blue-400`},snow:{icon:o,className:`text-blue-300`},snowy:{icon:o,className:`text-blue-300`},thunderstorm:{icon:u,className:`text-orange-500`},thunder:{icon:u,className:`text-orange-500`},foggy:{icon:l,className:`text-stone-400`},fog:{icon:l,className:`text-stone-400`},mist:{icon:l,className:`text-stone-400`},hazy:{icon:l,className:`text-stone-400`},night:{icon:i,className:`text-blue-400`},"mainly clear":{icon:a,className:`text-orange-500`},"mostly cloudy":{icon:m,className:`text-stone-400`},breezy:{icon:p,className:`text-stone-400`},windy:{icon:p,className:`text-stone-400`},cool:{icon:m,className:`text-stone-400`},warm:{icon:a,className:`text-orange-500`},hot:{icon:a,className:`text-orange-500`},cold:{icon:o,className:`text-blue-300`},"cold snap":{icon:o,className:`text-blue-300`},"warm, mostly sunny":{icon:c,className:`text-amber-400`},"cooler, breezy":{icon:p,className:`text-stone-400`}},C={icon:m,className:`text-stone-400`};function w(e){let t=x[e];if(t)return t;let n=e.toLowerCase(),r=S[n];if(r)return r;for(let[e,t]of Object.entries(S))if(n.includes(e))return t;return C}function T(e){if(typeof e==`string`){let t=e.match(/^(\d+)\s*mph\s*(.*)/i);if(t)return{speed:Number(t[1]),direction:t[2]?.trim()||void 0}}return{}}function E(e){let t;if(typeof e.location==`string`)t=e.location;else{let n=y(e.location);n&&typeof n.name==`string`&&(t=n.name)}if(!t)return null;let n=y(e.current),r=_(n?.temp)??_(e.currentTemp)??_(e.temperature)??_(e.temp),i=_(n?.feelsLike)??_(n?.feels_like)??_(n?.apparentTemperature)??_(e.feelsLike)??_(e.feels_like)??_(e.apparentTemperature),a=h(n?.condition)??h(e.condition),o=_(n?.humidity)??_(e.humidity),s=T(n?.wind??e.wind),c=_(n?.windSpeed)??_(n?.wind_speed)??_(e.windSpeed)??_(e.wind_speed)??s.speed,l=h(n?.windDirection)??h(n?.wind_direction)??h(e.windDirection)??h(e.wind_direction)??s.direction,u=y(e.units),d=h(u?.temperature)??h(n?.unit)??h(e.unit)??`F`,f=h(u?.speed)??h(e.windUnit)??h(e.wind_unit),p=g(e.hourly).map((e,t)=>({id:h(e.id)??String(t),time:h(e.time)??``,icon:h(e.icon)??h(e.condition)??`cloud.fill`,temp:_(e.tempC)??_(e.temp)??_(e.temperature),tempC:_(e.tempC)})),m=g([e.forecast,e.daily,e.days].find(Array.isArray)).map((e,t)=>({id:h(e.id)??String(t),day:h(e.day)??h(e.date),dayLabel:h(e.dayLabel)??h(e.date),icon:h(e.icon)??h(e.condition)??`cloud.fill`,low:_(e.low),high:_(e.high),lowC:_(e.lowC),highC:_(e.highC),precip:_(e.precip)??_(e.precipitation)??_(e.precipitationProbability),condition:h(e.condition)}));return{location:t,currentTemp:r,feelsLike:i,condition:a,humidity:o,windSpeed:c,windDirection:l,windUnit:f,unit:d,hourly:p.length>0?p:void 0,forecast:m.length>0?m:void 0}}function D(e){return e*9/5+32}function O(e){return(e-32)*5/9}function k(e,t,n){if(e===void 0)return null;let r=e;return t&&!n&&(r=O(e)),!t&&n&&(r=D(e)),`${Math.round(r)}`}function A(e,t,n){return e.tempC===void 0?e.temp===void 0?null:k(e.temp,t,n):k(e.tempC,!1,n)}function j(e,t,n){return e.lowC===void 0?k(e.low,t,n):k(e.lowC,!1,n)}function M(e,t,n){return e.highC===void 0?k(e.high,t,n):k(e.highC,!1,n)}var N=r();function P({icon:e,size:t=20}){let{icon:n,className:r}=w(e);return(0,N.jsx)(n,{width:t,height:t,className:r})}function F({useFahrenheit:e,onToggle:n}){let{t:r}=t(`chat`);return(0,N.jsxs)(`div`,{className:`flex overflow-hidden rounded-md border border-[var(--border-element)]`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:()=>n(!0),className:v(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-[var(--primary-base)] text-[var(--content-inset)]`:`bg-transparent text-[var(--content-quiet)]`),children:r(`weatherForecastDisplay.fahrenheit`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>n(!1),className:v(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-transparent text-[var(--content-quiet)]`:`bg-[var(--primary-base)] text-[var(--content-inset)]`),children:r(`weatherForecastDisplay.celsius`)})]})}function I({data:e,sourceIsFahrenheit:n,useFahrenheit:r,onToggle:i}){let{t:a}=t(`chat`),o=e.location,c=k(e.currentTemp,n,r),l=k(e.feelsLike,n,r),u=r?`F`:`C`,d=e.forecast?.[0],f=d?M(d,n,r):null,m=d?j(d,n,r):null,h=null;return e.windSpeed!==void 0&&(h=`${Math.round(e.windSpeed)} ${e.windUnit??`mph`}`,e.windDirection&&(h=`${e.windDirection} ${h}`)),(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:o}),c!==null&&(0,N.jsxs)(`div`,{className:`mt-1 text-4xl font-light text-[var(--content-default)]`,children:[c,`°`,u]}),e.condition&&(0,N.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-quiet)]`,children:e.condition})]}),(0,N.jsx)(F,{useFahrenheit:r,onToggle:i})]}),(0,N.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-3`,children:[l!==null&&(0,N.jsx)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:a(`weatherForecastDisplay.feelsLike`,{temp:l})}),f!==null&&m!==null&&(0,N.jsx)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:a(`weatherForecastDisplay.highLow`,{high:f,low:m})}),h&&(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,N.jsx)(p,{width:12,height:12}),h]}),e.humidity!==void 0&&(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,N.jsx)(s,{width:12,height:12}),e.humidity,`%`]})]})]})}function L({hourly:e,sourceIsFahrenheit:n,useFahrenheit:r}){let{t:i}=t(`chat`);return(0,N.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,N.jsx)(`div`,{className:`flex gap-3 overflow-x-auto`,children:e.map((e,t)=>{let a=e.time.toLowerCase()===`now`,o=A(e,n,r);return(0,N.jsxs)(`div`,{className:`flex min-w-[3rem] shrink-0 flex-col items-center gap-1`,children:[(0,N.jsx)(`span`,{className:a?`text-body-small-emphasised text-[var(--content-default)]`:`text-label-medium-default text-[var(--content-quiet)]`,children:a?i(`weatherForecastDisplay.now`):e.time}),(0,N.jsx)(P,{icon:e.icon,size:18}),o!==null&&(0,N.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-default)]`,children:[o,`°`]})]},e.id??t)})})})}function R({forecast:e,currentTemp:t,sourceIsFahrenheit:n,useFahrenheit:r}){let{globalMin:i,globalMax:a}=(0,b.useMemo)(()=>{let t=1/0,n=-1/0;for(let r of e){let e=r.lowC??r.low,i=r.highC??r.high;e!==void 0&&e<t&&(t=e),i!==void 0&&i>n&&(n=i)}return{globalMin:t===1/0?0:t,globalMax:n===-1/0?100:n}},[e]),o=a-i||1;return(0,N.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,N.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,s)=>{let c=e.dayLabel??e.day??`Day ${s+1}`,l=c.toLowerCase()===`today`,u=j(e,n,r),d=M(e,n,r),f=e.precip,p=e.lowC??e.low??i,m=e.highC??e.high??a,h=(p-i)/o*100,g=(m-i)/o*100,_=Math.max(g-h,2),y=null;if(l&&t!==void 0){let r=(e.lowC!==void 0||e.highC!==void 0)&&n?(t-32)*5/9:t;y=m===p?50:(Math.max(p,Math.min(m,r))-p)/(m-p)*100}return(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`span`,{className:v(`w-12 shrink-0 truncate text-body-small-default`,l?`text-[var(--content-default)]`:`text-[var(--content-quiet)]`),children:c}),(0,N.jsxs)(`div`,{className:`flex w-10 shrink-0 items-center justify-center gap-0.5`,children:[(0,N.jsx)(P,{icon:e.icon,size:16}),f!==void 0&&f>0&&(0,N.jsxs)(`span`,{className:`text-label-small-default text-blue-400`,children:[Math.round(f),`%`]})]}),(0,N.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-faint)]`,children:u===null?`--`:`${u}°`}),(0,N.jsxs)(`div`,{className:`relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--border-subtle)]`,children:[(0,N.jsx)(`div`,{className:`absolute top-0 h-full rounded-full bg-[var(--primary-base)]`,style:{left:`${h}%`,width:`${_}%`}}),y!==null&&(0,N.jsx)(`div`,{className:`absolute top-1/2 h-2.5 w-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-[var(--aux-white)] bg-[var(--aux-white)] shadow-sm`,style:{left:`${h+y/100*_}%`}})]}),(0,N.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-default)]`,children:d===null?`--`:`${d}°`})]},e.id??s)})})})}function z({templateData:e,fallback:t}){let n=(0,b.useMemo)(()=>E(e),[e]),r=n?.unit?.toUpperCase()===`F`||n?.unit?.toLowerCase()===`fahrenheit`,[i,a]=(0,b.useState)(null),o=i??r;return!n||n.currentTemp===void 0&&!n.forecast?.length?t??null:(0,N.jsxs)(`div`,{className:`mt-3`,children:[(0,N.jsx)(I,{data:n,sourceIsFahrenheit:r,useFahrenheit:o,onToggle:a}),n.hourly&&n.hourly.length>0&&(0,N.jsx)(L,{hourly:n.hourly,sourceIsFahrenheit:r,useFahrenheit:o}),n.forecast&&n.forecast.length>0&&(0,N.jsx)(R,{forecast:n.forecast,currentTemp:n.currentTemp,sourceIsFahrenheit:r,useFahrenheit:o})]})}export{z as WeatherForecastDisplay};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{j as t}from"./vendor-CV8wawxx.js";import{b as n,t as r}from"./react-DPM_L_aA.js";import{D as i,I as a,Qn as o,_r as s,dr as c,fr as l,gr as u,hr as d,jt as f,mr as p,s as m}from"./icons-J6Mg9wGk.js";import{Gt as h,Kt as g,Ut as _,Wt as v,sa as y}from"./index-jpjzZb6b.js";var b=e(n(),1),x={"sun.max.fill":{icon:i,className:`text-orange-500`},"cloud.sun.fill":{icon:l,className:`text-amber-400`},"moon.fill":{icon:f,className:`text-blue-400`},"cloud.moon.fill":{icon:d,className:`text-blue-400`},"cloud.fill":{icon:c,className:`text-stone-400`},"cloud.rain.fill":{icon:p,className:`text-blue-400`},snowflake:{icon:a,className:`text-blue-300`},"cloud.bolt.fill":{icon:u,className:`text-orange-500`},"cloud.fog.fill":{icon:s,className:`text-stone-400`}},S={sunny:{icon:i,className:`text-orange-500`},clear:{icon:i,className:`text-orange-500`},"partly cloudy":{icon:l,className:`text-amber-400`},"mostly sunny":{icon:l,className:`text-amber-400`},cloudy:{icon:c,className:`text-stone-400`},overcast:{icon:c,className:`text-stone-400`},rainy:{icon:p,className:`text-blue-400`},rain:{icon:p,className:`text-blue-400`},drizzle:{icon:p,className:`text-blue-400`},snow:{icon:a,className:`text-blue-300`},snowy:{icon:a,className:`text-blue-300`},thunderstorm:{icon:u,className:`text-orange-500`},thunder:{icon:u,className:`text-orange-500`},foggy:{icon:s,className:`text-stone-400`},fog:{icon:s,className:`text-stone-400`},mist:{icon:s,className:`text-stone-400`},hazy:{icon:s,className:`text-stone-400`},night:{icon:f,className:`text-blue-400`},"mainly clear":{icon:i,className:`text-orange-500`},"mostly cloudy":{icon:c,className:`text-stone-400`},breezy:{icon:m,className:`text-stone-400`},windy:{icon:m,className:`text-stone-400`},cool:{icon:c,className:`text-stone-400`},warm:{icon:i,className:`text-orange-500`},hot:{icon:i,className:`text-orange-500`},cold:{icon:a,className:`text-blue-300`},"cold snap":{icon:a,className:`text-blue-300`},"warm, mostly sunny":{icon:l,className:`text-amber-400`},"cooler, breezy":{icon:m,className:`text-stone-400`}},C={icon:c,className:`text-stone-400`};function w(e){let t=x[e];if(t)return t;let n=e.toLowerCase(),r=S[n];if(r)return r;for(let[e,t]of Object.entries(S))if(n.includes(e))return t;return C}function T(e){if(typeof e==`string`){let t=e.match(/^(\d+)\s*mph\s*(.*)/i);if(t)return{speed:Number(t[1]),direction:t[2]?.trim()||void 0}}return{}}function E(e){let t;if(typeof e.location==`string`)t=e.location;else{let n=h(e.location);n&&typeof n.name==`string`&&(t=n.name)}if(!t)return null;let n=h(e.current),r=v(n?.temp)??v(e.currentTemp)??v(e.temperature)??v(e.temp),i=v(n?.feelsLike)??v(n?.feels_like)??v(n?.apparentTemperature)??v(e.feelsLike)??v(e.feels_like)??v(e.apparentTemperature),a=g(n?.condition)??g(e.condition),o=v(n?.humidity)??v(e.humidity),s=T(n?.wind??e.wind),c=v(n?.windSpeed)??v(n?.wind_speed)??v(e.windSpeed)??v(e.wind_speed)??s.speed,l=g(n?.windDirection)??g(n?.wind_direction)??g(e.windDirection)??g(e.wind_direction)??s.direction,u=h(e.units),d=g(u?.temperature)??g(n?.unit)??g(e.unit)??`F`,f=g(u?.speed)??g(e.windUnit)??g(e.wind_unit),p=_(e.hourly).map((e,t)=>({id:g(e.id)??String(t),time:g(e.time)??``,icon:g(e.icon)??g(e.condition)??`cloud.fill`,temp:v(e.tempC)??v(e.temp)??v(e.temperature),tempC:v(e.tempC)})),m=_([e.forecast,e.daily,e.days].find(Array.isArray)).map((e,t)=>({id:g(e.id)??String(t),day:g(e.day)??g(e.date),dayLabel:g(e.dayLabel)??g(e.date),icon:g(e.icon)??g(e.condition)??`cloud.fill`,low:v(e.low),high:v(e.high),lowC:v(e.lowC),highC:v(e.highC),precip:v(e.precip)??v(e.precipitation)??v(e.precipitationProbability),condition:g(e.condition)}));return{location:t,currentTemp:r,feelsLike:i,condition:a,humidity:o,windSpeed:c,windDirection:l,windUnit:f,unit:d,hourly:p.length>0?p:void 0,forecast:m.length>0?m:void 0}}function D(e){return e*9/5+32}function O(e){return(e-32)*5/9}function k(e,t,n){if(e===void 0)return null;let r=e;return t&&!n&&(r=O(e)),!t&&n&&(r=D(e)),`${Math.round(r)}`}function A(e,t,n){return e.tempC===void 0?e.temp===void 0?null:k(e.temp,t,n):k(e.tempC,!1,n)}function j(e,t,n){return e.lowC===void 0?k(e.low,t,n):k(e.lowC,!1,n)}function M(e,t,n){return e.highC===void 0?k(e.high,t,n):k(e.highC,!1,n)}var N=r();function P({icon:e,size:t=20}){let{icon:n,className:r}=w(e);return(0,N.jsx)(n,{width:t,height:t,className:r})}function F({useFahrenheit:e,onToggle:n}){let{t:r}=t(`chat`);return(0,N.jsxs)(`div`,{className:`flex overflow-hidden rounded-md border border-[var(--border-element)]`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:()=>n(!0),className:y(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-[var(--primary-base)] text-[var(--content-inset)]`:`bg-transparent text-[var(--content-quiet)]`),children:r(`weatherForecastDisplay.fahrenheit`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>n(!1),className:y(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-transparent text-[var(--content-quiet)]`:`bg-[var(--primary-base)] text-[var(--content-inset)]`),children:r(`weatherForecastDisplay.celsius`)})]})}function I({data:e,sourceIsFahrenheit:n,useFahrenheit:r,onToggle:i}){let{t:a}=t(`chat`),s=e.location,c=k(e.currentTemp,n,r),l=k(e.feelsLike,n,r),u=r?`F`:`C`,d=e.forecast?.[0],f=d?M(d,n,r):null,p=d?j(d,n,r):null,h=null;return e.windSpeed!==void 0&&(h=`${Math.round(e.windSpeed)} ${e.windUnit??`mph`}`,e.windDirection&&(h=`${e.windDirection} ${h}`)),(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:s}),c!==null&&(0,N.jsxs)(`div`,{className:`mt-1 text-4xl font-light text-[var(--content-default)]`,children:[c,`°`,u]}),e.condition&&(0,N.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-quiet)]`,children:e.condition})]}),(0,N.jsx)(F,{useFahrenheit:r,onToggle:i})]}),(0,N.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-3`,children:[l!==null&&(0,N.jsx)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:a(`weatherForecastDisplay.feelsLike`,{temp:l})}),f!==null&&p!==null&&(0,N.jsx)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:a(`weatherForecastDisplay.highLow`,{high:f,low:p})}),h&&(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,N.jsx)(m,{width:12,height:12}),h]}),e.humidity!==void 0&&(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,N.jsx)(o,{width:12,height:12}),e.humidity,`%`]})]})]})}function L({hourly:e,sourceIsFahrenheit:n,useFahrenheit:r}){let{t:i}=t(`chat`);return(0,N.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,N.jsx)(`div`,{className:`flex gap-3 overflow-x-auto`,children:e.map((e,t)=>{let a=e.time.toLowerCase()===`now`,o=A(e,n,r);return(0,N.jsxs)(`div`,{className:`flex min-w-[3rem] shrink-0 flex-col items-center gap-1`,children:[(0,N.jsx)(`span`,{className:a?`text-body-small-emphasised text-[var(--content-default)]`:`text-label-medium-default text-[var(--content-quiet)]`,children:a?i(`weatherForecastDisplay.now`):e.time}),(0,N.jsx)(P,{icon:e.icon,size:18}),o!==null&&(0,N.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-default)]`,children:[o,`°`]})]},e.id??t)})})})}function R({forecast:e,currentTemp:t,sourceIsFahrenheit:n,useFahrenheit:r}){let{globalMin:i,globalMax:a}=(0,b.useMemo)(()=>{let t=1/0,n=-1/0;for(let r of e){let e=r.lowC??r.low,i=r.highC??r.high;e!==void 0&&e<t&&(t=e),i!==void 0&&i>n&&(n=i)}return{globalMin:t===1/0?0:t,globalMax:n===-1/0?100:n}},[e]),o=a-i||1;return(0,N.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,N.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,s)=>{let c=e.dayLabel??e.day??`Day ${s+1}`,l=c.toLowerCase()===`today`,u=j(e,n,r),d=M(e,n,r),f=e.precip,p=e.lowC??e.low??i,m=e.highC??e.high??a,h=(p-i)/o*100,g=(m-i)/o*100,_=Math.max(g-h,2),v=null;if(l&&t!==void 0){let r=(e.lowC!==void 0||e.highC!==void 0)&&n?(t-32)*5/9:t;v=m===p?50:(Math.max(p,Math.min(m,r))-p)/(m-p)*100}return(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`span`,{className:y(`w-12 shrink-0 truncate text-body-small-default`,l?`text-[var(--content-default)]`:`text-[var(--content-quiet)]`),children:c}),(0,N.jsxs)(`div`,{className:`flex w-10 shrink-0 items-center justify-center gap-0.5`,children:[(0,N.jsx)(P,{icon:e.icon,size:16}),f!==void 0&&f>0&&(0,N.jsxs)(`span`,{className:`text-label-small-default text-blue-400`,children:[Math.round(f),`%`]})]}),(0,N.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-faint)]`,children:u===null?`--`:`${u}°`}),(0,N.jsxs)(`div`,{className:`relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--border-subtle)]`,children:[(0,N.jsx)(`div`,{className:`absolute top-0 h-full rounded-full bg-[var(--primary-base)]`,style:{left:`${h}%`,width:`${_}%`}}),v!==null&&(0,N.jsx)(`div`,{className:`absolute top-1/2 h-2.5 w-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-[var(--aux-white)] bg-[var(--aux-white)] shadow-sm`,style:{left:`${h+v/100*_}%`}})]}),(0,N.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-default)]`,children:d===null?`--`:`${d}°`})]},e.id??s)})})})}function z({templateData:e,fallback:t}){let n=(0,b.useMemo)(()=>E(e),[e]),r=n?.unit?.toUpperCase()===`F`||n?.unit?.toLowerCase()===`fahrenheit`,[i,a]=(0,b.useState)(null),o=i??r;return!n||n.currentTemp===void 0&&!n.forecast?.length?t??null:(0,N.jsxs)(`div`,{className:`mt-3`,children:[(0,N.jsx)(I,{data:n,sourceIsFahrenheit:r,useFahrenheit:o,onToggle:a}),n.hourly&&n.hourly.length>0&&(0,N.jsx)(L,{hourly:n.hourly,sourceIsFahrenheit:r,useFahrenheit:o}),n.forecast&&n.forecast.length>0&&(0,N.jsx)(R,{forecast:n.forecast,currentTemp:n.currentTemp,sourceIsFahrenheit:r,useFahrenheit:o})]})}export{z as WeatherForecastDisplay};
@@ -1 +1 @@
1
- import{D as e}from"./vendor-CCI2T82b.js";var t=class extends e{async start(e){return new Promise(async(t,n)=>{await navigator.mediaDevices.getUserMedia({audio:!e.disableAudio,video:!0}).then(e=>{e.getTracks().forEach(e=>e.stop())}).catch(e=>{n(e)});let r=document.getElementById(`video`),i=document.getElementById(e.parent);if(r)n({message:`camera already started`});else{let r=document.createElement(`video`);r.id=`video`,r.setAttribute(`class`,e.className||``),e.position!==`rear`&&r.setAttribute(`style`,`-webkit-transform: scaleX(-1); transform: scaleX(-1);`);let a=navigator.userAgent.toLowerCase();if(a.includes(`safari`)&&!a.includes(`chrome`)&&(r.setAttribute(`autoplay`,`true`),r.setAttribute(`muted`,`true`),r.setAttribute(`playsinline`,`true`)),i.appendChild(r),navigator.mediaDevices?.getUserMedia){let i={video:{width:{ideal:e.width},height:{ideal:e.height}}};e.position===`rear`?(i.video.facingMode=`environment`,this.isBackCamera=!0):this.isBackCamera=!1,navigator.mediaDevices.getUserMedia(i).then(function(e){r.srcObject=e,r.play(),t()},e=>{n(e)})}}})}async startRecordVideo(){throw this.unimplemented(`Not implemented on web.`)}async stopRecordVideo(){throw this.unimplemented(`Not implemented on web.`)}async stop(){let e=document.getElementById(`video`);if(e){e.pause();let t=e.srcObject.getTracks();for(let e of t)e.stop();e.remove()}}async capture(e){return new Promise(t=>{let n=document.getElementById(`video`),r=document.createElement(`canvas`),i=r.getContext(`2d`);r.width=n.videoWidth,r.height=n.videoHeight,this.isBackCamera||(i.translate(n.videoWidth,0),i.scale(-1,1)),i.drawImage(n,0,0,n.videoWidth,n.videoHeight);let a;a=e.quality==null?r.toDataURL(`image/png`).replace(`data:image/png;base64,`,``):r.toDataURL(`image/jpeg`,e.quality/100).replace(`data:image/jpeg;base64,`,``),t({value:a})})}async captureSample(e){return this.capture(e)}async getSupportedFlashModes(){throw Error(`getSupportedFlashModes not supported under the web platform`)}async setFlashMode(e){throw Error(`setFlashMode not supported under the web platform`)}async flip(){throw Error(`flip not supported under the web platform`)}async setOpacity(e){let t=document.getElementById(`video`);t&&e.opacity&&t.style.setProperty(`opacity`,e.opacity.toString())}async isCameraStarted(){throw this.unimplemented(`Not implemented on web.`)}};export{t as CameraPreviewWeb};
1
+ import{D as e}from"./vendor-CV8wawxx.js";var t=class extends e{async start(e){return new Promise(async(t,n)=>{await navigator.mediaDevices.getUserMedia({audio:!e.disableAudio,video:!0}).then(e=>{e.getTracks().forEach(e=>e.stop())}).catch(e=>{n(e)});let r=document.getElementById(`video`),i=document.getElementById(e.parent);if(r)n({message:`camera already started`});else{let r=document.createElement(`video`);r.id=`video`,r.setAttribute(`class`,e.className||``),e.position!==`rear`&&r.setAttribute(`style`,`-webkit-transform: scaleX(-1); transform: scaleX(-1);`);let a=navigator.userAgent.toLowerCase();if(a.includes(`safari`)&&!a.includes(`chrome`)&&(r.setAttribute(`autoplay`,`true`),r.setAttribute(`muted`,`true`),r.setAttribute(`playsinline`,`true`)),i.appendChild(r),navigator.mediaDevices?.getUserMedia){let i={video:{width:{ideal:e.width},height:{ideal:e.height}}};e.position===`rear`?(i.video.facingMode=`environment`,this.isBackCamera=!0):this.isBackCamera=!1,navigator.mediaDevices.getUserMedia(i).then(function(e){r.srcObject=e,r.play(),t()},e=>{n(e)})}}})}async startRecordVideo(){throw this.unimplemented(`Not implemented on web.`)}async stopRecordVideo(){throw this.unimplemented(`Not implemented on web.`)}async stop(){let e=document.getElementById(`video`);if(e){e.pause();let t=e.srcObject.getTracks();for(let e of t)e.stop();e.remove()}}async capture(e){return new Promise(t=>{let n=document.getElementById(`video`),r=document.createElement(`canvas`),i=r.getContext(`2d`);r.width=n.videoWidth,r.height=n.videoHeight,this.isBackCamera||(i.translate(n.videoWidth,0),i.scale(-1,1)),i.drawImage(n,0,0,n.videoWidth,n.videoHeight);let a;a=e.quality==null?r.toDataURL(`image/png`).replace(`data:image/png;base64,`,``):r.toDataURL(`image/jpeg`,e.quality/100).replace(`data:image/jpeg;base64,`,``),t({value:a})})}async captureSample(e){return this.capture(e)}async getSupportedFlashModes(){throw Error(`getSupportedFlashModes not supported under the web platform`)}async setFlashMode(e){throw Error(`setFlashMode not supported under the web platform`)}async flip(){throw Error(`flip not supported under the web platform`)}async setOpacity(e){let t=document.getElementById(`video`);t&&e.opacity&&t.style.setProperty(`opacity`,e.opacity.toString())}async isCameraStarted(){throw this.unimplemented(`Not implemented on web.`)}};export{t as CameraPreviewWeb};
@@ -1 +1 @@
1
- import{D as e}from"./vendor-CCI2T82b.js";var t=class extends e{constructor(){super(),this.handleVisibilityChange=()=>{let e={isActive:document.hidden!==!0};this.notifyListeners(`appStateChange`,e),document.hidden?this.notifyListeners(`pause`,null):this.notifyListeners(`resume`,null)},document.addEventListener(`visibilitychange`,this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented(`Not implemented on web.`)}async getInfo(){throw this.unimplemented(`Not implemented on web.`)}async getLaunchUrl(){return{url:``}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented(`Not implemented on web.`)}async toggleBackButtonHandler(){throw this.unimplemented(`Not implemented on web.`)}async getAppLanguage(){return{value:navigator.language.split(`-`)[0].toLowerCase()}}};export{t as AppWeb};
1
+ import{D as e}from"./vendor-CV8wawxx.js";var t=class extends e{constructor(){super(),this.handleVisibilityChange=()=>{let e={isActive:document.hidden!==!0};this.notifyListeners(`appStateChange`,e),document.hidden?this.notifyListeners(`pause`,null):this.notifyListeners(`resume`,null)},document.addEventListener(`visibilitychange`,this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented(`Not implemented on web.`)}async getInfo(){throw this.unimplemented(`Not implemented on web.`)}async getLaunchUrl(){return{url:``}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented(`Not implemented on web.`)}async toggleBackButtonHandler(){throw this.unimplemented(`Not implemented on web.`)}async getAppLanguage(){return{value:navigator.language.split(`-`)[0].toLowerCase()}}};export{t as AppWeb};
@@ -1 +1 @@
1
- import{D as e}from"./vendor-CCI2T82b.js";var t=class extends e{constructor(){super(...arguments),this.pending=[],this.deliveredNotifications=[],this.hasNotificationSupport=()=>{if(!(`Notification`in window)||!Notification.requestPermission)return!1;if(Notification.permission!==`granted`)try{new Notification(``)}catch(e){if(e instanceof Error&&e.name===`TypeError`)return!1}return!0}}async getDeliveredNotifications(){let e=[];for(let t of this.deliveredNotifications){let n={title:t.title,id:parseInt(t.tag),body:t.body};e.push(n)}return{notifications:e}}async removeDeliveredNotifications(e){for(let t of e.notifications){let e=this.deliveredNotifications.find(e=>e.tag===String(t.id));e?.close(),this.deliveredNotifications=this.deliveredNotifications.filter(()=>!e)}}async removeAllDeliveredNotifications(){for(let e of this.deliveredNotifications)e.close();this.deliveredNotifications=[]}async createChannel(){throw this.unimplemented(`Not implemented on web.`)}async deleteChannel(){throw this.unimplemented(`Not implemented on web.`)}async listChannels(){throw this.unimplemented(`Not implemented on web.`)}async schedule(e){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);for(let t of e.notifications)this.sendNotification(t);return{notifications:e.notifications.map(e=>({id:e.id}))}}async getPending(){return{notifications:this.pending}}async registerActionTypes(){throw this.unimplemented(`Not implemented on web.`)}async cancel(e){this.pending=this.pending.filter(t=>!e.notifications.find(e=>e.id===t.id))}async areEnabled(){let{display:e}=await this.checkPermissions();return{value:e===`granted`}}async changeExactNotificationSetting(){throw this.unimplemented(`Not implemented on web.`)}async checkExactNotificationSetting(){throw this.unimplemented(`Not implemented on web.`)}async requestPermissions(){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);return{display:this.transformNotificationPermission(await Notification.requestPermission())}}async checkPermissions(){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);return{display:this.transformNotificationPermission(Notification.permission)}}transformNotificationPermission(e){switch(e){case`granted`:return`granted`;case`denied`:return`denied`;default:return`prompt`}}sendPending(){let e=[],t=new Date().getTime();for(let n of this.pending)n.schedule?.at&&n.schedule.at.getTime()<=t&&(this.buildNotification(n),e.push(n));this.pending=this.pending.filter(t=>!e.find(e=>e===t))}sendNotification(e){if(e.schedule?.at){let t=e.schedule.at.getTime()-new Date().getTime();this.pending.push(e),setTimeout(()=>{this.sendPending()},t);return}this.buildNotification(e)}buildNotification(e){let t=new Notification(e.title,{body:e.body,tag:String(e.id)});return t.addEventListener(`click`,this.onClick.bind(this,e),!1),t.addEventListener(`show`,this.onShow.bind(this,e),!1),t.addEventListener(`close`,()=>{this.deliveredNotifications=this.deliveredNotifications.filter(()=>!this)},!1),this.deliveredNotifications.push(t),t}onClick(e){let t={actionId:`tap`,notification:e};this.notifyListeners(`localNotificationActionPerformed`,t)}onShow(e){this.notifyListeners(`localNotificationReceived`,e)}};export{t as LocalNotificationsWeb};
1
+ import{D as e}from"./vendor-CV8wawxx.js";var t=class extends e{constructor(){super(...arguments),this.pending=[],this.deliveredNotifications=[],this.hasNotificationSupport=()=>{if(!(`Notification`in window)||!Notification.requestPermission)return!1;if(Notification.permission!==`granted`)try{new Notification(``)}catch(e){if(e instanceof Error&&e.name===`TypeError`)return!1}return!0}}async getDeliveredNotifications(){let e=[];for(let t of this.deliveredNotifications){let n={title:t.title,id:parseInt(t.tag),body:t.body};e.push(n)}return{notifications:e}}async removeDeliveredNotifications(e){for(let t of e.notifications){let e=this.deliveredNotifications.find(e=>e.tag===String(t.id));e?.close(),this.deliveredNotifications=this.deliveredNotifications.filter(()=>!e)}}async removeAllDeliveredNotifications(){for(let e of this.deliveredNotifications)e.close();this.deliveredNotifications=[]}async createChannel(){throw this.unimplemented(`Not implemented on web.`)}async deleteChannel(){throw this.unimplemented(`Not implemented on web.`)}async listChannels(){throw this.unimplemented(`Not implemented on web.`)}async schedule(e){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);for(let t of e.notifications)this.sendNotification(t);return{notifications:e.notifications.map(e=>({id:e.id}))}}async getPending(){return{notifications:this.pending}}async registerActionTypes(){throw this.unimplemented(`Not implemented on web.`)}async cancel(e){this.pending=this.pending.filter(t=>!e.notifications.find(e=>e.id===t.id))}async areEnabled(){let{display:e}=await this.checkPermissions();return{value:e===`granted`}}async changeExactNotificationSetting(){throw this.unimplemented(`Not implemented on web.`)}async checkExactNotificationSetting(){throw this.unimplemented(`Not implemented on web.`)}async requestPermissions(){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);return{display:this.transformNotificationPermission(await Notification.requestPermission())}}async checkPermissions(){if(!this.hasNotificationSupport())throw this.unavailable(`Notifications not supported in this browser.`);return{display:this.transformNotificationPermission(Notification.permission)}}transformNotificationPermission(e){switch(e){case`granted`:return`granted`;case`denied`:return`denied`;default:return`prompt`}}sendPending(){let e=[],t=new Date().getTime();for(let n of this.pending)n.schedule?.at&&n.schedule.at.getTime()<=t&&(this.buildNotification(n),e.push(n));this.pending=this.pending.filter(t=>!e.find(e=>e===t))}sendNotification(e){if(e.schedule?.at){let t=e.schedule.at.getTime()-new Date().getTime();this.pending.push(e),setTimeout(()=>{this.sendPending()},t);return}this.buildNotification(e)}buildNotification(e){let t=new Notification(e.title,{body:e.body,tag:String(e.id)});return t.addEventListener(`click`,this.onClick.bind(this,e),!1),t.addEventListener(`show`,this.onShow.bind(this,e),!1),t.addEventListener(`close`,()=>{this.deliveredNotifications=this.deliveredNotifications.filter(()=>!this)},!1),this.deliveredNotifications.push(t),t}onClick(e){let t={actionId:`tap`,notification:e};this.notifyListeners(`localNotificationActionPerformed`,t)}onShow(e){this.notifyListeners(`localNotificationReceived`,e)}};export{t as LocalNotificationsWeb};
@@ -1 +1 @@
1
- import{D as e}from"./vendor-CCI2T82b.js";var t=class extends e{async canShare(){return typeof navigator>`u`||!navigator.share?{value:!1}:{value:!0}}async share(e){if(typeof navigator>`u`||!navigator.share)throw this.unavailable(`Share API not available in this browser`);return await navigator.share({title:e.title,text:e.text,url:e.url}),{}}};export{t as ShareWeb};
1
+ import{D as e}from"./vendor-CV8wawxx.js";var t=class extends e{async canShare(){return typeof navigator>`u`||!navigator.share?{value:!1}:{value:!0}}async share(e){if(typeof navigator>`u`||!navigator.share)throw this.unavailable(`Share API not available in this browser`);return await navigator.share({title:e.title,text:e.text,url:e.url}),{}}};export{t as ShareWeb};
@@ -1 +1 @@
1
- import{D as e}from"./vendor-CCI2T82b.js";var t=class extends e{constructor(){super(),this._lastWindow=null}async open(e){this._lastWindow=window.open(e.url,e.windowName||`_blank`)}async close(){return new Promise((e,t)=>{this._lastWindow==null?t(`No active window to close!`):(this._lastWindow.close(),this._lastWindow=null,e())})}};new t;export{t as BrowserWeb};
1
+ import{D as e}from"./vendor-CV8wawxx.js";var t=class extends e{constructor(){super(),this._lastWindow=null}async open(e){this._lastWindow=window.open(e.url,e.windowName||`_blank`)}async close(){return new Promise((e,t)=>{this._lastWindow==null?t(`No active window to close!`):(this._lastWindow.close(),this._lastWindow=null,e())})}};new t;export{t as BrowserWeb};
@@ -1 +1 @@
1
- import{D as e,O as t}from"./vendor-CCI2T82b.js";import{n}from"./definitions-SYFqlqxu.js";function r(e){let t=e.split(`/`).filter(e=>e!==`.`),n=[];return t.forEach(e=>{e===`..`&&n.length>0&&n[n.length-1]!==`..`?n.pop():n.push(e)}),n.join(`/`)}function i(e,t){e=r(e),t=r(t);let n=e.split(`/`),i=t.split(`/`);return e!==t&&n.every((e,t)=>e===i[t])}var a=class r extends e{constructor(){super(...arguments),this.DB_VERSION=1,this.DB_NAME=`Disc`,this._writeCmds=[`add`,`put`,`delete`],this.downloadFile=async e=>{let n=t(e,e.webFetchExtra),r=await fetch(e.url,n),i;if(!e.progress)i=await r.blob();else if(!r?.body)i=new Blob;else{let t=r.body.getReader(),n=0,a=[],o=r.headers.get(`content-type`),s=parseInt(r.headers.get(`content-length`)||`0`,10);for(;;){let{done:r,value:i}=await t.read();if(r)break;a.push(i),n+=i?.length||0;let o={url:e.url,bytes:n,contentLength:s};this.notifyListeners(`progress`,o)}let c=new Uint8Array(n),l=0;for(let e of a)e!==void 0&&(c.set(e,l),l+=e.length);i=new Blob([c.buffer],{type:o||void 0})}return{path:(await this.writeFile({path:e.path,directory:e.directory??void 0,recursive:e.recursive??!1,data:i})).uri,blob:i}}}readFileInChunks(e,t){throw this.unavailable(`Method not implemented.`)}async initDb(){if(this._db!==void 0)return this._db;if(!(`indexedDB`in window))throw this.unavailable(`This browser doesn't support IndexedDB`);return new Promise((e,t)=>{let n=indexedDB.open(this.DB_NAME,this.DB_VERSION);n.onupgradeneeded=r.doUpgrade,n.onsuccess=()=>{this._db=n.result,e(n.result)},n.onerror=()=>t(n.error),n.onblocked=()=>{console.warn(`db blocked`)}})}static doUpgrade(e){let t=e.target.result;switch(e.oldVersion){default:t.objectStoreNames.contains(`FileStorage`)&&t.deleteObjectStore(`FileStorage`),t.createObjectStore(`FileStorage`,{keyPath:`path`}).createIndex(`by_folder`,`folder`)}}async dbRequest(e,t){let n=this._writeCmds.indexOf(e)===-1?`readonly`:`readwrite`;return this.initDb().then(r=>new Promise((i,a)=>{let o=r.transaction([`FileStorage`],n).objectStore(`FileStorage`)[e](...t);o.onsuccess=()=>i(o.result),o.onerror=()=>a(o.error)}))}async dbIndexRequest(e,t,n){let r=this._writeCmds.indexOf(t)===-1?`readonly`:`readwrite`;return this.initDb().then(i=>new Promise((a,o)=>{let s=i.transaction([`FileStorage`],r).objectStore(`FileStorage`).index(e)[t](...n);s.onsuccess=()=>a(s.result),s.onerror=()=>o(s.error)}))}getPath(e,t){let n=t===void 0?``:t.replace(/^[/]+|[/]+$/g,``),r=``;return e!==void 0&&(r+=`/`+e),t!==``&&(r+=`/`+n),r}async clear(){(await this.initDb()).transaction([`FileStorage`],`readwrite`).objectStore(`FileStorage`).clear()}async readFile(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0)throw Error(`File does not exist.`);return{data:n.content?n.content:``}}async writeFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=e.recursive,a=await this.dbRequest(`get`,[t]);if(a&&a.type===`directory`)throw Error(`The supplied path is a directory.`);let o=t.substr(0,t.lastIndexOf(`/`));if(await this.dbRequest(`get`,[o])===void 0){let t=o.indexOf(`/`,1);if(t!==-1){let n=o.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:i})}}if(!r&&!(n instanceof Blob)&&(n=n.indexOf(`,`)>=0?n.split(`,`)[1]:n,!this.isBase64String(n)))throw Error(`The supplied data is not valid base64 content.`);let s=Date.now(),c={path:t,folder:o,type:`file`,size:n instanceof Blob?n.size:n.length,ctime:s,mtime:s,content:n};return await this.dbRequest(`put`,[c]),{uri:c.path}}async appendFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=t.substr(0,t.lastIndexOf(`/`)),a=Date.now(),o=a,s=await this.dbRequest(`get`,[t]);if(s&&s.type===`directory`)throw Error(`The supplied path is a directory.`);if(await this.dbRequest(`get`,[i])===void 0){let t=i.indexOf(`/`,1);if(t!==-1){let n=i.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:!0})}}if(!r&&!this.isBase64String(n))throw Error(`The supplied data is not valid base64 content.`);if(s!==void 0){if(s.content instanceof Blob)throw Error(`The occupied entry contains a Blob object which cannot be appended to.`);n=s.content!==void 0&&!r?btoa(atob(s.content)+atob(n)):s.content+n,o=s.ctime}let c={path:t,folder:i,type:`file`,size:n.length,ctime:o,mtime:a,content:n};await this.dbRequest(`put`,[c])}async deleteFile(e){let t=this.getPath(e.directory,e.path);if(await this.dbRequest(`get`,[t])===void 0)throw Error(`File does not exist.`);if((await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)])).length!==0)throw Error(`Folder is not empty.`);await this.dbRequest(`delete`,[t])}async mkdir(e){let t=this.getPath(e.directory,e.path),n=e.recursive,r=t.substr(0,t.lastIndexOf(`/`)),i=(t.match(/\//g)||[]).length,a=await this.dbRequest(`get`,[r]),o=await this.dbRequest(`get`,[t]);if(i===1)throw Error(`Cannot create Root directory`);if(o!==void 0)throw Error(`Current directory does already exist.`);if(!n&&i!==2&&a===void 0)throw Error(`Parent directory must exist`);if(n&&i!==2&&a===void 0){let t=r.substr(r.indexOf(`/`,1));await this.mkdir({path:t,directory:e.directory,recursive:n})}let s=Date.now(),c={path:t,folder:r,type:`directory`,size:0,ctime:s,mtime:s};await this.dbRequest(`put`,[c])}async rmdir(e){let{path:t,directory:n,recursive:r}=e,i=this.getPath(n,t),a=await this.dbRequest(`get`,[i]);if(a===void 0)throw Error(`Folder does not exist.`);if(a.type!==`directory`)throw Error(`Requested path is not a directory`);let o=await this.readdir({path:t,directory:n});if(o.files.length!==0&&!r)throw Error(`Folder is not empty`);for(let e of o.files){let i=`${t}/${e.name}`;(await this.stat({path:i,directory:n})).type===`file`?await this.deleteFile({path:i,directory:n}):await this.rmdir({path:i,directory:n,recursive:r})}await this.dbRequest(`delete`,[i])}async readdir(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(e.path!==``&&n===void 0)throw Error(`Folder does not exist.`);let r=await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)]);return{files:await Promise.all(r.map(async e=>{let n=await this.dbRequest(`get`,[e]);return n===void 0&&(n=await this.dbRequest(`get`,[e+`/`])),{name:e.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}))}}async getUri(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);return n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),{uri:n?.path||t}}async stat(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),n===void 0)throw Error(`Entry does not exist.`);return{name:n.path.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}async rename(e){await this._copy(e,!0)}async copy(e){return this._copy(e,!1)}async requestPermissions(){return{publicStorage:`granted`}}async checkPermissions(){return{publicStorage:`granted`}}async _copy(e,t=!1){let{toDirectory:r}=e,{to:a,from:o,directory:s}=e;if(!a||!o)throw Error(`Both to and from must be provided`);r||=s;let c=this.getPath(s,o),l=this.getPath(r,a);if(c===l)return{uri:l};if(i(c,l))throw Error(`To path cannot contain the from path`);let u;try{u=await this.stat({path:a,directory:r})}catch{let e=a.split(`/`);e.pop();let t=e.join(`/`);if(e.length>0&&(await this.stat({path:t,directory:r})).type!==`directory`)throw Error(`Parent directory of the to path is a file`)}if(u&&u.type===`directory`)throw Error(`Cannot overwrite a directory with a file`);let d=await this.stat({path:o,directory:s}),f=async(e,t,n)=>{let i=this.getPath(r,e),a=await this.dbRequest(`get`,[i]);a.ctime=t,a.mtime=n,await this.dbRequest(`put`,[a])},p=d.ctime?d.ctime:Date.now();switch(d.type){case`file`:{let e=await this.readFile({path:o,directory:s});t&&await this.deleteFile({path:o,directory:s});let i;!(e.data instanceof Blob)&&!this.isBase64String(e.data)&&(i=n.UTF8);let c=await this.writeFile({path:a,directory:r,data:e.data,encoding:i});return t&&await f(a,p,d.mtime),c}case`directory`:{if(u)throw Error(`Cannot move a directory over an existing object`);try{await this.mkdir({path:a,directory:r,recursive:!1}),t&&await f(a,p,d.mtime)}catch{}let e=(await this.readdir({path:o,directory:s})).files;for(let n of e)await this._copy({from:`${o}/${n.name}`,to:`${a}/${n.name}`,directory:s,toDirectory:r},t);t&&await this.rmdir({path:o,directory:s})}}return{uri:l}}isBase64String(e){try{return btoa(atob(e))==e}catch{return!1}}};a._debug=!0;export{a as FilesystemWeb};
1
+ import{D as e,O as t}from"./vendor-CV8wawxx.js";import{n}from"./definitions-CIDzXl-8.js";function r(e){let t=e.split(`/`).filter(e=>e!==`.`),n=[];return t.forEach(e=>{e===`..`&&n.length>0&&n[n.length-1]!==`..`?n.pop():n.push(e)}),n.join(`/`)}function i(e,t){e=r(e),t=r(t);let n=e.split(`/`),i=t.split(`/`);return e!==t&&n.every((e,t)=>e===i[t])}var a=class r extends e{constructor(){super(...arguments),this.DB_VERSION=1,this.DB_NAME=`Disc`,this._writeCmds=[`add`,`put`,`delete`],this.downloadFile=async e=>{let n=t(e,e.webFetchExtra),r=await fetch(e.url,n),i;if(!e.progress)i=await r.blob();else if(!r?.body)i=new Blob;else{let t=r.body.getReader(),n=0,a=[],o=r.headers.get(`content-type`),s=parseInt(r.headers.get(`content-length`)||`0`,10);for(;;){let{done:r,value:i}=await t.read();if(r)break;a.push(i),n+=i?.length||0;let o={url:e.url,bytes:n,contentLength:s};this.notifyListeners(`progress`,o)}let c=new Uint8Array(n),l=0;for(let e of a)e!==void 0&&(c.set(e,l),l+=e.length);i=new Blob([c.buffer],{type:o||void 0})}return{path:(await this.writeFile({path:e.path,directory:e.directory??void 0,recursive:e.recursive??!1,data:i})).uri,blob:i}}}readFileInChunks(e,t){throw this.unavailable(`Method not implemented.`)}async initDb(){if(this._db!==void 0)return this._db;if(!(`indexedDB`in window))throw this.unavailable(`This browser doesn't support IndexedDB`);return new Promise((e,t)=>{let n=indexedDB.open(this.DB_NAME,this.DB_VERSION);n.onupgradeneeded=r.doUpgrade,n.onsuccess=()=>{this._db=n.result,e(n.result)},n.onerror=()=>t(n.error),n.onblocked=()=>{console.warn(`db blocked`)}})}static doUpgrade(e){let t=e.target.result;switch(e.oldVersion){default:t.objectStoreNames.contains(`FileStorage`)&&t.deleteObjectStore(`FileStorage`),t.createObjectStore(`FileStorage`,{keyPath:`path`}).createIndex(`by_folder`,`folder`)}}async dbRequest(e,t){let n=this._writeCmds.indexOf(e)===-1?`readonly`:`readwrite`;return this.initDb().then(r=>new Promise((i,a)=>{let o=r.transaction([`FileStorage`],n).objectStore(`FileStorage`)[e](...t);o.onsuccess=()=>i(o.result),o.onerror=()=>a(o.error)}))}async dbIndexRequest(e,t,n){let r=this._writeCmds.indexOf(t)===-1?`readonly`:`readwrite`;return this.initDb().then(i=>new Promise((a,o)=>{let s=i.transaction([`FileStorage`],r).objectStore(`FileStorage`).index(e)[t](...n);s.onsuccess=()=>a(s.result),s.onerror=()=>o(s.error)}))}getPath(e,t){let n=t===void 0?``:t.replace(/^[/]+|[/]+$/g,``),r=``;return e!==void 0&&(r+=`/`+e),t!==``&&(r+=`/`+n),r}async clear(){(await this.initDb()).transaction([`FileStorage`],`readwrite`).objectStore(`FileStorage`).clear()}async readFile(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0)throw Error(`File does not exist.`);return{data:n.content?n.content:``}}async writeFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=e.recursive,a=await this.dbRequest(`get`,[t]);if(a&&a.type===`directory`)throw Error(`The supplied path is a directory.`);let o=t.substr(0,t.lastIndexOf(`/`));if(await this.dbRequest(`get`,[o])===void 0){let t=o.indexOf(`/`,1);if(t!==-1){let n=o.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:i})}}if(!r&&!(n instanceof Blob)&&(n=n.indexOf(`,`)>=0?n.split(`,`)[1]:n,!this.isBase64String(n)))throw Error(`The supplied data is not valid base64 content.`);let s=Date.now(),c={path:t,folder:o,type:`file`,size:n instanceof Blob?n.size:n.length,ctime:s,mtime:s,content:n};return await this.dbRequest(`put`,[c]),{uri:c.path}}async appendFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=t.substr(0,t.lastIndexOf(`/`)),a=Date.now(),o=a,s=await this.dbRequest(`get`,[t]);if(s&&s.type===`directory`)throw Error(`The supplied path is a directory.`);if(await this.dbRequest(`get`,[i])===void 0){let t=i.indexOf(`/`,1);if(t!==-1){let n=i.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:!0})}}if(!r&&!this.isBase64String(n))throw Error(`The supplied data is not valid base64 content.`);if(s!==void 0){if(s.content instanceof Blob)throw Error(`The occupied entry contains a Blob object which cannot be appended to.`);n=s.content!==void 0&&!r?btoa(atob(s.content)+atob(n)):s.content+n,o=s.ctime}let c={path:t,folder:i,type:`file`,size:n.length,ctime:o,mtime:a,content:n};await this.dbRequest(`put`,[c])}async deleteFile(e){let t=this.getPath(e.directory,e.path);if(await this.dbRequest(`get`,[t])===void 0)throw Error(`File does not exist.`);if((await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)])).length!==0)throw Error(`Folder is not empty.`);await this.dbRequest(`delete`,[t])}async mkdir(e){let t=this.getPath(e.directory,e.path),n=e.recursive,r=t.substr(0,t.lastIndexOf(`/`)),i=(t.match(/\//g)||[]).length,a=await this.dbRequest(`get`,[r]),o=await this.dbRequest(`get`,[t]);if(i===1)throw Error(`Cannot create Root directory`);if(o!==void 0)throw Error(`Current directory does already exist.`);if(!n&&i!==2&&a===void 0)throw Error(`Parent directory must exist`);if(n&&i!==2&&a===void 0){let t=r.substr(r.indexOf(`/`,1));await this.mkdir({path:t,directory:e.directory,recursive:n})}let s=Date.now(),c={path:t,folder:r,type:`directory`,size:0,ctime:s,mtime:s};await this.dbRequest(`put`,[c])}async rmdir(e){let{path:t,directory:n,recursive:r}=e,i=this.getPath(n,t),a=await this.dbRequest(`get`,[i]);if(a===void 0)throw Error(`Folder does not exist.`);if(a.type!==`directory`)throw Error(`Requested path is not a directory`);let o=await this.readdir({path:t,directory:n});if(o.files.length!==0&&!r)throw Error(`Folder is not empty`);for(let e of o.files){let i=`${t}/${e.name}`;(await this.stat({path:i,directory:n})).type===`file`?await this.deleteFile({path:i,directory:n}):await this.rmdir({path:i,directory:n,recursive:r})}await this.dbRequest(`delete`,[i])}async readdir(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(e.path!==``&&n===void 0)throw Error(`Folder does not exist.`);let r=await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)]);return{files:await Promise.all(r.map(async e=>{let n=await this.dbRequest(`get`,[e]);return n===void 0&&(n=await this.dbRequest(`get`,[e+`/`])),{name:e.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}))}}async getUri(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);return n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),{uri:n?.path||t}}async stat(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),n===void 0)throw Error(`Entry does not exist.`);return{name:n.path.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}async rename(e){await this._copy(e,!0)}async copy(e){return this._copy(e,!1)}async requestPermissions(){return{publicStorage:`granted`}}async checkPermissions(){return{publicStorage:`granted`}}async _copy(e,t=!1){let{toDirectory:r}=e,{to:a,from:o,directory:s}=e;if(!a||!o)throw Error(`Both to and from must be provided`);r||=s;let c=this.getPath(s,o),l=this.getPath(r,a);if(c===l)return{uri:l};if(i(c,l))throw Error(`To path cannot contain the from path`);let u;try{u=await this.stat({path:a,directory:r})}catch{let e=a.split(`/`);e.pop();let t=e.join(`/`);if(e.length>0&&(await this.stat({path:t,directory:r})).type!==`directory`)throw Error(`Parent directory of the to path is a file`)}if(u&&u.type===`directory`)throw Error(`Cannot overwrite a directory with a file`);let d=await this.stat({path:o,directory:s}),f=async(e,t,n)=>{let i=this.getPath(r,e),a=await this.dbRequest(`get`,[i]);a.ctime=t,a.mtime=n,await this.dbRequest(`put`,[a])},p=d.ctime?d.ctime:Date.now();switch(d.type){case`file`:{let e=await this.readFile({path:o,directory:s});t&&await this.deleteFile({path:o,directory:s});let i;!(e.data instanceof Blob)&&!this.isBase64String(e.data)&&(i=n.UTF8);let c=await this.writeFile({path:a,directory:r,data:e.data,encoding:i});return t&&await f(a,p,d.mtime),c}case`directory`:{if(u)throw Error(`Cannot move a directory over an existing object`);try{await this.mkdir({path:a,directory:r,recursive:!1}),t&&await f(a,p,d.mtime)}catch{}let e=(await this.readdir({path:o,directory:s})).files;for(let n of e)await this._copy({from:`${o}/${n.name}`,to:`${a}/${n.name}`,directory:s,toDirectory:r},t);t&&await this.rmdir({path:o,directory:s})}}return{uri:l}}isBase64String(e){try{return btoa(atob(e))==e}catch{return!1}}};a._debug=!0;export{a as FilesystemWeb};
@@ -1 +1 @@
1
- import{D as e}from"./vendor-CCI2T82b.js";function t(){let e=window.navigator.connection||window.navigator.mozConnection||window.navigator.webkitConnection,t=`unknown`,n=e?e.type||e.effectiveType:null;if(n&&typeof n==`string`)switch(n){case`bluetooth`:case`cellular`:t=`cellular`;break;case`none`:t=`none`;break;case`ethernet`:case`wifi`:case`wimax`:t=`wifi`;break;case`other`:case`unknown`:t=`unknown`;break;case`slow-2g`:case`2g`:case`3g`:t=`cellular`;break;case`4g`:t=`wifi`;break;default:break}return t}var n=class extends e{constructor(){super(),this.handleOnline=()=>{let e={connected:!0,connectionType:t()};this.notifyListeners(`networkStatusChange`,e)},this.handleOffline=()=>{this.notifyListeners(`networkStatusChange`,{connected:!1,connectionType:`none`})},typeof window<`u`&&(window.addEventListener(`online`,this.handleOnline),window.addEventListener(`offline`,this.handleOffline))}async getStatus(){if(!window.navigator)throw this.unavailable(`Browser does not support the Network Information API`);let e=window.navigator.onLine,n=t();return{connected:e,connectionType:e?n:`none`}}};new n;export{n as NetworkWeb};
1
+ import{D as e}from"./vendor-CV8wawxx.js";function t(){let e=window.navigator.connection||window.navigator.mozConnection||window.navigator.webkitConnection,t=`unknown`,n=e?e.type||e.effectiveType:null;if(n&&typeof n==`string`)switch(n){case`bluetooth`:case`cellular`:t=`cellular`;break;case`none`:t=`none`;break;case`ethernet`:case`wifi`:case`wimax`:t=`wifi`;break;case`other`:case`unknown`:t=`unknown`;break;case`slow-2g`:case`2g`:case`3g`:t=`cellular`;break;case`4g`:t=`wifi`;break;default:break}return t}var n=class extends e{constructor(){super(),this.handleOnline=()=>{let e={connected:!0,connectionType:t()};this.notifyListeners(`networkStatusChange`,e)},this.handleOffline=()=>{this.notifyListeners(`networkStatusChange`,{connected:!1,connectionType:`none`})},typeof window<`u`&&(window.addEventListener(`online`,this.handleOnline),window.addEventListener(`offline`,this.handleOffline))}async getStatus(){if(!window.navigator)throw this.unavailable(`Browser does not support the Network Information API`);let e=window.navigator.onLine,n=t();return{connected:e,connectionType:e?n:`none`}}};new n;export{n as NetworkWeb};
@@ -1 +1 @@
1
- import{D as e}from"./vendor-CCI2T82b.js";import{n as t,t as n}from"./definitions-BYsSaA4u.js";var r=class extends e{constructor(){super(...arguments),this.selectionStarted=!1}async impact(e){let t=this.patternForImpact(e?.style);this.vibrateWithPattern(t)}async notification(e){let t=this.patternForNotification(e?.type);this.vibrateWithPattern(t)}async vibrate(e){let t=e?.duration||300;this.vibrateWithPattern([t])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(e=n.Heavy){return e===n.Medium?[43]:e===n.Light?[20]:[61]}patternForNotification(e=t.Success){return e===t.Warning?[30,40,30,50,60]:e===t.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(e){if(navigator.vibrate)navigator.vibrate(e);else throw this.unavailable(`Browser does not support the vibrate API`)}};export{r as HapticsWeb};
1
+ import{D as e}from"./vendor-CV8wawxx.js";import{n as t,t as n}from"./definitions-vY30nmPg.js";var r=class extends e{constructor(){super(...arguments),this.selectionStarted=!1}async impact(e){let t=this.patternForImpact(e?.style);this.vibrateWithPattern(t)}async notification(e){let t=this.patternForNotification(e?.type);this.vibrateWithPattern(t)}async vibrate(e){let t=e?.duration||300;this.vibrateWithPattern([t])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(e=n.Heavy){return e===n.Medium?[43]:e===n.Light?[20]:[61]}patternForNotification(e=t.Success){return e===t.Warning?[30,40,30,50,60]:e===t.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(e){if(navigator.vibrate)navigator.vibrate(e);else throw this.unavailable(`Browser does not support the vibrate API`)}};export{r as HapticsWeb};
@@ -1 +1 @@
1
- import{D as e}from"./vendor-CCI2T82b.js";var t=class extends e{async getSafeAreaInsets(){return{insets:{top:0,left:0,right:0,bottom:0}}}async getStatusBarHeight(){return{statusBarHeight:0}}setImmersiveNavigationBar(){throw this.unimplemented(`Method not supported on Web.`)}unsetImmersiveNavigationBar(){throw this.unimplemented(`Method not supported on Web.`)}};export{t as SafeAreaWeb};
1
+ import{D as e}from"./vendor-CV8wawxx.js";var t=class extends e{async getSafeAreaInsets(){return{insets:{top:0,left:0,right:0,bottom:0}}}async getStatusBarHeight(){return{statusBarHeight:0}}setImmersiveNavigationBar(){throw this.unimplemented(`Method not supported on Web.`)}unsetImmersiveNavigationBar(){throw this.unimplemented(`Method not supported on Web.`)}};export{t as SafeAreaWeb};
@@ -0,0 +1 @@
1
+ import{j as e}from"./vendor-CV8wawxx.js";import{f as t,t as n}from"./react-DPM_L_aA.js";import{$_ as r,Fr as i,zv as a}from"./index-jpjzZb6b.js";import{t as o}from"./auth-welcome-screen-CoRWc9Wn.js";var s=n();function c(){let{t:n}=e(`onboarding`),c=t();return(0,s.jsx)(o,{secondary:{label:n(`welcome.continueWithoutAccount`),onSelect:()=>{r()?c(a.selectAssistant,i):c(a.onboarding.hosting,i)}}})}export{c as WelcomeScreen};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{_ as t,f as n,g as r,j as i}from"./vendor-CV8wawxx.js";import{b as a,t as o}from"./react-DPM_L_aA.js";import{Br as s,Nr as c,m as l,o as u,si as d,v as f,vi as p,zr as m}from"./icons-J6Mg9wGk.js";import{n as h,r as g,t as _}from"./metric-card-B4Gz0bhc.js";import{Hs as v,Nn as y,Pn as b,Pr as x,Us as S,Ws as C,b as w,nb as T,tb as E,v as D,yn as O}from"./index-jpjzZb6b.js";import{t as k}from"./detail-panel-stop-button-b7hxWMlm.js";import{t as A}from"./status-badge-pill-CBQvTIk7.js";var j=e(a(),1),M=o();function N({title:e,body:t,emptyText:n}){return(0,M.jsxs)(`div`,{className:`mb-5`,children:[(0,M.jsx)(E,{variant:`body-medium-default`,as:`h3`,className:`mb-2 text-[var(--content-emphasised)]`,children:e}),t?(0,M.jsx)(E,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:t}):(0,M.jsx)(E,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]})}function P({leaf:e}){let{t}=i(`chat`),n=e.status===`running`?t(`workflowLeafDetail.running`):t(`workflowLeafDetail.noResultSummary`);return(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`mb-5 grid grid-cols-2 gap-3`,children:[(0,M.jsx)(_,{icon:(0,M.jsx)(p,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens??0,format:e=>h(Math.round(e)),label:t(`workflowLeafDetail.input`)}),(0,M.jsx)(_,{icon:(0,M.jsx)(g,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens??0,format:e=>h(Math.round(e)),label:t(`workflowLeafDetail.output`)})]}),(0,M.jsx)(N,{title:t(`workflowLeafDetail.prompt`),body:e.promptSummary,emptyText:t(`workflowLeafDetail.noPromptSummary`)}),(0,M.jsx)(N,{title:t(`workflowLeafDetail.result`),body:e.resultSummary,emptyText:n})]})}function F({status:e}){return(0,M.jsx)(A,{color:S(e),label:C(e)})}function I(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:return`var(--system-negative-strong)`;case`cancelled`:return`var(--content-secondary)`;default:return`var(--primary-base)`}}function L(e){switch(e){case`completed`:return`Completed`;case`failed`:return`Failed`;case`cancelled`:return`Cancelled`;default:return`Running`}}function R({status:e}){return(0,M.jsx)(A,{color:I(e),label:L(e)})}function z({status:e}){let{t:a}=i(`chat`),o=n(),s=`h-3.5 w-3.5 shrink-0`,l;return l=e===`running`?(0,M.jsx)(O,{className:`shrink-0`,dotSize:4,gap:2}):e===`completed`?(0,M.jsx)(c,{className:s,style:{color:`var(--system-positive-strong)`}}):e===`failed`?(0,M.jsx)(f,{className:s,style:{color:`var(--system-negative-strong)`}}):(0,M.jsx)(d,{className:s,style:{color:`var(--content-secondary)`},role:`img`,"aria-label":a(`workflowSubagentRow.cancelledAria`)}),(0,M.jsx)(t,{mode:`wait`,initial:!1,children:(0,M.jsx)(r.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:o?{duration:0}:{duration:.15,ease:[.16,1,.3,1]},className:`flex shrink-0 items-center`,children:l},e)})}function B({runId:e,leaf:t,components:n,onSelect:r}){let{t:a}=i(`chat`),o=t.label??`Subagent ${t.seq}`,s=t.promptSummary,c=y(`${e}:${t.seq}`);return(0,M.jsx)(`button`,{type:`button`,onClick:r,"aria-label":a(`workflowSubagentRow.openDetailsAria`,{title:o}),className:`flex w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] px-2 py-1.5 text-left transition-colors hover:bg-[var(--surface-overlay)]`,children:(0,M.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,M.jsx)(z,{status:t.status}),n?(0,M.jsx)(b,{components:n,bodyShapeId:c.bodyShape,eyeStyleId:c.eyeStyle,colorId:c.color,size:16}):(0,M.jsx)(`div`,{style:{width:16,height:16,flexShrink:0},"aria-hidden":!0}),(0,M.jsx)(E,{variant:`body-medium-default`,title:o,className:`max-w-[60%] shrink-0 truncate text-[var(--content-default)]`,children:o}),s&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)] opacity-10`,children:`|`}),(0,M.jsx)(E,{variant:`body-medium-lighter`,title:s,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:s})]})]})})}function V({entry:e,onClose:t,onStop:a,onRequestJournal:o}){let{t:c}=i(`chat`),d=v(e.status),f=n(),S=e.label??e.runId,C=e.agentsSpawned||e.leaves.size,O=x(),A=[...e.leaves.values()].sort((e,t)=>e.seq-t.seq),[N,I]=(0,j.useState)(null),[L,z]=(0,j.useState)(e.runId);L!==e.runId&&(z(e.runId),I(null));let V=N==null?void 0:e.leaves.get(N),H=V?y(`${e.runId}:${V.seq}`):void 0,U=(0,j.useCallback)(()=>I(null),[]),W=V?V.label??`Subagent ${V.seq}`:``,G=V?W:S,K=d?`live`:`final`;return(0,j.useEffect)(()=>{o?.(e.runId)},[e.runId,K,o]),(0,M.jsx)(D,{headerAbove:V&&(0,M.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,M.jsx)(`button`,{type:`button`,onClick:U,title:S,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,M.jsx)(E,{variant:`body-small-default`,as:`span`,children:S})}),(0,M.jsx)(m,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,M.jsx)(E,{variant:`body-small-default`,as:`span`,title:W,className:`min-w-0 shrink truncate text-[var(--content-secondary)]`,children:W})]}),icon:(0,M.jsxs)(M.Fragment,{children:[V&&(0,M.jsx)(T,{variant:`outlined`,iconOnly:(0,M.jsx)(s,{}),onClick:U,"aria-label":c(`workflowDetailPanel.backToSubagentsAria`),tooltip:c(`workflowDetailPanel.back`),className:`shrink-0`}),V?O&&H?(0,M.jsx)(b,{components:O,bodyShapeId:H.bodyShape,eyeStyleId:H.eyeStyle,colorId:H.color,size:32}):(0,M.jsx)(`div`,{style:{width:32,height:32,flexShrink:0},"aria-hidden":!0}):(0,M.jsx)(u,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0})]}),title:G,headerTrailing:V?(0,M.jsx)(R,{status:V.status}):(0,M.jsx)(F,{status:e.status}),headerActions:d&&a?(0,M.jsx)(k,{onStop:()=>a(e.runId),ariaLabel:c(`workflowDetailPanel.stopWorkflow`)}):void 0,closeLabel:c(`workflowDetailPanel.closeDetail`),onClose:t,children:(0,M.jsx)(r.div,{initial:{opacity:0},animate:{opacity:1},transition:f?{duration:0}:{duration:.18,ease:[.16,1,.3,1]},children:V?(0,M.jsx)(P,{leaf:V}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`div`,{className:`mb-5 grid grid-cols-3 gap-3`,children:[(0,M.jsx)(_,{icon:(0,M.jsx)(p,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens,format:e=>h(Math.round(e)),label:c(`workflowDetailPanel.input`)}),(0,M.jsx)(_,{icon:(0,M.jsx)(g,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens,format:e=>h(Math.round(e)),label:c(`workflowDetailPanel.output`)}),(0,M.jsx)(_,{icon:(0,M.jsx)(l,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:C,format:e=>h(Math.round(e)),label:c(`workflowDetailPanel.agents`)})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(E,{variant:`body-medium-default`,as:`h3`,className:`mb-4 text-[var(--content-emphasised)]`,children:c(`workflowDetailPanel.subagents`)}),A.length===0?(0,M.jsx)(w,{children:c(`workflowDetailPanel.noSubagentsYet`)}):(0,M.jsx)(`div`,{className:`flex flex-col gap-1`,children:A.map(t=>(0,M.jsx)(B,{runId:e.runId,leaf:t,components:O,onSelect:()=>I(t.seq)},t.seq))})]})]})},V?String(V.seq):`list`)})}export{V as WorkflowDetailPanel};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Jn as t,N as n,Xn as r,Zn as i,er as a,j as o}from"./vendor-CV8wawxx.js";import{b as s,g as c,t as l}from"./react-DPM_L_aA.js";import{$n as u,An as d,Ci as f,In as p,Jn as m,Mn as h,Rn as g,Vn as _,Vr as v,Y as y,ct as b,i as x,p as S,qn as C,rn as w,vn as T,vt as E,x as D,zr as O}from"./icons-J6Mg9wGk.js";import{t as k}from"./folder-open-BDPMS2Bk.js";import{Ay as A,Cg as j,Dy as M,Fy as N,Ky as P,Ly as F,Q as ee,Ry as I,Sg as te,Wn as L,bg as R,dn as ne,jy as z,mn as B,nb as V,pn as H,ti as U,un as re,vg as ie,wg as ae,xg as oe,yg as W}from"./index-jpjzZb6b.js";import{n as G,r as se,t as ce}from"./use-side-list-room-CnAOR18Q.js";import{t as K}from"./format-file-size-BCpFMv3k.js";import{i as q,n as le,r as J,t as Y}from"./file-editor-BD8PNNu7.js";var ue=f(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),de=f(`arrow-down-wide-narrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),X=e(s(),1);function fe(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function pe(e,t){return fe(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function me(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function he(e){return e.split(`/`).some(e=>e.startsWith(`.`))}var Z=l();function ge(e){let{assistantId:t,path:n,name:r,showHidden:i}=e,[a,o]=(0,X.useState)(!1),[s,c]=(0,X.useState)(!1);return{isDownloading:a,error:s,download:(0,X.useCallback)(async()=>{c(!1),o(!0);try{await L({assistantId:t,path:n,filename:r,showHidden:i})}catch{c(!0)}finally{o(!1)}},[t,n,r,i])}}function _e({assistantId:e,path:t,name:n,showHidden:r}){let{t:i}=o(`workspace`),{isDownloading:a,error:s,download:c}=ge({assistantId:e,path:t,name:n,showHidden:r});return(0,Z.jsx)(V,{variant:`ghost`,size:`regular`,iconOnly:a?(0,Z.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(u,{"aria-hidden":!0}),onClick:()=>void c(),disabled:a,"aria-label":i(`workspaceFileViewer.downloadAria`,{name:n}),tooltip:i(s?`workspaceFileViewer.downloadFailed`:`workspaceFileViewer.download`)})}function ve(e){return r({queryFn:async()=>{let{data:t,error:n}=await R({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function ye({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=g;return n.startsWith(`image/`)?r=T:n.startsWith(`video/`)?r=S:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=p),(0,Z.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 10%, transparent)`},children:(0,Z.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function be({viewMode:e,onChange:t}){let{t:n}=o(`workspace`);return(0,Z.jsx)(`div`,{className:`inline-flex rounded-md p-0.5`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`},children:[`preview`,`source`].map(r=>{let i=e===r;return(0,Z.jsx)(V,{variant:`ghost`,onClick:()=>t(r),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:i?`var(--surface-lift)`:`transparent`,color:i?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:i?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:n(r===`preview`?`workspaceFileViewer.preview`:`workspaceFileViewer.source`)},r)})})}function Q({name:e,mimeType:t,size:n,rightContent:r}){return(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(ye,{mimeType:t}),(0,Z.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,Z.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:K(n)})]}),r]})}function xe({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:a,isLoading:o}=i({queryFn:async()=>{let n=await W({path:{assistant_id:e},query:{path:t,...r?{showHidden:`true`}:{}},parseAs:`blob`});if(n.error)throw n.error;return n.data},queryKey:[`assistantsWorkspaceFileContentRetrieve`,{assistantId:e,path:t,showHidden:r}],enabled:!!t}),[s,c]=(0,X.useState)(null);return(0,X.useEffect)(()=>{if(!a)return;let e=URL.createObjectURL(a);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[a]),o?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Z.jsx)(w,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Z.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,Z.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Z.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function Se({assistantId:e,path:t,name:n,mimeType:r,size:i,modifiedAt:a,showHidden:s}){let{t:c}=o(`workspace`),{isDownloading:l,error:d,download:f}=ge({assistantId:e,path:t,name:n,showHidden:s});return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:n,mimeType:r,size:i}),(0,Z.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,Z.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border p-6 text-center`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,Z.jsx)(p,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,Z.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:n}),(0,Z.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,Z.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:r}),(0,Z.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:K(i,`Unknown size`)}),a&&(0,Z.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[c(`workspaceFileViewer.modifiedLabel`),` `,new Date(a).toLocaleString()]})]}),(0,Z.jsx)(V,{variant:`outlined`,size:`compact`,leftIcon:l?(0,Z.jsx)(w,{className:`animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(u,{"aria-hidden":!0}),onClick:f,disabled:l,"aria-label":c(`workspaceFileViewer.downloadAria`,{name:n}),className:`mt-4`,children:c(l?`workspaceFileViewer.downloading`:`workspaceFileViewer.download`)}),d&&(0,Z.jsx)(`p`,{className:`mt-2 text-body-small-default`,style:{color:`var(--system-error)`},children:c(`workspaceFileViewer.downloadFailed`)})]})})]})}function Ce({assistantId:e,selectedPath:n,showHidden:r,viewMode:s,onChangeViewMode:c,onBrowse:l,pathRename:u,pathDelete:d}){let{t:f}=o(`workspace`),p=a(),{data:m,isLoading:h}=i({...ve({path:{assistant_id:e},query:{path:n??``,showHidden:r}}),enabled:!!n}),[g,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!u)return;let{from:e,to:t}=u,n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;_(e=>e==null?e:n(e)),y(e=>e==null?e:{...e,path:n(e.path)})},[u]),(0,X.useEffect)(()=>{if(!d)return;let{path:e}=d,t=t=>t===e||t.startsWith(`${e}/`);_(e=>e!=null&&t(e)?null:e),y(e=>e!=null&&t(e.path)?null:e)},[d]);let b=g!=null&&g===n,x=m?.content??``,S=v?.path===n?v.content:x,C=()=>{_(null),y(null)},T=t({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await ae({path:{assistant_id:e},body:{path:t,content:n,encoding:`utf8`},throwOnError:!1});if(!i?.ok||r)throw Error(`Failed to save file`)},onSuccess:(e,t)=>{_(e=>e===t.path?null:e),y(e=>e?.path===t.path?null:e),p.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),E=S!==x,D=(0,X.useCallback)(()=>{n&&E&&!T.isPending&&T.mutate({path:n,content:S})},[n,E,T,S]);if(!n)return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:f(`workspaceFileViewer.selectAFile`)}),l&&(0,Z.jsx)(V,{type:`button`,onClick:l,leftIcon:(0,Z.jsx)(k,{"aria-hidden":!0}),children:f(`workspaceFileViewer.browseFiles`)})]});if(h)return(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(w,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!m)return(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:f(`workspaceFileViewer.fileNotFound`)})});let O=m.mimeType??`application/octet-stream`,A=m.name??n.split(`/`).pop()??n,j=B(A,O),M=pe(A,O),N=m.content!=null&&!j&&!M,P=n?he(n):!0,F=b&&(0,Z.jsx)(le,{isDirty:E,isSaving:T.isPending,error:T.isError?f(`workspaceFileViewer.saveFailed`):null,onSave:D,onDiscard:C});if(j&&m.content!=null){let e=b?S:m.content;return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:A,mimeType:O,rightContent:(0,Z.jsx)(be,{viewMode:s,onChange:e=>{b&&C(),c(e)}})}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(Y,{content:e,fileName:A,mimeType:O,showEdit:!P&&s===`source`,isEditing:b,onToggleEdit:()=>b?C():_(n)}),s===`preview`?(0,Z.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Z.jsx)(H,{content:e})}):b?(0,Z.jsx)(J,{value:S,onChange:e=>y({path:n,content:e}),onSave:D}):(0,Z.jsx)(q,{content:m.content,readOnly:P,onStartEdit:()=>_(n)})]}),F]})}if(M&&m.content!=null){let e=b?S:m.content,t=me(e);return(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:A,mimeType:O,rightContent:(0,Z.jsx)(be,{viewMode:s,onChange:e=>{b&&C(),c(e)}})}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(Y,{content:s===`preview`?t:e,downloadContent:e,fileName:A,mimeType:O,showEdit:!P&&s===`source`,isEditing:b,onToggleEdit:()=>b?C():_(n)}),s===`preview`?(0,Z.jsx)(q,{content:t,readOnly:!0,whiteSpace:`pre`}):b?(0,Z.jsx)(J,{value:S,onChange:e=>y({path:n,content:e}),onSave:D}):(0,Z.jsx)(q,{content:m.content,readOnly:P,onStartEdit:()=>_(n)})]}),F]})}return N?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:A,mimeType:O,size:m.size}),(0,Z.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Z.jsx)(Y,{content:b?S:m.content??``,fileName:A,mimeType:O,showEdit:!P,isEditing:b,onToggleEdit:()=>b?C():_(n)}),b?(0,Z.jsx)(J,{value:S,onChange:e=>y({path:n,content:e}),onSave:D}):(0,Z.jsx)(q,{content:m.content??``,readOnly:P,onStartEdit:()=>_(n)})]}),F]}):O.startsWith(`image/`)||O.startsWith(`video/`)?(0,Z.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Z.jsx)(Q,{name:A,mimeType:O,size:m.size,rightContent:(0,Z.jsx)(_e,{assistantId:e,path:n,name:A,showHidden:r})}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,Z.jsx)(xe,{assistantId:e,path:n,mimeType:O,showHidden:r})})]}):(0,Z.jsx)(Se,{assistantId:e,path:n,name:A,mimeType:O,size:m.size,modifiedAt:m.modifiedAt,showHidden:r})}function we(e,t){if(t===`name`)return e;let n=e.slice();return n.sort((e,t)=>{let n=e.size??null,r=t.size??null;return n===null&&r===null?(e.name??``).localeCompare(t.name??``):n===null?1:r===null?-1:n===r?(e.name??``).localeCompare(t.name??``):r-n}),n}async function Te(e,t,n,r){let i=n.toLowerCase(),a=r?.toLowerCase(),{data:o}=await j({path:{assistant_id:e},query:t?{path:t}:{}});if(o?.entries?.some(e=>{let t=(e.name??``).toLowerCase();return t===i&&t!==a}))throw Error(`"${n}" already exists here.`)}function Ee({entry:e}){return e.type===`directory`?(0,Z.jsx)(d,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Z.jsx)(T,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Z.jsx)(S,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(g,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function De({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:a,sortMode:s,searchLower:c,onToggleExpand:l,onSelectPath:u,onRequestDelete:d,onRequestRename:f,onRequestCreate:p,depth:m}){let{t:g}=o(`workspace`),y=e.path??``,b=e.name??``,x=e.type===`directory`,S=n.has(y),C=r===y,w=b.startsWith(`.`),T=!he(y),k=x&&(S||c.length>0),{data:A}=i({...ne({assistantId:t,path:y,showHidden:a,includeDirSizes:s===`size`}),enabled:x&&k}),j=(0,X.useMemo)(()=>we(A?.entries??[],s),[A?.entries,s]),N=c===``||b.toLowerCase().includes(c);if(c!==``&&!x&&!N)return null;let P=(0,Z.jsxs)(`button`,{onClick:()=>{x?l(y):u(y)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${m*14+8}px`,paddingRight:`8px`,color:C?`var(--content-default)`:w?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:C?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:w&&!C?.7:1},children:[x?k?(0,Z.jsx)(v,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(O,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Z.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,Z.jsx)(Ee,{entry:e}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:b}),e.size!=null&&(0,Z.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:K(e.size)})]});return(0,Z.jsxs)(`div`,{children:[T?(0,Z.jsxs)(M.Root,{children:[(0,Z.jsx)(M.Trigger,{children:P}),(0,Z.jsxs)(M.Content,{children:[x&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(M.Item,{leftIcon:(0,Z.jsx)(_,{className:`h-3.5 w-3.5`}),onSelect:()=>p({kind:`file`,parentPath:y}),children:g(`workspaceTree.newFile`)}),(0,Z.jsx)(M.Item,{leftIcon:(0,Z.jsx)(h,{className:`h-3.5 w-3.5`}),onSelect:()=>p({kind:`folder`,parentPath:y}),children:g(`workspaceTree.newFolder`)}),(0,Z.jsx)(M.Separator,{})]}),(0,Z.jsx)(M.Item,{leftIcon:(0,Z.jsx)(D,{className:`h-3.5 w-3.5`}),onSelect:()=>d({path:y,name:b,isDirectory:x}),children:g(`workspaceTree.delete`)}),(0,Z.jsx)(M.Item,{leftIcon:(0,Z.jsx)(E,{className:`h-3.5 w-3.5`}),onSelect:()=>f({path:y,name:b,isDirectory:x}),children:g(`workspaceTree.rename`)})]})]}):P,x&&k&&j.length>0&&(0,Z.jsx)(`div`,{children:j.map(e=>(0,Z.jsx)(De,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:a,sortMode:s,searchLower:c,onToggleExpand:l,onSelectPath:u,onRequestDelete:d,onRequestRename:f,onRequestCreate:p,depth:m+1},e.path))})]})}function Oe({title:e,placeholder:t,confirmLabel:n,pendingLabel:r,initialName:i,onCancel:a,onConfirm:s,pending:c,error:l}){let{t:u}=o(`workspace`),d=(0,X.useRef)(null),[f,p]=(0,X.useState)(i??``),m=f.trim(),h=m.length>0&&(/[/\\]/.test(m)||m===`.`||m===`..`),g=m.length>0&&!h&&!c;return(0,Z.jsx)(I.Root,{open:!0,onOpenChange:e=>{!e&&!c&&a()},children:(0,Z.jsx)(I.Content,{size:`sm`,hideCloseButton:!0,"aria-describedby":void 0,onOpenAutoFocus:e=>{e.preventDefault();let t=d.current;t&&(t.focus(),requestAnimationFrame(()=>{t.setSelectionRange(0,t.value.length)}))},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),c||a()},children:(0,Z.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),g&&s(m)},children:[(0,Z.jsx)(I.Header,{children:(0,Z.jsx)(I.Title,{children:e})}),(0,Z.jsx)(I.Body,{children:(0,Z.jsx)(P,{ref:d,label:u(`workspaceTree.nameLabel`),value:f,onChange:e=>p(e.target.value),placeholder:t,errorText:l??(h?u(`workspaceTree.nameError`):void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Z.jsxs)(I.Footer,{children:[(0,Z.jsx)(V,{type:`button`,variant:`outlined`,onClick:a,disabled:c,children:u(`workspaceTree.cancel`)}),(0,Z.jsx)(V,{type:`submit`,variant:`primary`,disabled:!g,children:c?r:n})]})]})})})}function ke({assistantId:e,expandedPaths:r,selectedPath:s,showHidden:c,sortMode:l,onToggleExpand:u,onExpandPath:d,onSelectPath:f,onToggleShowHidden:p,onChangeSortMode:h,onPathDeleted:g,onPathRenamed:_,search:v,onSearchChange:b}){let{t:S}=o(`workspace`),w=a(),T=v.trim().toLowerCase(),[E,D]=(0,X.useState)(!1),[O,k]=(0,X.useState)(null),[A,j]=(0,X.useState)(null),M=(0,X.useCallback)(()=>{k(null),j(null)},[]),{data:F,isLoading:ee}=i(ne({assistantId:e,showHidden:c,includeDirSizes:l===`size`})),I=(0,X.useMemo)(()=>we(F?.entries??[],l),[F?.entries,l]),L=(0,X.useCallback)(()=>{for(let e of[re,`assistantsWorkspaceFileRetrieve`,`assistantsWorkspaceFileContentRetrieve`])w.invalidateQueries({queryKey:[e]})},[w]),R=t({mutationFn:async t=>{let n=t.parentPath?`${t.parentPath}/${t.name}`:t.name;await Te(e,t.parentPath,t.name);let{error:r,response:i}=t.kind===`file`?await ae({path:{assistant_id:e},body:{path:n,content:``,encoding:`utf8`},throwOnError:!1}):await oe({path:{assistant_id:e},body:{path:n},throwOnError:!1});if(r||!i?.ok)throw Error(typeof r==`string`?r:`Failed to create — check the name and try again.`);return{...t,path:n}},onSuccess:e=>{M(),L(),e.parentPath&&d(e.parentPath),e.kind===`file`?f(e.path):d(e.path)},onError:e=>{j(e instanceof Error?e.message:`Failed to create.`)}}),z=t({mutationFn:async t=>{let n=t.oldPath.lastIndexOf(`/`),r=n===-1?``:t.oldPath.slice(0,n),i=t.oldPath.slice(n+1),a=r?`${r}/${t.newName}`:t.newName;await Te(e,r,t.newName,i);let{error:o,response:s}=await te({path:{assistant_id:e},body:{oldPath:t.oldPath,newPath:a},throwOnError:!1});if(o||!s?.ok)throw Error(typeof o==`string`?o:`Failed to rename — check the name and try again.`);return{oldPath:t.oldPath,newPath:a}},onSuccess:({oldPath:e,newPath:t})=>{M(),L(),_(e,t)},onError:e=>{j(e instanceof Error?e.message:`Failed to rename.`)}}),B=(0,X.useCallback)(e=>{j(null),k({type:`create`,...e})},[]),H=(0,X.useCallback)(e=>{j(null),k({type:`rename`,path:e.path,name:e.name})},[]),[U,W]=(0,X.useState)(null),G=t({mutationFn:async t=>{let{error:n,response:r}=await ie({path:{assistant_id:e},body:{path:t.path},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to delete — try again.`);return t},onSuccess:e=>{W(null),L(),g(e.path)}}),se=(0,X.useCallback)(e=>{G.reset(),W(e)},[G]);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Z.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:S(`workspaceTree.heading`)}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Z.jsx)(V,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:l===`size`?(0,Z.jsx)(de,{"aria-hidden":!0}):(0,Z.jsx)(ue,{"aria-hidden":!0}),onClick:()=>h(l===`size`?`name`:`size`),"aria-label":S(l===`size`?`workspaceTree.sortByNameAria`:`workspaceTree.sortBySizeAria`),title:S(l===`size`?`workspaceTree.sortedBySizeTitle`:`workspaceTree.sortedByNameTitle`),tintColor:l===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,Z.jsx)(V,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:c?(0,Z.jsx)(C,{"aria-hidden":!0}):(0,Z.jsx)(m,{"aria-hidden":!0}),onClick:p,"aria-label":S(c?`workspaceTree.hideHiddenAria`:`workspaceTree.showHiddenAria`),title:S(c?`workspaceTree.hideHiddenAria`:`workspaceTree.showHiddenAria`),tintColor:c?`var(--content-default)`:`var(--content-tertiary)`}),(0,Z.jsx)(Ae,{open:E,onOpenChange:D,onSelectKind:e=>{D(!1),B({kind:e,parentPath:``})}})]})]}),(0,Z.jsx)(`div`,{className:`px-3 py-2`,children:(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(P,{type:`text`,value:v,onChange:e=>b(e.target.value),placeholder:S(`workspaceTree.searchPlaceholder`),leftIcon:(0,Z.jsx)(y,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),v&&(0,Z.jsx)(V,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(x,{"aria-hidden":!0}),onClick:()=>b(``),"aria-label":S(`workspaceTree.clearSearchAria`),className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:ee?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Z.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):I.length?I.map(t=>(0,Z.jsx)(De,{entry:t,assistantId:e,expandedPaths:r,selectedPath:s,showHidden:c,sortMode:l,searchLower:T,onToggleExpand:u,onSelectPath:f,onRequestDelete:se,onRequestRename:H,onRequestCreate:B,depth:0},t.path)):(0,Z.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:S(`workspaceTree.noFilesFound`)})}),O?.type===`create`&&(0,Z.jsx)(Oe,{title:O.kind===`file`?S(`workspaceTree.newFile`):S(`workspaceTree.newFolder`),placeholder:O.kind===`file`?`filename.md`:`folder-name`,confirmLabel:S(`workspaceTree.create`),pendingLabel:S(`workspaceTree.creating`),onCancel:M,onConfirm:e=>{j(null),R.mutate({kind:O.kind,parentPath:O.parentPath,name:e})},pending:R.isPending,error:A},`create-${O.kind}-${O.parentPath}`),O?.type===`rename`&&(0,Z.jsx)(Oe,{title:S(`workspaceTree.rename`),placeholder:O.name,confirmLabel:S(`workspaceTree.rename`),pendingLabel:S(`workspaceTree.renaming`),initialName:O.name,onCancel:M,onConfirm:e=>{if(e===O.name){M();return}j(null),z.mutate({oldPath:O.path,newName:e})},pending:z.isPending,error:A},`rename-${O.path}`),(0,Z.jsx)(N,{open:U!==null,title:U?.isDirectory?S(`workspaceTree.deleteFolderTitle`):S(`workspaceTree.deleteFileTitle`),message:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(n,{i18nKey:U?.isDirectory?`workspaceTree.deleteFolderMessage`:`workspaceTree.deleteFileMessage`,ns:`workspace`,values:{name:U?.name??``},components:{name:(0,Z.jsx)(`span`,{style:{color:`var(--content-default)`}})}}),G.error&&(0,Z.jsx)(`span`,{className:`mt-2 block`,style:{color:`var(--system-negative-strong)`},children:G.error.message})]}),confirmLabel:G.isPending?S(`workspaceTree.deleting`):S(`workspaceTree.delete`),destructive:!0,isPending:G.isPending,onConfirm:()=>{U&&G.mutate(U)},onCancel:()=>W(null)})]})}function Ae({open:e,onOpenChange:t,onSelectKind:n}){let{t:r}=o(`workspace`);return U()?(0,Z.jsxs)(F.Root,{open:e,onOpenChange:t,children:[(0,Z.jsx)(F.Trigger,{asChild:!0,children:(0,Z.jsx)(V,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(b,{"aria-hidden":!0}),"aria-label":r(`workspaceTree.createTriggerAria`),title:r(`workspaceTree.createTriggerTitle`),tintColor:`var(--content-tertiary)`})}),(0,Z.jsxs)(F.Content,{children:[(0,Z.jsx)(F.Header,{className:`sr-only`,children:(0,Z.jsx)(F.Title,{children:r(`workspaceTree.creatingHeading`)})}),(0,Z.jsxs)(F.Body,{className:`pt-0`,children:[(0,Z.jsx)(A,{icon:_,label:r(`workspaceTree.newFile`),onSelect:()=>n(`file`)}),(0,Z.jsx)(A,{icon:h,label:r(`workspaceTree.newFolder`),onSelect:()=>n(`folder`)})]})]})]}):(0,Z.jsxs)(z.Root,{open:e,onOpenChange:t,children:[(0,Z.jsx)(z.Trigger,{asChild:!0,children:(0,Z.jsx)(V,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(b,{"aria-hidden":!0}),"aria-label":r(`workspaceTree.createTriggerAria`),title:r(`workspaceTree.createTriggerTitle`),tintColor:`var(--content-tertiary)`})}),(0,Z.jsxs)(z.Content,{align:`end`,sideOffset:4,children:[(0,Z.jsx)(z.Item,{leftIcon:(0,Z.jsx)(_,{className:`h-3.5 w-3.5`}),onSelect:()=>n(`file`),children:r(`workspaceTree.newFile`)}),(0,Z.jsx)(z.Item,{leftIcon:(0,Z.jsx)(h,{className:`h-3.5 w-3.5`}),onSelect:()=>n(`folder`),children:r(`workspaceTree.newFolder`)})]})]})}function $(e){let t=e.split(`/`),n=new Set;for(let e=1;e<t.length;e++)n.add(t.slice(0,e).join(`/`));return n}function je({assistantId:e}){let{t}=o(`workspace`),[n,r]=c(),[i,a]=(0,X.useState)(()=>{let e=n.get(`file`);return e?$(e):new Set}),[s,l]=(0,X.useState)(()=>n.get(`file`)),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(()=>n.get(`sort`)===`size`?`size`:`name`),[m,h]=(0,X.useState)(`preview`);(0,X.useEffect)(()=>{let e=n.get(`file`);e&&(l(e),a(t=>{let n=new Set(t);for(let t of $(e))n.add(t);return n.size===t.size?t:n}),r(e=>{let t=new URLSearchParams(e);return t.delete(`file`),t},{replace:!0}))},[n,r]);let g=(0,X.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),_=(0,X.useCallback)(e=>{a(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),{paneRef:v,hasRoomForList:y,drawerOpen:b,openDrawer:x,closeDrawer:S}=ce(),[C,w]=(0,X.useState)(``),T=(0,X.useCallback)(e=>{l(e),S()},[S]),[E,D]=(0,X.useState)(null),O=(0,X.useCallback)(e=>{let t=t=>t===e||t.startsWith(`${e}/`);l(e=>e!==null&&t(e)?null:e),a(e=>{let n=new Set([...e].filter(e=>!t(e)));return n.size===e.size?e:n}),D({path:e})},[]),[k,A]=(0,X.useState)(null),j={assistantId:e,expandedPaths:i,selectedPath:s,showHidden:u,sortMode:f,onToggleExpand:g,onExpandPath:_,onSelectPath:T,onToggleShowHidden:()=>d(e=>!e),onChangeSortMode:p,onPathDeleted:O,onPathRenamed:(0,X.useCallback)((e,t)=>{let n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;l(e=>e===null?e:n(e)),a(e=>{let t=!1,r=new Set;for(let i of e){let e=n(i);e!==i&&(t=!0),r.add(e)}return t?r:e}),A({from:e,to:t})},[]),search:C,onSearchChange:w};return(0,Z.jsxs)(`div`,{ref:v,className:`flex h-full min-h-0 flex-col gap-4`,children:[y?null:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`flex items-center`,children:(0,Z.jsx)(se,{onClick:x})}),(0,Z.jsx)(G,{open:b,onClose:S,title:t(`workspaceBrowser.drawerTitle`),children:(0,Z.jsx)(ke,{...j})})]}),(0,Z.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-4 ${y?`grid-cols-[320px_1fr]`:`grid-cols-1`}`,children:[y?(0,Z.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Z.jsx)(ke,{...j})}):null,(0,Z.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Z.jsx)(Ce,{assistantId:e,selectedPath:s,showHidden:u,viewMode:m,onChangeViewMode:h,onBrowse:y?void 0:x,pathRename:k,pathDelete:E})})]})]})}function Me(){return(0,Z.jsx)(je,{assistantId:ee()})}export{Me as WorkspacePage};
@@ -13,14 +13,20 @@ exactly (except where noted).
13
13
 
14
14
  | Assets | Source | Licence |
15
15
  | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------- |
16
- | `airtable`, `asana`, `calendly`, `discord`, `dropbox`, `hubspot`, `sanity`, `spotify`, `stripe`, `telegram`, `todoist`, `x` | [Simple Icons](https://github.com/simple-icons/simple-icons) | CC0-1.0 (public domain, no attribution required) |
16
+ | `airtable`, `asana`, `calendly`, `discord`, `dropbox`, `hubspot`, `sanity`, `spotify`, `telegram`, `todoist`, `x` | [Simple Icons](https://github.com/simple-icons/simple-icons) | CC0-1.0 (public domain, no attribution required) |
17
17
  | `eventbrite`, `salesforce` | [glincker/thesvg](https://github.com/glincker/thesvg) | MIT (notice below) |
18
18
  | `monday` | [WorldVectorLogo](https://worldvectorlogo.com/logo/monday-1) | Trademark of monday.com; no software licence granted (see Trademark, below) |
19
+ | `stripe-link` | [link.com](https://link.com) | Trademark of Stripe; no software licence granted (see Trademark, below) |
19
20
 
20
21
  `monday`'s path data and fill colours are byte-identical to the source. Only
21
22
  the outer `viewBox` and a wrapping group transform were changed, to fit the
22
23
  source's wide mark into a square icon slot.
23
24
 
25
+ `stripe-link` is the green Link symbol inlined in link.com's own header, with
26
+ the site's CSS custom properties resolved to the brand colours they carry there
27
+ (`#00D66F` circle, `#011E0F` mark). Link is a Stripe product with its own mark,
28
+ so the parent Stripe `S` is not a stand-in for it.
29
+
24
30
  ## Unrecorded provenance
25
31
 
26
32
  `apple-notes`, `excel`, `figma`, `github`, `github-dark`, `gmail`,
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><title>Link</title><circle cx="20" cy="20" r="20" fill="#00D66F"/><path fill="#011E0F" d="M19.08 8h-6.168c1.2 5.017 4.704 9.305 9.088 12-4.392 2.697-7.888 6.985-9.088 12h6.168c1.528-4.64 5.76-8.672 10.96-9.495v-5.017C24.832 16.672 20.6 12.64 19.08 8Z"/></svg>
package/dist/index.html CHANGED
@@ -331,12 +331,12 @@
331
331
  display: none;
332
332
  }
333
333
  </style>
334
- <script type="module" crossorigin src="/assistant/assets/index-BHBLeC80.js"></script>
334
+ <script type="module" crossorigin src="/assistant/assets/index-jpjzZb6b.js"></script>
335
335
  <link rel="modulepreload" crossorigin href="/assistant/assets/rolldown-runtime-BM3Ffeng.js">
336
336
  <link rel="modulepreload" crossorigin href="/assistant/assets/react-DPM_L_aA.js">
337
- <link rel="modulepreload" crossorigin href="/assistant/assets/vendor-CCI2T82b.js">
338
- <link rel="modulepreload" crossorigin href="/assistant/assets/icons-B-6TfGtd.js">
339
- <link rel="stylesheet" crossorigin href="/assistant/assets/index-D5tXP3pV.css">
337
+ <link rel="modulepreload" crossorigin href="/assistant/assets/vendor-CV8wawxx.js">
338
+ <link rel="modulepreload" crossorigin href="/assistant/assets/icons-J6Mg9wGk.js">
339
+ <link rel="stylesheet" crossorigin href="/assistant/assets/index-xoHlTuU-.css">
340
340
  <script>window.__VELLUM_CONFIG__={"webUrl":"https://www.vellum.ai","platformUrl":"https://platform.vellum.ai"}</script></head>
341
341
  <body>
342
342
  <!--
@@ -1 +1 @@
1
- <svg fill="#ffffff" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Stripe</title><path d="M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z"/></svg>
1
+ <svg fill="#635BFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Stripe</title><path d="M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z"/></svg>
@@ -1 +1 @@
1
- <svg fill="#ffffff" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Stripe</title><path d="M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z"/></svg>
1
+ <svg role="img" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><title>Link</title><circle cx="20" cy="20" r="20" fill="#00D66F"/><path fill="#011E0F" d="M19.08 8h-6.168c1.2 5.017 4.704 9.305 9.088 12-4.392 2.697-7.888 6.985-9.088 12h6.168c1.528-4.64 5.76-8.672 10.96-9.495v-5.017C24.832 16.672 20.6 12.64 19.08 8Z"/></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/web",
3
- "version": "0.11.10",
3
+ "version": "0.11.11-staging.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Pre-built web SPA for the Vellum Assistant",
@@ -1,5 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{I as t,j as n}from"./vendor-CCI2T82b.js";import{b as r,t as i}from"./react-DPM_L_aA.js";import{Br as a,Cr as o,J as s,Ln as c,Mn as l,Mr as u,Qr as d,Rr as f,S as p,Si as m,_i as h,an as g,gi as _,kr as v,q as y,sr as b,v as x,wn as S,x as C,zr as w}from"./icons-B-6TfGtd.js";import{n as T,r as ee,t as E}from"./metric-card-tzSXowqX.js";import{t as te}from"./repeat-AwziNvx5.js";import{Av as D,Dn as ne,En as re,Gn as O,Jn as k,Kn as A,My as ie,Ry as j,Tn as ae,cn as M,qn as N,tn as P,v as oe,zy as F}from"./index-BHBLeC80.js";import{t as se}from"./diff-rows-w3WozbDH.js";import{t as ce}from"./detail-panel-stop-button-DFPBKjBo.js";import{t as le}from"./status-badge-pill-DsYKTPMw.js";var ue=m(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),I=e(r(),1),L=``;function R(e,t){switch(e){case`complete`:case`completed`:return`completed`;case`failed`:case`error`:return`error`;case void 0:return t;default:return`running`}}function de(e){return(e.messageId?.startsWith(`local-marker-`)??!1)||(e.content?.startsWith(`↻ Steering: `)??!1)}function z(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(O.length):t}function B(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function V(e,t){if(t.updateType===`agent_message_chunk`&&de(t)){B(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:z(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??L,r=z(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(B(e),e.push({kind:`user`,id:n,content:r}));let a=e[e.length-1].content;for(let t=0;t<e.length-1;t++){let n=e[t];if(n.kind===`user`&&n.id.startsWith(`local-marker-`)&&n.content===a){e.splice(t,1);break}}return}case`agent_message_chunk`:{let n=t.messageId??L,r=e[e.length-1];if(r&&r.kind===`agent`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}if(n!==L&&r&&r.kind===`agent`&&r.messageId===L&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}B(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??L,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}B(e),e.push({kind:`thinking`,messageId:n,content:t.content??``,isComplete:!1});return}case`tool_call`:{let n=t.toolCallId;if(n===void 0)return;B(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:R(t.toolStatus,`running`),content:t.content,locations:H(t),rawInput:t.rawInput,rawOutput:t.rawOutput});return}case`tool_call_update`:{let n=t.toolCallId;if(n===void 0)return;let r=e.findIndex(e=>e.kind===`tool`&&e.toolCallId===n);if(r===-1)return;let i=e[r],a=H(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:R(t.toolStatus,i.status),content:t.content??i.content,locations:a??i.locations,rawInput:t.rawInput===void 0?i.rawInput:t.rawInput,rawOutput:t.rawOutput===void 0?i.rawOutput:t.rawOutput};return}case`plan`:{let n=fe(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(B(e),e.push(i)):e[r]=i;return}}}function H(e){let t=e.locations;if(!Array.isArray(t))return;let n=[];for(let e of t){let t=e??{};typeof t.path==`string`&&n.push(typeof t.line==`number`?{path:t.path,line:t.line}:{path:t.path})}return n}function fe(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}let n=Array.isArray(t)?t:Array.isArray(t?.entries)?t.entries:null;return n===null?null:n.map(e=>{let t=e??{},n=t.content??t.label??``;return{label:typeof n==`string`?n:String(n),checked:t.checked===!0||t.status===`completed`}})}function pe(e){let t=[];for(let n of e)V(t,n);return t}function me(e,t){if(e===t)return{kind:`identity`};if(e===null)return{kind:`first`};if(t.length<e.length)return{kind:`fallback`};for(let n=0;n<e.length;n++)if(e[n]!==t[n])return n===e.length-1&&t.length===e.length?{kind:`mutate-last`}:{kind:`fallback`};return t.length===e.length?{kind:`identity`}:{kind:`append`,from:e.length}}function he(){let e=null,t=[];function n(n){return t=pe(n),e=n,t}function r(r){let i=me(e,r);switch(i.kind){case`identity`:return t;case`first`:return n(r);case`append`:{let n=t.slice();for(let e=i.from;e<r.length;e++)V(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function ge(e){let t=(0,I.useRef)(null);return t.current??=he(),t.current.project(e)}function U(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)?[]:[{type:`content`,text:e}]}let n=Array.isArray(t)?t:[t],r=[];for(let e of n){let t=_e(e);t&&r.push(t)}return r}function _e(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:ve(t.content)};case`diff`:return typeof t.path!=`string`||typeof t.newText!=`string`?null:{type:`diff`,path:t.path,newText:t.newText,...typeof t.oldText==`string`?{oldText:t.oldText}:{}};case`terminal`:{let e=ye(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function ve(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function ye(e){if(typeof e.text==`string`)return e.text;if(typeof e.output==`string`)return e.output;if(typeof e.content==`string`)return e.content;if(typeof e.content==`object`&&e.content!==null){let t=e.content.text;if(typeof t==`string`)return t}}function W(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function G(e){return U(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
2
- `)}function K(e){if(e!=null){if(typeof e==`string`)return e;if(typeof e==`object`)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}}function q(e,t){let n=new Map;for(let t of e)t.type===`diff`&&n.set(t.path,{path:t.path,newText:t.newText,...t.oldText===void 0?{}:{oldText:t.oldText}});for(let e of t??[])n.has(e.path)||n.set(e.path,{path:e.path});return Array.from(n.values())}var J=i();function be({content:e,isComplete:t,assistantId:n}){return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-agent-message`,className:`flex w-full flex-col items-start text-chat text-[var(--content-default)]`,children:[(0,J.jsx)(P,{content:e,assistantId:n}),!t&&(0,J.jsx)(M,{className:`mt-1`,"data-testid":`acp-chat-agent-streaming`})]})}function xe({entries:e}){let{t}=n(`chat`);return e.length===0?null:(0,J.jsxs)(`div`,{"data-testid":`acp-chat-plan-block`,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,J.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(g,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(j,{variant:`body-small-emphasised`,className:`text-inherit`,children:t(`acpChatPlanBlock.plan`)})]}),(0,J.jsx)(`ul`,{className:`flex flex-col gap-1.5`,children:e.map((e,t)=>(0,J.jsxs)(`li`,{"data-testid":`acp-chat-plan-entry`,"data-checked":e.checked,className:`flex items-start gap-2`,children:[e.checked?(0,J.jsx)(u,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,J.jsx)(o,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`}),(0,J.jsx)(`span`,{className:e.checked?`text-body-small-default text-[var(--content-tertiary)] line-through`:`text-body-small-default text-[var(--content-default)]`,children:e.label})]},t))})]})}function Se(e){switch(e){case`max_tokens`:case`max_turn_requests`:return t(`chat:acpChatTerminalBlock.stoppedLimitReached`);case`refusal`:return t(`chat:acpChatTerminalBlock.refused`);case`cancelled`:return t(`chat:acpChatTerminalBlock.cancelled`);default:return t(`chat:acpChatTerminalBlock.completed`)}}function Ce(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function Y({completedAt:e}){let{t}=n(`chat`);return e===void 0?null:(0,J.jsx)(`span`,{"data-testid":`acp-chat-terminal-time`,children:t(`acpChatTerminalBlock.atTime`,{time:Ce(e)})})}function we({status:e,stopReason:t,error:r,completedAt:i}){let{t:a}=n(`chat`);if(k(e))return null;if(e===`failed`)return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`failed`,className:`flex items-start gap-2 rounded-md bg-[var(--system-negative-weak)] px-3 py-2 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,J.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-terminal-failed-icon`,className:`flex h-[12px] w-4 shrink-0 items-center justify-center`,children:(0,J.jsx)(x,{className:`h-4 w-4`})}),(0,J.jsx)(`span`,{children:r??a(`acpChatTerminalBlock.runFailed`)})]});if(e===`cancelled`)return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`cancelled`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,J.jsx)(v,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,J.jsx)(`span`,{children:a(`acpChatTerminalBlock.cancelled`)}),(0,J.jsx)(Y,{completedAt:i})]});let o=Se(t);return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`completed`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,J.jsx)(u,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,J.jsx)(`span`,{children:o}),(0,J.jsx)(Y,{completedAt:i})]})}function Te({showDot:e,isLast:t,children:n}){return(0,J.jsxs)(`div`,{className:`relative flex items-start gap-2${t?``:` pb-4`}`,children:[!t&&(0,J.jsx)(`div`,{"aria-hidden":!0,className:`absolute bottom-0 left-[6.5px] w-px bg-[var(--border-element)] ${e?`top-[16px]`:`top-0`}`}),e?(0,J.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-timeline-dot`,className:`flex h-[14px] w-[14px] shrink-0 items-center justify-center`,children:(0,J.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}):(0,J.jsx)(`span`,{"aria-hidden":!0,className:`h-[14px] w-[14px] shrink-0`}),(0,J.jsx)(`div`,{className:`min-w-0 flex-1`,children:n})]})}function Ee({content:e,isComplete:t,assistantId:n}){let[r,i]=(0,I.useState)(null),o=r??!t,s=e.trim().length>0,c=t?`Thought process`:`Thinking`,l=t?(0,J.jsx)(d,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(M,{dotSize:5,className:`shrink-0`,"data-testid":`acp-chat-thinking-streaming`});return s?(0,J.jsxs)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:[(0,J.jsxs)(`button`,{type:`button`,"aria-expanded":o,onClick:()=>i(!o),"data-testid":`acp-chat-thinking-toggle`,className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,children:[o?(0,J.jsx)(a,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(f,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),l,(0,J.jsx)(`span`,{children:c})]}),o&&(0,J.jsx)(`div`,{"data-testid":`acp-chat-thinking-body`,className:`mt-1.5 border-l-2 border-[var(--border-base)] pl-3 text-body-small-default text-[var(--content-tertiary)]`,children:(0,J.jsx)(P,{content:e,assistantId:n})})]}):(0,J.jsx)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:(0,J.jsxs)(`div`,{className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[l,(0,J.jsx)(`span`,{children:c})]})})}var De={running:`neutral`,completed:`positive`,error:`negative`,ended:`neutral`},Oe={running:`Running`,completed:`Completed`,error:`Failed`,ended:`Ended`},ke={read:`Read file`,edit:`Edit file`,delete:`Delete file`,move:`Move file`,search:`Search`,execute:`Run command`,think:`Thinking`,fetch:`Fetch`,switch_mode:`Switch mode`},Ae=`Tool call`,je={read:c,edit:ue,delete:C,move:l,search:s,execute:p,think:d,fetch:S,switch_mode:te},Me=new Set([`read`,`edit`,`delete`,`move`]);function Ne({toolKind:e}){return(0,J.jsx)(e&&je[e]||b,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`})}function X({label:e,value:t,testId:n}){return(0,J.jsxs)(`div`,{"data-testid":n,children:[(0,J.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-tertiary)]`,children:e}),(0,J.jsx)(`pre`,{className:`max-h-60 overflow-auto rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] p-2.5 font-mono text-body-small-default text-[var(--content-secondary)]`,children:t})]})}function Pe({block:e,isTerminal:t=!1,onOpenDiff:r,onOpenOutput:i}){let{t:o}=n(`chat`),[s,l]=(0,I.useState)(!1),u=(0,I.useMemo)(()=>U(e.content),[e.content]),d=(0,I.useMemo)(()=>G(e.content),[e.content]),m=(0,I.useMemo)(()=>d.split(`
3
- `).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith("```"))||`View output`,[d]),h=(0,I.useMemo)(()=>q(u,e.locations),[u,e.locations]),g=t&&e.status===`running`?`ended`:e.status,_=g===`running`,v=e.toolKind&&ke[e.toolKind]||Ae,y=W(e.rawInput)??e.title,b=y&&y!==v&&(!Me.has(e.toolKind??``)||h.length===0)?y:null,x=K(e.rawInput),S=K(e.rawOutput),C=x!==void 0||S!==void 0;return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-tool-card`,"data-status":e.status,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(Ne,{toolKind:e.toolKind}),(0,J.jsx)(j,{variant:`body-small-emphasised`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,title:e.title,children:v}),(0,J.jsx)(ie,{tone:De[g],"data-testid":`acp-chat-tool-status`,children:Oe[g]}),_&&(0,J.jsx)(M,{className:`shrink-0`,"data-testid":`acp-chat-tool-running`})]}),b&&(0,J.jsx)(`div`,{"data-testid":`acp-chat-tool-detail`,className:`mt-1.5 font-mono text-body-small-default whitespace-pre-wrap break-words text-[var(--content-secondary)]`,children:b}),h.length>0&&(0,J.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:h.map(t=>{let n=t.oldText!==void 0||t.newText!==void 0,i=`flex max-w-full items-center gap-1.5 rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] px-2 py-1 text-body-small-default text-[var(--content-secondary)]`;return n?(0,J.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-file-chip`,onClick:()=>r(e.toolCallId,t),title:t.path,className:`${i} cursor-pointer transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,J.jsx)(c,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path):(0,J.jsxs)(`span`,{"data-testid":`acp-chat-tool-file-ref`,title:t.path,className:i,children:[(0,J.jsx)(c,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path)})}),d.length>0&&(0,J.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-output-open`,onClick:()=>i?.(e.toolCallId),className:`mt-2 flex w-full items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-2.5 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,J.jsx)(p,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:m}),(0,J.jsx)(f,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`})]}),C&&(0,J.jsxs)(`div`,{className:`mt-2`,"data-testid":`acp-chat-tool-raw`,children:[(0,J.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-raw-toggle`,"aria-expanded":s,onClick:()=>l(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-default)]`,children:[s?(0,J.jsx)(a,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(f,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{children:o(s?`acpChatToolCard.hideRaw`:`acpChatToolCard.showRaw`)})]}),s&&(0,J.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-2`,children:[x!==void 0&&(0,J.jsx)(X,{label:o(`acpChatToolCard.rawInput`),value:x,testId:`acp-chat-tool-raw-input`}),S!==void 0&&(0,J.jsx)(X,{label:o(`acpChatToolCard.rawOutput`),value:S,testId:`acp-chat-tool-raw-output`})]})]})]})}function Fe({content:e}){return(0,J.jsx)(`div`,{"data-testid":`acp-chat-user-turn`,className:`flex w-full justify-end`,children:(0,J.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--surface-lift)] px-4 py-3 whitespace-pre-wrap text-chat text-[var(--content-default)]`,children:e})})}function Ie({content:e,assistantId:t}){return(0,J.jsx)(`div`,{"data-testid":`acp-chat-command-output`,className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 [&_pre]:!max-h-none`,children:(0,J.jsx)(P,{content:G(e),hardLineBreaks:!0,assistantId:t})})}var Z=2e3;function Q(e){if(e===``)return[];let t=e.split(`
4
- `);return e.endsWith(`
5
- `)&&t.pop(),t}function Le(e,t){let n=e.length,r=t.length,i=Array.from({length:n+1},()=>Array(r+1).fill(0));for(let a=n-1;a>=0;a--)for(let n=r-1;n>=0;n--)i[a][n]=e[a]===t[n]?i[a+1][n+1]+1:Math.max(i[a+1][n],i[a][n+1]);let a=[],o=0,s=0;for(;o<n&&s<r;)e[o]===t[s]?(a.push({type:`ctx`,text:e[o],oldNo:o+1,newNo:s+1}),o++,s++):i[o+1][s]>=i[o][s+1]?(a.push({type:`del`,text:e[o],oldNo:o+1}),o++):(a.push({type:`add`,text:t[s],newNo:s+1}),s++);for(;o<n;)a.push({type:`del`,text:e[o],oldNo:o+1}),o++;for(;s<r;)a.push({type:`add`,text:t[s],newNo:s+1}),s++;return a}function Re(e,t){let n=Q(e),r=Q(t);return n.length>Z||r.length>Z?[{type:`too-large`,text:`Diff too large to render (over ${Z.toLocaleString()} lines)`}]:n.length===0?r.map((e,t)=>({type:`add`,text:e,newNo:t+1})):r.length===0?n.map((e,t)=>({type:`del`,text:e,oldNo:t+1})):Le(n,r)}function ze(e){return e.type!==`too-large`}function Be({path:e,oldText:t,newText:r}){let{t:i}=n(`chat`),a=Re(t??``,r??``),o=a.find(e=>e.type===`too-large`);return(0,J.jsx)(`div`,{"aria-label":i(`fileDiffView.diffForAria`,{path:e}),"data-testid":`acp-chat-file-diff`,className:`flex flex-col overflow-hidden rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:o?(0,J.jsx)(`div`,{"data-diff-type":`too-large`,className:`px-3 py-2 font-mono text-body-small-lighter whitespace-pre-wrap text-[var(--content-tertiary)] italic`,children:o.text}):(0,J.jsx)(se,{rows:a.filter(ze)})})}var Ve=80;function $(e){return e.scrollHeight-e.clientHeight-e.scrollTop<=Ve}function He(e){let t=(0,I.useRef)(null),n=(0,I.useRef)(!0),[r,i]=(0,I.useState)(!1),a=(0,I.useCallback)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[]),o=(0,I.useCallback)(()=>{let e=t.current;if(!e)return;let r=$(e);n.current=r,i(e=>e===!r?e:!r)},[]),s=(0,I.useCallback)(()=>{n.current=!0,a(),i(!1)},[a]),c=(0,I.useCallback)(e=>{let r=t.current;r&&r.removeEventListener(`scroll`,o),t.current=e,e&&(e.addEventListener(`scroll`,o,{passive:!0}),n.current?e.scrollTop=e.scrollHeight:o())},[o]);return(0,I.useLayoutEffect)(()=>{n.current?a():o()},[e,a,o]),{scrollRef:c,showScrollToLatest:r,scrollToLatest:s}}function Ue(e,t){switch(e.kind){case`user`:return`user-${e.id||t}`;case`agent`:return`agent-${e.messageId||t}`;case`thinking`:return`thinking-${e.messageId||t}`;case`tool`:return`tool-${e.toolCallId}`;case`plan`:return`plan`}}var We=[];function Ge({entry:e,onClose:t,assistantId:r}){let{t:i}=n(`chat`),a=k(e.status),o=ge(A(t=>t.byId[e.acpSessionId]?.events??We)),[s,c]=(0,I.useState)(null),[l,u]=(0,I.useState)(e.acpSessionId);l!==e.acpSessionId&&(u(e.acpSessionId),c(null));let d=(0,I.useCallback)((e,t)=>c({kind:`diff`,toolCallId:e,path:t.path}),[]),p=(0,I.useCallback)(e=>c({kind:`output`,toolCallId:e}),[]),m=(0,I.useCallback)(()=>c(null),[]),g=(0,I.useMemo)(()=>s?o.find(e=>e.kind===`tool`&&e.toolCallId===s.toolCallId)??null:null,[s,o]),v=(0,I.useMemo)(()=>s?.kind!==`diff`||!g?null:q(U(g.content),g.locations).find(e=>e.path===s.path)??null,[s,g]),y=s?.kind===`diff`?s.path:g?W(g.rawInput)??g.title??`Output`:`Output`,{scrollRef:b,showScrollToLatest:x,scrollToLatest:S}=He((0,I.useMemo)(()=>({blocks:o,status:e.status,completedAt:e.completedAt}),[o,e.status,e.completedAt])),C=!a;return(0,J.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[s&&(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,J.jsx)(`button`,{type:`button`,onClick:m,title:e.agent,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,J.jsx)(j,{variant:`body-small-default`,as:`span`,children:e.agent})}),(0,J.jsx)(f,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,J.jsx)(j,{variant:`body-small-default`,as:`span`,title:y,className:`min-w-0 shrink truncate font-mono text-[var(--content-secondary)]`,children:y})]}),(0,J.jsx)(Ke,{entry:e,isRunning:a,onClose:t,showBack:!!s,onBack:m},`header-${e.acpSessionId}`),s?(0,J.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:s.kind===`diff`?(0,J.jsx)(Be,{path:s.path,oldText:v?.oldText,newText:v?.newText}):(0,J.jsx)(Ie,{content:g?.content,assistantId:r})}):(0,J.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,J.jsxs)(`div`,{ref:b,"data-testid":`acp-chat-conversation`,className:`flex h-full flex-col gap-4 overflow-y-auto px-5 py-5`,children:[(e.inputTokens!==void 0||e.outputTokens!==void 0)&&(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,"data-testid":`acp-run-metrics`,children:[(0,J.jsx)(E,{icon:(0,J.jsx)(h,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens??0,format:e=>T(Math.round(e)),label:i(`acpRunChatView.inputLabel`)}),(0,J.jsx)(E,{icon:(0,J.jsx)(ee,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens??0,format:e=>T(Math.round(e)),label:i(`acpRunChatView.outputLabel`)})]}),(0,J.jsx)(qe,{task:e.task}),(0,J.jsx)(`div`,{className:`flex flex-col`,"data-testid":`acp-chat-timeline`,children:o.map((e,t)=>(0,J.jsx)(Te,{showDot:t===0||t===o.length-1||e.kind===`tool`||e.kind===`plan`,isLast:t===o.length-1,children:(0,J.jsx)(Je,{block:e,isTerminal:C,onOpenDiff:d,onOpenOutput:p,assistantId:r})},Ue(e,t)))}),!a&&(0,J.jsx)(we,{status:e.status,stopReason:e.stopReason,error:e.error,completedAt:e.completedAt})]}),x&&(0,J.jsx)(F,{variant:`outlined`,size:`compact`,iconOnly:(0,J.jsx)(_,{}),onClick:S,"aria-label":i(`acpRunChatView.goToNewest`),tooltip:i(`acpRunChatView.goToNewest`),"data-testid":`acp-chat-scroll-to-latest`,className:`absolute bottom-3 left-1/2 -translate-x-1/2 rounded-full shadow-md`})]}),a&&!s&&(0,J.jsx)(Ye,{acpSessionId:e.acpSessionId},`steer-${e.acpSessionId}`)]})}function Ke({entry:e,isRunning:t,onClose:r,showBack:i=!1,onBack:a}){let{t:o}=n(`chat`),[s,c]=(0,I.useState)(!1),l=N(e.status,e.stopReason),u=(0,I.useCallback)(()=>{c(!0),re(e.acpSessionId).catch(e=>{c(!1),D(e,{context:`AcpRunChatView.stop`})})},[e.acpSessionId]);return(0,J.jsx)(oe,{icon:(0,J.jsxs)(J.Fragment,{children:[i&&(0,J.jsx)(F,{variant:`outlined`,iconOnly:(0,J.jsx)(w,{}),onClick:a,"aria-label":o(`acpRunChatView.backToConversationAria`),tooltip:o(`acpRunChatView.backTooltip`),"data-testid":`acp-chat-diff-back`,className:`shrink-0`}),(0,J.jsx)(ne,{agent:e.agent,className:`h-5 w-5 shrink-0`})]}),title:e.agent,headerTrailing:(0,J.jsx)(le,{color:l.color,label:l.label}),headerActions:t?(0,J.jsx)(ce,{onStop:u,ariaLabel:o(`acpRunChatView.stopRunAria`),disabled:s}):void 0,closeLabel:o(`acpRunChatView.closeRunDetail`),onClose:r})}function qe({task:e}){let{t}=n(`chat`);return e?(0,J.jsxs)(`div`,{"data-testid":`acp-chat-objective`,children:[(0,J.jsx)(j,{variant:`body-medium-default`,as:`h3`,className:`mb-1 text-[var(--content-emphasised)]`,children:t(`acpRunChatView.objective`)}),(0,J.jsx)(j,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:e}),(0,J.jsx)(`div`,{className:`mt-4 h-px w-full bg-[var(--border-hover)]`})]}):null}function Je({block:e,isTerminal:t,onOpenDiff:n,onOpenOutput:r,assistantId:i}){switch(e.kind){case`user`:return(0,J.jsx)(Fe,{content:e.content});case`agent`:return(0,J.jsx)(be,{content:e.content,isComplete:e.isComplete||t,assistantId:i});case`thinking`:return(0,J.jsx)(Ee,{content:e.content,isComplete:e.isComplete||t,assistantId:i});case`tool`:return(0,J.jsx)(Pe,{block:e,isTerminal:t,onOpenDiff:n,onOpenOutput:r});case`plan`:return(0,J.jsx)(xe,{entries:e.entries})}}function Ye({acpSessionId:e}){let{t}=n(`chat`),[r,i]=(0,I.useState)(``),[a,o]=(0,I.useState)(!1);return(0,J.jsx)(`form`,{onSubmit:(0,I.useCallback)(t=>{t.preventDefault();let n=r.trim();if(!n||a)return;o(!0);let s=A.getState().appendLocalMarker({acpSessionId:e,content:`${O}${n}`});ae(e,n).then(()=>i(``)).catch(t=>{s&&A.getState().removeLocalMarker({acpSessionId:e,markerId:s}),D(t,{context:`AcpRunChatView.steer`})}).finally(()=>o(!1))},[r,a,e]),"data-testid":`acp-chat-steer-form`,className:`sticky bottom-0 z-10 shrink-0 border-t border-[var(--border-hover)] bg-[var(--surface-lift)] px-5 py-3`,children:(0,J.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md bg-[var(--surface-base)] px-3 py-2`,children:[(0,J.jsx)(`input`,{type:`text`,value:r,onChange:e=>i(e.target.value),placeholder:t(`acpRunChatView.steerPlaceholder`),disabled:a,"aria-label":t(`acpRunChatView.steerAria`),className:`text-body-medium-default min-w-0 flex-1 bg-transparent text-[color:var(--content-default)] placeholder:text-[color:var(--content-tertiary)] focus:outline-none disabled:opacity-50`}),(0,J.jsx)(F,{type:`submit`,variant:`primary`,size:`compact`,iconOnly:(0,J.jsx)(y,{}),disabled:a||r.trim()===``,"aria-label":t(`acpRunChatView.sendSteerAria`),className:`shrink-0`})]})})}function Xe({entry:e,onClose:t,assistantId:n}){return(0,J.jsx)(Ge,{entry:e,onClose:t,assistantId:n})}export{Xe as AcpRunDetailPanel};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{j as t}from"./vendor-CCI2T82b.js";import{b as n,t as r}from"./react-DPM_L_aA.js";import{zr as i}from"./icons-B-6TfGtd.js";import{Ct as a,Kn as o,Ps as s,Ry as c,St as l,_ as u,bn as d,bt as f,ct as p,dt as m,er as h,fn as g,gn as _,it as v,lt as y,mn as b,nt as x,ot as S,pn as C,rt as w,st as T,tn as E,tt as D,un as O,xt as k,zy as A}from"./index-BHBLeC80.js";import{t as j}from"./use-transcript-message-by-id-DKwkoAvU.js";import{ToolDetailBody as M,t as N,toolDetailHeaderTitle as P}from"./tool-detail-panel-uczeeElt.js";var F=e(n(),1);function I(e,t,n){let r=k(t,n.workflow),i=e=>{let t=a(e,n.workflow.byToolUseId);if(t!==null&&r.has(t))return!0;let i=f(e,n.acpByToolUseId);if(i!==null&&n.acpById[i]!==void 0)return!0;let o=l(e);return o!==void 0&&n.backgroundTaskById[o]!==void 0},o=t.filter(e=>!i(e));if(o.length===t.length)return{items:e,toolCalls:t};let s=new Set(o.map(e=>e.id));return{items:e.filter(e=>e.kind!==`toolCall`||s.has(e.toolCall.id)),toolCalls:o}}function L(e,t){let n=j(e),r=s.use.byId(),i=s.use.byToolUseId(),a=s.use.notFoundRunIds(),c=s.use.hydrationFailedRunIds(),l=o.use.byId(),u=o.use.byToolUseId(),d=h.use.byId();return(0,F.useMemo)(()=>{if(!n||t==null)return null;let e=b(n.contentBlocks??[],{splitInlineThinking:n.role!==`user`})[t];if(!e||e.type!==`activity`)return null;let{cardItems:o,toolCalls:s}=C(e.items);return I(o,s,{workflow:{byId:r,byToolUseId:i,notFoundRunIds:a,hydrationFailedRunIds:c},acpById:l,acpByToolUseId:u,backgroundTaskById:d})},[n,t,r,i,a,c,l,u,d])}var R=r(),z=60;function B({payload:e,onClose:n,assistantId:r}){let{t:a}=t(`chat`),[o,s]=(0,F.useState)(null),l=L(e.messageId,e.groupIndex),d=l?.items??e.items,f=l?.toolCalls??e.toolCalls,p=v(d),h=x(p.steps),g=w(p.state,p.steps),_=g===`loading`,y=D(g,p.totalDurationLabel??``,h.failed),b=_&&p.currentStepTitle||y,S=new Map(f.map(e=>[e.id,e])),C=o?o.kind===`thinking`?`Thinking`:P(o):``;return(0,R.jsx)(u,{icon:o?(0,R.jsx)(A,{variant:`outlined`,iconOnly:(0,R.jsx)(i,{}),"aria-label":a(`activityStepsPanel.backAria`),tooltip:a(`activityStepsPanel.backTooltip`),onClick:()=>s(null),className:`shrink-0`}):void 0,titleNode:o?(0,R.jsx)(c,{variant:`title-medium`,className:`min-w-0 shrink truncate py-0.5 leading-snug text-[var(--content-default)]`,children:C}):(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5 py-0.5`,children:[(0,R.jsx)(c,{variant:`title-medium`,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:_?(0,R.jsx)(O,{children:b}):b}),p.stepCount?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:`size-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}),(0,R.jsx)(c,{variant:`title-medium`,className:`shrink-0 whitespace-nowrap leading-snug text-[var(--content-secondary)]`,children:p.stepCount})]}):null]}),closeLabel:a(`activityStepsPanel.closeSteps`),onClose:n,children:o?(0,R.jsx)(H,{detail:o,assistantId:r}):(0,R.jsx)(m,{steps:p.steps,timeline:!0,renderStep:t=>(0,R.jsx)(V,{step:t,activeDetail:o,onOpenDetail:s,lookupToolCall:e=>S.get(e),messageId:e.messageId,groupIndex:e.groupIndex})})})}function V({step:e,activeDetail:n,onOpenDetail:r,lookupToolCall:i,messageId:a,groupIndex:o}){let{t:s}=t(`chat`);if(e.kind===`thinking`){let t=a!=null&&e.thinkingItemIndex!=null?{messageId:a,thinkingGroupIndex:o,thinkingItemIndex:e.thinkingItemIndex}:{};return(0,R.jsx)(p,{iconName:`brain`,label:d(_(e.text),z),ariaLabel:s(`activityStepsPanel.viewThinkingAria`),active:!1,onClick:()=>r({kind:`thinking`,toolCallId:``,toolName:``,title:s(`activityStepsPanel.thinkingTitle`),activity:``,input:{},status:`completed`,thinkingText:e.text,...t})})}if(e.kind===`web_search`)return(0,R.jsx)(T,{step:e});if(e.kind===`web_search_error`)return(0,R.jsx)(S,{step:e});if(e.kind!==`tool`)return(0,R.jsx)(y,{step:e});let c=i(e.toolCallId);return(0,R.jsx)(p,{iconName:e.iconName,label:e.activity||e.info||e.title,active:n?.toolCallId===e.toolCallId,onClick:()=>{c&&r(g(c))}})}function H({detail:e,assistantId:t}){let n=N(e.kind===`thinking`?e.messageId:void 0,e.thinkingGroupIndex,e.thinkingItemIndex);return(0,R.jsx)(`div`,{className:`flex flex-col gap-4`,children:e.kind===`thinking`?(0,R.jsx)(E,{content:n??e.thinkingText??``,hardLineBreaks:!0,assistantId:t}):(0,R.jsx)(M,{detail:e,assistantId:t})})}export{B as ActivityStepsPanel};