@vellumai/web 0.10.7-staging.1 → 0.10.7-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 (174) hide show
  1. package/dist/assets/{AnimatePresence-CmYDLs_U.js → AnimatePresence-Oxz4BTMX.js} +1 -1
  2. package/dist/assets/{BundleConfirmPage-BBfjDFkJ.js → BundleConfirmPage-CASo0dJB.js} +1 -1
  3. package/dist/assets/{about-page-DuS6wGUi.js → about-page-m20KWWnD.js} +1 -1
  4. package/dist/assets/{account-page-BE_-T9sb.js → account-page-C9kqnBZO.js} +1 -1
  5. package/dist/assets/{acp-run-detail-panel-MrPfWIKh.js → acp-run-detail-panel-ejAbzWHh.js} +1 -1
  6. package/dist/assets/{add-credits-modal-C91gOON5.js → add-credits-modal-wQTjoJNa.js} +1 -1
  7. package/dist/assets/{advanced-page-D7LhNJ6i.js → advanced-page-DbX0io-N.js} +1 -1
  8. package/dist/assets/{ai-page-BsawXNY5.js → ai-page-BTlZJXAR.js} +1 -1
  9. package/dist/assets/{animated-avatar-DmRY8KgY.js → animated-avatar-KEsxQUWX.js} +1 -1
  10. package/dist/assets/{api-DqXotrgH.js → api-DXLi4DU7.js} +1 -1
  11. package/dist/assets/api-bHQ_ZhgO.js +1 -0
  12. package/dist/assets/{api-key-screen-P9WyBwmg.js → api-key-screen-BjgFbffU.js} +1 -1
  13. package/dist/assets/{archive-page-B8nce6tC.js → archive-page-DzmwifQT.js} +1 -1
  14. package/dist/assets/{assistant-status-panel-Cl9p2-kW.js → assistant-status-panel-boGM54mS.js} +1 -1
  15. package/dist/assets/auth-store-CI4EhvE5.js +2 -0
  16. package/dist/assets/{background-task-detail-panel-B1QCVn0B.js → background-task-detail-panel-H6SgrcwV.js} +1 -1
  17. package/dist/assets/{billing-page-CYQeoFy8.js → billing-page-CSKtNdRU.js} +3 -3
  18. package/dist/assets/{bookmarks-page-CAU2a6U9.js → bookmarks-page-BagxvDUo.js} +1 -1
  19. package/dist/assets/{browser-C1qhxIRO.js → browser-CP3oEvln.js} +2 -2
  20. package/dist/assets/{build-state-Bdkg8KmL.js → build-state-D96tiPPg.js} +1 -1
  21. package/dist/assets/{channels-page-route-POtBBuBk.js → channels-page-route-lCrN_Eb7.js} +1 -1
  22. package/dist/assets/{client-identity-BsH7W9OY.js → client-identity-jhypHe7Y.js} +1 -1
  23. package/dist/assets/{command-palette-zm8MLLsB.js → command-palette-Cilb3mV5.js} +1 -1
  24. package/dist/assets/{command-palette-window-page-BSin67xX.js → command-palette-window-page-BuwBHkS3.js} +1 -1
  25. package/dist/assets/{community-page-CQ0-ffoM.js → community-page-D4Ndx5yu.js} +1 -1
  26. package/dist/assets/{connect-page-7ttzpPF7.js → connect-page-By7gD4Gi.js} +1 -1
  27. package/dist/assets/{consent-controls-Bz7B3N11.js → consent-controls-J9UujLtO.js} +1 -1
  28. package/dist/assets/{contacts-page-route-BzHLPFPI.js → contacts-page-route-BhYOstuw.js} +1 -1
  29. package/dist/assets/debug-page-DxE07_BI.js +4 -0
  30. package/dist/assets/{deploy-dialogs-CHEK1jmn.js → deploy-dialogs-RKq6sd1W.js} +1 -1
  31. package/dist/assets/{detail-panel-stop-button-60yx5hed.js → detail-panel-stop-button-CB2htTrF.js} +1 -1
  32. package/dist/assets/{detail-shell-IAIYU5Nw.js → detail-shell-q6GjKJ6F.js} +2 -2
  33. package/dist/assets/{developer-page-BCxe1J2k.js → developer-page-Bp_bG62w.js} +1 -1
  34. package/dist/assets/{devices-page-DVoQN6vT.js → devices-page-B_fKe-cL.js} +1 -1
  35. package/dist/assets/{diagnostics-BeHaQeqH.js → diagnostics-BUlVBxem.js} +1 -1
  36. package/dist/assets/{dictation-overlay-page-C9wwzBCi.js → dictation-overlay-page-W4zqYMu-.js} +1 -1
  37. package/dist/assets/{document-viewer-page-BsFewvP7.js → document-viewer-page-Dj4eF78D.js} +1 -1
  38. package/dist/assets/{earn-credits-modal-DADnKt6H.js → earn-credits-modal-YMvlT2Ib.js} +1 -1
  39. package/dist/assets/{emails-page-D4hD3UiR.js → emails-page-C2qpYYkU.js} +1 -1
  40. package/dist/assets/{esm-DmxjBDA5.js → esm-BZAWL4X4.js} +2 -2
  41. package/dist/assets/{esm-RwTVWiuE.js → esm-CuAK_cYT.js} +2 -2
  42. package/dist/assets/{esm-C_xzGoth.js → esm-DnCc4uNb.js} +2 -2
  43. package/dist/assets/{esm-BW0ibkil.js → esm-_LZD1lMg.js} +2 -2
  44. package/dist/assets/{esm-C89a_qa6.js → esm-fycmFY2i.js} +2 -2
  45. package/dist/assets/{file-editor-B-psPRqR.js → file-editor-XdAW-U3o.js} +1 -1
  46. package/dist/assets/{general-page-DNcKLEpX.js → general-page-BdQz1yqd.js} +1 -1
  47. package/dist/assets/hatching-screen-DshvxRQO.js +1 -0
  48. package/dist/assets/{home-page-route-D6K-xfn8.js → home-page-route-DQp5yQ2X.js} +1 -1
  49. package/dist/assets/{hosting-screen-B4EAxH_R.js → hosting-screen-CVX9EEtD.js} +1 -1
  50. package/dist/assets/{identity-page-route-Dxpm1a6v.js → identity-page-route-DxYmA5uU.js} +1 -1
  51. package/dist/assets/{index-h-RcC6AV.js → index-DQkD5WCi.js} +22 -22
  52. package/dist/assets/{inspect-page-Dl9dJlRl.js → inspect-page-B3GxcfyP.js} +3 -3
  53. package/dist/assets/{install-HiQhCico.js → install-DXEYsOZM.js} +1 -1
  54. package/dist/assets/{integrations-page-ykDN_390.js → integrations-page-BvIHNsf8.js} +1 -1
  55. package/dist/assets/{intelligence-layout-CB6UjSlD.js → intelligence-layout-BHQCWwlo.js} +1 -1
  56. package/dist/assets/{keyboard-shortcuts-page-C_HSddWZ.js → keyboard-shortcuts-page-BNK7yZqf.js} +1 -1
  57. package/dist/assets/{library-detail-page-CyzOHX9v.js → library-detail-page-DV3DzEA1.js} +1 -1
  58. package/dist/assets/{library-page-B5EWtFgp.js → library-page-BXn710XB.js} +1 -1
  59. package/dist/assets/local-mode-YoUYEn7C.js +39 -0
  60. package/dist/assets/{login-flow-BGsTwM6S.js → login-flow-CFhW2AHB.js} +1 -1
  61. package/dist/assets/{login-page-jcxb0I-R.js → login-page-DVozReou.js} +1 -1
  62. package/dist/assets/{logout-page-CDRNf_VT.js → logout-page-mbOpAsy9.js} +1 -1
  63. package/dist/assets/{logs-layout-BMiLmNJ1.js → logs-layout-Cv6nMdHD.js} +1 -1
  64. package/dist/assets/{memory-router-playground-page-CYb9mWNV.js → memory-router-playground-page-C34xELyQ.js} +1 -1
  65. package/dist/assets/{messages-DBpQngan.js → messages-3teOY9CI.js} +1 -1
  66. package/dist/assets/{metric-card-DCHJ3KOy.js → metric-card-DQKsGfEB.js} +1 -1
  67. package/dist/assets/{mobile-sidebar-drawer-CajFGrXu.js → mobile-sidebar-drawer-B1beyKRx.js} +1 -1
  68. package/dist/assets/{native-biometric-BnmJczno.js → native-biometric-uwPAd9lh.js} +2 -2
  69. package/dist/assets/{native-file-BXeEnGEz.js → native-file-B1HraJR0.js} +2 -2
  70. package/dist/assets/{notifications-page-DrMpl5CP.js → notifications-page-UMDWLPpt.js} +1 -1
  71. package/dist/assets/{oauth-complete-page-CMgdSTr6.js → oauth-complete-page-DnnHgVst.js} +1 -1
  72. package/dist/assets/{oauth-popup-complete-page-rhHc1r35.js → oauth-popup-complete-page-ClUeB7Y8.js} +1 -1
  73. package/dist/assets/{pairing-page-ncc1BI7T.js → pairing-page-Rsno8a1S.js} +1 -1
  74. package/dist/assets/{platform-detection-BeYxHNWy.js → platform-detection-CY-O-Rjc.js} +1 -1
  75. package/dist/assets/{platform-loopback-page-Dguk34tJ.js → platform-loopback-page-BwMcw0M2.js} +1 -1
  76. package/dist/assets/{plugin-detail-page-cwmsCoex.js → plugin-detail-page-BCbgwXnr.js} +1 -1
  77. package/dist/assets/{plugins-page-38MmVFQv.js → plugins-page-B9HBogOS.js} +1 -1
  78. package/dist/assets/{prechat-route-CLPN7c4G.js → prechat-route-B650w5Kw.js} +1 -1
  79. package/dist/assets/{prefs-BWxDWusW.js → prefs-Bo9fZ56w.js} +1 -1
  80. package/dist/assets/{privacy-page-DcpVbwwn.js → privacy-page-Ca7O4f9-.js} +1 -1
  81. package/dist/assets/{privacy-screen-D7S9U4mX.js → privacy-screen-2bUcs0CE.js} +1 -1
  82. package/dist/assets/{provider-callback-page-BwwsD_Ic.js → provider-callback-page-B0RNLXla.js} +1 -1
  83. package/dist/assets/{provider-signup-page-PKwRjxi-.js → provider-signup-page-CLgombsV.js} +1 -1
  84. package/dist/assets/{quick-input-page-Djdfcs-z.js → quick-input-page-DAoWLetZ.js} +1 -1
  85. package/dist/assets/{remote-gateway-session-YFtricXJ.js → remote-gateway-session-uLbl0yn7.js} +1 -1
  86. package/dist/assets/{research-mock-page-Cq114eTd.js → research-mock-page-Co74PHWK.js} +1 -1
  87. package/dist/assets/research-onboarding-persistence-B8R5Wv2v.js +1 -0
  88. package/dist/assets/research-onboarding-route-CuQ_LNlc.js +61 -0
  89. package/dist/assets/{resolved-assistants-store-BOajMG3X.js → resolved-assistants-store-DccydJ5N.js} +1 -1
  90. package/dist/assets/{review-terms-screen-DvVQe8yV.js → review-terms-screen-92ghcjAB.js} +1 -1
  91. package/dist/assets/{security-page-CDLZUU_X.js → security-page-DCRMmtyF.js} +1 -1
  92. package/dist/assets/select-assistant-screen-Dxq2KTj5.js +1 -0
  93. package/dist/assets/{settings-layout-CpMZCYQZ.js → settings-layout-CwoAvm9H.js} +1 -1
  94. package/dist/assets/{share-feedback-modal-BvvcIcbi.js → share-feedback-modal-_l0Q8X57.js} +1 -1
  95. package/dist/assets/{sidebar-tree-DrLFaiga.js → sidebar-tree-lIvPQT7t.js} +1 -1
  96. package/dist/assets/{signup-page-BKpceyMw.js → signup-page-940ppwb-.js} +1 -1
  97. package/dist/assets/{signup-shell-OBT4B7na.js → signup-shell-C9HJHs_-.js} +1 -1
  98. package/dist/assets/{skills-page-iiWtmc3_.js → skills-page-HnYQOSbb.js} +1 -1
  99. package/dist/assets/{sounds-page-BIJo2HkY.js → sounds-page-B23KceEa.js} +1 -1
  100. package/dist/assets/{subagent-detail-panel-o9yaoUJ2.js → subagent-detail-panel-D1XRi94W.js} +1 -1
  101. package/dist/assets/{subagent-store-4h5V2lNX.js → subagent-store-DjUgx1D2.js} +1 -1
  102. package/dist/assets/{system-events-page-Bgxe8yL0.js → system-events-page-CGdTU-4D.js} +1 -1
  103. package/dist/assets/{tiptap-document-editor-D07QVyAc.js → tiptap-document-editor-BbXpVjaU.js} +1 -1
  104. package/dist/assets/{tool-detail-panel-BwMbhT4B.js → tool-detail-panel-CPt_D__H.js} +1 -1
  105. package/dist/assets/{upgrade-cancel-page-B1URPK6b.js → upgrade-cancel-page-CmO1zIzi.js} +1 -1
  106. package/dist/assets/{upgrade-success-page-IOZFtpxu.js → upgrade-success-page-C3jsuRzb.js} +1 -1
  107. package/dist/assets/{usage-page-DaKLVOUm.js → usage-page-DNRUI7CG.js} +1 -1
  108. package/dist/assets/{use-active-assistant-id-C_JDjGTU.js → use-active-assistant-id-BBHOMQFe.js} +1 -1
  109. package/dist/assets/use-is-org-ready-Dtge_dC5.js +1 -0
  110. package/dist/assets/{use-onboarding-login-D2THX3c2.js → use-onboarding-login-9378MpEq.js} +1 -1
  111. package/dist/assets/{use-reduced-motion-Bs2JODRV.js → use-reduced-motion-DUPDDLHh.js} +1 -1
  112. package/dist/assets/{use-setup-channel-param-gWFJDXEW.js → use-setup-channel-param-CUmdm0BY.js} +1 -1
  113. package/dist/assets/{use-skill-categories-UL_R-V1J.js → use-skill-categories-sGNRgUGk.js} +1 -1
  114. package/dist/assets/{voice-page-9pd-_aoI.js → voice-page-BcKHI1wy.js} +1 -1
  115. package/dist/assets/{weather-forecast-display-Db4yytVI.js → weather-forecast-display-Bnc4vcqX.js} +1 -1
  116. package/dist/assets/{web-Rmvxj1hJ.js → web-C_gIgYOE.js} +1 -1
  117. package/dist/assets/{welcome-screen-wJ_HBEmd.js → welcome-screen-KdInyBD-.js} +1 -1
  118. package/dist/assets/{workflow-detail-panel-Bu3BYRR-.js → workflow-detail-panel-D5nK0F1W.js} +1 -1
  119. package/dist/assets/{workspace-page-U_QWaNuQ.js → workspace-page-aYfZcUbB.js} +1 -1
  120. package/dist/index.html +33 -32
  121. package/package.json +1 -1
  122. package/dist/assets/api-0e_UoYfV.js +0 -1
  123. package/dist/assets/auth-store-DgOhGrxy.js +0 -2
  124. package/dist/assets/debug-page-BqT5zsyk.js +0 -4
  125. package/dist/assets/hatching-screen-BrViWxKb.js +0 -1
  126. package/dist/assets/local-mode-BKjasCuE.js +0 -39
  127. package/dist/assets/research-onboarding-route-jcqgVHP5.js +0 -61
  128. package/dist/assets/select-assistant-screen-MRulU9CV.js +0 -1
  129. package/dist/assets/use-is-org-ready-DB20AlbJ.js +0 -1
  130. /package/dist/assets/{a2a-invite-C491Ywd1.js → a2a-invite-CQMqpPDZ.js} +0 -0
  131. /package/dist/assets/{account-shell-5gis0r9I.js → account-shell-BSwEFNTM.js} +0 -0
  132. /package/dist/assets/{app-info-BsHofcBL.js → app-info-BNPvryVV.js} +0 -0
  133. /package/dist/assets/{avatar-bundled-components-vcdejfQE.js → avatar-bundled-components-DQodAnJD.js} +0 -0
  134. /package/dist/assets/{build.umd-Bc0pcg_1.js → build.umd-C5MOmzrf.js} +0 -0
  135. /package/dist/assets/{by-tool-use-id-index-BJXnd5Qe.js → by-tool-use-id-index-h0TggD-a.js} +0 -0
  136. /package/dist/assets/{composer-focus-BFE2rR8u.js → composer-focus-BBTBdAab.js} +0 -0
  137. /package/dist/assets/{contacts-gateway-Bu3ZSOcX.js → contacts-gateway-jQhZqbXH.js} +0 -0
  138. /package/dist/assets/{danger-zone-redirect-page-8XaJR5xV.js → danger-zone-redirect-page-RdZGvrN7.js} +0 -0
  139. /package/dist/assets/{definitions-C6k0EQJc.js → definitions-CJ7YHLIq.js} +0 -0
  140. /package/dist/assets/{detail-card-BbMgE_Cg.js → detail-card-CnahmiAd.js} +0 -0
  141. /package/dist/assets/{edit-chat-session-BLO0v3Pn.js → edit-chat-session-phEigSQo.js} +0 -0
  142. /package/dist/assets/{emoji-catalog-data-D4AV77ax.js → emoji-catalog-data-hHp74TCA.js} +0 -0
  143. /package/dist/assets/{environment-store-BhzMRyLQ.js → environment-store-B29S7tiK.js} +0 -0
  144. /package/dist/assets/{esm-DugOQgm_.js → esm-hkF3aX28.js} +0 -0
  145. /package/dist/assets/{format-date-C-eCaBOj.js → format-date-CLlHK5gl.js} +0 -0
  146. /package/dist/assets/{format-file-size-Cnq-CdFe.js → format-file-size-BfZOpPdu.js} +0 -0
  147. /package/dist/assets/{haptics-CZP4j_TX.js → haptics-CABfN3Hg.js} +0 -0
  148. /package/dist/assets/{llm-dimension-DMXIDBqX.js → llm-dimension-CgXjHNj6.js} +0 -0
  149. /package/dist/assets/{mutation-error-BTY0fPN-.js → mutation-error-DITUXbSQ.js} +0 -0
  150. /package/dist/assets/{native-deep-link-Dd6T5Ttd.js → native-deep-link-C13QIbW2.js} +0 -0
  151. /package/dist/assets/{onboarding-step-layout-CqsxCaSG.js → onboarding-step-layout-QhoZ4RKu.js} +0 -0
  152. /package/dist/assets/{page-shell-iZ_OsSE1.js → page-shell-CejvYP6I.js} +0 -0
  153. /package/dist/assets/{password-reset-page-Dk_n7nsN.js → password-reset-page-BJtjGZ_1.js} +0 -0
  154. /package/dist/assets/{pdf-CIN5tubF.js → pdf-DGDlrU1i.js} +0 -0
  155. /package/dist/assets/{plugins-surface-BChUptEg.js → plugins-surface-DYk9FmM2.js} +0 -0
  156. /package/dist/assets/{prechat-names-r2l4SHE1.js → prechat-names-BX9ToPj8.js} +0 -0
  157. /package/dist/assets/{provider-key-D8DpqLRN.js → provider-key-CVj0dGLW.js} +0 -0
  158. /package/dist/assets/{proxy-CcvD-YbW.js → proxy-CheNMUr6.js} +0 -0
  159. /package/dist/assets/{public-asset-CsdLlNtA.js → public-asset-BpAVsx77.js} +0 -0
  160. /package/dist/assets/{schedules-DO4z4zs2.js → schedules-D7EefqdS.js} +0 -0
  161. /package/dist/assets/{setting-row-DAnTCHDc.js → setting-row-D9Jbc5pM.js} +0 -0
  162. /package/dist/assets/{status-badge-pill-Bv4itxJX.js → status-badge-pill-DUcVAyfr.js} +0 -0
  163. /package/dist/assets/{step-indicator-dots-DKLSzjtH.js → step-indicator-dots-DzT4WVOT.js} +0 -0
  164. /package/dist/assets/{system-events-redirect-page-NfIzsj0C.js → system-events-redirect-page-aRRRoLJI.js} +0 -0
  165. /package/dist/assets/{usage-window-Bqypb8ID.js → usage-window-wP92lK6k.js} +0 -0
  166. /package/dist/assets/{web-BUGodMtY.js → web-Bifc0CyQ.js} +0 -0
  167. /package/dist/assets/{web-CPA2j823.js → web-C6JBS2jv.js} +0 -0
  168. /package/dist/assets/{web-BB-7MTUi.js → web-CAGeGBel.js} +0 -0
  169. /package/dist/assets/{web-BXkXNijf.js → web-CCRYoYsf.js} +0 -0
  170. /package/dist/assets/{web-Baa9ONYD.js → web-D-9O_l_z.js} +0 -0
  171. /package/dist/assets/{web-StWKv8EX.js → web-DKKX1zUX.js} +0 -0
  172. /package/dist/assets/{workflow-status-C3wba8AX.js → workflow-status-CHd73wxx.js} +0 -0
  173. /package/dist/assets/{xterm-DuaDV9d-.js → xterm-ClHs86Ut.js} +0 -0
  174. /package/dist/assets/{xterm-addon-fit-BvmkeiTd.js → xterm-addon-fit-B-HVOsbO.js} +0 -0
@@ -1 +1 @@
1
- import{n as e,r as t}from"./dist-C3LFhPgk2.js";import{n}from"./definitions-C6k0EQJc.js";function r(e){let t=e.split(`/`).filter(e=>e!==`.`),n=[];return t.forEach(e=>{e===`..`&&n.length>0&&n[n.length-1]!==`..`?n.pop():n.push(e)}),n.join(`/`)}function i(e,t){e=r(e),t=r(t);let n=e.split(`/`),i=t.split(`/`);return e!==t&&n.every((e,t)=>e===i[t])}var a=class r extends e{constructor(){super(...arguments),this.DB_VERSION=1,this.DB_NAME=`Disc`,this._writeCmds=[`add`,`put`,`delete`],this.downloadFile=async e=>{let n=t(e,e.webFetchExtra),r=await fetch(e.url,n),i;if(!e.progress)i=await r.blob();else if(!r?.body)i=new Blob;else{let t=r.body.getReader(),n=0,a=[],o=r.headers.get(`content-type`),s=parseInt(r.headers.get(`content-length`)||`0`,10);for(;;){let{done:r,value:i}=await t.read();if(r)break;a.push(i),n+=i?.length||0;let o={url:e.url,bytes:n,contentLength:s};this.notifyListeners(`progress`,o)}let c=new Uint8Array(n),l=0;for(let e of a)e!==void 0&&(c.set(e,l),l+=e.length);i=new Blob([c.buffer],{type:o||void 0})}return{path:(await this.writeFile({path:e.path,directory:e.directory??void 0,recursive:e.recursive??!1,data:i})).uri,blob:i}}}readFileInChunks(e,t){throw this.unavailable(`Method not implemented.`)}async initDb(){if(this._db!==void 0)return this._db;if(!(`indexedDB`in window))throw this.unavailable(`This browser doesn't support IndexedDB`);return new Promise((e,t)=>{let n=indexedDB.open(this.DB_NAME,this.DB_VERSION);n.onupgradeneeded=r.doUpgrade,n.onsuccess=()=>{this._db=n.result,e(n.result)},n.onerror=()=>t(n.error),n.onblocked=()=>{console.warn(`db blocked`)}})}static doUpgrade(e){let t=e.target.result;switch(e.oldVersion){default:t.objectStoreNames.contains(`FileStorage`)&&t.deleteObjectStore(`FileStorage`),t.createObjectStore(`FileStorage`,{keyPath:`path`}).createIndex(`by_folder`,`folder`)}}async dbRequest(e,t){let n=this._writeCmds.indexOf(e)===-1?`readonly`:`readwrite`;return this.initDb().then(r=>new Promise((i,a)=>{let o=r.transaction([`FileStorage`],n).objectStore(`FileStorage`)[e](...t);o.onsuccess=()=>i(o.result),o.onerror=()=>a(o.error)}))}async dbIndexRequest(e,t,n){let r=this._writeCmds.indexOf(t)===-1?`readonly`:`readwrite`;return this.initDb().then(i=>new Promise((a,o)=>{let s=i.transaction([`FileStorage`],r).objectStore(`FileStorage`).index(e)[t](...n);s.onsuccess=()=>a(s.result),s.onerror=()=>o(s.error)}))}getPath(e,t){let n=t===void 0?``:t.replace(/^[/]+|[/]+$/g,``),r=``;return e!==void 0&&(r+=`/`+e),t!==``&&(r+=`/`+n),r}async clear(){(await this.initDb()).transaction([`FileStorage`],`readwrite`).objectStore(`FileStorage`).clear()}async readFile(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0)throw Error(`File does not exist.`);return{data:n.content?n.content:``}}async writeFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=e.recursive,a=await this.dbRequest(`get`,[t]);if(a&&a.type===`directory`)throw Error(`The supplied path is a directory.`);let o=t.substr(0,t.lastIndexOf(`/`));if(await this.dbRequest(`get`,[o])===void 0){let t=o.indexOf(`/`,1);if(t!==-1){let n=o.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:i})}}if(!r&&!(n instanceof Blob)&&(n=n.indexOf(`,`)>=0?n.split(`,`)[1]:n,!this.isBase64String(n)))throw Error(`The supplied data is not valid base64 content.`);let s=Date.now(),c={path:t,folder:o,type:`file`,size:n instanceof Blob?n.size:n.length,ctime:s,mtime:s,content:n};return await this.dbRequest(`put`,[c]),{uri:c.path}}async appendFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=t.substr(0,t.lastIndexOf(`/`)),a=Date.now(),o=a,s=await this.dbRequest(`get`,[t]);if(s&&s.type===`directory`)throw Error(`The supplied path is a directory.`);if(await this.dbRequest(`get`,[i])===void 0){let t=i.indexOf(`/`,1);if(t!==-1){let n=i.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:!0})}}if(!r&&!this.isBase64String(n))throw Error(`The supplied data is not valid base64 content.`);if(s!==void 0){if(s.content instanceof Blob)throw Error(`The occupied entry contains a Blob object which cannot be appended to.`);n=s.content!==void 0&&!r?btoa(atob(s.content)+atob(n)):s.content+n,o=s.ctime}let c={path:t,folder:i,type:`file`,size:n.length,ctime:o,mtime:a,content:n};await this.dbRequest(`put`,[c])}async deleteFile(e){let t=this.getPath(e.directory,e.path);if(await this.dbRequest(`get`,[t])===void 0)throw Error(`File does not exist.`);if((await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)])).length!==0)throw Error(`Folder is not empty.`);await this.dbRequest(`delete`,[t])}async mkdir(e){let t=this.getPath(e.directory,e.path),n=e.recursive,r=t.substr(0,t.lastIndexOf(`/`)),i=(t.match(/\//g)||[]).length,a=await this.dbRequest(`get`,[r]),o=await this.dbRequest(`get`,[t]);if(i===1)throw Error(`Cannot create Root directory`);if(o!==void 0)throw Error(`Current directory does already exist.`);if(!n&&i!==2&&a===void 0)throw Error(`Parent directory must exist`);if(n&&i!==2&&a===void 0){let t=r.substr(r.indexOf(`/`,1));await this.mkdir({path:t,directory:e.directory,recursive:n})}let s=Date.now(),c={path:t,folder:r,type:`directory`,size:0,ctime:s,mtime:s};await this.dbRequest(`put`,[c])}async rmdir(e){let{path:t,directory:n,recursive:r}=e,i=this.getPath(n,t),a=await this.dbRequest(`get`,[i]);if(a===void 0)throw Error(`Folder does not exist.`);if(a.type!==`directory`)throw Error(`Requested path is not a directory`);let o=await this.readdir({path:t,directory:n});if(o.files.length!==0&&!r)throw Error(`Folder is not empty`);for(let e of o.files){let i=`${t}/${e.name}`;(await this.stat({path:i,directory:n})).type===`file`?await this.deleteFile({path:i,directory:n}):await this.rmdir({path:i,directory:n,recursive:r})}await this.dbRequest(`delete`,[i])}async readdir(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(e.path!==``&&n===void 0)throw Error(`Folder does not exist.`);let r=await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)]);return{files:await Promise.all(r.map(async e=>{let n=await this.dbRequest(`get`,[e]);return n===void 0&&(n=await this.dbRequest(`get`,[e+`/`])),{name:e.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}))}}async getUri(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);return n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),{uri:n?.path||t}}async stat(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),n===void 0)throw Error(`Entry does not exist.`);return{name:n.path.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}async rename(e){await this._copy(e,!0)}async copy(e){return this._copy(e,!1)}async requestPermissions(){return{publicStorage:`granted`}}async checkPermissions(){return{publicStorage:`granted`}}async _copy(e,t=!1){let{toDirectory:r}=e,{to:a,from:o,directory:s}=e;if(!a||!o)throw Error(`Both to and from must be provided`);r||=s;let c=this.getPath(s,o),l=this.getPath(r,a);if(c===l)return{uri:l};if(i(c,l))throw Error(`To path cannot contain the from path`);let u;try{u=await this.stat({path:a,directory:r})}catch{let e=a.split(`/`);e.pop();let t=e.join(`/`);if(e.length>0&&(await this.stat({path:t,directory:r})).type!==`directory`)throw Error(`Parent directory of the to path is a file`)}if(u&&u.type===`directory`)throw Error(`Cannot overwrite a directory with a file`);let d=await this.stat({path:o,directory:s}),f=async(e,t,n)=>{let i=this.getPath(r,e),a=await this.dbRequest(`get`,[i]);a.ctime=t,a.mtime=n,await this.dbRequest(`put`,[a])},p=d.ctime?d.ctime:Date.now();switch(d.type){case`file`:{let e=await this.readFile({path:o,directory:s});t&&await this.deleteFile({path:o,directory:s});let i;!(e.data instanceof Blob)&&!this.isBase64String(e.data)&&(i=n.UTF8);let c=await this.writeFile({path:a,directory:r,data:e.data,encoding:i});return t&&await f(a,p,d.mtime),c}case`directory`:{if(u)throw Error(`Cannot move a directory over an existing object`);try{await this.mkdir({path:a,directory:r,recursive:!1}),t&&await f(a,p,d.mtime)}catch{}let e=(await this.readdir({path:o,directory:s})).files;for(let n of e)await this._copy({from:`${o}/${n.name}`,to:`${a}/${n.name}`,directory:s,toDirectory:r},t);t&&await this.rmdir({path:o,directory:s})}}return{uri:l}}isBase64String(e){try{return btoa(atob(e))==e}catch{return!1}}};a._debug=!0;export{a as FilesystemWeb};
1
+ import{n as e,r as t}from"./dist-C3LFhPgk2.js";import{n}from"./definitions-CJ7YHLIq.js";function r(e){let t=e.split(`/`).filter(e=>e!==`.`),n=[];return t.forEach(e=>{e===`..`&&n.length>0&&n[n.length-1]!==`..`?n.pop():n.push(e)}),n.join(`/`)}function i(e,t){e=r(e),t=r(t);let n=e.split(`/`),i=t.split(`/`);return e!==t&&n.every((e,t)=>e===i[t])}var a=class r extends e{constructor(){super(...arguments),this.DB_VERSION=1,this.DB_NAME=`Disc`,this._writeCmds=[`add`,`put`,`delete`],this.downloadFile=async e=>{let n=t(e,e.webFetchExtra),r=await fetch(e.url,n),i;if(!e.progress)i=await r.blob();else if(!r?.body)i=new Blob;else{let t=r.body.getReader(),n=0,a=[],o=r.headers.get(`content-type`),s=parseInt(r.headers.get(`content-length`)||`0`,10);for(;;){let{done:r,value:i}=await t.read();if(r)break;a.push(i),n+=i?.length||0;let o={url:e.url,bytes:n,contentLength:s};this.notifyListeners(`progress`,o)}let c=new Uint8Array(n),l=0;for(let e of a)e!==void 0&&(c.set(e,l),l+=e.length);i=new Blob([c.buffer],{type:o||void 0})}return{path:(await this.writeFile({path:e.path,directory:e.directory??void 0,recursive:e.recursive??!1,data:i})).uri,blob:i}}}readFileInChunks(e,t){throw this.unavailable(`Method not implemented.`)}async initDb(){if(this._db!==void 0)return this._db;if(!(`indexedDB`in window))throw this.unavailable(`This browser doesn't support IndexedDB`);return new Promise((e,t)=>{let n=indexedDB.open(this.DB_NAME,this.DB_VERSION);n.onupgradeneeded=r.doUpgrade,n.onsuccess=()=>{this._db=n.result,e(n.result)},n.onerror=()=>t(n.error),n.onblocked=()=>{console.warn(`db blocked`)}})}static doUpgrade(e){let t=e.target.result;switch(e.oldVersion){default:t.objectStoreNames.contains(`FileStorage`)&&t.deleteObjectStore(`FileStorage`),t.createObjectStore(`FileStorage`,{keyPath:`path`}).createIndex(`by_folder`,`folder`)}}async dbRequest(e,t){let n=this._writeCmds.indexOf(e)===-1?`readonly`:`readwrite`;return this.initDb().then(r=>new Promise((i,a)=>{let o=r.transaction([`FileStorage`],n).objectStore(`FileStorage`)[e](...t);o.onsuccess=()=>i(o.result),o.onerror=()=>a(o.error)}))}async dbIndexRequest(e,t,n){let r=this._writeCmds.indexOf(t)===-1?`readonly`:`readwrite`;return this.initDb().then(i=>new Promise((a,o)=>{let s=i.transaction([`FileStorage`],r).objectStore(`FileStorage`).index(e)[t](...n);s.onsuccess=()=>a(s.result),s.onerror=()=>o(s.error)}))}getPath(e,t){let n=t===void 0?``:t.replace(/^[/]+|[/]+$/g,``),r=``;return e!==void 0&&(r+=`/`+e),t!==``&&(r+=`/`+n),r}async clear(){(await this.initDb()).transaction([`FileStorage`],`readwrite`).objectStore(`FileStorage`).clear()}async readFile(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0)throw Error(`File does not exist.`);return{data:n.content?n.content:``}}async writeFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=e.recursive,a=await this.dbRequest(`get`,[t]);if(a&&a.type===`directory`)throw Error(`The supplied path is a directory.`);let o=t.substr(0,t.lastIndexOf(`/`));if(await this.dbRequest(`get`,[o])===void 0){let t=o.indexOf(`/`,1);if(t!==-1){let n=o.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:i})}}if(!r&&!(n instanceof Blob)&&(n=n.indexOf(`,`)>=0?n.split(`,`)[1]:n,!this.isBase64String(n)))throw Error(`The supplied data is not valid base64 content.`);let s=Date.now(),c={path:t,folder:o,type:`file`,size:n instanceof Blob?n.size:n.length,ctime:s,mtime:s,content:n};return await this.dbRequest(`put`,[c]),{uri:c.path}}async appendFile(e){let t=this.getPath(e.directory,e.path),n=e.data,r=e.encoding,i=t.substr(0,t.lastIndexOf(`/`)),a=Date.now(),o=a,s=await this.dbRequest(`get`,[t]);if(s&&s.type===`directory`)throw Error(`The supplied path is a directory.`);if(await this.dbRequest(`get`,[i])===void 0){let t=i.indexOf(`/`,1);if(t!==-1){let n=i.substr(t);await this.mkdir({path:n,directory:e.directory,recursive:!0})}}if(!r&&!this.isBase64String(n))throw Error(`The supplied data is not valid base64 content.`);if(s!==void 0){if(s.content instanceof Blob)throw Error(`The occupied entry contains a Blob object which cannot be appended to.`);n=s.content!==void 0&&!r?btoa(atob(s.content)+atob(n)):s.content+n,o=s.ctime}let c={path:t,folder:i,type:`file`,size:n.length,ctime:o,mtime:a,content:n};await this.dbRequest(`put`,[c])}async deleteFile(e){let t=this.getPath(e.directory,e.path);if(await this.dbRequest(`get`,[t])===void 0)throw Error(`File does not exist.`);if((await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)])).length!==0)throw Error(`Folder is not empty.`);await this.dbRequest(`delete`,[t])}async mkdir(e){let t=this.getPath(e.directory,e.path),n=e.recursive,r=t.substr(0,t.lastIndexOf(`/`)),i=(t.match(/\//g)||[]).length,a=await this.dbRequest(`get`,[r]),o=await this.dbRequest(`get`,[t]);if(i===1)throw Error(`Cannot create Root directory`);if(o!==void 0)throw Error(`Current directory does already exist.`);if(!n&&i!==2&&a===void 0)throw Error(`Parent directory must exist`);if(n&&i!==2&&a===void 0){let t=r.substr(r.indexOf(`/`,1));await this.mkdir({path:t,directory:e.directory,recursive:n})}let s=Date.now(),c={path:t,folder:r,type:`directory`,size:0,ctime:s,mtime:s};await this.dbRequest(`put`,[c])}async rmdir(e){let{path:t,directory:n,recursive:r}=e,i=this.getPath(n,t),a=await this.dbRequest(`get`,[i]);if(a===void 0)throw Error(`Folder does not exist.`);if(a.type!==`directory`)throw Error(`Requested path is not a directory`);let o=await this.readdir({path:t,directory:n});if(o.files.length!==0&&!r)throw Error(`Folder is not empty`);for(let e of o.files){let i=`${t}/${e.name}`;(await this.stat({path:i,directory:n})).type===`file`?await this.deleteFile({path:i,directory:n}):await this.rmdir({path:i,directory:n,recursive:r})}await this.dbRequest(`delete`,[i])}async readdir(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(e.path!==``&&n===void 0)throw Error(`Folder does not exist.`);let r=await this.dbIndexRequest(`by_folder`,`getAllKeys`,[IDBKeyRange.only(t)]);return{files:await Promise.all(r.map(async e=>{let n=await this.dbRequest(`get`,[e]);return n===void 0&&(n=await this.dbRequest(`get`,[e+`/`])),{name:e.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}))}}async getUri(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);return n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),{uri:n?.path||t}}async stat(e){let t=this.getPath(e.directory,e.path),n=await this.dbRequest(`get`,[t]);if(n===void 0&&(n=await this.dbRequest(`get`,[t+`/`])),n===void 0)throw Error(`Entry does not exist.`);return{name:n.path.substring(t.length+1),type:n.type,size:n.size,ctime:n.ctime,mtime:n.mtime,uri:n.path}}async rename(e){await this._copy(e,!0)}async copy(e){return this._copy(e,!1)}async requestPermissions(){return{publicStorage:`granted`}}async checkPermissions(){return{publicStorage:`granted`}}async _copy(e,t=!1){let{toDirectory:r}=e,{to:a,from:o,directory:s}=e;if(!a||!o)throw Error(`Both to and from must be provided`);r||=s;let c=this.getPath(s,o),l=this.getPath(r,a);if(c===l)return{uri:l};if(i(c,l))throw Error(`To path cannot contain the from path`);let u;try{u=await this.stat({path:a,directory:r})}catch{let e=a.split(`/`);e.pop();let t=e.join(`/`);if(e.length>0&&(await this.stat({path:t,directory:r})).type!==`directory`)throw Error(`Parent directory of the to path is a file`)}if(u&&u.type===`directory`)throw Error(`Cannot overwrite a directory with a file`);let d=await this.stat({path:o,directory:s}),f=async(e,t,n)=>{let i=this.getPath(r,e),a=await this.dbRequest(`get`,[i]);a.ctime=t,a.mtime=n,await this.dbRequest(`put`,[a])},p=d.ctime?d.ctime:Date.now();switch(d.type){case`file`:{let e=await this.readFile({path:o,directory:s});t&&await this.deleteFile({path:o,directory:s});let i;!(e.data instanceof Blob)&&!this.isBase64String(e.data)&&(i=n.UTF8);let c=await this.writeFile({path:a,directory:r,data:e.data,encoding:i});return t&&await f(a,p,d.mtime),c}case`directory`:{if(u)throw Error(`Cannot move a directory over an existing object`);try{await this.mkdir({path:a,directory:r,recursive:!1}),t&&await f(a,p,d.mtime)}catch{}let e=(await this.readdir({path:o,directory:s})).files;for(let n of e)await this._copy({from:`${o}/${n.name}`,to:`${a}/${n.name}`,directory:s,toDirectory:r},t);t&&await this.rmdir({path:o,directory:s})}}return{uri:l}}isBase64String(e){try{return btoa(atob(e))==e}catch{return!1}}};a._debug=!0;export{a as FilesystemWeb};
@@ -1 +1 @@
1
- import{t as e}from"./button-D1p5nVKJ.js";import{d as t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{u as r}from"./local-mode-BKjasCuE.js";import{o as i}from"./routes-iUGoIqW2.js";import{t as a}from"./use-onboarding-login-D2THX3c2.js";import{in as o}from"./index-h-RcC6AV.js";var s=n();function c(){let n=t(),{loading:c,error:l,login:u,cancel:d}=a();return(0,s.jsx)(o,{children:(0,s.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center px-6 pb-40 text-[var(--content-default)]`,children:(0,s.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,s.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Welcome to Vellum`}),(0,s.jsx)(`p`,{className:`mt-3 text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Your own personal intelligence is just a step away.`}),l&&(0,s.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:l}),(0,s.jsxs)(`div`,{className:`mt-10 flex w-full max-w-sm flex-col gap-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,s.jsx)(e,{variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:c?d:()=>void u(),children:c?`Cancel`:`Log In`}),(0,s.jsx)(e,{variant:`ghost`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{c&&d(),r()?n(i.selectAssistant):n(i.onboarding.hosting)},children:`Continue without account`})]})]})})})}export{c as WelcomeScreen};
1
+ import{t as e}from"./button-D1p5nVKJ.js";import{d as t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{u as r}from"./local-mode-YoUYEn7C.js";import{o as i}from"./routes-iUGoIqW2.js";import{t as a}from"./use-onboarding-login-9378MpEq.js";import{in as o}from"./index-DQkD5WCi.js";var s=n();function c(){let n=t(),{loading:c,error:l,login:u,cancel:d}=a();return(0,s.jsx)(o,{children:(0,s.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center px-6 pb-40 text-[var(--content-default)]`,children:(0,s.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,s.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Welcome to Vellum`}),(0,s.jsx)(`p`,{className:`mt-3 text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Your own personal intelligence is just a step away.`}),l&&(0,s.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:l}),(0,s.jsxs)(`div`,{className:`mt-10 flex w-full max-w-sm flex-col gap-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,s.jsx)(e,{variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:c?d:()=>void u(),children:c?`Cancel`:`Log In`}),(0,s.jsx)(e,{variant:`ghost`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{c&&d(),r()?n(i.selectAssistant):n(i.onboarding.hosting)},children:`Continue without account`})]})]})})})}export{c as WelcomeScreen};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D1p5nVKJ.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-D5f7kt80.js";import{t as a}from"./arrow-left-DI9551VI.js";import{n as o,r as s,t as c}from"./metric-card-DCHJ3KOy.js";import{t as l}from"./ban-CVKGuUAQ.js";import{t as u}from"./chevron-right-DqqmezXC.js";import{t as d}from"./circle-check-VSiny8yl.js";import{t as f}from"./triangle-alert-CuLBwl1x.js";import{t as p}from"./x-CwzRJv9J.js";import"./src-4xooMXeT.js";import{n as m,r as h,t as g}from"./workflow-status-C3wba8AX.js";import{t as _}from"./proxy-CcvD-YbW.js";import{t as v}from"./AnimatePresence-CmYDLs_U.js";import{t as y}from"./use-reduced-motion-Bs2JODRV.js";import{at as b,ci as x,ct as S,di as C,ka as w,mt as T,st as E,vi as D}from"./index-h-RcC6AV.js";import{t as O}from"./status-badge-pill-Bv4itxJX.js";var k=e(t(),1),A=r();function j({onClick:e,ariaLabel:t}){return(0,A.jsxs)(`button`,{type:`button`,"aria-label":t,onClick:e,className:`flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--system-negative-strong)] bg-transparent px-2.5 py-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)]`,children:[(0,A.jsx)(D,{className:`h-3 w-3`,fill:`currentColor`}),(0,A.jsx)(i,{variant:`label-small-default`,children:`Stop`})]})}function M({title:e,body:t,emptyText:n}){return(0,A.jsxs)(`div`,{className:`mb-5`,children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-2 text-[var(--content-emphasised)]`,children:e}),t?(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:t}):(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]})}function N({leaf:e}){let t=e.status===`running`?`Running…`:`No result summary`;return(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-2 gap-3`,children:[(0,A.jsx)(c,{icon:(0,A.jsx)(w,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens??0,format:e=>o(Math.round(e)),label:`Input`}),(0,A.jsx)(c,{icon:(0,A.jsx)(s,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens??0,format:e=>o(Math.round(e)),label:`Output`})]}),(0,A.jsx)(M,{title:`Prompt`,body:e.promptSummary,emptyText:`No prompt summary`}),(0,A.jsx)(M,{title:`Result`,body:e.resultSummary,emptyText:t})]})}function P({status:e}){return(0,A.jsx)(O,{color:m(e),label:h(e)})}function F(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:return`var(--system-negative-strong)`;case`cancelled`:return`var(--content-secondary)`;default:return`var(--primary-base)`}}function I(e){switch(e){case`completed`:return`Completed`;case`failed`:return`Failed`;case`cancelled`:return`Cancelled`;default:return`Running`}}function L({status:e}){return(0,A.jsx)(O,{color:F(e),label:I(e)})}function R({status:e}){let t=y(),n=`h-3.5 w-3.5 shrink-0`,r;return r=e===`running`?(0,A.jsx)(T,{className:`shrink-0`,dotSize:4,gap:2}):e===`completed`?(0,A.jsx)(d,{className:n,style:{color:`var(--system-positive-strong)`}}):e===`failed`?(0,A.jsx)(f,{className:n,style:{color:`var(--system-negative-strong)`}}):(0,A.jsx)(l,{className:n,style:{color:`var(--content-secondary)`},role:`img`,"aria-label":`Cancelled`}),(0,A.jsx)(v,{mode:`wait`,initial:!1,children:(0,A.jsx)(_.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:t?{duration:0}:{duration:.15,ease:[.16,1,.3,1]},className:`flex shrink-0 items-center`,children:r},e)})}function z({runId:e,leaf:t,components:n,onSelect:r}){let a=t.label??`Subagent ${t.seq}`,o=t.promptSummary,s=b(`${e}:${t.seq}`);return(0,A.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Open ${a} details`,className:`flex w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] px-2 py-1.5 text-left transition-colors hover:bg-[var(--surface-overlay)]`,children:(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,A.jsx)(R,{status:t.status}),n?(0,A.jsx)(S,{components:n,bodyShapeId:s.bodyShape,eyeStyleId:s.eyeStyle,colorId:s.color,size:16}):(0,A.jsx)(`div`,{style:{width:16,height:16,flexShrink:0},"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-medium-default`,title:a,className:`max-w-[60%] shrink-0 truncate text-[var(--content-default)]`,children:a}),o&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)] opacity-10`,children:`|`}),(0,A.jsx)(i,{variant:`body-medium-lighter`,title:o,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:o})]})]})})}function B({entry:e,onClose:t,onStop:r,onRequestJournal:l}){let d=g(e.status),f=y(),m=e.label??e.runId,h=e.agentsSpawned||e.leaves.size,v=E(),T=[...e.leaves.values()].sort((e,t)=>e.seq-t.seq),[D,O]=(0,k.useState)(null),[M,F]=(0,k.useState)(e.runId);M!==e.runId&&(F(e.runId),O(null));let I=D==null?void 0:e.leaves.get(D),R=I?b(`${e.runId}:${I.seq}`):void 0,B=(0,k.useCallback)(()=>O(null),[]),V=I?I.label??`Subagent ${I.seq}`:``,H=I?V:m,U=d?`live`:`final`;return(0,k.useEffect)(()=>{l?.(e.runId)},[e.runId,U,l]),(0,A.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[I&&(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,A.jsx)(`button`,{type:`button`,onClick:B,title:m,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,children:m})}),(0,A.jsx)(u,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,title:V,className:`min-w-0 shrink truncate text-[var(--content-secondary)]`,children:V})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[I&&(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(a,{}),onClick:B,"aria-label":`Back to subagents`,tooltip:`Back`,className:`shrink-0 rounded-lg`}),I?v&&R?(0,A.jsx)(S,{components:v,bodyShapeId:R.bodyShape,eyeStyleId:R.eyeStyle,colorId:R.color,size:32}):(0,A.jsx)(`div`,{style:{width:32,height:32,flexShrink:0},"aria-hidden":!0}):(0,A.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-[6px] bg-[var(--surface-overlay)]`,children:(0,A.jsx)(x,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,A.jsx)(i,{variant:`title-medium`,title:H,className:`min-w-0 shrink truncate text-[var(--content-default)]`,children:H}),I?(0,A.jsx)(L,{status:I.status}):(0,A.jsx)(P,{status:e.status}),(0,A.jsx)(`span`,{className:`flex-1`}),d&&r&&(0,A.jsx)(j,{onClick:()=>r(e.runId),ariaLabel:`Stop workflow`}),(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(p,{}),onClick:t,"aria-label":`Close workflow detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]}),(0,A.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:(0,A.jsx)(_.div,{initial:{opacity:0},animate:{opacity:1},transition:f?{duration:0}:{duration:.18,ease:[.16,1,.3,1]},children:I?(0,A.jsx)(N,{leaf:I}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-3 gap-3`,children:[(0,A.jsx)(c,{icon:(0,A.jsx)(w,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens,format:e=>o(Math.round(e)),label:`Input`}),(0,A.jsx)(c,{icon:(0,A.jsx)(s,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens,format:e=>o(Math.round(e)),label:`Output`}),(0,A.jsx)(c,{icon:(0,A.jsx)(C,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:h,format:e=>o(Math.round(e)),label:`Agents`})]}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-4 text-[var(--content-emphasised)]`,children:`Subagents`}),T.length===0?(0,A.jsx)(i,{variant:`body-small-default`,className:`py-4 text-center text-[var(--content-tertiary)]`,children:`No subagents yet`}):(0,A.jsx)(`div`,{className:`flex flex-col gap-1`,children:T.map(t=>(0,A.jsx)(z,{runId:e.runId,leaf:t,components:v,onSelect:()=>O(t.seq)},t.seq))})]})]})},I?String(I.seq):`list`)})]})}export{B as WorkflowDetailPanel};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D1p5nVKJ.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-D5f7kt80.js";import{t as a}from"./arrow-left-DI9551VI.js";import{n as o,r as s,t as c}from"./metric-card-DQKsGfEB.js";import{t as l}from"./ban-CVKGuUAQ.js";import{t as u}from"./chevron-right-DqqmezXC.js";import{t as d}from"./circle-check-VSiny8yl.js";import{t as f}from"./triangle-alert-CuLBwl1x.js";import{t as p}from"./x-CwzRJv9J.js";import"./src-4xooMXeT.js";import{n as m,r as h,t as g}from"./workflow-status-CHd73wxx.js";import{t as _}from"./proxy-CheNMUr6.js";import{t as v}from"./AnimatePresence-Oxz4BTMX.js";import{t as y}from"./use-reduced-motion-DUPDDLHh.js";import{at as b,ci as x,ct as S,di as C,ka as w,mt as T,st as E,vi as D}from"./index-DQkD5WCi.js";import{t as O}from"./status-badge-pill-DUcVAyfr.js";var k=e(t(),1),A=r();function j({onClick:e,ariaLabel:t}){return(0,A.jsxs)(`button`,{type:`button`,"aria-label":t,onClick:e,className:`flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--system-negative-strong)] bg-transparent px-2.5 py-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)]`,children:[(0,A.jsx)(D,{className:`h-3 w-3`,fill:`currentColor`}),(0,A.jsx)(i,{variant:`label-small-default`,children:`Stop`})]})}function M({title:e,body:t,emptyText:n}){return(0,A.jsxs)(`div`,{className:`mb-5`,children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-2 text-[var(--content-emphasised)]`,children:e}),t?(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:t}):(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]})}function N({leaf:e}){let t=e.status===`running`?`Running…`:`No result summary`;return(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-2 gap-3`,children:[(0,A.jsx)(c,{icon:(0,A.jsx)(w,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens??0,format:e=>o(Math.round(e)),label:`Input`}),(0,A.jsx)(c,{icon:(0,A.jsx)(s,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens??0,format:e=>o(Math.round(e)),label:`Output`})]}),(0,A.jsx)(M,{title:`Prompt`,body:e.promptSummary,emptyText:`No prompt summary`}),(0,A.jsx)(M,{title:`Result`,body:e.resultSummary,emptyText:t})]})}function P({status:e}){return(0,A.jsx)(O,{color:m(e),label:h(e)})}function F(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:return`var(--system-negative-strong)`;case`cancelled`:return`var(--content-secondary)`;default:return`var(--primary-base)`}}function I(e){switch(e){case`completed`:return`Completed`;case`failed`:return`Failed`;case`cancelled`:return`Cancelled`;default:return`Running`}}function L({status:e}){return(0,A.jsx)(O,{color:F(e),label:I(e)})}function R({status:e}){let t=y(),n=`h-3.5 w-3.5 shrink-0`,r;return r=e===`running`?(0,A.jsx)(T,{className:`shrink-0`,dotSize:4,gap:2}):e===`completed`?(0,A.jsx)(d,{className:n,style:{color:`var(--system-positive-strong)`}}):e===`failed`?(0,A.jsx)(f,{className:n,style:{color:`var(--system-negative-strong)`}}):(0,A.jsx)(l,{className:n,style:{color:`var(--content-secondary)`},role:`img`,"aria-label":`Cancelled`}),(0,A.jsx)(v,{mode:`wait`,initial:!1,children:(0,A.jsx)(_.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:t?{duration:0}:{duration:.15,ease:[.16,1,.3,1]},className:`flex shrink-0 items-center`,children:r},e)})}function z({runId:e,leaf:t,components:n,onSelect:r}){let a=t.label??`Subagent ${t.seq}`,o=t.promptSummary,s=b(`${e}:${t.seq}`);return(0,A.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Open ${a} details`,className:`flex w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] px-2 py-1.5 text-left transition-colors hover:bg-[var(--surface-overlay)]`,children:(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,A.jsx)(R,{status:t.status}),n?(0,A.jsx)(S,{components:n,bodyShapeId:s.bodyShape,eyeStyleId:s.eyeStyle,colorId:s.color,size:16}):(0,A.jsx)(`div`,{style:{width:16,height:16,flexShrink:0},"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-medium-default`,title:a,className:`max-w-[60%] shrink-0 truncate text-[var(--content-default)]`,children:a}),o&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)] opacity-10`,children:`|`}),(0,A.jsx)(i,{variant:`body-medium-lighter`,title:o,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:o})]})]})})}function B({entry:e,onClose:t,onStop:r,onRequestJournal:l}){let d=g(e.status),f=y(),m=e.label??e.runId,h=e.agentsSpawned||e.leaves.size,v=E(),T=[...e.leaves.values()].sort((e,t)=>e.seq-t.seq),[D,O]=(0,k.useState)(null),[M,F]=(0,k.useState)(e.runId);M!==e.runId&&(F(e.runId),O(null));let I=D==null?void 0:e.leaves.get(D),R=I?b(`${e.runId}:${I.seq}`):void 0,B=(0,k.useCallback)(()=>O(null),[]),V=I?I.label??`Subagent ${I.seq}`:``,H=I?V:m,U=d?`live`:`final`;return(0,k.useEffect)(()=>{l?.(e.runId)},[e.runId,U,l]),(0,A.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[I&&(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,A.jsx)(`button`,{type:`button`,onClick:B,title:m,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,children:m})}),(0,A.jsx)(u,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,title:V,className:`min-w-0 shrink truncate text-[var(--content-secondary)]`,children:V})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[I&&(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(a,{}),onClick:B,"aria-label":`Back to subagents`,tooltip:`Back`,className:`shrink-0 rounded-lg`}),I?v&&R?(0,A.jsx)(S,{components:v,bodyShapeId:R.bodyShape,eyeStyleId:R.eyeStyle,colorId:R.color,size:32}):(0,A.jsx)(`div`,{style:{width:32,height:32,flexShrink:0},"aria-hidden":!0}):(0,A.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-[6px] bg-[var(--surface-overlay)]`,children:(0,A.jsx)(x,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,A.jsx)(i,{variant:`title-medium`,title:H,className:`min-w-0 shrink truncate text-[var(--content-default)]`,children:H}),I?(0,A.jsx)(L,{status:I.status}):(0,A.jsx)(P,{status:e.status}),(0,A.jsx)(`span`,{className:`flex-1`}),d&&r&&(0,A.jsx)(j,{onClick:()=>r(e.runId),ariaLabel:`Stop workflow`}),(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(p,{}),onClick:t,"aria-label":`Close workflow detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]}),(0,A.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:(0,A.jsx)(_.div,{initial:{opacity:0},animate:{opacity:1},transition:f?{duration:0}:{duration:.18,ease:[.16,1,.3,1]},children:I?(0,A.jsx)(N,{leaf:I}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-3 gap-3`,children:[(0,A.jsx)(c,{icon:(0,A.jsx)(w,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens,format:e=>o(Math.round(e)),label:`Input`}),(0,A.jsx)(c,{icon:(0,A.jsx)(s,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens,format:e=>o(Math.round(e)),label:`Output`}),(0,A.jsx)(c,{icon:(0,A.jsx)(C,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:h,format:e=>o(Math.round(e)),label:`Agents`})]}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-4 text-[var(--content-emphasised)]`,children:`Subagents`}),T.length===0?(0,A.jsx)(i,{variant:`body-small-default`,className:`py-4 text-center text-[var(--content-tertiary)]`,children:`No subagents yet`}):(0,A.jsx)(`div`,{className:`flex flex-col gap-1`,children:T.map(t=>(0,A.jsx)(z,{runId:e.runId,leaf:t,components:v,onSelect:()=>O(t.seq)},t.seq))})]})]})},I?String(I.seq):`list`)})]})}export{B as WorkflowDetailPanel};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D1p5nVKJ.js";import{h as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./useQuery-B45lW1Kk.js";import{t as o}from"./useMutation-Lj4VunQV.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./queryOptions-BtNi-_9H.js";import{t as l}from"./createLucideIcon-IRfcSUxS.js";import{t as u}from"./chevron-down-qD-re7AW.js";import{t as d}from"./chevron-right-DqqmezXC.js";import{t as f}from"./menu-Bjq0lFxx.js";import{t as p}from"./file-text-Cw--uc4C.js";import{t as m}from"./loader-circle-D1pLQlMh.js";import{t as h}from"./pencil-rKUVpppO.js";import{t as g}from"./x-CwzRJv9J.js";import{E as _}from"./src-4xooMXeT.js";import{t as v}from"./input-DR1eB4a1.js";import{t as y}from"./modal-cdtdc8dA.js";import{n as b,t as x}from"./panel-item-vXPWJAXs.js";import{t as S}from"./confirm-dialog-DW84Cxfq.js";import{Cr as C,Sr as w,_r as T,br as E,vr as D,xr as O,yr as k}from"./sdk.gen-Bz2u5Wv3.js";import{n as A}from"./use-is-mobile-DJUk0lC8.js";import{n as j}from"./native-file-BXeEnGEz.js";import{H as M,Ti as ee,V as N,Zi as P,aa as F,ji as I,la as L,mi as R,na as z,oa as te,ra as B,ta as V,ui as H}from"./index-h-RcC6AV.js";import{t as U}from"./use-active-assistant-id-C_JDjGTU.js";import{n as W,t as G}from"./mobile-sidebar-drawer-CajFGrXu.js";import{i as K,n as ne,r as q,t as J}from"./file-editor-B-psPRqR.js";import{t as Y}from"./format-file-size-Cnq-CdFe.js";var re=l(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),ie=l(`arrow-down-wide-narrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),ae=l(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),X=l(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),Z=e(t(),1);async function oe(e){let{data:t,error:n}=await D({path:{assistant_id:e.assistantId},query:{path:e.path,...e.showHidden?{showHidden:`true`}:{}},parseAs:`blob`,throwOnError:!1});if(n||!(t instanceof Blob))throw Error(`Failed to download file`);await j(t,e.filename)}function se(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function ce(e,t){return se(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function le(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function ue(e){return e.split(`/`).some(e=>e.startsWith(`.`))}var Q=s();function de(e){return c({queryFn:async()=>{let{data:t,error:n}=await k({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function fe({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=p;return n.startsWith(`image/`)?r=P:n.startsWith(`video/`)?r=H:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=z),(0,Q.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 10%, transparent)`},children:(0,Q.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function pe({viewMode:e,onChange:t}){return(0,Q.jsx)(`div`,{className:`inline-flex rounded-md p-0.5`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`},children:[`preview`,`source`].map(r=>{let i=e===r;return(0,Q.jsx)(n,{variant:`ghost`,onClick:()=>t(r),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:i?`var(--surface-lift)`:`transparent`,color:i?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:i?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:r===`preview`?`Preview`:`Source`},r)})})}function $({name:e,mimeType:t,size:n,rightContent:r}){return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(fe,{mimeType:t}),(0,Q.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,Q.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:Y(n)})]}),r]})}function me({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:i,isLoading:o}=a({queryFn:async()=>{let n=await D({path:{assistant_id:e},query:{path:t,...r?{showHidden:`true`}:{}},parseAs:`blob`});if(n.error)throw n.error;return n.data},queryKey:[`assistantsWorkspaceFileContentRetrieve`,{assistantId:e,path:t,showHidden:r}],enabled:!!t}),[s,c]=(0,Z.useState)(null);return(0,Z.useEffect)(()=>{if(!i)return;let e=URL.createObjectURL(i);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[i]),o?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Q.jsx)(m,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Q.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Q.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function he({assistantId:e,path:t,name:r,mimeType:i,size:a,modifiedAt:o,showHidden:s}){let[c,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(!1),f=(0,Z.useCallback)(async()=>{d(!1),l(!0);try{await oe({assistantId:e,path:t,filename:r,showHidden:s})}catch{d(!0)}finally{l(!1)}},[e,t,r,s]);return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:r,mimeType:i,size:a}),(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,Q.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border p-6 text-center`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,Q.jsx)(z,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,Q.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:r}),(0,Q.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:i}),(0,Q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:Y(a,`Unknown size`)}),o&&(0,Q.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(o).toLocaleString()]})]}),(0,Q.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:c?(0,Q.jsx)(m,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(L,{"aria-hidden":!0}),onClick:f,disabled:c,"aria-label":`Download ${r}`,className:`mt-4`,children:c?`Downloading…`:`Download`}),u&&(0,Q.jsx)(`p`,{className:`mt-2 text-body-small-default`,style:{color:`var(--system-error)`},children:`Download failed. Try again.`})]})})]})}function ge({assistantId:e,selectedPath:t,showHidden:r,viewMode:s,onChangeViewMode:c,onBrowse:l,pathRename:u,pathDelete:d}){let f=i(),{data:p,isLoading:h}=a({...de({path:{assistant_id:e},query:{path:t??``,showHidden:r}}),enabled:!!t}),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{if(!u)return;let{from:e,to:t}=u,n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;_(e=>e==null?e:n(e)),y(e=>e==null?e:{...e,path:n(e.path)})},[u]),(0,Z.useEffect)(()=>{if(!d)return;let{path:e}=d,t=t=>t===e||t.startsWith(`${e}/`);_(e=>e!=null&&t(e)?null:e),y(e=>e!=null&&t(e.path)?null:e)},[d]);let b=g!=null&&g===t,x=p?.content??``,S=v?.path===t?v.content:x,w=()=>{_(null),y(null)},T=o({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await C({path:{assistant_id:e},body:{path:t,content:n,encoding:`utf8`},throwOnError:!1});if(!i?.ok||r)throw Error(`Failed to save file`)},onSuccess:(e,t)=>{_(e=>e===t.path?null:e),y(e=>e?.path===t.path?null:e),f.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),E=S!==x,D=(0,Z.useCallback)(()=>{t&&E&&!T.isPending&&T.mutate({path:t,content:S})},[t,E,T,S]);if(!t)return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,Q.jsx)(n,{type:`button`,onClick:l,leftIcon:(0,Q.jsx)(ae,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(h)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(m,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!p)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let O=p.mimeType??`application/octet-stream`,k=p.name??t.split(`/`).pop()??t,A=M(k,O),j=ce(k,O),ee=p.content!=null&&!A&&!j,P=t?ue(t):!0,F=b&&(0,Q.jsx)(ne,{isDirty:E,isSaving:T.isPending,error:T.isError?`Save failed`:null,onSave:D,onDiscard:w});if(A&&p.content!=null){let e=b?S:p.content;return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:k,mimeType:O,rightContent:(0,Q.jsx)(pe,{viewMode:s,onChange:e=>{b&&w(),c(e)}})}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(J,{content:e,fileName:k,mimeType:O,showEdit:!P&&s===`source`,isEditing:b,onToggleEdit:()=>b?w():_(t)}),s===`preview`?(0,Q.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Q.jsx)(N,{content:e})}):b?(0,Q.jsx)(q,{value:S,onChange:e=>y({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content,readOnly:P,onStartEdit:()=>_(t)})]}),F]})}if(j&&p.content!=null){let e=b?S:p.content,n=le(e);return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:k,mimeType:O,rightContent:(0,Q.jsx)(pe,{viewMode:s,onChange:e=>{b&&w(),c(e)}})}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(J,{content:s===`preview`?n:e,downloadContent:e,fileName:k,mimeType:O,showEdit:!P&&s===`source`,isEditing:b,onToggleEdit:()=>b?w():_(t)}),s===`preview`?(0,Q.jsx)(K,{content:n,readOnly:!0,whiteSpace:`pre`}):b?(0,Q.jsx)(q,{value:S,onChange:e=>y({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content,readOnly:P,onStartEdit:()=>_(t)})]}),F]})}return ee?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:k,mimeType:O,size:p.size}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(J,{content:b?S:p.content??``,fileName:k,mimeType:O,showEdit:!P,isEditing:b,onToggleEdit:()=>b?w():_(t)}),b?(0,Q.jsx)(q,{value:S,onChange:e=>y({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content??``,readOnly:P,onStartEdit:()=>_(t)})]}),F]}):O.startsWith(`image/`)||O.startsWith(`video/`)?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:k,mimeType:O,size:p.size}),(0,Q.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,Q.jsx)(me,{assistantId:e,path:t,mimeType:O,showHidden:r})})]}):(0,Q.jsx)(he,{assistantId:e,path:t,name:k,mimeType:O,size:p.size,modifiedAt:p.modifiedAt,showHidden:r})}function _e(e,t){if(t===`name`)return e;let n=e.slice();return n.sort((e,t)=>{let n=e.size??null,r=t.size??null;return n===null&&r===null?(e.name??``).localeCompare(t.name??``):n===null?1:r===null?-1:n===r?(e.name??``).localeCompare(t.name??``):r-n}),n}function ve(e){return c({queryFn:async()=>{let t={};e.query?.path&&(t.path=e.query.path),e.query?.showHidden&&(t.showHidden=`true`),e.query?.includeDirSizes&&(t.includeDirSizes=`true`);let{data:n,error:r}=await w({path:e.path,query:t});if(r)throw r;if(!n)throw Error(`Failed to load workspace tree`);return n},queryKey:[`assistantsWorkspaceTreeRetrieve`,e]})}async function ye(e,t,n,r){let i=n.toLowerCase(),a=r?.toLowerCase(),{data:o}=await w({path:{assistant_id:e},query:t?{path:t}:{}});if(o?.entries?.some(e=>{let t=(e.name??``).toLowerCase();return t===i&&t!==a}))throw Error(`"${n}" already exists here.`)}function be({entry:e}){return e.type===`directory`?(0,Q.jsx)(V,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Q.jsx)(P,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Q.jsx)(H,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(p,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function xe({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:g}){let v=e.path??``,y=e.name??``,b=e.type===`directory`,x=n.has(v),S=r===v,C=y.startsWith(`.`),w=!ue(v),T=b&&(x||s.length>0),{data:E}=a({...ve({path:{assistant_id:t},query:{path:v,showHidden:i,includeDirSizes:o===`size`}}),enabled:b&&T}),D=(0,Z.useMemo)(()=>_e(E?.entries??[],o),[E?.entries,o]),O=s===``||y.toLowerCase().includes(s);if(s!==``&&!b&&!O)return null;let k=(0,Q.jsxs)(`button`,{onClick:()=>{b?c(v):l(v)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${g*14+8}px`,paddingRight:`8px`,color:S?`var(--content-default)`:C?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:S?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:C&&!S?.7:1},children:[b?T?(0,Q.jsx)(u,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(d,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,Q.jsx)(be,{entry:e}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:y}),e.size!=null&&(0,Q.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:Y(e.size)})]});return(0,Q.jsxs)(`div`,{children:[w?(0,Q.jsxs)(_.Root,{children:[(0,Q.jsx)(_.Trigger,{children:k}),(0,Q.jsxs)(_.Content,{children:[b&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(_.Item,{leftIcon:(0,Q.jsx)(B,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`file`,parentPath:v}),children:`New File`}),(0,Q.jsx)(_.Item,{leftIcon:(0,Q.jsx)(X,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`folder`,parentPath:v}),children:`New Folder`}),(0,Q.jsx)(_.Separator,{})]}),(0,Q.jsx)(_.Item,{leftIcon:(0,Q.jsx)(R,{className:`h-3.5 w-3.5`}),onSelect:()=>f({path:v,name:y,isDirectory:b}),children:`Delete`}),(0,Q.jsx)(_.Item,{leftIcon:(0,Q.jsx)(h,{className:`h-3.5 w-3.5`}),onSelect:()=>p({path:v,name:y,isDirectory:b}),children:`Rename`})]})]}):k,b&&T&&D.length>0&&(0,Q.jsx)(`div`,{children:D.map(e=>(0,Q.jsx)(xe,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:g+1},e.path))})]})}function Se({title:e,placeholder:t,confirmLabel:r,pendingLabel:i,initialName:a,onCancel:o,onConfirm:s,pending:c,error:l}){let u=(0,Z.useRef)(null),[d,f]=(0,Z.useState)(a??``),p=d.trim(),m=p.length>0&&(/[/\\]/.test(p)||p===`.`||p===`..`),h=p.length>0&&!m&&!c;return(0,Q.jsx)(y.Root,{open:!0,onOpenChange:e=>{!e&&!c&&o()},children:(0,Q.jsx)(y.Content,{size:`sm`,hideCloseButton:!0,"aria-describedby":void 0,onOpenAutoFocus:e=>{e.preventDefault();let t=u.current;t&&(t.focus(),requestAnimationFrame(()=>{t.setSelectionRange(0,t.value.length)}))},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),c||o()},children:(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),h&&s(p)},children:[(0,Q.jsx)(y.Header,{children:(0,Q.jsx)(y.Title,{children:e})}),(0,Q.jsx)(y.Body,{children:(0,Q.jsx)(v,{ref:u,label:`Name`,value:d,onChange:e=>f(e.target.value),placeholder:t,errorText:l??(m?`Enter a single file or folder name without slashes.`:void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Q.jsxs)(y.Footer,{children:[(0,Q.jsx)(n,{type:`button`,variant:`outlined`,onClick:o,disabled:c,children:`Cancel`}),(0,Q.jsx)(n,{type:`submit`,variant:`primary`,disabled:!h,children:c?i:r})]})]})})})}function Ce({assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:f,onChangeSortMode:p,onPathDeleted:m,onPathRenamed:h}){let _=i(),[y,b]=(0,Z.useState)(``),x=y.trim().toLowerCase(),[w,D]=(0,Z.useState)(!1),[k,A]=(0,Z.useState)(null),[j,M]=(0,Z.useState)(null),N=(0,Z.useCallback)(()=>{A(null),M(null)},[]),{data:P,isLoading:I}=a(ve({path:{assistant_id:e},query:{showHidden:s,includeDirSizes:c===`size`}})),L=(0,Z.useMemo)(()=>_e(P?.entries??[],c),[P?.entries,c]),R=(0,Z.useCallback)(()=>{for(let e of[`assistantsWorkspaceTreeRetrieve`,`assistantsWorkspaceFileRetrieve`,`assistantsWorkspaceFileContentRetrieve`])_.invalidateQueries({queryKey:[e]})},[_]),z=o({mutationFn:async t=>{let n=t.parentPath?`${t.parentPath}/${t.name}`:t.name;await ye(e,t.parentPath,t.name);let{error:r,response:i}=t.kind===`file`?await C({path:{assistant_id:e},body:{path:n,content:``,encoding:`utf8`},throwOnError:!1}):await E({path:{assistant_id:e},body:{path:n},throwOnError:!1});if(r||!i?.ok)throw Error(typeof r==`string`?r:`Failed to create — check the name and try again.`);return{...t,path:n}},onSuccess:e=>{N(),R(),e.parentPath&&u(e.parentPath),e.kind===`file`?d(e.path):u(e.path)},onError:e=>{M(e instanceof Error?e.message:`Failed to create.`)}}),B=o({mutationFn:async t=>{let n=t.oldPath.lastIndexOf(`/`),r=n===-1?``:t.oldPath.slice(0,n),i=t.oldPath.slice(n+1),a=r?`${r}/${t.newName}`:t.newName;await ye(e,r,t.newName,i);let{error:o,response:s}=await O({path:{assistant_id:e},body:{oldPath:t.oldPath,newPath:a},throwOnError:!1});if(o||!s?.ok)throw Error(typeof o==`string`?o:`Failed to rename — check the name and try again.`);return{oldPath:t.oldPath,newPath:a}},onSuccess:({oldPath:e,newPath:t})=>{N(),R(),h(e,t)},onError:e=>{M(e instanceof Error?e.message:`Failed to rename.`)}}),V=(0,Z.useCallback)(e=>{M(null),A({type:`create`,...e})},[]),H=(0,Z.useCallback)(e=>{M(null),A({type:`rename`,path:e.path,name:e.name})},[]),[U,W]=(0,Z.useState)(null),G=o({mutationFn:async t=>{let{error:n,response:r}=await T({path:{assistant_id:e},body:{path:t.path},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to delete — try again.`);return t},onSuccess:e=>{W(null),R(),m(e.path)}}),K=(0,Z.useCallback)(e=>{G.reset(),W(e)},[G]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:c===`size`?(0,Q.jsx)(ie,{"aria-hidden":!0}):(0,Q.jsx)(re,{"aria-hidden":!0}),onClick:()=>p(c===`size`?`name`:`size`),"aria-label":c===`size`?`Sort by name`:`Sort by size`,title:c===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:c===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s?(0,Q.jsx)(F,{"aria-hidden":!0}):(0,Q.jsx)(te,{"aria-hidden":!0}),onClick:f,"aria-label":s?`Hide hidden files`:`Show hidden files`,title:s?`Hide hidden files`:`Show hidden files`,tintColor:s?`var(--content-default)`:`var(--content-tertiary)`}),(0,Q.jsx)(we,{open:w,onOpenChange:D,onSelectKind:e=>{D(!1),V({kind:e,parentPath:``})}})]})]}),(0,Q.jsx)(`div`,{className:`px-3 py-2`,children:(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(v,{type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`Search files`,leftIcon:(0,Q.jsx)(ee,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),y&&(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(g,{"aria-hidden":!0}),onClick:()=>b(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:I?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):L.length?L.map(n=>(0,Q.jsx)(xe,{entry:n,assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,searchLower:x,onToggleExpand:l,onSelectPath:d,onRequestDelete:K,onRequestRename:H,onRequestCreate:V,depth:0},n.path)):(0,Q.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),k?.type===`create`&&(0,Q.jsx)(Se,{title:k.kind===`file`?`New File`:`New Folder`,placeholder:k.kind===`file`?`filename.md`:`folder-name`,confirmLabel:`Create`,pendingLabel:`Creating…`,onCancel:N,onConfirm:e=>{M(null),z.mutate({kind:k.kind,parentPath:k.parentPath,name:e})},pending:z.isPending,error:j},`create-${k.kind}-${k.parentPath}`),k?.type===`rename`&&(0,Q.jsx)(Se,{title:`Rename`,placeholder:k.name,confirmLabel:`Rename`,pendingLabel:`Renaming…`,initialName:k.name,onCancel:N,onConfirm:e=>{if(e===k.name){N();return}M(null),B.mutate({oldPath:k.path,newName:e})},pending:B.isPending,error:j},`rename-${k.path}`),(0,Q.jsx)(S,{open:U!==null,title:U?.isDirectory?`Delete Folder`:`Delete File`,message:(0,Q.jsxs)(Q.Fragment,{children:[`Are you sure you want to delete`,` `,(0,Q.jsx)(`span`,{style:{color:`var(--content-default)`},children:U?.name}),U?.isDirectory?` and all of its contents`:``,`? This cannot be undone.`,G.error&&(0,Q.jsx)(`span`,{className:`mt-2 block`,style:{color:`var(--system-negative-strong)`},children:G.error.message})]}),confirmLabel:G.isPending?`Deleting…`:`Delete`,destructive:!0,isPending:G.isPending,onConfirm:()=>{U&&G.mutate(U)},onCancel:()=>W(null)})]})}function we({open:e,onOpenChange:t,onSelectKind:r}){return A()?(0,Q.jsxs)(b.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(b.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(I,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(b.Content,{children:[(0,Q.jsx)(b.Header,{className:`sr-only`,children:(0,Q.jsx)(b.Title,{children:`Create new`})}),(0,Q.jsxs)(b.Body,{className:`pt-0`,children:[(0,Q.jsx)(x,{icon:B,label:`New File`,onSelect:()=>r(`file`)}),(0,Q.jsx)(x,{icon:X,label:`New Folder`,onSelect:()=>r(`folder`)})]})]})]}):(0,Q.jsxs)(f.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(f.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(I,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(f.Content,{align:`end`,sideOffset:4,children:[(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(B,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`file`),children:`New File`}),(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(X,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`folder`),children:`New Folder`})]})]})}function Te(e){let t=e.split(`/`),n=new Set;for(let e=1;e<t.length;e++)n.add(t.slice(0,e).join(`/`));return n}function Ee({assistantId:e}){let[t,n]=r(),[i,a]=(0,Z.useState)(()=>{let e=t.get(`file`);return e?Te(e):new Set}),[o,s]=(0,Z.useState)(()=>t.get(`file`)),[c,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(()=>t.get(`sort`)===`size`?`size`:`name`),[f,p]=(0,Z.useState)(`preview`);(0,Z.useEffect)(()=>{t.get(`file`)&&n(e=>{let t=new URLSearchParams(e);return t.delete(`file`),t},{replace:!0})},[]);let m=(0,Z.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),h=(0,Z.useCallback)(e=>{a(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[g,_]=(0,Z.useState)(!1),v=(0,Z.useCallback)(e=>{s(e),_(!1)},[]),[y,b]=(0,Z.useState)(null),x=(0,Z.useCallback)(e=>{let t=t=>t===e||t.startsWith(`${e}/`);s(e=>e!==null&&t(e)?null:e),a(e=>{let n=new Set([...e].filter(e=>!t(e)));return n.size===e.size?e:n}),b({path:e})},[]),[S,C]=(0,Z.useState)(null),w={assistantId:e,expandedPaths:i,selectedPath:o,showHidden:c,sortMode:u,onToggleExpand:m,onExpandPath:h,onSelectPath:v,onToggleShowHidden:()=>l(e=>!e),onChangeSortMode:d,onPathDeleted:x,onPathRenamed:(0,Z.useCallback)((e,t)=>{let n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;s(e=>e===null?e:n(e)),a(e=>{let t=!1,r=new Set;for(let i of e){let e=n(i);e!==i&&(t=!0),r.add(e)}return t?r:e}),C({from:e,to:t})},[])};return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,Q.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,Q.jsx)(W,{onClick:()=>_(!0)})}),(0,Q.jsx)(G,{open:g,onClose:()=>_(!1),title:`Files`,children:(0,Q.jsx)(Ce,{...w})}),(0,Q.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,Q.jsx)(`div`,{className:`hidden min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border sm:flex`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Q.jsx)(Ce,{...w})}),(0,Q.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Q.jsx)(ge,{assistantId:e,selectedPath:o,showHidden:c,viewMode:f,onChangeViewMode:p,onBrowse:()=>_(!0),pathRename:S,pathDelete:y})})]})]})}function De(){return(0,Q.jsx)(Ee,{assistantId:U()})}export{De as WorkspacePage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D1p5nVKJ.js";import{h as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./useQuery-B45lW1Kk.js";import{t as o}from"./useMutation-Lj4VunQV.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./queryOptions-BtNi-_9H.js";import{t as l}from"./createLucideIcon-IRfcSUxS.js";import{t as u}from"./chevron-down-qD-re7AW.js";import{t as d}from"./chevron-right-DqqmezXC.js";import{t as f}from"./menu-Bjq0lFxx.js";import{t as p}from"./file-text-Cw--uc4C.js";import{t as m}from"./loader-circle-D1pLQlMh.js";import{t as h}from"./pencil-rKUVpppO.js";import{t as g}from"./x-CwzRJv9J.js";import{E as _}from"./src-4xooMXeT.js";import{t as v}from"./input-DR1eB4a1.js";import{t as y}from"./modal-cdtdc8dA.js";import{n as b,t as x}from"./panel-item-vXPWJAXs.js";import{t as S}from"./confirm-dialog-DW84Cxfq.js";import{Cr as C,Sr as w,_r as T,br as E,vr as D,xr as O,yr as k}from"./sdk.gen-Bz2u5Wv3.js";import{n as A}from"./use-is-mobile-DJUk0lC8.js";import{n as j}from"./native-file-B1HraJR0.js";import{H as M,Ti as ee,V as N,Zi as P,aa as F,ji as I,la as L,mi as R,na as z,oa as te,ra as B,ta as V,ui as H}from"./index-DQkD5WCi.js";import{t as U}from"./use-active-assistant-id-BBHOMQFe.js";import{n as W,t as G}from"./mobile-sidebar-drawer-B1beyKRx.js";import{i as K,n as ne,r as q,t as J}from"./file-editor-XdAW-U3o.js";import{t as Y}from"./format-file-size-BfZOpPdu.js";var re=l(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),ie=l(`arrow-down-wide-narrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),ae=l(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),X=l(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),Z=e(t(),1);async function oe(e){let{data:t,error:n}=await D({path:{assistant_id:e.assistantId},query:{path:e.path,...e.showHidden?{showHidden:`true`}:{}},parseAs:`blob`,throwOnError:!1});if(n||!(t instanceof Blob))throw Error(`Failed to download file`);await j(t,e.filename)}function se(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function ce(e,t){return se(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function le(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function ue(e){return e.split(`/`).some(e=>e.startsWith(`.`))}var Q=s();function de(e){return c({queryFn:async()=>{let{data:t,error:n}=await k({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function fe({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=p;return n.startsWith(`image/`)?r=P:n.startsWith(`video/`)?r=H:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=z),(0,Q.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 10%, transparent)`},children:(0,Q.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function pe({viewMode:e,onChange:t}){return(0,Q.jsx)(`div`,{className:`inline-flex rounded-md p-0.5`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`},children:[`preview`,`source`].map(r=>{let i=e===r;return(0,Q.jsx)(n,{variant:`ghost`,onClick:()=>t(r),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:i?`var(--surface-lift)`:`transparent`,color:i?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:i?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:r===`preview`?`Preview`:`Source`},r)})})}function $({name:e,mimeType:t,size:n,rightContent:r}){return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(fe,{mimeType:t}),(0,Q.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,Q.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:Y(n)})]}),r]})}function me({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:i,isLoading:o}=a({queryFn:async()=>{let n=await D({path:{assistant_id:e},query:{path:t,...r?{showHidden:`true`}:{}},parseAs:`blob`});if(n.error)throw n.error;return n.data},queryKey:[`assistantsWorkspaceFileContentRetrieve`,{assistantId:e,path:t,showHidden:r}],enabled:!!t}),[s,c]=(0,Z.useState)(null);return(0,Z.useEffect)(()=>{if(!i)return;let e=URL.createObjectURL(i);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[i]),o?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Q.jsx)(m,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Q.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Q.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function he({assistantId:e,path:t,name:r,mimeType:i,size:a,modifiedAt:o,showHidden:s}){let[c,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(!1),f=(0,Z.useCallback)(async()=>{d(!1),l(!0);try{await oe({assistantId:e,path:t,filename:r,showHidden:s})}catch{d(!0)}finally{l(!1)}},[e,t,r,s]);return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:r,mimeType:i,size:a}),(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,Q.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border p-6 text-center`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,Q.jsx)(z,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,Q.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:r}),(0,Q.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:i}),(0,Q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:Y(a,`Unknown size`)}),o&&(0,Q.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(o).toLocaleString()]})]}),(0,Q.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:c?(0,Q.jsx)(m,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(L,{"aria-hidden":!0}),onClick:f,disabled:c,"aria-label":`Download ${r}`,className:`mt-4`,children:c?`Downloading…`:`Download`}),u&&(0,Q.jsx)(`p`,{className:`mt-2 text-body-small-default`,style:{color:`var(--system-error)`},children:`Download failed. Try again.`})]})})]})}function ge({assistantId:e,selectedPath:t,showHidden:r,viewMode:s,onChangeViewMode:c,onBrowse:l,pathRename:u,pathDelete:d}){let f=i(),{data:p,isLoading:h}=a({...de({path:{assistant_id:e},query:{path:t??``,showHidden:r}}),enabled:!!t}),[g,_]=(0,Z.useState)(null),[v,y]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{if(!u)return;let{from:e,to:t}=u,n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;_(e=>e==null?e:n(e)),y(e=>e==null?e:{...e,path:n(e.path)})},[u]),(0,Z.useEffect)(()=>{if(!d)return;let{path:e}=d,t=t=>t===e||t.startsWith(`${e}/`);_(e=>e!=null&&t(e)?null:e),y(e=>e!=null&&t(e.path)?null:e)},[d]);let b=g!=null&&g===t,x=p?.content??``,S=v?.path===t?v.content:x,w=()=>{_(null),y(null)},T=o({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await C({path:{assistant_id:e},body:{path:t,content:n,encoding:`utf8`},throwOnError:!1});if(!i?.ok||r)throw Error(`Failed to save file`)},onSuccess:(e,t)=>{_(e=>e===t.path?null:e),y(e=>e?.path===t.path?null:e),f.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),E=S!==x,D=(0,Z.useCallback)(()=>{t&&E&&!T.isPending&&T.mutate({path:t,content:S})},[t,E,T,S]);if(!t)return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,Q.jsx)(n,{type:`button`,onClick:l,leftIcon:(0,Q.jsx)(ae,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(h)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(m,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!p)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let O=p.mimeType??`application/octet-stream`,k=p.name??t.split(`/`).pop()??t,A=M(k,O),j=ce(k,O),ee=p.content!=null&&!A&&!j,P=t?ue(t):!0,F=b&&(0,Q.jsx)(ne,{isDirty:E,isSaving:T.isPending,error:T.isError?`Save failed`:null,onSave:D,onDiscard:w});if(A&&p.content!=null){let e=b?S:p.content;return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:k,mimeType:O,rightContent:(0,Q.jsx)(pe,{viewMode:s,onChange:e=>{b&&w(),c(e)}})}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(J,{content:e,fileName:k,mimeType:O,showEdit:!P&&s===`source`,isEditing:b,onToggleEdit:()=>b?w():_(t)}),s===`preview`?(0,Q.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Q.jsx)(N,{content:e})}):b?(0,Q.jsx)(q,{value:S,onChange:e=>y({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content,readOnly:P,onStartEdit:()=>_(t)})]}),F]})}if(j&&p.content!=null){let e=b?S:p.content,n=le(e);return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:k,mimeType:O,rightContent:(0,Q.jsx)(pe,{viewMode:s,onChange:e=>{b&&w(),c(e)}})}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(J,{content:s===`preview`?n:e,downloadContent:e,fileName:k,mimeType:O,showEdit:!P&&s===`source`,isEditing:b,onToggleEdit:()=>b?w():_(t)}),s===`preview`?(0,Q.jsx)(K,{content:n,readOnly:!0,whiteSpace:`pre`}):b?(0,Q.jsx)(q,{value:S,onChange:e=>y({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content,readOnly:P,onStartEdit:()=>_(t)})]}),F]})}return ee?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:k,mimeType:O,size:p.size}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(J,{content:b?S:p.content??``,fileName:k,mimeType:O,showEdit:!P,isEditing:b,onToggleEdit:()=>b?w():_(t)}),b?(0,Q.jsx)(q,{value:S,onChange:e=>y({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content??``,readOnly:P,onStartEdit:()=>_(t)})]}),F]}):O.startsWith(`image/`)||O.startsWith(`video/`)?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:k,mimeType:O,size:p.size}),(0,Q.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,Q.jsx)(me,{assistantId:e,path:t,mimeType:O,showHidden:r})})]}):(0,Q.jsx)(he,{assistantId:e,path:t,name:k,mimeType:O,size:p.size,modifiedAt:p.modifiedAt,showHidden:r})}function _e(e,t){if(t===`name`)return e;let n=e.slice();return n.sort((e,t)=>{let n=e.size??null,r=t.size??null;return n===null&&r===null?(e.name??``).localeCompare(t.name??``):n===null?1:r===null?-1:n===r?(e.name??``).localeCompare(t.name??``):r-n}),n}function ve(e){return c({queryFn:async()=>{let t={};e.query?.path&&(t.path=e.query.path),e.query?.showHidden&&(t.showHidden=`true`),e.query?.includeDirSizes&&(t.includeDirSizes=`true`);let{data:n,error:r}=await w({path:e.path,query:t});if(r)throw r;if(!n)throw Error(`Failed to load workspace tree`);return n},queryKey:[`assistantsWorkspaceTreeRetrieve`,e]})}async function ye(e,t,n,r){let i=n.toLowerCase(),a=r?.toLowerCase(),{data:o}=await w({path:{assistant_id:e},query:t?{path:t}:{}});if(o?.entries?.some(e=>{let t=(e.name??``).toLowerCase();return t===i&&t!==a}))throw Error(`"${n}" already exists here.`)}function be({entry:e}){return e.type===`directory`?(0,Q.jsx)(V,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Q.jsx)(P,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Q.jsx)(H,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(p,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function xe({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:g}){let v=e.path??``,y=e.name??``,b=e.type===`directory`,x=n.has(v),S=r===v,C=y.startsWith(`.`),w=!ue(v),T=b&&(x||s.length>0),{data:E}=a({...ve({path:{assistant_id:t},query:{path:v,showHidden:i,includeDirSizes:o===`size`}}),enabled:b&&T}),D=(0,Z.useMemo)(()=>_e(E?.entries??[],o),[E?.entries,o]),O=s===``||y.toLowerCase().includes(s);if(s!==``&&!b&&!O)return null;let k=(0,Q.jsxs)(`button`,{onClick:()=>{b?c(v):l(v)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${g*14+8}px`,paddingRight:`8px`,color:S?`var(--content-default)`:C?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:S?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:C&&!S?.7:1},children:[b?T?(0,Q.jsx)(u,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(d,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,Q.jsx)(be,{entry:e}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:y}),e.size!=null&&(0,Q.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:Y(e.size)})]});return(0,Q.jsxs)(`div`,{children:[w?(0,Q.jsxs)(_.Root,{children:[(0,Q.jsx)(_.Trigger,{children:k}),(0,Q.jsxs)(_.Content,{children:[b&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(_.Item,{leftIcon:(0,Q.jsx)(B,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`file`,parentPath:v}),children:`New File`}),(0,Q.jsx)(_.Item,{leftIcon:(0,Q.jsx)(X,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`folder`,parentPath:v}),children:`New Folder`}),(0,Q.jsx)(_.Separator,{})]}),(0,Q.jsx)(_.Item,{leftIcon:(0,Q.jsx)(R,{className:`h-3.5 w-3.5`}),onSelect:()=>f({path:v,name:y,isDirectory:b}),children:`Delete`}),(0,Q.jsx)(_.Item,{leftIcon:(0,Q.jsx)(h,{className:`h-3.5 w-3.5`}),onSelect:()=>p({path:v,name:y,isDirectory:b}),children:`Rename`})]})]}):k,b&&T&&D.length>0&&(0,Q.jsx)(`div`,{children:D.map(e=>(0,Q.jsx)(xe,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:g+1},e.path))})]})}function Se({title:e,placeholder:t,confirmLabel:r,pendingLabel:i,initialName:a,onCancel:o,onConfirm:s,pending:c,error:l}){let u=(0,Z.useRef)(null),[d,f]=(0,Z.useState)(a??``),p=d.trim(),m=p.length>0&&(/[/\\]/.test(p)||p===`.`||p===`..`),h=p.length>0&&!m&&!c;return(0,Q.jsx)(y.Root,{open:!0,onOpenChange:e=>{!e&&!c&&o()},children:(0,Q.jsx)(y.Content,{size:`sm`,hideCloseButton:!0,"aria-describedby":void 0,onOpenAutoFocus:e=>{e.preventDefault();let t=u.current;t&&(t.focus(),requestAnimationFrame(()=>{t.setSelectionRange(0,t.value.length)}))},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),c||o()},children:(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),h&&s(p)},children:[(0,Q.jsx)(y.Header,{children:(0,Q.jsx)(y.Title,{children:e})}),(0,Q.jsx)(y.Body,{children:(0,Q.jsx)(v,{ref:u,label:`Name`,value:d,onChange:e=>f(e.target.value),placeholder:t,errorText:l??(m?`Enter a single file or folder name without slashes.`:void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Q.jsxs)(y.Footer,{children:[(0,Q.jsx)(n,{type:`button`,variant:`outlined`,onClick:o,disabled:c,children:`Cancel`}),(0,Q.jsx)(n,{type:`submit`,variant:`primary`,disabled:!h,children:c?i:r})]})]})})})}function Ce({assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:f,onChangeSortMode:p,onPathDeleted:m,onPathRenamed:h}){let _=i(),[y,b]=(0,Z.useState)(``),x=y.trim().toLowerCase(),[w,D]=(0,Z.useState)(!1),[k,A]=(0,Z.useState)(null),[j,M]=(0,Z.useState)(null),N=(0,Z.useCallback)(()=>{A(null),M(null)},[]),{data:P,isLoading:I}=a(ve({path:{assistant_id:e},query:{showHidden:s,includeDirSizes:c===`size`}})),L=(0,Z.useMemo)(()=>_e(P?.entries??[],c),[P?.entries,c]),R=(0,Z.useCallback)(()=>{for(let e of[`assistantsWorkspaceTreeRetrieve`,`assistantsWorkspaceFileRetrieve`,`assistantsWorkspaceFileContentRetrieve`])_.invalidateQueries({queryKey:[e]})},[_]),z=o({mutationFn:async t=>{let n=t.parentPath?`${t.parentPath}/${t.name}`:t.name;await ye(e,t.parentPath,t.name);let{error:r,response:i}=t.kind===`file`?await C({path:{assistant_id:e},body:{path:n,content:``,encoding:`utf8`},throwOnError:!1}):await E({path:{assistant_id:e},body:{path:n},throwOnError:!1});if(r||!i?.ok)throw Error(typeof r==`string`?r:`Failed to create — check the name and try again.`);return{...t,path:n}},onSuccess:e=>{N(),R(),e.parentPath&&u(e.parentPath),e.kind===`file`?d(e.path):u(e.path)},onError:e=>{M(e instanceof Error?e.message:`Failed to create.`)}}),B=o({mutationFn:async t=>{let n=t.oldPath.lastIndexOf(`/`),r=n===-1?``:t.oldPath.slice(0,n),i=t.oldPath.slice(n+1),a=r?`${r}/${t.newName}`:t.newName;await ye(e,r,t.newName,i);let{error:o,response:s}=await O({path:{assistant_id:e},body:{oldPath:t.oldPath,newPath:a},throwOnError:!1});if(o||!s?.ok)throw Error(typeof o==`string`?o:`Failed to rename — check the name and try again.`);return{oldPath:t.oldPath,newPath:a}},onSuccess:({oldPath:e,newPath:t})=>{N(),R(),h(e,t)},onError:e=>{M(e instanceof Error?e.message:`Failed to rename.`)}}),V=(0,Z.useCallback)(e=>{M(null),A({type:`create`,...e})},[]),H=(0,Z.useCallback)(e=>{M(null),A({type:`rename`,path:e.path,name:e.name})},[]),[U,W]=(0,Z.useState)(null),G=o({mutationFn:async t=>{let{error:n,response:r}=await T({path:{assistant_id:e},body:{path:t.path},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to delete — try again.`);return t},onSuccess:e=>{W(null),R(),m(e.path)}}),K=(0,Z.useCallback)(e=>{G.reset(),W(e)},[G]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:c===`size`?(0,Q.jsx)(ie,{"aria-hidden":!0}):(0,Q.jsx)(re,{"aria-hidden":!0}),onClick:()=>p(c===`size`?`name`:`size`),"aria-label":c===`size`?`Sort by name`:`Sort by size`,title:c===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:c===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s?(0,Q.jsx)(F,{"aria-hidden":!0}):(0,Q.jsx)(te,{"aria-hidden":!0}),onClick:f,"aria-label":s?`Hide hidden files`:`Show hidden files`,title:s?`Hide hidden files`:`Show hidden files`,tintColor:s?`var(--content-default)`:`var(--content-tertiary)`}),(0,Q.jsx)(we,{open:w,onOpenChange:D,onSelectKind:e=>{D(!1),V({kind:e,parentPath:``})}})]})]}),(0,Q.jsx)(`div`,{className:`px-3 py-2`,children:(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(v,{type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`Search files`,leftIcon:(0,Q.jsx)(ee,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),y&&(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(g,{"aria-hidden":!0}),onClick:()=>b(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:I?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):L.length?L.map(n=>(0,Q.jsx)(xe,{entry:n,assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,searchLower:x,onToggleExpand:l,onSelectPath:d,onRequestDelete:K,onRequestRename:H,onRequestCreate:V,depth:0},n.path)):(0,Q.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),k?.type===`create`&&(0,Q.jsx)(Se,{title:k.kind===`file`?`New File`:`New Folder`,placeholder:k.kind===`file`?`filename.md`:`folder-name`,confirmLabel:`Create`,pendingLabel:`Creating…`,onCancel:N,onConfirm:e=>{M(null),z.mutate({kind:k.kind,parentPath:k.parentPath,name:e})},pending:z.isPending,error:j},`create-${k.kind}-${k.parentPath}`),k?.type===`rename`&&(0,Q.jsx)(Se,{title:`Rename`,placeholder:k.name,confirmLabel:`Rename`,pendingLabel:`Renaming…`,initialName:k.name,onCancel:N,onConfirm:e=>{if(e===k.name){N();return}M(null),B.mutate({oldPath:k.path,newName:e})},pending:B.isPending,error:j},`rename-${k.path}`),(0,Q.jsx)(S,{open:U!==null,title:U?.isDirectory?`Delete Folder`:`Delete File`,message:(0,Q.jsxs)(Q.Fragment,{children:[`Are you sure you want to delete`,` `,(0,Q.jsx)(`span`,{style:{color:`var(--content-default)`},children:U?.name}),U?.isDirectory?` and all of its contents`:``,`? This cannot be undone.`,G.error&&(0,Q.jsx)(`span`,{className:`mt-2 block`,style:{color:`var(--system-negative-strong)`},children:G.error.message})]}),confirmLabel:G.isPending?`Deleting…`:`Delete`,destructive:!0,isPending:G.isPending,onConfirm:()=>{U&&G.mutate(U)},onCancel:()=>W(null)})]})}function we({open:e,onOpenChange:t,onSelectKind:r}){return A()?(0,Q.jsxs)(b.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(b.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(I,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(b.Content,{children:[(0,Q.jsx)(b.Header,{className:`sr-only`,children:(0,Q.jsx)(b.Title,{children:`Create new`})}),(0,Q.jsxs)(b.Body,{className:`pt-0`,children:[(0,Q.jsx)(x,{icon:B,label:`New File`,onSelect:()=>r(`file`)}),(0,Q.jsx)(x,{icon:X,label:`New Folder`,onSelect:()=>r(`folder`)})]})]})]}):(0,Q.jsxs)(f.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(f.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(I,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(f.Content,{align:`end`,sideOffset:4,children:[(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(B,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`file`),children:`New File`}),(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(X,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`folder`),children:`New Folder`})]})]})}function Te(e){let t=e.split(`/`),n=new Set;for(let e=1;e<t.length;e++)n.add(t.slice(0,e).join(`/`));return n}function Ee({assistantId:e}){let[t,n]=r(),[i,a]=(0,Z.useState)(()=>{let e=t.get(`file`);return e?Te(e):new Set}),[o,s]=(0,Z.useState)(()=>t.get(`file`)),[c,l]=(0,Z.useState)(!1),[u,d]=(0,Z.useState)(()=>t.get(`sort`)===`size`?`size`:`name`),[f,p]=(0,Z.useState)(`preview`);(0,Z.useEffect)(()=>{t.get(`file`)&&n(e=>{let t=new URLSearchParams(e);return t.delete(`file`),t},{replace:!0})},[]);let m=(0,Z.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),h=(0,Z.useCallback)(e=>{a(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[g,_]=(0,Z.useState)(!1),v=(0,Z.useCallback)(e=>{s(e),_(!1)},[]),[y,b]=(0,Z.useState)(null),x=(0,Z.useCallback)(e=>{let t=t=>t===e||t.startsWith(`${e}/`);s(e=>e!==null&&t(e)?null:e),a(e=>{let n=new Set([...e].filter(e=>!t(e)));return n.size===e.size?e:n}),b({path:e})},[]),[S,C]=(0,Z.useState)(null),w={assistantId:e,expandedPaths:i,selectedPath:o,showHidden:c,sortMode:u,onToggleExpand:m,onExpandPath:h,onSelectPath:v,onToggleShowHidden:()=>l(e=>!e),onChangeSortMode:d,onPathDeleted:x,onPathRenamed:(0,Z.useCallback)((e,t)=>{let n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;s(e=>e===null?e:n(e)),a(e=>{let t=!1,r=new Set;for(let i of e){let e=n(i);e!==i&&(t=!0),r.add(e)}return t?r:e}),C({from:e,to:t})},[])};return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,Q.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,Q.jsx)(W,{onClick:()=>_(!0)})}),(0,Q.jsx)(G,{open:g,onClose:()=>_(!1),title:`Files`,children:(0,Q.jsx)(Ce,{...w})}),(0,Q.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,Q.jsx)(`div`,{className:`hidden min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border sm:flex`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Q.jsx)(Ce,{...w})}),(0,Q.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Q.jsx)(ge,{assistantId:e,selectedPath:o,showHidden:c,viewMode:f,onChangeViewMode:p,onBrowse:()=>_(!0),pathRename:S,pathDelete:y})})]})]})}function De(){return(0,Q.jsx)(Ee,{assistantId:U()})}export{De as WorkspacePage};
package/dist/index.html CHANGED
@@ -10,49 +10,49 @@
10
10
  <link rel="apple-touch-icon" href="/assistant/favicon.svg" />
11
11
  <title>Vellum Assistant</title>
12
12
  <script src="/assistant/theme-init.js"></script>
13
- <script type="module" crossorigin src="/assistant/assets/index-h-RcC6AV.js"></script>
13
+ <script type="module" crossorigin src="/assistant/assets/index-DQkD5WCi.js"></script>
14
14
  <link rel="modulepreload" crossorigin href="/assistant/assets/chunk-jRWAZmH_.js">
15
15
  <link rel="modulepreload" crossorigin href="/assistant/assets/preload-helper-BewR0kVT.js">
16
16
  <link rel="modulepreload" crossorigin href="/assistant/assets/is-electron-LEymSS4C.js">
17
17
  <link rel="modulepreload" crossorigin href="/assistant/assets/react-DJZBPgpf.js">
18
18
  <link rel="modulepreload" crossorigin href="/assistant/assets/create-selectors-DxrPZQND.js">
19
19
  <link rel="modulepreload" crossorigin href="/assistant/assets/local-settings-lVNyIOJ_.js">
20
- <link rel="modulepreload" crossorigin href="/assistant/assets/local-mode-BKjasCuE.js">
21
- <link rel="modulepreload" crossorigin href="/assistant/assets/api-0e_UoYfV.js">
20
+ <link rel="modulepreload" crossorigin href="/assistant/assets/local-mode-YoUYEn7C.js">
21
+ <link rel="modulepreload" crossorigin href="/assistant/assets/api-bHQ_ZhgO.js">
22
22
  <link rel="modulepreload" crossorigin href="/assistant/assets/client.gen-AQhSugfA.js">
23
23
  <link rel="modulepreload" crossorigin href="/assistant/assets/sdk.gen-B3bmXhSv.js">
24
24
  <link rel="modulepreload" crossorigin href="/assistant/assets/client.gen-V_HNquaL.js">
25
25
  <link rel="modulepreload" crossorigin href="/assistant/assets/sdk.gen-Bz2u5Wv3.js">
26
26
  <link rel="modulepreload" crossorigin href="/assistant/assets/api-errors-DZ6ckXtC.js">
27
- <link rel="modulepreload" crossorigin href="/assistant/assets/api-DqXotrgH.js">
27
+ <link rel="modulepreload" crossorigin href="/assistant/assets/api-DXLi4DU7.js">
28
28
  <link rel="modulepreload" crossorigin href="/assistant/assets/device-settings-BBwtGKJb.js">
29
29
  <link rel="modulepreload" crossorigin href="/assistant/assets/return-to-BbdJZupb.js">
30
30
  <link rel="modulepreload" crossorigin href="/assistant/assets/routes-iUGoIqW2.js">
31
31
  <link rel="modulepreload" crossorigin href="/assistant/assets/dist-C3LFhPgk2.js">
32
- <link rel="modulepreload" crossorigin href="/assistant/assets/native-biometric-BnmJczno.js">
33
- <link rel="modulepreload" crossorigin href="/assistant/assets/remote-gateway-session-YFtricXJ.js">
32
+ <link rel="modulepreload" crossorigin href="/assistant/assets/native-biometric-uwPAd9lh.js">
33
+ <link rel="modulepreload" crossorigin href="/assistant/assets/remote-gateway-session-uLbl0yn7.js">
34
34
  <link rel="modulepreload" crossorigin href="/assistant/assets/event-bus-BXKLAX-e.js">
35
35
  <link rel="modulepreload" crossorigin href="/assistant/assets/capture-error-CmeVLfq0.js">
36
- <link rel="modulepreload" crossorigin href="/assistant/assets/resolved-assistants-store-BOajMG3X.js">
36
+ <link rel="modulepreload" crossorigin href="/assistant/assets/resolved-assistants-store-DccydJ5N.js">
37
37
  <link rel="modulepreload" crossorigin href="/assistant/assets/typed-storage-T9jtK5c0.js">
38
38
  <link rel="modulepreload" crossorigin href="/assistant/assets/jsx-runtime-CVSDxk6A.js">
39
39
  <link rel="modulepreload" crossorigin href="/assistant/assets/QueryClientProvider-DKhXIxGb.js">
40
40
  <link rel="modulepreload" crossorigin href="/assistant/assets/useQuery-B45lW1Kk.js">
41
- <link rel="modulepreload" crossorigin href="/assistant/assets/auth-store-DgOhGrxy.js">
41
+ <link rel="modulepreload" crossorigin href="/assistant/assets/auth-store-CI4EhvE5.js">
42
42
  <link rel="modulepreload" crossorigin href="/assistant/assets/avatar-svg-compositor-BnVOXsYU.js">
43
- <link rel="modulepreload" crossorigin href="/assistant/assets/proxy-CcvD-YbW.js">
44
- <link rel="modulepreload" crossorigin href="/assistant/assets/use-reduced-motion-Bs2JODRV.js">
43
+ <link rel="modulepreload" crossorigin href="/assistant/assets/proxy-CheNMUr6.js">
44
+ <link rel="modulepreload" crossorigin href="/assistant/assets/use-reduced-motion-DUPDDLHh.js">
45
45
  <link rel="modulepreload" crossorigin href="/assistant/assets/createLucideIcon-IRfcSUxS.js">
46
- <link rel="modulepreload" crossorigin href="/assistant/assets/animated-avatar-DmRY8KgY.js">
46
+ <link rel="modulepreload" crossorigin href="/assistant/assets/animated-avatar-KEsxQUWX.js">
47
47
  <link rel="modulepreload" crossorigin href="/assistant/assets/prechat-UQXfXf5i.js">
48
- <link rel="modulepreload" crossorigin href="/assistant/assets/platform-detection-BeYxHNWy.js">
48
+ <link rel="modulepreload" crossorigin href="/assistant/assets/platform-detection-CY-O-Rjc.js">
49
49
  <link rel="modulepreload" crossorigin href="/assistant/assets/impersonate-version-flag-DudbyPBi.js">
50
50
  <link rel="modulepreload" crossorigin href="/assistant/assets/assistant-identity-store-Cp3CD7d1.js">
51
51
  <link rel="modulepreload" crossorigin href="/assistant/assets/effective-timezone-DAkNzd21.js">
52
52
  <link rel="modulepreload" crossorigin href="/assistant/assets/semver-DLY9hF7h.js">
53
- <link rel="modulepreload" crossorigin href="/assistant/assets/messages-DBpQngan.js">
53
+ <link rel="modulepreload" crossorigin href="/assistant/assets/messages-3teOY9CI.js">
54
54
  <link rel="modulepreload" crossorigin href="/assistant/assets/chat-Bn41Y5yM.js">
55
- <link rel="modulepreload" crossorigin href="/assistant/assets/diagnostics-BeHaQeqH.js">
55
+ <link rel="modulepreload" crossorigin href="/assistant/assets/diagnostics-BUlVBxem.js">
56
56
  <link rel="modulepreload" crossorigin href="/assistant/assets/conversation-store-COUX81g-.js">
57
57
  <link rel="modulepreload" crossorigin href="/assistant/assets/bundle-mjs-BZt35okJ.js">
58
58
  <link rel="modulepreload" crossorigin href="/assistant/assets/misc-CfQwP_zq.js">
@@ -92,12 +92,13 @@
92
92
  <link rel="modulepreload" crossorigin href="/assistant/assets/tag-BizaosUX.js">
93
93
  <link rel="modulepreload" crossorigin href="/assistant/assets/toggle-D7S110RM.js">
94
94
  <link rel="modulepreload" crossorigin href="/assistant/assets/src-4xooMXeT.js">
95
- <link rel="modulepreload" crossorigin href="/assistant/assets/detail-shell-IAIYU5Nw.js">
96
- <link rel="modulepreload" crossorigin href="/assistant/assets/composer-focus-BFE2rR8u.js">
97
- <link rel="modulepreload" crossorigin href="/assistant/assets/by-tool-use-id-index-BJXnd5Qe.js">
98
- <link rel="modulepreload" crossorigin href="/assistant/assets/subagent-store-4h5V2lNX.js">
95
+ <link rel="modulepreload" crossorigin href="/assistant/assets/detail-shell-q6GjKJ6F.js">
96
+ <link rel="modulepreload" crossorigin href="/assistant/assets/composer-focus-BBTBdAab.js">
97
+ <link rel="modulepreload" crossorigin href="/assistant/assets/by-tool-use-id-index-h0TggD-a.js">
98
+ <link rel="modulepreload" crossorigin href="/assistant/assets/subagent-store-DjUgx1D2.js">
99
99
  <link rel="modulepreload" crossorigin href="/assistant/assets/conversation-selection-oLES1vkM.js">
100
- <link rel="modulepreload" crossorigin href="/assistant/assets/prefs-BWxDWusW.js">
100
+ <link rel="modulepreload" crossorigin href="/assistant/assets/prefs-Bo9fZ56w.js">
101
+ <link rel="modulepreload" crossorigin href="/assistant/assets/research-onboarding-persistence-B8R5Wv2v.js">
101
102
  <link rel="modulepreload" crossorigin href="/assistant/assets/useMutation-Lj4VunQV.js">
102
103
  <link rel="modulepreload" crossorigin href="/assistant/assets/infiniteQueryOptions-C6p49ZmI.js">
103
104
  <link rel="modulepreload" crossorigin href="/assistant/assets/queryOptions-BtNi-_9H.js">
@@ -106,27 +107,27 @@
106
107
  <link rel="modulepreload" crossorigin href="/assistant/assets/sdk.gen-YX4BQpM7.js">
107
108
  <link rel="modulepreload" crossorigin href="/assistant/assets/use-bus-subscription-YZjoe_RT.js">
108
109
  <link rel="modulepreload" crossorigin href="/assistant/assets/use-is-mobile-DJUk0lC8.js">
109
- <link rel="modulepreload" crossorigin href="/assistant/assets/use-is-org-ready-DB20AlbJ.js">
110
- <link rel="modulepreload" crossorigin href="/assistant/assets/build-state-Bdkg8KmL.js">
111
- <link rel="modulepreload" crossorigin href="/assistant/assets/login-flow-BGsTwM6S.js">
110
+ <link rel="modulepreload" crossorigin href="/assistant/assets/use-is-org-ready-Dtge_dC5.js">
111
+ <link rel="modulepreload" crossorigin href="/assistant/assets/build-state-D96tiPPg.js">
112
+ <link rel="modulepreload" crossorigin href="/assistant/assets/login-flow-CFhW2AHB.js">
112
113
  <link rel="modulepreload" crossorigin href="/assistant/assets/chunk-5KNZJZUH-DdS6bb-3.js">
113
- <link rel="modulepreload" crossorigin href="/assistant/assets/use-onboarding-login-D2THX3c2.js">
114
+ <link rel="modulepreload" crossorigin href="/assistant/assets/use-onboarding-login-9378MpEq.js">
114
115
  <link rel="modulepreload" crossorigin href="/assistant/assets/utils-Cv6Fontd.js">
115
116
  <link rel="modulepreload" crossorigin href="/assistant/assets/feature-flag-catalog-Ca2Lo1Sx.js">
116
117
  <link rel="modulepreload" crossorigin href="/assistant/assets/sound-manager-CX_nIxe3.js">
117
- <link rel="modulepreload" crossorigin href="/assistant/assets/client-identity-BsH7W9OY.js">
118
- <link rel="modulepreload" crossorigin href="/assistant/assets/browser-C1qhxIRO.js">
119
- <link rel="modulepreload" crossorigin href="/assistant/assets/native-deep-link-Dd6T5Ttd.js">
120
- <link rel="modulepreload" crossorigin href="/assistant/assets/native-file-BXeEnGEz.js">
118
+ <link rel="modulepreload" crossorigin href="/assistant/assets/client-identity-jhypHe7Y.js">
119
+ <link rel="modulepreload" crossorigin href="/assistant/assets/browser-CP3oEvln.js">
120
+ <link rel="modulepreload" crossorigin href="/assistant/assets/native-deep-link-C13QIbW2.js">
121
+ <link rel="modulepreload" crossorigin href="/assistant/assets/native-file-B1HraJR0.js">
121
122
  <link rel="modulepreload" crossorigin href="/assistant/assets/assistant-feature-flag-store-BRGydSRn.js">
122
123
  <link rel="modulepreload" crossorigin href="/assistant/assets/client-feature-flag-store-C0Tjm-Hl.js">
123
124
  <link rel="modulepreload" crossorigin href="/assistant/assets/viewer-store-C8L5A-BB.js">
124
125
  <link rel="modulepreload" crossorigin href="/assistant/assets/conversation-list-fetchers-ogeilsCp.js">
125
- <link rel="modulepreload" crossorigin href="/assistant/assets/edit-chat-session-BLO0v3Pn.js">
126
- <link rel="modulepreload" crossorigin href="/assistant/assets/haptics-CZP4j_TX.js">
127
- <link rel="modulepreload" crossorigin href="/assistant/assets/public-asset-CsdLlNtA.js">
128
- <link rel="modulepreload" crossorigin href="/assistant/assets/workflow-status-C3wba8AX.js">
129
- <link rel="modulepreload" crossorigin href="/assistant/assets/AnimatePresence-CmYDLs_U.js">
126
+ <link rel="modulepreload" crossorigin href="/assistant/assets/edit-chat-session-phEigSQo.js">
127
+ <link rel="modulepreload" crossorigin href="/assistant/assets/haptics-CABfN3Hg.js">
128
+ <link rel="modulepreload" crossorigin href="/assistant/assets/public-asset-BpAVsx77.js">
129
+ <link rel="modulepreload" crossorigin href="/assistant/assets/workflow-status-CHd73wxx.js">
130
+ <link rel="modulepreload" crossorigin href="/assistant/assets/AnimatePresence-Oxz4BTMX.js">
130
131
  <link rel="modulepreload" crossorigin href="/assistant/assets/archive-0aqysuyd.js">
131
132
  <link rel="modulepreload" crossorigin href="/assistant/assets/arrow-left-DI9551VI.js">
132
133
  <link rel="modulepreload" crossorigin href="/assistant/assets/arrow-up-BxoccrRI.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vellumai/web",
3
- "version": "0.10.7-staging.1",
3
+ "version": "0.10.7-staging.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Pre-built web SPA for the Vellum Assistant",
@@ -1 +0,0 @@
1
- import{r as e}from"./chunk-jRWAZmH_.js";import{B as t,F as ee,G as te,H as n,I as ne,J as re,K as r,L as i,R as ie,U as a,V as o,W as s,X as ae,Y as c,Z as oe,q as l,z as u}from"./local-mode-BKjasCuE.js";function d(e){return oe(ne,e)}function se(e){return ae(ee,e)}var ce=i([`end_turn`,`max_tokens`,`max_turn_requests`,`refusal`,`cancelled`]),le=s({type:n(`acp_session_completed`),acpSessionId:l(),stopReason:ce}).strict(),ue=s({type:n(`acp_session_error`),acpSessionId:l(),error:l()}).strict(),de=s({type:n(`acp_session_spawned`),acpSessionId:l(),agent:l(),parentConversationId:l(),parentToolUseId:l().optional(),task:l().optional()}).strict(),fe=i([`agent_message_chunk`,`agent_thought_chunk`,`user_message_chunk`,`tool_call`,`tool_call_update`,`plan`]),pe=s({type:n(`acp_session_update`),acpSessionId:l(),updateType:fe,content:l().optional(),toolCallId:l().optional(),toolTitle:l().optional(),toolKind:l().optional(),toolStatus:l().optional(),rawInput:c().optional(),rawOutput:c().optional(),locations:u(s({path:l(),line:a().optional()})).optional(),messageId:l().optional(),seq:a().optional()}).strict(),me=s({type:n(`acp_session_usage`),acpSessionId:l(),usedTokens:a(),contextSize:a(),inputTokens:a().optional(),outputTokens:a().optional(),costAmount:a().optional(),costCurrency:l().optional()}).strict(),he=i([`idle`,`thinking`,`streaming`,`tool_running`,`awaiting_confirmation`]),ge=i([`assistant_turn`,`user_turn`,`global`]),_e=i([`message_dequeued`,`thinking_delta`,`first_text_delta`,`tool_use_start`,`preview_start`,`tool_result_received`,`confirmation_requested`,`confirmation_resolved`,`context_compacting`,`message_complete`,`generation_cancelled`,`error_terminal`]),ve=s({type:n(`assistant_activity_state`),conversationId:l(),activityVersion:a(),phase:he,anchor:ge,reason:_e,requestId:l().optional(),statusText:l().optional()}),ye=s({type:n(`assistant_text_delta`),text:l(),messageId:l().optional(),conversationId:l().optional()}),f=s({type:n(`assistant_thinking_delta`),thinking:l(),messageId:l().optional(),conversationId:l().optional(),timestampMs:a().optional()}),p=s({type:n(`assistant_turn_start`),messageId:l(),conversationId:l().optional()}),m=s({type:n(`avatar_updated`),avatarPath:l()}),h=s({type:n(`background_tool_completed`),id:l(),conversationId:l(),status:i([`completed`,`failed`,`cancelled`]),exitCode:a().nullable().optional(),output:l().optional(),completedAt:a()}),g=s({type:n(`background_tool_started`),id:l(),toolName:l(),conversationId:l(),command:l(),startedAt:a()}),_=s({type:n(`compaction_circuit_closed`),conversationId:l()}),v=s({type:n(`compaction_circuit_open`),conversationId:l(),reason:n(`3_consecutive_failures`),openUntil:a()}),y=s({label:l(),description:l(),pattern:l()}),b=s({label:l(),scope:l()}),x=s({label:l(),scope:l()}),S=s({filePath:l(),oldContent:l(),newContent:l(),isNewFile:t()}),C=i([`allow_once`,`allow_always`,`reject_once`,`reject_always`]),w=s({optionId:l(),name:l(),kind:C}),T=i([`sandbox`,`host`]),E=s({type:n(`confirmation_request`),requestId:l(),toolName:l(),input:r(l(),c()),riskLevel:l(),riskReason:l().optional(),isContainerized:t().optional(),executionTarget:T.optional(),allowlistOptions:u(y),scopeOptions:u(b),directoryScopeOptions:u(x).optional(),diff:S.optional(),conversationId:l().optional(),persistentDecisionsAllowed:t().optional(),toolUseId:l().optional(),acpToolKind:l().optional(),acpOptions:u(w).optional()}),D=s({type:n(`contact_request`),requestId:l(),channel:l().optional(),placeholder:l().optional(),label:l().optional(),description:l().optional(),role:l().optional()}),O=i([`PROVIDER_NETWORK`,`PROVIDER_RATE_LIMIT`,`MANAGED_USAGE_LIMIT`,`PROVIDER_OVERLOADED`,`PROVIDER_API`,`IMAGE_TOO_LARGE`,`PROVIDER_BILLING`,`PROVIDER_ORDERING`,`PROVIDER_WEB_SEARCH`,`PROVIDER_NOT_CONFIGURED`,`PROVIDER_INVALID_KEY`,`MANAGED_KEY_INVALID`,`CONTEXT_TOO_LARGE`,`BUDGET_YIELD_UNRECOVERED`,`MAX_TOKENS_REACHED`,`CONVERSATION_ABORTED`,`CONVERSATION_PROCESSING_FAILED`,`DISK_SPACE_CRITICAL`,`UNKNOWN`]),k=s({type:n(`conversation_error`),conversationId:l(),code:O,userMessage:l(),retryable:t(),debugDetails:l().optional(),errorCategory:l().optional(),connectionName:l().optional(),profileName:l().optional()}),A=i([`created`,`renamed`,`deleted`,`reordered`,`seen_changed`]),j=s({type:n(`conversation_list_invalidated`),reason:A}),M=i([`memory_v3`]),N=s({type:n(`conversation_notice`),conversationId:l(),source:M,code:O,userMessage:l(),errorCategory:l().optional()}),P=s({type:n(`conversation_title_updated`),conversationId:l(),title:l()}),F=i([`disabled`,`ok`,`warning`,`critical`,`unknown`]),I=i([`agent-turns`,`background-work`,`remote-ingress`]),L=s({enabled:t(),state:F,locked:t(),acknowledged:t(),overrideActive:t(),effectivelyLocked:t(),lockId:l().nullable(),usagePercent:a().nullable(),thresholdPercent:a(),path:l().nullable(),lastCheckedAt:l().nullable(),blockedCapabilities:u(I),error:l().nullable()}),R=s({type:n(`disk_pressure_status_changed`),status:L}),be=s({id:l(),surfaceId:l(),author:l(),content:l(),anchorStart:a().optional(),anchorEnd:a().optional(),anchorText:l().optional(),parentCommentId:l().optional(),status:l(),createdAt:a(),updatedAt:a()}),z=s({type:n(`document_comment_created`),conversationId:l(),surfaceId:l(),comment:be}),xe=s({type:n(`document_comment_deleted`),conversationId:l(),surfaceId:l(),commentId:l()}),Se=s({type:n(`document_comment_reopened`),conversationId:l(),surfaceId:l(),commentId:l()}),Ce=s({type:n(`document_comment_resolved`),conversationId:l(),surfaceId:l(),commentId:l(),resolvedBy:l()}),we=s({type:n(`document_editor_update`),conversationId:l(),surfaceId:l(),markdown:l(),mode:l()}),Te=s({type:n(`error`),message:l(),code:l().optional(),category:l().optional(),errorCategory:l().optional(),requestId:l().optional(),conversationId:l().optional()}),Ee=s({type:n(`generation_cancelled`),conversationId:l().optional()}),B=s({id:l().optional(),filename:l(),mimeType:l(),data:l(),sourceType:i([`sandbox_file`,`host_file`,`tool_block`]).optional(),sizeBytes:a().optional(),thumbnailData:l().optional(),fileBacked:t().optional(),filePath:l().optional()}),De=s({type:n(`generation_handoff`),conversationId:l().optional(),requestId:l().optional(),queuedCount:a(),messageId:l().optional(),attachments:u(B).optional(),attachmentWarnings:u(l()).optional()}),Oe=s({type:n(`home_feed_updated`),updatedAt:l(),newItemCount:a()}),ke=s({kind:i([`plugin`,`workspace`]),id:l()}),Ae=s({type:n(`hook_event`),conversationId:l().optional(),hookName:l(),owner:ke,detail:r(l(),c())}),je=s({type:n(`identity_changed`),name:l(),role:l(),personality:l(),emoji:l(),home:l()}),Me=i([`approved`,`rejected`,`answered`,`cancelled`,`superseded`]),Ne=s({type:n(`interaction_resolved`),requestId:l(),conversationId:l(),state:Me,kind:l()}),Pe=s({type:n(`message_complete`),messageId:l().optional(),conversationId:l().optional(),source:i([`main`,`aux`]).optional(),attachments:u(B).optional(),attachmentWarnings:u(l()).optional()}),Fe=s({type:n(`message_dequeued`),conversationId:l(),requestId:l()}),Ie=s({type:n(`message_queued`),conversationId:l(),requestId:l(),position:a()}),Le=s({type:n(`message_queued_deleted`),conversationId:l(),requestId:l()}),Re=s({type:n(`message_request_complete`),conversationId:l(),requestId:l(),runStillActive:t().optional()}),ze=s({type:n(`navigate_settings`),tab:l()}),Be=s({type:n(`notification_intent`),sourceEventName:l(),title:l(),body:l(),deliveryId:l().optional(),deepLinkMetadata:r(l(),c()).optional(),targetGuardianPrincipalId:l().optional(),silent:t().optional()}),Ve=s({type:n(`open_panel`),panelType:l(),data:r(l(),c()).optional(),conversationId:l().optional(),surfaceId:l().optional()}),He=s({type:n(`open_url`),url:l().min(1),title:l().optional(),conversationId:l().optional()}),V=s({id:l(),label:l(),description:l().optional()}),H=s({id:l(),question:l(),description:l().optional(),options:u(V),freeTextPlaceholder:l().optional()}),Ue=s({type:n(`question_request`),requestId:l(),questions:u(H),question:l(),description:l().optional(),options:u(V),freeTextPlaceholder:l().optional(),conversationId:l().optional(),toolUseId:l().optional()}),We=s({type:n(`relationship_state_updated`),updatedAt:l()}),Ge=s({type:n(`secret_request`),requestId:l(),service:l(),field:l(),label:l(),description:l().optional(),placeholder:l().optional(),conversationId:l().optional(),purpose:l().optional(),allowedTools:u(l()).optional(),allowedDomains:u(l()).optional(),allowOneTimeSend:t().optional()}),Ke=s({type:l(),content:l().optional(),text:l().optional(),result:l().optional(),input:r(l(),c()).optional(),toolName:l().optional(),isError:t().optional(),toolUseId:l().optional()}).passthrough(),qe=s({type:n(`subagent_event`),conversationId:l(),subagentId:l(),event:Ke}).strict(),Je=s({type:n(`subagent_spawned`),subagentId:l(),parentConversationId:l(),label:l(),objective:l(),isFork:t().optional(),parentToolUseId:l().optional()}).strict(),U=i([`pending`,`running`,`awaiting_input`,`completed`,`failed`,`aborted`,`interrupted`]),W=s({inputTokens:a(),outputTokens:a(),estimatedCost:a()}).strict(),Ye=s({type:n(`subagent_status_changed`),subagentId:l(),status:U,error:l().optional(),usage:W.optional()}).strict(),Xe=s({type:n(`sync_changed`),tags:u(l().min(1)).min(1),originClientId:l().min(1).optional()}),Ze=i([`tool_start`,`tool_complete`,`status`]),Qe=s({type:n(`tool_output_chunk`),chunk:l(),conversationId:l().optional(),toolUseId:l().optional(),subType:Ze.optional(),subToolName:l().optional(),subToolInput:l().optional(),subToolIsError:t().optional(),subToolId:l().optional(),messageId:l().optional()}),$e=s({pattern:l(),label:l()}),et=i([`anthropic-native`,`brave`,`perplexity`,`tavily`,`firecrawl`]),tt=i([`default`,`firecrawl`]),nt=s({rank:a(),title:l(),url:l(),domain:l(),faviconUrl:l().optional(),snippet:l().optional(),age:l().optional(),score:a().optional()}),rt=s({query:l(),provider:et,resultCount:a(),durationMs:a(),results:u(nt),errorMessage:l().optional()}),it=s({url:l(),finalUrl:l(),provider:tt.optional(),status:a(),contentType:l().optional(),byteCount:a(),charCount:a(),truncated:t(),title:l().optional(),domain:l(),faviconUrl:l().optional(),redirectCount:a(),durationMs:a(),errorMessage:l().optional(),mayRequireJavaScript:t().optional()}),G=s({webSearch:rt.optional(),webFetch:it.optional()}),at=s({type:n(`tool_result`),toolName:l(),result:l(),isError:t().optional(),diff:S.optional(),status:l().optional(),conversationId:l().optional(),imageData:l().optional(),imageDataList:u(l()).optional(),toolUseId:l().optional(),messageId:l().optional(),riskLevel:l().optional(),riskReason:l().optional(),matchedTrustRuleId:l().optional(),isContainerized:t().optional(),riskScopeOptions:u($e).optional(),riskAllowlistOptions:u(y).optional(),riskDirectoryScopeOptions:u(x).optional(),approvalMode:l().optional(),approvalReason:l().optional(),riskThreshold:l().optional(),activityMetadata:G.optional(),completedAt:a().optional()}),ot=s({type:n(`tool_use_preview_start`),toolUseId:l(),toolName:l(),conversationId:l().optional(),messageId:l().optional(),previewStartedAt:a().optional()}),st=s({type:n(`tool_use_start`),toolName:l(),input:r(l(),c()),toolUseId:l().optional(),messageId:l().optional(),conversationId:l().optional(),startedAt:a().optional(),previewStartedAt:a().optional()}),ct=s({type:n(`ui_surface_complete`),conversationId:l(),surfaceId:l(),summary:l(),submittedData:r(l(),c()).optional()}),lt=s({type:n(`ui_surface_dismiss`),conversationId:l(),surfaceId:l()}),ut=s({id:l(),label:l(),style:i([`primary`,`secondary`,`destructive`]).optional(),data:r(l(),c()).optional()}),dt=s({type:n(`ui_surface_show`),conversationId:l(),surfaceId:l(),surfaceType:l(),title:l().optional(),data:r(l(),c()),actions:u(ut).optional(),display:i([`inline`,`panel`]).optional(),messageId:l().optional(),persistent:t().optional(),toolCallId:l().optional()}),ft=s({type:n(`ui_surface_update`),conversationId:l(),surfaceId:l(),data:r(l(),c())}),K=s({type:n(`usage_progress`),conversationId:l(),inputTokens:a(),outputTokens:a(),estimatedCost:a(),model:l()}),pt=s({type:n(`usage_update`),conversationId:l(),inputTokens:a(),outputTokens:a(),cacheCreationInputTokens:a().optional(),cacheReadInputTokens:a().optional(),totalInputTokens:a(),totalOutputTokens:a(),estimatedCost:a(),model:l(),contextWindowTokens:a().optional(),contextWindowMaxTokens:a().optional()}),mt=s({type:n(`user_message_echo`),text:l(),conversationId:l().optional(),messageId:l().optional(),requestId:l().optional(),clientMessageId:l().optional()}).strict(),q=i([`running`,`completed`,`failed`,`aborted`,`cap_exceeded`,`interrupted`]),ht=s({type:n(`workflow_completed`),runId:l(),conversationId:l().optional(),status:q,agentsSpawned:a(),inputTokens:a(),outputTokens:a(),summary:l().optional()}).strict(),gt=s({type:n(`workflow_leaf_finished`),runId:l(),conversationId:l(),seq:a().int(),status:i([`completed`,`failed`]),label:l().optional(),inputTokens:a().optional(),outputTokens:a().optional(),resultSummary:l().optional()}).strict(),_t=s({type:n(`workflow_leaf_started`),runId:l(),conversationId:l(),seq:a().int(),label:l().optional(),phase:l().optional(),promptSummary:l().optional()}).strict(),vt=s({type:n(`workflow_progress`),runId:l(),conversationId:l().optional(),agentsSpawned:a(),phase:l().optional(),label:l().optional(),message:l().optional()}).strict(),yt=s({type:n(`workflow_started`),runId:l(),conversationId:l(),toolUseId:l().optional(),label:l().optional()}).strict(),bt=`syntheticAgentErrorMessage`,xt=`compactionAgent`,St=3e4,Ct=s({cursorInTextField:t().optional().describe(`Whether the cursor is in an editable text field when dictation started`)}).passthrough().describe(`Dictation context (app name, window title, bundle ID, cursor state, selected text)`),wt=s({transcription:l().describe(`Raw speech transcription`),context:Ct,profileId:l().describe(`Optional dictation profile ID`).optional()}),J=s({id:l(),filename:l(),mimeType:l(),sizeBytes:a(),kind:l(),data:l().optional(),thumbnailData:l().optional(),fileBacked:t().optional()}),Tt=s({pattern:l(),label:l()}),Et=s({label:l(),description:l(),pattern:l()}),Dt=s({scope:l(),label:l()}),Ot=s({requestId:l(),title:l().optional(),description:l().optional(),toolName:l().optional(),riskLevel:l().optional(),riskReason:l().optional(),input:r(l(),c()).optional(),allowlistOptions:u(y).optional(),scopeOptions:u(b).optional(),directoryScopeOptions:u(x).optional(),persistentDecisionsAllowed:t().optional()}),kt=s({requestId:l(),entries:u(H)}),At=i([`approved`,`denied`,`timed_out`]),Y=s({id:l().optional(),name:l(),input:r(l(),c()),result:l().optional(),isError:t().optional(),imageData:l().optional(),imageDataList:u(l()).optional(),startedAt:a().optional(),previewStartedAt:a().optional(),completedAt:a().optional(),confirmationDecision:At.optional(),confirmationLabel:l().optional(),riskLevel:l().optional(),riskReason:l().optional(),matchedTrustRuleId:l().optional(),autoApproved:t().optional(),approvalMode:l().optional(),approvalReason:l().optional(),riskThreshold:l().optional(),riskScopeOptions:u(Tt).optional(),riskAllowlistOptions:u(Et).optional(),riskDirectoryScopeOptions:u(Dt).optional(),activityMetadata:G.optional(),scopeOptions:u(b).optional(),pendingConfirmation:Ot.optional(),pendingQuestion:kt.optional()}),jt=s({id:l(),label:l(),style:l().optional(),data:r(l(),c()).optional()}),X=s({surfaceId:l(),surfaceType:l(),title:l().optional(),data:r(l(),c()),actions:u(jt).optional(),display:l().optional(),persistent:t().optional(),completed:t().optional(),completionSummary:l().optional(),toolCallId:l().optional()}),Mt=s({subagentId:l(),label:l(),status:l(),error:l().optional(),conversationId:l().optional(),objective:l().optional()}),Nt=s({acpSessionId:l(),agent:l().optional()}),Pt=s({id:l(),toolName:l(),conversationId:l(),command:l(),startedAt:a(),status:i([`completed`,`failed`,`cancelled`]),exitCode:a().nullable(),output:l(),completedAt:a()}),Ft=s({appUrl:l().optional(),webUrl:l().optional()}),It=s({emoji:l(),op:i([`added`,`removed`]),actorDisplayName:l().optional(),targetChannelTs:l()}),Lt=s({channelId:l(),channelName:l().optional(),channelTs:l(),threadTs:l().optional(),sender:s({displayName:l().optional(),externalUserId:l().optional()}).optional(),messageLink:Ft.optional(),threadLink:Ft.optional(),eventKind:i([`message`,`reaction`]).optional(),reaction:It.optional()}),Rt=s({type:n(`text`),text:l()}),zt=s({type:n(`thinking`),thinking:l(),startedAt:a().optional(),completedAt:a().optional()}),Bt=s({type:n(`tool_use`),toolCall:Y}),Vt=s({type:n(`surface`),surface:X}),Ht=s({type:n(`attachment`),attachment:J}),Ut=o(`type`,[Rt,zt,Bt,Vt,Ht]),Wt=s({id:l(),mergedMessageIds:u(l()).optional(),clientMessageId:l().optional(),role:i([`user`,`assistant`]),content:l().meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Flat plain-text body (joined text segments).`}).optional(),timestamp:l(),attachments:u(J),toolCalls:u(Y).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks (the tool_use variant). Flat list of tool calls.`}).optional(),surfaces:u(X).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks (the surface variant). Flat list of surfaces.`}).optional(),textSegments:u(l()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Text segments split by tool-call boundaries.`}).optional(),thinkingSegments:u(l()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Reasoning text extracted from thinking blocks.`}).optional(),contentOrder:u(l()).meta({deprecated:!0,description:`Deprecated: superseded by contentBlocks. Positional "<type>:<index>" content ordering (e.g. "text:0", "thinking:1").`}).optional(),contentBlocks:u(Ut).optional(),subagentNotification:Mt.optional(),acpNotification:Nt.optional(),backgroundEventNotification:t().optional(),backgroundToolCompletion:Pt.optional(),slackMessage:Lt.optional(),queueStatus:i([`queued`,`processing`]).optional(),queuePosition:a().optional()}),Gt=s({status:L}),Kt=n(`notification`),qt=i([`new`,`seen`,`acted_on`,`dismissed`]),Jt=i([`low`,`medium`,`high`,`critical`]),Yt=i([`security`,`scheduling`,`background`,`email`,`system`]),Xt=i([`heartbeat`,`memory_consolidation`,`schedule`,`auto_analysis`,`user`,`other`]),Zt=s({id:l(),label:l(),prompt:l()}),Qt=i([`emailDraft`,`documentPreview`,`permissionChat`,`paymentAuth`,`toolPermission`,`updatesList`]),$t=s({kind:Qt}),en=s({id:l(),type:Kt,priority:a().int().min(0).max(100),title:l().optional(),summary:l(),timestamp:l(),status:qt.default(`new`),expiresAt:l().optional(),actions:u(Zt).optional(),urgency:Jt.optional(),conversationId:l().optional(),detailPanel:$t.optional(),category:Yt.optional(),noteworthy:t().optional(),fromAssistant:t().optional(),metadata:r(l(),c()).optional(),sourceType:Xt.optional(),sourceKey:l().optional(),sourceLabel:l().optional(),createdAt:l()}),tn=i([`deterministic`,`assistant`]),nn=s({id:l(),label:l(),icon:l().optional(),prompt:l(),source:tn}),rn=s({greeting:l(),timeAwayLabel:l(),newCount:a().int().min(0)}),an=s({items:u(en),updatedAt:l(),contextBanner:rn,suggestedPrompts:u(nn)}),on=s({id:l(),category:i([`voice`,`world`,`priorities`]),text:l(),confidence:i([`strong`,`uncertain`]),source:i([`onboarding`,`inferred`])}),sn=s({id:l(),name:l(),description:l(),tier:i([`unlocked`,`next-up`,`earned`]),gate:l(),unlockHint:l().optional(),ctaLabel:l().optional()}),cn=s({version:n(1),assistantId:l(),tier:re([n(1),n(2),n(3),n(4)]),progressPercent:a(),facts:u(on),capabilities:u(sn),conversationCount:a(),hatchedDate:l(),assistantName:l(),userName:l().optional(),updatedAt:l()}),ln=s({key:l(),label:l(),ms:a()}),Z=s({phases:u(ln),ttftMs:a().nullish(),totalToFirstTokenMs:a().nullish(),providerDurationMs:a().nullish(),firstTokenKind:i([`thinking`,`text`]).nullish()}),un=s({provider:l().nullish(),model:l().nullish(),status:l().nullish(),inputTokens:a().nullish(),outputTokens:a().nullish(),cacheCreationInputTokens:a().nullish(),cacheReadInputTokens:a().nullish(),stopReason:l().nullish(),requestMessageCount:a().nullish(),requestToolCount:a().nullish(),responseMessageCount:a().nullish(),responseToolCallCount:a().nullish(),responsePreview:l().nullish(),toolCallNames:u(l()).nullish(),estimatedCostUsd:a().nullish(),durationMs:a().nullish()}),Q=s({kind:l(),label:l().nullish(),role:l().nullish(),text:l().nullish(),toolName:l().nullish(),data:c().optional(),language:l().nullish()}),dn=s({name:l().nullish(),message:l().nullish(),code:l().nullish(),provider:l().nullish(),statusCode:a().nullish(),retryAfterMs:a().nullish(),apiErrorCode:l().nullish(),apiErrorType:l().nullish(),apiErrorParam:l().nullish(),requestId:l().nullish()}),fn=s({id:l(),createdAt:a(),requestPayload:ie(),responsePayload:ie(),provider:l().nullish(),summary:un.nullish(),requestSections:u(Q).nullish(),responseSections:u(Q).nullish(),agentLoopExitReason:l().nullish(),callSite:l().nullish(),error:dn.nullish(),latency:Z.nullish()}),pn=s({nodeId:l(),score:a(),semanticSimilarity:a(),recencyBoost:a(),type:l().optional()}),mn=s({reason:l(),semanticUnavailable:t(),fallbackSources:u(l())}),hn=s({enabled:t(),degraded:t(),provider:l().nullable(),model:l().nullable(),degradation:mn.nullable(),semanticHits:a().nullish(),mergedCount:a().nullish(),selectedCount:a().nullish(),tier1Count:a().nullish(),tier2Count:a().nullish(),hybridSearchLatencyMs:a().nullish(),sparseVectorUsed:t().nullish(),injectedTokens:a().nullish(),latencyMs:a().nullish(),topCandidates:u(pn),injectedText:l().nullable(),reason:l().nullable(),queryContext:l().nullable()}),gn=s({slug:l(),finalActivation:a(),ownActivation:a(),priorActivation:a(),simUser:a(),simAssistant:a(),simNow:a(),simUserRerankBoost:a().optional(),simAssistantRerankBoost:a().optional(),inRerankPool:t().optional(),spreadContribution:a(),source:l(),status:l()}),_n=s({d:a(),c_user:a(),c_assistant:a(),c_now:a(),k:a(),hops:a(),top_k:a(),epsilon:a()}),vn=s({turn:a(),mode:l(),concepts:u(gn),config:_n}),yn=s({slug:l(),source:l(),pinned:t(),sectionOrdinal:a().nullable().optional(),sectionHeading:l().nullable().optional()}),bn=s({turn:a(),live:t(),selections:u(yn),injectedText:l()}),xn=s({messageId:l().nullish(),conversationKey:l().nullish(),conversationId:l().nullish(),conversationKind:l(),conversationTotalEstimatedCostUsd:a().nullish(),logs:u(fn),memoryRecall:hn.nullable(),memoryV2Activation:vn.nullable(),memoryV3Selection:bn.nullish()}),Sn=s({type:l(),content:l(),toolName:l().optional(),isError:t().optional(),messageId:l().optional(),toolUseId:l().optional(),input:r(l(),c()).optional()}),Cn=s({subagentId:l(),objective:l().optional(),status:U.optional(),usage:W.optional(),events:u(Sn)}),wn=s({seq:a().int(),kind:i([`agent`,`workflow`]),label:l().optional(),phase:l().optional(),promptSummary:l().optional(),status:l(),resultSummary:l().optional(),inputTokens:a().optional(),outputTokens:a().optional(),createdAt:a().nullable()}),Tn=s({runId:l(),status:q.optional(),agentsSpawned:a().optional(),inputTokens:a().optional(),outputTokens:a().optional(),phase:l().optional(),leaves:u(wn)}),En=s({title:l().optional(),subtitle:l().optional(),body:l().optional(),metadata:u(s({label:d(),value:d()})).optional(),template:l().optional(),templateData:r(l(),c()).optional()}),Dn=te(e=>{let t=(typeof e==`string`?e.split(`,`):Array.isArray(e)?e:[]).map(e=>typeof e==`string`||typeof e==`number`?String(e).trim():``).filter(e=>e.length>0);return t.length>0?t:void 0},u(l()).optional()),On=s({prompt:d().optional(),acceptedTypes:Dn,maxFiles:se().int().positive().optional().catch(void 0),maxSizeBytes:se().positive().optional().catch(void 0)}),kn=e({ACPOptionKindSchema:()=>C,ACPOptionSchema:()=>w,AcpSessionCompletedEventSchema:()=>le,AcpSessionErrorEventSchema:()=>ue,AcpSessionSpawnedEventSchema:()=>de,AcpSessionUpdateEventSchema:()=>pe,AcpSessionUpdateTypeSchema:()=>fe,AcpSessionUsageEventSchema:()=>me,AcpStopReasonSchema:()=>ce,AllowlistOptionSchema:()=>y,AssistantActivityAnchorSchema:()=>ge,AssistantActivityPhaseSchema:()=>he,AssistantActivityReasonSchema:()=>_e,AssistantActivityStateEventSchema:()=>ve,AssistantEventEnvelopeSchema:()=>An,AssistantEventSchema:()=>$,AssistantOutboundAttachmentSchema:()=>B,AssistantTextDeltaEventSchema:()=>ye,AssistantThinkingDeltaEventSchema:()=>f,AssistantTurnStartEventSchema:()=>p,AvatarUpdatedEventSchema:()=>m,BackgroundToolCompletedEventSchema:()=>h,BackgroundToolStartedEventSchema:()=>g,CALL_SITE_COMPACTION_AGENT:()=>xt,CALL_SITE_SYNTHETIC_AGENT_ERROR_MESSAGE:()=>bt,CapabilitySchema:()=>sn,CardSurfaceDataSchema:()=>En,CompactionCircuitClosedEventSchema:()=>_,CompactionCircuitOpenEventSchema:()=>v,ConfirmationDiffSchema:()=>S,ConfirmationExecutionTargetSchema:()=>T,ConfirmationRequestEventSchema:()=>E,ContactRequestEventSchema:()=>D,ContextBannerSchema:()=>rn,ConversationAttachmentBlockSchema:()=>Ht,ConversationContentBlockSchema:()=>Ut,ConversationErrorCodeSchema:()=>O,ConversationErrorEventSchema:()=>k,ConversationListInvalidatedEventSchema:()=>j,ConversationListInvalidatedReasonSchema:()=>A,ConversationMessageAttachmentSchema:()=>J,ConversationMessageSchema:()=>Wt,ConversationMessageSurfaceSchema:()=>X,ConversationMessageToolCallSchema:()=>Y,ConversationNoticeEventSchema:()=>N,ConversationNoticeSourceSchema:()=>M,ConversationSlackMessageSchema:()=>Lt,ConversationSubagentNotificationSchema:()=>Mt,ConversationSurfaceBlockSchema:()=>Vt,ConversationTextBlockSchema:()=>Rt,ConversationThinkingBlockSchema:()=>zt,ConversationTitleUpdatedEventSchema:()=>P,ConversationToolUseBlockSchema:()=>Bt,DEFAULT_TOOL_EXECUTION_TIMEOUT_SEC:()=>120,DictationContextSchema:()=>Ct,DictationRequestSchema:()=>wt,DirectoryScopeOptionSchema:()=>x,DiskPressureBlockedCapabilitySchema:()=>I,DiskPressureStateSchema:()=>F,DiskPressureStatusChangedEventSchema:()=>R,DiskPressureStatusResponseSchema:()=>Gt,DiskPressureStatusSchema:()=>L,DocumentCommentCreatedEventSchema:()=>z,DocumentCommentDeletedEventSchema:()=>xe,DocumentCommentReopenedEventSchema:()=>Se,DocumentCommentResolvedEventSchema:()=>Ce,DocumentEditorUpdateEventSchema:()=>we,ErrorEventSchema:()=>Te,FactSchema:()=>on,FeedActionSchema:()=>Zt,FeedItemCategorySchema:()=>Yt,FeedItemDetailPanelKindSchema:()=>Qt,FeedItemDetailPanelSchema:()=>$t,FeedItemSchema:()=>en,FeedItemSourceTypeSchema:()=>Xt,FeedItemStatusSchema:()=>qt,FeedItemTypeSchema:()=>Kt,FeedItemUrgencySchema:()=>Jt,FileUploadSurfaceDataSchema:()=>On,GenerationCancelledEventSchema:()=>Ee,GenerationHandoffEventSchema:()=>De,HomeFeedResponseSchema:()=>an,HomeFeedUpdatedEventSchema:()=>Oe,HookEventOwnerSchema:()=>ke,HookEventSchema:()=>Ae,IdentityChangedEventSchema:()=>je,InteractionResolutionStateSchema:()=>Me,InteractionResolvedEventSchema:()=>Ne,LLMCallErrorSchema:()=>dn,LLMCallSummarySchema:()=>un,LLMContextSectionSchema:()=>Q,LLMRequestLogEntrySchema:()=>fn,LatencyBreakdownSchema:()=>Z,LatencyPhaseSchema:()=>ln,LlmContextResponseSchema:()=>xn,MemoryCandidateSchema:()=>pn,MemoryDegradationSchema:()=>mn,MemoryRecallLogSchema:()=>hn,MemoryV2ActivationLogSchema:()=>vn,MemoryV2ConceptRowSchema:()=>gn,MemoryV2ConfigSnapshotSchema:()=>_n,MemoryV3SelectionLogSchema:()=>bn,MemoryV3SelectionRowSchema:()=>yn,MessageCompleteEventSchema:()=>Pe,MessageDequeuedEventSchema:()=>Fe,MessageQueuedDeletedEventSchema:()=>Le,MessageQueuedEventSchema:()=>Ie,MessageRequestCompleteEventSchema:()=>Re,NavigateSettingsEventSchema:()=>ze,NotificationIntentEventSchema:()=>Be,OpenPanelEventSchema:()=>Ve,OpenUrlEventSchema:()=>He,PendingToolConfirmationSchema:()=>Ot,QuestionEntrySchema:()=>H,QuestionOptionSchema:()=>V,QuestionRequestEventSchema:()=>Ue,RelationshipStateSchema:()=>cn,RelationshipStateUpdatedEventSchema:()=>We,RiskScopeOptionSchema:()=>$e,SSE_REPLAY_RING_AGE_LIMIT_MS:()=>St,SSE_REPLAY_RING_COUNT_LIMIT:()=>200,ScopeOptionSchema:()=>b,SecretRequestEventSchema:()=>Ge,SubagentDetailEventSchema:()=>Sn,SubagentDetailResponseSchema:()=>Cn,SubagentEventEventSchema:()=>qe,SubagentInnerEventSchema:()=>Ke,SubagentSpawnedEventSchema:()=>Je,SubagentStatusChangedEventSchema:()=>Ye,SubagentStatusSchema:()=>U,SubagentUsageStatsSchema:()=>W,SuggestedPromptSchema:()=>nn,SuggestedPromptSourceSchema:()=>tn,SurfaceActionSchema:()=>ut,SyncChangedEventSchema:()=>Xe,ToolActivityMetadataSchema:()=>G,ToolOutputChunkEventSchema:()=>Qe,ToolOutputChunkSubTypeSchema:()=>Ze,ToolResultEventSchema:()=>at,ToolUsePreviewStartEventSchema:()=>ot,ToolUseStartEventSchema:()=>st,UISurfaceCompleteEventSchema:()=>ct,UISurfaceDismissEventSchema:()=>lt,UISurfaceShowEventSchema:()=>dt,UISurfaceUpdateEventSchema:()=>ft,UsageProgressEventSchema:()=>K,UsageUpdateEventSchema:()=>pt,UserMessageEchoEventSchema:()=>mt,WebFetchMetadataSchema:()=>it,WebSearchMetadataSchema:()=>rt,WebSearchProviderIdSchema:()=>et,WebSearchResultItemSchema:()=>nt,WorkflowCompletedEventSchema:()=>ht,WorkflowJournalResponseSchema:()=>Tn,WorkflowLeafFinishedEventSchema:()=>gt,WorkflowLeafSchema:()=>wn,WorkflowLeafStartedEventSchema:()=>_t,WorkflowProgressEventSchema:()=>vt,WorkflowRunStatusSchema:()=>q,WorkflowStartedEventSchema:()=>yt}),$=o(`type`,[le,ue,de,pe,me,ve,ye,f,p,m,h,g,_,v,E,D,k,j,N,P,R,z,xe,Se,Ce,we,Te,Ee,De,Oe,Ae,je,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,qe,Je,Ye,Xe,Qe,at,ot,st,ct,lt,dt,ft,K,pt,mt,ht,gt,_t,vt,yt]),An=s({id:l(),conversationId:l().optional(),seq:a().int().optional(),emittedAt:l(),message:$});export{On as a,Gt as c,bt as d,K as f,En as i,St as l,$ as n,Tn as o,kn as r,Cn as s,An as t,xt as u};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-C89a_qa6.js","assets/preload-helper-BewR0kVT.js","assets/dist-C3LFhPgk2.js","assets/esm-DugOQgm_.js"])))=>i.map(i=>d[i]);
2
- import{a as e,c as t,i as n,t as r}from"./local-settings-lVNyIOJ_.js";import{a as i,t as a}from"./device-settings-BBwtGKJb.js";import{o,t as s}from"./capture-error-CmeVLfq0.js";import{t as c}from"./preload-helper-BewR0kVT.js";import{t as l}from"./useQuery-B45lW1Kk.js";import{n as u,t as d}from"./create-selectors-DxrPZQND.js";import{$ as ee,C as te,D as ne,S as re,T as ie,at as ae,c as oe,et as se,f as ce,g as f,h as le,i as ue,it as de,l as p,n as fe,nt as pe,ot as m,p as h,r as me,rt as he,s as ge,st as g,tt as _,v as _e,w as ve,y as ye}from"./local-mode-BKjasCuE.js";import{t as v}from"./is-electron-LEymSS4C.js";import{n as y,t as be}from"./resolved-assistants-store-BOajMG3X.js";import{n as xe,r as b,t as Se}from"./api-errors-DZ6ckXtC.js";import{t as x}from"./client.gen-AQhSugfA.js";import{M as Ce,N as we,wt as Te}from"./sdk.gen-B3bmXhSv.js";import{a as Ee,c as S,r as De}from"./api-DqXotrgH.js";import{n as Oe}from"./event-bus-BXKLAX-e.js";import{S as C,a as ke,b as Ae,d as je,h as Me,i as Ne,l as Pe,t as Fe,u as Ie,v as Le,w as Re,y as ze}from"./native-biometric-BnmJczno.js";import{o as Be}from"./remote-gateway-session-YFtricXJ.js";import{t as Ve}from"./dist-C3LFhPgk2.js";import{r as He}from"./typed-storage-T9jtK5c0.js";var w=d(u(()=>({assistantState:{kind:`loading`},operationalStatusAssistantId:null,expectingFirstMessage:!1}))),Ue=new Set;function We(e){return Ue.add(e),()=>{Ue.delete(e)}}function Ge(){for(let e of Ue)try{e()}catch{}}var Ke=new Set([502,503,504]),qe=`Connection interrupted. Reconnecting…`;function Je(e){return e.code===`proxy_network_error`?!0:(typeof e.detail==`string`?e.detail:``).includes(`net::ERR_`)}function Ye(e){if(e.ok)switch(e.data.status){case`active`:return e.data.is_local?{kind:`self_hosted`}:{kind:`active`};case`initializing`:return{kind:`initializing`};case`to_be_deleted`:return{kind:`cleaning_up`};default:return{kind:`error`,message:`Unexpected assistant status: ${e.data.status}`}}return e.status===404?{kind:`auto_hatch`}:Je(e.error)?{kind:`error`,transient:!0,message:qe}:{kind:`error`,message:b(e.error,void 0,`Failed to check assistant status.`)}}function Xe(e){return e===void 0||e>=500}var Ze=`platform_hosted_disabled`,Qe=`We are at capacity for Vellum Managed Assistants, more will be available soon!`;function $e(e,t){return e===503?t?.code===Ze:!1}var et=2e3,tt=3e4;function nt(e){return Math.min(et*2**e,tt)}var rt=3e5;function it(){return{kind:`error`,message:`Your assistant is taking longer than expected to start. Please try again, or check the community for help.`}}var at=[`assistant`,`current`],ot=3e3,st=new Set([`initializing`,`cleaning_up`]);function ct(e){if(!e)return!1;let t=Ye(e);return st.has(t.kind)?ot:!1}function lt(e){return e?[...at,e]:at}function ut(e){let t=e.selectedPlatformAssistantId??null;return l({queryKey:lt(t),queryFn:()=>De(t??void 0),enabled:e.enabled,retry:!1,refetchInterval:e=>ct(e.state.data),refetchOnWindowFocus:!1})}var dt=new Set([`healthy`,`ok`]);function ft(e){if(!e.ok)return`unreachable`;let t=e.data?.status;return t===`MIGRATING`?`migrating`:t!==void 0&&!dt.has(t)?`unhealthy`:`healthy`}function pt(){let e=w.use.assistantState();return e.kind===`self_hosted`||e.kind===`active`&&e.isLocal?e.health??null:null}var T=e=>e===`authenticated`,mt=e=>e!==`initializing`,E=e=>e===`present`,ht=(e,t)=>e===`present`&&!t,gt=new Set([401,403,410]),_t=e=>!e.ok&&e.status!==void 0&&gt.has(e.status),vt=4e3,yt=6e4,bt=5e3;function xt(){let e=/\/assistant(?:\/|$)/.exec(window.location.pathname),t=e&&e.index>0?window.location.pathname.slice(0,e.index).replace(/\/+$/,``):``;return`${window.location.origin}${t}`}var D=new class{state={kind:`loading`};generation=0;initializingTimeout=null;ready=!1;inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null,selectedPlatformAssistantId:null};probeTimer=null;healthHeartbeatTimer=null;healthHeartbeatId=null;healthHeartbeatToken=0;reachabilityProbeInFlightIds=new Set;probeLoopAssistantId=null;errorRetryTimer=null;errorRetryAttempt=0;constructor(){We(()=>this.onUnreachable()),Oe(`app.online`,()=>this.onNetworkOnline()),y.subscribe((e,t)=>{e.selectedAssistantId!==t.selectedAssistantId&&(!g()||this.state.kind===`loading`||this.applyGatewayAuthShortCircuit())})}setInputs(e){this.inputs=e,this.ready=!0}resetForLogout(){y.getState().activeAssistantId!==null&&y.getState().setActiveAssistantId(null),this.setOperationalStatusAssistantId(null),this.cancelProbeTimer(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.state.kind!==`loading`&&this.transition({kind:`loading`}),this.clearExpectingFirstMessage()}async respondToInputs(){if(this.ready){if(g()){this.applyGatewayAuthShortCircuit();return}if(!T(this.inputs.sessionStatus)){this.resetForLogout();return}this.inputs.hasPlatformSession&&_(null),this.inputs.isOrgReady&&await this.checkAssistant()}}async applyServerResult(e){this.ready&&(this.state.kind!==`initializing`&&this.state.kind!==`cleaning_up`||await this.applyServerStateUpdate(e))}async checkAssistant(e){if(!this.ready)return;if(g()){this.applyGatewayAuthShortCircuit();return}let t=this.generation;try{let n=e??this.inputs.selectedPlatformAssistantId??null,r=await this.inputs.queryClient.fetchQuery({queryKey:lt(n),queryFn:()=>De(n??void 0),staleTime:0});if(t!==this.generation||n&&!r.ok&&r.status===404&&(y.getState().setSelectedAssistant(null),r=await this.inputs.queryClient.fetchQuery({queryKey:at,queryFn:()=>De(),staleTime:0}),t!==this.generation))return;await this.applyServerStateUpdate(r)}catch(e){if(console.error(`Error checking assistant status:`,e),s(e,{context:`check_assistant`}),t!==this.generation||this.degradeOnTransportFailure())return;this.transition({kind:`error`,transient:!0,message:qe})}}degradeOnTransportFailure(){return this.state.kind===`active`?(this.triggerReachabilityProbe(),!0):this.state.kind===`initializing`||this.state.kind===`cleaning_up`}retryAssistant(){this.ready&&this.checkAssistant()}markExpectingFirstMessage(){w.getState().expectingFirstMessage||w.setState({expectingFirstMessage:!0})}clearExpectingFirstMessage(){w.getState().expectingFirstMessage&&w.setState({expectingFirstMessage:!1})}transition(e){let t=this.state.kind;this.state=e,w.setState({assistantState:e}),e.kind===`initializing`?t!==`initializing`&&this.armInitializingWatchdog():this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),e.kind!==`initializing`&&e.kind!==`active`&&this.clearExpectingFirstMessage(),!(e.kind===`self_hosted`||e.kind===`active`&&e.isLocal)&&this.healthHeartbeatId!==null&&this.cancelHealthHeartbeat(),e.kind===`error`&&e.transient?this.armErrorRetry():this.clearErrorRetry(e.kind!==`error`)}clearErrorRetry(e){this.errorRetryTimer&&=(clearTimeout(this.errorRetryTimer),null),e&&(this.errorRetryAttempt=0)}armErrorRetry(){this.errorRetryTimer&&clearTimeout(this.errorRetryTimer);let e=nt(this.errorRetryAttempt);this.errorRetryAttempt+=1,this.errorRetryTimer=setTimeout(()=>{this.errorRetryTimer=null,this.checkAssistant()},e)}onNetworkOnline(){if(this.ready){if(this.state.kind===`error`&&this.state.transient){this.clearErrorRetry(!0),this.checkAssistant();return}this.state.kind===`active`&&this.state.reachable===!1&&this.checkAssistant()}}armInitializingWatchdog(){this.initializingTimeout&&clearTimeout(this.initializingTimeout),this.initializingTimeout=setTimeout(()=>{this.generation++,o(`Assistant stuck in initializing state`,{level:`warning`,extra:{timeoutMs:rt}}),this.transition(it())},rt)}projectActive(e){let t=e.data.maintenance_mode,n=e.data.is_local??!1;_(null),this.setOperationalStatusAssistantId(e.data.id);let r=y.getState();r.upsertFromApi(e.data),r.setActiveAssistantId(e.data.id),this.transition({kind:`active`,isLocal:n,maintenanceMode:{enabled:t?.enabled}}),n?this.startHealthHeartbeat(e.data.id):this.probeReachability(e.data.id)}projectSelfHosted(e){this.setOperationalStatusAssistantId(null),_({url:e.data.ingress_url,token:e.data.platform_actor_token});let t=y.getState();t.upsertFromApi(e.data),t.setActiveAssistantId(e.data.id),this.transition({kind:`self_hosted`}),this.startHealthHeartbeat(e.data.id)}applyGatewayAuthShortCircuit(){let e=window.location.origin,t=`self`,n=ue();if(f())e=xt();else if(n){let r=p();e=`${window.location.origin}${n}`,t=r?.assistantId??t}_({url:e,token:de()}),this.setOperationalStatusAssistantId(null),y.getState().setActiveAssistantId(t),this.transition({kind:`active`,isLocal:!0}),this.startHealthHeartbeat(t)}async applyServerStateUpdate(e){let t=this.generation,n=Ye(e);if(!(n.kind===`error`&&n.transient&&this.degradeOnTransportFailure())&&(e.ok?this.setOperationalStatusAssistantId(e.data.id):this.setOperationalStatusAssistantId(null),n.kind!==`auto_hatch`)){if(n.kind===`active`&&e.ok){this.projectActive(e);return}if(n.kind===`self_hosted`&&e.ok){this.projectSelfHosted(e);return}t===this.generation&&n.kind!==`active`&&this.transition(n)}}async probeReachability(e){if(!this.reachabilityProbeInFlightIds.has(e)){this.reachabilityProbeInFlightIds.add(e);try{let t=this.generation,n=this.state.kind===`self_hosted`||this.state.kind===`active`&&this.state.isLocal,r=n?p()?.assistantId??e:e,i=!f()&&n?await ne(r).catch(()=>null):null,a=i?.ok&&i.state===`upgrading`?`upgrading`:`unreachable`;if(a!==`upgrading`)try{a=ft(await Ee(e))}catch{a=`unreachable`}if(a===`unreachable`&&!i&&!f()&&(i=await ne(r).catch(()=>null)),a===`unreachable`&&i?.ok)switch(i.state){case`healthy`:a=`healthy`;break;case`sleeping`:case`starting`:case`upgrading`:case`unhealthy`:case`crashed`:a=i.state;break;case`unknown`:break}if(t!==this.generation||y.getState().activeAssistantId!==e)return;if(this.state.kind===`self_hosted`){this.state.health!==a&&this.transition({...this.state,health:a});return}if(this.state.kind!==`active`)return;let o=a===`healthy`||a===`unhealthy`;if(this.state.reachable===o&&this.state.health===a)return;this.transition({...this.state,reachable:o,health:a})}finally{this.reachabilityProbeInFlightIds.delete(e)}}}cancelProbeTimer(){this.probeTimer&&=(clearTimeout(this.probeTimer),null)}startProbeLoop(e){if(this.probeLoopAssistantId===e)return;this.cancelProbeTimer(),this.probeLoopAssistantId=e;let t=Date.now(),n=()=>{this.probeLoopAssistantId=null},r=async()=>{if(this.state.kind!==`active`||this.state.reachable===!0){n();return}if(Date.now()-t>yt){n();return}await this.probeReachability(e);let i=this.state;if(i.kind!==`active`||i.reachable===!0){n();return}if(Date.now()-t>yt){n();return}this.probeTimer=setTimeout(()=>void r(),vt)};this.probeTimer=setTimeout(()=>void r(),vt)}startHealthHeartbeat(e){if(this.healthHeartbeatId===e)return;this.cancelHealthHeartbeat(),this.healthHeartbeatId=e;let t=this.healthHeartbeatToken,n=async()=>{t===this.healthHeartbeatToken&&(await this.probeReachability(e),t===this.healthHeartbeatToken&&(this.healthHeartbeatTimer=setTimeout(()=>void n(),bt)))};n()}cancelHealthHeartbeat(){this.healthHeartbeatToken++,this.healthHeartbeatId=null,this.healthHeartbeatTimer&&=(clearTimeout(this.healthHeartbeatTimer),null)}onUnreachable(){this.triggerReachabilityProbe()}triggerReachabilityProbe(){if(this.state.kind!==`active`)return;let e=y.getState().activeAssistantId;if(e){if(this.transition({...this.state,reachable:!1}),this.healthHeartbeatId===e){this.probeReachability(e);return}this.startProbeLoop(e)}}setLocalAssistantUpgradeInProgress(e,t){if(y.getState().activeAssistantId===e){if(!t){this.probeReachability(e);return}if(this.state.kind===`self_hosted`){this.transition({...this.state,health:`upgrading`});return}this.state.kind===`active`&&this.state.isLocal&&this.transition({...this.state,reachable:!1,health:`upgrading`})}}__resetForTesting(){this.initializingTimeout&&=(clearTimeout(this.initializingTimeout),null),this.cancelProbeTimer(),this.cancelHealthHeartbeat(),this.probeLoopAssistantId=null,this.reachabilityProbeInFlightIds.clear(),this.clearErrorRetry(!0),this.state={kind:`loading`},this.generation=0,this.ready=!1,w.setState({expectingFirstMessage:!1,operationalStatusAssistantId:null}),this.inputs={sessionStatus:`initializing`,hasPlatformSession:!1,queryClient:null},w.setState({assistantState:this.state}),y.setState({activeAssistantId:null})}setOperationalStatusAssistantId(e){w.getState().operationalStatusAssistantId!==e&&w.setState({operationalStatusAssistantId:e})}};function St(e){let{assistants:t,selectedAssistantId:n,assistantsHydrated:r}=y.getState(),i=be(t,e),a=e=>i.some(t=>t.id===e);if(n!==null){let e=t.some(e=>e.id===n);if(a(n)||!e&&!r)return n}let o=fe()?.assistantId??null;return o!==null&&a(o)?o:i[0]?.id??null}async function O(e){y.getState().setSelectedAssistant(e),e!==null&&await re(e)}var Ct=`vellum:auth:userSnapshot`;function wt(e){if(e)try{localStorage.setItem(Ct,JSON.stringify(e))}catch{}}function Tt(){try{let e=localStorage.getItem(Ct);if(!e)return null;let t=JSON.parse(e);return!t||typeof t!=`object`?null:{kind:`platform`,id:typeof t.id==`string`?t.id:null,username:typeof t.username==`string`?t.username:null,email:typeof t.email==`string`?t.email:null,isStaff:t.isStaff===!0,firstName:typeof t.firstName==`string`?t.firstName:``,lastName:typeof t.lastName==`string`?t.lastName:``}}catch{return null}}function k(){try{localStorage.removeItem(Ct)}catch{}}var Et=`vellum_active_organization_id`;function Dt(){return globalThis.sessionStorage===void 0?null:globalThis.sessionStorage}function Ot(){let e=Dt();if(!e)return null;try{return e.getItem(Et)}catch{return null}}function kt(e){let t=Dt();if(t)try{t.setItem(Et,e)}catch{}}function At(){let e=Dt();if(e)try{e.removeItem(Et)}catch{}}function jt(e,t){return e.length===0?null:t&&e.some(e=>e.id===t)?t:e[0].id}var A=d(u()((e,t)=>({organizations:[],currentOrganizationId:null,status:`idle`,error:null,fetchOrganizations:async()=>{e({status:`loading`,error:null});try{let n=(await Te()).data?.results??[],r=jt(n,t().currentOrganizationId??Ot());r&&kt(r),e({organizations:n,currentOrganizationId:r,status:r?`ready`:`error`,error:r?null:`No organization available for this user.`})}catch(t){e({status:`error`,error:t instanceof Error&&t.message?t.message:`Failed to load organizations.`})}},setCurrentOrganizationId:n=>{let{organizations:r}=t();r.some(e=>e.id===n)&&(kt(n),e({currentOrganizationId:n,status:`ready`}))},clearOrganization:()=>{At(),e({organizations:[],currentOrganizationId:null,status:`idle`,error:null})}})));function j(){return A.getState().currentOrganizationId??Ot()}function Mt(){A.getState().clearOrganization()}function Nt(){let e=0,t=A.subscribe(t=>{(t.status===`ready`||t.status===`error`)&&(e=Date.now())}),n=$.subscribe((e,t)=>{let n=E(e.platformSession),r=E(t.platformSession);n&&(!r||e.user?.id!==t.user?.id)&&A.getState().fetchOrganizations()}),r=()=>{if(!E($.getState().platformSession))return;let{status:t}=A.getState();(t===`ready`||t===`error`)&&Date.now()-e>1e4&&A.getState().fetchOrganizations()},i=Oe(`app.resume`,()=>{r()});return()=>{t(),n(),i()}}function Pt(e,t={}){let n={...e??{}},r=t.includeSelfHostedActorToken===!1?null:ee();if(r)return n.Authorization=`Bearer ${r}`,n;let i=t.organizationId??j();i&&(n[`Vellum-Organization-Id`]=i);let a=Ae();return a&&(n[`X-Session-Token`]=a),n}async function Ft(e,t={}){let n=Pt(e,t);if(n.Authorization||v())return n;await Le();let r=ze();return r&&(n[`X-CSRFToken`]=r),n}var It;function Lt(){return v()?(It===void 0&&(It=window.__VELLUM_CONFIG__?.deviceId??null),It):null}var Rt=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,zt=`X-Vellum-Electron-Renderer-Origin`,Bt=new Map;async function Vt(e,t={}){if(!h()||f()||le()||rn(e))return e;let n=Ut(e);if(!n)return e;let r=Bt.get(n.assistantId);if(r)return r;let i=Wt(n,{allowGatewayRepair:t.allowGatewayRepair??!0});Bt.set(n.assistantId,i);try{return await i}catch(e){throw Bt.delete(n.assistantId),e}}function Ht(e,t={}){if(!h()||f()||le())return;let n=e;if(!n){let e=p();if(!e||!ce(e))return;n=e.assistantId}Vt(n,{allowGatewayRepair:t.allowGatewayRepair??!1}).catch(t.onError??(e=>{console.warn(`local assistant platform bootstrap failed`,e)}))}function Ut(e){let t=fe();if(t?.assistantId===e&&ce(t))return t;let n=p();return n?.assistantId===e&&ce(n)?n:null}async function Wt(e,t){let n=await Kt(e,t),r=await qt(n,e.assistantId),i=r?.assistantId&&rn(r.assistantId)?r.assistantId:null;if(i&&r?.hasAssistantApiKey!==!1){let t=r?.organizationId??e.platformOrganizationId??null;return t&&await Gt(e,{platformAssistantId:i,platformBaseUrl:r?.baseUrl??oe(),organizationId:t}),i}let a=await Jt(r?.organizationId??null,e);if(!a)throw Error(`Sign in to Vellum and select an organization to register this local assistant.`);let o=r?.clientInstallationId??Lt()??null;if(!o)throw Error(`Unable to identify this local assistant host for platform registration.`);let s=await Yt(e,a,o),c=M(s.assistant?.id,s.assistant_id,s.id),l=i??c;if(!l||!rn(l))throw Error(`The platform registration response did not include an assistant UUID.`);let u=N(s.assistant_api_key);!u&&r?.hasAssistantApiKey!==!0&&(u=await Xt(e,a,o));let d=r?.baseUrl??oe();return await Qt(n,{assistantApiKey:u,platformAssistantId:l,platformBaseUrl:d,organizationId:a,webhookSecret:N(s.webhook_secret)}),await Gt(e,{platformAssistantId:l,platformBaseUrl:d,organizationId:a}),l}async function Gt(e,t){await ve({...e,platformAssistantId:t.platformAssistantId,platformBaseUrl:t.platformBaseUrl,platformOrganizationId:t.organizationId}).catch(e=>{console.warn(`local assistant platform lockfile update failed`,e)})}async function Kt(e,t){let n=se(),r=ee();if(t.allowGatewayRepair&&(!n||!r)&&(await ye(e),n=se(),r=ee()),!n||!r){let t=ue(e);t&&(n=`${window.location.origin}${t}`)}if(!n||!r)throw Error(`Unable to reach the local assistant for platform identity setup.`);return{gatewayUrl:n,actorToken:r}}async function qt(e,t){let n=nn(e.gatewayUrl,`/v1/assistants/${encodeURIComponent(t)}/platform/status`),r=await fetch(n,{headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`},credentials:`omit`}).catch(()=>null);if(!r?.ok)return null;let i=await r.json().catch(()=>null);return{assistantId:M(i?.assistantId,i?.assistant_id),baseUrl:M(i?.baseUrl,i?.base_url),organizationId:M(i?.organizationId,i?.organization_id),hasAssistantApiKey:an(i?.hasAssistantApiKey,i?.has_assistant_api_key),clientInstallationId:M(i?.clientInstallationId,i?.client_installation_id)}}async function Jt(e,t){return(e??t.platformOrganizationId??j()??t.organizationId??null)||(await A.getState().fetchOrganizations().catch(()=>{}),j()??t.platformOrganizationId??t.organizationId??null)}async function Yt(e,t,n){return await Zt(`/v1/assistants/self-hosted-local/ensure-registration/`,e,t,n)}async function Xt(e,t,n){return N((await Zt(`/v1/assistants/self-hosted-local/reprovision-api-key/`,e,t,n)).provisioning?.assistant_api_key)}async function Zt(e,t,n,r){let i=new Headers({...await Ft({Accept:`application/json`,"Content-Type":`application/json`},{includeSelfHostedActorToken:!1,organizationId:n})}),a=Ae();if(v()){if(!a)throw Error(`Sign in to Vellum to register this local assistant.`);i.set(zt,`${window.location.protocol}//${window.location.host}`)}let o=await fetch(new URL(e,window.location.origin).toString(),{method:`POST`,headers:i,credentials:v()?`omit`:`same-origin`,body:JSON.stringify({client_installation_id:r,runtime_assistant_id:t.assistantId,client_platform:v()?`macos`:`web`})}).catch(e=>{throw Error(`Unable to reach the platform registration endpoint: ${tn(e)}`)});if(!o.ok){let e=await en(o);throw Error(`Unable to register the local assistant with the platform (HTTP ${o.status})${e?`: ${e}`:`.`}`)}try{return await o.json()}catch(e){throw Error(`Unable to read the platform registration response: ${tn(e)}`)}}async function Qt(e,t){let n=[[`vellum:assistant_api_key`,t.assistantApiKey],[`vellum:platform_assistant_id`,t.platformAssistantId],[`vellum:platform_base_url`,t.platformBaseUrl],[`vellum:platform_organization_id`,t.organizationId],[`vellum:webhook_secret`,t.webhookSecret]];await Promise.all(n.filter(e=>!!e[1]).map(([t,n])=>$t(e,t,n)))}async function $t(e,t,n){let r=await fetch(nn(e.gatewayUrl,`/v1/secrets`),{method:`POST`,headers:{Accept:`application/json`,Authorization:`Bearer ${e.actorToken}`,"Content-Type":`application/json`},credentials:`omit`,body:JSON.stringify({type:`credential`,name:t,value:n})}).catch(e=>{throw Error(`Unable to reach the local assistant while storing ${t}: ${tn(e)}`)});if(!r.ok){let e=await en(r);throw Error(`Unable to store ${t} on the local assistant (HTTP ${r.status})${e?`: ${e}`:`.`}`)}return!0}async function en(e){if((e.headers.get(`content-type`)??``).includes(`application/json`)){let t=await e.json().catch(()=>null),n=t&&typeof t==`object`&&`detail`in t?N(t.detail):null,r=t&&typeof t==`object`&&`code`in t?N(t.code):null;return n&&r?`${n} (${r})`:n||r||JSON.stringify(t)}return(await e.text().catch(()=>``)).slice(0,300)}function tn(e){return e instanceof Error?e.message:String(e)}function nn(e,t){let n=new URL(e);return n.pathname=`${n.pathname.replace(/\/$/,``)}${t}`,n.toString()}function rn(e){return Rt.test(e)}function M(...e){for(let t of e){let e=N(t);if(e)return e}return null}function N(e){return typeof e==`string`&&e.trim()?e.trim():null}function an(...e){for(let t of e)if(typeof t==`boolean`)return t;return null}var on=`.dev`;function sn(e){let t=JSON.parse(e);return typeof t.token==`string`&&typeof t.bundleId==`string`&&typeof t.assistantId==`string`?{token:t.token,bundleId:t.bundleId,assistantId:t.assistantId}:null}var cn=He({key:`vellum:push_registration`,scope:`user`,parse:sn,serialize:JSON.stringify,fallback:null}),ln=!1,un=null,P=null,F=new Set;function dn(e){F.add(e),e.finally(()=>{F.delete(e)})}function fn(){return Ie()&&Ve.getPlatform()===`ios`}function pn(e){return e.endsWith(on)?`development`:`production`}async function mn(e,t){try{let{App:n}=await c(async()=>{let{App:e}=await import(`./esm-C89a_qa6.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:r}=await n.getInfo(),i=await we({path:{assistant_id:t},body:{token:e,platform:`ios`,bundle_id:r,apns_environment:pn(r)},throwOnError:!1});if(i.error){s(i.error,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0});return}P={token:e,bundleId:r,assistantId:t},cn.save(P)}catch(e){s(e,{context:`push_registration_upsert`,level:`warning`,bestEffort:!0})}}async function hn(){if(!ln){ln=!0;try{let{PushNotifications:e}=await c(async()=>{let{PushNotifications:e}=await import(`./esm-DugOQgm_.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));await e.addListener(`registration`,e=>{let t=un;t&&dn(mn(e.value,t))}),await e.addListener(`registrationError`,e=>{s(e,{context:`push_registration_apns`,level:`warning`})})}catch(e){ln=!1,s(e,{context:`push_registration_listeners`,level:`warning`})}}}async function gn(e){if(fn()){un=e,P&&P.assistantId!==e&&dn(mn(P.token,e));try{let{PushNotifications:e}=await c(async()=>{let{PushNotifications:e}=await import(`./esm-DugOQgm_.js`);return{PushNotifications:e}},__vite__mapDeps([3,2]));if(await hn(),(await e.requestPermissions()).receive!==`granted`)return;await e.register()}catch(e){s(e,{context:`push_registration_register`,level:`warning`})}}}async function _n(){for(un=null;F.size>0;)await Promise.allSettled([...F]);let e=P??cn.load();if(P=null,cn.remove(),!(!e||!fn()))try{let t=await Ce({path:{assistant_id:e.assistantId,token:e.token},query:{bundle_id:e.bundleId},throwOnError:!1});t.error&&s(t.error,{context:`push_registration_delete`,level:`warning`,bestEffort:!0,extra:{assistantId:e.assistantId,bundleId:e.bundleId}})}catch(e){s(e,{context:`push_registration_delete`,level:`warning`,bestEffort:!0})}}function vn(e){return e}function yn(e,t,n){if(!e||typeof e!=`object`||Array.isArray(e))return{code:null,message:n};let r=vn(e),i=r[t];if(Array.isArray(i)&&i.length>0){let e=i[0];if(typeof e==`string`)return{code:null,message:e};if(e&&typeof e==`object`&&!Array.isArray(e)){let t=vn(e),r=t.code,i=t.string??t.message;return{code:typeof r==`string`?r:null,message:typeof i==`string`?i:n}}}return typeof r.detail==`string`?{code:null,message:r.detail}:{code:null,message:n}}var bn={too_short:`Must be at least 3 characters.`,too_long:`Must be at most 30 characters.`,invalid_chars:`Use only lowercase letters, digits, hyphens, and underscores.`,leading_underscore:`Cannot start with an underscore.`,trailing_underscore:`Cannot end with an underscore.`,leading_hyphen:`Cannot start with a hyphen.`,trailing_hyphen:`Cannot end with a hyphen.`,all_digits:`Cannot be all digits.`,reserved:`This handle is reserved.`,taken:`This handle is already taken.`};async function xn(){let{data:e,error:t,response:n}=await x.get({url:`/v1/user/me/`,throwOnError:!1});if(xe(n,t,`Failed to load profile.`),!n.ok||!e)throw new Se(n.status,b(t,n,`Failed to load profile.`));return e}var Sn=`Please choose a different handle.`;async function Cn(e){let{data:t,error:n,response:r}=await x.patch({url:`/v1/user/me/`,body:e,throwOnError:!1});if(!r)return{kind:`error`,message:b(n,void 0,`Failed to save profile.`)??`Failed to save profile.`};if(r.ok&&t)return{kind:`ok`,data:t};if(r.status===409){let{message:e}=yn(n,`username`,bn.taken);return{kind:`taken`,message:e}}if(r.status===400){let{code:e,message:t}=yn(n,`username`,Sn);return{kind:`invalid`,code:e,message:t}}return{kind:`error`,message:b(n,r,`Failed to save profile.`)}}async function wn(){let{data:e,error:t,response:n}=await x.get({url:`/v1/user/consent/`,throwOnError:!1});if(xe(n,t,`Failed to load consent.`),!n.ok||!e)throw new Se(n.status,b(t,n,`Failed to load consent.`));return e}async function I(e){await x.put({url:`/v1/user/consent/`,body:e,throwOnError:!0})}async function Tn(e,t){let{data:n,error:r,response:i}=await x.get({url:`/v1/user/username-available/`,query:{username:e},signal:t,throwOnError:!1});if(xe(i,r,`Failed to check handle availability.`),!i.ok||!n)throw new Se(i.status,i.status===429?`Too many checks — try again in a moment.`:b(r,i,`Failed to check handle availability.`));return n}function L(e){i(`diagnosticsReporting`,e)}function En(e,t){let n=Dn(e);n!==null&&t(n);let{shareDiagnostics:r,diagnosticsVersionCurrent:i,hasServerRecord:a}=e;return L(a&&r===!0&&i),n}function Dn(e){let{shareDiagnostics:t,hasServerRecord:n}=e;return t===!1?!1:n&&t===!0?!0:null}var On=a(`shareAnalytics`),kn=a(`shareDiagnostics`),An=u()(t=>({shareAnalytics:r(On,!0),shareDiagnostics:r(kn,!0),tosAccepted:!1,privacyConsent:!1,analyticsConsentCurrent:!1,diagnosticsConsentCurrent:!1,consentHydrated:!1,setShareAnalytics:n=>{t({shareAnalytics:n}),e(On,n)},setShareDiagnostics:n=>{t({shareDiagnostics:n}),e(kn,n)},setTosAccepted:e=>{t({tosAccepted:e})},setPrivacyConsent:e=>{t({privacyConsent:e})},setAnalyticsConsentCurrent:e=>{t({analyticsConsentCurrent:e})},setDiagnosticsConsentCurrent:e=>{t({diagnosticsConsentCurrent:e})},setConsentHydrated:e=>{t({consentHydrated:e})}})),R=d(An),jn=new Map([[On,`shareAnalytics`],[kn,`shareDiagnostics`]]),Mn={shareAnalytics:!0,shareDiagnostics:!0};for(let[e,n]of jn)t(e,()=>{let t=r(e,Mn[n]??!1);An.setState({[n]:t})});var z=`2026-06-08`,B=`2026-06-22`,V=`2026-06-18`,H=`2026-06-18`,Nn=`2026-06-08`,Pn={tos:z,privacy:B,share_analytics:V,share_diagnostics:H};function U(e,t){return`device:consent:${e}:v${Pn[e]}:${t}`}function Fn(e){return`device:consent:ai:v${Nn}:${e}`}function In(e){if(typeof window>`u`||!e)return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1};try{let t=r(U(`share_analytics`,e),!1),i=r(U(`share_diagnostics`,e),!1),a=r(U(`tos`,e),!1),o=r(U(`privacy`,e),!1);if(r(Fn(e),!1)&&n(Fn(e)),a||o)return{tos:a,privacy:o,analyticsCurrent:t,diagnosticsCurrent:i};let s=r(`vellum:onboarding:tosAccepted`,!1),c=r(`vellum:onboarding:aiDataConsent`,!1);return s||c?(Ln(e,s,!1),{tos:s,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}):{tos:!1,privacy:!1,analyticsCurrent:t,diagnosticsCurrent:i}}catch{return{tos:!1,privacy:!1,analyticsCurrent:!1,diagnosticsCurrent:!1}}}function Ln(t,n,r){if(!(typeof window>`u`||!t))try{e(U(`tos`,t),n),e(U(`privacy`,t),r)}catch{}}function W(t,n){if(!(typeof window>`u`||!t))try{n.analyticsCurrent!==void 0&&e(U(`share_analytics`,t),n.analyticsCurrent),n.diagnosticsCurrent!==void 0&&e(U(`share_diagnostics`,t),n.diagnosticsCurrent)}catch{}}function Rn(e){if(n(`vellum:onboarding:tosAccepted`),n(`vellum:onboarding:aiDataConsent`),n(`vellum:onboarding:selectedVersion`),!(typeof window>`u`||!e))try{n(U(`tos`,e)),n(U(`privacy`,e)),n(Fn(e)),n(U(`share_analytics`,e)),n(U(`share_diagnostics`,e))}catch{}}function G(e,t){return e>=t}function zn(e){if(!e)return{tos:!1,privacy:!1,shareAnalytics:null,shareDiagnostics:null,analyticsCurrent:!1,diagnosticsCurrent:!1,hasServerRecord:!1};let t=!!e.tos_accepted_version||!!e.privacy_policy_accepted_version||!!e.ai_data_sharing_accepted_version||!!e.share_analytics_accepted_version||!!e.share_diagnostics_accepted_version||e.share_analytics===!1||e.share_diagnostics===!1;return{tos:G(e.tos_accepted_version,z),privacy:G(e.privacy_policy_accepted_version,`2026-06-22`)&&G(e.ai_data_sharing_accepted_version,`2026-06-22`),shareAnalytics:e.share_analytics,shareDiagnostics:e.share_diagnostics,analyticsCurrent:G(e.share_analytics_accepted_version,V),diagnosticsCurrent:G(e.share_diagnostics_accepted_version,H),hasServerRecord:t}}function Bn(e){let t=R.getState();t.setTosAccepted(e.tos),t.setPrivacyConsent(e.privacy),t.setShareAnalytics(e.shareAnalytics),t.setShareDiagnostics(e.shareDiagnostics),t.setAnalyticsConsentCurrent(!0),t.setDiagnosticsConsentCurrent(!0),t.setConsentHydrated(!0),L(e.shareDiagnostics),Ln(e.userId,e.tos,e.privacy),W(e.userId,{analyticsCurrent:!0,diagnosticsCurrent:!0}),e.hasPlatformSession&&I({tos_accepted_version:e.tos?z:``,privacy_policy_accepted_version:e.privacy?B:``,ai_data_sharing_accepted_version:e.privacy?B:``,share_analytics:e.shareAnalytics,share_diagnostics:e.shareDiagnostics,share_analytics_accepted_version:V,share_diagnostics_accepted_version:H}).catch(()=>{})}function Vn(e,t,n){let r=R.getState(),{userId:a,hasPlatformSession:o}=n;e===`share_analytics`?(r.setShareAnalytics(t),i(`shareAnalytics`,t),o&&(r.setAnalyticsConsentCurrent(!0),W(a,{analyticsCurrent:!0}))):(r.setShareDiagnostics(t),i(`shareDiagnostics`,t),o?(r.setDiagnosticsConsentCurrent(!0),L(t),W(a,{diagnosticsCurrent:!0})):L(!1)),o&&I({[e]:t,[`${e}_accepted_version`]:Pn[e]}).catch(()=>{})}var Hn=`vellum:`,Un=[`onboarding.`,`voice:`,`gw:`,`ff:client:`,`local:`,`integrations.`,`vellumDebug.`,`vellum_`],Wn=new Set([`vellum_theme`,`vellum_share_analytics`,`vellum_share_diagnostics`,`vellum_biometric_enabled`,`vellum_llm_log_retention`,`vellum_timezone`,`vellum_media_embeds_enabled`,`vellum_media_embed_domains`,`onboarding.lastUserId`]);function Gn(e){return e.startsWith(Hn)?!0:Wn.has(e)?!1:Un.some(t=>e.startsWith(t))}function Kn(){try{sessionStorage.clear()}catch{}try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n&&Gn(n)&&e.push(n)}e.forEach(e=>localStorage.removeItem(e))}catch{}}function qn(e){return e?.id??e?.email??e?.username??null}function K(e){return e?{kind:`platform`,id:qn(e),username:e.username??null,email:e.email??null,isStaff:e.is_staff??!1,firstName:e.first_name??``,lastName:e.last_name??``}:null}var Jn=null,q=null,Yn=!1,Xn={kind:`local`,id:`gateway-local`,username:`local`,email:null,isStaff:!1,firstName:`Local`,lastName:`User`},J=e=>(wt(e),{sessionStatus:`authenticated`,user:e,platformSession:`present`,platformSessionRestoredOffline:!1}),Y=()=>({sessionStatus:`authenticated`,user:Xn}),X=()=>({sessionStatus:`unauthenticated`,user:null,platformSession:`absent`}),Z=e=>e===null||!e.ok&&!_t(e);async function Zn(e){if(!Ae())return!1;let t=Tt();return t?(await Q(t.id),e({...J(t),platformSessionRestoredOffline:!0}),!0):!1}function Qn(e){(!e||Jn&&Jn!==e)&&Mt(),Jn=e}function $n(){q?.postMessage(`auth-changed`)}function er(e){return{...e.tos?{tos_accepted_version:z}:{},...e.privacy?{privacy_policy_accepted_version:B,ai_data_sharing_accepted_version:B}:{},...e.analytics?{share_analytics_accepted_version:V,...e.shareValues?{share_analytics:e.shareValues.analytics}:{}}:{},...e.diagnostics?{share_diagnostics_accepted_version:H,...e.shareValues?{share_diagnostics:e.shareValues.diagnostics}:{}}:{}}}async function Q(e){if(e)try{let t=zn(await wn()),n=R.getState();t.hasServerRecord&&t.shareAnalytics!==null&&n.setShareAnalytics(t.shareAnalytics),En({shareDiagnostics:t.shareDiagnostics,diagnosticsVersionCurrent:t.diagnosticsCurrent,hasServerRecord:t.hasServerRecord},n.setShareDiagnostics);let r=t.tos,i=t.privacy,a=t.analyticsCurrent,o=t.diagnosticsCurrent;if(!t.hasServerRecord){let t=In(e);a=t.analyticsCurrent,o=t.diagnosticsCurrent,L(n.shareDiagnostics&&o),t.tos&&t.privacy&&(r=!0,i=!0,I(er({tos:!0,privacy:!0,analytics:a,diagnostics:o,shareValues:{analytics:n.shareAnalytics,diagnostics:n.shareDiagnostics}})).catch(()=>{}))}else if(!r||!i||!a||!o){let t=In(e),n=!r&&t.tos,s=!i&&t.privacy,c=!a&&t.analyticsCurrent,l=!o&&t.diagnosticsCurrent;n&&(r=!0),s&&(i=!0),c&&(a=!0),l&&(o=!0,L(R.getState().shareDiagnostics&&o)),(n||s||c||l)&&I(er({tos:n,privacy:s,analytics:c,diagnostics:l})).catch(()=>{})}n.setTosAccepted(r),n.setPrivacyConsent(i),n.setAnalyticsConsentCurrent(a),n.setDiagnosticsConsentCurrent(o),Ln(e,r,i),W(e,{analyticsCurrent:a,diagnosticsCurrent:o}),Qn(e),n.setConsentHydrated(!0);return}catch{}let t=In(e),n=R.getState();n.setTosAccepted(t.tos),n.setPrivacyConsent(t.privacy),n.setAnalyticsConsentCurrent(t.analyticsCurrent),n.setDiagnosticsConsentCurrent(t.diagnosticsCurrent),Qn(e),n.setConsentHydrated(!0)}var tr=0;Promise.resolve();function nr(e,t={}){let n=++tr,r=()=>n!==tr;C().then(async n=>{if(!r())if(n.ok&&n.data.user){let i=K(n.data.user),a=t.setUserOnSuccess?{user:i}:{};if(t.setUserOnSuccess&&wt(i),h()){let e=!1,t=()=>!e&&!r();try{await Promise.race([(async()=>{await A.getState().fetchOrganizations();let e=await S();t()&&e.ok&&await te(e.data,A.getState().currentOrganizationId??void 0,t)})(),new Promise((t,n)=>setTimeout(()=>{e=!0,n(Error(`sync timeout`))},3e3))])}catch{}}if(r())return;e({platformSession:`present`,platformSessionRestoredOffline:!1,...a}),Ht()}else t.clearOnFailure&&e({platformSession:`absent`})}).catch(()=>{r()||t.clearOnFailure&&e({platformSession:`absent`})}).finally(()=>{r()||e(e=>e.platformSession===`unknown`?{platformSession:`absent`}:{})})}function rr(e,t){!h()||m()||ge().length>0?nr(e,t):e({platformSession:`absent`})}async function ir(){try{if(await Be())return!0}catch{}return de()!==null}var $=d(u()((e,t)=>({sessionStatus:`initializing`,user:null,platformSession:`unknown`,platformSessionRestoredOffline:!1,initSession:async()=>{if(f()){await ir()?e({...Y(),platformSession:`absent`}):e(X());return}if(m()){try{await _e(),e(Y())}catch{e({sessionStatus:`unauthenticated`,user:null})}rr(e);return}if(h()&&!m()){if(ge().length>0){let t=null;try{if(t=await C(),t.ok&&t.data.user){let n=K(t.data.user);await Q(n?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok&&await te(e.data,A.getState().currentOrganizationId??void 0)}catch{}e(J(n));return}}catch{}if(Z(t)){if(await Zn(e))return}else k();e(X());return}e(Y()),Yn?e({platformSession:`absent`}):nr(e,{setUserOnSuccess:!0}),Yn=!1;return}let t=null;try{if(t=await C(),t.ok&&t.data.user){let n=K(t.data.user);await Q(n?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok?y.getState().setFromApi(e.data):y.getState().markHydrated()}catch{y.getState().markHydrated()}e(J(n));return}}catch(e){console.error(`auth.initSession failed`,e)}if(!(Z(t)&&await Zn(e))){if(Ie()&&Ne())try{let t=await ke();if(t){Pe(t),await Me();let n=await C();if(n.ok&&n.data.user){let t=K(n.data.user);await Q(t?.id??null);try{await A.getState().fetchOrganizations();let e=await S();e.ok?y.getState().setFromApi(e.data):y.getState().markHydrated()}catch{y.getState().markHydrated()}e(J(t));return}}}catch(e){console.warn(`auth.initSession biometric recovery failed`,e)}await Q(null),Z(t)||k(),e(X())}},connectLocalAssistant:async n=>{await ye(me().find(e=>e.assistantId===n)),await O(n),e(Y()),await D.checkAssistant(),ht(t().platformSession,t().platformSessionRestoredOffline)&&Ht(n),rr(e)},connectPlatformAssistant:async t=>{await O(t);let n=await C();if(!n.ok||!n.data.user)throw Error(`Platform authentication required`);let r=K(n.data.user);await Q(r?.id??null),await A.getState().fetchOrganizations(),e(J(r))},refreshSession:async()=>{if(f())return await ir()?(e({...Y(),platformSession:`absent`}),!0):(e(X()),!1);if(g()){try{await he(ae()),e({sessionStatus:`authenticated`})}catch{return e(X()),!1}return rr(e,{clearOnFailure:!0}),!0}let n=null;try{if(n=await C(),n.ok&&n.data.user){let t=K(n.data.user);if(await Q(t?.id??null),h())try{await A.getState().fetchOrganizations();let e=await S();e.ok&&await te(e.data,A.getState().currentOrganizationId??void 0)}catch{}return e(J(t)),!0}}catch(e){console.warn(`auth.refreshSession failed`,e)}if(Z(n))return T(t().sessionStatus);if(m()){let n=T(t().sessionStatus);return n&&(k(),e({...Y(),platformSession:`absent`})),n}return k(),await Q(null),e(X()),!1},logout:async()=>{if(g()){D.resetForLogout(),await O(null),pe(),Mt(),Kn(),e(X()),$n();return}Yn=!0,await _n();try{await Re()}finally{v()&&await window.vellum?.auth?.signOut?.(),h()&&!v()&&await ie(),Fe(),Mt(),Kn(),D.resetForLogout(),await O(null),e(X()),$n()}}}))),ar=()=>T($.use.sessionStatus()),or=()=>!mt($.use.sessionStatus()),sr=()=>E($.use.platformSession()),cr=()=>ht($.use.platformSession(),$.use.platformSessionRestoredOffline());function lr(){let{refreshSession:e}=$.getState(),t=[],n=()=>e().catch(e=>console.warn(`auth.refreshSession failed`,e)),r=Oe(`app.resume`,()=>{je()||n()});return t.push(r),typeof BroadcastChannel<`u`&&(q=new BroadcastChannel(`auth`),q.onmessage=()=>{Kn(),window.location.reload()},t.push(()=>{q?.close(),q=null})),()=>t.forEach(e=>e())}export{D as A,Xe as B,Vt as C,A as D,Nt as E,pt as F,Ge as H,ut as I,Qe as L,T as M,ht as N,St as O,mt as P,$e as R,Ht as S,j as T,w as U,Ke as V,wn as _,ar as a,yn as b,z as c,Bn as d,Vn as f,Tn as g,bn as h,sr as i,E as j,O as k,Rn as l,En as m,$ as n,or as o,R as p,cr as r,B as s,lr as t,zn as u,xn as v,Lt as w,gn as x,Cn as y,Ye as z};