@vellumai/web 0.11.3-staging.1 → 0.11.3-staging.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/dist/assets/{access-BEF4g5Xz.js → access-DWtJQvRI.js} +1 -1
  2. package/dist/assets/{account-page-CjBQhkfo.js → account-page-D03pCcnz.js} +1 -1
  3. package/dist/assets/{account-shell-BwGiy59u.js → account-shell-DmVQwtZ0.js} +1 -1
  4. package/dist/assets/{acp-run-detail-panel-BPcNCjiL.js → acp-run-detail-panel-COs66Yrd.js} +1 -1
  5. package/dist/assets/{activity-steps-panel-DhuSLpCc.js → activity-steps-panel-CLjBxqNs.js} +1 -1
  6. package/dist/assets/ai-page-D4GbPprS.js +1 -0
  7. package/dist/assets/{api-key-screen-D1j3oper.js → api-key-screen-vFF5CrFw.js} +1 -1
  8. package/dist/assets/{app-card-BBt0ilaM.js → app-card-B7C46-7O.js} +1 -1
  9. package/dist/assets/{assistant-status-panel-DnkQ1jrJ.js → assistant-status-panel-CDUAp33H.js} +1 -1
  10. package/dist/assets/{auth-store-CPVpJ_c7.js → auth-store-DkOiOQNx.js} +1 -1
  11. package/dist/assets/{avatar-random-BHVo9v-a.js → avatar-random-BiLhcs1I.js} +1 -1
  12. package/dist/assets/{background-task-detail-panel-CyVrsboL.js → background-task-detail-panel-xFGqYCUz.js} +1 -1
  13. package/dist/assets/{billing-page-CvZZTRHS.js → billing-page-n2hU_EAj.js} +2 -2
  14. package/dist/assets/{bookmarks-page-M8X5Jj_q.js → bookmarks-page-DqXq2CVJ.js} +1 -1
  15. package/dist/assets/{build-state-DGpOoR0F.js → build-state-B0f3Jn2o.js} +1 -1
  16. package/dist/assets/channels-page-route-CbV05RLi.js +9 -0
  17. package/dist/assets/chat-markdown-message-WfT4JUja.js +1 -0
  18. package/dist/assets/{checkout-page-CQdvMHxx.js → checkout-page-BxYwG3J8.js} +1 -1
  19. package/dist/assets/{command-palette-DjHOOk8U.js → command-palette-DSxHNf_m.js} +1 -1
  20. package/dist/assets/{command-palette-window-page-msewbnL1.js → command-palette-window-page-9lbssBKp.js} +1 -1
  21. package/dist/assets/{common-BUQt6ee_.js → common-wFfOb0rN.js} +1 -1
  22. package/dist/assets/{composer-settings-veIRzcPS.js → composer-settings-MHDtr31Y.js} +1 -1
  23. package/dist/assets/{contacts-page-route-Caog1niM.js → contacts-page-route-BE3oNfhk.js} +1 -1
  24. package/dist/assets/{conversation-navigation-DqU55C7j.js → conversation-navigation-DbQqV_fs.js} +1 -1
  25. package/dist/assets/{conversation-queries-Bh_7RMKd.js → conversation-queries-CMEwcap1.js} +1 -1
  26. package/dist/assets/{credentials-page-D3H8KP0a.js → credentials-page-DKfIMfUB.js} +1 -1
  27. package/dist/assets/{csv-preview-Crel8fKb.js → csv-preview-DB8q0b_y.js} +1 -1
  28. package/dist/assets/{debug-page-By8-4Cjy.js → debug-page-DpWI-aFX.js} +2 -2
  29. package/dist/assets/{deploy-dialogs-Dak-wWO4.js → deploy-dialogs-BhY-urVH.js} +1 -1
  30. package/dist/assets/{deploy-store-0HlKHhLJ.js → deploy-store-OFWDAEgC.js} +1 -1
  31. package/dist/assets/{detail-card-CmSV969e.js → detail-card-Dsnf52vg.js} +1 -1
  32. package/dist/assets/{detail-drawer-HN4NsyKg.js → detail-drawer-AKY7keIJ.js} +1 -1
  33. package/dist/assets/{detail-panel-stop-button-DV6U5A7y.js → detail-panel-stop-button-Cvnn4hYA.js} +1 -1
  34. package/dist/assets/{detail-shell-rL601Rqo.js → detail-shell-g6Pw4jiP.js} +1 -1
  35. package/dist/assets/{developer-page-Bgg8qW6q.js → developer-page-CSFTdMiT.js} +1 -1
  36. package/dist/assets/{document-viewer-container-BkKmz-ar.js → document-viewer-container-Bousf9D9.js} +2 -2
  37. package/dist/assets/{document-viewer-page-B-jAUGAO.js → document-viewer-page-CJuMnNZk.js} +1 -1
  38. package/dist/assets/{emails-page-B0r-ksKy.js → emails-page-CMoX6WSY.js} +1 -1
  39. package/dist/assets/{file-editor-BQUkusyI.js → file-editor-BwWJX7zO.js} +1 -1
  40. package/dist/assets/file-markdown-CZPyyZhu.js +2 -0
  41. package/dist/assets/{first-run-scope-U5LrdMhR.js → first-run-scope-jh9sT0_v.js} +1 -1
  42. package/dist/assets/{general-page-Ce41M2hE.js → general-page-Biad-auh.js} +1 -1
  43. package/dist/assets/{hatching-screen-TI6k1_Q2.js → hatching-screen-DtMbgBm6.js} +1 -1
  44. package/dist/assets/{home-page-route-D6oL1pWj.js → home-page-route-k81d1Zsb.js} +1 -1
  45. package/dist/assets/{home-tool-permission-card-DG7KNyYY.js → home-tool-permission-card-Bytpm6bE.js} +1 -1
  46. package/dist/assets/{hosting-screen-CGkMm-2o.js → hosting-screen-C-6MdEhq.js} +1 -1
  47. package/dist/assets/identity-page-route-BEobbSBV.js +7 -0
  48. package/dist/assets/{index-3KliM4Ki.js → index-BI5VpYa-.js} +1 -1
  49. package/dist/assets/index-_S2T-6in.css +2 -0
  50. package/dist/assets/{inspect-page-DD024DeO.js → inspect-page-BSPJgPij.js} +3 -3
  51. package/dist/assets/integration-icon-R8opqT3n.js +1 -0
  52. package/dist/assets/integrations-page-DNYDhZHQ.js +1 -0
  53. package/dist/assets/{intelligence-layout-DOTYC75R.js → intelligence-layout-CDcBeu8K.js} +1 -1
  54. package/dist/assets/{library-detail-page-B2C4hPSd.js → library-detail-page-D5EeSRdZ.js} +1 -1
  55. package/dist/assets/{library-page-Y2NwunY9.js → library-page-wPVeE7u1.js} +1 -1
  56. package/dist/assets/{local-runtime-upgrade-12Yco-XF.js → local-runtime-upgrade-DyHUCz7A.js} +1 -1
  57. package/dist/assets/{login-flow-fmfcNxyU.js → login-flow-B8CUFAeg.js} +1 -1
  58. package/dist/assets/{login-page-HFoMsSuP.js → login-page-BgXMUzWB.js} +1 -1
  59. package/dist/assets/{logout-page-B_3PiI2q.js → logout-page-COe8dRLu.js} +1 -1
  60. package/dist/assets/{logs-layout-7JGOJ0Gg.js → logs-layout-BGd_aSZ_.js} +1 -1
  61. package/dist/assets/{memory-page-route-Cf8FoT6z.js → memory-page-route-BGEmbUCl.js} +1 -1
  62. package/dist/assets/{memory-router-playground-page-B4vWmkYZ.js → memory-router-playground-page-B4DX4CON.js} +1 -1
  63. package/dist/assets/{message-files-panel-B8NzbXp3.js → message-files-panel-DTDXhD0C.js} +1 -1
  64. package/dist/assets/{messages-JRZkqLeA.js → messages-D2OJUCHs.js} +1 -1
  65. package/dist/assets/{metric-card-Ba-Ju2sO.js → metric-card-DgbUgyv7.js} +1 -1
  66. package/dist/assets/{mobile-sidebar-drawer-B0rTd7jy.js → mobile-sidebar-drawer-CRXVtqcP.js} +1 -1
  67. package/dist/assets/{multi-activity-group-5OxVs26d.js → multi-activity-group-Chyfm08f.js} +1 -1
  68. package/dist/assets/{not-found-zOjj1km-.js → not-found-ClBCK2Sg.js} +1 -1
  69. package/dist/assets/{notifications-pzRj4j4m.js → notifications-G7qqgf4f.js} +1 -1
  70. package/dist/assets/{notifications-page-DTTyILgl.js → notifications-page-AW-ftrs5.js} +1 -1
  71. package/dist/assets/{open-workspace-file-FgLn-SuR.js → open-workspace-file-C4HWMBzn.js} +2 -2
  72. package/dist/assets/{page-shell-DH240m1W.js → page-shell-CkfnwmIw.js} +1 -1
  73. package/dist/assets/pairing-page-CGoWIhv7.js +1 -0
  74. package/dist/assets/{personality-page-B1BQNH7w.js → personality-page-CEbJMhDR.js} +1 -1
  75. package/dist/assets/{plans-page-B8oZfefa.js → plans-page-DXCrcLo8.js} +1 -1
  76. package/dist/assets/{platform-login-notice-3g7rHtc3.js → platform-login-notice-CIpebDVw.js} +1 -1
  77. package/dist/assets/{platform-loopback-page-DwnkFF3M.js → platform-loopback-page-BJf6yE-E.js} +1 -1
  78. package/dist/assets/{plugin-detail-page-BrrXgSIx.js → plugin-detail-page-CnlqMl6e.js} +1 -1
  79. package/dist/assets/plugins-surface-C5i913ST.js +1 -0
  80. package/dist/assets/{preview-error-Di5TH4XQ.js → preview-error-CihmwI1t.js} +1 -1
  81. package/dist/assets/{privacy-page-4LAU5IqF.js → privacy-page-CxAYEG0r.js} +1 -1
  82. package/dist/assets/{privacy-screen-CNnBXznE.js → privacy-screen-DAzWoGQI.js} +1 -1
  83. package/dist/assets/{profile-pickers-BSDVzs_G.js → profile-pickers-ChG4_Gpc.js} +1 -1
  84. package/dist/assets/{provider-callback-page-CpfaqAgJ.js → provider-callback-page--oWycq5i.js} +1 -1
  85. package/dist/assets/{provider-key-C9asexKh.js → provider-key-BZOH9D9k.js} +1 -1
  86. package/dist/assets/{provider-signup-page-MukjbwOQ.js → provider-signup-page-BaGT8Jl4.js} +1 -1
  87. package/dist/assets/{push-registration-CqXBOPNb.js → push-registration-C0GXHrCj.js} +1 -1
  88. package/dist/assets/{remove-from-device-dialog-DY5o8eIg.js → remove-from-device-dialog-C0eaWxwl.js} +1 -1
  89. package/dist/assets/{research-onboarding-route-BIY3OCwG.js → research-onboarding-route-CXimVFK6.js} +1 -1
  90. package/dist/assets/{retire-confirm-dialog-CgOoh5RG.js → retire-confirm-dialog-B1bvTlHS.js} +1 -1
  91. package/dist/assets/{review-terms-screen-BA2I_7F2.js → review-terms-screen-BxxGJL-B.js} +1 -1
  92. package/dist/assets/{routes-DuLrKyjJ.js → routes-ZeXUrnzY.js} +14 -14
  93. package/dist/assets/{runtime-upgrade-banner-9KhcwQWy.js → runtime-upgrade-banner--bSmfygH.js} +1 -1
  94. package/dist/assets/{sandbox-bridge-B6h4B0qp.js → sandbox-bridge-BlniBIsp.js} +1 -1
  95. package/dist/assets/schedules-page-DCUj-YbP.js +1 -0
  96. package/dist/assets/select-assistant-screen-C5Cl_pCp.js +1 -0
  97. package/dist/assets/self-hosted-servers-DFgP80iG.js +1 -0
  98. package/dist/assets/{settings-divider-D_vHiuYw.js → settings-divider-BuDc875f.js} +1 -1
  99. package/dist/assets/{settings-layout-CINtkHJR.js → settings-layout-Clnlm1aB.js} +1 -1
  100. package/dist/assets/{settings-navigation-CHeVLLWI.js → settings-navigation-Cn3KCxOe.js} +1 -1
  101. package/dist/assets/{share-feedback-modal-BWez_NtT.js → share-feedback-modal-COUhsUqF.js} +1 -1
  102. package/dist/assets/{sidebar-tree-aLYbZLvm.js → sidebar-tree-BXbcoj07.js} +1 -1
  103. package/dist/assets/{signup-page-CiW0Chx7.js → signup-page-C9ZrCSVo.js} +1 -1
  104. package/dist/assets/{site-favicon-B5ilr8wL.js → site-favicon-B3DMFtr3.js} +1 -1
  105. package/dist/assets/{skill-detail-page-T24C6W33.js → skill-detail-page-Ckw6_1PG.js} +2 -2
  106. package/dist/assets/{skill-detail-panel-BOPQ16Vg.js → skill-detail-panel-DdYbYHuj.js} +1 -1
  107. package/dist/assets/{skills-C2mjxWRN.js → skills-Lf85mR9L.js} +1 -1
  108. package/dist/assets/{src-BMRW2yQf.js → src-hNk11eS3.js} +1 -1
  109. package/dist/assets/{stt-language-picker-modal-BVO4V699.js → stt-language-picker-modal-B5MO-3gk.js} +1 -1
  110. package/dist/assets/{subagent-detail-panel-BCDOrwh3.js → subagent-detail-panel-BKhU7VAv.js} +1 -1
  111. package/dist/assets/{subagent-store-BOpi4xxB.js → subagent-store-9SqF-NFa.js} +1 -1
  112. package/dist/assets/{superpowers-page-bOpdIXSO.js → superpowers-page-gPiU1fsq.js} +1 -1
  113. package/dist/assets/{system-events-page-Bgo88uzO.js → system-events-page-DbcoH4sh.js} +1 -1
  114. package/dist/assets/{telegram-setup-wizard-B3MHpy56.js → telegram-setup-wizard-C4E0wi1B.js} +1 -1
  115. package/dist/assets/{text-preview-CPYq3og6.js → text-preview-KOyX3OrO.js} +1 -1
  116. package/dist/assets/{theme-stage-page-B6C95R4X.js → theme-stage-page-D4DYc_C8.js} +1 -1
  117. package/dist/assets/{tiptap-document-editor-By4wlOTs.js → tiptap-document-editor-CDIJTTa_.js} +1 -1
  118. package/dist/assets/{tool-detail-panel-E_gP0j1r.js → tool-detail-panel-CmbBw4_n.js} +1 -1
  119. package/dist/assets/typed-storage-lk6_tW16.js +1 -0
  120. package/dist/assets/{upgrade-cancel-page-DCiT0Rqi.js → upgrade-cancel-page-DfjtkvP9.js} +1 -1
  121. package/dist/assets/{upgrade-success-page-DLs3viaj.js → upgrade-success-page-BDWg5oK4.js} +1 -1
  122. package/dist/assets/{use-assistant-avatar-Dk975wdP.js → use-assistant-avatar-Dd-EU1FC.js} +1 -1
  123. package/dist/assets/{use-assistant-identity-details-DyvMGaA7.js → use-assistant-identity-details-BAgi4MHa.js} +1 -1
  124. package/dist/assets/{use-attachment-preview-DjrcSin2.js → use-attachment-preview-CB3GsEns.js} +1 -1
  125. package/dist/assets/{use-attachment-squares-DHH1eTI4.js → use-attachment-squares-DPuVHGRC.js} +1 -1
  126. package/dist/assets/{use-bookmarks-Wg8ueMhb.js → use-bookmarks-C6IlHWIK.js} +1 -1
  127. package/dist/assets/{use-checkout-dismiss-refresh-wuwzKwo_.js → use-checkout-dismiss-refresh-CDwSKr1-.js} +1 -1
  128. package/dist/assets/{use-command-palette-sections-CzHbFhwD.js → use-command-palette-sections-DXzS2Tio.js} +1 -1
  129. package/dist/assets/{use-edge-swipe-back-9-2nUEK7.js → use-edge-swipe-back-ZgANxgKE.js} +2 -2
  130. package/dist/assets/{use-edit-app-PiQBQ9vN.js → use-edit-app-BHUYCv4X.js} +1 -1
  131. package/dist/assets/{use-invite-link-dialog-C6rYwhqr.js → use-invite-link-dialog-CdY5FNQa.js} +1 -1
  132. package/dist/assets/{use-is-org-ready-BTUeuhPi.js → use-is-org-ready-BmOdacs1.js} +1 -1
  133. package/dist/assets/{use-onboarding-login-BXw1Fcg3.js → use-onboarding-login-BUaNGE_u.js} +1 -1
  134. package/dist/assets/{use-platform-assistant-id-DOBe1pF-.js → use-platform-assistant-id-CEMyKEvV.js} +1 -1
  135. package/dist/assets/{use-platform-gate-DBRG0Q26.js → use-platform-gate-CdwOyQ8A.js} +1 -1
  136. package/dist/assets/{use-return-to-short-circuit-Bl1RwuwD.js → use-return-to-short-circuit-CTYRB2Ne.js} +1 -1
  137. package/dist/assets/{use-skill-actions-kLsl5L01.js → use-skill-actions-GbdM3IIw.js} +1 -1
  138. package/dist/assets/{use-sticky-profiles-CVsR9J8_.js → use-sticky-profiles-LVe9u5gh.js} +1 -1
  139. package/dist/assets/{use-subagent-card-data-BeUTFQdm.js → use-subagent-card-data-CFKl88ab.js} +1 -1
  140. package/dist/assets/{use-supports-bookmarks-FmvOAxKu.js → use-supports-bookmarks-z9pfj1Rm.js} +1 -1
  141. package/dist/assets/use-supports-credentials-settings-CEPArXBW.js +1 -0
  142. package/dist/assets/use-transcript-message-by-id-cDbEJMB-.js +1 -0
  143. package/dist/assets/{use-transcript-messages-BAG92dqc.js → use-transcript-messages-vw2Hogaj.js} +1 -1
  144. package/dist/assets/{use-voice-sample-preview-CVVwbBcE.js → use-voice-sample-preview-BjIqIVEG.js} +1 -1
  145. package/dist/assets/{utils-CAZUrJMu.js → utils-CVoSWh7U.js} +1 -1
  146. package/dist/assets/{viewer-store-BhqBXvNu.js → viewer-store-DhrkeZmJ.js} +1 -1
  147. package/dist/assets/{voice-list-ChEr4jqe.js → voice-list-DnqRx15F.js} +1 -1
  148. package/dist/assets/{voice-page-CkdnjoLc.js → voice-page-CrrYAE9k.js} +1 -1
  149. package/dist/assets/{voice-providers-note-DC4nbaBx.js → voice-providers-note-ValSs0nz.js} +1 -1
  150. package/dist/assets/{welcome-screen-BTnikex6.js → welcome-screen-CiBqE53u.js} +1 -1
  151. package/dist/assets/{workflow-detail-panel-Bf6rP5UH.js → workflow-detail-panel-crM7HRfK.js} +1 -1
  152. package/dist/assets/{workspace-page-C8EUvGJ4.js → workspace-page-iAsgehav.js} +1 -1
  153. package/dist/images/integrations/ATTRIBUTION.md +72 -0
  154. package/dist/images/integrations/airtable.svg +1 -0
  155. package/dist/images/integrations/asana.svg +1 -0
  156. package/dist/images/integrations/discord.svg +1 -0
  157. package/dist/images/integrations/dropbox.svg +1 -0
  158. package/dist/images/integrations/hubspot.svg +1 -0
  159. package/dist/images/integrations/salesforce.svg +5 -0
  160. package/dist/images/integrations/sanity.svg +1 -0
  161. package/dist/images/integrations/spotify.svg +1 -0
  162. package/dist/images/integrations/telegram.svg +1 -0
  163. package/dist/images/integrations/todoist.svg +1 -0
  164. package/dist/images/integrations/x.svg +1 -0
  165. package/dist/index.html +57 -57
  166. package/package.json +1 -1
  167. package/dist/assets/ai-page-CsufGyQ4.js +0 -1
  168. package/dist/assets/channels-page-route-Dj500t-M.js +0 -9
  169. package/dist/assets/chat-markdown-message-Dr9rA1lM.js +0 -1
  170. package/dist/assets/file-markdown-DMq6D4CV.js +0 -2
  171. package/dist/assets/identity-page-route-CLUGVFIg.js +0 -7
  172. package/dist/assets/index-BIhXfUlg.css +0 -2
  173. package/dist/assets/integration-icon-BaoRF0qI.js +0 -1
  174. package/dist/assets/integrations-page-Dygny-c2.js +0 -1
  175. package/dist/assets/pairing-page-Tun2QZT0.js +0 -1
  176. package/dist/assets/plugins-surface-B4NuEVD_.js +0 -1
  177. package/dist/assets/schedules-page-CchXRGaR.js +0 -1
  178. package/dist/assets/select-assistant-screen-BHf9p-NL.js +0 -1
  179. package/dist/assets/typed-storage-UYklH-m5.js +0 -1
  180. package/dist/assets/use-supports-credentials-settings-BGgnzFf0.js +0 -1
  181. package/dist/assets/use-supports-schedule-profile-moves-CuKzMKxy.js +0 -1
  182. package/dist/assets/use-transcript-message-by-id-C7L609Lk.js +0 -1
  183. /package/dist/assets/{profile-metadata-DutSLpwl.js → profile-metadata-DgH7VoVU.js} +0 -0
  184. /package/dist/assets/{start-screen-zLwb2fyf.js → start-screen-CXUDtHbL.js} +0 -0
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/routes-DuLrKyjJ.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/api-DwULK0El.js","assets/local-mode-BfEgOekp.js","assets/is-electron-BHXrkjI3.js","assets/create-selectors-DBgi9gD3.js","assets/react-BFJW0bSv.js","assets/local-settings-Bx7FsNo5.js","assets/api-JA_IDAQk.js","assets/sdk.gen-DKYWIHI7.js","assets/client.gen-C854VG5x.js","assets/sdk.gen-CBPZ2IdN.js","assets/api-errors-BQX1Pzcm.js","assets/use-assistant-avatar-Dk975wdP.js","assets/utils-CAZUrJMu.js","assets/assistant-identity-store-nE-e8KQw.js","assets/semver-7PiLMufW.js","assets/QueryClientProvider-CMu7CkQU.js","assets/jsx-runtime-D3ZM-ToX.js","assets/useQuery-Bz-fbQ-m.js","assets/composer-settings-veIRzcPS.js","assets/funnel-events-BU99LZEM.js","assets/prefs-CrbuxuNI.js","assets/onboarding-store-_SsI8JK5.js","assets/device-settings-DZvv4pnY.js","assets/consent-C4SGGEiM.js","assets/ingest-Cv1Pem27.js","assets/platform-detection-C_TK32Dw.js","assets/native-deep-link-CiI89I5P.js","assets/domains-Cmw6F6mt.js","assets/routes-iipg2wkc.js","assets/dist-Br0LBu8Y.js","assets/use-bus-subscription-0lId9jya.js","assets/event-bus-Cy8AzL-G.js","assets/capture-error-Cw5vs0Ef.js","assets/client-feature-flag-store-C8ieIAKe.js","assets/feature-flag-catalog-BOqgTYGM.js","assets/theme-preferences-5grl-uOq.js","assets/typed-storage-UYklH-m5.js","assets/button-BENY-yx_.js","assets/dist-DHB1G-V6.js","assets/bundle-mjs-BQxDdOEo.js","assets/cn-DFWryB3N.js","assets/checkbox-C4x4HEp4.js","assets/createLucideIcon-C1mdGPB9.js","assets/check-DSgjgwlo.js","assets/typography-BeUa5Fd-.js","assets/src-BMRW2yQf.js","assets/dist-DlYszVmN.js","assets/dist-BA9prIz1.js","assets/select-B8-i-CZ4.js","assets/Combination-BswM2qVy.js","assets/chevron-down-CrFV6lfm.js","assets/field-Dq8jxCGe.js","assets/modal-DI63s9MQ.js","assets/dist-C5_d6Zkz.js","assets/x-338EsJDP.js","assets/menu-DKE_-iVc.js","assets/chevron-right-DBGgpEiZ.js","assets/popover-CAbJ9178.js","assets/toast-BpuLSxyt.js","assets/circle-alert-De9q5FVd.js","assets/circle-check-q8BVdbgw.js","assets/info-CXkwGlN_.js","assets/card-q0GJX1HZ.js","assets/confirm-dialog-zx8L9sUi.js","assets/loader-circle-DOtGXcds.js","assets/triangle-alert-CB4pJgCL.js","assets/input-DmHXRXaB.js","assets/notice-C0ifrvvJ.js","assets/progress-bar-CrrJKpWm.js","assets/skeleton-CJJwPIil.js","assets/tag-DeMzQvCo.js","assets/toggle-C-v4x7_A.js","assets/src-CfUWwwYf.css","assets/profile-pickers-BSDVzs_G.js","assets/identity-DTcIPrCK.js","assets/auth-store-CPVpJ_c7.js","assets/remote-gateway-session-CgDx1fv1.js","assets/push-registration-CqXBOPNb.js","assets/resolved-assistants-store-BFI9c7ip.js","assets/runtime-upgrade-banner-9KhcwQWy.js","assets/react-query.gen-DKb3mEwJ.js","assets/useMutation-CXGTrp4W.js","assets/infiniteQueryOptions-CqLc14_4.js","assets/queryOptions-CMSBCFOf.js","assets/use-is-org-ready-BTUeuhPi.js","assets/local-runtime-upgrade-12Yco-XF.js","assets/use-platform-gate-DBRG0Q26.js","assets/diagnostics-6dSlxnyU.js","assets/misc-Z0jXGGeY.js","assets/cloud-off-DyOAnFan.js","assets/moon-D9N1oSgM.js","assets/refresh-cw-DV6tvYxO.js","assets/wrench-BIRk4-Cp.js","assets/chunk-5KNZJZUH-BUqIilZr.js","assets/retire-confirm-dialog-CgOoh5RG.js","assets/navigation-resolver-DrNVOkMu.js","assets/research-onboarding-persistence-CiHHjoc-.js","assets/build-state-DGpOoR0F.js","assets/remove-from-device-dialog-DY5o8eIg.js","assets/use-command-palette-sections-CzHbFhwD.js","assets/chat-DYLliWTB.js","assets/haptics-Mqend0Ru.js","assets/calendar-CTyC1v1L.js","assets/globe-COk-NH9x.js","assets/layout-grid-C3h1DMhl.js","assets/message-square-BjBDqFUX.js","assets/monitor-CPgcKlQP.js","assets/settings-751LDGs_.js","assets/use-sticky-profiles-CVsR9J8_.js","assets/react-query.gen-DxjuNs-5.js","assets/add-credential-modal-DKu25tMg.js","assets/use-active-assistant-id-BvHP5Ojg.js","assets/key-round-B-C1Qgxd.js","assets/app-card-BBt0ilaM.js","assets/viewer-store-BhqBXvNu.js","assets/workspace-path-links-Dal5QJ_L.js","assets/open-workspace-file-FgLn-SuR.js","assets/sandbox-bridge-B6h4B0qp.js","assets/copy-to-clipboard-DnJHokIa.js","assets/deploy-store-0HlKHhLJ.js","assets/native-file-BUoRmAbj.js","assets/edge-swipe-arbiter-store-aOM60mqn.js","assets/pointer-CmipOtDe.js","assets/external-link-vwewPjbo.js","assets/puzzle-CIWAeBs0.js","assets/use-edit-app-PiQBQ9vN.js","assets/use-is-mobile-BP8UePsY.js","assets/conversation-store-D4pZBwP5.js","assets/edit-chat-session-DKBzd1lH.js","assets/chevron-up-B84s50b8.js","assets/link-2-Bm55xvLL.js","assets/minimize-2-D5pX5fY1.js","assets/pencil-DidiUknI.js","assets/avatar-renderer-CsRuhhXn.js","assets/avatar-svg-compositor-BOadabHt.js","assets/animated-avatar-COfAYU4u.js","assets/use-reduced-motion-CaGZSwLZ.js","assets/reduced-motion-DiWTepDn.js","assets/chat-avatar-BPhNOZzd.js","assets/sound-manager-jVvPdZzE.js","assets/proxy-B4sTDdE4.js","assets/telegram-setup-wizard-B3MHpy56.js","assets/use-copy-to-clipboard-CT4aISCf.js","assets/browser-BP3Xidk_.js","assets/clipboard-copy-BOU_-XoC.js","assets/detail-shell-rL601Rqo.js","assets/apple-logo-Dz_HmP0n.js","assets/use-discord-nudge-BxJE92fj.js","assets/middleware-DiHdH8q1.js","assets/integration-icon-BaoRF0qI.js","assets/public-asset-CZ7NhuGg.js","assets/chat-layout-slots-store-N_sabTbs.js","assets/document-viewer-container-BkKmz-ar.js","assets/use-local-file-info-2nORgZPN.js","assets/circle-check-big-CpoRGdNz.js","assets/download-Byg0fi0d.js","assets/file-text-DDbRSMUn.js","assets/message-square-text-Crbwae27.js","assets/send-BlX2px_R.js","assets/trash-2-BKXSi5Tj.js","assets/user-Djte2CiZ.js","assets/not-found-zOjj1km-.js","assets/arrow-left-BikDV6F2.js","assets/sparkles-B94iNYGJ.js","assets/shim-DQit20z4.js","assets/platform-login-notice-3g7rHtc3.js","assets/use-onboarding-login-BXw1Fcg3.js","assets/login-flow-fmfcNxyU.js","assets/native-auth-error-B9Iha2zU.js","assets/external-urls-EO9DXoFH.js","assets/log-in-BkWp0GjS.js","assets/voice-list-ChEr4jqe.js","assets/use-voice-sample-preview-CVVwbBcE.js","assets/search-D2xMZu1P.js","assets/square-CE8V_WXJ.js","assets/volume-2-CyoXrHNM.js","assets/voice-providers-note-DC4nbaBx.js","assets/use-save-twilio-credentials-D5Zb65WS.js","assets/sdk.gen-CAngxL4a.js","assets/mail-CYjppw70.js","assets/message-circle-C6QWfv9m.js","assets/acp-run-store-DAOLku4B.js","assets/by-tool-use-id-index-xzJzBHo0.js","assets/optimistic-lifecycle-y2tCk6TM.js","assets/messages-JRZkqLeA.js","assets/prechat-CXmfuQt3.js","assets/effective-timezone-CjGPHJlt.js","assets/browser-timezone-DM1QmwES.js","assets/background-task-store-B1MUU_bh.js","assets/use-transcript-messages-BAG92dqc.js","assets/use-attachment-preview-DjrcSin2.js","assets/file-markdown-DMq6D4CV.js","assets/pdf-preview-DNzKWskr.js","assets/chevron-left-D-pnIQax.js","assets/file-CTdxLT0k.js","assets/client-perf-C-xVLAvQ.js","assets/acp-run-actions-BtRROeN9.js","assets/code-DwZ6Mhdw.js","assets/background-task-actions-NhVu8iWU.js","assets/message-content-Beh5mR15.js","assets/multi-activity-group-5OxVs26d.js","assets/site-favicon-B5ilr8wL.js","assets/three-dot-indicator-BQxSg8G2.js","assets/AnimatePresence-D41IKJOi.js","assets/brain-ZiC0HCCF.js","assets/user-plus-DAap8I1c.js","assets/subagent-store-BOpi4xxB.js","assets/circle-x-B5rnAOe1.js","assets/file-plus-D0O_zjgz.js","assets/terminal-CkQ9DSF2.js","assets/use-attachment-squares-DHH1eTI4.js","assets/archive-VIStcSec.js","assets/chat-markdown-message-Dr9rA1lM.js","assets/workspace-tree-query-Djht8L1-.js","assets/native-anchor-CpFd0dIc.js","assets/ellipsis-C7C3LPFH.js","assets/eye-off-BwU7XK4M.js","assets/eye-GcssNJdY.js","assets/preview-skeleton-DsTQ51Kh.js","assets/surface-parse-helpers-Dpxz8G3q.js","assets/conversation-navigation-DqU55C7j.js","assets/workflow-store-D0DBQy44.js","assets/workflow-status-AIHLnh_i.js","assets/conversation-selection-DXYpE4U8.js","assets/use-subagent-card-data-BeUTFQdm.js","assets/access-BEF4g5Xz.js","assets/assistant-feature-flag-store-qYfAdlBG.js","assets/research-results-view-CBP6WMg5.js","assets/research-facts-xV6xeZTm.js","assets/ban-Dk1OXyCw.js","assets/home-tool-permission-card-DG7KNyYY.js","assets/format-date-Bi9Bsv-w.js","assets/bell-aW0w-ROt.js","assets/clock-B8umTTHk.js","assets/list-O_53kvwx.js","assets/rotate-ccw-Dcfo4EC8.js","assets/shield-check-zaoUwOKj.js","assets/invalidate-memory-queries-CdJoJc7n.js","assets/get-memory-stats-CgfjHhot.js","assets/invalidate-plugin-queries-zbCn3jP3.js","assets/first-run-scope-U5LrdMhR.js","assets/oauth-connection-utils-CPrZGY1J.js","assets/oauth-popup-CBMOU7CT.js","assets/onboarding-layout-C534GRct.js","assets/settings-navigation-CHeVLLWI.js","assets/hard-navigate-BrsAH6PB.js","assets/use-supports-bookmarks-FmvOAxKu.js","assets/bug-CDEs1Scu.js","assets/chart-column-CEHOik7U.js","assets/cpu-mDttg6J1.js","assets/mic-bZFqVBA_.js","assets/sliders-horizontal-Dd2oGqSf.js","assets/users-XI0CRYkf.js","assets/schedules-kVuR00ra.js","assets/schedules-CMISpWUM.js","assets/workspace-theme-tokens-D_dTwxiM.js","assets/conversation-queries-Bh_7RMKd.js","assets/conversation-list-fetchers-D3FmANI4.js","assets/use-edge-swipe-Di2s_nu-.js","assets/use-app-theme-CV9AULGm.js","assets/use-assistant-capability-y4ML0NOY.js","assets/use-avatar-accent-var-B7jzoU_Q.js","assets/avatar-bundled-components-BCCi2IoG.js","assets/use-bookmarks-Wg8ueMhb.js","assets/daily-reset-time-B2-pE2Lv.js","assets/use-swipe-engine-DkOpo76V.js","assets/plugins-surface-B4NuEVD_.js","assets/android-consumption-only-BkXIkXls.js","assets/installed-plugins-query-CIcohCho.js","assets/doctor-handoff-store-DeQSIF5u.js","assets/threshold-presets-DgMnAyqn.js","assets/shield-CCHFIJHf.js","assets/trust-rules-api-DvCWJ952.js","assets/desktop-voice-activity-C53ZhMf7.js","assets/dictation-overlay-DQnD0C9N.js","assets/notifications-pzRj4j4m.js","assets/esm-C-UZ0OO7.js","assets/page-surface-store-CNB4IeOj.js","assets/avatar-subagent-CvC1Sf9s.js","assets/avatar-tone-D1ZiIRxb.js","assets/conversation-cache-BmhpM_P6.js","assets/eye-bbox-hZoek1Q5.js","assets/use-bundled-avatar-components-CJR9zw0E.js","assets/use-effective-timezone-BZgsy8ZD.js","assets/useInfiniteQuery-Dk8q0n49.js","assets/animate-CEUNjqNk.js","assets/arrow-down-to-line-DmG4pLoU.js","assets/arrow-right-UTImTy7b.js","assets/arrow-up-C0gtfKEK.js","assets/upload-CZL0kXl9.js","assets/circle-minus-Y3lFnfyL.js","assets/cloud-DqktQX50.js","assets/coins-CJ7Ik1IC.js","assets/file-code-Cw2JhKbm.js","assets/video-BS0zvFDX.js","assets/folder-DBR-Zigu.js","assets/hard-drive-DsHzx0GK.js","assets/heart-CRsy5qXC.js","assets/inbox-Zbr4HDc_.js","assets/laptop-BXuIFbVm.js","assets/lightbulb-DqvoPoCk.js","assets/link-DMi999lz.js","assets/log-out-un0hWR_E.js","assets/paperclip-CQEdxfSq.js","assets/play-UYtEUTRg.js","assets/plus-DnH9Pjq4.js","assets/smartphone-BTdDwse2.js","assets/sun-DnK4LisT.js","assets/workflow-CXyPzVz4.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./preload-helper-Cv2QeVDK.js";import{c as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{i,n as a,r as o}from"./use-edge-swipe-Di2s_nu-.js";import{t as s}from"./edge-swipe-arbiter-store-aOM60mqn.js";var c=e(t(),1),l=new Set;function u(e){if(typeof e==`function`){e().catch(()=>{});return}for(let t of Object.values(e))typeof t==`function`&&t().catch(()=>{})}function d(e){!e||l.has(e)||(l.add(e),n(async()=>{let{routeTree:e}=await import(`./routes-DuLrKyjJ.js`).then(e=>e.n);return{routeTree:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311])).then(({routeTree:t})=>{let n=r(t,e);for(let e of n??[]){let t=e.route.lazy;t&&u(t)}}).catch(()=>{l.delete(e)}))}var f=.25;function p(e){e.style.transition=``,e.style.transform=``,e.style.willChange=``,e.style.opacity=``}function m({containerRef:e,onBack:t,enabled:n,navKey:r,prefetchHref:l}){let u=(0,c.useRef)(t);(0,c.useLayoutEffect)(()=>{u.current=t},[t]);let m=(0,c.useRef)(l);(0,c.useLayoutEffect)(()=>{m.current=l},[l]);let h=(0,c.useRef)(!1),g=(0,c.useRef)(new Set),_=(0,c.useRef)(!1),v=s.use.registerBackOwner(),y=s.use.unregisterBackOwner();(0,c.useEffect)(()=>{if(n)return v(),y},[n,v,y]),(0,c.useEffect)(()=>{_.current=!1;let t=g.current;return()=>{_.current=!0;for(let e of t)clearTimeout(e);t.clear();let n=e.current;n&&p(n)}},[e]);let b=(e,t)=>{let n=setTimeout(()=>{g.current.delete(n),_.current||e()},t);g.current.add(n)},x=(e,t)=>{e.style.transform=t===0?``:`translateX(${t}px)`},S=e=>{e.style.transition=`transform 200ms ${i}`,x(e,0);let t=()=>{e.removeEventListener(`transitionend`,t),p(e)};e.addEventListener(`transitionend`,t,{once:!0}),b(()=>p(e),250)},C=e=>{e.style.transition=`transform 150ms ${i}`,x(e,window.innerWidth);let t=!1,n=()=>{if(t||_.current)return;t=!0,e.removeEventListener(`transitionend`,n);let r=-(window.innerWidth*f);e.style.transition=`none`,e.style.transform=`translateX(${r}px)`,e.style.opacity=`0`,e.offsetWidth,h.current=!0,u.current(),b(()=>{h.current&&(h.current=!1,p(e))},400)};e.addEventListener(`transitionend`,n,{once:!0}),b(n,200)};o({enabled:n,onConfirm:()=>{d(m.current);let t=e.current;t&&(t.style.transition=`none`,t.style.willChange=`transform`)},onMove:(t,n)=>{let r=e.current;r&&x(r,a(t,n))},onCommit:()=>{let t=e.current;if(!t){u.current();return}C(t)},onCancel:t=>{let n=e.current;n&&(t?S(n):p(n))}}),(0,c.useLayoutEffect)(()=>{if(!h.current)return;h.current=!1;let t=e.current;if(!t)return;let n=!1,r=()=>{n||(n=!0,t.removeEventListener(`transitionend`,r),p(t))};t.style.transition=`transform 200ms ${i}, opacity 200ms ${i}`,t.style.transform=``,t.style.opacity=``,t.addEventListener(`transitionend`,r,{once:!0});let a=setTimeout(r,250);return()=>{clearTimeout(a),t.removeEventListener(`transitionend`,r),p(t)}},[r,e])}export{m as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/routes-ZeXUrnzY.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/api-DwULK0El.js","assets/local-mode-BfEgOekp.js","assets/is-electron-BHXrkjI3.js","assets/create-selectors-DBgi9gD3.js","assets/react-BFJW0bSv.js","assets/local-settings-Bx7FsNo5.js","assets/api-JA_IDAQk.js","assets/sdk.gen-DKYWIHI7.js","assets/client.gen-C854VG5x.js","assets/sdk.gen-CBPZ2IdN.js","assets/api-errors-BQX1Pzcm.js","assets/use-assistant-avatar-Dd-EU1FC.js","assets/utils-CVoSWh7U.js","assets/assistant-identity-store-nE-e8KQw.js","assets/semver-7PiLMufW.js","assets/QueryClientProvider-CMu7CkQU.js","assets/jsx-runtime-D3ZM-ToX.js","assets/useQuery-Bz-fbQ-m.js","assets/composer-settings-MHDtr31Y.js","assets/funnel-events-BU99LZEM.js","assets/prefs-CrbuxuNI.js","assets/onboarding-store-_SsI8JK5.js","assets/device-settings-DZvv4pnY.js","assets/consent-C4SGGEiM.js","assets/ingest-Cv1Pem27.js","assets/platform-detection-C_TK32Dw.js","assets/native-deep-link-CiI89I5P.js","assets/domains-Cmw6F6mt.js","assets/routes-iipg2wkc.js","assets/dist-Br0LBu8Y.js","assets/use-bus-subscription-0lId9jya.js","assets/event-bus-Cy8AzL-G.js","assets/capture-error-Cw5vs0Ef.js","assets/client-feature-flag-store-C8ieIAKe.js","assets/feature-flag-catalog-BOqgTYGM.js","assets/theme-preferences-5grl-uOq.js","assets/typed-storage-lk6_tW16.js","assets/button-BENY-yx_.js","assets/dist-DHB1G-V6.js","assets/bundle-mjs-BQxDdOEo.js","assets/cn-DFWryB3N.js","assets/checkbox-C4x4HEp4.js","assets/createLucideIcon-C1mdGPB9.js","assets/check-DSgjgwlo.js","assets/typography-BeUa5Fd-.js","assets/src-hNk11eS3.js","assets/dist-DlYszVmN.js","assets/dist-BA9prIz1.js","assets/select-B8-i-CZ4.js","assets/Combination-BswM2qVy.js","assets/chevron-down-CrFV6lfm.js","assets/field-Dq8jxCGe.js","assets/modal-DI63s9MQ.js","assets/dist-C5_d6Zkz.js","assets/x-338EsJDP.js","assets/menu-DKE_-iVc.js","assets/chevron-right-DBGgpEiZ.js","assets/popover-CAbJ9178.js","assets/toast-BpuLSxyt.js","assets/circle-alert-De9q5FVd.js","assets/circle-check-q8BVdbgw.js","assets/info-CXkwGlN_.js","assets/card-q0GJX1HZ.js","assets/confirm-dialog-zx8L9sUi.js","assets/loader-circle-DOtGXcds.js","assets/triangle-alert-CB4pJgCL.js","assets/input-DmHXRXaB.js","assets/notice-C0ifrvvJ.js","assets/progress-bar-CrrJKpWm.js","assets/skeleton-CJJwPIil.js","assets/tag-DeMzQvCo.js","assets/toggle-C-v4x7_A.js","assets/src-CfUWwwYf.css","assets/profile-pickers-ChG4_Gpc.js","assets/identity-DTcIPrCK.js","assets/auth-store-DkOiOQNx.js","assets/remote-gateway-session-CgDx1fv1.js","assets/push-registration-C0GXHrCj.js","assets/resolved-assistants-store-BFI9c7ip.js","assets/runtime-upgrade-banner--bSmfygH.js","assets/react-query.gen-DKb3mEwJ.js","assets/useMutation-CXGTrp4W.js","assets/infiniteQueryOptions-CqLc14_4.js","assets/queryOptions-CMSBCFOf.js","assets/use-is-org-ready-BmOdacs1.js","assets/local-runtime-upgrade-DyHUCz7A.js","assets/use-platform-gate-CdwOyQ8A.js","assets/diagnostics-6dSlxnyU.js","assets/misc-Z0jXGGeY.js","assets/cloud-off-DyOAnFan.js","assets/moon-D9N1oSgM.js","assets/refresh-cw-DV6tvYxO.js","assets/wrench-BIRk4-Cp.js","assets/chunk-5KNZJZUH-BUqIilZr.js","assets/retire-confirm-dialog-B1bvTlHS.js","assets/navigation-resolver-DrNVOkMu.js","assets/research-onboarding-persistence-CiHHjoc-.js","assets/build-state-B0f3Jn2o.js","assets/remove-from-device-dialog-C0eaWxwl.js","assets/use-command-palette-sections-DXzS2Tio.js","assets/chat-DYLliWTB.js","assets/haptics-Mqend0Ru.js","assets/calendar-CTyC1v1L.js","assets/globe-COk-NH9x.js","assets/layout-grid-C3h1DMhl.js","assets/message-square-BjBDqFUX.js","assets/monitor-CPgcKlQP.js","assets/settings-751LDGs_.js","assets/use-sticky-profiles-LVe9u5gh.js","assets/react-query.gen-DxjuNs-5.js","assets/add-credential-modal-DKu25tMg.js","assets/use-active-assistant-id-BvHP5Ojg.js","assets/key-round-B-C1Qgxd.js","assets/app-card-B7C46-7O.js","assets/viewer-store-DhrkeZmJ.js","assets/workspace-path-links-Dal5QJ_L.js","assets/open-workspace-file-C4HWMBzn.js","assets/sandbox-bridge-BlniBIsp.js","assets/copy-to-clipboard-DnJHokIa.js","assets/deploy-store-OFWDAEgC.js","assets/native-file-BUoRmAbj.js","assets/edge-swipe-arbiter-store-aOM60mqn.js","assets/pointer-CmipOtDe.js","assets/external-link-vwewPjbo.js","assets/puzzle-CIWAeBs0.js","assets/use-edit-app-BHUYCv4X.js","assets/use-is-mobile-BP8UePsY.js","assets/conversation-store-D4pZBwP5.js","assets/edit-chat-session-DKBzd1lH.js","assets/chevron-up-B84s50b8.js","assets/link-2-Bm55xvLL.js","assets/minimize-2-D5pX5fY1.js","assets/pencil-DidiUknI.js","assets/avatar-renderer-CsRuhhXn.js","assets/avatar-svg-compositor-BOadabHt.js","assets/animated-avatar-COfAYU4u.js","assets/use-reduced-motion-CaGZSwLZ.js","assets/reduced-motion-DiWTepDn.js","assets/chat-avatar-BPhNOZzd.js","assets/sound-manager-jVvPdZzE.js","assets/proxy-B4sTDdE4.js","assets/telegram-setup-wizard-C4E0wi1B.js","assets/use-copy-to-clipboard-CT4aISCf.js","assets/browser-BP3Xidk_.js","assets/clipboard-copy-BOU_-XoC.js","assets/detail-shell-g6Pw4jiP.js","assets/apple-logo-Dz_HmP0n.js","assets/use-discord-nudge-BxJE92fj.js","assets/middleware-DiHdH8q1.js","assets/integration-icon-R8opqT3n.js","assets/public-asset-CZ7NhuGg.js","assets/chat-layout-slots-store-N_sabTbs.js","assets/document-viewer-container-Bousf9D9.js","assets/use-local-file-info-2nORgZPN.js","assets/circle-check-big-CpoRGdNz.js","assets/download-Byg0fi0d.js","assets/file-text-DDbRSMUn.js","assets/message-square-text-Crbwae27.js","assets/send-BlX2px_R.js","assets/trash-2-BKXSi5Tj.js","assets/user-Djte2CiZ.js","assets/not-found-ClBCK2Sg.js","assets/arrow-left-BikDV6F2.js","assets/sparkles-B94iNYGJ.js","assets/shim-DQit20z4.js","assets/platform-login-notice-CIpebDVw.js","assets/use-onboarding-login-BUaNGE_u.js","assets/login-flow-B8CUFAeg.js","assets/native-auth-error-B9Iha2zU.js","assets/external-urls-EO9DXoFH.js","assets/log-in-BkWp0GjS.js","assets/voice-list-DnqRx15F.js","assets/use-voice-sample-preview-BjIqIVEG.js","assets/search-D2xMZu1P.js","assets/square-CE8V_WXJ.js","assets/volume-2-CyoXrHNM.js","assets/voice-providers-note-ValSs0nz.js","assets/use-save-twilio-credentials-D5Zb65WS.js","assets/sdk.gen-CAngxL4a.js","assets/mail-CYjppw70.js","assets/message-circle-C6QWfv9m.js","assets/acp-run-store-DAOLku4B.js","assets/by-tool-use-id-index-xzJzBHo0.js","assets/optimistic-lifecycle-y2tCk6TM.js","assets/messages-D2OJUCHs.js","assets/prechat-CXmfuQt3.js","assets/effective-timezone-CjGPHJlt.js","assets/browser-timezone-DM1QmwES.js","assets/background-task-store-B1MUU_bh.js","assets/use-transcript-messages-vw2Hogaj.js","assets/use-attachment-preview-CB3GsEns.js","assets/file-markdown-CZPyyZhu.js","assets/pdf-preview-DNzKWskr.js","assets/chevron-left-D-pnIQax.js","assets/file-CTdxLT0k.js","assets/client-perf-C-xVLAvQ.js","assets/acp-run-actions-BtRROeN9.js","assets/code-DwZ6Mhdw.js","assets/background-task-actions-NhVu8iWU.js","assets/message-content-Beh5mR15.js","assets/multi-activity-group-Chyfm08f.js","assets/site-favicon-B3DMFtr3.js","assets/three-dot-indicator-BQxSg8G2.js","assets/AnimatePresence-D41IKJOi.js","assets/brain-ZiC0HCCF.js","assets/user-plus-DAap8I1c.js","assets/subagent-store-9SqF-NFa.js","assets/circle-x-B5rnAOe1.js","assets/file-plus-D0O_zjgz.js","assets/terminal-CkQ9DSF2.js","assets/use-attachment-squares-DPuVHGRC.js","assets/archive-VIStcSec.js","assets/chat-markdown-message-WfT4JUja.js","assets/workspace-tree-query-Djht8L1-.js","assets/native-anchor-CpFd0dIc.js","assets/ellipsis-C7C3LPFH.js","assets/eye-off-BwU7XK4M.js","assets/eye-GcssNJdY.js","assets/preview-skeleton-DsTQ51Kh.js","assets/surface-parse-helpers-Dpxz8G3q.js","assets/conversation-navigation-DbQqV_fs.js","assets/workflow-store-D0DBQy44.js","assets/workflow-status-AIHLnh_i.js","assets/conversation-selection-DXYpE4U8.js","assets/use-subagent-card-data-CFKl88ab.js","assets/access-DWtJQvRI.js","assets/assistant-feature-flag-store-qYfAdlBG.js","assets/research-results-view-CBP6WMg5.js","assets/research-facts-xV6xeZTm.js","assets/ban-Dk1OXyCw.js","assets/home-tool-permission-card-Bytpm6bE.js","assets/format-date-Bi9Bsv-w.js","assets/bell-aW0w-ROt.js","assets/clock-B8umTTHk.js","assets/list-O_53kvwx.js","assets/rotate-ccw-Dcfo4EC8.js","assets/shield-check-zaoUwOKj.js","assets/invalidate-memory-queries-CdJoJc7n.js","assets/get-memory-stats-CgfjHhot.js","assets/invalidate-plugin-queries-zbCn3jP3.js","assets/first-run-scope-jh9sT0_v.js","assets/oauth-connection-utils-CPrZGY1J.js","assets/oauth-popup-CBMOU7CT.js","assets/onboarding-layout-C534GRct.js","assets/settings-navigation-Cn3KCxOe.js","assets/hard-navigate-BrsAH6PB.js","assets/use-supports-bookmarks-z9pfj1Rm.js","assets/bug-CDEs1Scu.js","assets/chart-column-CEHOik7U.js","assets/cpu-mDttg6J1.js","assets/mic-bZFqVBA_.js","assets/sliders-horizontal-Dd2oGqSf.js","assets/users-XI0CRYkf.js","assets/schedules-kVuR00ra.js","assets/schedules-CMISpWUM.js","assets/workspace-theme-tokens-D_dTwxiM.js","assets/conversation-queries-CMEwcap1.js","assets/conversation-list-fetchers-D3FmANI4.js","assets/use-edge-swipe-Di2s_nu-.js","assets/use-app-theme-CV9AULGm.js","assets/use-assistant-capability-y4ML0NOY.js","assets/use-avatar-accent-var-B7jzoU_Q.js","assets/avatar-bundled-components-BCCi2IoG.js","assets/use-bookmarks-C6IlHWIK.js","assets/daily-reset-time-B2-pE2Lv.js","assets/use-swipe-engine-DkOpo76V.js","assets/plugins-surface-C5i913ST.js","assets/android-consumption-only-BkXIkXls.js","assets/installed-plugins-query-CIcohCho.js","assets/doctor-handoff-store-DeQSIF5u.js","assets/threshold-presets-DgMnAyqn.js","assets/shield-CCHFIJHf.js","assets/trust-rules-api-DvCWJ952.js","assets/desktop-voice-activity-C53ZhMf7.js","assets/dictation-overlay-DQnD0C9N.js","assets/notifications-G7qqgf4f.js","assets/esm-C-UZ0OO7.js","assets/page-surface-store-CNB4IeOj.js","assets/avatar-subagent-CvC1Sf9s.js","assets/avatar-tone-D1ZiIRxb.js","assets/conversation-cache-BmhpM_P6.js","assets/eye-bbox-hZoek1Q5.js","assets/use-bundled-avatar-components-CJR9zw0E.js","assets/use-effective-timezone-BZgsy8ZD.js","assets/useInfiniteQuery-Dk8q0n49.js","assets/animate-CEUNjqNk.js","assets/arrow-down-to-line-DmG4pLoU.js","assets/arrow-right-UTImTy7b.js","assets/arrow-up-C0gtfKEK.js","assets/upload-CZL0kXl9.js","assets/circle-minus-Y3lFnfyL.js","assets/cloud-DqktQX50.js","assets/coins-CJ7Ik1IC.js","assets/file-code-Cw2JhKbm.js","assets/video-BS0zvFDX.js","assets/folder-DBR-Zigu.js","assets/hard-drive-DsHzx0GK.js","assets/heart-CRsy5qXC.js","assets/inbox-Zbr4HDc_.js","assets/laptop-BXuIFbVm.js","assets/lightbulb-DqvoPoCk.js","assets/link-DMi999lz.js","assets/log-out-un0hWR_E.js","assets/paperclip-CQEdxfSq.js","assets/play-UYtEUTRg.js","assets/plus-DnH9Pjq4.js","assets/smartphone-BTdDwse2.js","assets/sun-DnK4LisT.js","assets/workflow-CXyPzVz4.js"])))=>i.map(i=>d[i]);
2
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./preload-helper-Cv2QeVDK.js";import{c as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{i,n as a,r as o}from"./use-edge-swipe-Di2s_nu-.js";import{t as s}from"./edge-swipe-arbiter-store-aOM60mqn.js";var c=e(t(),1),l=new Set;function u(e){if(typeof e==`function`){e().catch(()=>{});return}for(let t of Object.values(e))typeof t==`function`&&t().catch(()=>{})}function d(e){!e||l.has(e)||(l.add(e),n(async()=>{let{routeTree:e}=await import(`./routes-ZeXUrnzY.js`).then(e=>e.n);return{routeTree:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311])).then(({routeTree:t})=>{let n=r(t,e);for(let e of n??[]){let t=e.route.lazy;t&&u(t)}}).catch(()=>{l.delete(e)}))}var f=.25;function p(e){e.style.transition=``,e.style.transform=``,e.style.willChange=``,e.style.opacity=``}function m({containerRef:e,onBack:t,enabled:n,navKey:r,prefetchHref:l}){let u=(0,c.useRef)(t);(0,c.useLayoutEffect)(()=>{u.current=t},[t]);let m=(0,c.useRef)(l);(0,c.useLayoutEffect)(()=>{m.current=l},[l]);let h=(0,c.useRef)(!1),g=(0,c.useRef)(new Set),_=(0,c.useRef)(!1),v=s.use.registerBackOwner(),y=s.use.unregisterBackOwner();(0,c.useEffect)(()=>{if(n)return v(),y},[n,v,y]),(0,c.useEffect)(()=>{_.current=!1;let t=g.current;return()=>{_.current=!0;for(let e of t)clearTimeout(e);t.clear();let n=e.current;n&&p(n)}},[e]);let b=(e,t)=>{let n=setTimeout(()=>{g.current.delete(n),_.current||e()},t);g.current.add(n)},x=(e,t)=>{e.style.transform=t===0?``:`translateX(${t}px)`},S=e=>{e.style.transition=`transform 200ms ${i}`,x(e,0);let t=()=>{e.removeEventListener(`transitionend`,t),p(e)};e.addEventListener(`transitionend`,t,{once:!0}),b(()=>p(e),250)},C=e=>{e.style.transition=`transform 150ms ${i}`,x(e,window.innerWidth);let t=!1,n=()=>{if(t||_.current)return;t=!0,e.removeEventListener(`transitionend`,n);let r=-(window.innerWidth*f);e.style.transition=`none`,e.style.transform=`translateX(${r}px)`,e.style.opacity=`0`,e.offsetWidth,h.current=!0,u.current(),b(()=>{h.current&&(h.current=!1,p(e))},400)};e.addEventListener(`transitionend`,n,{once:!0}),b(n,200)};o({enabled:n,onConfirm:()=>{d(m.current);let t=e.current;t&&(t.style.transition=`none`,t.style.willChange=`transform`)},onMove:(t,n)=>{let r=e.current;r&&x(r,a(t,n))},onCommit:()=>{let t=e.current;if(!t){u.current();return}C(t)},onCancel:t=>{let n=e.current;n&&(t?S(n):p(n))}}),(0,c.useLayoutEffect)(()=>{if(!h.current)return;h.current=!1;let t=e.current;if(!t)return;let n=!1,r=()=>{n||(n=!0,t.removeEventListener(`transitionend`,r),p(t))};t.style.transition=`transform 200ms ${i}, opacity 200ms ${i}`,t.style.transform=``,t.style.opacity=``,t.addEventListener(`transitionend`,r,{once:!0});let a=setTimeout(r,250);return()=>{clearTimeout(a),t.removeEventListener(`transitionend`,r),p(t)}},[r,e])}export{m as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./typography-BeUa5Fd-.js";import{t as s}from"./createLucideIcon-C1mdGPB9.js";import{t as c}from"./chevron-up-B84s50b8.js";import{t as l}from"./menu-DKE_-iVc.js";import{F as u,N as d}from"./src-BMRW2yQf.js";import{t as f}from"./globe-COk-NH9x.js";import{t as p}from"./link-2-Bm55xvLL.js";import{t as m}from"./loader-circle-DOtGXcds.js";import{n as h,t as g}from"./minimize-2-D5pX5fY1.js";import{t as _}from"./pencil-DidiUknI.js";import{t as v}from"./refresh-cw-DV6tvYxO.js";import{t as y}from"./x-338EsJDP.js";import{n as b}from"./resolved-assistants-store-BFI9c7ip.js";import{t as x}from"./client.gen-C854VG5x.js";import{n as S}from"./event-bus-Cy8AzL-G.js";import{d as C}from"./routes-iipg2wkc.js";import{t as w}from"./conversation-store-D4pZBwP5.js";import{i as T}from"./viewer-store-BhqBXvNu.js";import{n as E}from"./use-is-mobile-BP8UePsY.js";import{t as D}from"./misc-Z0jXGGeY.js";import{r as O,t as k}from"./edit-chat-session-DKBzd1lH.js";import{a as A,n as j,o as M,t as N}from"./sandbox-bridge-B6h4B0qp.js";var P=s(`expand`,[[`path`,{d:`m15 15 6 6`,key:`1s409w`}],[`path`,{d:`m15 9 6-6`,key:`ko1vev`}],[`path`,{d:`M21 16v5h-5`,key:`1ck2sf`}],[`path`,{d:`M21 8V3h-5`,key:`1qoq8a`}],[`path`,{d:`M3 16v5h5`,key:`1t08am`}],[`path`,{d:`m3 21 6-6`,key:`wwnumi`}],[`path`,{d:`M3 8V3h5`,key:`1ln10m`}],[`path`,{d:`M9 9 3 3`,key:`v551iv`}]]),F=s(`share`,[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]),I=a(),L=e(t(),1),R=`flags.toggleAppsSandboxDisabled`,z=!1,B=new Set;function V(){return z}function H(e){let t=e===void 0?!z:e===!0;if(t===z)return console.info(`[vellumDebug] ${R}: already ${String(t)}.`),z;z=t,t?console.warn(`[vellumDebug] ${R} = true: app iframes render without the sandbox attribute. App HTML runs same-origin with the host and can reach its DOM, storage, and cookies. Open apps reload to pick this up. Call it again, or reload the page, to restore the sandbox.`):console.info(`[vellumDebug] ${R} = false: app iframes are sandboxed again.`);for(let e of B)e();return z}function U(e){return B.add(e),()=>{B.delete(e)}}function W(){return(0,L.useSyncExternalStore)(U,V,()=>!1)}function G({appName:e,onEdit:t,isEditing:r,onShare:i,isSharing:a,onDeploy:s,isDeploying:l,deployedUrl:u,onCopyDeployedLink:d,onToggleFullscreen:g,onClose:v}){let b=E(),x=b&&r===!0&&t!=null,S=i!=null&&s!=null,C=u!=null&&u!==``&&d!=null;return(0,I.jsxs)(`div`,{className:`flex items-center justify-between rounded-t-xl bg-[var(--surface-lift)] px-4 py-3`,children:[(0,I.jsx)(`div`,{className:`hidden md:flex items-center min-w-[72px]`,children:t!=null&&(r?(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(P,{}),onClick:t,tooltip:`Expand app`,"aria-label":`Expand app`}):(0,I.jsx)(n,{onClick:t,children:`Edit`}))}),(0,I.jsx)(o,{variant:`body-large-default`,className:D(`flex-1 truncate text-left md:text-center text-[var(--content-emphasised)]`,x&&`cursor-pointer`),style:{lineHeight:1.4},onClick:x?t:void 0,children:e}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-[72px] justify-end`,children:[S?(0,I.jsx)(K,{onShare:i,isSharing:a,onDeploy:s,isDeploying:l,deployedUrl:u,onCopyDeployedLink:d,isMobile:b}):(0,I.jsxs)(I.Fragment,{children:[s!=null&&(C?(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(p,{}),onClick:d,tooltip:`Deployed: copy link`,"aria-label":`Deployed to Vercel, copy link`}):(0,I.jsx)(n,{variant:`outlined`,iconOnly:l?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(f,{}),onClick:s,disabled:l,tooltip:l?`Deploying…`:`Deploy`,"aria-label":l?`Deploying…`:`Deploy`})),i!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:a?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(F,{}),onClick:i,disabled:a,tooltip:a?`Sharing…`:`Share`,"aria-label":a?`Sharing…`:`Share`})]}),g!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(h,{}),onClick:g,tooltip:`Fullscreen`,"aria-label":`Fullscreen`}),t!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:r?(0,I.jsx)(c,{}):(0,I.jsx)(_,{}),onClick:t,tooltip:r?`Open app`:`Edit`,"aria-label":r?`Open app`:`Edit`,active:r,className:`md:hidden`}),(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(y,{}),onClick:v,tooltip:`Close`,"aria-label":`Close`})]})]})}function K({onShare:e,isSharing:t,onDeploy:r,isDeploying:i,deployedUrl:a,onCopyDeployedLink:o,isMobile:s}){let[c,h]=(0,L.useState)(!1),g=a!=null&&a!==``&&o!=null,_=t||i,y=_?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(F,{}),b=t?`Sharing…`:i?`Deploying…`:`Share & deploy`;return s?(0,I.jsxs)(u.Root,{open:c,onOpenChange:h,children:[(0,I.jsx)(u.Trigger,{asChild:!0,children:(0,I.jsx)(n,{variant:`outlined`,iconOnly:y,disabled:_,tooltip:b,"aria-label":b})}),(0,I.jsxs)(u.Content,{"aria-describedby":void 0,children:[(0,I.jsx)(u.Header,{className:`sr-only`,children:(0,I.jsx)(u.Title,{children:`Share & deploy`})}),(0,I.jsxs)(u.Body,{className:`pt-0`,children:[(0,I.jsx)(d,{icon:F,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Share`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Export as .vellum file`})]}),onSelect:()=>{h(!1),e()}}),g?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(d,{icon:p,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Deployed to Vercel`}),(0,I.jsx)(`span`,{className:`break-all text-body-small-default text-[var(--content-tertiary)]`,children:a})]}),onSelect:()=>{h(!1),o?.()}}),(0,I.jsx)(d,{icon:v,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Redeploy`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish the current version`})]}),onSelect:()=>{h(!1),r()}})]}):(0,I.jsx)(d,{icon:f,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Deploy to Vercel`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish as a static page`})]}),onSelect:()=>{h(!1),r()}})]})]})]}):(0,I.jsxs)(l.Root,{open:c,onOpenChange:h,children:[(0,I.jsx)(l.Trigger,{asChild:!0,children:(0,I.jsx)(n,{variant:`outlined`,iconOnly:y,disabled:_,tooltip:b,"aria-label":b})}),(0,I.jsxs)(l.Content,{align:`end`,sideOffset:4,children:[(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(F,{size:14}),onSelect:()=>e(),className:`whitespace-nowrap`,children:`Share`}),g?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(p,{size:14}),shortcut:`Copy link`,onSelect:()=>o?.(),className:`whitespace-nowrap`,children:`Deployed to Vercel`}),(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(v,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Redeploy`})]}):(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(f,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Deploy to Vercel`})]})]})}var q=[`assistant:`,`conversation:`,`conversations:`,`apps:`,`documents:`,`plugins:`,`feature-flags:`];function J(e){return q.some(t=>e.startsWith(t))}function Y(e,t){if(e.length===0)return[];let n=new Set(e);return t.filter(e=>n.has(e)&&!J(e))}function X(e,t){let{frameId:n,assistantId:r,appId:i,enabled:a=!0,onAction:o,onOpenVellumLink:s}=t,c=(0,L.useRef)(new Map);(0,L.useEffect)(()=>{let t=c.current,l=async c=>{let l=c.data;if(!l||l.frameId!==n||c.source!==e.current?.contentWindow)return;if(l.type===`vellum_subscribe`){if(!a)return;let{subId:e,tags:n}=l;typeof e==`string`&&Array.isArray(n)&&t.set(e,new Set(n.filter(e=>typeof e==`string`)));return}if(l.type===`vellum_unsubscribe`){let{subId:e}=l;typeof e==`string`&&t.delete(e);return}if(l.type===`vellum_surface_action`){o?.(l.actionId,l.data);return}if(l.type===`vellum_open_link`){if(!navigator.userActivation?.isActive)return;s?.(l.href,l.linkText);return}if(l.type===`vellum_asset_request`){let{callId:t,path:n}=l,o=e.current,s=(e,t)=>{o?.contentWindow?.postMessage(e,`*`,t??[])};if(!a){s({type:`vellum_asset_response`,callId:t,error:`Asset proxy disabled`});return}if(!i){s({type:`vellum_asset_response`,callId:t,error:`No app context for assets`});return}if(typeof n!=`string`||n===``||n.includes(`..`)){s({type:`vellum_asset_response`,callId:t,error:`Invalid asset path`});return}try{let e=`/v1/assistants/${r}/apps/${i}/asset/${n.split(`/`).map(encodeURIComponent).join(`/`)}`,{data:a,response:o}=await x.get({url:e,parseAs:`blob`,throwOnError:!1});if(!o?.ok||!(a instanceof Blob)){s({type:`vellum_asset_response`,callId:t,error:`Asset fetch failed (${o?.status??0})`});return}let c=await a.arrayBuffer();s({type:`vellum_asset_response`,callId:t,buffer:c,contentType:a.type||`application/octet-stream`},[c])}catch(e){s({type:`vellum_asset_response`,callId:t,error:e instanceof Error?e.message:`Asset proxy error`})}return}if(!a||l.type!==`vellum_fetch_request`)return;let{callId:u,path:d,method:f,headers:p,body:m}=l,h=e.current,g=e=>{h?.contentWindow?.postMessage(e,`*`)};if(!N.test(d)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: only /v1/x/ custom routes are allowed`});return}try{let e=new URL(d,`https://placeholder`).pathname;if(!N.test(e)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: path traversal detected`});return}}catch{g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: invalid path`});return}let _=`/v1/assistants/${r}/${d.replace(/^\/v1\//,``)}`;try{let e={url:_,throwOnError:!1,headers:p&&Object.keys(p).length>0?p:void 0,body:m?JSON.parse(m):void 0},t=await(f===`POST`?x.post:f===`PUT`?x.put:f===`PATCH`?x.patch:f===`DELETE`?x.delete:x.get)(e),n=t.response,r=t.data??t.error,i=r==null?``:typeof r==`string`?r:JSON.stringify(r);g({type:`vellum_fetch_response`,callId:u,status:n?.status??0,statusText:n?.statusText??``,body:i})}catch(e){g({type:`vellum_fetch_response`,callId:u,error:e instanceof Error?e.message:`Fetch proxy error`})}};window.addEventListener(`message`,l);let u=S(`sse.event`,r=>{let i=r.message;if(!i||i.type!==`sync_changed`||!Array.isArray(i.tags))return;let a=e.current?.contentWindow;if(!a||t.size===0)return;let o=i.tags.filter(e=>typeof e==`string`);for(let[e,r]of t){let t=Y([...r],o);t.length>0&&a.postMessage({type:`vellum_event`,frameId:n,subId:e,event:{type:`sync_changed`,tags:t}},`*`)}});return()=>{window.removeEventListener(`message`,l),u()}},[n,r,i,a,o,s,e])}var Z=`allow-scripts allow-popups allow-popups-to-escape-sandbox`;function Q({appId:e,appName:t,html:r,assistantId:i,onClose:a,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,route:f,enableFullscreen:p=!1,onAction:m}){let h=(0,L.useRef)(null),[_,v]=(0,L.useState)(!1),y=(0,L.useCallback)(()=>v(e=>!e),[]);(0,L.useEffect)(()=>{v(!1)},[e]),(0,L.useEffect)(()=>{if(!_)return;let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),v(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let b=(0,L.useMemo)(()=>j(r,e,{fetch:!0,route:f}),[r,e,f]),x=W(),S=(0,L.useMemo)(()=>{let t=0;for(let e=0;e<r.length;e++)t=(t<<5)-t+r.charCodeAt(e)|0;return`app-${e}-${t}${x?`-nosandbox`:``}`},[r,e,x]);X(h,{frameId:e,assistantId:i,appId:e,onAction:m});let{deployedUrl:C}=M(i,e,{enabled:u!=null}),w=(0,L.useCallback)(()=>{C!=null&&A(C)},[C]);return(0,I.jsxs)(`div`,{"data-testid":`app-viewer-root`,className:D(`flex flex-col overflow-hidden bg-[var(--surface-base)]`,_?`fixed inset-0 z-[60]`:`h-full rounded-xl`),children:[!_&&(0,I.jsx)(G,{appName:t,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,deployedUrl:C,onCopyDeployedLink:w,onToggleFullscreen:p?y:void 0,onClose:a}),(0,I.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[_&&(0,I.jsx)(`div`,{className:`absolute z-10`,style:{top:`max(0.75rem, var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,right:`max(0.75rem, var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:(0,I.jsx)(n,{variant:`primary`,iconOnly:(0,I.jsx)(g,{}),onClick:y,tooltip:`Exit fullscreen`})}),(0,I.jsx)(`iframe`,{ref:h,srcDoc:b,sandbox:x?void 0:Z,referrerPolicy:`no-referrer`,title:t,className:`h-full w-full border-none`},S)]})]})}function $(){let e=b.use.activeAssistantId(),t=E(),n=r(),{pathname:a}=i();return(0,L.useCallback)(r=>{if(!e)return;let i=k(e,r.appId)??crypto.randomUUID();O(e,r.appId,i);let o=T.getState();(o.activeAppId!==r.appId||!o.openedAppState)&&(o.openApp(r.appId),o.setLoadedApp(r)),w.getState().setEditingConversationId(i),t?o.minimizeApp():o.enterAppEditing();let s=C.conversation(i);a!==s&&n(s)},[e,t,n,a])}export{F as a,H as i,Q as n,X as r,$ as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{d as r,u as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./typography-BeUa5Fd-.js";import{t as s}from"./createLucideIcon-C1mdGPB9.js";import{t as c}from"./chevron-up-B84s50b8.js";import{t as l}from"./menu-DKE_-iVc.js";import{I as u,P as d}from"./src-hNk11eS3.js";import{t as f}from"./globe-COk-NH9x.js";import{t as p}from"./link-2-Bm55xvLL.js";import{t as m}from"./loader-circle-DOtGXcds.js";import{n as h,t as g}from"./minimize-2-D5pX5fY1.js";import{t as _}from"./pencil-DidiUknI.js";import{t as v}from"./refresh-cw-DV6tvYxO.js";import{t as y}from"./x-338EsJDP.js";import{n as b}from"./resolved-assistants-store-BFI9c7ip.js";import{t as x}from"./client.gen-C854VG5x.js";import{n as S}from"./event-bus-Cy8AzL-G.js";import{d as C}from"./routes-iipg2wkc.js";import{t as w}from"./conversation-store-D4pZBwP5.js";import{i as T}from"./viewer-store-DhrkeZmJ.js";import{n as E}from"./use-is-mobile-BP8UePsY.js";import{t as D}from"./misc-Z0jXGGeY.js";import{r as O,t as k}from"./edit-chat-session-DKBzd1lH.js";import{a as A,n as j,o as M,t as N}from"./sandbox-bridge-BlniBIsp.js";var P=s(`expand`,[[`path`,{d:`m15 15 6 6`,key:`1s409w`}],[`path`,{d:`m15 9 6-6`,key:`ko1vev`}],[`path`,{d:`M21 16v5h-5`,key:`1ck2sf`}],[`path`,{d:`M21 8V3h-5`,key:`1qoq8a`}],[`path`,{d:`M3 16v5h5`,key:`1t08am`}],[`path`,{d:`m3 21 6-6`,key:`wwnumi`}],[`path`,{d:`M3 8V3h5`,key:`1ln10m`}],[`path`,{d:`M9 9 3 3`,key:`v551iv`}]]),F=s(`share`,[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]),I=a(),L=e(t(),1),R=`flags.toggleAppsSandboxDisabled`,z=!1,B=new Set;function V(){return z}function H(e){let t=e===void 0?!z:e===!0;if(t===z)return console.info(`[vellumDebug] ${R}: already ${String(t)}.`),z;z=t,t?console.warn(`[vellumDebug] ${R} = true: app iframes render without the sandbox attribute. App HTML runs same-origin with the host and can reach its DOM, storage, and cookies. Open apps reload to pick this up. Call it again, or reload the page, to restore the sandbox.`):console.info(`[vellumDebug] ${R} = false: app iframes are sandboxed again.`);for(let e of B)e();return z}function U(e){return B.add(e),()=>{B.delete(e)}}function W(){return(0,L.useSyncExternalStore)(U,V,()=>!1)}function G({appName:e,onEdit:t,isEditing:r,onShare:i,isSharing:a,onDeploy:s,isDeploying:l,deployedUrl:u,onCopyDeployedLink:d,onToggleFullscreen:g,onClose:v}){let b=E(),x=b&&r===!0&&t!=null,S=i!=null&&s!=null,C=u!=null&&u!==``&&d!=null;return(0,I.jsxs)(`div`,{className:`flex items-center justify-between rounded-t-xl bg-[var(--surface-lift)] px-4 py-3`,children:[(0,I.jsx)(`div`,{className:`hidden md:flex items-center min-w-[72px]`,children:t!=null&&(r?(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(P,{}),onClick:t,tooltip:`Expand app`,"aria-label":`Expand app`}):(0,I.jsx)(n,{onClick:t,children:`Edit`}))}),(0,I.jsx)(o,{variant:`body-large-default`,className:D(`flex-1 truncate text-left md:text-center text-[var(--content-emphasised)]`,x&&`cursor-pointer`),style:{lineHeight:1.4},onClick:x?t:void 0,children:e}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5 min-w-[72px] justify-end`,children:[S?(0,I.jsx)(K,{onShare:i,isSharing:a,onDeploy:s,isDeploying:l,deployedUrl:u,onCopyDeployedLink:d,isMobile:b}):(0,I.jsxs)(I.Fragment,{children:[s!=null&&(C?(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(p,{}),onClick:d,tooltip:`Deployed: copy link`,"aria-label":`Deployed to Vercel, copy link`}):(0,I.jsx)(n,{variant:`outlined`,iconOnly:l?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(f,{}),onClick:s,disabled:l,tooltip:l?`Deploying…`:`Deploy`,"aria-label":l?`Deploying…`:`Deploy`})),i!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:a?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(F,{}),onClick:i,disabled:a,tooltip:a?`Sharing…`:`Share`,"aria-label":a?`Sharing…`:`Share`})]}),g!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(h,{}),onClick:g,tooltip:`Fullscreen`,"aria-label":`Fullscreen`}),t!=null&&(0,I.jsx)(n,{variant:`outlined`,iconOnly:r?(0,I.jsx)(c,{}):(0,I.jsx)(_,{}),onClick:t,tooltip:r?`Open app`:`Edit`,"aria-label":r?`Open app`:`Edit`,active:r,className:`md:hidden`}),(0,I.jsx)(n,{variant:`outlined`,iconOnly:(0,I.jsx)(y,{}),onClick:v,tooltip:`Close`,"aria-label":`Close`})]})]})}function K({onShare:e,isSharing:t,onDeploy:r,isDeploying:i,deployedUrl:a,onCopyDeployedLink:o,isMobile:s}){let[c,h]=(0,L.useState)(!1),g=a!=null&&a!==``&&o!=null,_=t||i,y=_?(0,I.jsx)(m,{className:`animate-spin`}):(0,I.jsx)(F,{}),b=t?`Sharing…`:i?`Deploying…`:`Share & deploy`;return s?(0,I.jsxs)(u.Root,{open:c,onOpenChange:h,children:[(0,I.jsx)(u.Trigger,{asChild:!0,children:(0,I.jsx)(n,{variant:`outlined`,iconOnly:y,disabled:_,tooltip:b,"aria-label":b})}),(0,I.jsxs)(u.Content,{"aria-describedby":void 0,children:[(0,I.jsx)(u.Header,{className:`sr-only`,children:(0,I.jsx)(u.Title,{children:`Share & deploy`})}),(0,I.jsxs)(u.Body,{className:`pt-0`,children:[(0,I.jsx)(d,{icon:F,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Share`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Export as .vellum file`})]}),onSelect:()=>{h(!1),e()}}),g?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(d,{icon:p,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Deployed to Vercel`}),(0,I.jsx)(`span`,{className:`break-all text-body-small-default text-[var(--content-tertiary)]`,children:a})]}),onSelect:()=>{h(!1),o?.()}}),(0,I.jsx)(d,{icon:v,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Redeploy`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish the current version`})]}),onSelect:()=>{h(!1),r()}})]}):(0,I.jsx)(d,{icon:f,label:(0,I.jsxs)(`span`,{className:`flex flex-col gap-0.5 overflow-visible whitespace-normal`,children:[(0,I.jsx)(`span`,{children:`Deploy to Vercel`}),(0,I.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Publish as a static page`})]}),onSelect:()=>{h(!1),r()}})]})]})]}):(0,I.jsxs)(l.Root,{open:c,onOpenChange:h,children:[(0,I.jsx)(l.Trigger,{asChild:!0,children:(0,I.jsx)(n,{variant:`outlined`,iconOnly:y,disabled:_,tooltip:b,"aria-label":b})}),(0,I.jsxs)(l.Content,{align:`end`,sideOffset:4,children:[(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(F,{size:14}),onSelect:()=>e(),className:`whitespace-nowrap`,children:`Share`}),g?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(p,{size:14}),shortcut:`Copy link`,onSelect:()=>o?.(),className:`whitespace-nowrap`,children:`Deployed to Vercel`}),(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(v,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Redeploy`})]}):(0,I.jsx)(l.Item,{leftIcon:(0,I.jsx)(f,{size:14}),onSelect:()=>r(),className:`whitespace-nowrap`,children:`Deploy to Vercel`})]})]})}var q=[`assistant:`,`conversation:`,`conversations:`,`apps:`,`documents:`,`plugins:`,`feature-flags:`];function J(e){return q.some(t=>e.startsWith(t))}function Y(e,t){if(e.length===0)return[];let n=new Set(e);return t.filter(e=>n.has(e)&&!J(e))}function X(e,t){let{frameId:n,assistantId:r,appId:i,enabled:a=!0,onAction:o,onOpenVellumLink:s}=t,c=(0,L.useRef)(new Map);(0,L.useEffect)(()=>{let t=c.current,l=async c=>{let l=c.data;if(!l||l.frameId!==n||c.source!==e.current?.contentWindow)return;if(l.type===`vellum_subscribe`){if(!a)return;let{subId:e,tags:n}=l;typeof e==`string`&&Array.isArray(n)&&t.set(e,new Set(n.filter(e=>typeof e==`string`)));return}if(l.type===`vellum_unsubscribe`){let{subId:e}=l;typeof e==`string`&&t.delete(e);return}if(l.type===`vellum_surface_action`){o?.(l.actionId,l.data);return}if(l.type===`vellum_open_link`){if(!navigator.userActivation?.isActive)return;s?.(l.href,l.linkText);return}if(l.type===`vellum_asset_request`){let{callId:t,path:n}=l,o=e.current,s=(e,t)=>{o?.contentWindow?.postMessage(e,`*`,t??[])};if(!a){s({type:`vellum_asset_response`,callId:t,error:`Asset proxy disabled`});return}if(!i){s({type:`vellum_asset_response`,callId:t,error:`No app context for assets`});return}if(typeof n!=`string`||n===``||n.includes(`..`)){s({type:`vellum_asset_response`,callId:t,error:`Invalid asset path`});return}try{let e=`/v1/assistants/${r}/apps/${i}/asset/${n.split(`/`).map(encodeURIComponent).join(`/`)}`,{data:a,response:o}=await x.get({url:e,parseAs:`blob`,throwOnError:!1});if(!o?.ok||!(a instanceof Blob)){s({type:`vellum_asset_response`,callId:t,error:`Asset fetch failed (${o?.status??0})`});return}let c=await a.arrayBuffer();s({type:`vellum_asset_response`,callId:t,buffer:c,contentType:a.type||`application/octet-stream`},[c])}catch(e){s({type:`vellum_asset_response`,callId:t,error:e instanceof Error?e.message:`Asset proxy error`})}return}if(!a||l.type!==`vellum_fetch_request`)return;let{callId:u,path:d,method:f,headers:p,body:m}=l,h=e.current,g=e=>{h?.contentWindow?.postMessage(e,`*`)};if(!N.test(d)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: only /v1/x/ custom routes are allowed`});return}try{let e=new URL(d,`https://placeholder`).pathname;if(!N.test(e)){g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: path traversal detected`});return}}catch{g({type:`vellum_fetch_response`,callId:u,error:`Request blocked: invalid path`});return}let _=`/v1/assistants/${r}/${d.replace(/^\/v1\//,``)}`;try{let e={url:_,throwOnError:!1,headers:p&&Object.keys(p).length>0?p:void 0,body:m?JSON.parse(m):void 0},t=await(f===`POST`?x.post:f===`PUT`?x.put:f===`PATCH`?x.patch:f===`DELETE`?x.delete:x.get)(e),n=t.response,r=t.data??t.error,i=r==null?``:typeof r==`string`?r:JSON.stringify(r);g({type:`vellum_fetch_response`,callId:u,status:n?.status??0,statusText:n?.statusText??``,body:i})}catch(e){g({type:`vellum_fetch_response`,callId:u,error:e instanceof Error?e.message:`Fetch proxy error`})}};window.addEventListener(`message`,l);let u=S(`sse.event`,r=>{let i=r.message;if(!i||i.type!==`sync_changed`||!Array.isArray(i.tags))return;let a=e.current?.contentWindow;if(!a||t.size===0)return;let o=i.tags.filter(e=>typeof e==`string`);for(let[e,r]of t){let t=Y([...r],o);t.length>0&&a.postMessage({type:`vellum_event`,frameId:n,subId:e,event:{type:`sync_changed`,tags:t}},`*`)}});return()=>{window.removeEventListener(`message`,l),u()}},[n,r,i,a,o,s,e])}var Z=`allow-scripts allow-popups allow-popups-to-escape-sandbox`;function Q({appId:e,appName:t,html:r,assistantId:i,onClose:a,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,route:f,enableFullscreen:p=!1,onAction:m}){let h=(0,L.useRef)(null),[_,v]=(0,L.useState)(!1),y=(0,L.useCallback)(()=>v(e=>!e),[]);(0,L.useEffect)(()=>{v(!1)},[e]),(0,L.useEffect)(()=>{if(!_)return;let e=e=>{e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),v(!1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let b=(0,L.useMemo)(()=>j(r,e,{fetch:!0,route:f}),[r,e,f]),x=W(),S=(0,L.useMemo)(()=>{let t=0;for(let e=0;e<r.length;e++)t=(t<<5)-t+r.charCodeAt(e)|0;return`app-${e}-${t}${x?`-nosandbox`:``}`},[r,e,x]);X(h,{frameId:e,assistantId:i,appId:e,onAction:m});let{deployedUrl:C}=M(i,e,{enabled:u!=null}),w=(0,L.useCallback)(()=>{C!=null&&A(C)},[C]);return(0,I.jsxs)(`div`,{"data-testid":`app-viewer-root`,className:D(`flex flex-col overflow-hidden bg-[var(--surface-base)]`,_?`fixed inset-0 z-[60]`:`h-full rounded-xl`),children:[!_&&(0,I.jsx)(G,{appName:t,onEdit:o,isEditing:s,onShare:c,isSharing:l,onDeploy:u,isDeploying:d,deployedUrl:C,onCopyDeployedLink:w,onToggleFullscreen:p?y:void 0,onClose:a}),(0,I.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[_&&(0,I.jsx)(`div`,{className:`absolute z-10`,style:{top:`max(0.75rem, var(--safe-area-inset-top, env(safe-area-inset-top, 0px)))`,right:`max(0.75rem, var(--safe-area-inset-right, env(safe-area-inset-right, 0px)))`},children:(0,I.jsx)(n,{variant:`primary`,iconOnly:(0,I.jsx)(g,{}),onClick:y,tooltip:`Exit fullscreen`})}),(0,I.jsx)(`iframe`,{ref:h,srcDoc:b,sandbox:x?void 0:Z,referrerPolicy:`no-referrer`,title:t,className:`h-full w-full border-none`},S)]})]})}function $(){let e=b.use.activeAssistantId(),t=E(),n=r(),{pathname:a}=i();return(0,L.useCallback)(r=>{if(!e)return;let i=k(e,r.appId)??crypto.randomUUID();O(e,r.appId,i);let o=T.getState();(o.activeAppId!==r.appId||!o.openedAppState)&&(o.openApp(r.appId),o.setLoadedApp(r)),w.getState().setEditingConversationId(i),t?o.minimizeApp():o.enterAppEditing();let s=C.conversation(i);a!==s&&n(s)},[e,t,n,a])}export{F as a,H as i,Q as n,X as r,$ as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-BeUa5Fd-.js";import{c,h as l,i as u,m as d,n as f,r as p,s as m,t as h}from"./use-save-twilio-credentials-D5Zb65WS.js";import{t as g}from"./check-DSgjgwlo.js";import{W as _}from"./src-BMRW2yQf.js";import{t as v}from"./link-2-Bm55xvLL.js";import{t as y}from"./loader-circle-DOtGXcds.js";import{t as b}from"./input-DmHXRXaB.js";import{t as x}from"./modal-DI63s9MQ.js";import{n as S}from"./toast-BpuLSxyt.js";import{i as C}from"./utils-CAZUrJMu.js";import{i as w,n as T,t as E}from"./api-errors-BQX1Pzcm.js";import{Qt as D,in as O,nn as k}from"./sdk.gen-CBPZ2IdN.js";import{Q as A,X as j,Y as M,Z as N,c as ee,l as P,w as F}from"./react-query.gen-DxjuNs-5.js";import{n as I}from"./sdk.gen-CAngxL4a.js";import{t as L}from"./copy-to-clipboard-DnJHokIa.js";import{t as R}from"./a2a-invite-DPoues5o.js";var z=e(t(),1),B=o(),V=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],H=`trusted_contacts`,U=new Set([`platform`,`a2a`]),W=new Set([`vellum`,`whatsapp`,`discord`]);function G(e){return W.has(e)}var K={no_one:`No one`,guardian_only:`Only you`,trusted_contacts:`Verified contacts`,any_contact:`Any contact`,strangers:`Strangers`};function q(e){return{no_one:`No one can message ${e} on this channel: every message is blocked, including yours.`,guardian_only:`Only you can message ${e}. Everyone else is turned away.`,trusted_contacts:`You and the people you’ve verified can message ${e}. Anyone else is asked to verify first, and you’re notified.`,any_contact:`You and any known contact can message ${e}, including contacts you haven’t verified yet. Strangers are asked to verify first.`,strangers:`Anyone can message ${e}, including complete strangers.`}}function J(e){return t=>{S.error(t instanceof Error?t.message:e)}}function Y(e){let t=e-Date.now();if(t<=0)return`Expired`;let n=Math.ceil(t/(1e3*60*60*24));return n===1?`Expires in 1 day`:`Expires in ${n} days`}function X({open:e,assistantId:t,onClose:r}){let[i,o]=(0,z.useState)(!1),c=(0,z.useRef)(null),l=(0,z.useRef)(!1),u=a({...M({path:{assistant_id:t}})}),d=(0,z.useRef)(u.mutate);(0,z.useLayoutEffect)(()=>{d.current=u.mutate});let f=(0,z.useRef)(u.reset);(0,z.useLayoutEffect)(()=>{f.current=u.reset}),(0,z.useEffect)(()=>{e&&!l.current&&d.current({path:{assistant_id:t}}),l.current=e},[e,t]),(0,z.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let p=(0,z.useCallback)(()=>{f.current(),o(!1),c.current&&=(clearTimeout(c.current),null),r()},[r]),m=(0,z.useCallback)(e=>{L(e,{errorMessage:`Couldn't copy the invite link.`,onCopied:()=>{o(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>o(!1),2e3)}})},[]),h=u.isSuccess&&u.data.token?R({senderAssistantId:t,token:u.data.token}):``;return(0,B.jsx)(x.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,B.jsxs)(x.Content,{size:`sm`,children:[(0,B.jsx)(x.Header,{children:(0,B.jsx)(x.Title,{children:`Share Connection Link`})}),(0,B.jsx)(x.Body,{children:u.isPending?(0,B.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,B.jsx)(y,{className:`h-4 w-4 animate-spin`}),`Creating invite link…`]}):u.isError?(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(`p`,{role:`alert`,className:`!m-0 text-body-medium-lighter`,style:{color:`var(--system-negative-strong)`},children:`Failed to create invite link. Make sure A2A is enabled for your assistant.`}),(0,B.jsx)(n,{variant:`outlined`,onClick:()=>u.mutate({path:{assistant_id:t}}),children:`Try Again`})]}):u.isSuccess?(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(s,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Share this link with another assistant owner to establish a connection.`}),(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,B.jsx)(b,{type:`text`,readOnly:!0,value:h,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>m(h),"aria-label":`Copy invite link`,className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-[var(--border-base)] hover:bg-[var(--surface-hover)]`,children:i?(0,B.jsx)(g,{className:`h-4 w-4`}):(0,B.jsx)(_,{className:`h-4 w-4`})})]}),u.data.expiresAt!=null&&(0,B.jsx)(s,{variant:`body-small-default`,style:{color:`var(--content-tertiary)`},children:Y(u.data.expiresAt)})]}):null}),(0,B.jsx)(x.Footer,{children:(0,B.jsx)(n,{variant:`outlined`,onClick:p,children:`Done`})})]})})}function Z({onClick:e}){return(0,B.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:(0,B.jsx)(v,{className:`h-3.5 w-3.5`}),onClick:e,children:`Share Connection Link`})}function Q(e){return typeof e==`string`&&V.includes(e)}function $(e){return U.has(e)}function te(e){return(e?.policies??[]).filter(e=>!$(e.channelType)&&!G(e.channelType)).map(e=>({...e,policy:Q(e.policy)?e.policy:`trusted_contacts`}))}async function ne(e,t,n,r){if($(t))throw new E(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await I({path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},throwOnError:!1});if(T(o,a,`Failed to save channel policy.`),!o.ok)throw new E(o.status,w(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new E(500,`Gateway returned no policy in response.`);return i.policy}var re=`0.10.0`;function ie(){return C(re)}function ae(e){let t=r(),n=ie(),o=(0,z.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,z.useMemo)(()=>l(o),[o]),u=i({...d(o),enabled:n,select:te}),f=(0,z.useMemo)(()=>{let e={};for(let t of u.data??[])c(t.channelType)&&(e[t.channelType]=t.policy);return e},[u.data]),p=a({mutationFn:({channelKey:t,policy:n})=>ne(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:s}),onError:J(`Failed to save channel policy`)}),m=(0,z.useCallback)((e,t)=>{p.mutate({channelKey:e,policy:t})},[p]);return n?{policies:f,savingKey:p.isPending?p.variables?.channelKey??null:null,isLoading:u.isPending,isError:u.isError,onChange:m}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var oe={slack:`I want to reach you on Slack. Let's set it up.`,telegram:`I want to reach you on Telegram. Let's set it up.`,phone:`I want to be able to call you. Let's set you up with a phone number.`},se={slack:`Slack is set up but not working. Can you finish it off?`,telegram:`Telegram is set up but not working. Can you finish it off?`,phone:`My phone number is set up but not working. Can you finish it off?`},ce=15e3;function le({assistantId:e,onStartSetupConversation:t}){let n=r(),o=(0,z.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,z.useMemo)(()=>P(o),[o]),c=i({...ee(o),enabled:!!e,refetchInterval:ce,select:e=>e.snapshots}),l=(0,z.useMemo)(()=>ue(c.data??[]),[c.data]),d=l.some(e=>e.key===`slack`&&e.status===`ready`),m=i({...j(o),enabled:d,select:e=>e.threadMode}),g=ae(e),_=(0,z.useCallback)(()=>n.invalidateQueries({queryKey:s}),[n,s]),v=a({mutationFn:async t=>{let n={path:{assistant_id:e},throwOnError:!0};t===`slack`?await D(n):t===`telegram`?await k(n):t===`phone`&&await O(n)},onSettled:(t,r,i)=>{_(),i===`slack`&&u(n,e)}}),y=f({assistantId:e}),b=p({assistantId:e}),x=h({assistantId:e}),S=a({...A(),onSuccess:()=>{n.invalidateQueries({queryKey:N(o)})}}),C=y.mutate,w=(0,z.useCallback)(e=>{C(e)},[C]),T=b.mutate,E=(0,z.useCallback)((e,t)=>{T({botToken:e,appToken:t})},[T]),M=S.mutate,F=(0,z.useCallback)(t=>{M({path:{assistant_id:e},body:{threadMode:t}})},[M,e]),I=x.mutateAsync,L=(0,z.useCallback)(async(e,t)=>{await I({accountSid:e,authToken:t})},[I]),R=(0,z.useCallback)((e,n=!1)=>{t&&t(n?se[e]:oe[e])},[t]),B=v.mutate,V=(0,z.useCallback)(e=>{B(e)},[B]);return{channels:l,pendingChannelKey:v.isPending?v.variables??null:null,slackThreadMode:m.data,slackThreadModePending:S.isPending,channelPolicies:g.policies,policySavingKey:g.savingKey,policiesLoading:g.isLoading,policiesError:g.isError,onChannelPolicyChange:g.onChange,onSetup:t?R:void 0,onDisconnect:V,onSaveTelegramToken:w,telegramSaveStatus:y.status,telegramSaveError:y.error?.message??null,onSaveSlackConfig:E,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:F,onSaveTwilioCredentials:L}}function ue(e){let t=new Map;for(let n of e)t.set(n.channel,n);return m.map(e=>{let n=t.get(e);return{key:e,status:de(n),address:n?.channelHandle??void 0}})}function de(e){return e?e.ready||e.setupStatus===`ready`?`ready`:e.setupStatus===`incomplete`?`incomplete`:`not_configured`:`not_configured`}function fe(e){let t=r(),[n,i]=(0,z.useState)(!1);return{isOpen:n,open:(0,z.useCallback)(()=>{i(!0)},[]),close:(0,z.useCallback)(()=>{i(!1),t.invalidateQueries({queryKey:F({path:{assistant_id:e}})})},[t,e])}}export{J as a,K as c,X as i,q as l,le as n,H as o,Z as r,V as s,fe as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BENY-yx_.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-BeUa5Fd-.js";import{c,h as l,i as u,m as d,n as f,r as p,s as m,t as h}from"./use-save-twilio-credentials-D5Zb65WS.js";import{t as g}from"./check-DSgjgwlo.js";import{G as _}from"./src-hNk11eS3.js";import{t as v}from"./link-2-Bm55xvLL.js";import{t as y}from"./loader-circle-DOtGXcds.js";import{t as b}from"./input-DmHXRXaB.js";import{t as x}from"./modal-DI63s9MQ.js";import{n as S}from"./toast-BpuLSxyt.js";import{i as C}from"./utils-CVoSWh7U.js";import{i as w,n as T,t as E}from"./api-errors-BQX1Pzcm.js";import{Qt as D,in as O,nn as k}from"./sdk.gen-CBPZ2IdN.js";import{Q as A,X as j,Y as M,Z as N,c as ee,l as P,w as F}from"./react-query.gen-DxjuNs-5.js";import{n as I}from"./sdk.gen-CAngxL4a.js";import{t as L}from"./copy-to-clipboard-DnJHokIa.js";import{t as R}from"./a2a-invite-DPoues5o.js";var z=e(t(),1),B=o(),V=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],H=`trusted_contacts`,U=new Set([`platform`,`a2a`]),W=new Set([`vellum`,`whatsapp`,`discord`]);function G(e){return W.has(e)}var K={no_one:`No one`,guardian_only:`Only you`,trusted_contacts:`Verified contacts`,any_contact:`Any contact`,strangers:`Strangers`};function q(e){return{no_one:`No one can message ${e} on this channel: every message is blocked, including yours.`,guardian_only:`Only you can message ${e}. Everyone else is turned away.`,trusted_contacts:`You and the people you’ve verified can message ${e}. Anyone else is asked to verify first, and you’re notified.`,any_contact:`You and any known contact can message ${e}, including contacts you haven’t verified yet. Strangers are asked to verify first.`,strangers:`Anyone can message ${e}, including complete strangers.`}}function J(e){return t=>{S.error(t instanceof Error?t.message:e)}}function Y(e){let t=e-Date.now();if(t<=0)return`Expired`;let n=Math.ceil(t/(1e3*60*60*24));return n===1?`Expires in 1 day`:`Expires in ${n} days`}function X({open:e,assistantId:t,onClose:r}){let[i,o]=(0,z.useState)(!1),c=(0,z.useRef)(null),l=(0,z.useRef)(!1),u=a({...M({path:{assistant_id:t}})}),d=(0,z.useRef)(u.mutate);(0,z.useLayoutEffect)(()=>{d.current=u.mutate});let f=(0,z.useRef)(u.reset);(0,z.useLayoutEffect)(()=>{f.current=u.reset}),(0,z.useEffect)(()=>{e&&!l.current&&d.current({path:{assistant_id:t}}),l.current=e},[e,t]),(0,z.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let p=(0,z.useCallback)(()=>{f.current(),o(!1),c.current&&=(clearTimeout(c.current),null),r()},[r]),m=(0,z.useCallback)(e=>{L(e,{errorMessage:`Couldn't copy the invite link.`,onCopied:()=>{o(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>o(!1),2e3)}})},[]),h=u.isSuccess&&u.data.token?R({senderAssistantId:t,token:u.data.token}):``;return(0,B.jsx)(x.Root,{open:e,onOpenChange:e=>{e||p()},children:(0,B.jsxs)(x.Content,{size:`sm`,children:[(0,B.jsx)(x.Header,{children:(0,B.jsx)(x.Title,{children:`Share Connection Link`})}),(0,B.jsx)(x.Body,{children:u.isPending?(0,B.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,B.jsx)(y,{className:`h-4 w-4 animate-spin`}),`Creating invite link…`]}):u.isError?(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(`p`,{role:`alert`,className:`!m-0 text-body-medium-lighter`,style:{color:`var(--system-negative-strong)`},children:`Failed to create invite link. Make sure A2A is enabled for your assistant.`}),(0,B.jsx)(n,{variant:`outlined`,onClick:()=>u.mutate({path:{assistant_id:t}}),children:`Try Again`})]}):u.isSuccess?(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(s,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Share this link with another assistant owner to establish a connection.`}),(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,B.jsx)(b,{type:`text`,readOnly:!0,value:h,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>m(h),"aria-label":`Copy invite link`,className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-[var(--border-base)] hover:bg-[var(--surface-hover)]`,children:i?(0,B.jsx)(g,{className:`h-4 w-4`}):(0,B.jsx)(_,{className:`h-4 w-4`})})]}),u.data.expiresAt!=null&&(0,B.jsx)(s,{variant:`body-small-default`,style:{color:`var(--content-tertiary)`},children:Y(u.data.expiresAt)})]}):null}),(0,B.jsx)(x.Footer,{children:(0,B.jsx)(n,{variant:`outlined`,onClick:p,children:`Done`})})]})})}function Z({onClick:e}){return(0,B.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:(0,B.jsx)(v,{className:`h-3.5 w-3.5`}),onClick:e,children:`Share Connection Link`})}function Q(e){return typeof e==`string`&&V.includes(e)}function $(e){return U.has(e)}function te(e){return(e?.policies??[]).filter(e=>!$(e.channelType)&&!G(e.channelType)).map(e=>({...e,policy:Q(e.policy)?e.policy:`trusted_contacts`}))}async function ne(e,t,n,r){if($(t))throw new E(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await I({path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},throwOnError:!1});if(T(o,a,`Failed to save channel policy.`),!o.ok)throw new E(o.status,w(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new E(500,`Gateway returned no policy in response.`);return i.policy}var re=`0.10.0`;function ie(){return C(re)}function ae(e){let t=r(),n=ie(),o=(0,z.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,z.useMemo)(()=>l(o),[o]),u=i({...d(o),enabled:n,select:te}),f=(0,z.useMemo)(()=>{let e={};for(let t of u.data??[])c(t.channelType)&&(e[t.channelType]=t.policy);return e},[u.data]),p=a({mutationFn:({channelKey:t,policy:n})=>ne(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:s}),onError:J(`Failed to save channel policy`)}),m=(0,z.useCallback)((e,t)=>{p.mutate({channelKey:e,policy:t})},[p]);return n?{policies:f,savingKey:p.isPending?p.variables?.channelKey??null:null,isLoading:u.isPending,isError:u.isError,onChange:m}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var oe={slack:`I want to reach you on Slack. Let's set it up.`,telegram:`I want to reach you on Telegram. Let's set it up.`,phone:`I want to be able to call you. Let's set you up with a phone number.`},se={slack:`Slack is set up but not working. Can you finish it off?`,telegram:`Telegram is set up but not working. Can you finish it off?`,phone:`My phone number is set up but not working. Can you finish it off?`},ce=15e3;function le({assistantId:e,onStartSetupConversation:t}){let n=r(),o=(0,z.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,z.useMemo)(()=>P(o),[o]),c=i({...ee(o),enabled:!!e,refetchInterval:ce,select:e=>e.snapshots}),l=(0,z.useMemo)(()=>ue(c.data??[]),[c.data]),d=l.some(e=>e.key===`slack`&&e.status===`ready`),m=i({...j(o),enabled:d,select:e=>e.threadMode}),g=ae(e),_=(0,z.useCallback)(()=>n.invalidateQueries({queryKey:s}),[n,s]),v=a({mutationFn:async t=>{let n={path:{assistant_id:e},throwOnError:!0};t===`slack`?await D(n):t===`telegram`?await k(n):t===`phone`&&await O(n)},onSettled:(t,r,i)=>{_(),i===`slack`&&u(n,e)}}),y=f({assistantId:e}),b=p({assistantId:e}),x=h({assistantId:e}),S=a({...A(),onSuccess:()=>{n.invalidateQueries({queryKey:N(o)})}}),C=y.mutate,w=(0,z.useCallback)(e=>{C(e)},[C]),T=b.mutate,E=(0,z.useCallback)((e,t)=>{T({botToken:e,appToken:t})},[T]),M=S.mutate,F=(0,z.useCallback)(t=>{M({path:{assistant_id:e},body:{threadMode:t}})},[M,e]),I=x.mutateAsync,L=(0,z.useCallback)(async(e,t)=>{await I({accountSid:e,authToken:t})},[I]),R=(0,z.useCallback)((e,n=!1)=>{t&&t(n?se[e]:oe[e])},[t]),B=v.mutate,V=(0,z.useCallback)(e=>{B(e)},[B]);return{channels:l,pendingChannelKey:v.isPending?v.variables??null:null,slackThreadMode:m.data,slackThreadModePending:S.isPending,channelPolicies:g.policies,policySavingKey:g.savingKey,policiesLoading:g.isLoading,policiesError:g.isError,onChannelPolicyChange:g.onChange,onSetup:t?R:void 0,onDisconnect:V,onSaveTelegramToken:w,telegramSaveStatus:y.status,telegramSaveError:y.error?.message??null,onSaveSlackConfig:E,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:F,onSaveTwilioCredentials:L}}function ue(e){let t=new Map;for(let n of e)t.set(n.channel,n);return m.map(e=>{let n=t.get(e);return{key:e,status:de(n),address:n?.channelHandle??void 0}})}function de(e){return e?e.ready||e.setupStatus===`ready`?`ready`:e.setupStatus===`incomplete`?`incomplete`:`not_configured`:`not_configured`}function fe(e){let t=r(),[n,i]=(0,z.useState)(!1);return{isOpen:n,open:(0,z.useCallback)(()=>{i(!0)},[]),close:(0,z.useCallback)(()=>{i(!1),t.invalidateQueries({queryKey:F({path:{assistant_id:e}})})},[t,e])}}export{J as a,K as c,X as i,q as l,le as n,H as o,Z as r,V as s,fe as t};
@@ -1 +1 @@
1
- import{$ as e,i as t,it as n,n as r,nt as i,tt as a}from"./auth-store-CPVpJ_c7.js";var o=5e3;function s(e,t,n){return!n||e!=null?`ready`:t===`error`?`unavailable`:`resolving`}function c(){return s(i(),a.use.status(),t())}function l(){return s(e(),a.getState().status,n(r.getState().platformSession))}function u(){return c()===`ready`}export{c as i,l as n,u as r,o as t};
1
+ import{$ as e,i as t,it as n,n as r,nt as i,tt as a}from"./auth-store-DkOiOQNx.js";var o=5e3;function s(e,t,n){return!n||e!=null?`ready`:t===`error`?`unavailable`:`resolving`}function c(){return s(i(),a.use.status(),t())}function l(){return s(e(),a.getState().status,n(r.getState().platformSession))}function u(){return c()===`ready`}export{c as i,l as n,u as r,o as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{u as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./is-electron-BHXrkjI3.js";import{E as a}from"./platform-detection-C_TK32Dw.js";import{d as o}from"./routes-iipg2wkc.js";import{i as s}from"./navigation-resolver-DrNVOkMu.js";import{t as c}from"./build-state-DGpOoR0F.js";import{n as l}from"./login-flow-fmfcNxyU.js";import{n as u,r as d}from"./native-auth-error-B9Iha2zU.js";var f=e(n(),1);function p(e){let n=r(),[p,m]=(0,f.useState)(!1),[h,g]=(0,f.useState)(null),_=(0,f.useRef)(0);return{loading:p,error:h,login:async()=>{let r=e??s(c({sessionSettled:!0,isAuthenticated:!0}),n.pathname),i=++_.current;g(null),m(!0);try{await a(l,`${o.account.providerCallback}?returnTo=${encodeURIComponent(r)}`,{returnTo:r})}catch(e){if(i!==_.current)return;t(e,{context:`onboarding_login`,tags:{authError:u(e)??`unclassified`}}),g(d(e)),m(!1)}},cancel:()=>{_.current++,m(!1),g(null),i()&&window.vellum?.auth?.cancelOAuth()}}}export{p as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{u as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./is-electron-BHXrkjI3.js";import{E as a}from"./platform-detection-C_TK32Dw.js";import{d as o}from"./routes-iipg2wkc.js";import{i as s}from"./navigation-resolver-DrNVOkMu.js";import{t as c}from"./build-state-B0f3Jn2o.js";import{n as l}from"./login-flow-B8CUFAeg.js";import{n as u,r as d}from"./native-auth-error-B9Iha2zU.js";var f=e(n(),1);function p(e){let n=r(),[p,m]=(0,f.useState)(!1),[h,g]=(0,f.useState)(null),_=(0,f.useRef)(0);return{loading:p,error:h,login:async()=>{let r=e??s(c({sessionSettled:!0,isAuthenticated:!0}),n.pathname),i=++_.current;g(null),m(!0);try{await a(l,`${o.account.providerCallback}?returnTo=${encodeURIComponent(r)}`,{returnTo:r})}catch(e){if(i!==_.current)return;t(e,{context:`onboarding_login`,tags:{authError:u(e)??`unclassified`}}),g(d(e)),m(!1)}},cancel:()=>{_.current++,m(!1),g(null),i()&&window.vellum?.auth?.cancelOAuth()}}}export{p as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{J as n}from"./auth-store-CPVpJ_c7.js";var r=e(t(),1);function i(e,t){let[i,a]=(0,r.useState)({platformAssistantId:null,isLoading:!1,error:null});return(0,r.useEffect)(()=>{if(!t||!e){a({platformAssistantId:null,isLoading:!1,error:null});return}let r=!0;return a({platformAssistantId:null,isLoading:!0,error:null}),n(e).then(e=>{r&&a({platformAssistantId:e,isLoading:!1,error:null})}).catch(e=>{r&&a({platformAssistantId:null,isLoading:!1,error:e instanceof Error?e:Error(String(e))})}),()=>{r=!1}},[e,t]),i}export{i as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{J as n}from"./auth-store-DkOiOQNx.js";var r=e(t(),1);function i(e,t){let[i,a]=(0,r.useState)({platformAssistantId:null,isLoading:!1,error:null});return(0,r.useEffect)(()=>{if(!t||!e){a({platformAssistantId:null,isLoading:!1,error:null});return}let r=!0;return a({platformAssistantId:null,isLoading:!0,error:null}),n(e).then(e=>{r&&a({platformAssistantId:e,isLoading:!1,error:null})}).catch(e=>{r&&a({platformAssistantId:null,isLoading:!1,error:e instanceof Error?e:Error(String(e))})}),()=>{r=!1}},[e,t]),i}export{i as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{_ as n,b as r}from"./local-mode-BfEgOekp.js";import{_t as i,i as a,o}from"./auth-store-CPVpJ_c7.js";var s=e(t(),1);function c(){let e=i.use.assistantState();return!!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)}function l(){let e=i.use.assistantState();return e.kind===`active`&&!e.isLocal}function u(){let e=i.use.assistantState();return e.kind===`loading`||e.kind===`initializing`||e.kind===`cleaning_up`}function d(e={}){let t=p(e);return t===`pending`?`disabled`:t}function f(e={}){let t=p(e),n=m(t===`pending`,e.settleTimeoutMs??5e3);return t===`pending`&&n?`disabled`:t}function p(e){let t=a(),i=o(),s=r(),l=c(),u=i?`disabled`:`pending`;return e.platformHostedOnly?l?`gated`:t?`full`:u:n()&&s?`gated`:t?`full`:u}function m(e,t){let[n,r]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{if(!e){r(!1);return}let n=setTimeout(()=>r(!0),t);return()=>{clearTimeout(n)}},[e,t]),n}export{f as a,d as i,c as n,u as r,l as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{_ as n,b as r}from"./local-mode-BfEgOekp.js";import{_t as i,i as a,o}from"./auth-store-DkOiOQNx.js";var s=e(t(),1);function c(){let e=i.use.assistantState();return!!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)}function l(){let e=i.use.assistantState();return e.kind===`active`&&!e.isLocal}function u(){let e=i.use.assistantState();return e.kind===`loading`||e.kind===`initializing`||e.kind===`cleaning_up`}function d(e={}){let t=p(e);return t===`pending`?`disabled`:t}function f(e={}){let t=p(e),n=m(t===`pending`,e.settleTimeoutMs??5e3);return t===`pending`&&n?`disabled`:t}function p(e){let t=a(),i=o(),s=r(),l=c(),u=i?`disabled`:`pending`;return e.platformHostedOnly?l?`gated`:t?`full`:u:n()&&s?`gated`:t?`full`:u}function m(e,t){let[n,r]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{if(!e){r(!1);return}let n=setTimeout(()=>r(!0),t);return()=>{clearTimeout(n)}},[e,t]),n}export{f as a,d as i,c as n,u as r,l as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{h as n,n as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./loader-circle-DOtGXcds.js";import{a as o,s}from"./auth-store-CPVpJ_c7.js";import{R as c}from"./platform-detection-C_TK32Dw.js";import{d as l}from"./routes-iipg2wkc.js";import{a as u}from"./use-platform-gate-DBRG0Q26.js";import{t as d}from"./hard-navigate-BrsAH6PB.js";import{a as f,o as p}from"./login-flow-fmfcNxyU.js";var m=i();function h(){return(0,m.jsx)(a,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Loading`})}var g=e(t(),1);function _({to:e}){let t=f(e);return(0,g.useEffect)(()=>{t&&d(e)},[t,e]),t?null:(0,m.jsx)(r,{to:e,replace:!0})}function v(){let[e]=n(),t=o(),r=s(),i=u(),a=e.get(`returnTo`),d=c(a,l.assistant);if(!a)return{kind:`proceed`,returnTo:null};if(r)return{kind:`wait`};if(!t)return{kind:`proceed`,returnTo:d};if(p(d)){if(i===`pending`)return{kind:`wait`};if(i===`disabled`)return{kind:`proceed`,returnTo:d}}return{kind:`redirect`,node:(0,m.jsx)(_,{to:d})}}export{h as n,v as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{h as n,n as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./loader-circle-DOtGXcds.js";import{a as o,s}from"./auth-store-DkOiOQNx.js";import{R as c}from"./platform-detection-C_TK32Dw.js";import{d as l}from"./routes-iipg2wkc.js";import{a as u}from"./use-platform-gate-CdwOyQ8A.js";import{t as d}from"./hard-navigate-BrsAH6PB.js";import{a as f,o as p}from"./login-flow-B8CUFAeg.js";var m=i();function h(){return(0,m.jsx)(a,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`,"aria-label":`Loading`})}var g=e(t(),1);function _({to:e}){let t=f(e);return(0,g.useEffect)(()=>{t&&d(e)},[t,e]),t?null:(0,m.jsx)(r,{to:e,replace:!0})}function v(){let[e]=n(),t=o(),r=s(),i=u(),a=e.get(`returnTo`),d=c(a,l.assistant);if(!a)return{kind:`proceed`,returnTo:null};if(r)return{kind:`wait`};if(!t)return{kind:`proceed`,returnTo:d};if(p(d)){if(i===`pending`)return{kind:`wait`};if(i===`disabled`)return{kind:`proceed`,returnTo:d}}return{kind:`redirect`,node:(0,m.jsx)(_,{to:d})}}export{h as n,v as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useMutation-CXGTrp4W.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./card-q0GJX1HZ.js";import{t as o}from"./createLucideIcon-C1mdGPB9.js";import{t as s}from"./brain-ZiC0HCCF.js";import"./src-BMRW2yQf.js";import{t as c}from"./globe-COk-NH9x.js";import{t as l}from"./puzzle-CIWAeBs0.js";import{t as u}from"./terminal-CkQ9DSF2.js";import{t as d}from"./user-Djte2CiZ.js";import{t as f}from"./tag-DeMzQvCo.js";import{i as p,n as m,t as h}from"./api-errors-BQX1Pzcm.js";import{br as g}from"./sdk.gen-CBPZ2IdN.js";import{gn as _}from"./react-query.gen-DxjuNs-5.js";import{t as v}from"./skills-C2mjxWRN.js";var y=o(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),b=e(t(),1),x=i();function S({skill:e,className:t,fallback:n=`🧩`}){let[r,i]=(0,b.useState)(!1);return e.icon&&!r?(0,x.jsx)(`img`,{src:`/assistant/skills/${e.id}/${e.icon}`,alt:``,className:`${t} object-contain`,onError:()=>i(!0)}):(0,x.jsx)(`span`,{className:t,children:e.emoji??n})}var C={vellum:{label:`Vellum`,icon:y},clawhub:{label:`Clawhub`,icon:c},skillssh:{label:`skills.sh`,icon:u},custom:{label:`Custom`,icon:d},"assistant-memory":{label:`Assistant's Memory`,icon:s}};function w({origin:e}){let t=e in C?C[e]:{label:e.replace(/-/g,` `),icon:l};return(0,x.jsx)(f,{tone:`neutral`,leftIcon:(0,b.createElement)(t.icon),className:`capitalize`,children:t.label})}function T(e){return e.kind===`installed`||e.kind===`bundled`}function E(e){return e.kind===`catalog`}function D({icon:e,iconColor:t=`var(--content-tertiary)`,title:n,subtitle:r,children:i}){return(0,x.jsx)(a.Root,{children:(0,x.jsxs)(a.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,x.jsx)(e,{className:`mb-3 h-8 w-8`,style:{color:t},"aria-hidden":!0}),(0,x.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:n}),(0,x.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:r}),i]})})}async function O(e,t,n){let{data:r,error:i,response:a}=await g({path:{assistant_id:e},body:n?{slug:t,version:n}:{slug:t},throwOnError:!1});if(m(a,i,`Failed to install skill.`),!a.ok)throw new h(a.status,p(i,a,`Failed to install skill.`));return r??{ok:!0}}function k(e,{onRemoved:t}={}){let i=n(),[a,o]=(0,b.useState)(null),[s,c]=(0,b.useState)(null),[l,u]=(0,b.useState)(null),d=(0,b.useCallback)(()=>{v(i,e)},[e,i]),f=r({mutationFn:t=>O(e,t),onMutate:e=>o(e),onSettled:()=>{o(null),d()}}),p=_({onMutate:e=>c(e.path.id),onSuccess:()=>{t?.()},onSettled:()=>{c(null),d()}}),m=(0,b.useCallback)(e=>{f.mutate(e.slug??e.id)},[f]),h=(0,b.useCallback)(e=>{u(e)},[]),g=(0,b.useCallback)(()=>{l&&(p.mutate({path:{assistant_id:e,id:l.id}}),u(null))},[e,l,p]),y=(0,b.useCallback)(()=>{u(null)},[]);return{handleInstall:m,handleRemove:h,isInstallingSkill:(0,b.useCallback)(e=>a===(e.slug??e.id),[a]),isRemovingSkill:(0,b.useCallback)(e=>s===e.id,[s]),skillPendingRemoval:l,confirmRemove:g,cancelRemove:y}}export{w as a,T as i,D as n,S as o,E as r,y as s,k as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{n}from"./QueryClientProvider-CMu7CkQU.js";import{t as r}from"./useMutation-CXGTrp4W.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./card-q0GJX1HZ.js";import{t as o}from"./createLucideIcon-C1mdGPB9.js";import{t as s}from"./brain-ZiC0HCCF.js";import"./src-hNk11eS3.js";import{t as c}from"./globe-COk-NH9x.js";import{t as l}from"./puzzle-CIWAeBs0.js";import{t as u}from"./terminal-CkQ9DSF2.js";import{t as d}from"./user-Djte2CiZ.js";import{t as f}from"./tag-DeMzQvCo.js";import{i as p,n as m,t as h}from"./api-errors-BQX1Pzcm.js";import{br as g}from"./sdk.gen-CBPZ2IdN.js";import{gn as _}from"./react-query.gen-DxjuNs-5.js";import{t as v}from"./skills-Lf85mR9L.js";var y=o(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),b=e(t(),1),x=i();function S({skill:e,className:t,fallback:n=`🧩`}){let[r,i]=(0,b.useState)(!1);return e.icon&&!r?(0,x.jsx)(`img`,{src:`/assistant/skills/${e.id}/${e.icon}`,alt:``,className:`${t} object-contain`,onError:()=>i(!0)}):(0,x.jsx)(`span`,{className:t,children:e.emoji??n})}var C={vellum:{label:`Vellum`,icon:y},clawhub:{label:`Clawhub`,icon:c},skillssh:{label:`skills.sh`,icon:u},custom:{label:`Custom`,icon:d},"assistant-memory":{label:`Assistant's Memory`,icon:s}};function w({origin:e}){let t=e in C?C[e]:{label:e.replace(/-/g,` `),icon:l};return(0,x.jsx)(f,{tone:`neutral`,leftIcon:(0,b.createElement)(t.icon),className:`capitalize`,children:t.label})}function T(e){return e.kind===`installed`||e.kind===`bundled`}function E(e){return e.kind===`catalog`}function D({icon:e,iconColor:t=`var(--content-tertiary)`,title:n,subtitle:r,children:i}){return(0,x.jsx)(a.Root,{children:(0,x.jsxs)(a.Body,{className:`flex flex-col items-center justify-center py-16 text-center`,children:[(0,x.jsx)(e,{className:`mb-3 h-8 w-8`,style:{color:t},"aria-hidden":!0}),(0,x.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:n}),(0,x.jsx)(`p`,{className:`mt-1 max-w-sm text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:r}),i]})})}async function O(e,t,n){let{data:r,error:i,response:a}=await g({path:{assistant_id:e},body:n?{slug:t,version:n}:{slug:t},throwOnError:!1});if(m(a,i,`Failed to install skill.`),!a.ok)throw new h(a.status,p(i,a,`Failed to install skill.`));return r??{ok:!0}}function k(e,{onRemoved:t}={}){let i=n(),[a,o]=(0,b.useState)(null),[s,c]=(0,b.useState)(null),[l,u]=(0,b.useState)(null),d=(0,b.useCallback)(()=>{v(i,e)},[e,i]),f=r({mutationFn:t=>O(e,t),onMutate:e=>o(e),onSettled:()=>{o(null),d()}}),p=_({onMutate:e=>c(e.path.id),onSuccess:()=>{t?.()},onSettled:()=>{c(null),d()}}),m=(0,b.useCallback)(e=>{f.mutate(e.slug??e.id)},[f]),h=(0,b.useCallback)(e=>{u(e)},[]),g=(0,b.useCallback)(()=>{l&&(p.mutate({path:{assistant_id:e,id:l.id}}),u(null))},[e,l,p]),y=(0,b.useCallback)(()=>{u(null)},[]);return{handleInstall:m,handleRemove:h,isInstallingSkill:(0,b.useCallback)(e=>a===(e.slug??e.id),[a]),isRemovingSkill:(0,b.useCallback)(e=>s===e.id,[s]),skillPendingRemoval:l,confirmRemove:g,cancelRemove:y}}export{w as a,T as i,D as n,S as o,E as r,y as s,k as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BENY-yx_.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-DFWryB3N.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./chevron-down-CrFV6lfm.js";import{t as u}from"./chevron-right-DBGgpEiZ.js";import{I as d,R as f}from"./src-BMRW2yQf.js";import{t as p}from"./loader-circle-DOtGXcds.js";import{n as m,t as h}from"./input-DmHXRXaB.js";import{t as g}from"./toggle-C-v4x7_A.js";import{t as _}from"./modal-DI63s9MQ.js";import{n as v}from"./toast-BpuLSxyt.js";import{t as y}from"./select-B8-i-CZ4.js";import{t as b}from"./is-electron-BHXrkjI3.js";import{A as x,D as S,E as C,F as w,I as T,L as E,M as D,N as O,O as k,T as A,d as j,k as M,s as N,u as ee}from"./profile-pickers-BSDVzs_G.js";import{t as P}from"./assistant-identity-store-nE-e8KQw.js";import{n as F,o as I}from"./utils-CAZUrJMu.js";import{r as L}from"./api-errors-BQX1Pzcm.js";import{Gt as te,Wt as ne,Xt as re,Yt as R,dr as ie,fr as ae}from"./sdk.gen-CBPZ2IdN.js";import{n as z}from"./use-platform-gate-DBRG0Q26.js";import{r as B}from"./use-is-org-ready-BTUeuhPi.js";import{Ct as oe,J as se,u as ce,wt as le}from"./react-query.gen-DxjuNs-5.js";var V=e(n(),1),ue={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function H(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function U(e){return e.startsWith(`anthropic/`)}function de(e,t){let n=t.toLowerCase();return T(e).find(e=>e.id.toLowerCase()===n)}function fe(e,t){return de(e,t)?.adaptiveThinkingOnly===!0}function pe(e){return U(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var me=[`minimal`,`low`,`medium`,`high`],W=[`low`,`medium`,`high`];function he(e){return/^gemini-3.*pro/.test(e)}var ge=new Set(me);function _e(e){return typeof e==`string`&&ge.has(e)}function ve(e){return he(e.toLowerCase())?W:me}function ye(e,t){let n=de(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?pe(t):e===`vercel-ai-gateway`?U(t):!1:n.supportsThinking}function G(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?H(t):e===`openrouter`||e===`vercel-ai-gateway`?U(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var be=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function xe(e,t){return t||be.has(e)}function Se(e,t){if(!e||!t)return ue;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&U(r),a=ye(n,r);return{maxTokens:!0,contextWindow:!0,effort:G(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&H(r),temperature:i,topP:xe(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&U(r))&&a&&!fe(n,r),thinkingLevel:n===`gemini`&&a}}var K=o(),q=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Ce=[`standard`,`fast`],we=[`low`,`medium`,`high`],Te=`default`,Ee=64e3;function De({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,u]=(0,V.useState)(s?``:String(t)),[f,p]=(0,V.useState)(t);t!==f&&(p(t),u(t===null?``:String(t)));function m(e){u(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function g(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){u(t===null?``:String(t));return}let o=ee(i,a);u(String(o)),n(o)}return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,j(i)]}):null]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:k,max:a,step:M,disabled:o,"aria-label":e})}),(0,K.jsx)(h,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>m(e.target.value),onBlur:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g(e.currentTarget.value)},min:k,max:a,step:M,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function J({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:u,onEffortChange:p,speed:m,onSpeedChange:h,verbosity:_,onVerbosityChange:v,temperatureEnabled:y,onTemperatureEnabledChange:b,temperature:x,onTemperatureChange:S,topPEnabled:C,onTopPEnabledChange:w,topP:T,onTopPChange:E,thinkingEnabled:D,onThinkingEnabledChange:O,thinkingStreamThinking:k,onThinkingStreamThinkingChange:A,thinkingLevel:j,onThinkingLevelChange:M}){let ee=N(),P=r?.maxOutputTokens??Ee,F=r?.contextWindowTokens??2e5,I=Math.min(i??Ee,P),L=Math.min(a??2e5,F);return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[!t&&ee&&(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,K.jsx)(De,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:I,max:P,disabled:t}),e.contextWindow&&(0,K.jsx)(De,{label:`Context Window`,value:c,onChange:l,defaultValue:L,max:F,disabled:t||!r}),e.effort&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,K.jsx)(f,{items:q.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:u,onChange:e=>p(e),ariaLabel:`Effort`})]}),e.speed&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,K.jsx)(f,{items:Ce.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>h(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,K.jsx)(f,{items:we.map(e=>({value:e,label:e,disabled:t})),value:_,onChange:e=>v(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(g,{checked:y,onChange:e=>b(e),label:`Temperature`,disabled:t}),y&&(0,K.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:x,onValueChange:e=>S(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(g,{checked:C,onChange:e=>w(e),label:`Top P`,disabled:t}),C&&(0,K.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:T,onValueChange:e=>E(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(g,{checked:D,onChange:e=>{O(e),e||A(!1)},label:`Enable extended thinking`,disabled:t}),D&&(0,K.jsx)(`div`,{className:`pl-4`,children:(0,K.jsx)(g,{checked:k,onChange:e=>A(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,K.jsx)(f,{items:[`default`,...ve(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:j,onChange:M,ariaLabel:`Thinking level`})]})]})}var Y=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`,`openai-compatible`];function X(e){return e===`ollama`?`none`:`api_key`}function Oe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function ke(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Ae(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function je(e){return e.label?e.label:e.auth.type===`oauth_subscription`?O.chatgpt:O[e.provider]??e.provider}var Me=new Set([`ollama`]);function Ne(e,t){return!Me.has(e)||t}function Pe(e){return A.filter(t=>Ne(t,e))}function Fe(e){return Y.filter(t=>Ne(t,e))}function Ie(e){return Object.keys(D).filter(t=>Ne(t,e))}function Le(){return Pe(z())}function Re(){return Fe(z())}function ze(){return Ie(z())}function Be(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>Ne(e,t)),r=[];return n.includes(`vellum`)&&r.push(x),r.push(...Y.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Y.includes(e))),r}function Ve(e,t){let n=new Set(e.map(e=>e.provider));return Fe(t).filter(e=>e!==`openai-compatible`&&!n.has(e))}var He=`${S}::`;function Z(e){return`${He}${e}`}function Q(e){return e.startsWith(He)?e.slice(He.length):null}function Ue(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:Z(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var We=new Set([`gpt-5.6-sol`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function Ge(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function Ke(e,t,n){return!e||T(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var qe=`No provider connections. Open Providers to add one.`,Je={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},Ye=`__custom-model-id__`;function Xe({text:e}){return(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function Ze({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:s,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1,providerError:p=null}){let m=e.length>0&&t.length===0,[g,_]=(0,V.useState)(!1),v=Ke(e,n,u),b=e!==``&&!v;(0,V.useEffect)(()=>{b||_(!1)},[e,b]);function x(e){if(e===Ye){_(!0),a(``);return}a(e)}let S=ze(),C=z(),w=(0,V.useMemo)(()=>{let t=Be(s??[],C);return e&&!t.includes(e)?[...t,e]:t},[s,e,C]),E=s===void 0?S:w,D=E.length===0&&!l,k=(0,V.useMemo)(()=>{if(!e)return[];let t=T(e);if(t.length>0)return Ke(e,n,u)?t.filter(e=>We.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?Ge(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),A=(0,V.useMemo)(()=>{if(!t||k.some(e=>e.id===t))return k;let n=T(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...k,{id:t,displayName:i}]},[t,k,e,u]),j=e?k.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,M=j?Je[j]:null;return(0,V.useEffect)(()=>{if(!e||g)return;let n=T(e);n.length>0&&!n.some(e=>e.id===t)||t&&k.length>0&&!k.some(e=>e.id===t)&&a(``)},[t,k,a,e,g]),(0,K.jsxs)(K.Fragment,{children:[!f&&(0,K.jsx)(y,{id:`profile-editor-provider`,label:`Provider`,errorText:p&&D?qe:p,helperText:D&&!p?qe:void 0,value:e===`openai-compatible`&&n?Z(n):e,onChange:e=>{let t=Q(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,options:[...Ue(E,s??[],e=>O[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,K.jsx)(Xe,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:Z(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:O[`openai-compatible`]??`openai-compatible`}]:[]]}),d&&!l&&(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),g?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(h,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,K.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>_(!1),children:`Choose from list`})]}):(0,K.jsx)(y,{value:t,onChange:x,disabled:l||!e,"aria-label":`Model`,placeholder:M?.placeholder??`Select a model`,options:[...A.map(e=>({value:e.id,label:e.displayName})),...b?[{value:Ye,label:`Enter a custom model ID…`}]:[]]}),g?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):m&&!l?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:M?.hint??`Select a model.`}):null]})]})}function Qe(e,t,n){return[`credentialPresence`,e,t,n]}function $e({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=B(),s=a({queryKey:Qe(e??``,n,r),queryFn:async()=>{let{data:t}=await ae({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function et({assistantId:e,onConnected:t}){let[n,i]=(0,V.useState)(`idle`),[a,o]=(0,V.useState)(``),[s,l]=(0,V.useState)(null);async function u(){i(`starting`),l(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await te({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),l(`Failed to start ChatGPT sign-in. Please try again.`)}}async function d(){l(null);let n=a.trim();if(!n){l(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{l(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){l(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){l(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await ne({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await R({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),l(`Failed to complete sign-in. Please try again.`)}}function f(){i(`idle`),o(``),l(null)}return(0,K.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(c,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void u(),children:`Sign in with ChatGPT`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(h,{value:a,onChange:e=>{o(e.target.value),l(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void d(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,s?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:s}):null,n===`failed`?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:f,children:`Try Again`}):null]})}var tt=new Set(Object.entries(O).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),nt={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function rt(e,t,n){let r=e.trim().toLowerCase();return r?tt.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function it(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function at(e){return it(e)}function ot(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function st(e,t){return{name:O[e]??e,key:ot(`${at(e)}-personal`,t)}}function ct(e,t){return{name:e,key:ot(at(e),t)}}function lt({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:s,providerCredentials:l,showAdvancedSection:d,onError:f}){let[m,g]=(0,V.useState)(!1),[_,v]=(0,V.useState)(!1),[b,x]=(0,V.useState)(``);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,K.jsx)(h,{type:`password`,value:e,onChange:e=>{t(e.target.value),f(null)},placeholder:o,fullWidth:!0})]}),d&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":m,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${m?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`}),(0,K.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),m&&(0,K.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=l.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,K.jsx)(y,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),_&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(h,{value:b,onChange:e=>x(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!b.trim(),onClick:()=>{let e=b.trim();e&&(i(`credential/${s}/${e}`),v(!1),x(``))},children:`Use`})]})]}),(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{_?(v(!1),x(``)):v(!0)},children:_?`Cancel`:`+ New Credential`})})]})]})]})}var ut=`•`.repeat(8);function dt(e,t){return t?ut:e}function ft(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function pt({assistantId:e,enabled:n=!0}){let r=B(),i=a({...oe({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>ft(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function mt({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,hideProviderSelect:o=!1,onCreated:s,onCancel:l,variant:d=`modal`}){let f=Re(),p=a&&f.includes(a)?a:f[0]??`anthropic`,m=st(p,t),[g,b]=(0,V.useState)(p===`openai-compatible`?``:m.name),[x,S]=(0,V.useState)(m.key),[C,w]=(0,V.useState)(p),T=C===`chatgpt`,E=T?`openai`:C,D=T?`oauth_subscription`:X(E),[k,A]=(0,V.useState)(()=>p===`ollama`?``:p===`openai-compatible`?`credential/${m.key}/api_key`:`credential/${p}/api_key`),[j,M]=(0,V.useState)(``),[N,ee]=(0,V.useState)(``),[P,F]=(0,V.useState)(!1),[I,L]=(0,V.useState)(null),[te,ne]=(0,V.useState)(!1),R=E===`openai-compatible`,ae=(0,V.useMemo)(()=>{let e=!T&&!f.includes(E)?[...f,E]:[...f],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[T,E,f]),z=(0,V.useRef)(!1);function B(e){z.current=!0,b(e)}let[oe,se]=(0,V.useState)(``),[ce,ue]=(0,V.useState)(!1),H=i(),U=(0,V.useMemo)(()=>Oe(k),[k]),de=D===`api_key`&&U!==null,{hasStoredCredential:fe,isLoading:pe}=$e({assistantId:e,credentialKind:`credential`,credentialName:U?`${U.service}:${U.field}`:``,enabled:de}),{credentials:me}=pt({assistantId:e,enabled:!0}),W=R?rt(g,n):null,he=x.trim().length>0&&(!R||g.trim().length>0)&&W===null;async function ge(){if(he){F(!0),L(null);try{let t;if(D===`api_key`){let n=k.trim()||`credential/${R?x:E}/api_key`,r=oe.trim();if(r){ue(!0);try{let t=Oe(n);await ie({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:E,value:r},throwOnError:!0});let i=Qe(e,`credential`,t?`${t.service}:${t.field}`:``);H.setQueryData(i,!0),H.invalidateQueries({queryKey:le({path:{assistant_id:e}})})}catch{L(`Failed to save API key. Please try again.`);return}finally{ue(!1)}t={type:`api_key`,credential:n}}else if(fe)t={type:`api_key`,credential:n};else if(R)t={type:`none`};else{L(`Enter an API key or select an existing credential.`);return}}else if(D===`oauth_subscription`){L(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=g.trim()||null,r={name:x.trim(),provider:E,auth:t,...n!==null&&{label:n},...R&&{base_url:j.trim()||null,models:N.trim()?N.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:o}=await re({path:{assistant_id:e},body:r});if(!o?.ok){L(Ae(o?.status,a)??ke(o?.status));return}if(!i){L(`Server returned an empty response. Please try again.`);return}v.success(`Provider connected`),s(i)}catch{L(`Failed to save provider. Please try again.`)}finally{F(!1)}}}let _e=me.filter(e=>e.service===E),ve=_e.length>0,ye=dt(`Enter your API key`,fe),G=te,be=(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":G,onClick:()=>ne(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${G?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`})]}),G&&(0,K.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,K.jsx)(h,{value:g,onChange:e=>B(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),xe=(0,K.jsxs)(`div`,{className:`space-y-4`,children:[!o&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,K.jsx)(y,{"aria-label":`Provider`,value:C,onChange:e=>{if(w(e),L(null),e===`chatgpt`)return;let{name:n,key:r}=st(e,t);z.current||b(e===`openai-compatible`?``:n),S(r),A(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...ae.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:O[e]})),...ae.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),R?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),R&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,K.jsx)(h,{value:g,onChange:e=>B(e.target.value),placeholder:`xAI`,fullWidth:!0}),W?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:nt[W]}):null]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,K.jsx)(h,{value:j,onChange:e=>M(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,K.jsx)(h,{value:N,onChange:e=>ee(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),D===`api_key`&&(0,K.jsx)(lt,{apiKeyValue:oe,onApiKeyChange:se,credential:k,onCredentialChange:A,isLoadingCredential:pe,apiKeyPlaceholder:ye,provider:E,providerCredentials:_e,showAdvancedSection:ve,onError:L}),R&&D===`api_key`?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,D===`oauth_subscription`&&(0,K.jsx)(et,{assistantId:e,onConnected:s}),!T&&!R&&be,I&&(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:I})]}),Se=(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:l,children:`Cancel`}),!T&&(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!he||P||ce,onClick:()=>void ge(),children:P?`Saving…`:R&&g.trim()?`Add ${g.trim()}`:`Add`})]});return d===`inline`?(0,K.jsxs)(`div`,{className:`space-y-4`,children:[xe,(0,K.jsx)(`div`,{className:`flex justify-end gap-2`,children:Se})]}):(0,K.jsxs)(_.Content,{size:`md`,children:[(0,K.jsxs)(_.Header,{children:[(0,K.jsx)(_.Title,{children:`Add Provider`}),(0,K.jsx)(_.Description,{children:`Choose a provider and paste its API key.`})]}),(0,K.jsx)(_.Body,{children:xe}),(0,K.jsx)(_.Footer,{children:Se})]})}var ht=`__create_new_provider__`;function gt(e){return X(e)===`api_key`?`Add API key`:`Set up`}function _t({editor:e,assistantId:t,connections:n,variant:r}){let i=z(),a=e.effectiveMode===`create`,o=r===`panel`,[s,l]=(0,V.useState)(!1),d=s||!!e.keyError&&e.getDirty(),f=(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a?`Name`:`Display Name`}),(0,K.jsx)(h,{type:`text`,value:e.label,onChange:t=>e.handleLabelChange(t.target.value),placeholder:`e.g. Fast & Cheap`,disabled:e.isReadOnly,fullWidth:!0})]}),p=(0,K.jsx)(m,{label:(0,K.jsxs)(K.Fragment,{children:[`Description`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:e.description,onChange:t=>e.setDescription(t.target.value),placeholder:`Describe when to use this profile`,disabled:e.isReadOnly,rows:2,fullWidth:!0,className:`resize-none`}),_=(0,K.jsx)(h,{label:`Key`,type:`text`,value:e.key,onChange:t=>e.handleKeyChange(t.target.value),placeholder:`e.g. fast-cheap`,disabled:e.isReadOnly||e.effectiveMode===`edit`,errorText:e.isReadOnly?void 0:e.keyError,fullWidth:!0}),v=!o&&(!e.isReadOnly||e.status!==`active`)?(0,K.jsx)(g,{checked:e.status===`active`,onChange:t=>e.setStatus(t?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,b=(0,K.jsx)(J,{visibility:e.visibility,isReadOnly:e.isReadOnly,model:e.model,selectedModel:e.selectedModel,defaultMaxOutputTokens:e.defaultMaxOutputTokens,defaultContextWindowMaxInputTokens:e.defaultContextWindowMaxInputTokens,maxTokens:e.maxTokens,onMaxTokensChange:e.setMaxTokens,contextWindowMaxInputTokens:e.contextWindowMaxInputTokens,onContextWindowChange:e.setContextWindowMaxInputTokens,effort:e.effort,onEffortChange:e.setEffort,speed:e.speed,onSpeedChange:e.setSpeed,verbosity:e.verbosity,onVerbosityChange:e.setVerbosity,temperatureEnabled:e.temperatureEnabled,onTemperatureEnabledChange:e.setTemperatureEnabled,temperature:e.temperature,onTemperatureChange:e.setTemperature,topPEnabled:e.topPEnabled,onTopPEnabledChange:e.setTopPEnabled,topP:e.topP,onTopPChange:e.setTopP,thinkingEnabled:e.thinkingEnabled,onThinkingEnabledChange:e.setThinkingEnabled,thinkingStreamThinking:e.thinkingStreamThinking,onThinkingStreamThinkingChange:e.setThinkingStreamThinking,thinkingLevel:e.thinkingLevel,onThinkingLevelChange:e.setThinkingLevel}),x=e.saveError?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.saveError}):null,C=(0,V.useMemo)(()=>Ve(e.effectiveConnections,i),[e.effectiveConnections,i]),w=(0,V.useMemo)(()=>{let t=Ue(Be(e.effectiveConnections,i),e.effectiveConnections,e=>O[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,K.jsx)(Xe,{text:n}):void 0}));for(let e of C)t.push({value:e,label:O[e]??e,suffix:(0,K.jsx)(Xe,{text:gt(e)})});return t.push({value:ht,label:`+ Create new provider`}),t},[i,e.effectiveConnections,C]),T=(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,K.jsx)(y,{value:e.creatingProvider?e.pendingCreateProvider??ht:e.provider===`openai-compatible`&&e.providerConnection?Z(e.providerConnection):e.provider,onChange:t=>{if(t===ht){e.setCreatingProvider(!0),e.setPendingCreateProvider(null),e.setNewProviderNote(!1);return}if(!t)return;let n=Q(t);if(n){e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.provider===`openai-compatible`?e.setModel(``):e.handleProviderChange(S),e.setProviderConnection(n);return}let r=t;if(C.includes(r)){e.setCreatingProvider(!0),e.setPendingCreateProvider(r),e.setNewProviderNote(!1);return}e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.handleProviderChange(r)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:w}),e.newProviderNote?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),e.creatingProvider?(0,K.jsx)(mt,{variant:`inline`,assistantId:t,existingNames:e.effectiveConnections.map(e=>e.name),connections:e.effectiveConnections,defaultProviderType:(e.pendingCreateProvider??e.provider)||void 0,hideProviderSelect:e.pendingCreateProvider!==null,onCreated:e.handleProviderCreated,onCancel:()=>{e.setCreatingProvider(!1),e.setPendingCreateProvider(null)}},e.pendingCreateProvider??`any`):(0,K.jsx)(Ze,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:e.effectiveConnections,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,hideProviderField:!0})]});if(a){let t=e.model!==``;return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[f,T,p,v,o?t&&(0,K.jsxs)(`div`,{className:`space-y-4`,children:[_,b]}):t&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":d,onClick:()=>l(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${d?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`})]}),d?(0,K.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[_,b]}):null]}),x]})}return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[f,p,_,v,(0,K.jsx)(Ze,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:n,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,providerError:e.providerError}),b,x]})}function vt(e,t,n){if(e){let n=T(e).find(e=>e.id===t);if(n)return n.displayName}for(let e of n??[]){let n=(e.models??[]).find(e=>e.id===t);if(n)return n.displayName??n.id}let r=t.lastIndexOf(`/`);return r>=0?t.slice(r+1):t}function yt(e,t,n){let r=(0,V.useRef)(!1),i=(0,V.useRef)(!1);return{handleLabelChange:(0,V.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(it(a))},[e,t,n]),handleKeyChange:(0,V.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,V.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,V.useCallback)(()=>i.current,[])}}var bt=`0.10.12`;async function xt(e,t){await I(t);let n=P.getState().assistantId;return e!=null&&n!==e?!1:F(bt)}function St(e,t){return e===t?!0:e===`vellum`&&C.has(t)}function Ct({mode:e,profileName:t,initialValues:n,existingNames:r,connections:o,assistantId:s,onSave:c}){let[l,u]=(0,V.useState)(e),d=n?.invariant===!0&&l!==`create`,f=l===`view`||d,p=n?.status??`active`,[m,h]=(0,V.useState)(n?.label??``),[g,_]=(0,V.useState)(n?.description??``),[v,y]=(0,V.useState)(e===`create`?``:t??``),[b,S]=(0,V.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[C,D]=(0,V.useState)(n?.model??``),[O,k]=(0,V.useState)(n?.provider_connection??``),[A,j]=(0,V.useState)(n?.status??`active`),[M,N]=(0,V.useState)([]),[ee,P]=(0,V.useState)(!1),[F,I]=(0,V.useState)(null),[te,ne]=(0,V.useState)(n?.maxTokens??null),[re,R]=(0,V.useState)(n?.contextWindow?.maxInputTokens??null),[ie,ae]=(0,V.useState)(n?.effort??`inherit`),[z,B]=(0,V.useState)(n?.speed??`standard`),[oe,le]=(0,V.useState)(n?.verbosity??`medium`),[ue,H]=(0,V.useState)(typeof n?.temperature==`number`),[U,de]=(0,V.useState)(typeof n?.temperature==`number`?n.temperature:.7),[fe,pe]=(0,V.useState)(typeof n?.topP==`number`),[me,W]=(0,V.useState)(typeof n?.topP==`number`?n.topP:.95),he=f&&A!==p,[ge,ve]=(0,V.useState)(n?.thinking?.enabled??!1),[ye,G]=(0,V.useState)(n?.thinking?.streamThinking??!1),[be,xe]=(0,V.useState)(_e(n?.thinking?.level)?n.thinking.level:Te),K=(0,V.useMemo)(()=>b===`vellum`?E(C):null,[b,C]),q=K?.model??C,Ce=(0,V.useMemo)(()=>b?T(b).find(e=>e.id===q)??null:null,[b,q]),{data:we}=a({...ce({path:{assistant_id:s}}),staleTime:3e4}),Ee=we?.llm?.default?.maxTokens,De=we?.llm?.default?.contextWindow?.maxInputTokens,J=(0,V.useMemo)(()=>Se(b===`vellum`?K?.provider??w(C)??n?.provider??``:b,q),[b,C,q,K,n?.provider]),Y=(0,V.useMemo)(()=>{let e=o??[];if(M.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...M.filter(e=>!t.has(e.name))]},[o,M]),X=(0,V.useMemo)(()=>b?Y.filter(e=>St(e.provider,b)):[],[b,Y]),Oe=O!==``&&!X.some(e=>e.name===O),{handleLabelChange:ke,handleKeyChange:Ae,resetDirty:je,getDirty:Me}=yt(l,h,y),Ne=i(),[Pe,Fe]=(0,V.useState)(!1),[Ie,Le]=(0,V.useState)(null),[Re,ze]=(0,V.useState)(!1);(0,V.useEffect)(()=>{n?.provider_connection===`vellum`&&b===(n?.provider??``)&&o?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&S(x)},[o,b,n]),(0,V.useEffect)(()=>{je(),Fe(!1),Le(null),ze(!1),N([])},[t,e,je]);function Be(e){if(e===b)return;S(e),D(``);let t=Y.filter(t=>St(t.provider,e));k(t.length===1?t[0].name:``),ne(null),R(null),ae(`inherit`),B(`standard`),le(`medium`),H(!1),de(.7),pe(!1),W(.95),ve(!1),G(!1),xe(Te)}function Ve(e){if(k(e),b&&T(b).length===0&&C)if(e===``)new Set(X.flatMap(e=>(e.models??[]).map(e=>e.id))).has(C)||D(``);else{let t=X.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(C)||D(``)}}function He(e){if(e!==C&&(D(e),ne(null),R(null),l===`create`&&e&&!Me())){let{name:t,key:n}=ct(vt(b||void 0,e,X),r);h(t),y(n)}}function Z(e){let t=e.provider;t!==`vellum`&&(N(t=>t.some(t=>t.name===e.name)?t:[...t,e]),S(t),k(e.name),D(``),Fe(!1),Le(null),ze(!0),Ne.invalidateQueries({queryKey:se({path:{assistant_id:s}})}))}let Q=v.trim(),Ue=Q.length===0,We=/\s/.test(v),Ge=l===`create`?r.includes(Q):r.filter(e=>e!==t).includes(Q),Ke=b.length===0,qe=b.length>0&&C.length===0,Je=Ue||We||Ge||Ke||qe,Ye=Ue?`Key is required`:We?`Key cannot contain whitespace`:Ge?`A profile with this key already exists`:null,Xe=!f&&(l===`edit`||Me())&&Ke?`Select a provider`:null;async function Ze(){if(!(Je&&!f)){if(f){if(!he)return;P(!0),I(null);try{await c(Q,{status:`active`},{mode:`merge`})}catch(e){I(L(e)??`Failed to save profile. Please try again.`)}finally{P(!1)}return}P(!0),I(null);try{let e={},t=O===``&&X.length===1?X[0].name:O,r=Oe?``:t,i=b===`vellum`&&await xt(s),a=b===`vellum`?i?x:K?.provider??w(C)??n?.provider??``:b,o=q,u=i?``:r;l===`edit`?(e.label=m.trim()||null,e.description=g.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=u||null):(m.trim()&&(e.label=m.trim()),g.trim()&&(e.description=g.trim()),a&&(e.provider=a),o&&(e.model=o),u&&(e.provider_connection=u)),J.maxTokens&&te!==null&&(e.maxTokens=te),J.contextWindow&&re!==null&&(e.contextWindow={maxInputTokens:re}),J.effort&&ie!==`inherit`&&(e.effort=ie),J.speed&&z!==`standard`&&(e.speed=z),J.verbosity&&(e.verbosity=oe),J.temperature&&(ue?e.temperature=U:l===`edit`&&(e.temperature=null)),J.topP&&(fe?e.topP=me:l===`edit`&&(e.topP=null)),J.thinking&&(e.thinking={enabled:ge,...ge?{streamThinking:ye}:{}}),J.thinkingLevel&&be!==`default`&&(e.thinking={enabled:!0,level:be}),(l===`edit`||A!==`active`)&&(e.status=A),await c(Q,e)}catch(e){I(L(e)??`Failed to save profile. Please try again.`)}finally{P(!1)}}}function Qe(){u(`create`),y(``),je()}return{effectiveMode:l,isReadOnly:f,isInvariant:d,hasViewModeChanges:he,label:m,description:g,key:v,provider:b,model:C,providerConnection:O,status:A,saving:ee,saveError:F,keyError:Ye,providerError:Xe,isInvalid:Je,maxTokens:te,contextWindowMaxInputTokens:re,effort:ie,speed:z,verbosity:oe,temperatureEnabled:ue,temperature:U,topPEnabled:fe,topP:me,thinkingEnabled:ge,thinkingStreamThinking:ye,thinkingLevel:be,visibility:J,selectedModel:Ce,defaultMaxOutputTokens:Ee,defaultContextWindowMaxInputTokens:De,effectiveConnections:Y,availableConnectionsForProvider:X,connectionNotFound:Oe,creatingProvider:Pe,pendingCreateProvider:Ie,newProviderNote:Re,setDescription:_,setStatus:j,setMaxTokens:ne,setContextWindowMaxInputTokens:R,setEffort:ae,setSpeed:B,setVerbosity:le,setTemperatureEnabled:H,setTemperature:de,setTopPEnabled:pe,setTopP:W,setThinkingEnabled:ve,setThinkingStreamThinking:G,setThinkingLevel:xe,setCreatingProvider:Fe,setPendingCreateProvider:Le,setNewProviderNote:ze,handleLabelChange:ke,handleKeyChange:Ae,getDirty:Me,handleProviderChange:Be,handleConnectionChange:Ve,handleModelChange:He,handleProviderCreated:Z,setProviderConnection:k,setModel:D,handleSave:Ze,switchToSaveAsNew:Qe}}var wt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Tt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function Et(e){let t=Tt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Dt=`pcm-downsample`,Ot=1600,kt=16e3;function At(){return b()?window.vellum?.helper?.dictation:void 0}function jt(){let e=At();return!!e?.transcribe&&!!e.onTranscribed}var $=null,Mt=null;async function Nt(){return $||($=Et(),Mt=$.audioWorklet.addModule(wt)),$.state!==`running`&&await $.resume(),await Mt,$}async function Pt(e,t){try{let n=await Nt(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Dt,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Ot))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var Ft=8e3;async function It(e){let t=At();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await Lt(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),Ft)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function Lt(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,kt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var Rt=4e3;async function zt(e,t){let n=At();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await Pt(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),Rt)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var Bt=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],Vt=`macos-native`,Ht=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:Vt,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],Ut=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],Wt=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],Gt={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`},Kt=[`vellum`,`gemini`,`openai`],qt={vellum:`Vellum`,gemini:`Gemini`,openai:`OpenAI`};function Jt(e){return e===`vellum`?[...Wt]:Wt.filter(t=>Yt(t)===e)}function Yt(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var Xt=`vellum:ai:imageGenProvider`,Zt=`vellum:ai:imageGenModel`,Qt=`vellum:ai:webSearchProvider`,$t=`vellum:ai:webFetchProvider`,en=`vellum:ai:emailMode`,tn=`vellum:ai:emailByoProvider`,nn=`vellum:voice:ttsProvider`,rn=`vellum:voice:ttsApiKey:`,an=`vellum:voice:ttsVoiceId:`,on=`vellum:voice:sttProvider`,sn=`vellum:voice:sttApiKey:`;function cn({value:e,size:t=`default`,className:n,...r}){let i=t===`compact`;return(0,K.jsxs)(`button`,{type:`button`,className:s(`flex items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left text-[var(--content-default)] transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)]`,i?`h-7 min-w-44 px-2.5 text-body-small-default`:`h-9 w-full px-3 text-body-medium-lighter`,n),...r,children:[(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e}),(0,K.jsx)(l,{"aria-hidden":!0,className:s(`shrink-0 text-[var(--content-tertiary)]`,i?`h-3 w-3`:`h-3.5 w-3.5`)})]})}var ln={profiles:{},profileOrder:[]};function un(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,V.useState)(ln),[s,c]=(0,V.useState)(t);return t!==s&&(c(t),o(ln)),(0,V.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:ln}export{vt as A,$e as B,jt as C,Tt as D,Et as E,lt as F,Ae as G,ke as H,nt as I,rt as L,mt as M,pt as N,wt as O,dt as P,et as R,Yt as S,It as T,Oe as U,Le as V,je as W,qt as _,Zt as a,Bt as b,on as c,an as d,$t as f,Kt as g,Gt as h,en as i,_t as j,Ct as k,rn as l,Ut as m,cn as n,Xt as o,Qt as p,tn as r,sn as s,un as t,nn as u,Vt as v,zt as w,Jt as x,Ht as y,Qe as z};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Cw5vs0Ef.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-BENY-yx_.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-DFWryB3N.js";import{t as c}from"./typography-BeUa5Fd-.js";import{t as l}from"./chevron-down-CrFV6lfm.js";import{t as u}from"./chevron-right-DBGgpEiZ.js";import{L as d,z as f}from"./src-hNk11eS3.js";import{t as p}from"./loader-circle-DOtGXcds.js";import{n as m,t as h}from"./input-DmHXRXaB.js";import{t as g}from"./toggle-C-v4x7_A.js";import{t as _}from"./modal-DI63s9MQ.js";import{n as v}from"./toast-BpuLSxyt.js";import{t as y}from"./select-B8-i-CZ4.js";import{t as b}from"./is-electron-BHXrkjI3.js";import{A as x,D as S,E as C,F as w,I as T,L as E,M as D,N as O,O as k,T as A,d as j,k as M,s as N,u as ee}from"./profile-pickers-ChG4_Gpc.js";import{t as P}from"./assistant-identity-store-nE-e8KQw.js";import{n as F,o as I}from"./utils-CVoSWh7U.js";import{r as L}from"./api-errors-BQX1Pzcm.js";import{Gt as te,Wt as ne,Xt as re,Yt as R,dr as ie,fr as ae}from"./sdk.gen-CBPZ2IdN.js";import{n as z}from"./use-platform-gate-CdwOyQ8A.js";import{r as B}from"./use-is-org-ready-BmOdacs1.js";import{Ct as oe,J as se,u as ce,wt as le}from"./react-query.gen-DxjuNs-5.js";var V=e(n(),1),ue={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function H(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function U(e){return e.startsWith(`anthropic/`)}function de(e,t){let n=t.toLowerCase();return T(e).find(e=>e.id.toLowerCase()===n)}function fe(e,t){return de(e,t)?.adaptiveThinkingOnly===!0}function pe(e){return U(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var me=[`minimal`,`low`,`medium`,`high`],W=[`low`,`medium`,`high`];function he(e){return/^gemini-3.*pro/.test(e)}var ge=new Set(me);function _e(e){return typeof e==`string`&&ge.has(e)}function ve(e){return he(e.toLowerCase())?W:me}function ye(e,t){let n=de(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?pe(t):e===`vercel-ai-gateway`?U(t):!1:n.supportsThinking}function G(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?H(t):e===`openrouter`||e===`vercel-ai-gateway`?U(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var be=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function xe(e,t){return t||be.has(e)}function Se(e,t){if(!e||!t)return ue;let n=e.toLowerCase(),r=t.toLowerCase(),i=n===`anthropic`||(n===`openrouter`||n===`vercel-ai-gateway`)&&U(r),a=ye(n,r);return{maxTokens:!0,contextWindow:!0,effort:G(n,r,a),speed:n===`anthropic`&&r.includes(`opus`),verbosity:n===`openai`&&H(r),temperature:i,topP:xe(n,i),thinking:(n===`anthropic`||n===`openrouter`||n===`vercel-ai-gateway`&&U(r))&&a&&!fe(n,r),thinkingLevel:n===`gemini`&&a}}var K=o(),q=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Ce=[`standard`,`fast`],we=[`low`,`medium`,`high`],Te=`default`,Ee=64e3;function De({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let s=t===null,c=t??i,[l,u]=(0,V.useState)(s?``:String(t)),[f,p]=(0,V.useState)(t);t!==f&&(p(t),u(t===null?``:String(t)));function m(e){u(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function g(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){u(t===null?``:String(t));return}let o=ee(i,a);u(String(o)),n(o)}return(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),s?(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Default · `,j(i)]}):null]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:c,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:k,max:a,step:M,disabled:o,"aria-label":e})}),(0,K.jsx)(h,{type:`number`,inputMode:`numeric`,value:l,placeholder:String(i),onChange:e=>m(e.target.value),onBlur:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&g(e.currentTarget.value)},min:k,max:a,step:M,disabled:o,"aria-label":`${e} (tokens)`,wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||s,children:`Reset`})]})]})}function J({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:l,effort:u,onEffortChange:p,speed:m,onSpeedChange:h,verbosity:_,onVerbosityChange:v,temperatureEnabled:y,onTemperatureEnabledChange:b,temperature:x,onTemperatureChange:S,topPEnabled:C,onTopPEnabledChange:w,topP:T,onTopPChange:E,thinkingEnabled:D,onThinkingEnabledChange:O,thinkingStreamThinking:k,onThinkingStreamThinkingChange:A,thinkingLevel:j,onThinkingLevelChange:M}){let ee=N(),P=r?.maxOutputTokens??Ee,F=r?.contextWindowTokens??2e5,I=Math.min(i??Ee,P),L=Math.min(a??2e5,F);return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[!t&&ee&&(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Fields left at their default are saved with the values shown and won’t change if the assistant defaults change later.`}),e.maxTokens&&(0,K.jsx)(De,{label:`Max Output Tokens`,value:o,onChange:s,defaultValue:I,max:P,disabled:t}),e.contextWindow&&(0,K.jsx)(De,{label:`Context Window`,value:c,onChange:l,defaultValue:L,max:F,disabled:t||!r}),e.effort&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Effort`}),(0,K.jsx)(f,{items:q.map(e=>({value:e,label:e===`inherit`?`default`:e,disabled:t})),value:u,onChange:e=>p(e),ariaLabel:`Effort`})]}),e.speed&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Speed`}),(0,K.jsx)(f,{items:Ce.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>h(e),ariaLabel:`Speed`})]}),e.verbosity&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Verbosity`}),(0,K.jsx)(f,{items:we.map(e=>({value:e,label:e,disabled:t})),value:_,onChange:e=>v(e),ariaLabel:`Verbosity`})]}),e.temperature&&(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(g,{checked:y,onChange:e=>b(e),label:`Temperature`,disabled:t}),y&&(0,K.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:x,onValueChange:e=>S(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsx)(g,{checked:C,onChange:e=>w(e),label:`Top P`,disabled:t}),C&&(0,K.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,K.jsx)(`div`,{className:`flex-1`,children:(0,K.jsx)(d,{value:T,onValueChange:e=>E(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(g,{checked:D,onChange:e=>{O(e),e||A(!1)},label:`Enable extended thinking`,disabled:t}),D&&(0,K.jsx)(`div`,{className:`pl-4`,children:(0,K.jsx)(g,{checked:k,onChange:e=>A(e),label:`Stream thinking tokens`,disabled:t})})]}),e.thinkingLevel&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Thinking level`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(default = inherit)`})]}),(0,K.jsx)(f,{items:[`default`,...ve(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:j,onChange:M,ariaLabel:`Thinking level`})]})]})}var Y=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`,`openai-compatible`];function X(e){return e===`ollama`?`none`:`api_key`}function Oe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function ke(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Ae(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function je(e){return e.label?e.label:e.auth.type===`oauth_subscription`?O.chatgpt:O[e.provider]??e.provider}var Me=new Set([`ollama`]);function Ne(e,t){return!Me.has(e)||t}function Pe(e){return A.filter(t=>Ne(t,e))}function Fe(e){return Y.filter(t=>Ne(t,e))}function Ie(e){return Object.keys(D).filter(t=>Ne(t,e))}function Le(){return Pe(z())}function Re(){return Fe(z())}function ze(){return Ie(z())}function Be(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>Ne(e,t)),r=[];return n.includes(`vellum`)&&r.push(x),r.push(...Y.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&!Y.includes(e))),r}function Ve(e,t){let n=new Set(e.map(e=>e.provider));return Fe(t).filter(e=>e!==`openai-compatible`&&!n.has(e))}var He=`${S}::`;function Z(e){return`${He}${e}`}function Q(e){return e.startsWith(He)?e.slice(He.length):null}function Ue(e,t,n){let r=[];for(let i of e){if(i===`vellum`){r.push({value:i,label:n(i),meta:`Managed`});continue}if(i!==`openai-compatible`){r.push({value:i,label:n(i)});continue}for(let e of t)e.provider===`openai-compatible`&&r.push({value:Z(e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`})}return r}var We=new Set([`gpt-5.6-sol`,`gpt-5.6-terra`,`gpt-5.6-luna`,`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`]);function Ge(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}function Ke(e,t,n){return!e||T(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var qe=`No provider connections. Open Providers to add one.`,Je={"no-provider":{placeholder:`Select a provider first`,hint:null},"configure-connection":{placeholder:`Configure models on connection`,hint:`No models available. Configure models on the provider connection first.`},"unknown-to-catalog":{placeholder:`No models available`,hint:`No models are available for this provider in this app version. Update the app, or enter a custom model ID.`}},Ye=`__custom-model-id__`;function Xe({text:e}){return(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function Ze({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:s,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1,providerError:p=null}){let m=e.length>0&&t.length===0,[g,_]=(0,V.useState)(!1),v=Ke(e,n,u),b=e!==``&&!v;(0,V.useEffect)(()=>{b||_(!1)},[e,b]);function x(e){if(e===Ye){_(!0),a(``);return}a(e)}let S=ze(),C=z(),w=(0,V.useMemo)(()=>{let t=Be(s??[],C);return e&&!t.includes(e)?[...t,e]:t},[s,e,C]),E=s===void 0?S:w,D=E.length===0&&!l,k=(0,V.useMemo)(()=>{if(!e)return[];let t=T(e);if(t.length>0)return Ke(e,n,u)?t.filter(e=>We.has(e.id)):t;if(n){let e=u.find(e=>e.name===n);return e?Ge(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),A=(0,V.useMemo)(()=>{if(!t||k.some(e=>e.id===t))return k;let n=T(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...k,{id:t,displayName:i}]},[t,k,e,u]),j=e?k.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,M=j?Je[j]:null;return(0,V.useEffect)(()=>{if(!e||g)return;let n=T(e);n.length>0&&!n.some(e=>e.id===t)||t&&k.length>0&&!k.some(e=>e.id===t)&&a(``)},[t,k,a,e,g]),(0,K.jsxs)(K.Fragment,{children:[!f&&(0,K.jsx)(y,{id:`profile-editor-provider`,label:`Provider`,errorText:p&&D?qe:p,helperText:D&&!p?qe:void 0,value:e===`openai-compatible`&&n?Z(n):e,onChange:e=>{let t=Q(e);if(t){i(`openai-compatible`),o(t);return}i(e)},disabled:l,placeholder:`Select a provider…`,options:[...Ue(E,s??[],e=>O[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,K.jsx)(Xe,{text:n}):void 0})),...d&&e===`openai-compatible`&&n?[{value:Z(n),label:`${n} (not found)`}]:[],...e===`openai-compatible`&&!n?[{value:`openai-compatible`,label:O[`openai-compatible`]??`openai-compatible`}]:[]]}),d&&!l&&(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:`This profile referenced a credential that no longer exists. Saving resets it to use the provider’s available key.`}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Model`}),g?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(h,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:`provider/model-id`,"aria-label":`Custom model ID`,fullWidth:!0,autoFocus:!0}),(0,K.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>_(!1),children:`Choose from list`})]}):(0,K.jsx)(y,{value:t,onChange:x,disabled:l||!e,"aria-label":`Model`,placeholder:M?.placeholder??`Select a model`,options:[...A.map(e=>({value:e.id,label:e.displayName})),...b?[{value:Ye,label:`Enter a custom model ID…`}]:[]]}),g?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Enter the exact model identifier your provider expects. It's sent to the connection as-is.`}):m&&!l?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:M?.hint??`Select a model.`}):null]})]})}function Qe(e,t,n){return[`credentialPresence`,e,t,n]}function $e({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=B(),s=a({queryKey:Qe(e??``,n,r),queryFn:async()=>{let{data:t}=await ae({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function et({assistantId:e,onConnected:t}){let[n,i]=(0,V.useState)(`idle`),[a,o]=(0,V.useState)(``),[s,l]=(0,V.useState)(null);async function u(){i(`starting`),l(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await te({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),i(`paste_url`)}catch{t?.close(),i(`failed`),l(`Failed to start ChatGPT sign-in. Please try again.`)}}async function d(){l(null);let n=a.trim();if(!n){l(`Please paste the URL from the error page.`);return}let r;try{r=new URL(n)}catch{l(`Invalid URL. Please paste the full URL from the address bar.`);return}let o=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!o){l(`The URL is missing the authorization code. Make sure you copied the full URL.`);return}if(!s){l(`The URL is missing the state parameter. Make sure you copied the full URL.`);return}i(`exchanging`);try{await ne({path:{assistant_id:e},body:{code:o,state:s},throwOnError:!0}),i(`completed`);let{data:n}=await R({path:{assistant_id:e},query:{provider:`openai`},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`openai`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{i(`failed`),l(`Failed to complete sign-in. Please try again.`)}}function f(){i(`idle`),o(``),l(null)}return(0,K.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Connect your ChatGPT subscription to use OpenAI models without an API key.`}),n===`idle`||n===`paste_url`?(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(c,{variant:`body-small-default`,as:`p`,className:n===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:[`1. Click “Sign in with ChatGPT”`,n===`idle`?` below`:null,` to open a popup`]}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`2. Sign in, then you'll land on an error page — that's expected`}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:`3. Copy the full URL from that page's address bar and paste it below`})]}),n===`idle`?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void u(),children:`Sign in with ChatGPT`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(h,{value:a,onChange:e=>{o(e.target.value),l(null)},placeholder:`Paste callback URL here...`,fullWidth:!0}),(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!a.trim(),onClick:()=>void d(),children:`Complete Sign In`})})]})]}):null,n===`starting`?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Starting sign-in...`})]}):null,n===`exchanging`?(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Completing sign-in...`})]}):null,n===`completed`?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:`ChatGPT subscription connected successfully.`}):null,s?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:s}):null,n===`failed`?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:f,children:`Try Again`}):null]})}var tt=new Set(Object.entries(O).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),nt={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function rt(e,t,n){let r=e.trim().toLowerCase();return r?tt.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function it(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function at(e){return it(e)}function ot(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function st(e,t){return{name:O[e]??e,key:ot(`${at(e)}-personal`,t)}}function ct(e,t){return{name:e,key:ot(at(e),t)}}function lt({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:s,providerCredentials:l,showAdvancedSection:d,onError:f}){let[m,g]=(0,V.useState)(!1),[_,v]=(0,V.useState)(!1),[b,x]=(0,V.useState)(``);return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`API Key`}),a?(0,K.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,K.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,K.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading…`})]}):(0,K.jsx)(h,{type:`password`,value:e,onChange:e=>{t(e.target.value),f(null)},placeholder:o,fullWidth:!0})]}),d&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":m,onClick:()=>g(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${m?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`}),(0,K.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:`· Credential reference`})]}),m&&(0,K.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=l.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Credential Reference`}),(0,K.jsx)(y,{"aria-label":`Credential reference`,value:n,onChange:e=>{i(e)},options:r})]})})(),_&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`New Credential Name`}),(0,K.jsxs)(`div`,{className:`flex gap-2`,children:[(0,K.jsx)(h,{value:b,onChange:e=>x(e.target.value),placeholder:`e.g. team-key`,fullWidth:!0}),(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!b.trim(),onClick:()=>{let e=b.trim();e&&(i(`credential/${s}/${e}`),v(!1),x(``))},children:`Use`})]})]}),(0,K.jsx)(`div`,{className:`flex justify-end`,children:(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>{_?(v(!1),x(``)):v(!0)},children:_?`Cancel`:`+ New Credential`})})]})]})]})}var ut=`•`.repeat(8);function dt(e,t){return t?ut:e}function ft(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function pt({assistantId:e,enabled:n=!0}){let r=B(),i=a({...oe({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>ft(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function mt({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,hideProviderSelect:o=!1,onCreated:s,onCancel:l,variant:d=`modal`}){let f=Re(),p=a&&f.includes(a)?a:f[0]??`anthropic`,m=st(p,t),[g,b]=(0,V.useState)(p===`openai-compatible`?``:m.name),[x,S]=(0,V.useState)(m.key),[C,w]=(0,V.useState)(p),T=C===`chatgpt`,E=T?`openai`:C,D=T?`oauth_subscription`:X(E),[k,A]=(0,V.useState)(()=>p===`ollama`?``:p===`openai-compatible`?`credential/${m.key}/api_key`:`credential/${p}/api_key`),[j,M]=(0,V.useState)(``),[N,ee]=(0,V.useState)(``),[P,F]=(0,V.useState)(!1),[I,L]=(0,V.useState)(null),[te,ne]=(0,V.useState)(!1),R=E===`openai-compatible`,ae=(0,V.useMemo)(()=>{let e=!T&&!f.includes(E)?[...f,E]:[...f],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[T,E,f]),z=(0,V.useRef)(!1);function B(e){z.current=!0,b(e)}let[oe,se]=(0,V.useState)(``),[ce,ue]=(0,V.useState)(!1),H=i(),U=(0,V.useMemo)(()=>Oe(k),[k]),de=D===`api_key`&&U!==null,{hasStoredCredential:fe,isLoading:pe}=$e({assistantId:e,credentialKind:`credential`,credentialName:U?`${U.service}:${U.field}`:``,enabled:de}),{credentials:me}=pt({assistantId:e,enabled:!0}),W=R?rt(g,n):null,he=x.trim().length>0&&(!R||g.trim().length>0)&&W===null;async function ge(){if(he){F(!0),L(null);try{let t;if(D===`api_key`){let n=k.trim()||`credential/${R?x:E}/api_key`,r=oe.trim();if(r){ue(!0);try{let t=Oe(n);await ie({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:E,value:r},throwOnError:!0});let i=Qe(e,`credential`,t?`${t.service}:${t.field}`:``);H.setQueryData(i,!0),H.invalidateQueries({queryKey:le({path:{assistant_id:e}})})}catch{L(`Failed to save API key. Please try again.`);return}finally{ue(!1)}t={type:`api_key`,credential:n}}else if(fe)t={type:`api_key`,credential:n};else if(R)t={type:`none`};else{L(`Enter an API key or select an existing credential.`);return}}else if(D===`oauth_subscription`){L(`Use the "Sign in with ChatGPT" button to connect your subscription.`);return}else t={type:`none`};let n=g.trim()||null,r={name:x.trim(),provider:E,auth:t,...n!==null&&{label:n},...R&&{base_url:j.trim()||null,models:N.trim()?N.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:o}=await re({path:{assistant_id:e},body:r});if(!o?.ok){L(Ae(o?.status,a)??ke(o?.status));return}if(!i){L(`Server returned an empty response. Please try again.`);return}v.success(`Provider connected`),s(i)}catch{L(`Failed to save provider. Please try again.`)}finally{F(!1)}}}let _e=me.filter(e=>e.service===E),ve=_e.length>0,ye=dt(`Enter your API key`,fe),G=te,be=(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":G,onClick:()=>ne(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${G?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`})]}),G&&(0,K.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[`Display Name`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),(0,K.jsx)(h,{value:g,onChange:e=>B(e.target.value),placeholder:`e.g. My Anthropic Key`,fullWidth:!0})]})})]}),xe=(0,K.jsxs)(`div`,{className:`space-y-4`,children:[!o&&(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,K.jsx)(y,{"aria-label":`Provider`,value:C,onChange:e=>{if(w(e),L(null),e===`chatgpt`)return;let{name:n,key:r}=st(e,t);z.current||b(e===`openai-compatible`?``:n),S(r),A(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...ae.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:O[e]})),...ae.includes(`openai-compatible`)?[{value:`openai-compatible`,label:`Custom provider`}]:[]]}),R?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Custom providers connect to any endpoint that serves the OpenAI-compatible API — xAI, Groq, LM Studio, vLLM, and similar.`}):null]}),R&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Name`}),(0,K.jsx)(h,{value:g,onChange:e=>B(e.target.value),placeholder:`xAI`,fullWidth:!0}),W?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:nt[W]}):null]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Base URL`}),(0,K.jsx)(h,{value:j,onChange:e=>M(e.target.value),placeholder:`https://api.x.ai/v1`,fullWidth:!0})]}),(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Models`}),(0,K.jsx)(h,{value:N,onChange:e=>ee(e.target.value),placeholder:`model-1, model-2`,fullWidth:!0}),(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Comma-separated model identifiers exposed by your endpoint.`})]})]}),D===`api_key`&&(0,K.jsx)(lt,{apiKeyValue:oe,onApiKeyChange:se,credential:k,onCredentialChange:A,isLoadingCredential:pe,apiKeyPlaceholder:ye,provider:E,providerCredentials:_e,showAdvancedSection:ve,onError:L}),R&&D===`api_key`?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`Leave the key empty for local endpoints — they connect keyless.`}):null,D===`oauth_subscription`&&(0,K.jsx)(et,{assistantId:e,onConnected:s}),!T&&!R&&be,I&&(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:I})]}),Se=(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(r,{variant:`ghost`,size:`compact`,onClick:l,children:`Cancel`}),!T&&(0,K.jsx)(r,{variant:`primary`,size:`compact`,disabled:!he||P||ce,onClick:()=>void ge(),children:P?`Saving…`:R&&g.trim()?`Add ${g.trim()}`:`Add`})]});return d===`inline`?(0,K.jsxs)(`div`,{className:`space-y-4`,children:[xe,(0,K.jsx)(`div`,{className:`flex justify-end gap-2`,children:Se})]}):(0,K.jsxs)(_.Content,{size:`md`,children:[(0,K.jsxs)(_.Header,{children:[(0,K.jsx)(_.Title,{children:`Add Provider`}),(0,K.jsx)(_.Description,{children:`Choose a provider and paste its API key.`})]}),(0,K.jsx)(_.Body,{children:xe}),(0,K.jsx)(_.Footer,{children:Se})]})}var ht=`__create_new_provider__`;function gt(e){return X(e)===`api_key`?`Add API key`:`Set up`}function _t({editor:e,assistantId:t,connections:n,variant:r}){let i=z(),a=e.effectiveMode===`create`,o=r===`panel`,[s,l]=(0,V.useState)(!1),d=s||!!e.keyError&&e.getDirty(),f=(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a?`Name`:`Display Name`}),(0,K.jsx)(h,{type:`text`,value:e.label,onChange:t=>e.handleLabelChange(t.target.value),placeholder:`e.g. Fast & Cheap`,disabled:e.isReadOnly,fullWidth:!0})]}),p=(0,K.jsx)(m,{label:(0,K.jsxs)(K.Fragment,{children:[`Description`,` `,(0,K.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:`(optional)`})]}),value:e.description,onChange:t=>e.setDescription(t.target.value),placeholder:`Describe when to use this profile`,disabled:e.isReadOnly,rows:2,fullWidth:!0,className:`resize-none`}),_=(0,K.jsx)(h,{label:`Key`,type:`text`,value:e.key,onChange:t=>e.handleKeyChange(t.target.value),placeholder:`e.g. fast-cheap`,disabled:e.isReadOnly||e.effectiveMode===`edit`,errorText:e.isReadOnly?void 0:e.keyError,fullWidth:!0}),v=!o&&(!e.isReadOnly||e.status!==`active`)?(0,K.jsx)(g,{checked:e.status===`active`,onChange:t=>e.setStatus(t?`active`:`disabled`),label:`Active`,className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,b=(0,K.jsx)(J,{visibility:e.visibility,isReadOnly:e.isReadOnly,model:e.model,selectedModel:e.selectedModel,defaultMaxOutputTokens:e.defaultMaxOutputTokens,defaultContextWindowMaxInputTokens:e.defaultContextWindowMaxInputTokens,maxTokens:e.maxTokens,onMaxTokensChange:e.setMaxTokens,contextWindowMaxInputTokens:e.contextWindowMaxInputTokens,onContextWindowChange:e.setContextWindowMaxInputTokens,effort:e.effort,onEffortChange:e.setEffort,speed:e.speed,onSpeedChange:e.setSpeed,verbosity:e.verbosity,onVerbosityChange:e.setVerbosity,temperatureEnabled:e.temperatureEnabled,onTemperatureEnabledChange:e.setTemperatureEnabled,temperature:e.temperature,onTemperatureChange:e.setTemperature,topPEnabled:e.topPEnabled,onTopPEnabledChange:e.setTopPEnabled,topP:e.topP,onTopPChange:e.setTopP,thinkingEnabled:e.thinkingEnabled,onThinkingEnabledChange:e.setThinkingEnabled,thinkingStreamThinking:e.thinkingStreamThinking,onThinkingStreamThinkingChange:e.setThinkingStreamThinking,thinkingLevel:e.thinkingLevel,onThinkingLevelChange:e.setThinkingLevel}),x=e.saveError?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.saveError}):null,C=(0,V.useMemo)(()=>Ve(e.effectiveConnections,i),[e.effectiveConnections,i]),w=(0,V.useMemo)(()=>{let t=Ue(Be(e.effectiveConnections,i),e.effectiveConnections,e=>O[e]??e).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,K.jsx)(Xe,{text:n}):void 0}));for(let e of C)t.push({value:e,label:O[e]??e,suffix:(0,K.jsx)(Xe,{text:gt(e)})});return t.push({value:ht,label:`+ Create new provider`}),t},[i,e.effectiveConnections,C]),T=(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Provider`}),(0,K.jsx)(y,{value:e.creatingProvider?e.pendingCreateProvider??ht:e.provider===`openai-compatible`&&e.providerConnection?Z(e.providerConnection):e.provider,onChange:t=>{if(t===ht){e.setCreatingProvider(!0),e.setPendingCreateProvider(null),e.setNewProviderNote(!1);return}if(!t)return;let n=Q(t);if(n){e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.provider===`openai-compatible`?e.setModel(``):e.handleProviderChange(S),e.setProviderConnection(n);return}let r=t;if(C.includes(r)){e.setCreatingProvider(!0),e.setPendingCreateProvider(r),e.setNewProviderNote(!1);return}e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.handleProviderChange(r)},placeholder:`Select a provider…`,"aria-labelledby":`profile-editor-provider-label`,options:w}),e.newProviderNote?(0,K.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:`New provider connection will show up in the Providers section.`}):null]}),e.creatingProvider?(0,K.jsx)(mt,{variant:`inline`,assistantId:t,existingNames:e.effectiveConnections.map(e=>e.name),connections:e.effectiveConnections,defaultProviderType:(e.pendingCreateProvider??e.provider)||void 0,hideProviderSelect:e.pendingCreateProvider!==null,onCreated:e.handleProviderCreated,onCancel:()=>{e.setCreatingProvider(!1),e.setPendingCreateProvider(null)}},e.pendingCreateProvider??`any`):(0,K.jsx)(Ze,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:e.effectiveConnections,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,hideProviderField:!0})]});if(a){let t=e.model!==``;return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[f,T,p,v,o?t&&(0,K.jsxs)(`div`,{className:`space-y-4`,children:[_,b]}):t&&(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`button`,{type:`button`,"aria-expanded":d,onClick:()=>l(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,K.jsx)(u,{className:`h-4 w-4 transition-transform ${d?`rotate-90`:``}`}),(0,K.jsx)(`span`,{children:`Advanced`})]}),d?(0,K.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[_,b]}):null]}),x]})}return(0,K.jsxs)(`div`,{className:`space-y-4`,children:[f,p,_,v,(0,K.jsx)(Ze,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:n,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,providerError:e.providerError}),b,x]})}function vt(e,t,n){if(e){let n=T(e).find(e=>e.id===t);if(n)return n.displayName}for(let e of n??[]){let n=(e.models??[]).find(e=>e.id===t);if(n)return n.displayName??n.id}let r=t.lastIndexOf(`/`);return r>=0?t.slice(r+1):t}function yt(e,t,n){let r=(0,V.useRef)(!1),i=(0,V.useRef)(!1);return{handleLabelChange:(0,V.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(it(a))},[e,t,n]),handleKeyChange:(0,V.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,V.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,V.useCallback)(()=>i.current,[])}}var bt=`0.10.12`;async function xt(e,t){await I(t);let n=P.getState().assistantId;return e!=null&&n!==e?!1:F(bt)}function St(e,t){return e===t?!0:e===`vellum`&&C.has(t)}function Ct({mode:e,profileName:t,initialValues:n,existingNames:r,connections:o,assistantId:s,onSave:c}){let[l,u]=(0,V.useState)(e),d=n?.invariant===!0&&l!==`create`,f=l===`view`||d,p=n?.status??`active`,[m,h]=(0,V.useState)(n?.label??``),[g,_]=(0,V.useState)(n?.description??``),[v,y]=(0,V.useState)(e===`create`?``:t??``),[b,S]=(0,V.useState)(n?.provider&&n.provider!==`chatgpt`?n.provider:``),[C,D]=(0,V.useState)(n?.model??``),[O,k]=(0,V.useState)(n?.provider_connection??``),[A,j]=(0,V.useState)(n?.status??`active`),[M,N]=(0,V.useState)([]),[ee,P]=(0,V.useState)(!1),[F,I]=(0,V.useState)(null),[te,ne]=(0,V.useState)(n?.maxTokens??null),[re,R]=(0,V.useState)(n?.contextWindow?.maxInputTokens??null),[ie,ae]=(0,V.useState)(n?.effort??`inherit`),[z,B]=(0,V.useState)(n?.speed??`standard`),[oe,le]=(0,V.useState)(n?.verbosity??`medium`),[ue,H]=(0,V.useState)(typeof n?.temperature==`number`),[U,de]=(0,V.useState)(typeof n?.temperature==`number`?n.temperature:.7),[fe,pe]=(0,V.useState)(typeof n?.topP==`number`),[me,W]=(0,V.useState)(typeof n?.topP==`number`?n.topP:.95),he=f&&A!==p,[ge,ve]=(0,V.useState)(n?.thinking?.enabled??!1),[ye,G]=(0,V.useState)(n?.thinking?.streamThinking??!1),[be,xe]=(0,V.useState)(_e(n?.thinking?.level)?n.thinking.level:Te),K=(0,V.useMemo)(()=>b===`vellum`?E(C):null,[b,C]),q=K?.model??C,Ce=(0,V.useMemo)(()=>b?T(b).find(e=>e.id===q)??null:null,[b,q]),{data:we}=a({...ce({path:{assistant_id:s}}),staleTime:3e4}),Ee=we?.llm?.default?.maxTokens,De=we?.llm?.default?.contextWindow?.maxInputTokens,J=(0,V.useMemo)(()=>Se(b===`vellum`?K?.provider??w(C)??n?.provider??``:b,q),[b,C,q,K,n?.provider]),Y=(0,V.useMemo)(()=>{let e=o??[];if(M.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...M.filter(e=>!t.has(e.name))]},[o,M]),X=(0,V.useMemo)(()=>b?Y.filter(e=>St(e.provider,b)):[],[b,Y]),Oe=O!==``&&!X.some(e=>e.name===O),{handleLabelChange:ke,handleKeyChange:Ae,resetDirty:je,getDirty:Me}=yt(l,h,y),Ne=i(),[Pe,Fe]=(0,V.useState)(!1),[Ie,Le]=(0,V.useState)(null),[Re,ze]=(0,V.useState)(!1);(0,V.useEffect)(()=>{n?.provider_connection===`vellum`&&b===(n?.provider??``)&&o?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&S(x)},[o,b,n]),(0,V.useEffect)(()=>{je(),Fe(!1),Le(null),ze(!1),N([])},[t,e,je]);function Be(e){if(e===b)return;S(e),D(``);let t=Y.filter(t=>St(t.provider,e));k(t.length===1?t[0].name:``),ne(null),R(null),ae(`inherit`),B(`standard`),le(`medium`),H(!1),de(.7),pe(!1),W(.95),ve(!1),G(!1),xe(Te)}function Ve(e){if(k(e),b&&T(b).length===0&&C)if(e===``)new Set(X.flatMap(e=>(e.models??[]).map(e=>e.id))).has(C)||D(``);else{let t=X.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(C)||D(``)}}function He(e){if(e!==C&&(D(e),ne(null),R(null),l===`create`&&e&&!Me())){let{name:t,key:n}=ct(vt(b||void 0,e,X),r);h(t),y(n)}}function Z(e){let t=e.provider;t!==`vellum`&&(N(t=>t.some(t=>t.name===e.name)?t:[...t,e]),S(t),k(e.name),D(``),Fe(!1),Le(null),ze(!0),Ne.invalidateQueries({queryKey:se({path:{assistant_id:s}})}))}let Q=v.trim(),Ue=Q.length===0,We=/\s/.test(v),Ge=l===`create`?r.includes(Q):r.filter(e=>e!==t).includes(Q),Ke=b.length===0,qe=b.length>0&&C.length===0,Je=Ue||We||Ge||Ke||qe,Ye=Ue?`Key is required`:We?`Key cannot contain whitespace`:Ge?`A profile with this key already exists`:null,Xe=!f&&(l===`edit`||Me())&&Ke?`Select a provider`:null;async function Ze(){if(!(Je&&!f)){if(f){if(!he)return;P(!0),I(null);try{await c(Q,{status:`active`},{mode:`merge`})}catch(e){I(L(e)??`Failed to save profile. Please try again.`)}finally{P(!1)}return}P(!0),I(null);try{let e={},t=O===``&&X.length===1?X[0].name:O,r=Oe?``:t,i=b===`vellum`&&await xt(s),a=b===`vellum`?i?x:K?.provider??w(C)??n?.provider??``:b,o=q,u=i?``:r;l===`edit`?(e.label=m.trim()||null,e.description=g.trim()||null,e.provider=a||null,e.model=o||null,e.provider_connection=u||null):(m.trim()&&(e.label=m.trim()),g.trim()&&(e.description=g.trim()),a&&(e.provider=a),o&&(e.model=o),u&&(e.provider_connection=u)),J.maxTokens&&te!==null&&(e.maxTokens=te),J.contextWindow&&re!==null&&(e.contextWindow={maxInputTokens:re}),J.effort&&ie!==`inherit`&&(e.effort=ie),J.speed&&z!==`standard`&&(e.speed=z),J.verbosity&&(e.verbosity=oe),J.temperature&&(ue?e.temperature=U:l===`edit`&&(e.temperature=null)),J.topP&&(fe?e.topP=me:l===`edit`&&(e.topP=null)),J.thinking&&(e.thinking={enabled:ge,...ge?{streamThinking:ye}:{}}),J.thinkingLevel&&be!==`default`&&(e.thinking={enabled:!0,level:be}),(l===`edit`||A!==`active`)&&(e.status=A),await c(Q,e)}catch(e){I(L(e)??`Failed to save profile. Please try again.`)}finally{P(!1)}}}function Qe(){u(`create`),y(``),je()}return{effectiveMode:l,isReadOnly:f,isInvariant:d,hasViewModeChanges:he,label:m,description:g,key:v,provider:b,model:C,providerConnection:O,status:A,saving:ee,saveError:F,keyError:Ye,providerError:Xe,isInvalid:Je,maxTokens:te,contextWindowMaxInputTokens:re,effort:ie,speed:z,verbosity:oe,temperatureEnabled:ue,temperature:U,topPEnabled:fe,topP:me,thinkingEnabled:ge,thinkingStreamThinking:ye,thinkingLevel:be,visibility:J,selectedModel:Ce,defaultMaxOutputTokens:Ee,defaultContextWindowMaxInputTokens:De,effectiveConnections:Y,availableConnectionsForProvider:X,connectionNotFound:Oe,creatingProvider:Pe,pendingCreateProvider:Ie,newProviderNote:Re,setDescription:_,setStatus:j,setMaxTokens:ne,setContextWindowMaxInputTokens:R,setEffort:ae,setSpeed:B,setVerbosity:le,setTemperatureEnabled:H,setTemperature:de,setTopPEnabled:pe,setTopP:W,setThinkingEnabled:ve,setThinkingStreamThinking:G,setThinkingLevel:xe,setCreatingProvider:Fe,setPendingCreateProvider:Le,setNewProviderNote:ze,handleLabelChange:ke,handleKeyChange:Ae,getDirty:Me,handleProviderChange:Be,handleConnectionChange:Ve,handleModelChange:He,handleProviderCreated:Z,setProviderConnection:k,setModel:D,handleSave:Ze,switchToSaveAsNew:Qe}}var wt=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function Tt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function Et(e){let t=Tt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Dt=`pcm-downsample`,Ot=1600,kt=16e3;function At(){return b()?window.vellum?.helper?.dictation:void 0}function jt(){let e=At();return!!e?.transcribe&&!!e.onTranscribed}var $=null,Mt=null;async function Nt(){return $||($=Et(),Mt=$.audioWorklet.addModule(wt)),$.state!==`running`&&await $.resume(),await Mt,$}async function Pt(e,t){try{let n=await Nt(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Dt,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Ot))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var Ft=8e3;async function It(e){let t=At();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await Lt(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),Ft)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function Lt(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,kt).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var Rt=4e3;async function zt(e,t){let n=At();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await Pt(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),Rt)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var Bt=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],Vt=`macos-native`,Ht=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:Vt,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],Ut=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],Wt=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],Gt={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`},Kt=[`vellum`,`gemini`,`openai`],qt={vellum:`Vellum`,gemini:`Gemini`,openai:`OpenAI`};function Jt(e){return e===`vellum`?[...Wt]:Wt.filter(t=>Yt(t)===e)}function Yt(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var Xt=`vellum:ai:imageGenProvider`,Zt=`vellum:ai:imageGenModel`,Qt=`vellum:ai:webSearchProvider`,$t=`vellum:ai:webFetchProvider`,en=`vellum:ai:emailMode`,tn=`vellum:ai:emailByoProvider`,nn=`vellum:voice:ttsProvider`,rn=`vellum:voice:ttsApiKey:`,an=`vellum:voice:ttsVoiceId:`,on=`vellum:voice:sttProvider`,sn=`vellum:voice:sttApiKey:`;function cn({value:e,size:t=`default`,className:n,...r}){let i=t===`compact`;return(0,K.jsxs)(`button`,{type:`button`,className:s(`flex items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left text-[var(--content-default)] transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)]`,i?`h-7 min-w-44 px-2.5 text-body-small-default`:`h-9 w-full px-3 text-body-medium-lighter`,n),...r,children:[(0,K.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e}),(0,K.jsx)(l,{"aria-hidden":!0,className:s(`shrink-0 text-[var(--content-tertiary)]`,i?`h-3 w-3`:`h-3.5 w-3.5`)})]})}var ln={profiles:{},profileOrder:[]};function un(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,V.useState)(ln),[s,c]=(0,V.useState)(t);return t!==s&&(c(t),o(ln)),(0,V.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:ln}export{vt as A,$e as B,jt as C,Tt as D,Et as E,lt as F,Ae as G,ke as H,nt as I,rt as L,mt as M,pt as N,wt as O,dt as P,et as R,Yt as S,It as T,Oe as U,Le as V,je as W,qt as _,Zt as a,Bt as b,on as c,an as d,$t as f,Kt as g,Gt as h,en as i,_t as j,Ct as k,rn as l,Ut as m,cn as n,Xt as o,Qt as p,tn as r,sn as s,un as t,nn as u,Vt as v,zt as w,Jt as x,Ht as y,Qe as z};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{c as n,m as r,p as i}from"./message-content-Beh5mR15.js";import{n as a}from"./resolved-assistants-store-BFI9c7ip.js";import{i as o,o as s,r as c}from"./subagent-store-BOpi4xxB.js";import{C as l,S as u,_ as d,w as f,y as p}from"./site-favicon-B5ilr8wL.js";function m(e,t){if(t===e)return{kind:`identity`};if(e==null)return{kind:`first`};let n=e.length,r=t.length;return r>n&&(n===0||t[0]===e[0]&&t[n-1]===e[n-1])?{kind:`append`,from:n}:r===n&&r>=1&&t[r-1]!==e[r-1]&&t[r-1].id===e[r-1].id&&e[r-1].type===`text`&&t[r-1].type===`text`&&t[r-1].content.length>=e[r-1].content.length&&t[r-1].content.startsWith(e[r-1].content)&&(r===1||t[r-2]===e[r-2])?{kind:`mutate-last`}:{kind:`fallback`}}var h=e(t(),1);function g(e,t){return JSON.stringify(e)===JSON.stringify(t)}function _(e=A){let t=null,n=[],r=[];function i(e){let i=j(e);return t=e,n=i.steps,r=i.toolMeta,{steps:n,toolMeta:r}}function a(a){let o=m(t,a);switch(o.kind){case`identity`:return{steps:n,toolMeta:r};case`first`:return i(a);case`append`:{let i=a.length,s=n.slice(),c=r.slice();for(let t=o.from;t<i;t++)e(s,c,a[t]);return t=a,n=s,r=c,{steps:n,toolMeta:r}}case`mutate-last`:{let i=a.length,o=n.slice(),s=r.slice(),c=o[o.length-1],l;c&&c.kind===`thinking`&&c.detailKey===a[i-1].id&&(l=c,o.pop(),s.pop()),e(o,s,a[i-1]),t=a;let u=o[o.length-1];return l&&u&&g(l,u)?{steps:n,toolMeta:r}:(n=o,r=s,{steps:n,toolMeta:r})}case`fallback`:return i(a)}}return{project:a}}function v(e){let t=(0,h.useRef)(null),n=(0,h.useRef)(null);t.current??=_();let r=t.current.project(e),i=n.current;return i!=null&&i.steps===r.steps&&i.toolMeta===r.toolMeta?i:(n.current=r,r)}var y=160,b=[];function x(e){return r(e.replace(/\s+/g,` `).trim(),y)}function S(e){let t=((e.input&&typeof e.input.url==`string`?e.input.url:``)||e.content||``).trim(),n=t?u(t):``;return n?`Reading ${n}`:`Reading…`}function C(e,t){let n=typeof e==`number`&&Number.isFinite(e)?t-e:0;return n>0?p(n):``}function w(e,t){return{kind:`web_search_error`,title:`Web search failed`,durationLabel:e,errorMessage:x(t.result??t.content)||`Web search failed`,detailKey:t.toolUseId}}function T(e,t){let n=e.toLowerCase();if(!t)return{};switch(n){case`bash`:case`host_bash`:return{command:t};case`str_replace_editor`:case`text_editor`:return{path:t};case`computer`:return{action:t};case`skill`:case`skill_execute`:case`skill_invoke`:case`skill_load`:return{skill:t};case`subagent_spawn`:return{label:t};default:return{}}}function E(e){let t=e.toolName??``,r=e.content??``,i=n(t,e.input??T(t,r));return{kind:`tool`,durationLabel:``,toolCallId:e.toolUseId??``,iconName:i.iconName,title:i.title,info:i.info||r,activity:i.activity,status:`running`}}function D(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.running){if(t.toolUseId){if(r.toolCallId===t.toolUseId)return n;continue}if(!t.toolName||r.toolName===t.toolName)return n}}return-1}function O(e,t,n){return D(e.map((e,n)=>{let r=t[n];return e.kind===`tool`?{toolCallId:e.toolCallId,toolName:r?.toolName??``,running:e.status===`running`}:e.kind===`web_search`?{toolCallId:r?.toolUseId??``,toolName:r?.toolName??``,running:e.title===`Searching the web`}:{toolCallId:``,toolName:r?.toolName??``,running:!1}}),n)}function k(e){switch(e){case`running`:case`pending`:case`awaiting_input`:return`loading`;case`completed`:return`complete`;case`failed`:case`aborted`:case`interrupted`:return`error`;default:return`loading`}}function A(e,t,n){if(n.type===`text`){let r=x(n.content);if(r.length===0)return;e.push({kind:`thinking`,durationLabel:``,text:r,detailKey:n.id}),t.push(void 0);return}if(n.type===`tool_call`){let r=n.toolName??``;if(d.has(r)){if(r===`web_fetch`)e.push({kind:`thinking`,durationLabel:``,text:S(n),detailKey:n.toolUseId}),t.push(void 0);else{let i=n.input&&typeof n.input.query==`string`?n.input.query:n.content||void 0;e.push({kind:`web_search`,query:i,title:`Searching the web`,durationLabel:``,linkCount:0,results:[],detailKey:n.toolUseId}),t.push({startTs:n.timestamp,toolName:r,toolUseId:n.toolUseId})}return}e.push(E(n)),t.push({startTs:n.timestamp,toolName:r});return}if(n.type===`tool_result`){let r=O(e,t,n);if(r===-1)return;let i=e[r],a=t[r]?.startTs,o=C(a,n.timestamp);if(i.kind===`web_search`){if(n.isError){e[r]=w(o,n);return}let t=l(n.result??n.content);e[r]={...i,title:`Searched the web`,query:i.query||n.searchQuery,durationLabel:o,linkCount:t.length,results:t};return}if(i.kind!==`tool`)return;e[r]={...i,status:n.isError?`error`:`completed`,durationLabel:o};return}if(n.type===`error`){let r=O(e,t,n);if(r!==-1){let i=e[r];i.kind===`tool`?e[r]={...i,status:`error`}:i.kind===`web_search`&&(e[r]=w(C(t[r]?.startTs,n.timestamp),n))}let i=x(n.content)||`Subagent error`;e.push({kind:`tool_error`,message:i}),t.push(void 0);return}}function j(e){let t=[],n=[];for(let r of e)A(t,n,r);return{steps:t,toolMeta:n}}function M(e){return!s(e.status)&&o(e)&&e.events.length===0&&!e.detailSettled}function N(e,{steps:t,toolMeta:n}){if(M(e))return{state:`loading`,currentStepTitle:`Loading`,currentStepInfo:e.label,stepCount:``,steps:t,carouselItems:[]};let r=k(e.status),{currentStepTitle:i,currentStepInfo:a}=P(e,t,n);return{state:r,currentStepTitle:i,currentStepInfo:a,stepCount:`${t.length} step${t.length===1?``:`s`}`,steps:t,carouselItems:[]}}function P(e,t,n){let r=e.status===`completed`||e.status===`failed`||e.status===`aborted`||e.status===`interrupted`;if(t.length===0){let t;return t=e.status===`failed`?`Failed`:e.status===`aborted`?`Aborted`:e.status===`interrupted`?`Interrupted`:e.status===`completed`?`Finished`:`Working`,{currentStepTitle:t,currentStepInfo:e.error||e.label}}let a=t[t.length-1];if(a.kind===`thinking`)return{currentStepTitle:r?`Thought`:`Thinking`,currentStepInfo:f(a.text)};if(a.kind===`tool`){if(a.status===`running`)return{currentStepTitle:`Working`,currentStepInfo:a.info};if(!r)return{currentStepTitle:`Finalizing`,currentStepInfo:a.info};let e=n[t.length-1]?.toolName??``;return{currentStepTitle:e?`Used ${i(e)}`:`Done`,currentStepInfo:a.info}}return a.kind===`tool_error`?{currentStepTitle:`Errored`,currentStepInfo:a.message}:a.kind===`web_search`?{currentStepTitle:a.title,currentStepInfo:``}:a.kind===`web_search_error`?{currentStepTitle:a.title,currentStepInfo:a.errorMessage}:{currentStepTitle:``,currentStepInfo:``}}function F(e){let t=c(t=>t.byId[e]),n=a(e=>e.activeAssistantId),r=t!==void 0&&M(t);(0,h.useEffect)(()=>{r&&n&&c.getState().fetchDetailIfNeeded(n,e)},[r,n,e]);let i=v(t?.events??b),o=(0,h.useRef)(null);if(!t)return o.current=null,null;let s=N(t,i),l=o.current;return l!=null&&l.steps===s.steps&&l.state===s.state&&l.currentStepTitle===s.currentStepTitle&&l.currentStepInfo===s.currentStepInfo&&l.stepCount===s.stepCount?l:(o.current=s,s)}function I(e,t,r){if(r.type===`text`){if((r.content??``).trim().length===0)return;e.push({toolCallId:r.id,toolName:``,title:`Thought`,activity:``,input:{},status:`completed`,durationLabel:``,kind:`thinking`,thinkingText:r.content}),t.push({startTs:r.timestamp,running:!1});return}if(r.type===`tool_call`){let i=r.toolUseId??``;if(!i)return;let a=r.toolName??``;if(a===`web_search`){let n=r.input&&typeof r.input.query==`string`?r.input.query:r.content||void 0;e.push({toolCallId:i,toolName:a,title:`Searched the web`,activity:``,input:r.input??{},status:`running`,durationLabel:``,kind:`web_search`,searchQuery:n,searchResults:[]}),t.push({startTs:r.timestamp,running:!0});return}let o=n(a,r.input??T(a,r.content??``));e.push({toolCallId:i,toolName:a,title:o.title,activity:o.activity,input:r.input??{},status:`running`,durationLabel:``,kind:`tool`}),t.push({startTs:r.timestamp,running:!0});return}if(r.type===`tool_result`||r.type===`error`){let n=D(e.map((e,n)=>({toolCallId:e.toolCallId,toolName:e.toolName,running:t[n].running})),r);if(n===-1)return;let i=e[n],a=t[n].startTs,o=C(a,r.timestamp);e[n]=i.kind===`web_search`?{...i,status:r.isError?`error`:`completed`,durationLabel:o,searchQuery:i.searchQuery||r.searchQuery,searchResults:r.isError?[]:l(r.result??r.content),result:r.isError?r.result??r.content:void 0}:{...i,result:r.result??r.content,status:r.isError?`error`:`completed`,durationLabel:o},t[n].running=!1}}export{m as i,F as n,v as r,I as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{c as n,m as r,p as i}from"./message-content-Beh5mR15.js";import{n as a}from"./resolved-assistants-store-BFI9c7ip.js";import{i as o,o as s,r as c}from"./subagent-store-9SqF-NFa.js";import{C as l,S as u,_ as d,w as f,y as p}from"./site-favicon-B3DMFtr3.js";function m(e,t){if(t===e)return{kind:`identity`};if(e==null)return{kind:`first`};let n=e.length,r=t.length;return r>n&&(n===0||t[0]===e[0]&&t[n-1]===e[n-1])?{kind:`append`,from:n}:r===n&&r>=1&&t[r-1]!==e[r-1]&&t[r-1].id===e[r-1].id&&e[r-1].type===`text`&&t[r-1].type===`text`&&t[r-1].content.length>=e[r-1].content.length&&t[r-1].content.startsWith(e[r-1].content)&&(r===1||t[r-2]===e[r-2])?{kind:`mutate-last`}:{kind:`fallback`}}var h=e(t(),1);function g(e,t){return JSON.stringify(e)===JSON.stringify(t)}function _(e=A){let t=null,n=[],r=[];function i(e){let i=j(e);return t=e,n=i.steps,r=i.toolMeta,{steps:n,toolMeta:r}}function a(a){let o=m(t,a);switch(o.kind){case`identity`:return{steps:n,toolMeta:r};case`first`:return i(a);case`append`:{let i=a.length,s=n.slice(),c=r.slice();for(let t=o.from;t<i;t++)e(s,c,a[t]);return t=a,n=s,r=c,{steps:n,toolMeta:r}}case`mutate-last`:{let i=a.length,o=n.slice(),s=r.slice(),c=o[o.length-1],l;c&&c.kind===`thinking`&&c.detailKey===a[i-1].id&&(l=c,o.pop(),s.pop()),e(o,s,a[i-1]),t=a;let u=o[o.length-1];return l&&u&&g(l,u)?{steps:n,toolMeta:r}:(n=o,r=s,{steps:n,toolMeta:r})}case`fallback`:return i(a)}}return{project:a}}function v(e){let t=(0,h.useRef)(null),n=(0,h.useRef)(null);t.current??=_();let r=t.current.project(e),i=n.current;return i!=null&&i.steps===r.steps&&i.toolMeta===r.toolMeta?i:(n.current=r,r)}var y=160,b=[];function x(e){return r(e.replace(/\s+/g,` `).trim(),y)}function S(e){let t=((e.input&&typeof e.input.url==`string`?e.input.url:``)||e.content||``).trim(),n=t?u(t):``;return n?`Reading ${n}`:`Reading…`}function C(e,t){let n=typeof e==`number`&&Number.isFinite(e)?t-e:0;return n>0?p(n):``}function w(e,t){return{kind:`web_search_error`,title:`Web search failed`,durationLabel:e,errorMessage:x(t.result??t.content)||`Web search failed`,detailKey:t.toolUseId}}function T(e,t){let n=e.toLowerCase();if(!t)return{};switch(n){case`bash`:case`host_bash`:return{command:t};case`str_replace_editor`:case`text_editor`:return{path:t};case`computer`:return{action:t};case`skill`:case`skill_execute`:case`skill_invoke`:case`skill_load`:return{skill:t};case`subagent_spawn`:return{label:t};default:return{}}}function E(e){let t=e.toolName??``,r=e.content??``,i=n(t,e.input??T(t,r));return{kind:`tool`,durationLabel:``,toolCallId:e.toolUseId??``,iconName:i.iconName,title:i.title,info:i.info||r,activity:i.activity,status:`running`}}function D(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.running){if(t.toolUseId){if(r.toolCallId===t.toolUseId)return n;continue}if(!t.toolName||r.toolName===t.toolName)return n}}return-1}function O(e,t,n){return D(e.map((e,n)=>{let r=t[n];return e.kind===`tool`?{toolCallId:e.toolCallId,toolName:r?.toolName??``,running:e.status===`running`}:e.kind===`web_search`?{toolCallId:r?.toolUseId??``,toolName:r?.toolName??``,running:e.title===`Searching the web`}:{toolCallId:``,toolName:r?.toolName??``,running:!1}}),n)}function k(e){switch(e){case`running`:case`pending`:case`awaiting_input`:return`loading`;case`completed`:return`complete`;case`failed`:case`aborted`:case`interrupted`:return`error`;default:return`loading`}}function A(e,t,n){if(n.type===`text`){let r=x(n.content);if(r.length===0)return;e.push({kind:`thinking`,durationLabel:``,text:r,detailKey:n.id}),t.push(void 0);return}if(n.type===`tool_call`){let r=n.toolName??``;if(d.has(r)){if(r===`web_fetch`)e.push({kind:`thinking`,durationLabel:``,text:S(n),detailKey:n.toolUseId}),t.push(void 0);else{let i=n.input&&typeof n.input.query==`string`?n.input.query:n.content||void 0;e.push({kind:`web_search`,query:i,title:`Searching the web`,durationLabel:``,linkCount:0,results:[],detailKey:n.toolUseId}),t.push({startTs:n.timestamp,toolName:r,toolUseId:n.toolUseId})}return}e.push(E(n)),t.push({startTs:n.timestamp,toolName:r});return}if(n.type===`tool_result`){let r=O(e,t,n);if(r===-1)return;let i=e[r],a=t[r]?.startTs,o=C(a,n.timestamp);if(i.kind===`web_search`){if(n.isError){e[r]=w(o,n);return}let t=l(n.result??n.content);e[r]={...i,title:`Searched the web`,query:i.query||n.searchQuery,durationLabel:o,linkCount:t.length,results:t};return}if(i.kind!==`tool`)return;e[r]={...i,status:n.isError?`error`:`completed`,durationLabel:o};return}if(n.type===`error`){let r=O(e,t,n);if(r!==-1){let i=e[r];i.kind===`tool`?e[r]={...i,status:`error`}:i.kind===`web_search`&&(e[r]=w(C(t[r]?.startTs,n.timestamp),n))}let i=x(n.content)||`Subagent error`;e.push({kind:`tool_error`,message:i}),t.push(void 0);return}}function j(e){let t=[],n=[];for(let r of e)A(t,n,r);return{steps:t,toolMeta:n}}function M(e){return!s(e.status)&&o(e)&&e.events.length===0&&!e.detailSettled}function N(e,{steps:t,toolMeta:n}){if(M(e))return{state:`loading`,currentStepTitle:`Loading`,currentStepInfo:e.label,stepCount:``,steps:t,carouselItems:[]};let r=k(e.status),{currentStepTitle:i,currentStepInfo:a}=P(e,t,n);return{state:r,currentStepTitle:i,currentStepInfo:a,stepCount:`${t.length} step${t.length===1?``:`s`}`,steps:t,carouselItems:[]}}function P(e,t,n){let r=e.status===`completed`||e.status===`failed`||e.status===`aborted`||e.status===`interrupted`;if(t.length===0){let t;return t=e.status===`failed`?`Failed`:e.status===`aborted`?`Aborted`:e.status===`interrupted`?`Interrupted`:e.status===`completed`?`Finished`:`Working`,{currentStepTitle:t,currentStepInfo:e.error||e.label}}let a=t[t.length-1];if(a.kind===`thinking`)return{currentStepTitle:r?`Thought`:`Thinking`,currentStepInfo:f(a.text)};if(a.kind===`tool`){if(a.status===`running`)return{currentStepTitle:`Working`,currentStepInfo:a.info};if(!r)return{currentStepTitle:`Finalizing`,currentStepInfo:a.info};let e=n[t.length-1]?.toolName??``;return{currentStepTitle:e?`Used ${i(e)}`:`Done`,currentStepInfo:a.info}}return a.kind===`tool_error`?{currentStepTitle:`Errored`,currentStepInfo:a.message}:a.kind===`web_search`?{currentStepTitle:a.title,currentStepInfo:``}:a.kind===`web_search_error`?{currentStepTitle:a.title,currentStepInfo:a.errorMessage}:{currentStepTitle:``,currentStepInfo:``}}function F(e){let t=c(t=>t.byId[e]),n=a(e=>e.activeAssistantId),r=t!==void 0&&M(t);(0,h.useEffect)(()=>{r&&n&&c.getState().fetchDetailIfNeeded(n,e)},[r,n,e]);let i=v(t?.events??b),o=(0,h.useRef)(null);if(!t)return o.current=null,null;let s=N(t,i),l=o.current;return l!=null&&l.steps===s.steps&&l.state===s.state&&l.currentStepTitle===s.currentStepTitle&&l.currentStepInfo===s.currentStepInfo&&l.stepCount===s.stepCount?l:(o.current=s,s)}function I(e,t,r){if(r.type===`text`){if((r.content??``).trim().length===0)return;e.push({toolCallId:r.id,toolName:``,title:`Thought`,activity:``,input:{},status:`completed`,durationLabel:``,kind:`thinking`,thinkingText:r.content}),t.push({startTs:r.timestamp,running:!1});return}if(r.type===`tool_call`){let i=r.toolUseId??``;if(!i)return;let a=r.toolName??``;if(a===`web_search`){let n=r.input&&typeof r.input.query==`string`?r.input.query:r.content||void 0;e.push({toolCallId:i,toolName:a,title:`Searched the web`,activity:``,input:r.input??{},status:`running`,durationLabel:``,kind:`web_search`,searchQuery:n,searchResults:[]}),t.push({startTs:r.timestamp,running:!0});return}let o=n(a,r.input??T(a,r.content??``));e.push({toolCallId:i,toolName:a,title:o.title,activity:o.activity,input:r.input??{},status:`running`,durationLabel:``,kind:`tool`}),t.push({startTs:r.timestamp,running:!0});return}if(r.type===`tool_result`||r.type===`error`){let n=D(e.map((e,n)=>({toolCallId:e.toolCallId,toolName:e.toolName,running:t[n].running})),r);if(n===-1)return;let i=e[n],a=t[n].startTs,o=C(a,r.timestamp);e[n]=i.kind===`web_search`?{...i,status:r.isError?`error`:`completed`,durationLabel:o,searchQuery:i.searchQuery||r.searchQuery,searchResults:r.isError?[]:l(r.result??r.content),result:r.isError?r.result??r.content:void 0}:{...i,result:r.result??r.content,status:r.isError?`error`:`completed`,durationLabel:o},t[n].running=!1}}export{m as i,F as n,v as r,I as t};
@@ -1 +1 @@
1
- import{t as e}from"./createLucideIcon-C1mdGPB9.js";import{r as t}from"./utils-CAZUrJMu.js";var n=e(`bookmark`,[[`path`,{d:`M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z`,key:`oz39mx`}]]),r=`0.8.1`;function i(e){return t(r,e)}export{n,i as t};
1
+ import{t as e}from"./createLucideIcon-C1mdGPB9.js";import{r as t}from"./utils-CVoSWh7U.js";var n=e(`bookmark`,[[`path`,{d:`M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z`,key:`oz39mx`}]]),r=`0.8.1`;function i(e){return t(r,e)}export{n,i as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./utils-CVoSWh7U.js";var t=`0.10.8`;function n(n){return e(t,n)}export{n as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{L as n,t as r}from"./use-transcript-messages-vw2Hogaj.js";var i=e(t(),1);function a(e){let t=r();return(0,i.useMemo)(()=>{if(e)return t.find(t=>n(t).includes(e))},[t,e])}export{a as t};