@vellumai/web 0.10.4-dev.202607010028.1a4efcc → 0.10.4-dev.202607010146.a37a2fa
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/{AnimatePresence-v8rrAm7n.js → AnimatePresence-uY0BR2n2.js} +1 -1
- package/dist/assets/{account-page-BYTIe1XI.js → account-page-DQ-mhgzD.js} +1 -1
- package/dist/assets/acp-run-detail-panel-F4jGaLGr.js +5 -0
- package/dist/assets/{add-credits-modal-FPXxOAMb.js → add-credits-modal-BiXT9GCG.js} +1 -1
- package/dist/assets/{advanced-page-UPgcMIra.js → advanced-page-DWy3_xJE.js} +1 -1
- package/dist/assets/{ai-page-CGEA7pTY.js → ai-page-DvWwWWSe.js} +1 -1
- package/dist/assets/{animated-avatar-Dt3HMkLe.js → animated-avatar-DjujnGJR.js} +1 -1
- package/dist/assets/{api-CwV4YyjT.js → api-Chh-fdux.js} +1 -1
- package/dist/assets/{api-key-screen-D1quwCLW.js → api-key-screen-BckE9IMc.js} +1 -1
- package/dist/assets/{archive-page-KY7n-0Qw.js → archive-page-CFFPhMCo.js} +1 -1
- package/dist/assets/assistant-api-Dp82rdTg.js +1 -0
- package/dist/assets/{assistant-feature-flag-store-9j2-Kf63.js → assistant-feature-flag-store-B-x4UdVS.js} +1 -1
- package/dist/assets/{assistant-status-panel-D1hbDikl.js → assistant-status-panel-CKqzTyXz.js} +1 -1
- package/dist/assets/auth-store-Cvj5lZ7o.js +2 -0
- package/dist/assets/background-task-detail-panel-C491zuhg.js +1 -0
- package/dist/assets/billing-page--ddtmJRL.js +3 -0
- package/dist/assets/{bookmarks-page-DnLy6VIU.js → bookmarks-page-Rzi8hBvA.js} +1 -1
- package/dist/assets/{build-state-D10hicGm.js → build-state-CI7ASQH5.js} +1 -1
- package/dist/assets/by-tool-use-id-index-Dbdu-8Kf.js +1 -0
- package/dist/assets/{client-feature-flag-store-Co2Hhr3q.js → client-feature-flag-store-D7sAlDlW.js} +1 -1
- package/dist/assets/{command-palette-B1B3JFxY.js → command-palette-DI2UhxPS.js} +1 -1
- package/dist/assets/{command-palette-window-page-Cg49NRQN.js → command-palette-window-page-D8V7p65K.js} +1 -1
- package/dist/assets/{community-page-C1LspNF5.js → community-page-DcVnBmFx.js} +1 -1
- package/dist/assets/{connect-page-C4TuRCyq.js → connect-page-Cbt4JSWk.js} +1 -1
- package/dist/assets/contacts-page-route-BV3-Vd6x.js +9 -0
- package/dist/assets/{debug-page-BU9E2Zpp.js → debug-page-BVIoqlde.js} +2 -2
- package/dist/assets/{deploy-dialogs-BffsSWHa.js → deploy-dialogs-D03Uk0Rn.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-D0KsydFR.js → detail-panel-stop-button-wfqPI5Gm.js} +1 -1
- package/dist/assets/{detail-shell-BPCWck_r.js → detail-shell-Bv3NKx5s.js} +1 -1
- package/dist/assets/{developer-page-CnUodPF4.js → developer-page-Cin7Aqe9.js} +1 -1
- package/dist/assets/{devices-page-BBKhaTRg.js → devices-page-B9jm7IpO.js} +1 -1
- package/dist/assets/{diagnostics-Dd5CfP37.js → diagnostics-ChEKet-K.js} +1 -1
- package/dist/assets/{dictation-overlay-page-Dz04r9UQ.js → dictation-overlay-page-CF_ElkZT.js} +1 -1
- package/dist/assets/{document-viewer-page-DJq7Ygvy.js → document-viewer-page-oHeSeBg_.js} +1 -1
- package/dist/assets/{earn-credits-modal-fcQSixir.js → earn-credits-modal-Bz9ZtPne.js} +1 -1
- package/dist/assets/{emails-page-wd0TRGg5.js → emails-page-Ci1A4hnA.js} +1 -1
- package/dist/assets/{feature-flag-catalog-DV82F0L3.js → feature-flag-catalog-BD9vx85e.js} +1 -1
- package/dist/assets/{file-editor-DOP89Gof.js → file-editor-DEuQwSiV.js} +1 -1
- package/dist/assets/general-page-DG6oYb_H.js +1 -0
- package/dist/assets/{hatching-screen-DY3K0JOi.js → hatching-screen-DqW9u6T7.js} +1 -1
- package/dist/assets/{home-page-route-DONg99uG.js → home-page-route-Cbsx-6Pd.js} +1 -1
- package/dist/assets/hosting-screen-D3PQJGnh.js +1 -0
- package/dist/assets/identity-page-route-D6LmIeV7.js +1 -0
- package/dist/assets/index-CbZDhL8R.js +130 -0
- package/dist/assets/{index-BX26FZ8C.css → index-pahhv1V_.css} +1 -1
- package/dist/assets/{inspect-page-Bumwp983.js → inspect-page-CF9Ayo4W.js} +4 -4
- package/dist/assets/{install-WYTcfmdN.js → install-PnOuSvVB.js} +1 -1
- package/dist/assets/{integrations-page-BsTax_30.js → integrations-page-Cr-tXygA.js} +1 -1
- package/dist/assets/{intelligence-layout-D6U1Copv.js → intelligence-layout-BNgvJuLM.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-page-D_GqzGiY.js → keyboard-shortcuts-page-C2n2dsd-.js} +1 -1
- package/dist/assets/{library-detail-page-Bw131lov.js → library-detail-page-D0niVoGO.js} +1 -1
- package/dist/assets/{library-page-jSdqmt8d.js → library-page-vhdWT6gT.js} +1 -1
- package/dist/assets/local-mode-CgrENuVf.js +39 -0
- package/dist/assets/{login-flow-Bu_R77mO.js → login-flow-DONovBeX.js} +1 -1
- package/dist/assets/{login-page-DPfXjBWn.js → login-page-9t0OhjZ_.js} +1 -1
- package/dist/assets/{logout-page-AznF3yAS.js → logout-page-DicyhkqL.js} +1 -1
- package/dist/assets/{logs-layout-BYJ41Qya.js → logs-layout-au0VXbNb.js} +1 -1
- package/dist/assets/{memory-router-playground-page-Dm3TiSY7.js → memory-router-playground-page-DCTR_mh0.js} +1 -1
- package/dist/assets/{messages-qxyeoKYS.js → messages-xsY377mD.js} +1 -1
- package/dist/assets/{metric-card-CderFn_K.js → metric-card-BSQEvW8u.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-CfI8ihQa.js → mobile-sidebar-drawer-dvyeQG5_.js} +1 -1
- package/dist/assets/{native-biometric-CBWaVg3Q.js → native-biometric-BMNAVqxV.js} +2 -2
- package/dist/assets/{notifications-page-B8rJ9VKw.js → notifications-page-COTdJiXn.js} +1 -1
- package/dist/assets/{oauth-complete-page-z8o1ui13.js → oauth-complete-page-BE-O3kQl.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Tkc-rQX9.js → oauth-popup-complete-page-BXSFGP82.js} +1 -1
- package/dist/assets/{pairing-page-m0oxNDQ9.js → pairing-page-DCN7wosZ.js} +1 -1
- package/dist/assets/{platform-detection-ByImsPTf.js → platform-detection-CrZF23_f.js} +1 -1
- package/dist/assets/{platform-loopback-page-D2HL9AUX.js → platform-loopback-page-WP6ZK2og.js} +1 -1
- package/dist/assets/plugins-page-CgXy8wOw.js +1 -0
- package/dist/assets/prechat-route-Dlxfnhlc.js +1 -0
- package/dist/assets/{prefs-BJa0q2Gz.js → prefs-CDgkoxVx.js} +1 -1
- package/dist/assets/privacy-page-GobR1d9D.js +1 -0
- package/dist/assets/{privacy-screen-RyAPZfA7.js → privacy-screen-Dc2hlvoL.js} +1 -1
- package/dist/assets/{provider-callback-page-D3_-eNaE.js → provider-callback-page-6xGqU2cr.js} +1 -1
- package/dist/assets/{provider-signup-page-DHI17XiE.js → provider-signup-page-CrWI2ul2.js} +1 -1
- package/dist/assets/{quick-input-page-DX5Rrr0p.js → quick-input-page-CyO-UVOQ.js} +1 -1
- package/dist/assets/remote-gateway-session-BigLiDPm.js +1 -0
- package/dist/assets/{research-mock-page-DYca4sbx.js → research-mock-page-CFeRg2m9.js} +1 -1
- package/dist/assets/{research-onboarding-route-Ba74KUBl.js → research-onboarding-route-CPFxApXp.js} +3 -3
- package/dist/assets/{resolved-assistants-store-Cp4J43BK.js → resolved-assistants-store-Dqf0LJrA.js} +1 -1
- package/dist/assets/{review-terms-screen-D4lBqvba.js → review-terms-screen-DlWWIPhL.js} +1 -1
- package/dist/assets/select-assistant-screen-DRGlR5tq.js +1 -0
- package/dist/assets/{settings-layout-D9gcFAQr.js → settings-layout-CPlHwZar.js} +1 -1
- package/dist/assets/share-feedback-modal-BtexHlGh.js +1 -0
- package/dist/assets/{sidebar-tree-BFvRtzPm.js → sidebar-tree-BSfeq3rN.js} +1 -1
- package/dist/assets/{signup-page-CW6PcJ-3.js → signup-page-CD82HLMa.js} +1 -1
- package/dist/assets/{signup-shell-DOF8aXn0.js → signup-shell-DMX1tgqB.js} +1 -1
- package/dist/assets/{skills-page-BUy5sEoN.js → skills-page-uPBTcfof.js} +1 -1
- package/dist/assets/{sounds-page-g_BwlxnY.js → sounds-page-D5Otlu0m.js} +1 -1
- package/dist/assets/subagent-detail-panel-CwrQ-fU2.js +4 -0
- package/dist/assets/subagent-store-7iuZZvpK.js +3 -0
- package/dist/assets/{system-events-page-BP8qivQM.js → system-events-page-C97rXw7f.js} +1 -1
- package/dist/assets/{tiptap-document-editor-BlIwazbg.js → tiptap-document-editor-D7FsRH57.js} +2 -2
- package/dist/assets/{tool-detail-panel-bEz99Rub.js → tool-detail-panel-C4rvmaIu.js} +1 -1
- package/dist/assets/trace-page-DC6afHEl.js +1 -0
- package/dist/assets/{upgrade-cancel-page-D4-wJgCa.js → upgrade-cancel-page-CPkecrqt.js} +1 -1
- package/dist/assets/{upgrade-success-page-BMxaY6Um.js → upgrade-success-page-jpqq2ebU.js} +1 -1
- package/dist/assets/{usage-page-qqfsQlxg.js → usage-page-CYhpUzpF.js} +1 -1
- package/dist/assets/{use-active-assistant-id-ZxDeBTfL.js → use-active-assistant-id-BVzVN4_g.js} +1 -1
- package/dist/assets/use-is-org-ready-BZPwjmJ0.js +1 -0
- package/dist/assets/{use-onboarding-login-DwVCJ7DH.js → use-onboarding-login-Cl5KRcns.js} +1 -1
- package/dist/assets/{use-reduced-motion-D32BDyn0.js → use-reduced-motion-BG6r0Z46.js} +1 -1
- package/dist/assets/{use-skill-categories-CZml3JEH.js → use-skill-categories-DnGU6jFt.js} +1 -1
- package/dist/assets/{viewer-store-BSiJen54.js → viewer-store-DPvYSSNt.js} +1 -1
- package/dist/assets/{voice-page-CNB9Pxor.js → voice-page-CmWbntyV.js} +1 -1
- package/dist/assets/{weather-forecast-display-270rsUDb.js → weather-forecast-display-B5N0WiEJ.js} +1 -1
- package/dist/assets/{welcome-screen-Cqkp2VuN.js → welcome-screen-CM2JfU7K.js} +1 -1
- package/dist/assets/workflow-detail-panel-A3Kmykm3.js +1 -0
- package/dist/assets/workspace-page-Ae6mnQRy.js +1 -0
- package/dist/index.html +34 -34
- package/package.json +1 -1
- package/dist/assets/acp-run-detail-panel-DSh8Ovx2.js +0 -5
- package/dist/assets/assistant-api-DsiQd51V.js +0 -1
- package/dist/assets/auth-store-DhoDi3Ka.js +0 -2
- package/dist/assets/background-task-detail-panel-BssEr931.js +0 -1
- package/dist/assets/billing-page-KDeiZ67m.js +0 -3
- package/dist/assets/contacts-page-route-CUppjd6B.js +0 -9
- package/dist/assets/general-page-CPBHVyTD.js +0 -1
- package/dist/assets/hosting-screen-CVc_n57L.js +0 -1
- package/dist/assets/identity-page-route-ppulI5aE.js +0 -1
- package/dist/assets/index-DbPUHSMl.js +0 -130
- package/dist/assets/local-mode-CvrNMtPF.js +0 -39
- package/dist/assets/plugins-page-DRvAzmXd.js +0 -1
- package/dist/assets/prechat-route-BH3zTo60.js +0 -1
- package/dist/assets/privacy-page-B_IftswZ.js +0 -1
- package/dist/assets/remote-gateway-session-znfqX8Fi.js +0 -1
- package/dist/assets/select-assistant-screen-C0FcoktK.js +0 -1
- package/dist/assets/share-feedback-modal-CFO00NHT.js +0 -1
- package/dist/assets/subagent-detail-panel-DZMGVqEM.js +0 -4
- package/dist/assets/subagent-store-uyvG6X03.js +0 -3
- package/dist/assets/three-dot-indicator-BOWJCSsU.js +0 -1
- package/dist/assets/trace-page-7kxcQ5q9.js +0 -1
- package/dist/assets/use-is-org-ready-DGnWseqw.js +0 -1
- package/dist/assets/workflow-detail-panel-Dl3mqk0u.js +0 -1
- package/dist/assets/workspace-page-DBZwYmVn.js +0 -1
- /package/dist/assets/{browser-BtcMMWcD.js → browser-DM38C5zq.js} +0 -0
- /package/dist/assets/{edit-chat-session-TX_J-I33.js → edit-chat-session-DcCgw5Qy.js} +0 -0
- /package/dist/assets/{native-deep-link-ODdFH_Wn.js → native-deep-link-C2-dXaz_.js} +0 -0
- /package/dist/assets/{native-file-Djc1KZs3.js → native-file-DIJL6af-.js} +0 -0
- /package/dist/assets/{proxy-E3RRrfO5.js → proxy-BgtfAoJj.js} +0 -0
- /package/dist/assets/{public-asset-B5BQLOj3.js → public-asset-C2P77n3W.js} +0 -0
- /package/dist/assets/{workflow-status-BuGeg_Pe.js → workflow-status-ByHycBJ_.js} +0 -0
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-BscuIPxA.js";import"./src-mai-NajT.js";import{t as a}from"./arrow-left-CP-EhDNF.js";import{n as o,r as s,t as c}from"./metric-card-CderFn_K.js";import{h as l,pt as u}from"./detail-shell-BPCWck_r.js";import{t as d}from"./brain-Bs6LnfHO.js";import{t as f}from"./chevron-right-B6vEpVY0.js";import{t as p}from"./globe-D3P5sSKJ.js";import{t as m}from"./x-DxL-bCuT.js";import{t as h}from"./misc-CFzLzLPH.js";import{a as g,i as _,r as v}from"./subagent-store-uyvG6X03.js";import{t as y}from"./proxy-E3RRrfO5.js";import{t as b}from"./AnimatePresence-v8rrAm7n.js";import{t as x}from"./use-reduced-motion-D32BDyn0.js";import{t as S}from"./three-dot-indicator-BOWJCSsU.js";import{A as C,C as w,D as T,E,Ea as D,M as O,Ma as k,N as A,O as j,P as M,Q as N,S as P,T as F,at as I,ct as L,dt as R,ft as z,it as B,j as V,k as H,lt as U,ot as ee,st as W,w as G}from"./index-DbPUHSMl.js";import{t as te}from"./status-badge-pill-j3ke1d9o.js";import{t as ne}from"./detail-panel-stop-button-D0KsydFR.js";import{CodeBlock as K,ToolDetailBody as q}from"./tool-detail-panel-bEz99Rub.js";var J=e(t(),1),Y=r();function X({status:e}){return(0,Y.jsx)(te,{color:_(e),label:g(e)})}function re(e,t){let n=e.steps[0];return`${t}-${e.label}-${n?O(n,t):``}`}function ie(e){for(let t=e.steps.length-1;t>=0;t--){let n=e.steps[t];if(n.kind===`tool`&&n.status===`running`||n.kind===`web_search`&&n.title===`Searching the web`)return n}}function ae(e,t){return e&&e.kind===`tool`&&(e.activity||e.info)||t}function oe(e){for(let t=e.steps.length-1;t>=0;t--){let n=e.steps[t];if(n.kind===`web_search`&&n.query)return n.query}}function se(e){for(let t=e.steps.length-1;t>=0;t--){let n=e.steps[t];if(n.kind===`thinking`&&n.text)return n.text}}function Z(e){if(e.kind===`tool`)return e.toolCallId||void 0;if(e.kind===`thinking`||e.kind===`web_search`||e.kind===`web_search_error`)return e.detailKey}function ce({steps:e,onStepDetailClick:t,expandedKeys:n,onExpandedKeysChange:r,isRunning:i=!1}){let[a,o]=(0,J.useState)(new Set),s=n??a,c=(0,J.useCallback)(e=>{let t=t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n};if(r){r(t);return}o(t)},[r]),l=(0,J.useMemo)(()=>C(e),[e]);return l.length===0?null:(0,Y.jsx)(`div`,{className:`flex w-full flex-col`,children:l.map((e,n)=>{let r=re(e,n),a=n===l.length-1;return(0,Y.jsx)(le,{section:e,isLast:a,isActiveTail:a&&i,expanded:s.has(r),sectionKeyValue:r,onToggle:c,onStepDetailClick:t},r)})})}var le=(0,J.memo)(function({section:e,isLast:t,isActiveTail:n,expanded:r,sectionKeyValue:a,onToggle:o,onStepDetailClick:s}){let c=x(),l=V(e.steps),u=l===`running`&&!n?`completed`:l,f=u===`running`||n,m=e.steps[0]?.kind===`thinking`,g=e.steps.length,_=e.label===`Searching the web`,v=_?oe(e):void 0,S=g>=2,C=e.steps.some(e=>A(e)||!!s&&!!Z(e)),T=u===`running`?``:M(e.steps.map(e=>`durationLabel`in e?e.durationLabel:``)),D=u===`running`?ie(e):void 0,k=u===`running`&&!_?ae(D,e.label):``,N=_&&(u===`running`||!!v),P=v??e.label,I=m&&f,R=I?se(e)??e.label:void 0,z=u===`running`||N||I||!!T,B=`${g} step${g===1?``:`s`}`;return(0,Y.jsxs)(`div`,{"data-testid":`subagent-phase-section`,"data-phase-label":e.label,className:h(`relative flex flex-col gap-2`,!t&&`pb-4`),children:[!t&&(0,Y.jsx)(j,{className:`top-[17.5px] -bottom-[4.5px]`}),(0,Y.jsxs)(`button`,{type:`button`,"data-testid":`subagent-phase-header`,disabled:!C,onClick:C?()=>o(a):void 0,className:h(`flex h-[22px] w-full items-center gap-2 text-left`,C&&`cursor-pointer`),children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`flex h-[14px] w-[14px] shrink-0 items-center justify-center`,children:(0,Y.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}),(0,Y.jsx)(H,{status:f?`running`:u,isThinking:m&&!f}),(0,Y.jsx)(i,{variant:`body-medium-default`,className:`shrink-0 text-[var(--content-default)]`,children:e.label}),z&&(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 leading-none text-[var(--content-tertiary)] opacity-10`,children:`|`}),N?(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1`,children:[(0,Y.jsx)(p,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,Y.jsx)(L,{currentStepTitle:``,currentStepInfo:P})]}):I?(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1`,children:[(0,Y.jsx)(d,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,Y.jsx)(L,{currentStepTitle:``,currentStepInfo:R??e.label})]}):u===`running`?(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1`,children:[(0,Y.jsx)(d,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,Y.jsx)(L,{currentStepTitle:``,currentStepInfo:k})]}):T?(0,Y.jsx)(i,{variant:`body-small-default`,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:`Worked for ${T}`}):null,C&&S&&(0,Y.jsx)(`span`,{"data-testid":`subagent-phase-step-count`,className:`ml-auto inline-flex shrink-0 items-center self-stretch whitespace-nowrap rounded-full bg-[var(--surface-base)] px-2`,children:(0,Y.jsx)(i,{variant:`body-small-default`,className:`whitespace-nowrap text-[var(--content-secondary)]`,children:B})})]}),(0,Y.jsx)(b,{initial:!1,children:C&&r&&(0,Y.jsx)(y.div,{initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:c?{duration:0}:{duration:.25,ease:[.16,1,.3,1]},className:`overflow-hidden`,children:(0,Y.jsx)(`div`,{className:`flex flex-col items-start gap-1 pl-[22px]`,children:e.steps.map((e,t)=>{let n=s?Z(e):void 0;if(n&&s){if(e.kind===`tool`)return(0,Y.jsx)(F,{variant:`tool`,iconName:e.iconName,label:e.activity||e.info||e.title,riskLevel:e.riskLevel,tone:e.status===`error`||e.status===`denied`?`error`:`default`,ariaLabel:`View tool details`,onClick:()=>s(n)},O(e,t));if(e.kind===`thinking`)return(0,Y.jsx)(F,{variant:`tool`,iconName:`brain`,label:e.text,ariaLabel:`View reasoning`,onClick:()=>s(n)},O(e,t));if(e.kind===`web_search`)return(0,Y.jsx)(F,{variant:`tool`,iconName:`globe`,label:e.query||e.title,ariaLabel:`View search details`,onClick:()=>s(n)},O(e,t));if(e.kind===`web_search_error`)return(0,Y.jsx)(F,{variant:`tool`,iconName:`globe`,label:e.errorMessage,tone:`error`,ariaLabel:`View search error`,onClick:()=>s(n)},O(e,t))}return e.kind===`web_search`?(0,Y.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[e.query?(0,Y.jsx)(i,{variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:`"${e.query}"`}):null,(0,Y.jsx)(G,{step:e})]},O(e,t)):e.kind===`web_search_error`?(0,Y.jsx)(w,{step:e},O(e,t)):(0,Y.jsx)(E,{step:e},O(e,t))})})},`phase-steps`)})]})}),ue=`
|
|
2
|
-
Content:
|
|
3
|
-
`;function de(e){return I(e)||e}function fe(e,t){let n=e??``,r=n.indexOf(ue),i=r>=0?n.slice(0,r):``,a=r>=0?n.slice(r+10):n,o=e=>{let t=i.match(RegExp(`^${e}:[ \\t]*(.+)$`,`m`));return t?t[1].trim():null},s=[],c=i.indexOf(`Notices:`);if(c>=0)for(let e of i.slice(c).split(`
|
|
4
|
-
`)){let t=e.match(/^\s*-\s+(.*)$/);t&&t[1].trim()&&s.push(t[1].trim())}a=a.trim();let l=null,u=a.match(/^<external_content\b([^>]*)>\s*/);if(u){let e=u[1].match(/origin="([^"]+)"/);e&&(l=e[1]),a=a.slice(u[0].length).replace(/\s*<\/external_content>\s*$/,``)}return{url:o(`Final URL`)||o(`Requested URL`)||l||t||null,status:o(`Status`),notices:s,content:a.trim()}}function pe({url:e,status:t}){let n=de(e),r=t?/^\s*2\d\d/.test(t):!1;return(0,Y.jsxs)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 transition-colors hover:border-[var(--border-hover)]`,children:[(0,Y.jsx)(P,{domain:n,title:n}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(i,{variant:`body-medium-default`,as:`span`,className:`truncate text-[var(--content-default)]`,children:n}),(0,Y.jsx)(i,{variant:`body-small-default`,as:`span`,className:`truncate text-[var(--content-tertiary)]`,children:e})]}),t&&(0,Y.jsx)(`span`,{className:`shrink-0 rounded-[6px] px-2 py-0.5 text-body-small-emphasised ${r?`text-[var(--system-positive-strong)]`:`text-[var(--content-tertiary)]`}`,children:t})]})}function Q({detail:e}){let[t,n]=(0,J.useState)(!1),r=typeof e.input?.url==`string`?e.input.url:void 0,a=(0,J.useMemo)(()=>fe(e.result??``,r),[e.result,r]);return e.status===`error`?(0,Y.jsx)(K,{text:e.result??`Fetch failed.`}):(0,Y.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[a.url&&(0,Y.jsx)(pe,{url:a.url,status:a.status}),a.notices.length>0&&(0,Y.jsx)(`div`,{className:`flex flex-col gap-1 rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:a.notices.map((e,t)=>(0,Y.jsx)(i,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:e},t))}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`text-[var(--content-emphasised)]`,children:t?`Raw result`:`Content`}),e.result&&(0,Y.jsx)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`cursor-pointer text-[var(--content-secondary)] transition-colors hover:text-[var(--content-default)]`,children:(0,Y.jsx)(i,{variant:`label-small-default`,as:`span`,children:t?`View extracted`:`View raw`})})]}),t?(0,Y.jsx)(K,{text:e.result??``}):a.content?(0,Y.jsx)(N,{content:a.content}):(0,Y.jsx)(i,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e.status===`running`?`Fetching…`:`No content extracted.`})]})]})}function me({detail:e}){let t=e.searchQuery??``,n=e.searchResults??[];return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[t?(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`text-[var(--content-emphasised)]`,children:`Query`}),(0,Y.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`break-words leading-relaxed text-[var(--content-default)]`,children:`"${t}"`})]}):null,(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`text-[var(--content-emphasised)]`,children:n.length>0?`Sources (${n.length})`:`Sources`}),n.length>0?(0,Y.jsx)(G,{step:{kind:`web_search`,title:`Searched the web`,durationLabel:``,linkCount:n.length,results:n}}):(0,Y.jsx)(i,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`No sources found.`})]})]})}function $(e){return new Map(e.map(e=>[e.toolCallId,e]))}function he(e=B){let t=null,n=[],r=[],i=new Map;function a(a){let o=[],s=[];for(let t of a)e(o,s,t);return t=a,n=o,r=s,i=$(n),i}function o(o){let s=W(t,o);switch(s.kind){case`identity`:return i;case`first`:return a(o);case`append`:{let a=o.length,c=n.slice(),l=r.slice();for(let t=s.from;t<a;t++)e(c,l,o[t]);return t=o,n=c,r=l,i=$(n),i}case`mutate-last`:{let a=o.length,s=n.slice(),c=r.slice(),l=s[s.length-1];return l&&l.kind===`thinking`&&l.toolCallId===o[a-1].id&&(s.pop(),c.pop()),e(s,c,o[a-1]),t=o,n=s,r=c,i=$(n),i}case`fallback`:return a(o)}}return{project:o}}function ge(e){let t=(0,J.useRef)(null);return t.current??=he(),t.current.project(e)}function _e(e){return e.kind===`web_search`?`globe`:e.kind===`thinking`?`brain`:l(e.toolName,e.input).iconName}function ve({detail:e}){return e.status===`running`?(0,Y.jsx)(S,{className:`shrink-0`,"data-testid":`nested-detail-running`}):(0,Y.jsx)(T[_e(e)]??u,{"aria-hidden":!0,className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`})}function ye({entry:e,onClose:t,onStop:r,onRequestDetail:l}){let u=v(e.status),d=x(),p=R(),h=(0,J.useMemo)(()=>U(e.subagentId),[e.subagentId]),{steps:g}=ee(e.events),_=ge(e.events),[b,S]=(0,J.useState)(null),C=(0,J.useRef)(_);C.current=_;let w=(0,J.useCallback)(e=>{C.current.has(e)&&S(e)},[]),[T,E]=(0,J.useState)(new Set),[O,A]=(0,J.useState)(!1),[j,M]=(0,J.useState)(!1),P=(0,J.useRef)(null),[F,I]=(0,J.useState)(e.subagentId);F!==e.subagentId&&(I(e.subagentId),A(!1),M(!1),S(null),E(new Set)),(0,J.useLayoutEffect)(()=>{if(O)return;let e=P.current;e&&M(e.scrollHeight>e.clientHeight)},[e.subagentId,e.objective,O]),(0,J.useEffect)(()=>{l&&e.conversationId&&e.events.length===0&&l(e.subagentId)},[e.subagentId,e.conversationId,e.events.length,l]);let L=b?_.get(b):void 0,B=(0,J.useCallback)(()=>S(null),[]),V=L?L.activity||L.title:``,H=L?V:e.label;return(0,Y.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[L&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:B,title:e.label,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,Y.jsx)(i,{variant:`body-small-default`,as:`span`,children:e.label})}),(0,Y.jsx)(f,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,Y.jsx)(i,{variant:`body-small-default`,as:`span`,title:V,className:`min-w-0 shrink truncate text-[var(--content-secondary)]`,children:V})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[L&&(0,Y.jsx)(n,{variant:`outlined`,iconOnly:(0,Y.jsx)(a,{}),onClick:B,"aria-label":`Back to timeline`,tooltip:`Back`,className:`shrink-0 rounded-lg`}),L?(0,Y.jsx)(ve,{detail:L}):p?(0,Y.jsx)(z,{components:p,bodyShapeId:h.bodyShape,eyeStyleId:h.eyeStyle,colorId:h.color,size:32}):(0,Y.jsx)(`div`,{style:{width:32,height:32,flexShrink:0},"aria-hidden":!0}),(0,Y.jsx)(i,{variant:`title-medium`,title:H,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:H}),(0,Y.jsx)(X,{status:e.status}),(0,Y.jsx)(`span`,{className:`flex-1`}),u&&r&&(0,Y.jsx)(ne,{onStop:()=>r(e.subagentId),ariaLabel:`Stop subagent`}),(0,Y.jsx)(n,{variant:`outlined`,iconOnly:(0,Y.jsx)(m,{}),onClick:t,"aria-label":`Close subagent detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]}),(0,Y.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:(0,Y.jsx)(y.div,{initial:{opacity:0},animate:{opacity:1},transition:d?{duration:0}:{duration:.18,ease:[.16,1,.3,1]},children:L?(0,Y.jsx)(Y.Fragment,{children:L.kind===`thinking`?(0,Y.jsx)(N,{content:L.thinkingText??``,hardLineBreaks:!0}):L.kind===`web_search`&&L.status!==`error`?(0,Y.jsx)(me,{detail:L}):L.toolName===`web_fetch`?(0,Y.jsx)(Q,{detail:L}):(0,Y.jsx)(q,{detail:L,showTechnicalDetailsLabel:!1})}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`mb-5 grid grid-cols-2 gap-3`,children:[(0,Y.jsx)(c,{icon:(0,Y.jsx)(k,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens,format:e=>o(Math.round(e)),label:`Input`}),(0,Y.jsx)(c,{icon:(0,Y.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`})]}),e.objective&&(0,Y.jsxs)(`div`,{className:`mb-5`,children:[(0,Y.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-2 text-[var(--content-emphasised)]`,children:`Objective`}),(0,Y.jsx)(i,{ref:P,variant:`body-medium-lighter`,as:`p`,tabIndex:O?0:void 0,role:O?`region`:void 0,"aria-label":O?`Objective`:void 0,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)] ${O?`max-h-[280px] overflow-y-auto`:`line-clamp-5`}`,children:e.objective}),j&&(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>A(e=>!e),className:`mt-1.5 flex cursor-pointer items-center gap-1 text-[var(--content-secondary)] transition-colors hover:text-[var(--content-default)]`,children:[(0,Y.jsx)(i,{variant:`label-small-default`,children:O?`Show less`:`Show more`}),(0,Y.jsx)(D,{className:`h-3.5 w-3.5 transition-transform ${O?`rotate-180`:``}`,"aria-hidden":!0})]}),(0,Y.jsx)(`div`,{className:`mt-5 h-px w-full bg-[var(--border-hover)]`})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(i,{variant:`title-medium`,as:`h3`,className:`mb-4 text-[var(--content-emphasised)]`,children:`Timeline`}),e.events.length>0?(0,Y.jsx)(ce,{steps:g,expandedKeys:T,onExpandedKeysChange:E,onStepDetailClick:w,isRunning:u},e.subagentId):(0,Y.jsx)(i,{variant:`body-small-default`,className:`py-4 text-center text-[var(--content-tertiary)]`,children:`No events yet`})]})]})},L?`detail`:`list`)})]})}export{ye as SubagentDetailPanel};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./capture-error-BG-GkiMq.js";import{n as t,t as n}from"./create-selectors-BE0_e_Ed.js";import{s as r}from"./assistant-api-DsiQd51V.js";import{n as i}from"./resolved-assistants-store-Cp4J43BK.js";import{er as a,tr as o}from"./sdk.gen-7kFw36Fw.js";import{t as s}from"./conversation-store-CWgiE5KG.js";function c(e){return e===`running`||e===`pending`||e===`awaiting_input`}function l(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:case`aborted`:case`interrupted`:return`var(--system-negative-strong)`;default:return`var(--primary-base)`}}function u(e){switch(e){case`pending`:return`Pending`;case`running`:return`Running`;case`awaiting_input`:return`Awaiting Input`;case`completed`:return`Completed`;case`failed`:return`Failed`;case`aborted`:return`Aborted`;case`interrupted`:return`Interrupted`;default:return`Unknown`}}async function d(t,n,i){try{let{data:a,response:s}=await o({path:{assistant_id:t,id:n},query:{conversationId:i},throwOnError:!1});if(!s||!s.ok||!a)return null;let c=r.safeParse(a);return c.success?c.data:(e(c.error,{context:`fetchSubagentDetail`}),null)}catch(t){return e(t,{context:`fetchSubagentDetail`}),null}}function f(e){let t=0,n=[];for(let r of e){let e;switch(r.type){case`text`:case`assistant_text_delta`:e=`text`;break;case`tool_use`:case`tool_use_start`:e=`tool_call`;break;case`tool_result`:e=`tool_result`;break;case`error`:e=`error`;break;default:continue}let i=r.content;if(e===`text`&&i===``)continue;let a=n[n.length-1];if(e===`text`&&a&&a.type===`text`){a.content+=`
|
|
2
|
-
|
|
3
|
-
`+i;continue}n.push({id:`detail-${++t}`,type:e,content:i,toolName:r.toolName,isError:r.isError,toolUseId:r.toolUseId,input:r.input,timestamp:Date.now()})}return n}var p=[],m={byId:{},orderedIds:[],terminalUsageIds:new Set,byParent:new Map,byToolUseId:new Map,fetchedAt:new Map};function h(e){let t=[];return e.parentMessageStableId&&t.push(e.parentMessageStableId),e.parentMessageId&&e.parentMessageId!==e.parentMessageStableId&&t.push(e.parentMessageId),t}function g(e,t){let n=h(t);if(n.length===0)return e;let r=new Map(e);for(let e of n){let n=[...r.get(e)??[],t];n.sort((e,t)=>e.spawnedAt-t.spawnedAt),r.set(e,n)}return r}function _(e,t,n,r){let i=new Map(e),a=i.get(t);a&&i.set(t,a.map(e=>r.get(e.subagentId)??e));let o=[...i.get(n)??[]];for(let e of r.values()){let t=o.findIndex(t=>t.subagentId===e.subagentId);t===-1?o.push(e):o[t]=e}return o.sort((e,t)=>e.spawnedAt-t.spawnedAt),i.set(n,o),i}function v(e){if(e.isError)return`error`;switch(e.type){case`assistant_text_delta`:case`message_complete`:return`text`;case`tool_use_start`:return`tool_call`;case`tool_result`:return`tool_result`;default:return`text`}}var y=[`command`,`file_path`,`path`,`query`,`url`,`pattern`,`glob`];function b(e){for(let t of y){let n=e[t];if(typeof n==`string`)return n.length>120?n.slice(0,117)+`...`:n}return``}function x(e){let t=e.activityMetadata?.webSearch?.query;return typeof t==`string`&&t.length>0?t:void 0}var S=0;function C(){return`te-${++S}`}var w=n(t()((e,t)=>({...m,spawnSubagent:n=>{let{byId:r,orderedIds:i}=t();if(r[n.subagentId])return;let a={subagentId:n.subagentId,label:n.label,objective:n.objective,status:n.status??`pending`,isFork:n.isFork??!1,error:n.error,inputTokens:0,outputTokens:0,totalCost:0,spawnedAt:n.timestamp,events:[],conversationId:n.conversationId,parentMessageStableId:n.parentMessageStableId,parentMessageId:n.parentMessageId,parentToolUseId:n.parentToolUseId},o={...r,[n.subagentId]:a},s=t().byToolUseId,c=n.parentToolUseId?new Map(s).set(n.parentToolUseId,n.subagentId):s;e({byId:o,orderedIds:[...i,n.subagentId],byParent:g(t().byParent,a),byToolUseId:c})},changeStatus:n=>{let{byId:r}=t(),i=r[n.subagentId];i&&(e({byId:{...r,[n.subagentId]:{...i,status:n.status,error:n.error??i.error,inputTokens:n.inputTokens||i.inputTokens,outputTokens:n.outputTokens||i.outputTokens,totalCost:n.totalCost||i.totalCost}}}),!c(n.status)&&(n.inputTokens!=null||n.outputTokens!=null||n.totalCost!=null)&&t().terminalUsageIds.add(n.subagentId))},receiveEvent:n=>{let{byId:r}=t(),i=r[n.subagentId];if(!i)return;let a=v(n.event),o;if(o=n.event.type===`tool_use_start`&&n.event.input?b(n.event.input):n.event.content??n.event.text??n.event.result??``,a===`text`&&n.event.type===`assistant_text_delta`){let t=i.events[i.events.length-1];if(t&&t.type===`text`){let a=[...i.events];a[a.length-1]={...t,content:t.content+o},e({byId:{...r,[n.subagentId]:{...i,events:a}}});return}if(!o)return}if(n.event.type===`message_complete`)return;let s={id:C(),type:a,content:o,toolName:n.event.toolName,isError:n.event.isError,timestamp:n.timestamp,toolUseId:n.event.toolUseId,input:n.event.type===`tool_use_start`?n.event.input:void 0,result:n.event.type===`tool_result`?n.event.result??n.event.content??n.event.text:void 0,searchQuery:x(n.event)};e({byId:{...r,[n.subagentId]:{...i,events:[...i.events,s]}}})},loadDetail:n=>{let{byId:r}=t(),i=r[n.subagentId];i&&e({byId:{...r,[n.subagentId]:{...i,status:n.status??i.status,objective:n.objective??i.objective,inputTokens:n.inputTokens??i.inputTokens,outputTokens:n.outputTokens??i.outputTokens,totalCost:n.totalCost??i.totalCost,events:n.events.length>0&&i.events.length===0?n.events:i.events}}})},setConversationId:(n,r)=>{let{byId:i}=t(),a=i[n];a&&e({byId:{...i,[n]:{...a,conversationId:r}}})},reanchorToMessage:({stableId:n,messageId:r})=>{if(n===r)return;let{byId:i}=t(),a=new Map;for(let e of Object.values(i))e.parentMessageStableId===n&&e.parentMessageId!==r&&a.set(e.subagentId,{...e,parentMessageId:r});if(a.size===0)return;let o={...i};for(let[e,t]of a)o[e]=t;e({byId:o,byParent:_(t().byParent,n,r,a)})},updateUsage:n=>{let{byId:r,terminalUsageIds:i}=t();if(i.has(n.subagentId))return;let a=r[n.subagentId];a&&e({byId:{...r,[n.subagentId]:{...a,inputTokens:a.inputTokens+n.inputTokens,outputTokens:a.outputTokens+n.outputTokens,totalCost:a.totalCost+n.estimatedCost}}})},fetchDetailIfNeeded:async(n,r)=>{let{byId:i,fetchedAt:a}=t(),o=i[r];if(!o?.conversationId||o.events.length>0)return;let s=a.get(r);if(s!==void 0&&s>=o.spawnedAt)return;let c=new Map(a);c.set(r,o.spawnedAt),e({fetchedAt:c});let l=await d(n,r,o.conversationId),u=()=>{let n=new Map(t().fetchedAt);n.delete(r),e({fetchedAt:n})};if(!l){u();return}let p=f(l.events);p.length===0&&u(),t().loadDetail({subagentId:r,status:l.status,objective:l.objective,inputTokens:l.usage?.inputTokens,outputTokens:l.usage?.outputTokens,totalCost:l.usage?.estimatedCost,events:p})},abortSubagent:async e=>{let t=i.getState().activeAssistantId,n=s.getState().activeConversationId;if(!(!t||!n))try{await a({path:{assistant_id:t,id:e},body:{conversationId:n},throwOnError:!0})}catch{}},reset:()=>e({byId:{},orderedIds:[],terminalUsageIds:new Set,byParent:new Map,byToolUseId:new Map,fetchedAt:new Map})})));export{u as a,l as i,w as n,c as r,p as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-CVSDxk6A.js";var t=e(),n=3,r=8,i=3,a=150;function o({className:e,dotSize:o=r,gap:s=i,"data-testid":c}){return(0,t.jsx)(`span`,{"aria-hidden":`true`,"data-testid":c,className:`inline-flex items-center${e?` ${e}`:``}`,style:{gap:s},children:Array.from({length:n},(e,n)=>(0,t.jsx)(`span`,{className:`busy-indicator shrink-0 rounded-full bg-[var(--primary-base)]`,style:{width:o,height:o,animationDelay:`${n*a}ms`}},n))})}export{o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./useQuery-B45lW1Kk.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./dropdown-CL8VmqrY.js";import"./src-mai-NajT.js";import{t as a}from"./brain-Bs6LnfHO.js";import{t as o}from"./chevron-up-BRZN6p_l.js";import{t as s}from"./circle-alert-DvNg50UK.js";import{t as c}from"./circle-check-DzlJxj_M.js";import{t as l}from"./loader-circle-BFRVtR3K.js";import{t as u}from"./refresh-cw-Dui3Ymsb.js";import{t as d}from"./triangle-alert-C3aHZq1F.js";import{ar as f}from"./sdk.gen-7kFw36Fw.js";import{$n as p,Aa as m,Bt as h,Ea as g,Li as _,Sa as v,Sn as y,Vi as b,Vt as x,Yi as S,ba as C,bn as w,gi as T,ti as E,xi as D,xn as ee,ya as te}from"./index-DbPUHSMl.js";import{t as O}from"./use-active-assistant-id-ZxDeBTfL.js";import{a as k,i as A,n as j,r as M}from"./format-BDkwdD2m.js";var N=e(t(),1),P={requestCount:0,llmCallCount:0,totalInputTokens:0,totalOutputTokens:0,averageLlmLatencyMs:0,toolFailureCount:0};function F(e,t){let n=e.attributes?.[t];if(typeof n==`number`&&Number.isFinite(n))return n;if(typeof n==`string`){let e=Number(n);if(Number.isFinite(e))return e}}function I(e){if(e.length===0)return P;let t=new Set,n=0,r=0,i=0,a=0,o=0,s=0;for(let c of e)switch(c.requestId&&t.add(c.requestId),c.kind){case`llm_call_finished`:{n+=1,r+=F(c,`inputTokens`)??0,i+=F(c,`outputTokens`)??0;let e=F(c,`latencyMs`);e!==void 0&&(a+=e,o+=1);break}case`tool_failed`:s+=1;break;default:break}return{requestCount:t.size,llmCallCount:n,totalInputTokens:r,totalOutputTokens:i,averageLlmLatencyMs:o>0?a/o:0,toolFailureCount:s}}function L(e){for(let t of e)switch(t.kind){case`generation_cancelled`:return`cancelled`;case`generation_handoff`:return`handedOff`;case`request_error`:return`error`;case`message_complete`:return`completed`;default:break}return e.some(e=>e.status===`error`)?`error`:`active`}function R(e){let t=new Map;for(let n of e){let e=n.requestId??``,r=t.get(e);r?(r.events.push(n),n.sequence<r.firstSequence&&(r.firstSequence=n.sequence)):t.set(e,{requestId:e,firstSequence:n.sequence,events:[n]})}for(let e of t.values())e.events.sort((e,t)=>e.sequence-t.sequence);return[...t.values()].sort((e,t)=>e.firstSequence-t.firstSequence)}function z(e){switch(e){case`request_received`:return v;case`request_queued`:case`request_dequeued`:return S;case`llm_call_started`:case`llm_call_finished`:return a;case`assistant_message`:return _;case`tool_started`:case`tool_finished`:return E;case`tool_permission_requested`:return T;case`tool_permission_decided`:return b;case`tool_failed`:return d;case`generation_handoff`:return u;case`message_complete`:return c;case`generation_cancelled`:return C;case`request_error`:return s;default:return te}}function B(e){switch(e){case`error`:return`var(--system-negative-strong)`;case`warning`:return`var(--system-mid-strong)`;case`success`:return`var(--system-positive-strong)`;default:return`var(--content-tertiary)`}}function V(e){switch(e){case`active`:return{Icon:m,color:`var(--system-positive-strong)`};case`completed`:return{Icon:c,color:`var(--system-positive-strong)`};case`cancelled`:return{Icon:C,color:`var(--system-mid-strong)`};case`handedOff`:return{Icon:u,color:`var(--system-positive-strong)`};case`error`:return{Icon:d,color:`var(--system-negative-strong)`}}}function H(e){return e==null?`—`:typeof e==`string`?e:String(e)}var U=class extends Error{status;constructor(e,t){super(t),this.name=`TraceEventsRequestError`,this.status=e}};async function W(e,t){let{data:n,response:r}=await f({path:{assistant_id:e},query:{conversationId:t.conversationId,limit:t.limit,afterSequence:t.afterSequence},throwOnError:!1});if(!r?.ok){let e=await r?.clone().text().catch(()=>``);throw new U(r?.status??0,e||r?.statusText||`Failed to load trace events`)}return n??{events:[]}}var G=r(),K=500;function q({assistantId:e}){let[t,r]=(0,N.useState)(null),{conversations:i,isLoading:a,isError:o,error:s}=ee(e),{conversations:c}=w(e,!0),{conversations:u}=y(e,!0),d=(0,N.useMemo)(()=>p(i,c,u).filter(e=>e.archivedAt==null),[i,c,u]),f=(0,N.useMemo)(()=>{if(t){let e=d.find(e=>e.conversationId===t);if(e)return e.conversationId}let n=h(e);if(n){let e=d.find(e=>e.conversationId===n);if(e)return e.conversationId}return d[0]?.conversationId??``},[e,d,t]),m=(0,N.useCallback)(t=>{r(t),x(e,t)},[e]),{data:g,isLoading:_,isError:v,error:b}=n({queryKey:[`trace-events`,e,f],queryFn:()=>W(e,{conversationId:f,limit:K}),enabled:f.length>0}),S=(0,N.useMemo)(()=>g?.events??[],[g]),C=(0,N.useMemo)(()=>I(S),[S]),T=(0,N.useMemo)(()=>R(S),[S]),E=d.length>0;return(0,G.jsx)(`div`,{className:`flex flex-col gap-6`,children:a?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(l,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-secondary)`}})}):o?(0,G.jsx)($,{message:s instanceof Error?s.message:`Failed to load conversations.`}):E?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(J,{conversations:d,selectedConversationId:f,onSelect:m}),_?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,G.jsx)(l,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-secondary)`}})}):v?(0,G.jsx)($,{message:b instanceof Error?b.message:`Failed to load trace events.`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(X,{metrics:C}),S.length===0?(0,G.jsx)(Q,{title:`No trace events yet`,subtitle:`Events will appear as the session runs.`}):(0,G.jsx)(ne,{groups:T})]})]}):(0,G.jsx)(Q,{title:`No conversations yet`,subtitle:`Start a conversation to generate trace events.`})})}function J({conversations:e,selectedConversationId:t,onSelect:n}){return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`label`,{htmlFor:`logs-conversation-picker`,className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:`Conversation`}),(0,G.jsx)(i,{id:`logs-conversation-picker`,value:t,onChange:n,options:e.map(e=>({value:e.conversationId,label:Y(e)}))})]})}function Y(e){return e.title?.trim()||`Conversation ${e.conversationId.slice(0,8)}`}function X({metrics:e}){let t=e.toolFailureCount>0;return(0,G.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-lg border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,G.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:`Session Metrics`}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2`,children:[(0,G.jsx)(Z,{label:`Requests`,value:A(e.requestCount)}),(0,G.jsx)(Z,{label:`LLM Calls`,value:A(e.llmCallCount)}),(0,G.jsx)(Z,{label:`Tokens`,value:k(e.totalInputTokens,e.totalOutputTokens)}),(0,G.jsx)(Z,{label:`Avg Latency`,value:j(e.averageLlmLatencyMs)}),t?(0,G.jsx)(Z,{label:`Failures`,value:A(e.toolFailureCount),valueColor:`var(--system-negative-strong)`}):null]})]})}function Z({label:e,value:t,valueColor:n}){return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,G.jsx)(`span`,{className:`text-body-medium-default`,style:{color:n??`var(--content-default)`},children:t}),(0,G.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e})]})}function ne({groups:e}){return(0,G.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,G.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:`Timeline`}),(0,G.jsx)(`div`,{className:`flex flex-col gap-5`,children:e.map(e=>(0,G.jsx)(re,{requestId:e.requestId,events:e.events},e.requestId||`__system__`))})]})}function re({requestId:e,events:t}){let n=V((0,N.useMemo)(()=>L(t),[t])),r=e?`Request ${e.slice(0,8)}`:`System`;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.createElement)(n.Icon,{className:`h-3 w-3 shrink-0`,style:{color:n.color}}),(0,G.jsx)(`span`,{className:`text-body-small-default select-text`,style:{color:`var(--content-secondary)`},children:r}),(0,G.jsx)(`div`,{className:`h-px flex-1`,style:{background:`var(--border-base)`},"aria-hidden":!0})]}),(0,G.jsx)(`ol`,{className:`flex flex-col`,style:{listStyle:`none`},children:t.map(e=>(0,G.jsx)(`li`,{children:(0,G.jsx)(ie,{event:e})},e.eventId))})]})}function ie({event:e}){let[t,n]=(0,N.useState)(!1),r=(0,N.useMemo)(()=>e.attributes?Object.entries(e.attributes).sort(([e],[t])=>e.localeCompare(t)):[],[e.attributes]),i=r.length>0,a=z(e.kind),s=B(e.status);return(0,G.jsxs)(`div`,{className:`flex flex-col`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{i&&n(e=>!e)},className:`flex w-full items-start gap-2 rounded-sm px-1 py-1.5 text-left transition-colors`,style:{cursor:i?`pointer`:`default`},disabled:!i,"aria-expanded":i?t:void 0,children:[(0,N.createElement)(a,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`,style:{color:s}}),(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,G.jsx)(`span`,{className:`text-body-medium-lighter break-words`,style:{color:`var(--content-default)`},children:e.summary}),(0,G.jsx)(`span`,{className:`font-mono text-body-small-default`,style:{color:`var(--content-tertiary)`},children:M(e.timestampMs)})]}),i?t?(0,G.jsx)(o,{className:`mt-1 h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,G.jsx)(g,{className:`mt-1 h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):null]}),t&&i?(0,G.jsx)(`div`,{className:`mb-1 ml-6 mr-2 rounded-md px-3 py-2`,style:{background:`var(--surface-base)`},children:(0,G.jsx)(`dl`,{className:`flex flex-col gap-1`,children:r.map(([e,t])=>(0,G.jsxs)(`div`,{className:`flex flex-col gap-0.5 sm:flex-row sm:gap-3`,children:[(0,G.jsx)(`dt`,{className:`shrink-0 font-mono text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,G.jsx)(`dd`,{className:`font-mono text-body-small-default break-all`,style:{color:`var(--content-secondary)`},children:H(t)})]},e))})}):null]})}function Q({title:e,subtitle:t}){return(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-md border border-dashed px-6 py-16 text-center`,style:{borderColor:`var(--border-base)`,color:`var(--content-secondary)`},children:[(0,G.jsx)(D,{className:`mb-3 h-8 w-8`}),(0,G.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),(0,G.jsx)(`p`,{className:`mt-1 text-body-small-default`,children:t})]})}function $({message:e}){return(0,G.jsxs)(`div`,{className:`text-body-medium-lighter flex items-start gap-3 rounded-md border px-4 py-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`,color:`var(--content-default)`},children:[(0,G.jsx)(d,{className:`h-5 w-5 shrink-0`,style:{color:`var(--system-negative-strong)`}}),(0,G.jsx)(`span`,{children:e})]})}function ae(){return(0,G.jsx)(q,{assistantId:O()})}export{ae as TracePage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as e,i as t}from"./auth-store-DhoDi3Ka.js";function n(){let n=e.use.currentOrganizationId();return!t()||n!=null}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-BscuIPxA.js";import"./src-mai-NajT.js";import{t as a}from"./arrow-left-CP-EhDNF.js";import{n as o,r as s,t as c}from"./metric-card-CderFn_K.js";import{t as l}from"./ban-BpBuRCKI.js";import{t as u}from"./chevron-right-B6vEpVY0.js";import{t as d}from"./circle-check-DzlJxj_M.js";import{t as f}from"./triangle-alert-C3aHZq1F.js";import{t as p}from"./x-DxL-bCuT.js";import{n as m,r as h,t as g}from"./workflow-status-BuGeg_Pe.js";import{t as _}from"./proxy-E3RRrfO5.js";import{t as v}from"./AnimatePresence-v8rrAm7n.js";import{t as y}from"./use-reduced-motion-D32BDyn0.js";import{t as b}from"./three-dot-indicator-BOWJCSsU.js";import{Ma as x,ai as S,dt as C,fi as w,ft as T,lt as E,ni as D}from"./index-DbPUHSMl.js";import{t as O}from"./status-badge-pill-j3ke1d9o.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)(w,{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)(x,{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)(b,{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=E(`${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)(T,{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=C(),b=[...e.leaves.values()].sort((e,t)=>e.seq-t.seq),[w,O]=(0,k.useState)(null),[M,F]=(0,k.useState)(e.runId);M!==e.runId&&(F(e.runId),O(null));let I=w==null?void 0:e.leaves.get(w),R=I?E(`${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)(T,{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)(D,{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)(x,{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)(S,{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`}),b.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:b.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 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-D7s2Q_uG.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{n as l,t as u}from"./panel-item-nGTDevWP.js";import{t as d}from"./menu-C_97pis4.js";import{a as f}from"./src-mai-NajT.js";import{t as p}from"./confirm-dialog-CfOXCE1N.js";import{t as m}from"./input-C8kfrq9r.js";import{t as h}from"./modal-D0Q3UWD0.js";import{t as g}from"./createLucideIcon-BlMXrA59.js";import{t as _}from"./chevron-right-B6vEpVY0.js";import{t as v}from"./file-text-ClqzuFsu.js";import{t as y}from"./loader-circle-BFRVtR3K.js";import{t as b}from"./pencil-B90pDI55.js";import{t as x}from"./x-DxL-bCuT.js";import{_r as S,br as C,gr as w,hr as T,mr as E,vr as D,yr as O}from"./sdk.gen-7kFw36Fw.js";import{n as k}from"./use-is-mobile-jACt_z2d.js";import{n as A}from"./native-file-Djc1KZs3.js";import{Di as j,Ea as M,L as N,R as P,Xi as F,aa as I,bi as ee,ca as L,ci as R,ea as z,ia as te,ii as B,na as V,ta as H}from"./index-DbPUHSMl.js";import{t as U}from"./use-active-assistant-id-ZxDeBTfL.js";import{n as W,t as G}from"./mobile-sidebar-drawer-CfI8ihQa.js";import{i as K,n as ne,r as q,t as J}from"./file-editor-DOP89Gof.js";import{t as Y}from"./format-file-size-BflZ4oxc.js";var re=g(`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=g(`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=g(`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=g(`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 T({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 A(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 w({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=v;return n.startsWith(`image/`)?r=F:n.startsWith(`video/`)?r=B:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=H),(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 T({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)(y,{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)(H,{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)(y,{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:m}=a({...de({path:{assistant_id:e},query:{path:t??``,showHidden:r}}),enabled:!!t}),[h,g]=(0,Z.useState)(null),[_,v]=(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;g(e=>e==null?e:n(e)),v(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}/`);g(e=>e!=null&&t(e)?null:e),v(e=>e!=null&&t(e.path)?null:e)},[d]);let b=h!=null&&h===t,x=p?.content??``,S=_?.path===t?_.content:x,w=()=>{g(null),v(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)=>{g(e=>e===t.path?null:e),v(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(m)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(y,{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=P(k,O),j=ce(k,O),M=p.content!=null&&!A&&!j,F=t?ue(t):!0,I=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:!F&&s===`source`,isEditing:b,onToggleEdit:()=>b?w():g(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=>v({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content,readOnly:F,onStartEdit:()=>g(t)})]}),I]})}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:!F&&s===`source`,isEditing:b,onToggleEdit:()=>b?w():g(t)}),s===`preview`?(0,Q.jsx)(K,{content:n,readOnly:!0,whiteSpace:`pre`}):b?(0,Q.jsx)(q,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content,readOnly:F,onStartEdit:()=>g(t)})]}),I]})}return M?(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:!F,isEditing:b,onToggleEdit:()=>b?w():g(t)}),b?(0,Q.jsx)(q,{value:S,onChange:e=>v({path:t,content:e}),onSave:D}):(0,Q.jsx)(K,{content:p.content??``,readOnly:F,onStartEdit:()=>g(t)})]}),I]}):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 O({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 O({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)(z,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Q.jsx)(F,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Q.jsx)(B,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(v,{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:u,onRequestRename:d,onRequestCreate:p,depth:m}){let h=e.path??``,g=e.name??``,v=e.type===`directory`,y=n.has(h),x=r===h,S=g.startsWith(`.`),C=!ue(h),w=v&&(y||s.length>0),{data:T}=a({...ve({path:{assistant_id:t},query:{path:h,showHidden:i,includeDirSizes:o===`size`}}),enabled:v&&w}),E=(0,Z.useMemo)(()=>_e(T?.entries??[],o),[T?.entries,o]),D=s===``||g.toLowerCase().includes(s);if(s!==``&&!v&&!D)return null;let O=(0,Q.jsxs)(`button`,{onClick:()=>{v?c(h):l(h)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${m*14+8}px`,paddingRight:`8px`,color:x?`var(--content-default)`:S?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:x?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:S&&!x?.7:1},children:[v?w?(0,Q.jsx)(M,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(_,{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:g}),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:[C?(0,Q.jsxs)(f.Root,{children:[(0,Q.jsx)(f.Trigger,{children:O}),(0,Q.jsxs)(f.Content,{children:[v&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(V,{className:`h-3.5 w-3.5`}),onSelect:()=>p({kind:`file`,parentPath:h}),children:`New File`}),(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(X,{className:`h-3.5 w-3.5`}),onSelect:()=>p({kind:`folder`,parentPath:h}),children:`New Folder`}),(0,Q.jsx)(f.Separator,{})]}),(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(R,{className:`h-3.5 w-3.5`}),onSelect:()=>u({path:h,name:g,isDirectory:v}),children:`Delete`}),(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(b,{className:`h-3.5 w-3.5`}),onSelect:()=>d({path:h,name:g,isDirectory:v}),children:`Rename`})]})]}):O,v&&w&&E.length>0&&(0,Q.jsx)(`div`,{children:E.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:u,onRequestRename:d,onRequestCreate:p,depth:m+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(),g=p.length>0&&(/[/\\]/.test(p)||p===`.`||p===`..`),_=p.length>0&&!g&&!c;return(0,Q.jsx)(h.Root,{open:!0,onOpenChange:e=>{!e&&!c&&o()},children:(0,Q.jsx)(h.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(),_&&s(p)},children:[(0,Q.jsx)(h.Header,{children:(0,Q.jsx)(h.Title,{children:e})}),(0,Q.jsx)(h.Body,{children:(0,Q.jsx)(m,{ref:u,label:`Name`,value:d,onChange:e=>f(e.target.value),placeholder:t,errorText:l??(g?`Enter a single file or folder name without slashes.`:void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Q.jsxs)(h.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:!_,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:h,onPathDeleted:g,onPathRenamed:_}){let v=i(),[y,b]=(0,Z.useState)(``),w=y.trim().toLowerCase(),[T,O]=(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:F}=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`])v.invalidateQueries({queryKey:[e]})},[v]),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 S({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 D({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(),_(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 E({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(),g(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:()=>h(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)(te,{"aria-hidden":!0}):(0,Q.jsx)(I,{"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:T,onOpenChange:O,onSelectKind:e=>{O(!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)(m,{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)(x,{"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:F?(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:w,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)(p,{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 k()?(0,Q.jsxs)(l.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(l.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(j,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(l.Content,{children:[(0,Q.jsx)(l.Header,{className:`sr-only`,children:(0,Q.jsx)(l.Title,{children:`Create new`})}),(0,Q.jsxs)(l.Body,{className:`pt-0`,children:[(0,Q.jsx)(u,{icon:V,label:`New File`,onSelect:()=>r(`file`)}),(0,Q.jsx)(u,{icon:X,label:`New Folder`,onSelect:()=>r(`folder`)})]})]})]}):(0,Q.jsxs)(d.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(d.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(j,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(d.Content,{align:`end`,sideOffset:4,children:[(0,Q.jsx)(d.Item,{leftIcon:(0,Q.jsx)(V,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`file`),children:`New File`}),(0,Q.jsx)(d.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};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|