@vellumai/web 0.8.9 → 0.8.10
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.
- package/dist/assets/{account-page-DLWgiDpL.js → account-page-u7ke_44I.js} +1 -1
- package/dist/assets/{add-credits-modal-KR3l-hlL.js → add-credits-modal-CjJBB_aT.js} +1 -1
- package/dist/assets/{advanced-page-CM1prrIX.js → advanced-page-BybHh4NW.js} +1 -1
- package/dist/assets/{ai-page-DfYw7V-1.js → ai-page-BjCnCImt.js} +1 -1
- package/dist/assets/{archive-page-C3-LAH2o.js → archive-page-Bn06aNEy.js} +1 -1
- package/dist/assets/{assistant-status-panel-AFf9Mjwp.js → assistant-status-panel-ClxIYpxL.js} +1 -1
- package/dist/assets/{billing-page-o68CnS02.js → billing-page-XLpuMBWG.js} +1 -1
- package/dist/assets/{command-palette-BcHAzecz.js → command-palette-DFTMiCCM.js} +1 -1
- package/dist/assets/{community-page-BCX3CsOx.js → community-page-Dt39tUwD.js} +1 -1
- package/dist/assets/{connect-page-DXB8Xkpw.js → connect-page-Csfk5gxJ.js} +1 -1
- package/dist/assets/{contacts-page-route-8pMuZN4b.js → contacts-page-route-CAfebyIn.js} +1 -1
- package/dist/assets/{debug-page-CS2bRZp9.js → debug-page-DuVq7WGa.js} +1 -1
- package/dist/assets/{deploy-dialogs-EImApd6S.js → deploy-dialogs-BjBUBG5o.js} +1 -1
- package/dist/assets/{developer-page-C6j4GZcn.js → developer-page-BtLYaMJ4.js} +1 -1
- package/dist/assets/{devices-page-C1id1sIt.js → devices-page-Dr0ybqr8.js} +1 -1
- package/dist/assets/{document-viewer-page-D-zkJQlm.js → document-viewer-page-DZuzK5Y4.js} +1 -1
- package/dist/assets/{earn-credits-modal-RXLM_09P.js → earn-credits-modal-BJXnNvv7.js} +1 -1
- package/dist/assets/{emails-page-BFlPmeFT.js → emails-page-ChNIsyxX.js} +1 -1
- package/dist/assets/{general-page-q3bvwcHU.js → general-page-Joeygf_N.js} +1 -1
- package/dist/assets/{hatching-screen-6TxMgPxR.js → hatching-screen-B4BX6YJm.js} +1 -1
- package/dist/assets/{home-page-route-mDiWda9f.js → home-page-route-CmVT_FWM.js} +1 -1
- package/dist/assets/{hosting-screen-XKK-VeRo.js → hosting-screen-B-KyyLUm.js} +1 -1
- package/dist/assets/{identity-page-route-BCiHzwmk.js → identity-page-route-Dl65N_cj.js} +1 -1
- package/dist/assets/{index-BjEJFZTJ.js → index-DGojzQtP.js} +20 -20
- package/dist/assets/{inspect-page-BrUzgvle.js → inspect-page-DGmhgzNU.js} +1 -1
- package/dist/assets/{install-Uj6CrGld.js → install-DzcS2hVv.js} +1 -1
- package/dist/assets/{integrations-page-BL9LXHFe.js → integrations-page-D_TaVfYl.js} +1 -1
- package/dist/assets/{intelligence-layout-BwYGHEw7.js → intelligence-layout-DZ_lXLTB.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-page-QHFTyWOo.js → keyboard-shortcuts-page-CwEtke1e.js} +1 -1
- package/dist/assets/{library-detail-page-nUyEDHke.js → library-detail-page-DP_uvWHQ.js} +1 -1
- package/dist/assets/{library-page-B0AzCNkJ.js → library-page-D4Ay8lOK.js} +1 -1
- package/dist/assets/{login-flow-Bi4ujzeb.js → login-flow-BZiMiMrf.js} +1 -1
- package/dist/assets/{login-page-BOH-K9Pj.js → login-page-C-lBEtiR.js} +1 -1
- package/dist/assets/{logout-page-B1QXMyiH.js → logout-page-Dd8xdb39.js} +1 -1
- package/dist/assets/{logs-layout-zcrIEQRy.js → logs-layout-C2Qs3fI-.js} +1 -1
- package/dist/assets/{memory-router-playground-page-CeZ4XMd2.js → memory-router-playground-page-D9miza7X.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-BjPgVWjw.js → mobile-sidebar-drawer-DrrMr6Xw.js} +1 -1
- package/dist/assets/{notifications-page-omwlGRbj.js → notifications-page-aakfxDxE.js} +1 -1
- package/dist/assets/{oauth-complete-page--ojS1AzN.js → oauth-complete-page-DAbPV3TG.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-D5wVrngS.js → oauth-popup-complete-page-DyEV43x9.js} +1 -1
- package/dist/assets/{plugin-detail-page-Co_JFwRa.js → plugin-detail-page-cM71JV79.js} +1 -1
- package/dist/assets/{plugins-page-D7VpzRFc.js → plugins-page-BbOw3iEZ.js} +1 -1
- package/dist/assets/{pre-chat-flow-BoePpEU7.js → pre-chat-flow-DYa4Tg43.js} +1 -1
- package/dist/assets/{privacy-page-DpKZ9VJG.js → privacy-page-qfuUT3ZP.js} +1 -1
- package/dist/assets/{privacy-screen-CEsX-1V3.js → privacy-screen-Iqyv6zx6.js} +1 -1
- package/dist/assets/{provider-callback-page-DDEEkkDM.js → provider-callback-page-CxHnf-wJ.js} +1 -1
- package/dist/assets/{provider-signup-page-CZqSVAQl.js → provider-signup-page-vOry8yXY.js} +1 -1
- package/dist/assets/{review-terms-screen-CYFxXWmR.js → review-terms-screen-DDGg4T4h.js} +1 -1
- package/dist/assets/{schedules-page-Dk-YbWK3.js → schedules-page-C6MSsxSW.js} +1 -1
- package/dist/assets/{select-assistant-screen-CYpMf074.js → select-assistant-screen-CNC2S4Bq.js} +1 -1
- package/dist/assets/{settings-layout-C_sqrv5S.js → settings-layout-BXQK9h6V.js} +1 -1
- package/dist/assets/{share-feedback-modal-Cg8gci5A.js → share-feedback-modal-Cd3EJn8y.js} +1 -1
- package/dist/assets/{sidebar-tree-Cme65q7r.js → sidebar-tree-CPFfB2hS.js} +1 -1
- package/dist/assets/{signup-page-BBM_CboU.js → signup-page-CBvfJsht.js} +1 -1
- package/dist/assets/{skills-page-J6mZv9bN.js → skills-page-CS2tWjQe.js} +1 -1
- package/dist/assets/{sounds-page-DpRhAAJv.js → sounds-page-C4u0pcg-.js} +1 -1
- package/dist/assets/{step-indicator-dots-Dmj2aMuo.js → step-indicator-dots-C_NCj5FH.js} +1 -1
- package/dist/assets/{subagent-detail-panel-Dq-GDI61.js → subagent-detail-panel-0yehIKO8.js} +1 -1
- package/dist/assets/{system-events-page-DNln669W.js → system-events-page-Dw7NwEcP.js} +1 -1
- package/dist/assets/{tiptap-document-editor-DucA37Km.js → tiptap-document-editor-pNgheL8Q.js} +1 -1
- package/dist/assets/{tool-detail-panel-CwQTuANT.js → tool-detail-panel-B5SgZOMP.js} +1 -1
- package/dist/assets/{trace-page-CKTCZonQ.js → trace-page-C7tNAZHn.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-BsW23ioD.js → upgrade-cancel-page-ByiEITdu.js} +1 -1
- package/dist/assets/{upgrade-success-page-DqSBwFJv.js → upgrade-success-page-CLOlaEfu.js} +1 -1
- package/dist/assets/{usage-page-D6cPGTNn.js → usage-page-Drq5qPw2.js} +1 -1
- package/dist/assets/{use-current-platform-assistant-Cu95G65M.js → use-current-platform-assistant-TpNI2OQf.js} +1 -1
- package/dist/assets/{use-oauth-complete-deep-link-listener-BQZGv8sr.js → use-oauth-complete-deep-link-listener-aRDKwx8y.js} +1 -1
- package/dist/assets/{use-onboarding-login-Cd72-1Qe.js → use-onboarding-login-CWKxGXhS.js} +1 -1
- package/dist/assets/{voice-page-D8IZifkA.js → voice-page-DiYRh5kS.js} +1 -1
- package/dist/assets/{weather-forecast-display-DgqpUX3a.js → weather-forecast-display-DV6RskYo.js} +1 -1
- package/dist/assets/{welcome-screen-B2tizoBp.js → welcome-screen-lzsZvDsg.js} +1 -1
- package/dist/assets/{workspace-page-Bu8beso_.js → workspace-page-DPhpvY0s.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{T as n}from"./portal-container-DIXEBWUe.js";import{n as r}from"./QueryClientProvider-DNHWXaGq.js";import{t as i}from"./useQuery-D2zf6Uhu.js";import{t as a}from"./useMutation-BuofVRHk.js";import{t as o}from"./jsx-runtime-CVSDxk6A.js";import{t as s}from"./queryOptions-BtNi-_9H.js";import{t as c}from"./button-DdEh-9f_.js";import{n as l,r as u,t as d}from"./panel-item-FzMfzMJA.js";import{t as f}from"./input-Cu3PPVCq.js";import{t as p}from"./createLucideIcon-D6d6iDdi.js";import{t as m}from"./chevron-right-zTNPbA1m.js";import{t as h}from"./loader-circle-BSAFLoPH.js";import{t as g}from"./pencil-BA9LOIzP.js";import{t as _}from"./x-BDqbYVtS.js";import{Gn as v,Kn as y,Un as b,Wn as x,qn as S}from"./sdk.gen-AJllUeDf.js";import{n as C}from"./use-is-mobile-D_xrnINF.js";import{Ba as w,Ei as T,Ia as E,Ja as D,La as O,Pa as k,Ra as A,Va as j,Wa as M,Yi as N,ka as P,mo as F,na as I,po as ee}from"./index-BjEJFZTJ.js";import{t as te}from"./use-active-assistant-id-BIhArlF_.js";import{n as L,t as ne}from"./mobile-sidebar-drawer-BjPgVWjw.js";import{n as re,t as ie}from"./file-markdown-DX5x9ziL.js";import{t as R}from"./format-file-size-Cx-rVS-D.js";var ae=p(`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`}]]),oe=p(`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`}]]),se=p(`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`}]]),z=p(`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`}]]),B=e(t(),1);function ce(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function le(e,t){return ce(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function ue(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}var V=o();function H(e){return s({queryFn:async()=>{let{data:t,error:n}=await x({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function U({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=O;return n.startsWith(`image/`)?r=P:n.startsWith(`video/`)?r=T:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=E),(0,V.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,V.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function W({viewMode:e,onChange:t}){return(0,V.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(n=>{let r=e===n;return(0,V.jsx)(c,{variant:`ghost`,onClick:()=>t(n),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:r?`var(--surface-lift)`:`transparent`,color:r?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:r?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:n===`preview`?`Preview`:`Source`},n)})})}function G({name:e,mimeType:t,size:n,rightContent:r}){return(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,V.jsx)(U,{mimeType:t}),(0,V.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,V.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:R(n)})]}),r]})}function de({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:a,isLoading:o}=i({queryFn:async()=>{let n=await b({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,B.useState)(null);return(0,B.useEffect)(()=>{if(!a)return;let e=URL.createObjectURL(a);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[a]),o?(0,V.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,V.jsx)(h,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,V.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,V.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,V.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,V.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function fe(e){return e.split(`/`).some(e=>e.startsWith(`.`))}function pe({isDirty:e,isSaving:t,onSave:n,onDiscard:r}){return(0,V.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t px-3 py-2`,style:{borderColor:`var(--border-element)`},children:[(0,V.jsx)(c,{variant:`ghost`,size:`compact`,disabled:t,onClick:r,children:`Discard`}),t&&(0,V.jsx)(h,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}}),(0,V.jsx)(c,{variant:`primary`,size:`compact`,disabled:!e||t,onClick:n,children:`Save`})]})}function K({content:e,downloadContent:t,fileName:n,mimeType:r,showEdit:i,isEditing:a,onToggleEdit:o}){let[s,l]=(0,B.useState)(!1),u=(0,B.useRef)(null),d=(0,B.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{l(!0),u.current&&clearTimeout(u.current),u.current=setTimeout(()=>l(!1),1500)})},[e]),f=t??e,p=(0,B.useCallback)(()=>{let e=new Blob([f],{type:r}),t=URL.createObjectURL(e),i=document.createElement(`a`);i.href=t,i.download=n,i.click(),URL.revokeObjectURL(t)},[f,n,r]);return(0,B.useEffect)(()=>()=>{u.current&&clearTimeout(u.current)},[]),a?null:(0,V.jsxs)(`div`,{className:`absolute right-3 top-3 z-10 flex items-center gap-1 rounded-md bg-[var(--surface-primary)] shadow-sm`,children:[i&&(0,V.jsx)(c,{variant:`ghost`,size:`regular`,iconOnly:(0,V.jsx)(g,{"aria-hidden":!0}),onClick:o,"aria-label":`Edit file`,className:`hover:bg-[var(--surface-base)]`}),(0,V.jsx)(c,{variant:`ghost`,size:`regular`,iconOnly:s?(0,V.jsx)(F,{"aria-hidden":!0}):(0,V.jsx)(D,{"aria-hidden":!0}),onClick:d,"aria-label":s?`Copied`:`Copy file contents`,className:`hover:bg-[var(--surface-base)]`}),(0,V.jsx)(c,{variant:`ghost`,size:`regular`,iconOnly:(0,V.jsx)(M,{"aria-hidden":!0}),onClick:p,"aria-label":`Download file`,className:`hover:bg-[var(--surface-base)]`})]})}var q=`ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace`;function J({value:e,onChange:t,onSave:n}){return(0,V.jsx)(`textarea`,{className:`m-0 h-full w-full resize-none overflow-auto border-none bg-transparent p-4 text-body-medium-lighter leading-relaxed outline-none`,style:{color:`var(--content-default)`,fontFamily:q},value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),n())},spellCheck:!1})}function Y({content:e,readOnly:t,whiteSpace:n=`pre-wrap`,onStartEdit:r}){return(0,V.jsx)(`pre`,{className:`m-0 h-full overflow-auto p-4 text-body-medium-lighter leading-relaxed${t?``:` cursor-text`}`,style:{color:`var(--content-default)`,fontFamily:q,whiteSpace:n},onClick:t?void 0:r,children:e})}function me({assistantId:e,selectedPath:t,showHidden:n,viewMode:o,onChangeViewMode:s,onBrowse:l}){let u=r(),{data:d,isLoading:f}=i({...H({path:{assistant_id:e},query:{path:t??``,showHidden:n}}),enabled:!!t}),[p,m]=(0,B.useState)(null),[g,_]=(0,B.useState)(null),v=p!=null&&p===t,y=d?.content??``,b=g?.path===t?g.content:y,x=()=>{m(null),_(null)},C=a({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await S({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)=>{m(e=>e===t.path?null:e),_(e=>e?.path===t.path?null:e),u.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),w=b!==y,T=(0,B.useCallback)(()=>{t&&w&&!C.isPending&&C.mutate({path:t,content:b})},[t,w,C,b]);if(!t)return(0,V.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,V.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,V.jsx)(c,{type:`button`,onClick:l,leftIcon:(0,V.jsx)(se,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(f)return(0,V.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,V.jsx)(h,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!d)return(0,V.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,V.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let D=d.mimeType??`application/octet-stream`,O=d.name??t.split(`/`).pop()??t,k=re(O,D),A=le(O,D),j=d.content!=null&&!k&&!A,M=t?fe(t):!0,N=v&&(0,V.jsx)(pe,{isDirty:w,isSaving:C.isPending,onSave:T,onDiscard:x});if(k&&d.content!=null){let e=v?b:d.content;return(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,rightContent:(0,V.jsx)(W,{viewMode:o,onChange:e=>{v&&x(),s(e)}})}),(0,V.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,V.jsx)(K,{content:e,fileName:O,mimeType:D,showEdit:!M&&o===`source`,isEditing:v,onToggleEdit:()=>v?x():m(t)}),o===`preview`?(0,V.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,V.jsx)(ie,{content:e})}):v?(0,V.jsx)(J,{value:b,onChange:e=>_({path:t,content:e}),onSave:T}):(0,V.jsx)(Y,{content:d.content,readOnly:M,onStartEdit:()=>m(t)})]}),N]})}if(A&&d.content!=null){let e=v?b:d.content,n=ue(e);return(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,rightContent:(0,V.jsx)(W,{viewMode:o,onChange:e=>{v&&x(),s(e)}})}),(0,V.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,V.jsx)(K,{content:o===`preview`?n:e,downloadContent:e,fileName:O,mimeType:D,showEdit:!M&&o===`source`,isEditing:v,onToggleEdit:()=>v?x():m(t)}),o===`preview`?(0,V.jsx)(Y,{content:n,readOnly:!0,whiteSpace:`pre`}):v?(0,V.jsx)(J,{value:b,onChange:e=>_({path:t,content:e}),onSave:T}):(0,V.jsx)(Y,{content:d.content,readOnly:M,onStartEdit:()=>m(t)})]}),N]})}return j?(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,size:d.size}),(0,V.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,V.jsx)(K,{content:v?b:d.content??``,fileName:O,mimeType:D,showEdit:!M,isEditing:v,onToggleEdit:()=>v?x():m(t)}),v?(0,V.jsx)(J,{value:b,onChange:e=>_({path:t,content:e}),onSave:T}):(0,V.jsx)(Y,{content:d.content??``,readOnly:M,onStartEdit:()=>m(t)})]}),N]}):D.startsWith(`image/`)||D.startsWith(`video/`)?(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,size:d.size}),(0,V.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,V.jsx)(de,{assistantId:e,path:t,mimeType:D,showHidden:n})})]}):(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,size:d.size}),(0,V.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,V.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,V.jsx)(E,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,V.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:O}),(0,V.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,V.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:D}),(0,V.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:R(d.size,`Unknown size`)}),d.modifiedAt&&(0,V.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(d.modifiedAt).toLocaleString()]})]})]})})]})}var he=e(n(),1);function X(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 Z(e){return s({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 y({path:e.path,query:t});if(r)throw r;if(!n)throw Error(`Failed to load workspace tree`);return n},queryKey:[`assistantsWorkspaceTreeRetrieve`,e]})}function ge({entry:e}){return e.type===`directory`?(0,V.jsx)(k,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,V.jsx)(P,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,V.jsx)(T,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,V.jsx)(O,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function Q({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:a,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,depth:u}){let d=e.path??``,f=e.name??``,p=e.type===`directory`,h=n.has(d),g=r===d,_=f.startsWith(`.`),v=p&&(h||s.length>0),{data:y}=i({...Z({path:{assistant_id:t},query:{path:d,showHidden:a,includeDirSizes:o===`size`}}),enabled:p&&v}),b=(0,B.useMemo)(()=>X(y?.entries??[],o),[y?.entries,o]),x=s===``||f.toLowerCase().includes(s);return s!==``&&!p&&!x?null:(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`button`,{onClick:()=>{p?c(d):l(d)},className:`group 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:`${u*14+8}px`,paddingRight:`8px`,color:g?`var(--content-default)`:_?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:g?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:_&&!g?.7:1},children:[p?v?(0,V.jsx)(ee,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,V.jsx)(m,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,V.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,V.jsx)(ge,{entry:e}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:f}),e.size!=null&&(0,V.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:R(e.size)})]}),p&&v&&b.length>0&&(0,V.jsx)(`div`,{children:b.map(e=>(0,V.jsx)(Q,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:a,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,depth:u+1},e.path))})]})}function _e({kind:e,onCancel:t,onConfirm:n,pending:r,error:i}){let[a,o]=(0,B.useState)(``),s=a.trim(),l=s.length>0&&!r;return(0,he.createPortal)((0,V.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:e=>{e.key===`Escape`&&t()},onClick:e=>{e.target===e.currentTarget&&t()},children:(0,V.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),l&&n(s)},className:`mx-4 w-full max-w-sm rounded-xl border p-5 shadow-xl`,style:{backgroundColor:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,V.jsx)(`h2`,{className:`mb-3 text-title-small`,style:{color:`var(--content-default)`},children:e===`file`?`New File`:`New Folder`}),(0,V.jsx)(f,{autoFocus:!0,type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:e===`file`?`filename.md`:`folder-name`,errorText:i??void 0,fullWidth:!0,wrapperClassName:`mb-3`,autoComplete:`off`,spellCheck:!1}),(0,V.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,V.jsx)(c,{type:`button`,variant:`outlined`,onClick:t,disabled:r,children:`Cancel`}),(0,V.jsx)(c,{type:`submit`,disabled:!l,children:r?`Creating…`:`Create`})]})]})}),document.body)}function $({assistantId:e,expandedPaths:t,selectedPath:n,showHidden:o,sortMode:s,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:p,onChangeSortMode:m}){let h=r(),[g,y]=(0,B.useState)(``),b=g.trim().toLowerCase(),[x,C]=(0,B.useState)(!1),[T,E]=(0,B.useState)(null),[D,O]=(0,B.useState)(null),{data:k,isLoading:A}=i(Z({path:{assistant_id:e},query:{showHidden:o,includeDirSizes:s===`size`}})),M=(0,B.useMemo)(()=>X(k?.entries??[],s),[k?.entries,s]),P=(0,B.useCallback)(()=>{h.invalidateQueries({queryKey:[`assistantsWorkspaceTreeRetrieve`]})},[h]),F=a({mutationFn:async t=>{let{error:n,response:r}=t.kind===`file`?await S({path:{assistant_id:e},body:{path:t.name,content:``,encoding:`utf8`},throwOnError:!1}):await v({path:{assistant_id:e},body:{path:t.name},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to create — check the name and try again.`);return t},onSuccess:e=>{E(null),O(null),P(),e.kind===`file`?d(e.name):u(e.name)},onError:e=>{O(e instanceof Error?e.message:`Failed to create.`)}}),I=(0,B.useCallback)(e=>{T&&(O(null),F.mutate({kind:T,name:e}))},[T,F]);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,V.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,V.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s===`size`?(0,V.jsx)(oe,{"aria-hidden":!0}):(0,V.jsx)(ae,{"aria-hidden":!0}),onClick:()=>m(s===`size`?`name`:`size`),"aria-label":s===`size`?`Sort by name`:`Sort by size`,title:s===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:s===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:o?(0,V.jsx)(w,{"aria-hidden":!0}):(0,V.jsx)(j,{"aria-hidden":!0}),onClick:p,"aria-label":o?`Hide hidden files`:`Show hidden files`,title:o?`Hide hidden files`:`Show hidden files`,tintColor:o?`var(--content-default)`:`var(--content-tertiary)`}),(0,V.jsx)(ve,{open:x,onOpenChange:C,onSelectKind:e=>{C(!1),O(null),E(e)}})]})]}),(0,V.jsx)(`div`,{className:`px-3 py-2`,children:(0,V.jsxs)(`div`,{className:`relative`,children:[(0,V.jsx)(f,{type:`text`,value:g,onChange:e=>y(e.target.value),placeholder:`Search files`,leftIcon:(0,V.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),g&&(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,V.jsx)(_,{"aria-hidden":!0}),onClick:()=>y(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,V.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:A?(0,V.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,V.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):M.length?M.map(r=>(0,V.jsx)(Q,{entry:r,assistantId:e,expandedPaths:t,selectedPath:n,showHidden:o,sortMode:s,searchLower:b,onToggleExpand:l,onSelectPath:d,depth:0},r.path)):(0,V.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),T!==null&&(0,V.jsx)(_e,{kind:T,onCancel:()=>{E(null),O(null)},onConfirm:I,pending:F.isPending,error:D},T)]})}function ve({open:e,onOpenChange:t,onSelectKind:n}){return C()?(0,V.jsxs)(l.Root,{open:e,onOpenChange:t,children:[(0,V.jsx)(l.Trigger,{asChild:!0,children:(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,V.jsx)(I,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,V.jsxs)(l.Content,{children:[(0,V.jsx)(l.Header,{className:`sr-only`,children:(0,V.jsx)(l.Title,{children:`Create new`})}),(0,V.jsxs)(l.Body,{className:`pt-0`,children:[(0,V.jsx)(d,{icon:A,label:`New File`,onSelect:()=>n(`file`)}),(0,V.jsx)(d,{icon:z,label:`New Folder`,onSelect:()=>n(`folder`)})]})]})]}):(0,V.jsxs)(u.Root,{open:e,onOpenChange:t,children:[(0,V.jsx)(u.Trigger,{asChild:!0,children:(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,V.jsx)(I,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,V.jsxs)(u.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-44 overflow-hidden p-0`,children:[(0,V.jsx)(c,{type:`button`,variant:`ghost`,onClick:()=>n(`file`),className:`w-full justify-start rounded-none`,leftIcon:(0,V.jsx)(A,{"aria-hidden":!0,style:{color:`var(--content-tertiary)`}}),role:`menuitem`,children:`New File`}),(0,V.jsx)(c,{type:`button`,variant:`ghost`,onClick:()=>n(`folder`),className:`w-full justify-start rounded-none`,leftIcon:(0,V.jsx)(z,{"aria-hidden":!0,style:{color:`var(--content-tertiary)`}}),role:`menuitem`,children:`New Folder`})]})]})}function ye({assistantId:e}){let[t,n]=(0,B.useState)(new Set),[r,i]=(0,B.useState)(null),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(`name`),[l,u]=(0,B.useState)(`preview`),d=(0,B.useCallback)(e=>{n(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),f=(0,B.useCallback)(e=>{n(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[p,m]=(0,B.useState)(!1),h={assistantId:e,expandedPaths:t,selectedPath:r,showHidden:a,sortMode:s,onToggleExpand:d,onExpandPath:f,onSelectPath:(0,B.useCallback)(e=>{i(e),m(!1)},[]),onToggleShowHidden:()=>o(e=>!e),onChangeSortMode:c};return(0,V.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,V.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,V.jsx)(L,{onClick:()=>m(!0)})}),(0,V.jsx)(ne,{open:p,onClose:()=>m(!1),title:`Files`,children:(0,V.jsx)($,{...h})}),(0,V.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,V.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,V.jsx)($,{...h})}),(0,V.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,V.jsx)(me,{assistantId:e,selectedPath:r,showHidden:a,viewMode:l,onChangeViewMode:u,onBrowse:()=>m(!0)})})]})]})}function be(){return(0,V.jsx)(ye,{assistantId:te()})}export{be as WorkspacePage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{T as n}from"./portal-container-DIXEBWUe.js";import{n as r}from"./QueryClientProvider-DNHWXaGq.js";import{t as i}from"./useQuery-D2zf6Uhu.js";import{t as a}from"./useMutation-BuofVRHk.js";import{t as o}from"./jsx-runtime-CVSDxk6A.js";import{t as s}from"./queryOptions-BtNi-_9H.js";import{t as c}from"./button-DdEh-9f_.js";import{n as l,r as u,t as d}from"./panel-item-FzMfzMJA.js";import{t as f}from"./input-Cu3PPVCq.js";import{t as p}from"./createLucideIcon-D6d6iDdi.js";import{t as m}from"./chevron-right-zTNPbA1m.js";import{t as h}from"./loader-circle-BSAFLoPH.js";import{t as g}from"./pencil-BA9LOIzP.js";import{t as _}from"./x-BDqbYVtS.js";import{Gn as v,Kn as y,Un as b,Wn as x,qn as S}from"./sdk.gen-AJllUeDf.js";import{n as C}from"./use-is-mobile-D_xrnINF.js";import{Ba as w,Ei as T,Ia as E,Ja as D,La as O,Pa as k,Ra as A,Va as j,Wa as M,Yi as N,ka as P,mo as F,na as I,po as ee}from"./index-DGojzQtP.js";import{t as te}from"./use-active-assistant-id-BIhArlF_.js";import{n as L,t as ne}from"./mobile-sidebar-drawer-DrrMr6Xw.js";import{n as re,t as ie}from"./file-markdown-DX5x9ziL.js";import{t as R}from"./format-file-size-Cx-rVS-D.js";var ae=p(`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`}]]),oe=p(`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`}]]),se=p(`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`}]]),z=p(`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`}]]),B=e(t(),1);function ce(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function le(e,t){return ce(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function ue(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}var V=o();function H(e){return s({queryFn:async()=>{let{data:t,error:n}=await x({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function U({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=O;return n.startsWith(`image/`)?r=P:n.startsWith(`video/`)?r=T:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=E),(0,V.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,V.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function W({viewMode:e,onChange:t}){return(0,V.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(n=>{let r=e===n;return(0,V.jsx)(c,{variant:`ghost`,onClick:()=>t(n),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:r?`var(--surface-lift)`:`transparent`,color:r?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:r?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:n===`preview`?`Preview`:`Source`},n)})})}function G({name:e,mimeType:t,size:n,rightContent:r}){return(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,V.jsx)(U,{mimeType:t}),(0,V.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,V.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:R(n)})]}),r]})}function de({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:a,isLoading:o}=i({queryFn:async()=>{let n=await b({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,B.useState)(null);return(0,B.useEffect)(()=>{if(!a)return;let e=URL.createObjectURL(a);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[a]),o?(0,V.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,V.jsx)(h,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,V.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,V.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,V.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,V.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function fe(e){return e.split(`/`).some(e=>e.startsWith(`.`))}function pe({isDirty:e,isSaving:t,onSave:n,onDiscard:r}){return(0,V.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t px-3 py-2`,style:{borderColor:`var(--border-element)`},children:[(0,V.jsx)(c,{variant:`ghost`,size:`compact`,disabled:t,onClick:r,children:`Discard`}),t&&(0,V.jsx)(h,{className:`h-4 w-4 animate-spin`,style:{color:`var(--content-tertiary)`}}),(0,V.jsx)(c,{variant:`primary`,size:`compact`,disabled:!e||t,onClick:n,children:`Save`})]})}function K({content:e,downloadContent:t,fileName:n,mimeType:r,showEdit:i,isEditing:a,onToggleEdit:o}){let[s,l]=(0,B.useState)(!1),u=(0,B.useRef)(null),d=(0,B.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{l(!0),u.current&&clearTimeout(u.current),u.current=setTimeout(()=>l(!1),1500)})},[e]),f=t??e,p=(0,B.useCallback)(()=>{let e=new Blob([f],{type:r}),t=URL.createObjectURL(e),i=document.createElement(`a`);i.href=t,i.download=n,i.click(),URL.revokeObjectURL(t)},[f,n,r]);return(0,B.useEffect)(()=>()=>{u.current&&clearTimeout(u.current)},[]),a?null:(0,V.jsxs)(`div`,{className:`absolute right-3 top-3 z-10 flex items-center gap-1 rounded-md bg-[var(--surface-primary)] shadow-sm`,children:[i&&(0,V.jsx)(c,{variant:`ghost`,size:`regular`,iconOnly:(0,V.jsx)(g,{"aria-hidden":!0}),onClick:o,"aria-label":`Edit file`,className:`hover:bg-[var(--surface-base)]`}),(0,V.jsx)(c,{variant:`ghost`,size:`regular`,iconOnly:s?(0,V.jsx)(F,{"aria-hidden":!0}):(0,V.jsx)(D,{"aria-hidden":!0}),onClick:d,"aria-label":s?`Copied`:`Copy file contents`,className:`hover:bg-[var(--surface-base)]`}),(0,V.jsx)(c,{variant:`ghost`,size:`regular`,iconOnly:(0,V.jsx)(M,{"aria-hidden":!0}),onClick:p,"aria-label":`Download file`,className:`hover:bg-[var(--surface-base)]`})]})}var q=`ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace`;function J({value:e,onChange:t,onSave:n}){return(0,V.jsx)(`textarea`,{className:`m-0 h-full w-full resize-none overflow-auto border-none bg-transparent p-4 text-body-medium-lighter leading-relaxed outline-none`,style:{color:`var(--content-default)`,fontFamily:q},value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),n())},spellCheck:!1})}function Y({content:e,readOnly:t,whiteSpace:n=`pre-wrap`,onStartEdit:r}){return(0,V.jsx)(`pre`,{className:`m-0 h-full overflow-auto p-4 text-body-medium-lighter leading-relaxed${t?``:` cursor-text`}`,style:{color:`var(--content-default)`,fontFamily:q,whiteSpace:n},onClick:t?void 0:r,children:e})}function me({assistantId:e,selectedPath:t,showHidden:n,viewMode:o,onChangeViewMode:s,onBrowse:l}){let u=r(),{data:d,isLoading:f}=i({...H({path:{assistant_id:e},query:{path:t??``,showHidden:n}}),enabled:!!t}),[p,m]=(0,B.useState)(null),[g,_]=(0,B.useState)(null),v=p!=null&&p===t,y=d?.content??``,b=g?.path===t?g.content:y,x=()=>{m(null),_(null)},C=a({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await S({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)=>{m(e=>e===t.path?null:e),_(e=>e?.path===t.path?null:e),u.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),w=b!==y,T=(0,B.useCallback)(()=>{t&&w&&!C.isPending&&C.mutate({path:t,content:b})},[t,w,C,b]);if(!t)return(0,V.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,V.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,V.jsx)(c,{type:`button`,onClick:l,leftIcon:(0,V.jsx)(se,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(f)return(0,V.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,V.jsx)(h,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!d)return(0,V.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,V.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let D=d.mimeType??`application/octet-stream`,O=d.name??t.split(`/`).pop()??t,k=re(O,D),A=le(O,D),j=d.content!=null&&!k&&!A,M=t?fe(t):!0,N=v&&(0,V.jsx)(pe,{isDirty:w,isSaving:C.isPending,onSave:T,onDiscard:x});if(k&&d.content!=null){let e=v?b:d.content;return(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,rightContent:(0,V.jsx)(W,{viewMode:o,onChange:e=>{v&&x(),s(e)}})}),(0,V.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,V.jsx)(K,{content:e,fileName:O,mimeType:D,showEdit:!M&&o===`source`,isEditing:v,onToggleEdit:()=>v?x():m(t)}),o===`preview`?(0,V.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,V.jsx)(ie,{content:e})}):v?(0,V.jsx)(J,{value:b,onChange:e=>_({path:t,content:e}),onSave:T}):(0,V.jsx)(Y,{content:d.content,readOnly:M,onStartEdit:()=>m(t)})]}),N]})}if(A&&d.content!=null){let e=v?b:d.content,n=ue(e);return(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,rightContent:(0,V.jsx)(W,{viewMode:o,onChange:e=>{v&&x(),s(e)}})}),(0,V.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,V.jsx)(K,{content:o===`preview`?n:e,downloadContent:e,fileName:O,mimeType:D,showEdit:!M&&o===`source`,isEditing:v,onToggleEdit:()=>v?x():m(t)}),o===`preview`?(0,V.jsx)(Y,{content:n,readOnly:!0,whiteSpace:`pre`}):v?(0,V.jsx)(J,{value:b,onChange:e=>_({path:t,content:e}),onSave:T}):(0,V.jsx)(Y,{content:d.content,readOnly:M,onStartEdit:()=>m(t)})]}),N]})}return j?(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,size:d.size}),(0,V.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,V.jsx)(K,{content:v?b:d.content??``,fileName:O,mimeType:D,showEdit:!M,isEditing:v,onToggleEdit:()=>v?x():m(t)}),v?(0,V.jsx)(J,{value:b,onChange:e=>_({path:t,content:e}),onSave:T}):(0,V.jsx)(Y,{content:d.content??``,readOnly:M,onStartEdit:()=>m(t)})]}),N]}):D.startsWith(`image/`)||D.startsWith(`video/`)?(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,size:d.size}),(0,V.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,V.jsx)(de,{assistantId:e,path:t,mimeType:D,showHidden:n})})]}):(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsx)(G,{name:O,mimeType:D,size:d.size}),(0,V.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,V.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,V.jsx)(E,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,V.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:O}),(0,V.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,V.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:D}),(0,V.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:R(d.size,`Unknown size`)}),d.modifiedAt&&(0,V.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(d.modifiedAt).toLocaleString()]})]})]})})]})}var he=e(n(),1);function X(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 Z(e){return s({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 y({path:e.path,query:t});if(r)throw r;if(!n)throw Error(`Failed to load workspace tree`);return n},queryKey:[`assistantsWorkspaceTreeRetrieve`,e]})}function ge({entry:e}){return e.type===`directory`?(0,V.jsx)(k,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,V.jsx)(P,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,V.jsx)(T,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,V.jsx)(O,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function Q({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:a,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,depth:u}){let d=e.path??``,f=e.name??``,p=e.type===`directory`,h=n.has(d),g=r===d,_=f.startsWith(`.`),v=p&&(h||s.length>0),{data:y}=i({...Z({path:{assistant_id:t},query:{path:d,showHidden:a,includeDirSizes:o===`size`}}),enabled:p&&v}),b=(0,B.useMemo)(()=>X(y?.entries??[],o),[y?.entries,o]),x=s===``||f.toLowerCase().includes(s);return s!==``&&!p&&!x?null:(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`button`,{onClick:()=>{p?c(d):l(d)},className:`group 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:`${u*14+8}px`,paddingRight:`8px`,color:g?`var(--content-default)`:_?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:g?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:_&&!g?.7:1},children:[p?v?(0,V.jsx)(ee,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,V.jsx)(m,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,V.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,V.jsx)(ge,{entry:e}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:f}),e.size!=null&&(0,V.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:R(e.size)})]}),p&&v&&b.length>0&&(0,V.jsx)(`div`,{children:b.map(e=>(0,V.jsx)(Q,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:a,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,depth:u+1},e.path))})]})}function _e({kind:e,onCancel:t,onConfirm:n,pending:r,error:i}){let[a,o]=(0,B.useState)(``),s=a.trim(),l=s.length>0&&!r;return(0,he.createPortal)((0,V.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onKeyDown:e=>{e.key===`Escape`&&t()},onClick:e=>{e.target===e.currentTarget&&t()},children:(0,V.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),l&&n(s)},className:`mx-4 w-full max-w-sm rounded-xl border p-5 shadow-xl`,style:{backgroundColor:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,V.jsx)(`h2`,{className:`mb-3 text-title-small`,style:{color:`var(--content-default)`},children:e===`file`?`New File`:`New Folder`}),(0,V.jsx)(f,{autoFocus:!0,type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:e===`file`?`filename.md`:`folder-name`,errorText:i??void 0,fullWidth:!0,wrapperClassName:`mb-3`,autoComplete:`off`,spellCheck:!1}),(0,V.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,V.jsx)(c,{type:`button`,variant:`outlined`,onClick:t,disabled:r,children:`Cancel`}),(0,V.jsx)(c,{type:`submit`,disabled:!l,children:r?`Creating…`:`Create`})]})]})}),document.body)}function $({assistantId:e,expandedPaths:t,selectedPath:n,showHidden:o,sortMode:s,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:p,onChangeSortMode:m}){let h=r(),[g,y]=(0,B.useState)(``),b=g.trim().toLowerCase(),[x,C]=(0,B.useState)(!1),[T,E]=(0,B.useState)(null),[D,O]=(0,B.useState)(null),{data:k,isLoading:A}=i(Z({path:{assistant_id:e},query:{showHidden:o,includeDirSizes:s===`size`}})),M=(0,B.useMemo)(()=>X(k?.entries??[],s),[k?.entries,s]),P=(0,B.useCallback)(()=>{h.invalidateQueries({queryKey:[`assistantsWorkspaceTreeRetrieve`]})},[h]),F=a({mutationFn:async t=>{let{error:n,response:r}=t.kind===`file`?await S({path:{assistant_id:e},body:{path:t.name,content:``,encoding:`utf8`},throwOnError:!1}):await v({path:{assistant_id:e},body:{path:t.name},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to create — check the name and try again.`);return t},onSuccess:e=>{E(null),O(null),P(),e.kind===`file`?d(e.name):u(e.name)},onError:e=>{O(e instanceof Error?e.message:`Failed to create.`)}}),I=(0,B.useCallback)(e=>{T&&(O(null),F.mutate({kind:T,name:e}))},[T,F]);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,V.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,V.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s===`size`?(0,V.jsx)(oe,{"aria-hidden":!0}):(0,V.jsx)(ae,{"aria-hidden":!0}),onClick:()=>m(s===`size`?`name`:`size`),"aria-label":s===`size`?`Sort by name`:`Sort by size`,title:s===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:s===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:o?(0,V.jsx)(w,{"aria-hidden":!0}):(0,V.jsx)(j,{"aria-hidden":!0}),onClick:p,"aria-label":o?`Hide hidden files`:`Show hidden files`,title:o?`Hide hidden files`:`Show hidden files`,tintColor:o?`var(--content-default)`:`var(--content-tertiary)`}),(0,V.jsx)(ve,{open:x,onOpenChange:C,onSelectKind:e=>{C(!1),O(null),E(e)}})]})]}),(0,V.jsx)(`div`,{className:`px-3 py-2`,children:(0,V.jsxs)(`div`,{className:`relative`,children:[(0,V.jsx)(f,{type:`text`,value:g,onChange:e=>y(e.target.value),placeholder:`Search files`,leftIcon:(0,V.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),g&&(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,V.jsx)(_,{"aria-hidden":!0}),onClick:()=>y(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,V.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:A?(0,V.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,V.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):M.length?M.map(r=>(0,V.jsx)(Q,{entry:r,assistantId:e,expandedPaths:t,selectedPath:n,showHidden:o,sortMode:s,searchLower:b,onToggleExpand:l,onSelectPath:d,depth:0},r.path)):(0,V.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),T!==null&&(0,V.jsx)(_e,{kind:T,onCancel:()=>{E(null),O(null)},onConfirm:I,pending:F.isPending,error:D},T)]})}function ve({open:e,onOpenChange:t,onSelectKind:n}){return C()?(0,V.jsxs)(l.Root,{open:e,onOpenChange:t,children:[(0,V.jsx)(l.Trigger,{asChild:!0,children:(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,V.jsx)(I,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,V.jsxs)(l.Content,{children:[(0,V.jsx)(l.Header,{className:`sr-only`,children:(0,V.jsx)(l.Title,{children:`Create new`})}),(0,V.jsxs)(l.Body,{className:`pt-0`,children:[(0,V.jsx)(d,{icon:A,label:`New File`,onSelect:()=>n(`file`)}),(0,V.jsx)(d,{icon:z,label:`New Folder`,onSelect:()=>n(`folder`)})]})]})]}):(0,V.jsxs)(u.Root,{open:e,onOpenChange:t,children:[(0,V.jsx)(u.Trigger,{asChild:!0,children:(0,V.jsx)(c,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,V.jsx)(I,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,V.jsxs)(u.Content,{align:`end`,sideOffset:4,role:`menu`,className:`w-44 overflow-hidden p-0`,children:[(0,V.jsx)(c,{type:`button`,variant:`ghost`,onClick:()=>n(`file`),className:`w-full justify-start rounded-none`,leftIcon:(0,V.jsx)(A,{"aria-hidden":!0,style:{color:`var(--content-tertiary)`}}),role:`menuitem`,children:`New File`}),(0,V.jsx)(c,{type:`button`,variant:`ghost`,onClick:()=>n(`folder`),className:`w-full justify-start rounded-none`,leftIcon:(0,V.jsx)(z,{"aria-hidden":!0,style:{color:`var(--content-tertiary)`}}),role:`menuitem`,children:`New Folder`})]})]})}function ye({assistantId:e}){let[t,n]=(0,B.useState)(new Set),[r,i]=(0,B.useState)(null),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(`name`),[l,u]=(0,B.useState)(`preview`),d=(0,B.useCallback)(e=>{n(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),f=(0,B.useCallback)(e=>{n(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[p,m]=(0,B.useState)(!1),h={assistantId:e,expandedPaths:t,selectedPath:r,showHidden:a,sortMode:s,onToggleExpand:d,onExpandPath:f,onSelectPath:(0,B.useCallback)(e=>{i(e),m(!1)},[]),onToggleShowHidden:()=>o(e=>!e),onChangeSortMode:c};return(0,V.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,V.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,V.jsx)(L,{onClick:()=>m(!0)})}),(0,V.jsx)(ne,{open:p,onClose:()=>m(!1),title:`Files`,children:(0,V.jsx)($,{...h})}),(0,V.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,V.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,V.jsx)($,{...h})}),(0,V.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,V.jsx)(me,{assistantId:e,selectedPath:r,showHidden:a,viewMode:l,onChangeViewMode:u,onBrowse:()=>m(!0)})})]})]})}function be(){return(0,V.jsx)(ye,{assistantId:te()})}export{be as WorkspacePage};
|
package/dist/index.html
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
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-
|
|
13
|
+
<script type="module" crossorigin src="/assistant/assets/index-DGojzQtP.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/dist-B4KYfSON.js">
|