@jingyi0605/codingns 0.7.0 → 0.7.1
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/public/assets/{AdaptiveButlerPage-B8mg25ze.js → AdaptiveButlerPage-Cd8nPdO0.js} +1 -1
- package/dist/public/assets/{App-C2lNmeKL.js → App-CyxK-Nos.js} +3 -3
- package/dist/public/assets/{BootstrapPage-CAVA-a8h.js → BootstrapPage-DEwPKWR8.js} +1 -1
- package/dist/public/assets/ConversationPage-CxWtRhfz.js +6 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-B37DUL15.js → DesktopDetachPreviewPage-DDOWolgB.js} +1 -1
- package/dist/public/assets/{DesktopWindowPage-CDA6l7lm.js → DesktopWindowPage-CtS9D8FD.js} +1 -1
- package/dist/public/assets/{FileContextPanel-CMGTtAB6.js → FileContextPanel-CNOjhsi5.js} +1 -1
- package/dist/public/assets/GitSidebar-DpC4UhFy.js +6 -0
- package/dist/public/assets/{MobileCreateSessionSheet-THIrIzJ3.js → MobileCreateSessionSheet-DE4pTyXj.js} +1 -1
- package/dist/public/assets/{MobileTopHeaderFrame-D-X7pVnV.js → MobileTopHeaderFrame-D_ZbS0qi.js} +1 -1
- package/dist/public/assets/{MobileWorkspaceSwitcherHeader-Cczi7RYu.js → MobileWorkspaceSwitcherHeader-Dc12IAXc.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-D417tgWj.js → RelayConnectEntryPage-D8kyZfdm.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-BdTxbRbU.js → ServerSettingsModal-8eRu6VXr.js} +1 -1
- package/dist/public/assets/{SessionIndexPage-D5iefVcc.js → SessionIndexPage-DIi0JWKP.js} +1 -1
- package/dist/public/assets/{SettingsPage-iCFe_DHP.js → SettingsPage-OQq3kp32.js} +1 -1
- package/dist/public/assets/{TerminalManagerPanel-CtldwWz8.js → TerminalManagerPanel-BEMzisSy.js} +1 -1
- package/dist/public/assets/{TerminalPage-DAzQTmQC.js → TerminalPage-CXLQfwjU.js} +1 -1
- package/dist/public/assets/{TerminalRuntimeFallbackModal-DLOhAvaq.js → TerminalRuntimeFallbackModal-BY_VUAbq.js} +1 -1
- package/dist/public/assets/ToolFilesPage-CYx3DgHg.js +1 -0
- package/dist/public/assets/ToolGitPage-fgQcvF6v.js +1 -0
- package/dist/public/assets/ToolProcessesPage-BL6yDDPV.js +1 -0
- package/dist/public/assets/{ToolsHomePage-rU3V8mmh.js → ToolsHomePage-B1n2OeVw.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-BudM2C69.js → WorkbenchLandingPage-Cu9yAWYo.js} +1 -1
- package/dist/public/assets/WorkbenchLayout-D6hGXWGE.js +244 -0
- package/dist/public/assets/{WorkbenchModal-DMQutm1x.js → WorkbenchModal-Bpb_G1-U.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-BCjcGWhl.js +1 -0
- package/dist/public/assets/{WorkspaceDebugDetailPage-CHqo-uDf.js → WorkspaceDebugDetailPage-CZwT99iQ.js} +1 -1
- package/dist/public/assets/{WorkspaceDetailPage-CGkAH1W-.js → WorkspaceDetailPage-DCM-olfU.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-CfuPVITd.js → WorkspaceHomePage-CsIIqIma.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-CKbtaemV.js → client-runtime-manager-CMK7kLp8.js} +1 -1
- package/dist/public/assets/file-tree-icon-Bv-apgA1.js +3 -0
- package/dist/public/assets/index-CkkzIvxs.css +1 -0
- package/dist/public/assets/index-O3gOb1E0.js +42 -0
- package/dist/public/assets/{login-direct-candidate-resolver-DjJMbqB7.js → login-direct-candidate-resolver-Bn4I5JHh.js} +1 -1
- package/dist/public/assets/{model-switch-api-T55eW6D4.js → model-switch-api-ZGnyVir7.js} +1 -1
- package/dist/public/assets/{preferences-service-BTKBl5xM.js → preferences-service-scuqVhuA.js} +1 -1
- package/dist/public/assets/realtime-client-TRootbbB.js +1 -0
- package/dist/public/assets/{relay-entry-sdeFnTbY.js → relay-entry-eyCjVFMA.js} +1 -1
- package/dist/public/assets/styles-DkbkRgWw.css +1 -0
- package/dist/public/assets/{terminal-runtime-meta-Cvt1ID92.js → terminal-runtime-meta-BGcnzxqn.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-O-ymgLd9.js → useRegisteredDebugTemplates-BdgPIDVM.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/server/modules/git/git-controller.d.ts +3 -1
- package/dist/server/modules/git/git-controller.js +9 -2
- package/dist/server/modules/git/git-controller.js.map +1 -1
- package/dist/server/modules/git/git-read-service.js +2 -1
- package/dist/server/modules/git/git-read-service.js.map +1 -1
- package/dist/server/modules/git/git-remote-credential-service.d.ts +1 -0
- package/dist/server/modules/git/git-remote-credential-service.js +4 -0
- package/dist/server/modules/git/git-remote-credential-service.js.map +1 -1
- package/dist/server/modules/git/types.d.ts +1 -0
- package/dist/server/modules/provider/codex-model-options.js +14 -15
- package/dist/server/modules/provider/codex-model-options.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-helper-process.js +2 -1
- package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
- package/dist/server/server/create-server.js +1 -1
- package/dist/server/server/create-server.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +6 -0
- package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +398 -0
- package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +47 -4
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +32 -4
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
- package/package.json +5 -1
- package/dist/public/assets/ConversationPage-B6BGOX4C.js +0 -6
- package/dist/public/assets/GitSidebar--DCqBiGL.js +0 -6
- package/dist/public/assets/ToolFilesPage-D7thcDEv.js +0 -1
- package/dist/public/assets/ToolGitPage-uPRsxdcn.js +0 -1
- package/dist/public/assets/ToolProcessesPage-B1uOk0Ef.js +0 -1
- package/dist/public/assets/WorkbenchLayout-Dybarc1V.js +0 -244
- package/dist/public/assets/WorkbenchShellRoute-Cy4WBbzq.js +0 -1
- package/dist/public/assets/file-tree-icon-Bc0KADEl.js +0 -3
- package/dist/public/assets/index-DNRyROOG.css +0 -1
- package/dist/public/assets/index-oGylLBIX.js +0 -42
- package/dist/public/assets/realtime-client-ww7MnbTD.js +0 -1
- package/dist/public/assets/styles-BjPytabP.css +0 -1
- package/dist/server/modules/channels/wechat-claw-client.d.ts +0 -51
- package/dist/server/modules/channels/wechat-claw-client.js +0 -245
- package/dist/server/modules/channels/wechat-claw-client.js.map +0 -1
- /package/dist/public/assets/{styles-lhQGDlPF.js → styles-JKFlsYFv.js} +0 -0
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/window-BVUB8gMK.js","assets/event-DvH9tcej.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
var Wr=Object.defineProperty;var qr=(e,t,n)=>t in e?Wr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ke=(e,t,n)=>qr(e,typeof t!="symbol"?t+"":t,n);import{t as i,b as a,u as Ur,E as Vr,j as r,m as is,A as $r,_ as Us}from"./index-oGylLBIX.js";import{D as Jt,W as Gr}from"./WorkbenchModal-DMQutm1x.js";import{l as Xr,m as Yr,n as zr,o as Qt,p as Rt,q as Qr,s as Nn,t as Kr,v as es,f as gt,h as Yt,a as At,M as Zr,w as Ln,x as js,y as _n,z as Dn,A as Jr,S as eo,B as to,C as so,D as no,E as ro,F as oo,G as io,H as Ms,I as Vs,J as ao,K as lo,L as co,N as uo,O as On,u as ho,e as As,P as mo,Q as fo,R as po,T as go,U as vo,i as bo,j as wo,V as So}from"./model-switch-api-T55eW6D4.js";import{u as St,Q as $s,R as Ut,S as Gs,T as Io,U as Mo,V as as,X as Xs,Y as xo,f as Ys,Z as at,c as Ue,_ as yo,$ as Po,a0 as Co,a1 as Ro,a2 as ko,a3 as To,a4 as Eo,I as jo,i as Hn,b as zs,a5 as yt,a6 as Qs,a7 as Fn,a8 as Ao,a9 as Ks,aa as xs,ab as Vt,ac as pe,w as No,ad as Lo,ae as _o,af as Bn,r as Wn,ag as ts,M as ss,K as Ns,ah as zt,ai as Ls,aj as ys,ak as Do,O as ns,al as Oo,am as Zs,H as Ho,an as Fo,F as Bo,ao as Wo,ap as qn,aq as vt,ar as qo,as as Ps,at as _s,n as Tt,au as Uo,av as Vo,aw as $o,ax as Go,o as Xo,C as It,ay as Un,az as Vn,aA as $n,aB as Gn,D as Xn,g as Lt,aC as Yn,P as zn,aD as Yo,aE as Js,aF as zo,aG as Qo,aH as Ko,aI as Zo,L as Jo,J as ei}from"./WorkbenchLayout-Dybarc1V.js";import{f as rt,u as ct,e as _t,g as wt,h as Ds,c as ti}from"./App-C2lNmeKL.js";import{R as si,P as Qn,C as Os}from"./realtime-client-ww7MnbTD.js";import{FileContextPanel as Kn}from"./FileContextPanel-CMGTtAB6.js";import{GitSidebar as Zn}from"./GitSidebar--DCqBiGL.js";import{TerminalManagerPanel as Jn}from"./TerminalManagerPanel-CtldwWz8.js";import{TerminalPage as ni}from"./TerminalPage-DAzQTmQC.js";import{f as er,a as rs,M as tr}from"./MobileWorkspaceSwitcherHeader-Cczi7RYu.js";import{w as Et,r as ls,a as en,b as tn}from"./styles-lhQGDlPF.js";import"./window-BVUB8gMK.js";import"./event-DvH9tcej.js";import"./relay-entry-sdeFnTbY.js";import"./file-tree-icon-Bc0KADEl.js";import"./terminal-runtime-meta-Cvt1ID92.js";import"./TerminalRuntimeFallbackModal-DLOhAvaq.js";import"./MobileTopHeaderFrame-D-X7pVnV.js";function Hs({connectionState:e,onReconnect:t}){const{showToast:n,dismissToast:s}=rt(),o=Xr(),c=o?i(Yr(o.kind)):null;return a.useEffect(()=>{if(e==="connected"||e==="closed"){s("conversation-connection-state");return}if(e==="reconnect_failed"){n({id:"conversation-connection-state",title:i("conversation.connectionReconnectFailed"),description:c?i("conversation.reconnectFailedExplainWithRoute",{route:c}):i("conversation.reconnectFailedExplain"),tone:"warning",durationMs:null,action:{label:i("conversation.reconnectButton"),onClick:t}});return}n({id:"conversation-connection-state",title:i("conversation.connectionReconnecting"),description:c?i("conversation.reconnectExplainWithRoute",{route:c}):i("conversation.reconnectExplain"),tone:"info",durationMs:3200})},[c,e,s,t,n]),null}const ri=48;function oi(e){if(typeof document>"u")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly","true"),t.style.position="fixed",t.style.opacity="0",t.style.pointerEvents="none",document.body.appendChild(t),t.focus(),t.select();try{return document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(t)}}async function ii(e,t){var n;if(!(t.isDesktop&&(await t.bridge.writeClipboardText(e)).ok)){if(typeof navigator<"u"&&((n=navigator.clipboard)!=null&&n.writeText))try{await navigator.clipboard.writeText(e);return}catch{}if(!oi(e))throw new Error(i("conversation.copyContentFailed"))}}function sn(e,t,n){return Math.min(Math.max(e,t),n)}function cs(e,t=Qt){return e&&t.includes(e)?e:t[0]??"codex"}function ai(e){return Qt.includes(e)}function li(e,t){const n=e.flatMap(s=>ai(s)?[s]:[]);return n.length>0?n:t?[t]:[]}function Cs(e){return e?e.nodeType===Node.ELEMENT_NODE?e:e.parentElement:null}function nn(e){var n,s;const t=Cs(e);return((s=(n=t==null?void 0:t.closest("[data-message-id]"))==null?void 0:n.getAttribute("data-message-id"))==null?void 0:s.trim())||null}function ci(e,t){return[t.trim()||i("conversation.selectionActionDefaultPrompt"),"",i("conversation.selectionActionQuotedLabel"),"```text",e.trim(),"```"].join(`
|
|
3
|
-
`)}function us(e){if(typeof window>"u")return null;const t=window.getSelection();if(!t||t.rangeCount===0||t.isCollapsed)return null;const n=t.getRangeAt(0),s=Cs(n.startContainer),o=Cs(n.endContainer);if(!s||!o||!e.contains(s)||!e.contains(o))return null;const c=t.toString().trim();if(!c)return null;const l=n.getBoundingClientRect();if(!l.width&&!l.height)return null;const u=nn(n.startContainer),d=nn(n.endContainer);return{text:c,sourceMessageId:u&&u===d?u:null,rect:{left:l.left,top:l.top,right:l.right,bottom:l.bottom,width:l.width,height:l.height}}}function ui({containerRef:e,session:t,currentCapabilities:n}){const s=ct(),o=_t(),{showToast:c}=rt(),{shellMode:l,requestNavigationRefresh:u,selectWorkspace:d,upsertNavigationSession:f}=St(),C=Ur(h=>h.profile.providers),x=a.useMemo(()=>$s(t==null?void 0:t.providerConfigMode,t==null?void 0:t.providerPresetId),[t==null?void 0:t.providerConfigMode,t==null?void 0:t.providerPresetId]),[A,w]=a.useState(null),[b,v]=a.useState(null),[E,y]=a.useState(!1),{visibleProviders:I}=zr(Qt,E),[S,B]=a.useState(""),[D,j]=a.useState(!1),[N,m]=a.useState(cs(t==null?void 0:t.provider)),[p,L]=a.useState(Ut),[G,Y]=a.useState(x.providerConfigMode),[K,te]=a.useState(x.providerPresetId),[O,ge]=a.useState({}),[H,g]=a.useState(!1),[V,W]=a.useState(null),[Q,oe]=a.useState({}),[de,ce]=a.useState(!1),[me,k]=a.useState(!1),[$,z]=a.useState(!1),[q,ie]=a.useState(0),[F,ne]=a.useState(null),[Ie,je]=a.useState(()=>({width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight})),_=a.useRef(!1),U=a.useRef(!1),he=a.useRef(!1),Me=a.useRef(null),fe=a.useRef(null),Re=l==="mobile"||o.isMobile,De=a.useMemo(()=>h=>{var X,J;return(Vr(h)?(J=(X=C[h])==null?void 0:X.defaultModel)==null?void 0:J.trim():null)||Ut},[C]),ee=a.useMemo(()=>$s(G,K),[G,K]),se=a.useMemo(()=>li(I,N),[N,I]),we=a.useMemo(()=>Gs(N),[N]),P=a.useMemo(()=>we?O[we]??null:null,[O,we]),T=a.useMemo(()=>Io(P),[P]),ve=a.useMemo(()=>Mo(P),[P]),Te=ee.providerConfigMode==="cc-switch-preset"?ee.providerPresetId??as:as,xe=a.useMemo(()=>ve.find(h=>h.value===Te)??ve[0]??null,[ve,Te]),We=a.useMemo(()=>N===(t==null?void 0:t.provider)&&ee.providerConfigMode===x.providerConfigMode&&ee.providerPresetId===x.providerPresetId&&n?n:V??Rt(N),[n,V,N,ee.providerConfigMode,ee.providerPresetId,t==null?void 0:t.provider,x.providerConfigMode,x.providerPresetId]),re=a.useMemo(()=>{var X;const h=Rt(N).modelOptions??[];return(X=We.modelOptions)!=null&&X.length?We.modelOptions:h},[We.modelOptions,N]),Ae=a.useMemo(()=>re.map(h=>({value:h.id,label:Xs(h)?i("conversation.modelUseCliDefault"):h.name})),[re]),Z=a.useMemo(()=>re.find(h=>h.id===p)??re[0]??null,[re,p]),ze=a.useMemo(()=>{const h=Z?Xs(Z)?i("conversation.modelUseCliDefault"):Z.name:i("conversation.modelUseCliDefault");return T?`${(xe==null?void 0:xe.label)??i("conversation.deploymentDefaultPreset")} · ${h}`:h},[Z,xe,T]),ue=a.useCallback(h=>{if(m(h),L(De(h)),t&&h===t.provider&&Gs(h)){Y(x.providerConfigMode),te(x.providerPresetId);return}Y("global-default"),te(null)},[De,t,x.providerConfigMode,x.providerPresetId]),Ne=a.useMemo(()=>{const h=Q[N]??(N===(t==null?void 0:t.provider)&&ee.providerConfigMode===x.providerConfigMode&&ee.providerPresetId===x.providerPresetId?n:V);return!h||h.canStartSession!==!1?null:h.limitations[0]??i("conversation.capabilityDenied")},[n,V,Q,N,ee.providerConfigMode,ee.providerPresetId,t==null?void 0:t.provider,x.providerConfigMode,x.providerPresetId]),Oe=a.useMemo(()=>{var Ee;if(!A||typeof window>"u")return null;const h=(Ee=e.current)==null?void 0:Ee.getBoundingClientRect(),X=h?Math.max(80,h.left+80):96,J=h?Math.min(Ie.width-80,h.right-80):Ie.width-96,Se=h?Math.max(12,h.top+12):12,Le=h?Math.max(Se,h.bottom-48):Math.max(12,Ie.height-48),He=A.rect.left+A.rect.width/2;return{left:sn(He,X,Math.max(X,J)),top:sn(A.rect.top-48,Se,Le)}},[e,A,Ie.height,Ie.width]);a.useEffect(()=>{if(typeof window>"u")return;const h=()=>{je({width:window.innerWidth,height:window.innerHeight})};return h(),window.addEventListener("resize",h),()=>{window.removeEventListener("resize",h)}},[]),a.useEffect(()=>{if(!t){fe.current!==null&&typeof window<"u"&&(window.clearTimeout(fe.current),fe.current=null),Me.current=null,he.current=!1,w(null),v(null),y(!1);return}const h=cs(t.provider);ue(h)},[ue,t]),a.useEffect(()=>{if(!E){g(!1);return}if(!we){g(!1);return}let h=!1;return g(!0),Qr().then(X=>{h||ge(Object.fromEntries(X.items.map(J=>[J.app,J])))}).catch(()=>{h||ge({})}).finally(()=>{h||g(!1)}),()=>{h=!0}},[E,we]),a.useEffect(()=>{!we||ee.providerConfigMode!=="cc-switch-preset"||!ee.providerPresetId||H||!P||P.options.some(h=>h.id===ee.providerPresetId)||(Y("global-default"),te(null))},[H,P,we,ee.providerConfigMode,ee.providerPresetId]),a.useEffect(()=>{if(!t||!e.current||typeof window>"u"){fe.current!==null&&(window.clearTimeout(fe.current),fe.current=null),Me.current=null,he.current=!1,w(null),v(null);return}const h=e.current,X=Ce=>{_.current||(Me.current=Ce,w(Ce),Ce||y(!1))},J=()=>{fe.current!==null&&(window.clearTimeout(fe.current),fe.current=null)},Se=(Ce,it)=>{if(Me.current=Ce,J(),it!=null&&it.immediate){X(Ce);return}fe.current=window.setTimeout(()=>{fe.current=null,X(Me.current)},ri)},Le=()=>{const Ce=us(h);if(he.current){Me.current=Ce;return}Se(Ce)},He=()=>{const Ce=us(h);if(he.current){Me.current=Ce;return}Se(Ce,{immediate:!0})},Ee=Ce=>{!(Ce.target instanceof Node)||!h.contains(Ce.target)||(he.current=!0,J())},_e=()=>{he.current&&(he.current=!1,Se(us(h)))};return document.addEventListener("pointerdown",Ee),document.addEventListener("selectionchange",Le),window.addEventListener("pointerup",_e),window.addEventListener("pointercancel",_e),window.addEventListener("mouseup",_e),window.addEventListener("touchend",_e),window.addEventListener("resize",He),window.addEventListener("scroll",He,!0),()=>{J(),document.removeEventListener("pointerdown",Ee),document.removeEventListener("selectionchange",Le),window.removeEventListener("pointerup",_e),window.removeEventListener("pointercancel",_e),window.removeEventListener("mouseup",_e),window.removeEventListener("touchend",_e),window.removeEventListener("resize",He),window.removeEventListener("scroll",He,!0)}},[e,t]),a.useEffect(()=>{(!E||!(b!=null&&b.sourceMessageId))&&j(!1)},[E,b==null?void 0:b.sourceMessageId]),a.useEffect(()=>{if(!E||!t)return;let h=!1;return N===t.provider&&ee.providerConfigMode===x.providerConfigMode&&ee.providerPresetId===x.providerPresetId&&n?(ce(!1),W(n),()=>{h=!0}):(ce(!0),W(Rt(N)),Nn(N,t.workspaceId,we?{providerConfigMode:ee.providerConfigMode,providerPresetId:ee.providerPresetId}:void 0).then(X=>{h||W(X)}).catch(()=>{h||W(Rt(N))}).finally(()=>{h||ce(!1)}),()=>{h=!0})},[E,n,we,N,ee.providerConfigMode,ee.providerPresetId,t,x.providerConfigMode,x.providerPresetId]),a.useEffect(()=>{if(!E||!t){oe({});return}let h=!1;return Kr(se,t.workspaceId).then(X=>{h||oe(X)}),()=>{h=!0}},[E,t,se]),a.useEffect(()=>{if(!E||!t)return;const h=se.filter(J=>{const Se=Q[J];return!Se||Se.canStartSession!==!1});if(h.length===0||h.includes(N))return;const X=h[0];ue(X)},[E,ue,Q,N,t,se]),a.useEffect(()=>{var X;const h=De(N);if(!re.some(J=>J.id===p)){if(re.some(J=>J.id===h)){L(h);return}L(((X=re[0])==null?void 0:X.id)??Ut)}},[re,De,p,N]),a.useEffect(()=>{if(!E){_.current=!1;return}_.current=!0},[E]),a.useEffect(()=>{if(typeof window>"u")return;const h=X=>{X.key==="Escape"&&(y(!1),v(null),w(null),_.current=!1)};return window.addEventListener("keydown",h),()=>{window.removeEventListener("keydown",h)}},[]);async function ut(){var X,J;if(!A)return;const h=A.text;w(null),typeof window<"u"&&((J=(X=window.getSelection())==null?void 0:X.removeAllRanges)==null||J.call(X));try{await ii(h,o),c({title:i("conversation.copyContentSuccess"),tone:"success"})}catch(Se){c({title:Se instanceof Error?Se.message:i("conversation.copyContentFailed"),tone:"error"})}}function st(){A&&(ne({title:"",content:A.text}),ie(h=>h+1),z(!0),y(!1),v(null),w(null),_.current=!1)}function ot(){var J,Se;if(!A||!t)return;const h=A,X=cs(t.provider,se.length>0?se:Qt);ue(X),B(""),j(!1),v(h),w(null),y(!0),typeof window<"u"&&((Se=(J=window.getSelection())==null?void 0:J.removeAllRanges)==null||Se.call(J))}function dt(h){h.preventDefault(),_.current=!0}function Qe(){U.current=!0,ot()}function Ke(){if(U.current){U.current=!1;return}ot()}async function ht(){var h,X,J,Se;if(!(!b||!t)){if(Ne){c({title:Ne,tone:"error"});return}k(!0);try{const Le=ci(b.text,S),He=(Z==null?void 0:Z.id)===Ut?null:(Z==null?void 0:Z.id)??null;let Ee=null;if(D&&b.sourceMessageId)Ee=await Ln(t.sessionId,{sourceType:"message",sourceMessageId:b.sourceMessageId,strategy:"auto",targetProvider:N,providerConfigMode:ee.providerConfigMode,providerPresetId:ee.providerPresetId,sessionKind:"annotation",annotationSourceMessageId:b.sourceMessageId,annotationSourceText:b.text}),f(Ee),await js(Ee.sessionId,{content:Le,clientRequestId:((X=(h=globalThis.crypto)==null?void 0:h.randomUUID)==null?void 0:X.call(h))??`selection-action-${Date.now()}-${Math.random().toString(16).slice(2)}`,model:He,permissionMode:at(),providerConfigMode:ee.providerConfigMode,providerPresetId:ee.providerPresetId});else{const _e=await _n({workspaceId:t.workspaceId,provider:N,content:Le,clientRequestId:((Se=(J=globalThis.crypto)==null?void 0:J.randomUUID)==null?void 0:Se.call(J))??`selection-action-${Date.now()}-${Math.random().toString(16).slice(2)}`,model:He,permissionMode:at(),providerConfigMode:ee.providerConfigMode,providerPresetId:ee.providerPresetId,parentSessionId:t.sessionId,sessionKind:"annotation",annotationSourceMessageId:b.sourceMessageId??null,annotationSourceText:b.text});Ee=_e.session??await Dn(_e.sessionId)}f(Ee),u(),d(Ee.workspaceId),s(Ue(Ee.workspaceId,Ee.sessionId)),y(!1),v(null),w(null),_.current=!1}catch(Le){c({title:Le instanceof Error?Le.message:i("conversation.selectionActionFailed"),tone:"error"})}finally{k(!1)}}}function ye(h=!1){y(!1),v(null),_.current=!1,h&&w(null)}const nt=!!(!E&&A&&Oe),Ze=!!(E&&b),Je=r.jsxs(es,{children:[r.jsx("button",{type:"button",className:"secondary-button",onClick:()=>ye(!1),children:i("common.cancel")}),r.jsx("button",{type:"button",className:"primary-button",disabled:me||!!Ne||se.length===0,onClick:()=>void ht(),children:me?i("conversation.sendingState"):i("conversation.selectionActionSubmit")})]}),Pe=b?r.jsxs(r.Fragment,{children:[r.jsx(gt,{className:"conversation-selection-preview-section",heading:i("conversation.selectionActionPreviewLabel"),children:r.jsx("div",{className:"conversation-selection-action-dialog-quote",children:b.text})}),r.jsxs(gt,{className:"conversation-selection-request-section",children:[r.jsx(Yt,{className:"conversation-selection-field conversation-selection-prompt-field",label:i("conversation.selectionActionPromptLabel"),children:r.jsx("textarea",{value:S,rows:4,placeholder:i("conversation.selectionActionPromptPlaceholder"),onChange:h=>B(h.target.value)})}),r.jsxs("div",{className:"conversation-selection-context-block",children:[r.jsxs("label",{className:"conversation-selection-checkbox",children:[r.jsx("input",{type:"checkbox",checked:D,disabled:!b.sourceMessageId,onChange:h=>j(h.target.checked)}),r.jsx("span",{children:i("conversation.selectionActionIncludeContext")})]}),b.sourceMessageId?null:r.jsx("p",{className:"conversation-selection-hint",children:i("conversation.selectionActionContextUnavailable")}),Ne?r.jsx("p",{className:"conversation-selection-hint",children:Ne}):null]})]}),r.jsx(gt,{className:"conversation-selection-target-section",heading:i("conversation.selectionActionTargetLabel"),children:r.jsxs("div",{className:"conversation-selection-grid",children:[r.jsx(Yt,{className:"conversation-selection-field",label:i("conversation.forkTargetProviderLabel"),children:r.jsx("select",{value:N,onChange:h=>{ue(h.target.value)},children:se.map(h=>{var X;return r.jsx("option",{value:h,disabled:((X=Q[h])==null?void 0:X.canStartSession)===!1,children:At(h,"full")},h)})})}),r.jsx(Yt,{className:"conversation-selection-field",label:i("conversation.forkTargetModelLabel"),children:we?r.jsx("div",{className:"conversation-selection-deployment-select",children:r.jsx(xo,{ariaLabel:i("conversation.forkTargetModelLabel"),triggerLabel:ze,presetOptions:ve,selectedPresetValue:Te,selectedPresetSummary:(xe==null?void 0:xe.summary)??null,onSelectPreset:h=>{if(h===as){Y("global-default"),te(null);return}Y("cc-switch-preset"),te(h)},modelOptions:Ae,selectedModelValue:p,onSelectModel:L,loadingPresets:H,loadingModels:de,modelColumnDisabled:de||!!Ne,showPresetColumn:T,modelEmptyText:i("conversation.deploymentModelEmpty")})}):r.jsx("select",{value:p,disabled:de||!!Ne,onChange:h=>L(h.target.value),children:re.map(h=>r.jsx("option",{value:h.id,children:h.name},h.id))})})]})})]}):null;return!t||!nt&&!Ze||typeof document>"u"?r.jsx(Ys,{open:$,preferredWorkspaceId:(t==null?void 0:t.workspaceId)??null,preferredSessionId:(t==null?void 0:t.sessionId)??null,creationRequestId:q,initialDraft:F,onClose:()=>z(!1)}):r.jsxs(r.Fragment,{children:[wt.createPortal(nt?r.jsxs("div",{className:"conversation-selection-toolbar",style:Oe??void 0,onMouseDown:h=>h.preventDefault(),children:[r.jsx("button",{type:"button",className:"conversation-selection-action",onClick:()=>void ut(),children:i("conversation.copyAction")}),r.jsx("button",{type:"button",className:"conversation-selection-action",onClick:st,children:i("conversation.selectionTodoAction")}),r.jsx("button",{type:"button",className:"conversation-selection-action is-primary",onPointerDown:dt,onMouseDown:dt,onPointerUp:Qe,onClick:Ke,children:i("conversation.selectionActionButton")})]}):null,document.body),Re?r.jsx(Zr,{open:Ze,title:i("conversation.selectionActionButton"),height:"auto",kind:"form",showHandle:!0,showCancelButton:!1,cardClassName:"conversation-selection-action-dialog",bodyClassName:"conversation-selection-action-dialog-body",footer:Je,onClose:()=>ye(!1),children:Pe}):r.jsx(Jt,{open:Ze,title:i("conversation.selectionActionButton"),size:"compact",layout:"form",className:"conversation-selection-action-dialog",bodyClassName:"conversation-selection-action-dialog-body",footer:Je,onClose:()=>ye(!1),children:Pe}),r.jsx(Ys,{open:$,preferredWorkspaceId:t.workspaceId,preferredSessionId:t.sessionId,creationRequestId:q,initialDraft:F,onClose:()=>z(!1)})]})}const Pt=5,sr=["codex","claude-code"];function nr(){return[{id:"recommended",label:i("conversation.butlerCompletionTemplateRecommendedLabel"),description:i("conversation.butlerCompletionTemplateRecommendedDescription"),value:i("conversation.butlerCompletionTemplateRecommendedValue")},{id:"spec-finish",label:i("conversation.butlerCompletionTemplateSpecLabel"),description:i("conversation.butlerCompletionTemplateSpecDescription"),value:i("conversation.butlerCompletionTemplateSpecValue")},{id:"bugfix",label:i("conversation.butlerCompletionTemplateBugfixLabel"),description:i("conversation.butlerCompletionTemplateBugfixDescription"),value:i("conversation.butlerCompletionTemplateBugfixValue")}]}function ds(){var e;return((e=nr()[0])==null?void 0:e.value)??""}function hs(e,t=sr){return e==="claude-code"&&t.includes("claude-code")?"claude-code":t.includes("codex")?"codex":t[0]??null}function rr(e){return e==="codex"||e==="claude-code"}function di(e){return e.flatMap(t=>!t.enabled||!rr(t.provider)?[]:[t.provider])}function or({session:e,showTrigger:t=!0,openRequestKey:n=0}){const{showToast:s}=rt(),{requestNavigationRefresh:o}=St(),c=a.useId(),l=a.useId(),u=a.useId(),d=a.useId(),[f,C]=a.useState(!1),[x,A]=a.useState(!1),[w,b]=a.useState(null),[v,E]=a.useState(null),[y,I]=a.useState(null),[S,B]=a.useState(hs(e==null?void 0:e.provider)),[D,j]=a.useState(""),[N,m]=a.useState(()=>ds()),[p,L]=a.useState(Pt),[G,Y]=a.useState(!1),[K,te]=a.useState(0),{items:O}=Jr(!!(e!=null&&e.sessionId)),ge=nr(),H=a.useMemo(()=>O?di(O):sr,[O]),g=O!==null&&H.length===0,V=a.useMemo(()=>{var F;return((F=e==null?void 0:e.title)==null?void 0:F.trim())||null},[e==null?void 0:e.title]),W=a.useMemo(()=>w?{workspaceId:w.workspaceId,project:w.project,session:w.session}:null,[w]),Q=(w==null?void 0:w.latestFollowUpTask)??null,oe=(w==null?void 0:w.latestVerificationRun)??null,de=Q&&(Q.status==="active"||Q.status==="waiting_user")?Q:null,ce=oe&&(oe.status==="queued"||oe.status==="running")?oe:null;a.useEffect(()=>{C(!1),Y(!1),E(null),b(null),j(""),B(hs(e==null?void 0:e.provider)),m(ds()),L(Pt)},[e==null?void 0:e.sessionId]),a.useEffect(()=>{const F=hs(e==null?void 0:e.provider,H);(!S||!H.includes(S))&&B(F)},[H,S,e==null?void 0:e.provider]),a.useEffect(()=>{if(!(e!=null&&e.sessionId)){A(!1);return}let F=!1;return A(!0),E(null),yo(e.sessionId).then(ne=>{F||b(ne.context)}).catch(ne=>{F||(b(null),E(ne instanceof Error?ne.message:i("conversation.butlerActionLoadFailed")))}).finally(()=>{F||A(!1)}),()=>{F=!0}},[K,e==null?void 0:e.sessionId]);function me(){x||te(F=>F+1)}function k(){!w&&!x&&me()}if(a.useEffect(()=>{t||n<=0||(C(!0),k())},[x,n,t,w]),!(e!=null&&e.sessionId))return null;async function $(){if(!W){k();return}if(!S)return;const F=D.trim(),ne=N.trim();if(!F){s({title:i("conversation.butlerFollowUpObjectiveRequired"),tone:"warning"});return}if(!ne){s({title:i("conversation.butlerFollowUpCompletionCriteriaRequired"),tone:"warning"});return}I("follow-up");try{const Ie=await To({projectId:W.project.id,butlerSessionId:W.session.id,providerId:S,objective:F,completionCriteria:ne,maxAutoContinueCount:p});b(je=>je&&{...je,latestFollowUpTask:Ie.task}),o(),s({title:i("conversation.butlerFollowUpStarted"),description:i("conversation.butlerFollowUpStartedDescription",{projectName:W.project.name}),tone:"success"}),j(""),m(ds()),L(Pt),C(!1)}catch(Ie){s({title:i("conversation.butlerFollowUpFailed"),description:Ie instanceof Error?Ie.message:void 0,tone:"error"})}finally{I(null)}}async function z(){if(Q){I("follow-up");try{const F=await Co(Q.id);b(ne=>ne&&{...ne,latestFollowUpTask:F.task}),o(),s({title:i("conversation.butlerFollowUpStopped"),description:i("conversation.butlerFollowUpStoppedDescription"),tone:"success"}),C(!1)}catch(F){s({title:i("conversation.butlerFollowUpStopFailed"),description:F instanceof Error?F.message:void 0,tone:"error"})}finally{I(null)}}}async function q(){if(!W){k();return}I("verification");try{const F=await ko({projectId:W.project.id,butlerSessionId:W.session.id,verificationType:"browser",targetRef:V||W.session.title||W.project.name});b(ne=>ne&&{...ne,latestVerificationRun:F.result.run}),o(),s({title:i("conversation.butlerVerificationStarted"),description:i("conversation.butlerVerificationStartedDescription",{projectName:W.project.name}),tone:"success"}),C(!1)}catch(F){s({title:i("conversation.butlerVerificationFailed"),description:F instanceof Error?F.message:void 0,tone:"error"})}finally{I(null)}}async function ie(){if(oe){I("verification");try{const F=await Ro(oe.projectId,oe.id);b(ne=>ne&&{...ne,latestVerificationRun:F.run}),o(),s({title:i("conversation.butlerVerificationStopped"),description:i("conversation.butlerVerificationStoppedDescription"),tone:"success"}),C(!1)}catch(F){s({title:i("conversation.butlerVerificationStopFailed"),description:F instanceof Error?F.message:void 0,tone:"error"})}finally{I(null)}}}return r.jsxs(r.Fragment,{children:[t?r.jsxs("div",{className:"conversation-butler-entry",onMouseEnter:()=>{Y(!0),k()},onMouseLeave:()=>{Y(!1)},children:[r.jsx("button",{type:"button",className:"conversation-header-ai-button","aria-label":i("conversation.butlerActionButton"),title:i("conversation.butlerActionButton"),onFocus:()=>{Y(!0),k()},onBlur:()=>{Y(!1)},onClick:()=>{C(!0),k()},children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(Po,{})})}),G?r.jsxs("div",{className:"conversation-butler-analysis-popover",role:"status","aria-live":"polite",children:[r.jsx("strong",{children:i("conversation.butlerAnalysisTitle")}),x?r.jsx("p",{children:i("conversation.butlerActionLoading")}):v?r.jsx("p",{children:v}):Q?r.jsxs(r.Fragment,{children:[r.jsxs("p",{children:[i("conversation.butlerAnalysisObjectiveLabel"),":",Q.objective]}),r.jsxs("p",{children:[i("conversation.butlerAnalysisStatusLabel"),":",rn(Q.status)]}),r.jsxs("p",{children:[i("conversation.butlerAnalysisSummaryLabel"),":",Q.lastAutomationSummary||Q.waitingReason||i("conversation.butlerAnalysisEmpty")]}),Q.waitingReason?r.jsxs("p",{children:[i("conversation.butlerAnalysisWaitingReasonLabel"),":",Q.waitingReason]}):null]}):r.jsx("p",{children:i("conversation.butlerAnalysisEmpty")})]}):null]}):null,r.jsx(Gr,{open:f,title:i("conversation.butlerActionModalTitle"),description:i("conversation.butlerActionModalDescription"),className:"conversation-butler-modal-card",footer:!x&&!v&&W?r.jsxs(es,{children:[r.jsx("button",{type:"button",className:"secondary-button",disabled:y!==null,onClick:()=>{q()},children:i("conversation.butlerVerificationAction")}),r.jsx("button",{type:"button",className:"primary-button",disabled:y!==null||g||!S,onClick:()=>{$()},children:i("conversation.butlerFollowUpAction")})]}):void 0,onClose:()=>{y||C(!1)},children:r.jsxs("div",{className:"conversation-butler-modal",children:[x?r.jsx("p",{className:"conversation-butler-modal-hint",children:i("conversation.butlerActionLoading")}):null,!x&&v?r.jsx("p",{className:"conversation-butler-modal-error",children:v}):null,!x&&!v&&W?r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"conversation-butler-target-grid",children:[r.jsxs("div",{className:"conversation-butler-target-card",children:[r.jsx("span",{children:i("conversation.butlerActionProjectLabel")}),r.jsx("strong",{children:W.project.name})]}),r.jsxs("div",{className:"conversation-butler-target-card",children:[r.jsx("span",{children:i("conversation.butlerActionSessionLabel")}),r.jsx("strong",{children:W.session.title||V||W.session.sessionId})]})]}),r.jsxs("div",{className:"conversation-butler-follow-up-grid",children:[r.jsxs("div",{className:"workbench-modal-field conversation-butler-modal-field",children:[r.jsxs("div",{className:"conversation-butler-field-heading",children:[r.jsx("label",{children:i("conversation.butlerFollowUpProviderLabel")}),r.jsx("small",{children:i("conversation.butlerFollowUpProviderHint")})]}),g?r.jsx("p",{className:"conversation-butler-modal-hint",children:i("conversation.butlerFollowUpProviderHint")}):r.jsx(eo,{workspaceId:W.workspaceId,providers:H,selectedProvider:S,disabled:y!==null,onSelect:F=>{rr(F)&&B(F)}})]}),r.jsxs("div",{className:"workbench-modal-field conversation-butler-modal-field conversation-butler-round-limit-field",children:[r.jsxs("div",{className:"conversation-butler-field-heading",children:[r.jsx("label",{htmlFor:d,children:i("conversation.butlerFollowUpRoundLimitLabel")}),r.jsx("small",{children:i("conversation.butlerFollowUpRoundLimitHint")})]}),r.jsx("input",{id:d,type:"number",min:1,max:20,value:p,disabled:y!==null,onChange:F=>{const ne=Number.parseInt(F.target.value,10);L(Number.isFinite(ne)?ne:Pt)}})]})]}),r.jsxs("div",{className:"workbench-modal-field conversation-butler-modal-field",children:[r.jsx("label",{htmlFor:c,children:i("conversation.butlerFollowUpObjectiveLabel")}),r.jsx("textarea",{id:c,rows:3,value:D,placeholder:i("conversation.butlerFollowUpObjectivePlaceholder"),disabled:y!==null,onChange:F=>{j(F.target.value)}})]}),r.jsxs("div",{className:"workbench-modal-field conversation-butler-modal-field",children:[r.jsxs("div",{className:"conversation-butler-field-heading",children:[r.jsx("label",{htmlFor:l,children:i("conversation.butlerFollowUpCompletionCriteriaLabel")}),r.jsx("small",{id:u,children:i("conversation.butlerCompletionTemplateSectionHint")})]}),r.jsx("textarea",{id:l,rows:3,value:N,placeholder:i("conversation.butlerFollowUpCompletionCriteriaPlaceholder"),"aria-describedby":u,disabled:y!==null,onChange:F=>{m(F.target.value)}}),r.jsx("div",{className:"conversation-butler-preset-grid",role:"group","aria-label":i("conversation.butlerCompletionTemplateSectionLabel"),children:ge.map(F=>r.jsxs("button",{type:"button",className:"conversation-butler-preset-card","data-selected":N.trim()===F.value,"aria-pressed":N.trim()===F.value,disabled:y!==null,onClick:()=>{m(F.value)},children:[r.jsx("strong",{children:F.label}),r.jsx("span",{children:F.description})]},F.id))})]}),de||ce?r.jsxs("div",{className:"conversation-butler-meta-grid",children:[de?r.jsxs("div",{className:"conversation-butler-target-card conversation-butler-current-task-card",children:[r.jsx("span",{children:i("conversation.butlerCurrentFollowUpLabel")}),r.jsx("strong",{children:rn(de.status)}),r.jsx("small",{children:i("conversation.butlerCurrentFollowUpProgress",{current:de.autoContinueCount,max:de.maxAutoContinueCount??Pt})}),r.jsx("button",{type:"button",className:"workbench-secondary-button",disabled:y!==null,onClick:()=>{z()},children:i("conversation.butlerStopFollowUpAction")})]}):null,ce?r.jsxs("div",{className:"conversation-butler-target-card conversation-butler-current-task-card",children:[r.jsx("span",{children:i("conversation.butlerCurrentVerificationLabel")}),r.jsx("strong",{children:hi(ce.status)}),r.jsx("small",{children:ce.targetRef||ce.verificationType}),r.jsx("button",{type:"button",className:"workbench-secondary-button",disabled:y!==null,onClick:()=>{ie()},children:i("conversation.butlerStopVerificationAction")})]}):null]}):null]}):null]})})]})}function rn(e){switch(e){case"waiting_user":return i("shell.butlerAutomationStatusWaitingUser");case"completed":return i("shell.butlerAutomationStatusCompleted");case"failed":return i("shell.butlerAutomationStatusFailed");case"cancelled":return i("shell.butlerAutomationStatusCancelled");case"active":default:return i("shell.butlerAutomationStatusActive")}}function hi(e){switch(e){case"queued":case"running":return i("shell.butlerAutomationStatusActive");case"passed":case"skipped":return i("shell.butlerAutomationStatusCompleted");case"failed":return i("shell.butlerAutomationStatusFailed");case"cancelled":default:return i("shell.butlerAutomationStatusCancelled")}}const mi=340;function fi({session:e,onOpenBranchTree:t}){const n=ct(),s=Ds(),o=a.useRef(null),c=a.useRef(null),[l,u]=a.useState(!1),[d,f]=a.useState(null),[C,x]=a.useState(null),[A,w]=a.useState(0);a.useEffect(()=>{u(!1),f(null)},[s.pathname,s.search]),a.useLayoutEffect(()=>{if(!l||!d||typeof window>"u"){x(null);return}const j=()=>{var L,G;const p=jo(d,{width:((L=c.current)==null?void 0:L.offsetWidth)??0,height:((G=c.current)==null?void 0:G.offsetHeight)??0},{width:window.innerWidth,height:window.innerHeight},{estimatedHeightPx:mi});x({position:"fixed",left:`${Math.round(p.left)}px`,top:`${Math.round(p.top)}px`,width:`${Math.round(p.width)}px`,maxWidth:"calc(100vw - 24px)",maxHeight:`${Math.round(p.maxHeight)}px`,transformOrigin:p.transformOrigin})},N=p=>{var G,Y;const L=p.target;L&&!((G=c.current)!=null&&G.contains(L))&&!((Y=o.current)!=null&&Y.contains(L))&&v()},m=p=>{p.key==="Escape"&&v()};return j(),window.addEventListener("pointerdown",N),window.addEventListener("keydown",m),window.addEventListener("resize",j),window.addEventListener("scroll",j,!0),()=>{window.removeEventListener("pointerdown",N),window.removeEventListener("keydown",m),window.removeEventListener("resize",j),window.removeEventListener("scroll",j,!0)}},[d,l]);function b(){var N;const j=(N=o.current)==null?void 0:N.getBoundingClientRect();j&&(f({x:j.right,y:j.bottom}),u(!0))}function v(){u(!1),f(null)}function E(j){n(j),v()}function y(j){const N=new URLSearchParams(s.search);N.set("toolPanel",j),E(`${s.pathname}?${N.toString()}`)}function I(){if(l){v();return}b()}function S(j){j.key!=="ContextMenu"&&!(j.shiftKey&&j.key==="F10")||(j.preventDefault(),j.stopPropagation(),b())}if(!e)return null;const B=[{key:"assistant",label:i("shell.butlerEntry"),onSelect:()=>{w(j=>j+1),v()}},...t?[{key:"branch",label:i("conversation.branchAction"),onSelect:()=>{t(),v()}}]:[],{key:"files",label:i("shell.filesEntry"),onSelect:()=>{y("files")}},{key:"git",label:i("shell.gitEntry"),onSelect:()=>{y("git")}},{key:"processes",label:i("shell.mobileConversationToolProcessesTab"),onSelect:()=>{y("processes")}}],D=l&&typeof document<"u"?wt.createPortal(r.jsx("div",{ref:c,className:"session-action-menu mobile-conversation-action-menu surface-card",role:"menu","aria-label":i("conversation.moreSessionActions"),style:C??{position:"fixed",top:0,left:0,visibility:"hidden"},onClick:j=>j.stopPropagation(),children:B.map(j=>r.jsx("button",{type:"button",className:"session-action-menu-item mobile-conversation-action-menu-item",role:"menuitem",onClick:j.onSelect,children:j.label},j.key))}),document.body):null;return r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"mobile-conversation-session-actions",children:[r.jsx("button",{ref:o,type:"button",className:"conversation-header-ai-button mobile-conversation-more-button","aria-label":i("conversation.moreSessionActions"),title:i("conversation.moreSessionActions"),"aria-haspopup":"menu","aria-expanded":l,onClick:I,onKeyDown:S,children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(Eo,{})})}),r.jsx(or,{session:e,showTrigger:!1,openRequestKey:A})]}),D]})}function ir({items:e,deletingQueueItemId:t=null,steeringQueueItemId:n=null,canSteer:s=!1,onDelete:o,onSteer:c}){return e.length===0?null:r.jsxs("section",{className:"queued-message-list","aria-label":i("conversation.queueTitle"),children:[r.jsx("div",{className:"queued-message-list__header",children:r.jsx("h2",{children:`${i("conversation.queueTitle")} · ${e.length}`})}),r.jsx("div",{className:"queued-message-list__items",children:e.map((l,u)=>{const d=l.status==="queued"||l.status==="failed",f=s&&typeof c=="function"&&(l.status==="queued"||l.status==="failed");return r.jsxs("article",{className:"queued-message-item",children:[r.jsxs("div",{className:"queued-message-item__main",children:[r.jsx("span",{className:"queued-message-item__order","aria-hidden":"true",children:u+1}),r.jsx("p",{className:"queued-message-item__content",title:l.content||i("conversation.queueImageOnly"),children:l.content||i("conversation.queueImageOnly")}),r.jsx("span",{className:`queued-message-item__status queued-message-item__status--${l.status}`,children:l.status==="failed"?i("conversation.queueStatusFailed"):i("conversation.queueStatusQueued")}),r.jsxs("div",{className:"queued-message-item__actions",children:[f?r.jsx("button",{type:"button",className:"queued-message-item__action queued-message-item__action--steer",onClick:()=>void c(l.id),disabled:n===l.id,"aria-label":i("conversation.queueSteer"),title:i("conversation.queueSteer"),children:n===l.id?i("conversation.queueSteering"):i("conversation.queueSteer")}):null,d?r.jsx("button",{type:"button",className:"queued-message-item__action queued-message-item__action--delete",onClick:()=>void o(l.id),disabled:t===l.id,"aria-label":i("conversation.queueDelete"),title:i("conversation.queueDelete"),children:t===l.id?"…":"×"}):null]})]}),l.errorDetail?r.jsx("p",{className:"queued-message-item__error",children:l.errorDetail}):null]},l.id)})})]})}function pi(e){const{sending:t,setSending:n,session:s,runtimeHasActiveRun:o,runtimeCanInterrupt:c}=e,l=a.useRef(!1);a.useEffect(()=>{if(!t){l.current=!1;return}if(gi(s,o,c)){l.current=!0;return}l.current&&(l.current=!1,n(!1))},[c,o,t,s,n])}function gi(e,t,n){return t===!0||n===!0||(e==null?void 0:e.runningState)==="stale"||(e==null?void 0:e.runningState)==="unknown"?!0:Hn(e)}const vi=30,ms=80,kt=60,ar=600,on=300*1e3,bi=600,wi=5e3,Si=1e4;class Ii{constructor(t,n={}){ke(this,"state");ke(this,"listeners",new Set);ke(this,"realtimeClient",null);ke(this,"historyBootstrapFallbackTimer",null);ke(this,"historyBootstrapEnvelopeReceived",!1);ke(this,"markSeenTimer",null);ke(this,"markSeenInFlight",!1);ke(this,"lastMarkSeenRequestAt",0);ke(this,"seenWatermark",null);ke(this,"runtimeRefreshTimer",null);ke(this,"runtimeRefreshMode",null);ke(this,"replaceSnapshotSeedOnBackfill",!1);ke(this,"olderHistoryPrefetchCursor",null);ke(this,"olderHistoryPrefetchPromise",null);ke(this,"prefetchedOlderHistoryPage",null);ke(this,"pendingReplyDebugTraces",[]);ke(this,"hasAuthoritativeBootstrapMessages");ke(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));ke(this,"getState",()=>this.state);var l;this.sessionId=t,this.options=n;const s=zs(ws(t),on);this.hasAuthoritativeBootstrapMessages=(((l=n.bootstrapMessages)==null?void 0:l.length)??0)>0;const o=$t(n.initialSession??null,(s==null?void 0:s.session)??null),c=yt((s==null?void 0:s.messages)??[],this.sessionId,n.bootstrapMessages??[]);this.replaceSnapshotSeedOnBackfill=!this.hasAuthoritativeBootstrapMessages&&((s==null?void 0:s.messages.length)??0)>0&&((s==null?void 0:s.messages.length)??0)<kt&&((s==null?void 0:s.pagesLoaded)??0)<=1,this.state=Qs({session:o,capabilities:(s==null?void 0:s.capabilities)??null,runtimeHasActiveRun:(s==null?void 0:s.runtimeHasActiveRun)??null,runtimeCanInterrupt:(s==null?void 0:s.runtimeCanInterrupt)??null,contextUsage:(s==null?void 0:s.contextUsage)??null,messages:c,permissionRequests:(s==null?void 0:s.permissionRequests)??[],queuedMessages:(s==null?void 0:s.queuedMessages)??[],olderCursor:(s==null?void 0:s.olderCursor)??null,hasOlderMessages:(s==null?void 0:s.hasOlderMessages)??!1,lastCursor:(s==null?void 0:s.lastCursor)??null,interruptSource:(s==null?void 0:s.interruptSource)??null,pagesLoaded:(s==null?void 0:s.pagesLoaded)??0}),this.seenWatermark=(o==null?void 0:o.lastSeenAt)??null}async initialize(){this.historyBootstrapEnvelopeReceived=!1,this.clearHistoryBootstrapFallbackTimer(),this.clearOlderHistoryPrefetch();const t=this.options.bootstrapMessages??[],n=yt(this.state.messages,this.sessionId,t),s=this.hasAuthoritativeBootstrapMessages;this.patch({messages:n,historyState:Ri(this.state.session,s?n.length:0),loadingOlderMessages:!1,olderCursor:s?null:this.state.olderCursor,hasOlderMessages:pt({session:this.state.session,loadedMessageCount:n.length,olderCursor:s?null:this.state.olderCursor,pagesLoaded:this.state.pagesLoaded,currentHasOlderMessages:this.state.hasOlderMessages}),pagesLoaded:s?Math.max(this.state.pagesLoaded,1):this.state.pagesLoaded,errorCode:null,errorDetail:null}),this.shouldRefreshSessionDetail()&&this.refreshSessionMetadata(),this.shouldRefreshRuntimeSnapshot()&&this.refreshRuntimeSnapshot("bootstrap"),this.refreshPermissionRequests(),this.refreshQueue();try{this.startRealtime(),s&&this.scheduleMarkSeen()}catch(o){this.handleError(o)}}async reload(){var n,s;this.clearHistoryBootstrapFallbackTimer(),this.historyBootstrapEnvelopeReceived=!1,this.clearOlderHistoryPrefetch(),(n=this.realtimeClient)==null||n.close(),this.realtimeClient=null;const t=zs(ws(this.sessionId),on);this.state=Qs({session:$t(this.options.initialSession??null,(t==null?void 0:t.session)??null),capabilities:(t==null?void 0:t.capabilities)??null,runtimeHasActiveRun:(t==null?void 0:t.runtimeHasActiveRun)??null,runtimeCanInterrupt:(t==null?void 0:t.runtimeCanInterrupt)??null,contextUsage:(t==null?void 0:t.contextUsage)??null,messages:yt((t==null?void 0:t.messages)??[],this.sessionId,this.options.bootstrapMessages??[]),permissionRequests:(t==null?void 0:t.permissionRequests)??[],queuedMessages:(t==null?void 0:t.queuedMessages)??[],olderCursor:(t==null?void 0:t.olderCursor)??null,hasOlderMessages:(t==null?void 0:t.hasOlderMessages)??!1,lastCursor:(t==null?void 0:t.lastCursor)??null,pagesLoaded:(t==null?void 0:t.pagesLoaded)??0}),this.seenWatermark=((s=this.state.session)==null?void 0:s.lastSeenAt)??null,this.replaceSnapshotSeedOnBackfill=!this.hasAuthoritativeBootstrapMessages&&((t==null?void 0:t.messages.length)??0)>0&&((t==null?void 0:t.messages.length)??0)<kt&&((t==null?void 0:t.pagesLoaded)??0)<=1,this.emit(),await this.initialize()}applyNavigationSession(t){if(!t||t.sessionId!==this.sessionId)return;const n=$t(this.state.session,t);n!==this.state.session&&this.patch({session:n,hasOlderMessages:pt({session:n,loadedMessageCount:this.state.messages.length,olderCursor:this.state.olderCursor,pagesLoaded:this.state.pagesLoaded,currentHasOlderMessages:this.state.hasOlderMessages})})}async sendMessage(t,n){const s=fn();this.beginPendingReplyDebugTrace("send_live",s,t.length);const o=Fn(this.sessionId,t,s,(n==null?void 0:n.attachmentMeta)??[],(n==null?void 0:n.attachments)??[],xi(this.state.messages,this.state.session));this.patch({messages:Ao(this.state.messages,o),session:Ye(this.state.session,"running"),runtimeHasActiveRun:pn(this.state.session,this.state.capabilities)?!0:this.state.runtimeHasActiveRun,runtimeCanInterrupt:gn(this.state.session,this.state.capabilities)?!0:this.state.runtimeCanInterrupt});try{const c=await this.sendMessageWithFallback(t,s,n);this.markPendingReplyDebugTraceResponseReady(s,{returnedMessageId:c.message.messageId,returnedProviderSessionId:c.message.providerSessionId}),this.patch({messages:Ks(this.state.messages,this.sessionId,c.message,s)})}catch(c){throw this.failPendingReplyDebugTrace(s,c),this.patch({messages:xs(this.state.messages,s),session:Ye(this.state.session,"failed"),runtimeHasActiveRun:!1,runtimeCanInterrupt:!1}),c}}async retryMessage(t){const n=this.state.messages.find(s=>s.clientRequestId===t);if(n){this.patch({messages:this.state.messages.map(s=>s.clientRequestId===t?{...s,deliveryState:"sending"}:s),runtimeHasActiveRun:pn(this.state.session,this.state.capabilities)?!0:this.state.runtimeHasActiveRun,runtimeCanInterrupt:gn(this.state.session,this.state.capabilities)?!0:this.state.runtimeCanInterrupt}),this.beginPendingReplyDebugTrace("retry_live",t,n.content.length);try{const s=await this.sendMessageWithFallback(n.content,t,{attachments:n.attachmentPayloads??[],attachmentMeta:n.attachments});this.markPendingReplyDebugTraceResponseReady(t,{returnedMessageId:s.message.messageId,returnedProviderSessionId:s.message.providerSessionId}),this.patch({messages:Ks(this.state.messages,this.sessionId,s.message,t)})}catch(s){throw this.failPendingReplyDebugTrace(t,s),this.patch({messages:xs(this.state.messages,t),session:Ye(this.state.session,"failed")}),s}}}async enqueueMessage(t,n){const s=fn();try{const o=await to(this.sessionId,{content:t,clientRequestId:s,model:(n==null?void 0:n.model)??null,reasoningLevel:(n==null?void 0:n.reasoningLevel)??null,permissionMode:at(),attachments:(n==null?void 0:n.attachments)??[],providerConfigMode:n==null?void 0:n.providerConfigMode,providerPresetId:(n==null?void 0:n.providerPresetId)??null});this.patch({queuedMessages:Hi(this.state.queuedMessages,o)}),await this.refreshQueue()}catch(o){throw o}}async deleteQueuedMessage(t){await so(this.sessionId,t),await this.refreshQueue()}async steerQueuedMessage(t){await no(this.sessionId,t),await this.refreshRuntimeSnapshot("queue_steer")}async interrupt(){await ro(this.sessionId),this.patch({session:Ye(this.state.session,"interrupted"),runtimeHasActiveRun:!1,runtimeCanInterrupt:!1,interruptSource:"user",errorCode:null,errorDetail:null})}async replyPermissionRequest(t,n){if(!(this.state.permissionRequests.find(c=>c.id===t)??null))return;const o=await oo(this.sessionId,t,n);this.patch({permissionRequests:Ss(this.state.permissionRequests,o)})}reconnect(){var t;(t=this.realtimeClient)==null||t.reconnectNow()}async loadOlderMessages(){var t;if(!(this.state.historyState!=="ready"||this.state.loadingOlderMessages||!this.state.olderCursor)){this.patch({loadingOlderMessages:!0,errorCode:null,errorDetail:null});try{const n=this.state.olderCursor,s=await this.takePrefetchedOlderHistoryPage(n);if(s&&this.state.olderCursor===n){this.applyOlderHistoryPage(s,"prefetch_cache");return}if(!((t=this.realtimeClient)==null?void 0:t.requestOlderMessages(n,ms)))throw new Error("REALTIME_NOT_CONNECTED")}catch(n){const s=n instanceof Error?n.message:"unknown";this.patch({loadingOlderMessages:!1,errorCode:"HISTORY_LOAD_MORE_FAILED",errorDetail:s})}}}destroy(){var t;this.clearHistoryBootstrapFallbackTimer(),this.clearOlderHistoryPrefetch(),(t=this.realtimeClient)==null||t.close(),this.realtimeClient=null,this.pendingReplyDebugTraces.length=0,this.markSeenTimer!==null&&(window.clearTimeout(this.markSeenTimer),this.markSeenTimer=null),this.runtimeRefreshTimer!==null&&(window.clearTimeout(this.runtimeRefreshTimer),this.runtimeRefreshTimer=null),this.runtimeRefreshMode=null}startRealtime(){var n;if(!((n=is.getState().session)==null?void 0:n.accessToken)){is.clear();return}this.realtimeClient=new si({sessionId:this.sessionId,cursor:this.state.lastCursor,limit:kt,onSubscribed:()=>{pe("session_send.realtime_subscribed",{sessionId:this.sessionId,lastCursor:this.state.lastCursor}),this.patch({connectionState:"connected",hasOlderMessages:pt({session:this.state.session,loadedMessageCount:this.state.messages.length,olderCursor:this.state.olderCursor,pagesLoaded:this.state.pagesLoaded,currentHasOlderMessages:this.state.hasOlderMessages})}),this.scheduleHistoryBootstrapFallback()},onConnectionChange:s=>{var c;const o=this.state.connectionState;if(this.patch({connectionState:s,session:s==="reconnecting"&&Xe((c=this.state.session)==null?void 0:c.runningState)?Ye(this.state.session,"reconnecting"):this.state.session}),s==="connected"){this.clearRuntimeRefreshTimer("poll"),o!=="closed"&&o!=="connected"&&this.patch({errorCode:null,errorDetail:null});return}this.scheduleRuntimeRefresh("poll","connection_state_change")},onEnvelope:s=>{var u,d;this.historyBootstrapEnvelopeReceived=!0,this.clearHistoryBootstrapFallbackTimer();const o=s.type==="session.backfill"&&this.replaceSnapshotSeedOnBackfill;Vt("envelope.received",{sessionId:this.sessionId,type:s.type,cursor:s.cursor,olderCursor:s.olderCursor??null,incomingMessages:Ct(s.messages),currentMessages:Ct(this.state.messages)});const{messages:c,replacedSnapshotSeed:l}=this.mergeHistoryMessages(s.messages,o,s.type==="session.backfill"?"realtime_backfill":"realtime_delta");Vt("envelope.merged",{sessionId:this.sessionId,type:s.type,replacedSnapshotSeed:l,mergedMessages:Ct(c)}),this.patch({messages:c,lastCursor:s.cursor,historyState:"ready",olderCursor:s.type==="session.backfill"&&!l&&this.state.pagesLoaded>1?this.state.olderCursor:s.olderCursor??this.state.olderCursor,hasOlderMessages:s.type==="session.backfill"?!l&&this.state.pagesLoaded>1?this.state.hasOlderMessages:!!s.olderCursor:pt({session:this.state.session,loadedMessageCount:c.length,olderCursor:this.state.olderCursor,pagesLoaded:this.state.pagesLoaded,currentHasOlderMessages:this.state.hasOlderMessages}),pagesLoaded:s.type==="session.backfill"?!l&&this.state.pagesLoaded>1?this.state.pagesLoaded:Math.max(this.state.pagesLoaded,c.length>0?1:0):this.state.pagesLoaded,session:Ye(this.state.session,un(s.type,(u=this.state.session)==null?void 0:u.runningState))}),(d=this.realtimeClient)==null||d.updateCursor(s.cursor),this.scheduleMarkSeen(),this.scheduleOlderHistoryPrefetch(s.type==="session.backfill"?"backfill":"delta"),this.state.queuedMessages.length>0&&this.refreshQueue()},onOlderHistory:s=>{this.applyOlderHistoryPage({messages:s.messages,nextCursor:s.olderCursor},"realtime")},onRuntimeMessage:s=>{this.handleRuntimeMessage(s)},onActivity:s=>{this.handleActivity(s)},onRuntimeStatus:s=>{this.handleRuntimeStatus(s)},onRuntimeError:s=>{this.handleRuntimeError(s)},onInterrupted:s=>{this.handleInterrupted(s)},onPermissionRequest:s=>{this.handlePermissionRequest(s)},onPermissionRequestResolved:s=>{this.handlePermissionRequestResolved(s)},onError:s=>{this.patch({loadingOlderMessages:!1,errorCode:s.error_code,errorDetail:s.detail})},onUnauthorized:()=>{is.clear()}}),this.realtimeClient.start()}patch(t){let n=t;Object.prototype.hasOwnProperty.call(t,"session")&&(this.syncSeenWatermark(t.session??null),n={...t,session:this.applySeenWatermark(t.session??null)}),this.state={...this.state,...n},(Object.prototype.hasOwnProperty.call(n,"session")||Object.prototype.hasOwnProperty.call(n,"capabilities")||Object.prototype.hasOwnProperty.call(n,"contextUsage")||Object.prototype.hasOwnProperty.call(n,"messages")||Object.prototype.hasOwnProperty.call(n,"permissionRequests")||Object.prototype.hasOwnProperty.call(n,"queuedMessages"))&&this.persistSnapshot(),this.emit()}mergeHistoryMessages(t,n,s){const o=n&&this.replaceSnapshotSeedOnBackfill&&yi(this.state.messages,t),c=o?this.state.messages.filter(u=>u.deliveryState!=="sent"):this.state.messages,l=yt(c,this.sessionId,t);return this.logCodexMergeDebug(s,this.state.messages,t,l,{replacedSnapshotSeedAttempted:n,replacedSnapshotSeed:o,baseMessageCount:c.length}),o&&(this.replaceSnapshotSeedOnBackfill=!1),{messages:l,replacedSnapshotSeed:o}}handleError(t){this.clearHistoryBootstrapFallbackTimer();const n=t instanceof Error?t.message:"unknown";this.patch({historyState:"error",errorCode:"RUNTIME_INIT_FAILED",errorDetail:n})}scheduleMarkSeen(){if(this.markSeenTimer!==null)return;const t=this.getTargetSeenAt();if(this.markSeenInFlight||t===null)return;const n=this.getMarkSeenThrottleDelayMs(),s=Math.max(bi,n);this.markSeenTimer=window.setTimeout(()=>{this.markSeenTimer=null;const o=this.getTargetSeenAt();o!==null&&(pe("session_seen.start",{sessionId:this.sessionId,targetSeenAt:o,seenWatermark:this.seenWatermark}),this.markSeenInFlight=!0,this.lastMarkSeenRequestAt=Date.now(),io(this.sessionId).then(()=>{var c,l;this.bumpSeenWatermark(o),this.patch({session:an(this.state.session,o)}),(l=(c=this.options).onSeen)==null||l.call(c,this.sessionId,o),pe("session_seen.end",{sessionId:this.sessionId,seenWatermark:this.seenWatermark})}).catch(()=>{pe("session_seen.error",{sessionId:this.sessionId,targetSeenAt:o})}).finally(()=>{this.markSeenInFlight=!1,this.shouldMarkSeen()&&this.scheduleMarkSeen()}))},s)}clearRuntimeRefreshTimer(t){this.runtimeRefreshTimer!==null&&(t&&this.runtimeRefreshMode!==t||(window.clearTimeout(this.runtimeRefreshTimer),this.runtimeRefreshTimer=null,this.runtimeRefreshMode=null))}scheduleHistoryBootstrapFallback(){this.historyBootstrapEnvelopeReceived||this.historyBootstrapFallbackTimer!==null||(this.historyBootstrapFallbackTimer=window.setTimeout(()=>{this.historyBootstrapFallbackTimer=null,!this.historyBootstrapEnvelopeReceived&&this.resolveHistoryBootstrapFallback()},350))}clearHistoryBootstrapFallbackTimer(){this.historyBootstrapFallbackTimer!==null&&(window.clearTimeout(this.historyBootstrapFallbackTimer),this.historyBootstrapFallbackTimer=null)}async resolveHistoryBootstrapFallback(){try{const t=Math.min(ar,Math.max(kt,this.state.messages.length,vi)),n=await Ms(this.sessionId,null,t,"backward");if(this.historyBootstrapEnvelopeReceived)return;this.historyBootstrapEnvelopeReceived=!0;const{messages:s,replacedSnapshotSeed:o}=this.mergeHistoryMessages(n.messages,this.replaceSnapshotSeedOnBackfill,"http_bootstrap_fallback");this.patch({messages:s,historyState:"ready",olderCursor:!o&&this.state.pagesLoaded>1?this.state.olderCursor:n.nextCursor,hasOlderMessages:!o&&this.state.pagesLoaded>1?this.state.hasOlderMessages:pt({session:this.state.session,loadedMessageCount:s.length,olderCursor:n.nextCursor,pagesLoaded:this.state.pagesLoaded,currentHasOlderMessages:this.state.hasOlderMessages}),lastCursor:n.cursor??this.state.lastCursor,pagesLoaded:!o&&this.state.pagesLoaded>1?this.state.pagesLoaded:s.length>0?Math.max(this.state.pagesLoaded,1):this.state.pagesLoaded,errorCode:null,errorDetail:null}),this.scheduleMarkSeen(),this.scheduleOlderHistoryPrefetch("bootstrap_fallback")}catch{}}applyOlderHistoryPage(t,n){const{messages:s}=this.mergeHistoryMessages(t.messages,!1,n==="realtime"?"older_history_realtime":"older_history_prefetch_cache");this.patch({messages:s,historyState:"ready",loadingOlderMessages:!1,olderCursor:t.nextCursor,hasOlderMessages:!!t.nextCursor,pagesLoaded:this.state.pagesLoaded+1,errorCode:null,errorDetail:null}),pe("session.history_older.applied",{sessionId:this.sessionId,source:n,messageCount:t.messages.length,nextCursor:t.nextCursor}),this.scheduleOlderHistoryPrefetch(n)}scheduleOlderHistoryPrefetch(t){var s;const n=this.state.olderCursor;this.state.historyState!=="ready"||this.state.loadingOlderMessages||!n||((s=this.prefetchedOlderHistoryPage)==null?void 0:s.requestedCursor)!==n&&(this.olderHistoryPrefetchPromise&&this.olderHistoryPrefetchCursor===n||this.prefetchOlderHistoryPage(n,t))}async prefetchOlderHistoryPage(t,n){var o;if(((o=this.prefetchedOlderHistoryPage)==null?void 0:o.requestedCursor)===t)return this.prefetchedOlderHistoryPage.page;if(this.olderHistoryPrefetchPromise&&this.olderHistoryPrefetchCursor===t)return this.olderHistoryPrefetchPromise;this.olderHistoryPrefetchCursor=t,pe("session.history_older.prefetch.start",{sessionId:this.sessionId,requestedCursor:t,reason:n,limit:ms});const s=Ms(this.sessionId,t,ms,"backward").then(c=>(this.state.olderCursor===t&&(this.prefetchedOlderHistoryPage={requestedCursor:t,page:c}),pe("session.history_older.prefetch.end",{sessionId:this.sessionId,requestedCursor:t,messageCount:c.messages.length,nextCursor:c.nextCursor}),c)).catch(c=>(pe("session.history_older.prefetch.error",{sessionId:this.sessionId,requestedCursor:t,message:c instanceof Error?c.message:"unknown"}),null)).finally(()=>{this.olderHistoryPrefetchPromise===s&&(this.olderHistoryPrefetchPromise=null),this.olderHistoryPrefetchCursor===t&&(this.olderHistoryPrefetchCursor=null)});return this.olderHistoryPrefetchPromise=s,s}async takePrefetchedOlderHistoryPage(t){var n;if(((n=this.prefetchedOlderHistoryPage)==null?void 0:n.requestedCursor)===t){const s=this.prefetchedOlderHistoryPage.page;return this.prefetchedOlderHistoryPage=null,pe("session.history_older.prefetch.hit",{sessionId:this.sessionId,requestedCursor:t,messageCount:s.messages.length,nextCursor:s.nextCursor}),s}if(this.olderHistoryPrefetchPromise&&this.olderHistoryPrefetchCursor===t){const s=await this.olderHistoryPrefetchPromise;return!s||this.state.olderCursor!==t?null:(this.prefetchedOlderHistoryPage=null,pe("session.history_older.prefetch.await_hit",{sessionId:this.sessionId,requestedCursor:t,messageCount:s.messages.length,nextCursor:s.nextCursor}),s)}return null}clearOlderHistoryPrefetch(){this.olderHistoryPrefetchCursor=null,this.olderHistoryPrefetchPromise=null,this.prefetchedOlderHistoryPage=null}scheduleRuntimeRefresh(t,n){var s,o;if(!Xe((s=this.state.session)==null?void 0:s.runningState)){this.clearRuntimeRefreshTimer();return}t==="poll"&&this.state.connectionState==="connected"||(this.clearRuntimeRefreshTimer(),this.runtimeRefreshMode=t,pe("session_runtime.refresh.schedule",{sessionId:this.sessionId,mode:t,reason:n,connectionState:this.state.connectionState,runningState:((o=this.state.session)==null?void 0:o.runningState)??null}),this.runtimeRefreshTimer=window.setTimeout(()=>{const c=this.runtimeRefreshMode??t;this.runtimeRefreshTimer=null,this.runtimeRefreshMode=null,this.refreshRuntimeState(c,n)},t==="poll"?Si:1200))}async refreshRuntimeState(t,n){var s,o,c,l,u;pe("session_runtime.refresh.start",{sessionId:this.sessionId,mode:t,reason:n,connectionState:this.state.connectionState,runningState:((s=this.state.session)==null?void 0:s.runningState)??null});try{const d=await Vs(this.sessionId),f=vs(this.state.runtimeHasActiveRun,d.runningState,d.hasActiveRun),C=bs(this.state.runtimeCanInterrupt,d.runningState,f,d.canInterrupt);this.patch({session:ln(this.state.session,d),runtimeHasActiveRun:f,runtimeCanInterrupt:C,contextUsage:d.contextUsage,...ps(d,this.state.interruptSource)}),await this.refreshQueue();const x=t==="poll"&&this.state.connectionState!=="connected"&&Xe((o=this.state.session)==null?void 0:o.runningState);pe("session_runtime.refresh.end",{sessionId:this.sessionId,mode:t,reason:n,connectionState:this.state.connectionState,runningState:((c=this.state.session)==null?void 0:c.runningState)??null,continuePolling:x}),x&&this.scheduleRuntimeRefresh("poll","connection_poll")}catch(d){pe("session_runtime.refresh.error",{sessionId:this.sessionId,mode:t,reason:n,connectionState:this.state.connectionState,runningState:((l=this.state.session)==null?void 0:l.runningState)??null,message:d instanceof Error?d.message:"unknown"}),t==="poll"&&this.state.connectionState!=="connected"&&Xe((u=this.state.session)==null?void 0:u.runningState)&&this.scheduleRuntimeRefresh("poll","connection_poll_retry")}}async refreshSessionMetadata(){const t=[];this.state.session===null&&t.push(Dn(this.sessionId).then(n=>{this.patch({session:$t(n,this.state.session)})}).catch(()=>{})),cn(this.state.capabilities)&&t.push(ao(this.sessionId).then(n=>{this.patch({capabilities:n})}).catch(()=>{})),t.length!==0&&await Promise.allSettled(t)}async refreshPermissionRequests(){try{const t=await lo(this.sessionId);this.patch({permissionRequests:t.items})}catch{return}}shouldRefreshSessionDetail(){return this.state.session===null||cn(this.state.capabilities)||this.state.session.runningState===null}shouldRefreshRuntimeSnapshot(){return this.state.contextUsage===null||Di(this.state.session,this.state.runtimeHasActiveRun,this.state.runtimeCanInterrupt)}async refreshRuntimeSnapshot(t){pe("session_runtime.snapshot.start",{sessionId:this.sessionId,reason:t});try{const n=await Vs(this.sessionId),s=vs(this.state.runtimeHasActiveRun,n.runningState,n.hasActiveRun),o=bs(this.state.runtimeCanInterrupt,n.runningState,s,n.canInterrupt);this.patch({session:ln(this.state.session,n),runtimeHasActiveRun:s,runtimeCanInterrupt:o,contextUsage:n.contextUsage,...ps(n,this.state.interruptSource)}),await this.refreshQueue(),pe("session_runtime.snapshot.end",{sessionId:this.sessionId,reason:t,hasContextUsage:n.contextUsage!==null})}catch(n){pe("session_runtime.snapshot.error",{sessionId:this.sessionId,reason:t,message:n instanceof Error?n.message:"unknown"})}}async refreshQueue(){try{const t=await co(this.sessionId);this.patch({queuedMessages:t.items})}catch{return}}async sendMessageWithFallback(t,n,s){var o;try{return await js(this.sessionId,{content:t,clientRequestId:n,model:(s==null?void 0:s.model)??null,reasoningLevel:(s==null?void 0:s.reasoningLevel)??null,permissionMode:at(),attachments:(s==null?void 0:s.attachments)??[],providerConfigMode:s==null?void 0:s.providerConfigMode,providerPresetId:(s==null?void 0:s.providerPresetId)??null})}catch(c){if(!(c instanceof $r)||c.status!==404&&c.status!==405||(((o=s==null?void 0:s.attachments)==null?void 0:o.length)??0)>0)throw c;return pe("session_send.live_fallback",{sessionId:this.sessionId,clientRequestId:n,reason:c.message}),uo(this.sessionId,{content:t,clientRequestId:n,permissionMode:at()})}}handleRuntimeStatus(t){var s;const n=fs((s=this.state.session)==null?void 0:s.runningState,t.status);this.patch({session:Ye(this.state.session,n),runtimeHasActiveRun:Xe(n)?this.state.runtimeHasActiveRun??!0:!1,runtimeCanInterrupt:Xe(n)?this.state.runtimeCanInterrupt:!1,interruptSource:n==="interrupted"?t.interruptSource??this.state.interruptSource:n==="completed"||n==="failed"?null:this.state.interruptSource,errorCode:null,errorDetail:n===t.status?t.detail:this.state.errorDetail}),Nt(n)&&(this.completePendingReplyDebugTraceWithoutAssistant("session_send.client_terminal_before_message",{status:t.status,detail:t.detail}),this.clearRuntimeRefreshTimer(),this.refreshQueue(),this.refreshRuntimeSnapshot("runtime_terminal"))}handleActivity(t){const n=vs(this.state.runtimeHasActiveRun,t.runningState,t.hasActiveRun),s=bs(this.state.runtimeCanInterrupt,t.runningState,n,t.canInterrupt);if(this.patch({session:Ti(this.state.session,t),runtimeHasActiveRun:n,runtimeCanInterrupt:s,...ps(t,this.state.interruptSource)}),Nt(t.runningState)){this.clearRuntimeRefreshTimer(),this.refreshQueue();return}(t.runningState==="stale"||t.runningState==="unknown")&&this.scheduleRuntimeRefresh("tail","activity_watchdog")}handleRuntimeMessage(t){var s;t.message.role==="assistant"&&this.completePendingReplyDebugTrace(t),Vt("runtime_message.received",{sessionId:this.sessionId,source:t.source,message:lr(t.message),currentMessages:Ct(this.state.messages)});const n=yt(this.state.messages,this.sessionId,[t.message]);Vt("runtime_message.merged",{sessionId:this.sessionId,source:t.source,mergedMessages:Ct(n)}),this.logCodexMergeDebug("runtime_message",this.state.messages,[t.message],n,{runtimeSource:t.source}),this.patch({messages:n,historyState:"ready",hasOlderMessages:pt({session:this.state.session,loadedMessageCount:n.length,olderCursor:this.state.olderCursor,pagesLoaded:this.state.pagesLoaded,currentHasOlderMessages:this.state.hasOlderMessages}),session:Ye(this.state.session,un("session.delta",(s=this.state.session)==null?void 0:s.runningState))}),this.scheduleMarkSeen(),this.state.queuedMessages.length>0&&this.refreshQueue()}handleRuntimeError(t){var s;const n=fs((s=this.state.session)==null?void 0:s.runningState,"failed");this.completePendingReplyDebugTraceWithoutAssistant("session_send.client_runtime_error",{errorCode:t.error_code,detail:t.detail}),this.clearRuntimeRefreshTimer(),this.patch({session:Ye(this.state.session,n),runtimeHasActiveRun:!1,runtimeCanInterrupt:!1,interruptSource:null,errorCode:n==="failed"?t.error_code:this.state.errorCode,errorDetail:n==="failed"?t.detail:this.state.errorDetail}),this.refreshQueue()}handleInterrupted(t){var s;const n=fs((s=this.state.session)==null?void 0:s.runningState,"interrupted");this.completePendingReplyDebugTraceWithoutAssistant("session_send.client_interrupted",{detail:t.detail}),this.clearRuntimeRefreshTimer(),this.patch({session:Ye(this.state.session,n),runtimeHasActiveRun:!1,runtimeCanInterrupt:!1,interruptSource:n==="interrupted"?t.interruptSource??this.state.interruptSource:this.state.interruptSource,errorCode:n==="interrupted"?null:this.state.errorCode,errorDetail:n==="interrupted"?t.detail:this.state.errorDetail}),this.refreshQueue()}handlePermissionRequest(t){this.patch({permissionRequests:Ss(this.state.permissionRequests,t.request)})}handlePermissionRequestResolved(t){this.patch({permissionRequests:Ss(this.state.permissionRequests,t.request)})}shouldMarkSeen(){return this.getTargetSeenAt()!==null}getTargetSeenAt(){const t=[...this.state.messages].reverse().find(s=>s.role!=="user");if(!t)return null;const n=this.seenWatermark;return n?t.timestamp>n?t.timestamp:null:t.timestamp}syncSeenWatermark(t){t!=null&&t.lastSeenAt&&this.bumpSeenWatermark(t.lastSeenAt)}bumpSeenWatermark(t){this.seenWatermark&&this.seenWatermark>=t||(this.seenWatermark=t)}getMarkSeenThrottleDelayMs(){return this.lastMarkSeenRequestAt<=0?0:Math.max(0,wi-(Date.now()-this.lastMarkSeenRequestAt))}applySeenWatermark(t){return!t||!this.seenWatermark?t:an(t,this.seenWatermark)}emit(){for(const t of this.listeners)t()}persistSnapshot(){No(ws(this.sessionId),{session:this.state.session,capabilities:this.state.capabilities,runtimeHasActiveRun:this.state.runtimeHasActiveRun,runtimeCanInterrupt:this.state.runtimeCanInterrupt,contextUsage:this.state.contextUsage,messages:Oi(this.state.messages),permissionRequests:this.state.permissionRequests,queuedMessages:this.state.queuedMessages,olderCursor:this.state.olderCursor,hasOlderMessages:this.state.hasOlderMessages,lastCursor:this.state.lastCursor,pagesLoaded:this.state.pagesLoaded,interruptSource:this.state.interruptSource})}beginPendingReplyDebugTrace(t,n,s){const o={mode:t,clientRequestId:n,startedAtMs:performance.now(),responseReadyAtMs:null,contentLength:s};this.pendingReplyDebugTraces.push(o),pe(`session_send.${t}.client_start`,{sessionId:this.sessionId,clientRequestId:n,contentLength:s})}markPendingReplyDebugTraceResponseReady(t,n={}){const s=this.pendingReplyDebugTraces.find(o=>o.clientRequestId===t);!s||s.responseReadyAtMs!==null||(s.responseReadyAtMs=performance.now(),pe(`session_send.${s.mode}.client_response`,{sessionId:this.sessionId,clientRequestId:t,durationMs:Math.round(s.responseReadyAtMs-s.startedAtMs),...n}))}failPendingReplyDebugTrace(t,n){const s=this.pendingReplyDebugTraces.find(o=>o.clientRequestId===t);s&&(pe(`session_send.${s.mode}.client_error`,{sessionId:this.sessionId,clientRequestId:t,durationMs:Math.round(performance.now()-s.startedAtMs),error:n instanceof Error?n.message:String(n)}),this.removePendingReplyDebugTrace(s.clientRequestId))}completePendingReplyDebugTrace(t){const n=this.pendingReplyDebugTraces[0];if(!n)return;const s=performance.now();pe(`session_send.${n.mode}.first_assistant_message`,{sessionId:this.sessionId,clientRequestId:n.clientRequestId,durationMs:Math.round(s-n.startedAtMs),responseToAssistantMs:n.responseReadyAtMs===null?null:Math.round(s-n.responseReadyAtMs),messageId:t.message.messageId,kind:t.message.kind,contentLength:t.message.content.length}),this.removePendingReplyDebugTrace(n.clientRequestId)}completePendingReplyDebugTraceWithoutAssistant(t,n={}){const s=this.pendingReplyDebugTraces[0];s&&(pe(t,{sessionId:this.sessionId,clientRequestId:s.clientRequestId,durationMs:Math.round(performance.now()-s.startedAtMs),responseReady:s.responseReadyAtMs!==null,...n}),this.removePendingReplyDebugTrace(s.clientRequestId))}removePendingReplyDebugTrace(t){const n=this.pendingReplyDebugTraces.findIndex(s=>s.clientRequestId===t);n<0||this.pendingReplyDebugTraces.splice(n,1)}logCodexMergeDebug(t,n,s,o,c={}){const l=s.filter(ji);if(l.length===0)return;const u=hn(n),d=hn(o);Lo("session.messages.merge",{sessionId:this.sessionId,source:t,beforeCount:n.length,incomingCount:s.length,afterCount:o.length,incoming:l.slice(0,5).map(Ni),beforeDuplicateGroupCount:u.length,afterDuplicateGroupCount:d.length,afterDuplicateGroups:d.slice(0,3),...c})}}function lr(e){return{messageId:"id"in e?e.id:e.messageId,role:e.role,kind:e.kind??"text",sequence:e.sequence,timestamp:e.timestamp,rawRef:e.rawRef,contentPreview:Mi(e.content)}}function Ct(e){return e.map(t=>lr(t))}function Mi(e){const t=e.replace(/\s+/g," ").trim();return t.length>80?`${t.slice(0,80)}...`:t}function Fe(e,t){const[n,s]=a.useState(()=>t(e.getState()));return a.useEffect(()=>(s(t(e.getState())),e.subscribe(()=>{s(t(e.getState()))})),[t,e]),n}function cr(e){const t=e==null?void 0:e.messageCount;return typeof t=="number"&&Number.isFinite(t)?t:null}function xi(e,t){const n=_o(e),s=cr(t);return s===null?n:Math.max(n,s+1)}function yi(e,t){const n=Pi(t);if(!n)return!1;const s=Ci(e);return s?Fs(n.sequence,n.timestamp,s.sequence,s.timestamp)>=0:!0}function Pi(e){let t=null;for(const n of e)(!t||Fs(n.sequence,n.timestamp,t.sequence,t.timestamp)>0)&&(t=n);return t}function Ci(e){let t=null;for(const n of e)n.deliveryState==="sent"&&(!t||Fs(n.sequence,n.timestamp,t.sequence,t.timestamp)>0)&&(t=n);return t}function Fs(e,t,n,s){return e!==n?e-n:t.localeCompare(s)}function Ri(e,t){return t>0?"ready":"loading"}function ki(e,t){const n=cr(e);return n!==null?n>t:t>=kt}function pt(e){return e.olderCursor?!0:e.pagesLoaded>1?e.currentHasOlderMessages:ki(e.session,e.loadedMessageCount)}function Ye(e,t){return e&&{...e,runningState:t,activityState:dr(e,t,e.completedAt??null,Xe(t))}}function an(e,t){return!e||e.lastSeenAt&&e.lastSeenAt>=t?e:{...e,lastSeenAt:t,activityState:e.activityState==="completed_unread"?"idle":e.activityState}}function ln(e,t){return ur(e,{runningState:t.runningState,activityResolutionSource:t.activityResolutionSource,activityConfidence:t.activityConfidence,runId:t.runId,detail:t.detail,interruptSource:t.interruptSource,errorCode:t.errorCode,errorDetail:t.errorDetail,hasActiveRun:t.hasActiveRun,updatedAt:t.updatedAt,watchdogTriggeredAt:t.watchdogTriggeredAt})}function Ti(e,t){return ur(e,t)}function ur(e,t){if(!e)return e;const n=Ei(t.activityResolutionSource),s=Nt(t.runningState)?gs(e.completedAt,t.updatedAt):null,o=t.runningState==="completed"||t.runningState==="interrupted"||t.runningState==="failed"?gs(e.lastEventAt,t.updatedAt):t.updatedAt;return{...e,runningState:t.runningState,activitySource:n,activityResolutionSource:t.activityResolutionSource,activityConfidence:t.activityConfidence,runId:t.runId,lastEventAt:o,completedAt:s,lastErrorCode:t.runningState==="failed"?t.errorCode??e.lastErrorCode:null,lastErrorDetail:t.runningState==="failed"?t.errorDetail??t.detail??e.lastErrorDetail:null,watchdogTriggeredAt:t.watchdogTriggeredAt,updatedAt:gs(e.updatedAt,t.updatedAt)??t.updatedAt,activityState:dr(e,t.runningState,s,t.hasActiveRun)}}function dr(e,t,n,s){return s||Xe(t)?"running":n&&(!e.lastSeenAt||n>e.lastSeenAt)?"completed_unread":e.activityState==="running"||e.activityState==="completed_unread"?"idle":e.activityState??"idle"}function Xe(e){return e==="starting"||e==="running"||e==="reconnecting"}function Nt(e){return e==="completed"||e==="interrupted"||e==="failed"}function cn(e){if(e===null||e.provider==="opencode")return!0;const t=e.modelOptions??[];return t.length===0?!0:t.every(n=>n.usesProviderDefault===!0)}function un(e,t){return e==="session.backfill"?t??"idle":t==="completed"||t==="interrupted"||t==="failed"?t:"running"}function fs(e,t){return Nt(e)?e:t}function ps(e,t){return e.runningState==="failed"?{interruptSource:null,errorCode:e.errorCode,errorDetail:e.errorDetail??e.detail}:e.runningState==="interrupted"?{interruptSource:e.interruptSource??null,errorCode:null,errorDetail:e.detail}:e.runningState==="completed"?{interruptSource:null,errorCode:null,errorDetail:e.detail}:{interruptSource:t,errorCode:null,errorDetail:null}}function Ei(e){return e==="authoritative_runtime"||e==="authoritative_provider_event"?"runtime":e==="inferred_log"?"inferred":"none"}function ji(e){return e.provider==="codex"&&(e.role==="assistant"||e.role==="tool")}function Ai(e){return e.rawRef.startsWith("codex://")&&e.deliveryState==="sent"&&(e.role==="assistant"||e.role==="tool")}function Ni(e){var t;return{id:e.messageId,rawRef:e.rawRef,role:e.role,kind:e.kind??(e.role==="tool"?"tool_result":"text"),sequence:e.sequence,timestamp:e.timestamp,callId:((t=e.toolCall)==null?void 0:t.callId)??null,contentPreview:hr(e.content,e.kind??"text")}}function dn(e){var t;return{id:e.id,rawRef:e.rawRef,role:e.role,kind:e.kind,sequence:e.sequence,timestamp:e.timestamp,callId:((t=e.toolCall)==null?void 0:t.callId)??null,contentPreview:hr(e.content,e.kind)}}function hn(e){const t=new Map;for(const s of e){if(!Ai(s))continue;const o=Li(s),c=t.get(o);if(c){c.push(s);continue}t.set(o,[s])}const n=[];for(const[s,o]of t.entries()){const c=[...o].sort((u,d)=>u.sequence!==d.sequence?u.sequence-d.sequence:u.timestamp.localeCompare(d.timestamp));let l=[];for(const u of c){const d=l.at(-1)??null;if(!d||_i(d,u)){l.push(u);continue}l.length>1&&n.push({signature:s,messages:l.map(dn)}),l=[u]}l.length>1&&n.push({signature:s,messages:l.map(dn)})}return n}function Li(e){var o,c;if(e.kind==="tool_call"||e.kind==="tool_result")return[e.role,e.kind,((o=e.toolCall)==null?void 0:o.callId)??"",((c=e.toolCall)==null?void 0:c.name)??""].join(":");const t=Bn(e.content),n=Rs(t.text),s=t.inlineImages.map(l=>l.url).join("|");return[e.role,e.kind,n,s].join(":")}function _i(e,t){const n=mn(e.timestamp),s=mn(t.timestamp);return Math.abs(n-s)<=120*1e3&&Math.abs(e.sequence-t.sequence)<=8}function hr(e,t){return t==="text"||t==="thinking"?Rs(Bn(e).text).slice(0,160):Rs(e).slice(0,160)}function Rs(e){return e.replace(/\r\n/g,`
|
|
4
|
-
`).trimEnd()}function mn(e){const t=Date.parse(e);return Number.isFinite(t)?t:0}function gs(e,t){return e?t?e>=t?e:t:e:t??null}function fn(){var e,t;if(typeof((e=globalThis.crypto)==null?void 0:e.randomUUID)=="function")return globalThis.crypto.randomUUID();if(typeof((t=globalThis.crypto)==null?void 0:t.getRandomValues)=="function"){const n=new Uint8Array(16);globalThis.crypto.getRandomValues(n),n[6]=n[6]&15|64,n[8]=n[8]&63|128;const s=Array.from(n,o=>o.toString(16).padStart(2,"0")).join("");return`${s.slice(0,8)}-${s.slice(8,12)}-${s.slice(12,16)}-${s.slice(16,20)}-${s.slice(20)}`}return`fallback-${Date.now()}-${Math.random().toString(16).slice(2,10)}`}function mr(e,t){return t&&(!e||e.provider===t.provider)?t:null}function pn(e,t){const n=mr(e,t);return n?!!n.canSendMessage:e?On(e.provider):!1}function gn(e,t){const n=mr(e,t);return n?!(!n.supportsInterrupt||(e==null?void 0:e.provider)==="claude-code"&&e.activitySource==="inferred"):e?e.provider==="codex"||e.provider==="opencode"?!0:e.provider==="claude-code"&&e.activitySource!=="inferred":!1}function Di(e,t,n){return t===!0||n===!0?!0:e?e.activityState==="running"||e.runningState==="starting"||e.runningState==="running"||e.runningState==="reconnecting"||e.runningState==="stale"||e.runningState==="unknown":!1}function vs(e,t,n){return n?!0:e===!0&&Xe(t)}function bs(e,t,n,s){return s?!0:e===!0&&(n||Xe(t))}function ws(e){return`session-runtime.snapshot.${e}`}function Oi(e){return e.filter(t=>t.deliveryState==="sent").slice(-ar)}function Hi(e,t){const n=e.filter(s=>s.id!==t.id);return n.push(t),n.sort((s,o)=>s.orderIndex-o.orderIndex),n}function Ss(e,t){const n=e.filter(s=>s.id!==t.id);return n.push(t),n.sort((s,o)=>s.status!==o.status?s.status==="pending"?-1:1:o.createdAt.localeCompare(s.createdAt)),n}function $t(e,t){if(!e)return t;if(!t||vn(e,t)||bn(e,t))return e;if(vn(t,e)||bn(t,e))return t;const n=Date.parse(e.updatedAt||e.lastMessageAt||e.createdAt),s=Date.parse(t.updatedAt||t.lastMessageAt||t.createdAt);return!Number.isFinite(n)||!Number.isFinite(s)?t:n>=s?e:t}function vn(e,t){return wn(e)&&!wn(t)&&e.lastEventAt===t.lastEventAt&&e.lastMessageAt===t.lastMessageAt&&e.completedAt===t.completedAt}function bn(e,t){if(!Sn(e)||Sn(t))return!1;const n=e.completedAt??e.lastEventAt??null;return n?(!t.lastEventAt||t.lastEventAt<=n)&&(!t.completedAt||t.completedAt<=n):!1}function wn(e){return e.activityState==="running"||Xe(e.runningState)}function Sn(e){return Nt(e.runningState)}const Fi="workbench:focus-composer",Bi=15e3,Wi=320;function fr(){typeof window>"u"||window.dispatchEvent(new CustomEvent(Fi))}function pr(e){var ee,se,we;const t=a.useRef(null),n=a.useRef(null),[s,o]=a.useState(!1),[c,l]=a.useState(null),[u,d]=a.useState(null),[f,C]=a.useState(null),[x,A]=a.useState(null),w=rt(),{showToast:b}=w,v=w.dismissToast??(()=>{}),E=ho(P=>P.notificationPreferences.notifyOnPermissionRequest),y=_t(),I=As(),S=a.useRef(null),B=a.useRef(null),D=a.useRef(null),j=a.useRef(((ee=e.externalSession)==null?void 0:ee.runningState)??null),N=a.useRef(new Set);(!t.current||n.current!==e.sessionId)&&((se=t.current)==null||se.destroy(),t.current=new Ii(e.sessionId,{initialSession:e.externalSession,bootstrapMessages:e.bootstrapMessages??[],onSeen:e.onSeen}),n.current=e.sessionId);const m=t.current,p=Fe(m,P=>P.session),L=Fe(m,P=>P.capabilities),G=Fe(m,P=>P.runtimeHasActiveRun),Y=Fe(m,P=>P.runtimeCanInterrupt),K=Fe(m,P=>P.messages),te=Fe(m,P=>P.permissionRequests),O=Fe(m,P=>P.queuedMessages),ge=Fe(m,P=>P.contextUsage),H=Fe(m,P=>P.historyState),g=Fe(m,P=>P.errorCode),V=Fe(m,P=>P.errorDetail),W=Fe(m,P=>P.interruptSource),Q=Fe(m,P=>P.loadingOlderMessages),oe=Fe(m,P=>P.hasOlderMessages),de=Fe(m,P=>P.connectionState),ce=Hn(p),me=s&&!x,k=ce||G===!0||me?!0:G,$=Y===!0||me?!0:Y,z=ce||me,q=(p==null?void 0:p.provider)===(L==null?void 0:L.provider)&&mo(L),ie=O.some(P=>P.status==="queued"||P.status==="dispatching"),F=p??e.externalSession??null,ne=e.enableForkTimelineSanitizer===!1?K:zi(F,K),Ie=Vi({sessionId:e.sessionId,provider:(p==null?void 0:p.provider)??null,runningState:(p==null?void 0:p.runningState)??null,activityState:(p==null?void 0:p.activityState)??null,runtimeHasActiveRun:G,messages:ne}),je=e.enableThinkingPlaceholder===!1||!Ie?null:i("conversation.runtimeThinkingPlaceholder",{provider:i("conversation.providerCodex")});pi({sending:s,setSending:o,session:p,runtimeHasActiveRun:G,runtimeCanInterrupt:Y}),a.useEffect(()=>{m.applyNavigationSession(e.externalSession)},[e.externalSession,m]),a.useEffect(()=>(m.initialize(),()=>{m.destroy(),t.current===m&&(t.current=null)}),[m]),a.useEffect(()=>{A(null),N.current.clear()},[e.sessionId]),a.useEffect(()=>{if(e.onBindSessionWorkspace)return e.onBindSessionWorkspace(e.sessionId,(p==null?void 0:p.workspaceId)??null),()=>{var P;(P=e.onBindSessionWorkspace)==null||P.call(e,e.sessionId,null)}},[e.onBindSessionWorkspace,e.sessionId,p==null?void 0:p.workspaceId]),a.useEffect(()=>{if(e.enableCompletionHaptics===!1)return;const P=j.current,T=(p==null?void 0:p.runningState)??null;(P==="starting"||P==="running"||P==="reconnecting")&&T==="completed"&&I.trigger("success"),j.current=T},[I,e.enableCompletionHaptics,p==null?void 0:p.runningState]),a.useEffect(()=>{var Te;if((e.permissionRequestNotificationMode??"always")==="current_only"&&!e.isCurrent)return;const T=te.filter(xe=>xe.status==="pending"),ve=(p==null?void 0:p.workspaceId)??((Te=e.externalSession)==null?void 0:Te.workspaceId)??null;for(const xe of T)N.current.has(xe.id)||(N.current.add(xe.id),E&&(b({id:`${e.permissionToastIdPrefix??"permission-request"}-${xe.id}`,title:i("conversation.permissionRequestToastTitle"),description:xe.title,tone:"warning",durationMs:8e3,action:ve&&e.onNavigateToSession?{label:i("shell.contextOpenSession"),onClick:()=>{var We;(We=e.onNavigateToSession)==null||We.call(e,ve,e.sessionId)}}:void 0}),y.bridge.showNotification(i("conversation.permissionRequestToastTitle"),xe.title)))},[(we=e.externalSession)==null?void 0:we.workspaceId,e.isCurrent,e.onNavigateToSession,e.permissionRequestNotificationMode,e.permissionToastIdPrefix,e.sessionId,E,te,y.bridge,p==null?void 0:p.workspaceId,b]),a.useEffect(()=>{if(e.enableRuntimeErrorHandling!==!1)return()=>{D.current!==null&&(window.clearTimeout(D.current),D.current=null)}},[e.enableRuntimeErrorHandling]),a.useEffect(()=>{var P;e.enableRuntimeErrorHandling!==!1&&(g!=="SESSION_NOT_FOUND"&&g!=="WORKSPACE_NOT_FOUND"||(v("conversation-runtime-error"),(P=e.onResolveMissingSession)==null||P.call(e)))},[v,e.enableRuntimeErrorHandling,e.onResolveMissingSession,g]),a.useEffect(()=>{if(e.enableRuntimeErrorHandling===!1)return;if(g==="SESSION_NOT_FOUND"||g==="WORKSPACE_NOT_FOUND"){D.current!==null&&(window.clearTimeout(D.current),D.current=null),B.current=null,S.current=null,v("conversation-runtime-error");return}if(!g||!V){D.current!==null&&(window.clearTimeout(D.current),D.current=null),B.current=null,S.current=null,v("conversation-runtime-error");return}const P=`${g}:${V}`;if(!(S.current===P||B.current===P)){if(D.current!==null&&(window.clearTimeout(D.current),D.current=null),Ui((p==null?void 0:p.provider)??null,g,V)){B.current=P,D.current=window.setTimeout(()=>{B.current=null,D.current=null,S.current=P,b({id:"conversation-runtime-error",title:i("conversation.runtimeErrorTitle"),description:V,tone:"error",durationMs:null})},Bi);return}B.current=null,S.current=P,b({id:"conversation-runtime-error",title:i("conversation.runtimeErrorTitle"),description:V,tone:"error",durationMs:null})}},[v,e.enableRuntimeErrorHandling,g,V,p==null?void 0:p.provider,b]);const _=a.useCallback(async(P,T)=>{var xe,We,re,Ae,Z,ze,ue;const ve=x;if(!ve){await m.sendMessage(P,{model:T==null?void 0:T.model,reasoningLevel:T==null?void 0:T.reasoningLevel,providerConfigMode:T==null?void 0:T.providerConfigMode,providerPresetId:(T==null?void 0:T.providerPresetId)??null,attachments:T==null?void 0:T.attachments,attachmentMeta:T==null?void 0:T.attachmentMeta}),(xe=e.onRequestNavigationRefresh)==null||xe.call(e);return}let Te=null;try{Te=await Ln(e.sessionId,{sourceType:"message",sourceMessageId:ve.sourceMessageId,sourceMessageSnapshot:ve.sourceMessageSnapshot,strategy:"auto",targetProvider:ve.targetProvider,providerConfigMode:ve.targetProviderConfigMode??(T==null?void 0:T.providerConfigMode),providerPresetId:ve.targetProviderPresetId??(T==null?void 0:T.providerPresetId)??null}),(We=e.onUpsertNavigationSession)==null||We.call(e,Te),await js(Te.sessionId,{content:P,clientRequestId:qi(),model:ve.targetModel,reasoningLevel:(T==null?void 0:T.reasoningLevel)??null,permissionMode:at(),attachments:(T==null?void 0:T.attachments)??[],providerConfigMode:ve.targetProviderConfigMode??(T==null?void 0:T.providerConfigMode),providerPresetId:ve.targetProviderPresetId??(T==null?void 0:T.providerPresetId)??null}),A(null),(re=e.onRequestNavigationRefresh)==null||re.call(e),(Ae=e.onNavigateToSession)==null||Ae.call(e,Te.workspaceId,Te.sessionId),(Z=e.onForkSuccess)==null||Z.call(e,Te)}catch(Ne){throw Te&&((ze=e.onUpsertNavigationSession)==null||ze.call(e,Te),(ue=e.onRequestNavigationRefresh)==null||ue.call(e)),Ne}},[x,e,m]),U=a.useCallback(async(P,T)=>{o(!0);try{await _(P,T)}finally{o(!1)}},[_]),he=a.useCallback(async(P,T)=>{o(!0);try{x?await _(P,T):await m.enqueueMessage(P,{model:T==null?void 0:T.model,reasoningLevel:T==null?void 0:T.reasoningLevel,providerConfigMode:T==null?void 0:T.providerConfigMode,providerPresetId:(T==null?void 0:T.providerPresetId)??null,attachments:T==null?void 0:T.attachments,attachmentMeta:T==null?void 0:T.attachmentMeta})}finally{o(!1)}},[x,_,m]),Me=a.useCallback(async(P,T)=>{l(P);try{await m.replyPermissionRequest(P,T)}catch(ve){b({title:i("conversation.permissionRequestReplyFailed"),description:ve instanceof Error?ve.message:void 0,tone:"error"})}finally{l(null)}},[b,m]),fe=a.useCallback(async P=>{d(P);try{await m.deleteQueuedMessage(P)}finally{d(null)}},[m]),Re=a.useCallback(async P=>{var T;C(P);try{await m.steerQueuedMessage(P),(T=e.onRequestNavigationRefresh)==null||T.call(e)}finally{C(null)}},[e.onRequestNavigationRefresh,m]),De=a.useCallback(async()=>{var P;await m.interrupt(),(P=e.onRequestNavigationRefresh)==null||P.call(e)},[e.onRequestNavigationRefresh,m]);return{session:F,capabilities:L,runtimeHasActiveRun:G,runtimeCanInterrupt:Y,messages:K,timelineMessages:ne,permissionRequests:te,queuedMessages:O,contextUsage:ge,historyState:H,runtimeErrorCode:g,runtimeErrorDetail:V,runtimeInterruptSource:W,loadingOlderMessages:Q,hasOlderMessages:oe,connectionState:de,sending:s,replyingPermissionRequestId:c,deletingQueueItemId:u,steeringQueueItemId:f,forkDraft:x,setForkDraft:A,composerHasActiveRun:k,composerCanInterrupt:$,composerIsRunning:z,canSteerQueuedMessage:q,hasPendingQueuedMessages:ie,runtimeThinkingPlaceholder:je,reconnect:m.reconnect.bind(m),loadOlderMessages:m.loadOlderMessages.bind(m),retryMessage:m.retryMessage.bind(m),send:U,queue:he,interrupt:De,replyPermissionRequest:Me,deleteQueuedMessage:fe,steerQueuedMessage:Re}}function qi(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}function Ui(e,t,n){return e!=="opencode"?!1:t==="OPENCODE_REQUEST_TIMEOUT"||t==="PROVIDER_RUNTIME_TIMEOUT"||/\bSERVER_TIMEOUT\b/i.test(n)||/timeout/i.test(n)||/超时/.test(n)}function Vi(e){const t=$i(e),[n,s]=a.useState(t==="show"),o=a.useRef(null);return a.useEffect(()=>{o.current!==null&&(window.clearTimeout(o.current),o.current=null),s(t==="show")},[e.sessionId]),a.useEffect(()=>{if(t==="show"){o.current!==null&&(window.clearTimeout(o.current),o.current=null),s(!0);return}if(t==="hide_immediately"){o.current!==null&&(window.clearTimeout(o.current),o.current=null),s(!1);return}!n||o.current!==null||(o.current=window.setTimeout(()=>{o.current=null,s(!1)},Wi))},[t,n]),a.useEffect(()=>()=>{o.current!==null&&window.clearTimeout(o.current)},[]),n}function $i(e){const{provider:t,runningState:n,activityState:s,runtimeHasActiveRun:o,messages:c}=e;if(t!=="codex")return"hide_immediately";const l=Yi(c);return l<0||Xi(c,l)?"hide_immediately":Gi(n,s,o)?"show":"hide_deferred"}function Gi(e,t,n){return n===!0||t==="running"||e==="starting"||e==="running"||e==="reconnecting"}function Xi(e,t){return e.slice(t+1).some(n=>n.role==="assistant"&&(n.kind==="text"||n.kind==="thinking"))}function Yi(e){let t=-1;for(let n=e.length-1;n>=0;n-=1){const s=e[n];if(s.role==="user"&&s.kind==="text"){t=n;break}}return t}function zi(e,t){var o;if(!e||e.forkSourceType!=="message"||typeof e.inheritedPrefixMessageCount!="number"||e.inheritedPrefixMessageCount<0)return t;const n=((o=e.createdAt)==null?void 0:o.trim())||"";if(n.length===0)return t;const s=Math.max(0,e.inheritedPrefixMessageCount);return t.filter(c=>c.sequence<=s?!0:c.timestamp>=n)}const Qi=1.5,Ki=24,Zi=72,Ji=296,ea=16,In={2:496,3:408,4:344};function gr(e){return In[e]??In[4]}function ta({memberCount:e,currentWidth:t,monitorWidth:n}){if(e<2||t<=0||n<=0)return t;const s=Ji,o=Math.max(0,e-1)*ea,c=Math.max(0,(t-s-o)/e),l=gr(e);if(c>=l)return t;const u=s+o+e*l,d=Math.min(t*Qi,Math.max(t,n-Zi)),f=Math.min(Math.max(t,u),d);return f<=t+Ki?t:f}const sa=240,Mn=920,xn=760,Bs=360,Ws=320,Be=16,yn=428,na=404,et=12;function jt(e,t){if(typeof window>"u")return e;const n=Math.max(0,window.innerWidth-Be*2),s=Math.max(0,window.innerHeight-Be*2),o=Math.min((t==null?void 0:t.minWidth)??Bs,n),c=Math.min((t==null?void 0:t.minHeight)??Ws,s),l=Math.max(o,n),u=Math.max(c,s),d=Math.min(Math.max(e.width,o),l),f=Math.min(Math.max(e.height,c),u),C=Math.min(Math.max(e.x,Be),Math.max(Be,window.innerWidth-d-Be)),x=Math.min(Math.max(e.y,Be),Math.max(Be,window.innerHeight-f-Be));return{x:C,y:x,width:d,height:f}}function ra(e){if(typeof window>"u")return{x:Be,y:Be,width:Mn,height:xn};const t=Math.min(Mn,Math.max(Bs,window.innerWidth-Be*2)),n=Math.min(xn,Math.max(Ws,window.innerHeight-Be*2));return jt({x:((e==null?void 0:e.right)??window.innerWidth-Be)-t+28,y:Math.max(((e==null?void 0:e.bottom)??48)+8,Be),width:t,height:n})}function oa(e){return!e||e.width<=0||e.height<=0?null:jt({x:e.left,y:e.top,width:e.width,height:e.height},{minWidth:Math.min(Bs,e.width),minHeight:Math.min(Ws,e.height)})}function ia(e){if(typeof window>"u")return{x:et,y:et,width:yn};const t=Math.min(yn,Math.max(na,window.innerWidth-et*2));return{x:Math.min(Math.max(((e==null?void 0:e.right)??window.innerWidth-et)-t,et),Math.max(et,window.innerWidth-t-et)),y:Math.max(et,((e==null?void 0:e.bottom)??et)+8),width:t}}function aa({groupId:e,currentSessionId:t}){var de,ce,me;const n=ct(),s=_t(),o=Wn(s),{showToast:c}=rt(),{navigationGroups:l,requestNavigationRefresh:u}=St(),d=a.useMemo(()=>ts(l),[l]),f=a.useMemo(()=>new Map(d.map(k=>[k.session.sessionId,k])),[d]),C=a.useMemo(()=>ss(d),[d]),x=a.useMemo(()=>{const k=new Map,$=z=>{for(const q of z)k.set(q.item.session.sessionId,q),$(ns(q))};return $(C),k},[C]),A=a.useMemo(()=>Ns(l),[l]),[w,b]=a.useState(null),[v,E]=a.useState(!0),[y,I]=a.useState(null),[S,B]=a.useState(null),[D,j]=a.useState(null),[N,m]=a.useState(null),[p,L]=a.useState(null),[G,Y]=a.useState(!1),K=a.useRef(null),te=a.useRef(null);a.useEffect(()=>{let k=!1;async function $(){E(!0),I(null);try{const z=await fo(e);if(k)return;b(z)}catch(z){if(k)return;I(z instanceof Error?z.message:i("shell.parallelGroupLoadFailed"))}finally{k||E(!1)}}return $(),()=>{k=!0}},[e]),a.useEffect(()=>{const k=Oo(e);k&&g(k)},[e]),a.useEffect(()=>()=>{te.current!==null&&window.clearTimeout(te.current)},[]);const O=a.useMemo(()=>w?w.members.slice().sort((k,$)=>k.member.ordinal-$.member.ordinal).map(k=>{const $=f.get(k.session.sessionId),z=($==null?void 0:$.session)??k.session;return{session:z,workspaceId:($==null?void 0:$.workspace.id)??zt(z,k.sessionIsolatedWorkspace),ordinal:k.member.ordinal,memberPrompt:k.member.memberPrompt,model:k.member.model,sessionIsolatedWorkspace:k.sessionIsolatedWorkspace,subagentTree:ga(z.sessionId,w.group.id,x)}}):[],[w,f,x]);a.useEffect(()=>{if(!s.isDesktop||s.ui.osFamily!=="macos"&&s.ui.osFamily!=="windows"||O.length<2)return;const k=`${e}:${O.length}`;if(K.current===k)return;K.current=k;let $=!1;async function z(){try{const q=await Us(()=>import("./window-BVUB8gMK.js").then(Re=>Re.w),__vite__mapDeps([0,1])),ie=await Us(()=>import("./window-BVUB8gMK.js").then(Re=>Re.d),__vite__mapDeps([0,1])),F=q.getCurrentWindow(),ne=await F.innerSize(),Ie=await F.scaleFactor(),je=await q.currentMonitor();if($||Ie<=0)return;const _=ne.width/Ie,U=ne.height/Ie,he=je?je.workArea.size.width/je.scaleFactor:_*1.5,Me=ta({memberCount:O.length,currentWidth:_,monitorWidth:he});if(Me<=_+24)return;const fe=10;await new Promise(Re=>window.setTimeout(Re,56));for(let Re=1;Re<=fe;Re+=1){if($)return;const De=Re/fe,ee=1-Math.pow(1-De,3),se=_+(Me-_)*ee;await F.setSize(new ie.LogicalSize(se,U)),await new Promise(we=>window.setTimeout(we,sa/fe))}}catch{return}}return z(),()=>{$=!0}},[e,O.length,s.isDesktop,s.ui.osFamily]);async function ge(k){j(k);try{const $=await go(k);await u(),b(z=>z&&{...z,members:z.members.map(q=>{var ie;return((ie=q.sessionIsolatedWorkspace)==null?void 0:ie.id)===k?{...q,sessionIsolatedWorkspace:{...q.sessionIsolatedWorkspace,workspaceId:$.workspace.id,lifecycleStatus:"promoted",promotedAt:$.record.promotedAt}}:q})}),c({title:i("shell.parallelWorkspacePromotedBadge"),tone:"success"})}catch($){c({title:$ instanceof Error?$.message:i("shell.parallelGroupLoadFailed"),tone:"error"})}finally{j(null)}}async function H(k){if(N)return;const $=k.trim();if(!$)return;const z=O.find(ie=>ie.session.sessionId!==$)??null,q=(w==null?void 0:w.group.workspaceId)??(z==null?void 0:z.workspaceId)??null;m($);try{await po($),Ps($,null),B(ie=>ie===$?null:ie),b(ie=>ie&&{...ie,members:ie.members.filter(F=>F.session.sessionId!==$)}),await u(),t===$&&(z?n(Ue(z.workspaceId,z.session.sessionId)):q&&n(Tt(q))),c({title:i("shell.deleteSessionSuccess"),tone:"success"})}catch(ie){c({title:ie instanceof Error?ie.message:i("shell.deleteSessionFailed"),tone:"error"})}finally{m(null)}}function g(k){L(k),te.current!==null&&window.clearTimeout(te.current),te.current=window.setTimeout(()=>{L(null),te.current=null},k.totalDurationMs)}if(v&&!w)return r.jsx("main",{className:"workbench-page conversation-page-shell parallel-conversation-page",children:r.jsx("section",{className:"parallel-conversation-empty-state",children:r.jsx("strong",{children:i("shell.parallelCreateSubmitting")})})});if(y&&!w)return r.jsx("main",{className:"workbench-page conversation-page-shell parallel-conversation-page",children:r.jsxs("section",{className:"parallel-conversation-empty-state error",children:[r.jsx("strong",{children:i("shell.parallelGroupLoadFailed")}),r.jsx("p",{children:y})]})});if(O.length===0)return r.jsx("main",{className:"workbench-page conversation-page-shell parallel-conversation-page",children:r.jsx("section",{className:"parallel-conversation-empty-state",children:r.jsx("strong",{children:i("shell.parallelGroupEmpty")})})});const V=((de=A[(w==null?void 0:w.group.workspaceId)??""])==null?void 0:de.displayName)??(w==null?void 0:w.group.workspaceId)??i("common.unknown"),W=O.find(k=>k.session.sessionId===(w==null?void 0:w.group.anchorSessionId))??O[0]??null,Q=O.length<4,oe={"--parallel-pane-min-width":`${gr(O.length)}px`,...p?{"--parallel-pane-enter-delay":`${p.paneEnterDelayMs}ms`,"--parallel-pane-enter-duration":`${p.paneEnterDurationMs}ms`,"--parallel-grid-reveal-delay":`${p.gridRevealDelayMs}ms`,"--parallel-grid-reveal-duration":`${p.gridRevealDurationMs}ms`,"--parallel-shell-expand-duration":`${p.shellExpandDurationMs}ms`,"--parallel-pane-stagger-delay":`${p.paneStaggerMs}ms`}:{}};return r.jsxs("main",{className:"workbench-page conversation-page-shell parallel-conversation-page","data-parallel-count":O.length,"data-parallel-entering":p?"true":void 0,style:oe,children:[r.jsx("header",{className:"parallel-conversation-group-header","data-window-drag-handle":"parallel-conversation-group-titlebar","data-tauri-drag-region":o,children:r.jsxs("div",{className:"parallel-conversation-group-titlebar","data-tauri-drag-region":o,children:[r.jsxs("div",{className:"parallel-conversation-group-titlemain","data-tauri-drag-region":o,children:[r.jsx("span",{className:"session-parallel-badge",children:i("shell.parallelGroupBadge")}),r.jsx("strong",{"data-tauri-drag-region":o,children:((ce=w==null?void 0:w.group.sharedPrompt)==null?void 0:ce.trim())||i("common.unknown")})]}),r.jsx("button",{type:"button",className:"secondary-button parallel-conversation-group-add-button","aria-label":i("shell.parallelAppendAction"),title:i("shell.parallelAppendAction"),"data-window-drag":"ignore",disabled:!Q,onClick:()=>{Q&&Y(!0)},children:r.jsx("span",{"aria-hidden":"true",children:"+"})})]})}),r.jsx("div",{className:"parallel-conversation-grid",children:O.map(k=>{const $=A[k.workspaceId]??Ls({id:k.workspaceId,name:k.session.workspaceId,path:k.session.workspaceId,repoRoot:k.session.workspaceId});return r.jsx(la,{entry:k,isCurrent:k.session.sessionId===t||Dt(k.subagentTree,t),routeCurrentSessionId:t,workspaceContext:$,infoOpen:S===k.session.sessionId,promotingWorkspaceId:D,onCloseInfo:()=>{B(null)},onToggleInfo:()=>{B(z=>z===k.session.sessionId?null:k.session.sessionId)},onPromoteWorkspace:ge,onRemoveSession:H,removingSessionId:N},k.session.sessionId)})}),r.jsx(ys,{open:G,source:w?{kind:"group",groupId:w.group.id,workspaceId:w.group.workspaceId,workspaceName:V,sharedPrompt:((me=w.group.sharedPrompt)==null?void 0:me.trim())||"",currentMemberCount:O.length,defaultProvider:(W==null?void 0:W.session.provider)??"codex"}:null,onClose:()=>Y(!1),onCreated:async k=>{b(k),Y(!1),g(Do("append")),await u(),c({title:i("shell.parallelAppendSucceeded"),tone:"success"})}})]})}function la({entry:e,isCurrent:t,routeCurrentSessionId:n,workspaceContext:s,infoOpen:o,onCloseInfo:c,onToggleInfo:l,onPromoteWorkspace:u,promotingWorkspaceId:d,onRemoveSession:f,removingSessionId:C}){var mt,Ft,Mt,ft,xt,Bt,Wt;const x=ct(),A=_t(),{showToast:w}=rt(),{navigationGroups:b,requestNavigationRefresh:v,setSessionWorkspace:E,upsertNavigationSession:y,markNavigationSessionSeen:I,selectWorkspace:S}=St(),B=e.session.sessionId,[D,j]=a.useState(()=>va(e,n)),N=a.useMemo(()=>new Map(ts(b).map(R=>[R.session.sessionId,R])),[b]),m=D===B?e.session:((mt=N.get(D))==null?void 0:mt.session)??br(e.subagentTree,D)??e.session,p=D===B?e.workspaceId:((Ft=N.get(D))==null?void 0:Ft.workspace.id)??wr(e.subagentTree,D)??e.workspaceId,L=m.sessionId,[G,Y]=a.useState(!1),[K,te]=a.useState("files"),[O,ge]=a.useState(!1),[H,g]=a.useState(null),[V,W]=a.useState(null),Q=a.useRef(null),oe=a.useRef(null),de=a.useRef(null),ce=a.useRef(null),me=a.useRef(null),k=a.useRef(null),[$,z]=a.useState(()=>Zs(B)),{session:q,capabilities:ie,messages:F,timelineMessages:ne,permissionRequests:Ie,queuedMessages:je,contextUsage:_,historyState:U,runtimeInterruptSource:he,loadingOlderMessages:Me,hasOlderMessages:fe,connectionState:Re,sending:De,replyingPermissionRequestId:ee,deletingQueueItemId:se,steeringQueueItemId:we,forkDraft:P,setForkDraft:T,composerHasActiveRun:ve,composerCanInterrupt:Te,composerIsRunning:xe,canSteerQueuedMessage:We,hasPendingQueuedMessages:re,runtimeThinkingPlaceholder:Ae,reconnect:Z,loadOlderMessages:ze,retryMessage:ue,send:Ne,queue:Oe,interrupt:ut,replyPermissionRequest:st,deleteQueuedMessage:ot,steerQueuedMessage:dt}=pr({sessionId:L,externalSession:m,onSeen:(R,le)=>{I(R,le)},onRequestNavigationRefresh:v,onUpsertNavigationSession:y,onNavigateToSession:(R,le)=>{S(R),x(Ue(R,le))},onBindSessionWorkspace:D===B?E:void 0,onResolveMissingSession:()=>{v()},permissionRequestNotificationMode:"current_only",permissionToastIdPrefix:"parallel-permission-request",isCurrent:t,enableRuntimeErrorHandling:!0,enableCompletionHaptics:!1,enableThinkingPlaceholder:!0,enableForkTimelineSanitizer:!0}),Qe=Ho((q==null?void 0:q.parallelGroup)??e.session.parallelGroup),Ke=Fo({groupId:((Mt=(q==null?void 0:q.parallelGroup)??e.session.parallelGroup)==null?void 0:Mt.groupId)??"parallel-group",ordinal:e.ordinal,overrideColor:$}),ht=Bo((q==null?void 0:q.parallelGroup)??e.session.parallelGroup),ye=(q==null?void 0:q.sessionIsolatedWorkspace)??e.sessionIsolatedWorkspace,nt=Wo(ye),Ze=((ft=_==null?void 0:_.modelId)==null?void 0:ft.trim())||((xt=e.model)==null?void 0:xt.trim())||i("shell.parallelPaneModelFallback"),Je=((Bt=e.memberPrompt)==null?void 0:Bt.trim())||i("shell.parallelPanePromptFallback"),Pe=p,h=qn(q??m,ye),X=h===Pe?(s==null?void 0:s.displayName)??Pe:nt??Je,J=C===L;async function Se(R){await Ne(Object.entries(R.answers).map(([,le])=>le.filter(Boolean).join(" / ")).filter(Boolean).join(`
|
|
5
|
-
`))}const Le=o&&V?{...vt(s)??{},...Qe??{},...Ke,left:`${V.x}px`,top:`${V.y}px`,width:`${V.width}px`}:void 0,He=G&&H?{...vt(s)??{},...Qe??{},...Ke,left:`${H.x}px`,top:`${H.y}px`,width:`${H.width}px`,height:`${H.height}px`}:void 0;a.useEffect(()=>{z(Zs(B)),Y(!1),ge(!1),g(null),W(null),te("files")},[B]),a.useEffect(()=>{if(Dt(e.subagentTree,n)){j(n);return}if(n===B){j(B);return}j(R=>ba(e,R)?R:B)},[e,B,n]),a.useEffect(()=>{if(!o)return;const R=le=>{var qe,$e,Ge;const Ve=le.target;Ve instanceof HTMLElement&&((qe=oe.current)!=null&&qe.contains(Ve)||($e=ce.current)!=null&&$e.contains(Ve)||(Ge=me.current)!=null&&Ge.contains(Ve)||c())};return window.addEventListener("pointerdown",R),()=>{window.removeEventListener("pointerdown",R)}},[o,c]),a.useEffect(()=>{if(!o){W(null);return}const R=()=>{var le;W(ia(((le=de.current)==null?void 0:le.getBoundingClientRect())??null))};return R(),window.addEventListener("resize",R),window.addEventListener("scroll",R,!0),()=>{window.removeEventListener("resize",R),window.removeEventListener("scroll",R,!0)}},[o]),a.useEffect(()=>{if(!G)return;const R=()=>{g(le=>le&&jt(le))};return window.addEventListener("resize",R),()=>{window.removeEventListener("resize",R)}},[G]);async function Ee(){if(h===Pe&&S(Pe),A.isDesktop&&A.bridge.supported){const R=await Go(A,{workspaceId:h,workspaceName:X,focusOwner:"terminal-page"});R.ok||w({title:R.detail??i("terminalManager.openExternalFailed"),tone:"error"});return}x(Xo(h))}async function _e(){if(!(!A.isDesktop||!A.bridge.supported)){if(K==="files"){const R=await Uo(A,{workspaceId:h,workspaceName:X,sessionId:L,focusOwner:"file-context-panel"});R.ok||w({title:R.detail??i("conversation.filePanelOpenExternalFailed"),tone:"error"});return}if(K==="git"){const R=await Vo(A,{workspaceId:h,workspaceName:X,focusOwner:"git-sidebar"});R.ok||w({title:R.detail??i("git.openExternalFailed"),tone:"error"});return}if(K==="processes"){const R=await $o(A,{workspaceId:h,workspaceName:X,focusOwner:"terminal-manager-panel"});R.ok||w({title:R.detail??i("terminalManager.openExternalFailed"),tone:"error"});return}await Ee()}}function Ce(){var R,le;Y(!0),g(oa(((R=Q.current)==null?void 0:R.getBoundingClientRect())??null)??ra(((le=k.current)==null?void 0:le.getBoundingClientRect())??null))}function it(R){if(R.button!==0||!H)return;R.preventDefault();const le=R.clientX,Ve=R.clientY,qe=H,$e=M=>{g(jt({...qe,x:qe.x+(M.clientX-le),y:qe.y+(M.clientY-Ve)}))},Ge=()=>{window.removeEventListener("pointermove",$e),window.removeEventListener("pointerup",Ge)};window.addEventListener("pointermove",$e),window.addEventListener("pointerup",Ge)}function os(R){if(R.button!==0||!H)return;R.preventDefault(),R.stopPropagation();const le=R.clientX,Ve=R.clientY,qe=H,$e=M=>{g(jt({...qe,width:qe.width+(M.clientX-le),height:qe.height+(M.clientY-Ve)}))},Ge=()=>{window.removeEventListener("pointermove",$e),window.removeEventListener("pointerup",Ge)};window.addEventListener("pointermove",$e),window.addEventListener("pointerup",Ge)}const Ot=G&&typeof document<"u"?wt.createPortal(r.jsxs("div",{ref:me,className:"parallel-pane-tools-popover","data-parallel-pane-layer":L,"data-pinned":O?"true":void 0,"data-workspace-tone":(s==null?void 0:s.tone)??"root",style:He,children:[r.jsxs("div",{className:"parallel-pane-tools-toolbar",children:[r.jsxs("div",{className:"parallel-pane-tools-drag-handle",onPointerDown:it,children:[r.jsx("span",{className:"parallel-pane-tools-drag-dots","aria-hidden":"true",children:r.jsx(da,{})}),r.jsx("span",{children:i("shell.parallelPaneToolsAction")})]}),r.jsx("div",{className:"parallel-pane-tools-tabs",role:"tablist","aria-label":i("shell.parallelPaneToolsAction"),children:["files","git","processes","terminals"].map(R=>r.jsx("button",{type:"button",role:"tab","aria-selected":K===R,className:"parallel-pane-tools-tab",onClick:()=>{te(R)},children:R==="files"?i("shell.filesEntry"):R==="git"?i("shell.gitEntry"):R==="processes"?i("shell.parallelPaneProcessesEntry"):i("shell.terminalsEntry")},R))}),r.jsxs("div",{className:"parallel-pane-tools-actions",children:[r.jsx("button",{type:"button",className:`conversation-header-ai-button${O?" active":""}`,"aria-label":i("shell.parallelPanePinAction"),title:i("shell.parallelPanePinAction"),"aria-pressed":O,onClick:()=>{ge(R=>!R)},children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(ha,{})})}),A.isDesktop&&A.bridge.supported?r.jsx("button",{type:"button",className:"conversation-header-ai-button","aria-label":i("shell.parallelPaneDetachAction"),title:i("shell.parallelPaneDetachAction"),onClick:()=>{_e()},children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(ma,{})})}):null,r.jsx("button",{type:"button",className:"conversation-header-ai-button","aria-label":i("common.close"),title:i("common.close"),onClick:()=>{Y(!1)},children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(fa,{})})})]})]}),r.jsx("div",{className:"parallel-pane-tools-body","data-panel":K,children:K==="files"?r.jsx(Kn,{className:"parallel-pane-tools-surface",hideHeading:!0,sessionId:L,workspaceId:h}):K==="git"?r.jsx(Zn,{className:"parallel-pane-tools-surface",panelActive:!0,workspaceId:h}):K==="processes"?r.jsx(Jn,{className:"parallel-pane-tools-surface parallel-pane-tools-process-panel",currentWorkspaceId:h,navigationGroups:b}):r.jsx(ni,{embeddedMode:!0,externalWindowWorkspaceId:h,workbenchShellOverrides:{navigationGroups:b,currentWorkspaceId:h,selectWorkspace:S}})}),r.jsx("button",{type:"button",className:"parallel-pane-tools-resize-handle","aria-label":i("shell.parallelPaneResizeAction"),title:i("shell.parallelPaneResizeAction"),onPointerDown:os,children:r.jsx("span",{"aria-hidden":"true",children:r.jsx(pa,{})})})]}),document.body):null,Ht=o&&typeof document<"u"?wt.createPortal(r.jsxs("div",{ref:ce,className:"parallel-pane-info-popover","data-parallel-pane-layer":L,"data-workspace-tone":(s==null?void 0:s.tone)??"root",style:Le,children:[r.jsx("strong",{className:"parallel-pane-info-title",children:i("shell.parallelPaneInfoTitle")}),r.jsx(gt,{children:r.jsxs("dl",{className:"parallel-pane-info-list",children:[r.jsxs("div",{children:[r.jsx("dt",{children:i("shell.createSessionProviderLabel")}),r.jsx("dd",{children:At((q??e.session).provider,"full")})]}),r.jsxs("div",{children:[r.jsx("dt",{children:i("shell.parallelPaneModelFallback")}),r.jsx("dd",{children:Ze})]}),r.jsxs("div",{children:[r.jsx("dt",{children:i("shell.parallelPaneIsolatedWorkspaceTitle")}),r.jsx("dd",{children:nt??i("common.unknown")})]})]})}),r.jsx(gt,{heading:i("shell.parallelPaneColorPaletteLabel"),description:i("shell.parallelPaneColorPaletteDescription"),actions:r.jsx("button",{type:"button",className:"ghost-button parallel-pane-color-reset",disabled:!$||J,onClick:()=>{Ps(B,null),z(null)},children:i("shell.parallelPaneColorPaletteReset")}),children:r.jsx("div",{className:"workbench-manage-color-palette parallel-pane-color-palette","aria-label":i("shell.parallelPaneColorPaletteLabel"),children:qo.map(R=>r.jsx("button",{type:"button",className:"workbench-manage-color-swatch","aria-label":i("shell.manageWorkspaceColorSelectSwatch",{color:R}),"aria-pressed":$===R,"data-selected":$===R,disabled:J,style:{backgroundColor:R},onClick:()=>{const le=Ps(B,R);z(le)}},R))})}),r.jsx(gt,{heading:i("shell.parallelPaneIsolatedWorkspaceTitle"),description:(ye==null?void 0:ye.lifecycleStatus)==="active"?i("shell.parallelPanePromoteDescription"):(ye==null?void 0:ye.lifecycleStatus)==="promoted"?i("shell.parallelPaneRemovePromotedDescription"):i("shell.parallelPaneRemoveDescription"),children:r.jsxs(es,{align:"start",className:"parallel-pane-action-row",children:[(ye==null?void 0:ye.lifecycleStatus)==="active"?r.jsx("button",{type:"button",className:"secondary-button parallel-pane-promote-action",disabled:d===ye.id||J,onClick:()=>{const R=ye==null?void 0:ye.id;R&&u(R)},children:d===ye.id?i("shell.parallelPanePromoting"):i("shell.parallelPanePromoteAction")}):null,r.jsx("button",{type:"button",className:"secondary-button workbench-danger-button",disabled:J,onClick:()=>{f(L)},children:J?i("shell.parallelPaneRemoving"):i("shell.parallelPaneRemoveAction")})]})})]}),document.body):null;return r.jsxs(r.Fragment,{children:[r.jsxs("article",{ref:Q,className:"parallel-conversation-pane","data-current":t?"true":void 0,"data-workspace-tone":(s==null?void 0:s.tone)??"root","data-parallel-role":((Wt=(q==null?void 0:q.parallelGroup)??e.session.parallelGroup)==null?void 0:Wt.role)??void 0,style:{"--parallel-pane-order":String(e.ordinal),...vt(s)??{},...Qe??{},...Ke},children:[r.jsxs("header",{ref:oe,className:"parallel-conversation-pane-header",children:[r.jsx("span",{className:"parallel-conversation-pane-connector","aria-hidden":"true"}),r.jsxs("div",{className:"parallel-conversation-pane-heading",children:[ht?r.jsx("span",{className:"session-parallel-badge",children:ht}):null,r.jsx("p",{className:"parallel-conversation-pane-subtitle",title:Je,children:Je}),r.jsxs("div",{className:"parallel-conversation-pane-meta",children:[r.jsx("span",{className:`session-provider-badge ${(q??e.session).provider}`,children:At((q??e.session).provider)}),r.jsx("span",{className:"parallel-conversation-pane-model",children:Ze})]})]}),r.jsxs("div",{className:"parallel-conversation-pane-actions",children:[r.jsx("button",{ref:de,type:"button",className:"conversation-header-ai-button","aria-label":i("shell.parallelPaneInfoAction"),title:i("shell.parallelPaneInfoAction"),"aria-expanded":o,onClick:()=>{Y(!1),l()},children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(ca,{})})}),r.jsx("button",{ref:k,type:"button",className:`conversation-header-ai-button${G?" active":""}`,"aria-label":i("shell.parallelPaneToolsAction"),title:i("shell.parallelPaneToolsAction"),"aria-expanded":G,onClick:()=>{c(),Ce()},children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(ua,{})})})]})]}),r.jsxs("div",{className:"parallel-conversation-pane-body",children:[r.jsx(Hs,{connectionState:Re,onReconnect:Z}),r.jsx(Qn,{requests:Ie,replyingRequestId:ee,onReply:st}),r.jsx("div",{className:"parallel-conversation-pane-timeline",children:r.jsx(_s,{sessionId:L,messages:ne,historyState:U,loadingOlderMessages:Me,hasOlderMessages:fe,provider:(q==null?void 0:q.provider)??e.session.provider,interruptedSource:he,runtimeThinkingPlaceholder:Ae,followTailUpdates:!0,onLoadOlderMessages:ze,onRetryMessage:ue,onSubmitStructuredQuestion:Se,onForkMessage:R=>{const le=q??e.session;T({sourceMessageId:R.id,sourceMessageSnapshot:{role:R.role,kind:R.kind??(R.role==="tool"?"tool_result":"text"),content:R.content},content:R.content,sourceProvider:le.provider,workspaceId:le.workspaceId,targetProvider:le.provider,targetModel:null,targetProviderConfigMode:le.providerConfigMode??"global-default",targetProviderPresetId:le.providerPresetId??null}),fr()}})}),r.jsx(ir,{items:je,deletingQueueItemId:se,steeringQueueItemId:we,canSteer:We,onDelete:ot,onSteer:dt}),r.jsx(Os,{capabilities:ie,draftStorageId:L,initialModel:e.model,workspaceId:(q??e.session).workspaceId,initialProviderConfigMode:(q??e.session).providerConfigMode??"global-default",initialProviderPresetId:(q??e.session).providerPresetId??null,forkDraft:P,onClearForkDraft:()=>T(null),onForkDraftChange:R=>T(R),hasActiveRun:ve,contextUsage:_,taskProvider:(q??e.session).provider,taskMessages:F,hasPendingQueuedMessages:re,canInterrupt:Te,isSubmitting:De,isRunning:xe,onInterrupt:ut,onSend:Ne,onQueueSend:Oe})]})]}),Ht,Ot]})}function ca(){return r.jsxs("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:[r.jsx("circle",{cx:"8",cy:"8",r:"5.5",fill:"none",stroke:"currentColor",strokeWidth:"1.4"}),r.jsx("path",{d:"M8 6.1H8.01M7.35 7.6H8V10.3H8.65",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.4"})]})}function ua(){return r.jsxs("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:[r.jsx("rect",{x:"2.5",y:"2.5",width:"4.2",height:"4.2",rx:"1.2",fill:"none",stroke:"currentColor",strokeWidth:"1.2"}),r.jsx("rect",{x:"9.3",y:"2.5",width:"4.2",height:"4.2",rx:"1.2",fill:"none",stroke:"currentColor",strokeWidth:"1.2"}),r.jsx("rect",{x:"2.5",y:"9.3",width:"4.2",height:"4.2",rx:"1.2",fill:"none",stroke:"currentColor",strokeWidth:"1.2"}),r.jsx("rect",{x:"9.3",y:"9.3",width:"4.2",height:"4.2",rx:"1.2",fill:"none",stroke:"currentColor",strokeWidth:"1.2"})]})}function da(){return r.jsxs("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:[r.jsx("circle",{cx:"5",cy:"4.5",r:"0.9",fill:"currentColor"}),r.jsx("circle",{cx:"11",cy:"4.5",r:"0.9",fill:"currentColor"}),r.jsx("circle",{cx:"5",cy:"8",r:"0.9",fill:"currentColor"}),r.jsx("circle",{cx:"11",cy:"8",r:"0.9",fill:"currentColor"}),r.jsx("circle",{cx:"5",cy:"11.5",r:"0.9",fill:"currentColor"}),r.jsx("circle",{cx:"11",cy:"11.5",r:"0.9",fill:"currentColor"})]})}function ha(){return r.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:r.jsx("path",{d:"M10.9 3.1 12.9 5.1 10.9 6.1v2.1l-2.1 2.1v2.6l-.8-.8-.8.8v-2.6L5 8.2V6.1L3.1 5.1l2-2h5.8Z",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.1"})})}function ma(){return r.jsxs("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:[r.jsx("path",{d:"M5 3.1H3.8A1.3 1.3 0 0 0 2.5 4.4v7.8a1.3 1.3 0 0 0 1.3 1.3h7.8a1.3 1.3 0 0 0 1.3-1.3V11",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"}),r.jsx("path",{d:"M8.1 3.1h4.4v4.4M12.3 3.3 7 8.6",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"})]})}function fa(){return r.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:r.jsx("path",{d:"M4.5 4.5 11.5 11.5M11.5 4.5 4.5 11.5",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"1.3"})})}function pa(){return r.jsx("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:r.jsx("path",{d:"M6.5 12.2 12.2 6.5M9 12.4 12.4 9M11.4 12.4 12.4 11.4",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.1"})})}function ga(e,t,n){const s=n.get(e);return s?ns(s).flatMap(o=>vr(o,t)):[]}function vr(e,t){var o;const n=e.item.session;if(((o=n.parallelGroup)==null?void 0:o.groupId)===t)return[];const s=ns(e).flatMap(c=>vr(c,t));return n.isSubagent!==!0?s:[{session:n,workspaceId:e.item.workspace.id,children:s}]}function Dt(e,t){const n=t.trim();return n?e.some(s=>s.session.sessionId===n||Dt(s.children,n)):!1}function va(e,t){return t===e.session.sessionId?e.session.sessionId:Dt(e.subagentTree,t)?t:e.session.sessionId}function ba(e,t){const n=t.trim();return n?n===e.session.sessionId||Dt(e.subagentTree,n):!1}function br(e,t){const n=t.trim();if(!n)return null;for(const s of e){if(s.session.sessionId===n)return s.session;const o=br(s.children,n);if(o)return o}return null}function wr(e,t){const n=t.trim();if(!n)return null;for(const s of e){if(s.session.sessionId===n)return s.workspaceId;const o=wr(s.children,n);if(o)return o}return null}const bt=196,lt=82,Pn=28,Cn=24,Sr=34,ks=18,wa=332,Gt=360,Kt=840,Rn=18,Sa=.22,Ia=2.4,Ma=6;function xa(e,t){return(t.lastMessageAt??t.updatedAt).localeCompare(e.lastMessageAt??e.updatedAt)}function Ir(e,t,n){var w,b;if(!t)return null;const s=e.find(v=>v.workspace.id===t);if(!s)return null;const o=new Map(s.sessions.map(v=>[v.sessionId,v])),c=o.get(n)??null;if(!c)return null;const l=new Map;for(const v of s.sessions){const E=((w=v.parentSessionId)==null?void 0:w.trim())||null;if(!E)continue;const y=l.get(E)??[];l.set(E,[...y,v.sessionId])}const u=new Set,d=new Set;let f=c,C=c.sessionId;for(;f&&!d.has(f.sessionId);){u.add(f.sessionId),d.add(f.sessionId),C=f.sessionId;const v=((b=f.parentSessionId)==null?void 0:b.trim())||null;f=v?o.get(v)??null:null}const x=Mr(C,0,o,l,new Set),A=Pa(x);return{root:x,current:c,currentPathIds:u,relatedSessionIds:A,sessionsById:o}}function ya(e){return((e==null?void 0:e.relatedSessionIds.size)??0)>1}function Mr(e,t,n,s,o){const c=n.get(e);if(!c)throw new Error(`Session ${e} not found`);const l=new Set(o);l.add(e);const u=[...s.get(e)??[]].filter(d=>!l.has(d)).sort((d,f)=>{const C=n.get(d),x=n.get(f);return!C||!x?0:xa(C,x)});return{session:c,depth:t,children:u.map(d=>Mr(d,t+1,n,s,l))}}function Pa(e){const t=new Set;function n(s){t.add(s.session.sessionId),s.children.forEach(n)}return n(e),t}function xr(e){const t=Xn(e),n=e.lastMessageAt??e.updatedAt,s=n?new Intl.DateTimeFormat(void 0,{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(new Date(n)):null;return[At(e.provider),s,t].filter(Boolean).join(" · ")}function yr(e){return e.isArchived===!0}function Ca(e){return[...e].sort((t,n)=>t.sequence-n.sequence).filter(t=>t.content.trim().length>0||t.kind==="tool_call"||t.kind==="tool_result")}function Pr(e,t){return e<=0||t<=0?1:Math.min(1,e/t)}function Ra(e,t,n,s){const o=Pr(e,n),c=n*o,l=s*o,u=c<e?(e-c)/2:0;return{scale:o,offsetX:u,offsetY:0,shellWidth:Math.max(e,c),shellHeight:l}}function Ts(e,t,n){return Math.min(n,Math.max(t,e))}function ka(e,t,n,s){if(e<=0||t<=0||n<=0||s<=0)return 1;const o=Math.max(1,e-Rn*2),c=Math.max(1,t-Rn*2);return Math.min(1,o/n,c/s)}function Zt(e,t,n,s,o){const c=s*e.scale,l=o*e.scale,u=(t-c)/2,d=(n-l)/2,f=c<=t?u:Ts(e.offsetX,t-c,0),C=l<=n?d:Ts(e.offsetY,n-l,0);return{scale:e.scale,offsetX:f,offsetY:C}}function Xt(e,t,n,s){const o=ka(e,t,n,s);return Zt({scale:o,offsetX:(e-n*o)/2,offsetY:(t-s*o)/2},e,t,n,s)}function Ta(e,t,n,s,o,c,l,u){const d=(n-e.offsetX)/e.scale,f=(s-e.offsetY)/e.scale;return Zt({scale:t,offsetX:n-d*t,offsetY:s-f*t},o,c,l,u)}function Ea(e){var n;const t=e.content.trim();if(t.length>0){const s=t.replace(/\s+/g," ").trim();return s.length<=160?s:`${s.slice(0,157)}...`}return(n=e.toolCall)!=null&&n.name?`${e.toolCall.name} ${i("conversation.branchTreeToolMessageFallback")}`:i("conversation.branchTreeMessageEmpty")}function ja(e){switch(e.role){case"assistant":return i("conversation.roleAssistant");case"system":return i("conversation.roleSystem");case"tool":return i("conversation.roleTool");case"user":default:return i("conversation.roleUser")}}function Es(e,t){const n=t.get(e.session.sessionId);if(n!==void 0)return n;if(e.children.length===0)return t.set(e.session.sessionId,bt),bt;const s=e.children.reduce((c,l,u)=>{const d=c+Es(l,t);return u===0?d:d+ks},0),o=Math.max(bt,s);return t.set(e.session.sessionId,o),o}function Aa(e){const t=new Map,n=[],s=new Map;function o(u,d,f){const C=Es(u,t),x=d+C/2,A=Cn+f*(lt+Sr),w=x-bt/2,b=u.children.reduce((I,S,B)=>{const D=I+Es(S,t);return B===0?D:D+ks},0);let v=d+Math.max(0,(C-b)/2);const E=u.children.map(I=>{const S=o(I,v,f+1);return v+=S.subtreeWidth+ks,S}),y={node:u,children:E,x:w,y:A,centerX:x,centerY:A+lt/2,subtreeWidth:C};return n.push(y),s.set(u.session.sessionId,y),y}const c=o(e,Pn,0),l=n.reduce((u,d)=>Math.max(u,d.y+lt),0);return{root:c,nodes:n,bySessionId:s,width:c.subtreeWidth+Pn*2,height:l+Cn}}function Na(e){return Math.max(0,Math.min(255,Number.parseFloat(e)))}function La(e){const t=e.trim();if(t.startsWith("#")){const s=t.slice(1);if(s.length===3){const[o,c,l]=s.split("").map(u=>Number.parseInt(u.repeat(2),16));return{r:o,g:c,b:l}}if(s.length>=6)return{r:Number.parseInt(s.slice(0,2),16),g:Number.parseInt(s.slice(2,4),16),b:Number.parseInt(s.slice(4,6),16)}}const n=t.match(/rgba?\(([^)]+)\)/i);if(n){const[s,o,c]=n[1].split(",").map(l=>Na(l));return{r:s,g:o,b:c}}return null}function tt(e,t,n){const s=La(e);return s?`rgba(${s.r}, ${s.g}, ${s.b}, ${t})`:n}function _a(e,t,n,s,o,c){const l=e.getContext("2d");if(!l)return;const u=l,d=window.devicePixelRatio||1;e.width=Math.max(1,Math.floor(t.width*d)),e.height=Math.max(1,Math.floor(t.height*d)),e.style.width=`${t.width}px`,e.style.height=`${t.height}px`,u.setTransform(d,0,0,d,0,0),u.clearRect(0,0,t.width,t.height);const f=window.getComputedStyle(e),C=f.getPropertyValue("--accent").trim()||"#3b82f6",x=f.getPropertyValue("--border-primary").trim()||"#d4d8df",A=f.getPropertyValue("--bg-surface").trim()||"#ffffff";if(!c){const b=u.createLinearGradient(0,0,t.width,t.height);b.addColorStop(0,tt(A,.38,"rgba(255, 255, 255, 0.38)")),b.addColorStop(1,tt(C,.05,"rgba(59, 130, 246, 0.05)")),u.fillStyle=b,u.fillRect(0,0,t.width,t.height)}function w(b){for(const v of b.children){const E=s.has(b.node.session.sessionId)&&s.has(v.node.session.sessionId),y=b.node.session.sessionId===o||v.node.session.sessionId===o;u.beginPath(),u.moveTo(b.centerX,b.y+lt-10);const I=b.y+lt+Sr*.52;u.bezierCurveTo(b.centerX,I,v.centerX,I,v.centerX,v.y+10),u.lineWidth=y?3:E?2.5:1.5,u.strokeStyle=y?tt(C,.52,"rgba(59, 130, 246, 0.52)"):E?tt(C,.32,"rgba(59, 130, 246, 0.32)"):tt(x,.72,"rgba(148, 163, 184, 0.72)"),u.stroke(),u.beginPath(),u.arc(v.centerX,v.y,y?4.5:3.5,0,Math.PI*2),u.fillStyle=y?tt(C,.9,"rgba(59, 130, 246, 0.9)"):tt(x,.78,"rgba(148, 163, 184, 0.78)"),u.fill(),w(v)}}w(t.root);for(const b of t.nodes){const v=b.node.session.sessionId===n,E=b.node.session.sessionId===o,y=s.has(b.node.session.sessionId);if(!v&&!E&&!y)continue;const I=u.createRadialGradient(b.centerX,b.centerY,10,b.centerX,b.centerY,E?90:64);I.addColorStop(0,tt(C,E?.22:.14,"rgba(59, 130, 246, 0.22)")),I.addColorStop(1,"rgba(59, 130, 246, 0)"),u.fillStyle=I,u.beginPath(),u.ellipse(b.centerX,b.centerY,bt*.72,lt*.9,0,0,Math.PI*2),u.fill(),(E||v)&&(u.beginPath(),u.arc(b.centerX,b.y+12,E?6:5,0,Math.PI*2),u.fillStyle=tt(C,.94,"rgba(59, 130, 246, 0.94)"),u.fill())}}function Da(e,t,n){const s=Math.min(wa,t-24),o=e.left+e.width/2-s/2,c=Math.max(12,Math.min(t-s-12,o)),d=n-e.bottom-12<220&&e.top>Gt?Math.max(12,e.top-Gt-12):Math.max(12,Math.min(n-Gt-12,e.bottom+12));return{width:s,left:c,top:d,maxHeight:Math.min(Gt,n-24)}}function Oa({model:e,selectedSession:t,selectedTreeNode:n,previewEntry:s,onClose:o,onOpenSession:c}){const l=It(t.title,i("common.unknown")),u=t.sessionId===e.current.sessionId,d=yr(t),f=Un(n.session),C=Vn(n.session),x=$n(n.session),A=Gn(n.session);return r.jsxs("div",{className:"conversation-branch-preview-popover",role:"dialog","aria-label":`${i("conversation.branchTreePreviewTitle")} ${l.fullTitle}`,children:[r.jsxs("div",{className:"conversation-branch-preview-popover-header",children:[r.jsxs("div",{className:"conversation-branch-preview-card-title-row",children:[r.jsx("strong",{title:l.fullTitle,children:l.displayTitle}),u?r.jsx("span",{className:"conversation-branch-current-badge",children:i("conversation.branchTreeCurrentBadge")}):null,d?r.jsx("span",{className:"conversation-branch-archived-badge",children:i("conversation.branchTreeArchivedBadge")}):null]}),r.jsx("button",{type:"button",className:"conversation-branch-preview-close","aria-label":i("common.close"),onClick:o,children:"x"})]}),r.jsx("p",{className:"conversation-branch-preview-popover-meta",children:xr(t)}),C&&f||A&&x?r.jsxs("div",{className:"conversation-branch-badge-row",children:[A&&x?r.jsx("span",{className:`session-fork-badge ${x}`,children:A}):null,C&&f?r.jsx("span",{className:`session-fork-badge ${f}`,children:C}):null]}):null,r.jsx("div",{className:"conversation-branch-preview-messages",children:s.status==="loading"?r.jsx("p",{className:"conversation-branch-empty",children:i("conversation.branchTreePreviewLoading")}):s.status==="error"?r.jsx("p",{className:"conversation-branch-empty",children:s.error||i("conversation.branchTreePreviewFailed")}):s.messages.length>0?s.messages.map(w=>r.jsxs("article",{className:"conversation-branch-preview-message",children:[r.jsxs("div",{className:"conversation-branch-preview-message-meta",children:[r.jsx("span",{children:ja(w)}),r.jsx("span",{children:new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"}).format(new Date(w.timestamp))})]}),r.jsx("p",{children:Ea(w)})]},`${t.sessionId}:${w.messageId}`)):r.jsx("p",{className:"conversation-branch-empty",children:i("conversation.branchTreePreviewEmpty")})}),r.jsx("div",{className:"conversation-branch-preview-actions",children:r.jsx("button",{type:"button",className:"secondary-button",disabled:u,onClick:()=>c(t),children:u?i("conversation.branchTreeCurrentAction"):i("conversation.branchTreeSwitchAction")})})]})}function Ha({layout:e,model:t,selectedSessionId:n,onSelectSession:s,onBackgroundClick:o,stageScale:c,desktopStageLayout:l,transform:u,isMobileViewport:d,viewportRef:f,onRegisterNodeElement:C,onViewportTouchStart:x,onViewportTouchMove:A,onViewportTouchEnd:w}){const b=a.useRef(null);return a.useEffect(()=>{const v=b.current;v&&_a(v,e,t.current.sessionId,t.currentPathIds,n,d)},[d,e,t.current.sessionId,t.currentPathIds,n]),r.jsx("div",{ref:f,className:"conversation-branch-canvas-viewport","data-scaled":c<.999,"data-mobile":d,onClick:v=>{v.target===v.currentTarget&&(o==null||o())},onTouchStart:x,onTouchMove:A,onTouchEnd:w,onTouchCancel:w,children:r.jsx("div",{className:"conversation-branch-canvas-stage-shell",style:{width:d?"100%":l.shellWidth,height:d?"100%":l.shellHeight},onClick:v=>{v.target===v.currentTarget&&(o==null||o())},children:r.jsxs("div",{className:"conversation-branch-canvas-stage",style:{width:e.width,height:e.height,transform:u?`translate(${u.offsetX}px, ${u.offsetY}px) scale(${u.scale})`:`translate(${l.offsetX}px, ${l.offsetY}px) scale(${l.scale})`,transformOrigin:"top left"},onClick:()=>{if(o){o();return}s(null)},children:[r.jsx("canvas",{ref:b,className:"conversation-branch-canvas",width:e.width,height:e.height,"aria-hidden":"true"}),e.nodes.map(v=>{const E=It(v.node.session.title,i("common.unknown")),y=Un(v.node.session),I=Vn(v.node.session),S=$n(v.node.session),B=Gn(v.node.session),D=v.node.session.sessionId===t.current.sessionId,j=v.node.session.sessionId===n,N=t.currentPathIds.has(v.node.session.sessionId),m=yr(v.node.session);return r.jsx("button",{ref:p=>C(v.node.session.sessionId,p),type:"button",className:"conversation-branch-smart-card conversation-branch-canvas-node","data-current":D,"data-selected":j,"data-current-path":N,"data-archived":m,style:{left:v.x,top:v.y,width:bt,minHeight:lt},"aria-pressed":j,onClick:p=>{p.stopPropagation(),s(v.node.session.sessionId)},children:r.jsxs("div",{className:"conversation-branch-smart-card-main",children:[r.jsxs("div",{className:"conversation-branch-smart-card-title-row",children:[r.jsx("strong",{title:E.fullTitle,children:E.displayTitle}),D?r.jsx("span",{className:"conversation-branch-current-badge",children:i("conversation.branchTreeCurrentBadge")}):null,m?r.jsx("span",{className:"conversation-branch-archived-badge",children:i("conversation.branchTreeArchivedBadge")}):null]}),r.jsx("p",{children:xr(v.node.session)}),I&&y||B&&S?r.jsxs("div",{className:"conversation-branch-badge-row",children:[B&&S?r.jsx("span",{className:`session-fork-badge ${S}`,children:B}):null,I&&y?r.jsx("span",{className:`session-fork-badge ${y}`,children:I}):null]}):null]})},v.node.session.sessionId)})]})})})}function kn({model:e,onOpenSession:t,onClose:n}){const s=a.useMemo(()=>Aa(e.root),[e.root]),o=a.useRef(null),c=a.useRef(new Map),[l,u]=a.useState(null),[d,f]=a.useState(0),[C,x]=a.useState(0),[A,w]=a.useState(null),[b,v]=a.useState({}),E=a.useRef(new Set),[y,I]=a.useState(typeof window<"u"?window.innerWidth<=Kt:!1),[S,B]=a.useState(null),D=a.useRef({mode:"idle",startDistance:0,startScale:1,startOffsetX:0,startOffsetY:0,startTouchX:0,startTouchY:0,anchorX:0,anchorY:0,moved:!1});a.useEffect(()=>{const H=o.current;if(!H)return;const g=H;function V(){f(g.clientWidth),x(g.clientHeight),I(window.innerWidth<=Kt)}if(V(),typeof ResizeObserver>"u")return window.addEventListener("resize",V),()=>window.removeEventListener("resize",V);const W=new ResizeObserver(V);return W.observe(H),()=>W.disconnect()},[]),a.useEffect(()=>{u(null)},[e.current.sessionId,e.root.session.sessionId]);const j=a.useMemo(()=>Pr(d,s.width),[d,s.width]),N=a.useMemo(()=>Ra(d,C,s.width,s.height),[C,d,s.height,s.width]);a.useEffect(()=>{if(!y||d<=0||C<=0){B(null);return}B(H=>H?Zt(H,d,C,s.width,s.height):Xt(d,C,s.width,s.height))},[C,d,y,s.height,s.width]);const m=l?e.sessionsById.get(l)??null:null,p=m?s.bySessionId.get(m.sessionId)??null:null,L=m?b[m.sessionId]??{status:"idle",messages:[],error:null}:null,G=y&&!!n,Y=!!n&&!G;a.useEffect(()=>{if(!l){w(null);return}const H=l;function g(){const V=c.current.get(H);if(!V){w(null);return}w(V.getBoundingClientRect())}return g(),window.addEventListener("resize",g),window.addEventListener("scroll",g,!0),()=>{window.removeEventListener("resize",g),window.removeEventListener("scroll",g,!0)}},[l,j]),a.useEffect(()=>{if(!y)return;const H=l;if(!H)return;const g=window.requestAnimationFrame(()=>{const V=c.current.get(H);V&&w(V.getBoundingClientRect())});return()=>window.cancelAnimationFrame(g)},[y,S,l]),a.useEffect(()=>{if(!(m!=null&&m.sessionId)||(L==null?void 0:L.status)==="ready"||E.current.has(m.sessionId))return;let H=!1;return E.current.add(m.sessionId),v(g=>{var V;return{...g,[m.sessionId]:{status:"loading",messages:((V=g[m.sessionId])==null?void 0:V.messages)??[],error:null}}}),Ms(m.sessionId,null,6,"backward").then(g=>{E.current.delete(m.sessionId),!H&&v(V=>({...V,[m.sessionId]:{status:"ready",messages:Ca(g.messages),error:null}}))}).catch(g=>{E.current.delete(m.sessionId),!H&&v(V=>{var W;return{...V,[m.sessionId]:{status:"error",messages:((W=V[m.sessionId])==null?void 0:W.messages)??[],error:g instanceof Error?g.message:i("conversation.branchTreePreviewFailed")}}})}),()=>{H=!0}},[m==null?void 0:m.sessionId]);function K(H){!y||d<=0||C<=0||B(g=>{const V=g??Xt(d,C,s.width,s.height);return Zt(H(V),d,C,s.width,s.height)})}function te(H){if(!y)return;const g=H.currentTarget.getBoundingClientRect();if(H.touches.length>=2){const Q=H.touches[0],oe=H.touches[1],de=Math.hypot(oe.clientX-Q.clientX,oe.clientY-Q.clientY),ce=(Q.clientX+oe.clientX)/2-g.left,me=(Q.clientY+oe.clientY)/2-g.top,k=S??Xt(d,C,s.width,s.height);D.current={mode:"pinch",startDistance:de,startScale:k.scale,startOffsetX:k.offsetX,startOffsetY:k.offsetY,startTouchX:ce,startTouchY:me,anchorX:ce,anchorY:me,moved:!1};return}const V=H.touches[0],W=S??Xt(d,C,s.width,s.height);D.current={mode:"pan",startDistance:0,startScale:W.scale,startOffsetX:W.offsetX,startOffsetY:W.offsetY,startTouchX:V.clientX,startTouchY:V.clientY,anchorX:0,anchorY:0,moved:!1}}function O(H){if(!y)return;const g=D.current;if(H.touches.length>=2){const de=H.currentTarget.getBoundingClientRect(),ce=H.touches[0],me=H.touches[1],k=Math.hypot(me.clientX-ce.clientX,me.clientY-ce.clientY);if(k<=0||g.startDistance<=0)return;H.preventDefault();const $=(ce.clientX+me.clientX)/2-de.left,z=(ce.clientY+me.clientY)/2-de.top,q=Ts(g.startScale*(k/g.startDistance),Sa,Ia);D.current={...g,mode:"pinch",moved:!0,anchorX:$,anchorY:z},K(ie=>Ta({...ie,scale:g.startScale,offsetX:g.startOffsetX,offsetY:g.startOffsetY},q,$,z,d,C,s.width,s.height));return}if(g.mode!=="pan"||H.touches.length!==1)return;const V=H.touches[0],W=V.clientX-g.startTouchX,Q=V.clientY-g.startTouchY;(g.moved||Math.hypot(W,Q)>=Ma)&&(H.preventDefault(),D.current={...g,moved:!0},K(de=>({...de,offsetX:g.startOffsetX+W,offsetY:g.startOffsetY+Q})))}function ge(){D.current={mode:"idle",startDistance:0,startScale:(S==null?void 0:S.scale)??1,startOffsetX:(S==null?void 0:S.offsetX)??0,startOffsetY:(S==null?void 0:S.offsetY)??0,startTouchX:0,startTouchY:0,anchorX:0,anchorY:0,moved:!1}}return r.jsxs(r.Fragment,{children:[r.jsxs("section",{className:`conversation-branch-tree-pane${n?" conversation-branch-dialog":""}${G?" conversation-branch-dialog-mobile-bare":""}`,role:n?"dialog":void 0,"aria-modal":n?"true":void 0,"aria-label":n?i("conversation.branchTreeTitle"):void 0,children:[Y?r.jsx("div",{className:"conversation-branch-tree-pane-header",children:r.jsxs("div",{className:"conversation-branch-tree-pane-topbar",children:[r.jsxs("div",{className:"conversation-branch-tree-pane-heading",children:[r.jsx("h3",{children:i("conversation.branchTreeMapTitle")}),r.jsx("p",{children:i("conversation.branchTreeMapDescription")})]}),n?r.jsx("button",{type:"button",className:"conversation-branch-pane-close","aria-label":i("common.close"),onClick:n,children:"x"}):null]})}):null,r.jsxs("div",{className:"conversation-branch-canvas-shell",children:[G?r.jsx("button",{type:"button",className:"conversation-branch-pane-close conversation-branch-mobile-floating-close","aria-label":i("common.close"),onClick:n,children:"x"}):null,G?null:r.jsx("div",{className:"conversation-branch-canvas-tip",children:i("conversation.branchTreePreviewDescription")}),r.jsx(Ha,{layout:s,model:e,selectedSessionId:l,onSelectSession:u,onBackgroundClick:G?n:void 0,stageScale:j,desktopStageLayout:N,transform:y?S:null,isMobileViewport:y,viewportRef:o,onRegisterNodeElement:(H,g)=>{if(g){c.current.set(H,g);return}c.current.delete(H)},onViewportTouchStart:te,onViewportTouchMove:O,onViewportTouchEnd:ge})]})]}),m&&p&&L&&A&&typeof document<"u"?wt.createPortal(r.jsx("div",{className:"conversation-branch-preview-floating",style:Da(A,window.innerWidth,window.innerHeight),children:r.jsx(Oa,{model:e,selectedSession:m,selectedTreeNode:p.node,previewEntry:L,onClose:()=>u(null),onOpenSession:t})}),document.body):null]})}function Fa({open:e,navigationGroups:t,workspaceId:n,sessionId:s,onClose:o,onOpenSession:c}){const l=a.useMemo(()=>Ir(t,n,s),[t,s,n]),[u,d]=a.useState(typeof window<"u"?window.innerWidth>Kt:!0);return a.useEffect(()=>{if(typeof window>"u")return;function f(){d(window.innerWidth>Kt)}return f(),window.addEventListener("resize",f),()=>window.removeEventListener("resize",f)},[]),!e||!l||typeof document>"u"?null:u?r.jsx(Jt,{open:e,title:i("conversation.branchTreeMapTitle"),description:i("conversation.branchTreeMapDescription"),size:"regular",layout:"viewer",bodyClassName:"conversation-branch-modal-body",onClose:o,children:r.jsx(kn,{model:l,onOpenSession:c})}):wt.createPortal(r.jsxs("div",{className:"workbench-modal-layer conversation-branch-panel-layer",children:[r.jsx("button",{type:"button",className:"workbench-modal-backdrop","aria-label":i("common.close"),onClick:o}),r.jsx(kn,{model:l,onOpenSession:c,onClose:o})]}),document.body)}function Ba(e){const t=e.trim().length;return t<=16?"xl":t<=26?"lg":t<=38?"md":"sm"}function Cr({session:e,actions:t,workspaceContext:n=null}){const s=_t(),o=Wn(s);if(!e)return r.jsxs("header",{className:"conversation-header conversation-header-skeleton","aria-hidden":"true","data-window-drag-handle":"conversation-header","data-tauri-drag-region":o,children:[r.jsxs("div",{className:"conversation-header-main","data-tauri-drag-region":o,children:[r.jsx("span",{className:"skeleton-line short"}),r.jsx("span",{className:"skeleton-line long"})]}),t?r.jsx("div",{className:"conversation-header-actions",children:t}):null]});const c=It(e.title,i("conversation.titleFallback")),l=Ba(c.displayTitle);return r.jsxs("header",{className:"conversation-header","data-workspace-tone":(n==null?void 0:n.tone)??"root",style:vt(n),"data-window-drag-handle":"conversation-header","data-tauri-drag-region":o,children:[r.jsx("div",{className:"conversation-header-main","data-tauri-drag-region":o,children:r.jsx("h1",{className:`conversation-title is-${l}`,title:c.fullTitle,"data-tauri-drag-region":o,children:c.displayTitle})}),t?r.jsx("div",{className:"conversation-header-actions",children:t}):null]})}function Wa(e,t,n){if(!t)return null;const s=e.find(l=>l.workspace.id===t);if(!s)return null;const o=ts([s]).filter(l=>!l.session.isArchived&&!Lt(l.session)),c=o.findIndex(l=>l.session.sessionId===n);return c<0?null:o[c+1]??null}const Tn=.6,Is=.6,En=8,qa=36,Ua=48,Va=96;function jl(){const{sessionId:e="",workspaceId:t}=ti(),n=Ds(),s=ct(),o=a.useMemo(()=>new URLSearchParams(n.search),[n.search]),c=Ka(o.get("toolPanel")),l=(t==null?void 0:t.trim())||null,u=a.useMemo(()=>za(e,l,o),[l,o,e]),d=a.useMemo(()=>al(e,n.state),[n.state,e]),f=a.useMemo(()=>ll(e,n.state),[n.state,e]);return u?r.jsx(Ya,{draft:u,navigate:s,initialToolPanel:c}):r.jsx($a,{sessionId:e,bootstrapMessages:d,initialComposerModel:f.initialModel,initialComposerProviderConfigMode:f.providerConfigMode,initialComposerProviderPresetId:f.providerPresetId,initialToolPanel:c})}function $a({sessionId:e,bootstrapMessages:t,initialComposerModel:n,initialComposerProviderConfigMode:s,initialComposerProviderPresetId:o,initialToolPanel:c}){var Ve,qe,$e,Ge;const{shellMode:l,navigationGroups:u,requestNavigationRefresh:d,selectWorkspace:f,setSessionWorkspace:C,markNavigationSessionSeen:x,favoriteSessions:A,archiveSession:w,unarchiveSession:b,startDraftSession:v,upsertNavigationSession:E}=St(),y=ct(),[I,S]=a.useState(!1),[B,D]=a.useState(!1),[j,N]=a.useState(null),[m,p]=a.useState(!1),[L,G]=a.useState(!1),[Y,K]=a.useState(!1),te=a.useMemo(()=>ts(u),[u]),O=a.useMemo(()=>{var M;return((M=te.find(ae=>ae.session.sessionId===e))==null?void 0:M.session)??null},[te,e]),{showToast:ge}=rt(),H=()=>{var be;const M=(O==null?void 0:O.workspaceId)??((be=u[0])==null?void 0:be.workspace.id)??null,ae=(M?te.find(qt=>qt.workspace.id===M)??null:null)??te[0]??null;y(ae?Ue(ae.workspace.id,ae.session.sessionId):M?Tt(M):l==="mobile"?Zo():"/landing",{replace:!0})},{session:g,capabilities:V,messages:W,timelineMessages:Q,permissionRequests:oe,queuedMessages:de,contextUsage:ce,historyState:me,runtimeInterruptSource:k,loadingOlderMessages:$,hasOlderMessages:z,connectionState:q,sending:ie,replyingPermissionRequestId:F,deletingQueueItemId:ne,steeringQueueItemId:Ie,forkDraft:je,setForkDraft:_,composerHasActiveRun:U,composerCanInterrupt:he,composerIsRunning:Me,canSteerQueuedMessage:fe,hasPendingQueuedMessages:Re,runtimeThinkingPlaceholder:De,reconnect:ee,loadOlderMessages:se,retryMessage:we,send:P,queue:T,interrupt:ve,replyPermissionRequest:Te,deleteQueuedMessage:xe,steerQueuedMessage:We}=pr({sessionId:e,externalSession:O,bootstrapMessages:t,onSeen:(M,ae)=>{x(M,ae)},onRequestNavigationRefresh:d,onUpsertNavigationSession:E,onNavigateToSession:(M,ae)=>{f(M),y(Ue(M,ae))},onBindSessionWorkspace:C,onResolveMissingSession:H,onForkSuccess:()=>{Et("preview"),ge({title:i("conversation.forkMessageSucceeded"),tone:"success"})},enableRuntimeErrorHandling:!0,enableCompletionHaptics:!0,enableThinkingPlaceholder:!0,enableForkTimelineSanitizer:!0}),re=l!=="mobile",Ae=Or(!re),Z=g??O??null,ze=(g==null?void 0:g.sessionIsolatedWorkspace)??(O==null?void 0:O.sessionIsolatedWorkspace)??null,ue=Z?zt(Z,ze):null,Ne=Z?qn(Z,ze):null,Oe=_r({enabled:!re,initialPanel:c,workspaceId:Ne,suspendMainGesture:!re&&Ae.isVisible}),ut=a.useMemo(()=>new Set(A.map(M=>M.session.sessionId)),[A]),st=a.useMemo(()=>u.map(M=>M.workspace),[u]),ot=a.useMemo(()=>er(u),[u]),dt=a.useMemo(()=>Ns(u),[u]),Qe=a.useMemo(()=>Tr(u,ue,ut),[ut,ue,u]),Ke=a.useMemo(()=>Er(A,u),[A,u]);async function ht(M){await P(Ga(M.answers))}const[ye,nt]=a.useState([]),Ze=a.useMemo(()=>[...Ke,...Qe],[Ke,Qe]),Je=a.useMemo(()=>ue?st.find(M=>M.id===ue)??null:null,[ue,st]),Pe=(ue?dt[ue]??null:null)??(Je?Ls(Je):null),h=a.useMemo(()=>rs(u,ue),[ue,u]),X=ot.find(M=>M.workspace.id===ue)??(h?{workspace:h.workspace,label:h.workspace.name,subtitle:h.workspace.path}:null),J=a.useMemo(()=>Wa(u,ue,e),[ue,u,e]),Se=(g==null?void 0:g.provider)??(O==null?void 0:O.provider)??null,Le=a.useMemo(()=>{var M;return It(((M=g??O)==null?void 0:M.title)??null,i("conversation.titleFallback"))},[O,g]),He=re,Ee=a.useMemo(()=>{var be;if(!He)return null;if(Yo(Z))return((be=Z==null?void 0:Z.parallelGroup)==null?void 0:be.groupId)??null;const M=ss(te);return Xa(M,e)},[Z,te,e,He]),_e=re?null:Lr(Ae.mainGestureHandlers,Oe.mainGestureHandlers);a.useEffect(()=>{const M=zn(Ze,e,ae=>ae.session.sessionId);M.length!==0&&nt(ae=>{const be=new Set(ae);let qt=!1;for(const qs of M)be.has(qs)||(be.add(qs),qt=!0);return qt?Array.from(be):ae})},[Ze,e]);const Ce=(Z==null?void 0:Z.workspaceId)??(O==null?void 0:O.workspaceId)??null,it=a.useMemo(()=>Ir(u,Ce,e),[Ce,u,e]),os=ya(it),Ot=!!(Z&&Ce&&os),Ht=()=>{G(!0)},mt=a.useMemo(()=>(h==null?void 0:h.sessions.filter(M=>M.isArchived===!0&&!Lt(M)))??[],[h]),Ft=a.useRef(null),Mt=a.useRef(null),ft=a.useRef(null),xt=a.useRef(null),[Bt,Wt]=a.useState(null),{composerPortalTarget:R}=Yn();a.useEffect(()=>{G(!1)},[e]),Ar(ft,Bt,!re,e),Nr(ft,xt,!re,e);function le(M){f(M),y(Tt(M))}return re&&Ee?r.jsxs(r.Fragment,{children:[r.jsx(aa,{groupId:Ee,currentSessionId:e}),r.jsx(ys,{open:Y,source:Z?{kind:"session",sessionId:e,workspaceId:Z.workspaceId,workspaceName:(Pe==null?void 0:Pe.displayName)??Z.workspaceId,sessionTitle:Z.title,defaultProvider:Z.provider}:null,onClose:()=>K(!1),onCreated:async M=>{M.members.forEach(be=>{E(be.session)}),Js(M.group.id),await d();const ae=M.members.find(be=>be.session.sessionId===M.group.anchorSessionId)??M.members[0]??null;if(ae){const be=zt(ae.session,ae.sessionIsolatedWorkspace);f(be),y(Ue(be,ae.session.sessionId))}K(!1),ge({title:i("shell.parallelCreateSucceeded"),tone:"success"})}})]}):r.jsxs(r.Fragment,{children:[r.jsxs("main",{ref:ft,className:"workbench-page conversation-page-shell mobile-page-fixed-root mobile-conversation-page","data-mobile-shell":!re,"data-preview-mode":re?void 0:Ae.displayMode,"data-preview-dragging":re?void 0:Ae.isDragging,"data-workspace-tone":(Pe==null?void 0:Pe.tone)??"root","data-worktree-depth":(Pe==null?void 0:Pe.depth)??0,"data-tool-panel-open":re?void 0:Oe.isOpen,style:{...re?{}:Ae.pageStyle,...vt(Pe)??{}},children:[re?r.jsx(Cr,{session:g??O,workspaceContext:Pe,actions:r.jsxs(r.Fragment,{children:[Ot?r.jsx(rl,{onOpenBranchTree:Ht}):null,Z?r.jsx("button",{type:"button",className:"conversation-header-ai-button","aria-label":i("shell.parallelCreateAction"),title:i("shell.parallelCreateAction"),onClick:()=>K(!0),children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(ol,{})})}):null,r.jsx(or,{session:g??O})]})}):null,re?null:r.jsx(tr,{containerRef:xt,className:"mobile-conversation-page-header",gestureHandlers:_e??void 0,currentWorkspace:X?{id:X.workspace.id,name:X.label,path:X.subtitle}:st[0]??null,workspaces:st,workspaceOptions:ot,onSelectWorkspace:le,heading:Le.fullTitle,trailing:r.jsxs("div",{className:"mobile-conversation-toolbar-main",children:[r.jsx("span",{className:"mobile-conversation-toolbar-title",title:Le.fullTitle,children:Le.displayTitle}),r.jsx(fi,{session:g??O,onOpenBranchTree:Ot?Ht:void 0})]})}),re?null:r.jsx(Hr,{visible:!Oe.isOpen&&Ae.isVisible,widthPx:Ae.previewWidthPx,isDragging:Ae.isDragging,gestureHandlers:Ae.railGestureHandlers,activeSessionId:e,createSessionActionLabel:ue&&Se?i("shell.createSession"):void 0,favoriteItems:Ke,items:Qe,expandedRootIds:ye,workspaceSectionLabel:(X==null?void 0:X.label)??i("shell.mobileConversationCurrentWorkspaceSection"),onCreateSession:ue&&Se?()=>{v(ue,Se)}:void 0,archiveCurrentActionLabel:i("shell.archiveCurrentSessionAction"),archiveFolderActionLabel:mt.length>0?i("shell.archiveFolderLabel"):void 0,onArchiveActiveSession:()=>{S(!0)},onOpenArchiveFolder:mt.length>0?()=>{D(!0)}:void 0,onToggleSubsessions:M=>{nt(ae=>ae.includes(M)?ae.filter(be=>be!==M):[...ae,M])},onActivate:M=>{Ae.closePreview(),f(M.workspace.id),y(Ue(M.workspace.id,M.session.sessionId))}}),r.jsx("div",{className:"mobile-conversation-stage",..._e??{},children:r.jsxs("div",{ref:Ft,className:"mobile-conversation-main",children:[r.jsx(Hs,{connectionState:q,onReconnect:ee}),r.jsx(Qn,{requests:oe,replyingRequestId:F,onReply:Te}),r.jsx("div",{ref:Mt,className:"conversation-timeline-shell",children:r.jsx(_s,{sessionId:e,messages:Q,historyState:me,loadingOlderMessages:$,hasOlderMessages:z,provider:(g==null?void 0:g.provider)??null,interruptedSource:k,runtimeThinkingPlaceholder:De,sessionRunningState:(g==null?void 0:g.runningState)??null,sessionSyncStatus:(g==null?void 0:g.syncStatus)??null,sessionLastErrorCode:(g==null?void 0:g.lastErrorCode)??null,sessionLastErrorDetail:(g==null?void 0:g.lastErrorDetail)??null,onLoadOlderMessages:se,onRetryMessage:we,onSubmitStructuredQuestion:ht,onForkMessage:M=>{g&&(_({sourceMessageId:M.id,sourceMessageSnapshot:{role:M.role,kind:M.kind??(M.role==="tool"?"tool_result":"text"),content:M.content},content:M.content,sourceProvider:g.provider,workspaceId:g.workspaceId,targetProvider:g.provider,targetModel:null,targetProviderConfigMode:g.providerConfigMode??"global-default",targetProviderPresetId:g.providerPresetId??null}),fr())}})}),r.jsx(ui,{containerRef:Mt,session:g??O??null,currentCapabilities:V}),r.jsx(ir,{items:de,deletingQueueItemId:ne,steeringQueueItemId:Ie,canSteer:fe,onDelete:xe,onSteer:We}),Oe.isOpen?null:r.jsx(Os,{capabilities:V,draftStorageId:e,initialModel:n,workspaceId:((Ve=g??O)==null?void 0:Ve.workspaceId)??null,initialProviderConfigMode:s??((qe=g??O)==null?void 0:qe.providerConfigMode)??"global-default",initialProviderPresetId:o??(($e=g??O)==null?void 0:$e.providerPresetId)??null,forkDraft:je,onClearForkDraft:()=>_(null),onForkDraftChange:M=>_(M),panelRef:re?void 0:Wt,portalContainer:re?null:R,hasActiveRun:U,contextUsage:ce,taskProvider:((Ge=g??O)==null?void 0:Ge.provider)??null,taskMessages:W,hasPendingQueuedMessages:Re,canInterrupt:he,isSubmitting:ie,isRunning:Me,onInterrupt:ve,onSend:P,onQueueSend:T})]})}),!re&&Ne?r.jsx(Dr,{activePanel:Oe.activePanel,open:Oe.isOpen,sessionId:e,workspaceId:Ne,navigationGroups:u,onClose:()=>{Oe.closePanel()},onSelectPanel:M=>{Oe.selectPanel(M)},onSelectPanelBySwipe:M=>{if(M===null){Oe.closePanel();return}Oe.selectPanel(M)}}):null]}),r.jsx(Fa,{open:L,navigationGroups:u,workspaceId:Ce,sessionId:e,onClose:()=>G(!1),onOpenSession:M=>{G(!1),f(M.workspaceId),Et("preview"),y(Ue(M.workspaceId,M.sessionId))}}),r.jsx(nl,{open:I,busy:m,onClose:()=>{m||S(!1)},onConfirm:async()=>{if(!m){p(!0);try{if(await w(e),S(!1),ge({title:i("shell.archiveAdded"),tone:"success"}),ue){if(f(ue),Et("preview"),J){y(Ue(J.workspace.id,J.session.sessionId));return}y(Tt(ue));return}y("/workspaces")}catch(M){ge({title:M instanceof Error?M.message:i("shell.navigationLoadFailed"),tone:"error"})}finally{p(!1)}}}}),r.jsx(Br,{open:B,workspaceName:(h==null?void 0:h.workspace.name)??null,sessions:mt,restoringSessionId:j,onClose:()=>{j||D(!1)},onRestore:async M=>{N(M);try{await b(M),ge({title:i("shell.archiveRestored"),tone:"success"})}catch(ae){ge({title:ae instanceof Error?ae.message:i("shell.navigationLoadFailed"),tone:"error"})}finally{N(null)}}}),He?r.jsx(ys,{open:Y,source:Z?{kind:"session",sessionId:e,workspaceId:Z.workspaceId,workspaceName:(Pe==null?void 0:Pe.displayName)??Z.workspaceId,sessionTitle:Z.title,defaultProvider:Z.provider}:null,onClose:()=>K(!1),onCreated:async M=>{M.members.forEach(be=>{E(be.session)}),Js(M.group.id),await d();const ae=M.members.find(be=>be.session.sessionId===M.group.anchorSessionId)??M.members[0]??null;if(ae){const be=zt(ae.session,ae.sessionIsolatedWorkspace);f(be),y(Ue(be,ae.session.sessionId))}K(!1),ge({title:i("shell.parallelCreateSucceeded"),tone:"success"})}}):null]})}function Ga(e){return Object.entries(e).map(([,t])=>t.filter(Boolean).join(" / ")).filter(Boolean).join(`
|
|
6
|
-
`)}function Xa(e,t){const n=t.trim();if(!n)return null;for(const s of e){const o=Rr(s,n,null);if(o)return o}return null}function Rr(e,t,n){var o,c;const s=((c=(o=e.item.session.parallelGroup)==null?void 0:o.groupId)==null?void 0:c.trim())||n;if(e.item.session.sessionId===t)return s;for(const l of ns(e)){const u=Rr(l,t,s);if(u)return u}return null}function Ya({draft:e,navigate:t,initialToolPanel:n}){const{shellMode:s,navigationGroups:o,requestNavigationRefresh:c,selectWorkspace:l,setSessionWorkspace:u,upsertNavigationSession:d,favoriteSessions:f,unarchiveSession:C,startDraftSession:x}=St(),[A,w]=a.useState(!1),[b,v]=a.useState([]),E=a.useMemo(()=>Rt(e.provider),[e.provider]),[y,I]=a.useState(E),S=s!=="mobile",{showToast:B}=rt(),D=a.useMemo(()=>Qa(e),[e]),j=Or(!S),N=_r({enabled:!S,initialPanel:n,sessionId:e.sessionId,workspaceId:e.workspaceId,suspendMainGesture:!S&&j.isVisible}),m=a.useMemo(()=>new Set(f.map(_=>_.session.sessionId)),[f]),p=a.useMemo(()=>o.map(_=>_.workspace),[o]),L=a.useMemo(()=>er(o),[o]),G=a.useMemo(()=>Ns(o),[o]),Y=a.useMemo(()=>p.find(_=>_.id===e.workspaceId)??null,[e.workspaceId,p]),K=G[e.workspaceId]??(Y?Ls(Y):null),te=a.useMemo(()=>It(D.title??null,i("conversation.titleFallback")),[D]),O=a.useMemo(()=>Tr(o,e.workspaceId,m),[e.workspaceId,m,o]),ge=a.useMemo(()=>Er(f,o),[f,o]),[H,g]=a.useState([]),V=a.useMemo(()=>[...ge,...O],[ge,O]),W=a.useMemo(()=>rs(o,e.workspaceId),[e.workspaceId,o]),Q=a.useMemo(()=>(W==null?void 0:W.sessions.filter(_=>_.isArchived===!0&&!Lt(_)))??[],[W]),oe=L.find(_=>_.workspace.id===e.workspaceId)??(W?{workspace:W.workspace,label:W.workspace.name,subtitle:W.workspace.path}:null),de=S?null:Lr(j.mainGestureHandlers,N.mainGestureHandlers),[ce,me]=a.useState(!1),[k,$]=a.useState(null),z=a.useRef(null),q=a.useRef(null),ie=a.useRef(null),[F,ne]=a.useState(null),{composerPortalTarget:Ie}=Yn();a.useEffect(()=>{const _=zn(V,e.sessionId,U=>U.session.sessionId);_.length!==0&&g(U=>{const he=new Set(U);let Me=!1;for(const fe of _)he.has(fe)||(he.add(fe),Me=!0);return Me?Array.from(he):U})},[e.sessionId,V]),a.useEffect(()=>(u(e.sessionId,e.workspaceId),()=>{u(e.sessionId,null)}),[e.sessionId,e.workspaceId,u]),a.useEffect(()=>{let _=!1;return I(E),Nn(e.provider,e.workspaceId).then(U=>{_||I(U)}).catch(()=>{}),()=>{_=!0}},[e.provider,e.workspaceId,E]),Ar(q,F,!S,e.sessionId),Nr(q,ie,!S,e.sessionId);function je(_){l(_),t(Tt(_))}return r.jsx(r.Fragment,{children:r.jsxs("main",{ref:q,className:"workbench-page conversation-page-shell mobile-page-fixed-root mobile-conversation-page","data-mobile-shell":!S,"data-preview-mode":S?void 0:j.displayMode,"data-preview-dragging":S?void 0:j.isDragging,"data-workspace-tone":(K==null?void 0:K.tone)??"root","data-worktree-depth":(K==null?void 0:K.depth)??0,"data-tool-panel-open":S?void 0:N.isOpen,style:{...S?{}:j.pageStyle,...vt(K)??{}},children:[S?r.jsx(Cr,{session:D,workspaceContext:K}):null,S?null:r.jsx(tr,{containerRef:ie,className:"mobile-conversation-page-header",gestureHandlers:de??void 0,currentWorkspace:oe?{id:oe.workspace.id,name:oe.label,path:oe.subtitle}:p[0]??null,workspaces:p,workspaceOptions:L,onSelectWorkspace:je,heading:te.fullTitle,trailing:r.jsx("span",{className:"mobile-conversation-toolbar-title",title:te.fullTitle,children:te.displayTitle})}),S?null:r.jsx(Hr,{visible:!N.isOpen&&j.isVisible,widthPx:j.previewWidthPx,isDragging:j.isDragging,gestureHandlers:j.railGestureHandlers,activeSessionId:e.sessionId,createSessionActionLabel:i("shell.createSession"),favoriteItems:ge,items:O,expandedRootIds:H,workspaceSectionLabel:(oe==null?void 0:oe.label)??i("shell.mobileConversationCurrentWorkspaceSection"),onCreateSession:()=>{x(e.workspaceId,e.provider)},archiveFolderActionLabel:Q.length>0?i("shell.archiveFolderLabel"):void 0,onOpenArchiveFolder:Q.length>0?()=>{me(!0)}:void 0,onToggleSubsessions:_=>{g(U=>U.includes(_)?U.filter(he=>he!==_):[...U,_])},onActivate:_=>{j.closePreview(),l(_.workspace.id),t(Ue(_.workspace.id,_.session.sessionId))}}),r.jsx("div",{className:"mobile-conversation-stage",...de??{},children:r.jsxs("div",{ref:z,className:"mobile-conversation-main",children:[r.jsx(Hs,{connectionState:"closed",onReconnect:()=>{}}),r.jsx("div",{className:"conversation-timeline-shell",children:r.jsx(_s,{sessionId:e.sessionId,messages:b,historyState:"ready",loadingOlderMessages:!1,hasOlderMessages:!1,provider:e.provider,runtimeThinkingPlaceholder:null,sessionRunningState:null,sessionSyncStatus:null,sessionLastErrorCode:null,sessionLastErrorDetail:null,onLoadOlderMessages:()=>{},onRetryMessage:()=>{}})}),N.isOpen?null:r.jsx(Os,{capabilities:y,draftStorageId:e.sessionId,workspaceId:e.workspaceId,panelRef:S?void 0:ne,portalContainer:S?null:Ie,contextUsage:null,taskProvider:e.provider,taskMessages:b,isSubmitting:A,isRunning:!1,onSend:async(_,U)=>{var fe,Re,De,ee;const he=ul();v(se=>[...se,Fn(e.sessionId,_,he,(U==null?void 0:U.attachmentMeta)??[],(U==null?void 0:U.attachments)??[])]),w(!0);const Me=performance.now();pe("session_send.start_live.client_start",{draftSessionId:e.sessionId,workspaceId:e.workspaceId,provider:e.provider,clientRequestId:he,contentLength:_.length});try{const se=await _n({workspaceId:e.workspaceId,provider:e.provider,content:_,clientRequestId:he,model:(U==null?void 0:U.model)??null,reasoningLevel:(U==null?void 0:U.reasoningLevel)??null,permissionMode:at(),attachments:(U==null?void 0:U.attachments)??[],providerConfigMode:(U==null?void 0:U.providerConfigMode)??"global-default",providerPresetId:(U==null?void 0:U.providerPresetId)??null});pe("session_send.start_live.client_response",{draftSessionId:e.sessionId,sessionId:se.sessionId,workspaceId:((fe=se.session)==null?void 0:fe.workspaceId)??e.workspaceId,provider:se.provider,clientRequestId:he,durationMs:Math.round(performance.now()-Me),returnedMessageId:((Re=se.message)==null?void 0:Re.messageId)??null}),se.session&&d(se.session);const we=((ee=(De=se.session)==null?void 0:De.workspaceId)==null?void 0:ee.trim())||e.workspaceId;u(se.sessionId,we),Et("preview"),t(Ue(we,se.sessionId),{replace:!0,state:{composer:{sessionId:se.sessionId,initialModel:(U==null?void 0:U.model)??null,providerConfigMode:(U==null?void 0:U.providerConfigMode)??"global-default",providerPresetId:(U==null?void 0:U.providerPresetId)??null},bootstrap:se.message?{sessionId:se.sessionId,messages:[se.message]}:void 0}}),c()}catch(se){throw pe("session_send.start_live.client_error",{draftSessionId:e.sessionId,workspaceId:e.workspaceId,provider:e.provider,clientRequestId:he,durationMs:Math.round(performance.now()-Me),error:se instanceof Error?se.message:String(se)}),v(we=>xs(we,he)),se}finally{w(!1)}}})]})}),S?null:r.jsx(Dr,{activePanel:N.activePanel,open:N.isOpen,sessionId:e.sessionId,workspaceId:e.workspaceId,navigationGroups:o,onClose:()=>{N.closePanel()},onSelectPanel:_=>{N.selectPanel(_)},onSelectPanelBySwipe:_=>{if(_===null){N.closePanel();return}N.selectPanel(_)}}),r.jsx(Br,{open:ce,workspaceName:(W==null?void 0:W.workspace.name)??null,sessions:Q,restoringSessionId:k,onClose:()=>{k||me(!1)},onRestore:async _=>{$(_);try{await C(_),B({title:i("shell.archiveRestored"),tone:"success"})}catch(U){B({title:U instanceof Error?U.message:i("shell.navigationLoadFailed"),tone:"error"})}finally{$(null)}}})]})})}function za(e,t,n,s=null){var l,u;if(!il(e))return null;const o=t??((l=n.get("workspaceId"))==null?void 0:l.trim())??null,c=((u=n.get("provider"))==null?void 0:u.trim())??s??null;return!o||!On(c)?null:{sessionId:e,workspaceId:o,provider:c}}function Qa(e){const t=new Date().toISOString();return{sessionId:e.sessionId,workspaceId:e.workspaceId,provider:e.provider,providerSessionId:`draft://${e.sessionId}`,rawStoreRef:`draft://${e.sessionId}`,providerConfigMode:"global-default",providerPresetId:null,parentSessionId:null,isSubagent:!1,subagentLabel:null,isArchived:!1,title:vo(e.provider),messageCount:0,lastMessageAt:null,createdAt:t,updatedAt:t,syncStatus:"idle",syncCursor:null,lastSyncAt:null,lastErrorCode:null,lastErrorDetail:null,resumedAt:null,runningState:"idle",activitySource:"none",lastEventAt:null,completedAt:null,lastSeenAt:null,activityState:"idle"}}function kr(e){const t=new Map(e.map(o=>[o.sessionId,o])),n=new Map,s=o=>{const c=n.get(o.sessionId);if(typeof c=="boolean")return c;if(o.isArchived)return n.set(o.sessionId,!1),!1;const l=Jo(o,{mode:"mobile"});if(!l)return n.set(o.sessionId,!0),!0;const u=t.get(l);if(!u)return n.set(o.sessionId,!0),!0;if(u.isArchived){const f=!Lt(o);return n.set(o.sessionId,f),f}const d=s(u);return n.set(o.sessionId,d),d};return e.filter(o=>s(o))}function Tr(e,t,n){if(!t)return[];const s=rs(e,t);if(!s)return[];const o=kr(s.sessions).map(l=>({session:l,workspace:s.workspace}));return ss(o,{mode:"mobile"}).filter(l=>!n.has(l.item.session.sessionId)&&!zo(l.children,u=>n.has(u.session.sessionId)))}function Er(e,t){return e.filter(n=>!Lt(n.session)).flatMap(n=>{const s=rs(t,n.workspace.id);if(!s)return[];const o=ss(kr(s.sessions).map(l=>({session:l,workspace:s.workspace})),{mode:"mobile"}),c=jr(o,n.session.sessionId);return c?[c]:[]})}function jr(e,t){for(const n of e){if(n.item.session.sessionId===t)return n;const s=jr(n.children,t);if(s)return s}return null}function Ar(e,t,n,s){a.useEffect(()=>{const o=e.current;if(!n||!o){o&&o.style.removeProperty("--mobile-conversation-composer-height");return}if(!t){o.style.removeProperty("--mobile-conversation-composer-height");return}const c=o,l=t;function u(){!e.current||!l.isConnected||c.style.setProperty("--mobile-conversation-composer-height",`${l.offsetHeight}px`)}u();const d=typeof ResizeObserver<"u"?new ResizeObserver(u):null;return d==null||d.observe(l),window.addEventListener("resize",u),()=>{d==null||d.disconnect(),window.removeEventListener("resize",u),o.style.removeProperty("--mobile-conversation-composer-height")}},[t,n,s,e])}function Nr(e,t,n,s){a.useEffect(()=>{const o=e.current,c=t.current;if(!n||!o){o&&o.style.removeProperty("--mobile-conversation-page-header-height");return}if(!c){o.style.removeProperty("--mobile-conversation-page-header-height");return}const l=o,u=c;function d(){!e.current||!u.isConnected||l.style.setProperty("--mobile-conversation-page-header-height",`${u.offsetHeight}px`)}d();const f=typeof ResizeObserver<"u"?new ResizeObserver(d):null;return f==null||f.observe(u),window.addEventListener("resize",d),()=>{f==null||f.disconnect(),window.removeEventListener("resize",d),o.style.removeProperty("--mobile-conversation-page-header-height")}},[n,t,s,e])}function Ka(e){return e==="files"||e==="git"||e==="processes"?e:null}function Lr(...e){const t=e.filter(Boolean);return{onTouchStart(n){t.forEach(s=>s.onTouchStart(n))},onTouchMove(n){t.forEach(s=>s.onTouchMove(n))},onTouchEnd(n){t.forEach(s=>s.onTouchEnd(n))},onTouchCancel(n){t.forEach(s=>s.onTouchCancel(n))}}}function _r(e){const t=Ds(),n=ct(),s=As(),o=a.useRef(null),[c,l]=a.useState(()=>e.initialPanel??en()),u=e.initialPanel??c,d=e.enabled&&e.workspaceId!==null&&e.initialPanel!==null;a.useEffect(()=>{if(!e.enabled){o.current=null;return}const I=e.initialPanel??en();l(I),tn(I)},[e.enabled,e.initialPanel]);function f(I,S){const B=new URLSearchParams(t.search);I?(B.set("toolPanel",I),l(I),tn(I)):B.delete("toolPanel");const D=B.toString();n({pathname:t.pathname,search:D?`?${D}`:""},{replace:(S==null?void 0:S.replace)??!1})}function C(I){s.trigger("selection"),f(I,{replace:d})}function x(){d&&(s.trigger("gesture"),f(null,{replace:!0}))}function A(I){if(!e.enabled||!e.workspaceId)return;const S=I??u;s.trigger("gesture"),f(S)}function w(I){if(!e.enabled||I.changedTouches.length!==1){o.current=null;return}if(Za(I.target)){o.current=null;return}const S=I.changedTouches[0];o.current={x:S.clientX,y:S.clientY}}function b(I){const S=o.current;if(o.current=null,!S||I.changedTouches.length!==1||d||e.suspendMainGesture)return;const B=I.changedTouches[0],D=B.clientX-S.x,j=B.clientY-S.y;D>-56||Math.abs(D)<=Math.abs(j)*1.15||A()}function v(I){const S=o.current;if(o.current=null,!S||I.changedTouches.length!==1||!d)return;const B=I.changedTouches[0],D=B.clientX-S.x,j=B.clientY-S.y;D<56||Math.abs(D)<=Math.abs(j)*1.15||x()}return{activePanel:u,closePanel:x,isOpen:d,mainGestureHandlers:{onTouchStart:w,onTouchMove:()=>{},onTouchEnd:b,onTouchCancel:()=>{o.current=null}},openPanel:A,panelGestureHandlers:{onTouchStart:w,onTouchMove:()=>{},onTouchEnd:v,onTouchCancel:()=>{o.current=null}},selectPanel:C}}function Dr(e){const t=a.useRef(null);if(!e.open)return null;function n(o){if(o.changedTouches.length!==1){t.current=null;return}if(Ja(o.target)){t.current=null;return}const c=o.changedTouches[0];t.current={x:c.clientX,y:c.clientY}}function s(o){const c=t.current;if(t.current=null,!c||o.changedTouches.length!==1)return;const l=o.changedTouches[0],u=l.clientX-c.x,d=l.clientY-c.y;if(Math.abs(u)<56||Math.abs(u)<=Math.abs(d)*1.15)return;const f=["files","git","processes"],C=f.indexOf(e.activePanel);if(u<0){e.onSelectPanelBySwipe(f[Math.min(f.length-1,C+1)]??e.activePanel);return}if(C===0){e.onSelectPanelBySwipe(null);return}e.onSelectPanelBySwipe(f[Math.max(0,C-1)]??e.activePanel)}return r.jsxs("section",{className:"mobile-conversation-tool-panel","data-panel":e.activePanel,onTouchStart:n,onTouchEnd:s,onTouchCancel:()=>{t.current=null},children:[r.jsxs("header",{className:"mobile-conversation-tool-panel-header","data-preview-gesture":"ignore",children:[r.jsx("button",{type:"button",className:"mobile-conversation-tool-panel-back","aria-label":i("shell.mobileConversationToolCloseAction"),title:i("shell.mobileConversationToolCloseAction"),onClick:e.onClose,children:r.jsx("span",{"aria-hidden":"true",children:"‹"})}),r.jsx("div",{className:"mobile-conversation-tool-panel-tabs",role:"tablist","aria-label":i("shell.mobileConversationToolTabsLabel"),children:["files","git","processes"].map(o=>r.jsx("button",{type:"button",role:"tab","aria-selected":e.activePanel===o,className:"mobile-conversation-tool-panel-tab",onClick:()=>{e.onSelectPanel(o)},children:o==="files"?i("shell.filesEntry"):o==="git"?i("shell.gitEntry"):i("shell.mobileConversationToolProcessesTab")},o))})]}),r.jsx("div",{className:"mobile-conversation-tool-panel-body",children:e.activePanel==="files"?r.jsx(Kn,{className:"mobile-conversation-tool-surface",hideHeading:!0,sessionId:e.sessionId,workspaceId:e.workspaceId}):e.activePanel==="git"?r.jsx(Zn,{className:"mobile-conversation-tool-surface",panelActive:!0,workspaceId:e.workspaceId}):r.jsx(Jn,{className:"mobile-conversation-tool-surface mobile-tool-native-panel mobile-tool-process-panel",currentWorkspaceId:e.workspaceId,navigationGroups:e.navigationGroups})})]})}function Za(e){return e instanceof Element?!!e.closest("input, textarea, select, option, label, button, a, [contenteditable='true'], [data-preview-gesture='ignore']"):!1}function Ja(e){return e instanceof Element?!!e.closest("input, textarea, select, option, [contenteditable='true']"):!1}function Or(e){const t=As(),[n,s]=a.useState(()=>e?ls():"immersive"),[o,c]=a.useState(()=>jn()),[l,u]=a.useState(()=>e&&ls()==="preview"?"default":"closed"),d=a.useRef(l),f=a.useRef(null);a.useEffect(()=>{d.current=l},[l]),a.useEffect(()=>{if(!e){f.current=null,d.current="closed",u("closed"),s("immersive");return}const m=ls();s(m),u(m==="preview"?"default":"closed")},[e]),a.useEffect(()=>{e&&Et(n)},[e,n]),a.useEffect(()=>{if(typeof window>"u")return;function m(){c(jn())}return m(),window.addEventListener("resize",m),()=>{window.removeEventListener("resize",m)}},[]);function C(m){d.current=m,u(m)}function x(m="default"){C(m),s("preview")}function A(){C("closed"),s("immersive")}function w(){C("expanded"),s("preview")}function b(){if(d.current!=="closed"){t.trigger("gesture"),A();return}t.trigger("gesture"),x()}function v(m,p){const L=p.touches[0]??p.changedTouches[0];if(!e||!L){f.current=null;return}if(tl(p.target)){f.current=null;return}if(m==="main"){if(d.current==="closed"&&L.clientX>Va){f.current=null;return}}else if(d.current==="closed"){f.current=null;return}f.current={source:m,intent:m==="rail"?"rail":d.current==="closed"?"open":"close",startX:L.clientX,startY:L.clientY,lastX:L.clientX,lastY:L.clientY,horizontalLocked:!1}}function E(m){const p=f.current,L=m.touches[0];if(!e||!p||!L)return;const G=L.clientX-p.startX,Y=L.clientY-p.startY;if(p.lastX=L.clientX,p.lastY=L.clientY,!p.horizontalLocked){if(Math.abs(G)<En&&Math.abs(Y)<En)return;if(Math.abs(G)<=Math.abs(Y)){f.current=null;return}if(p.intent==="open"&&G<=0){f.current=null;return}if(p.intent==="close"&&G>=0){f.current=null;return}p.horizontalLocked=!0}}function y(m){var Y;const p=f.current;if(f.current=null,!(p!=null&&p.horizontalLocked))return;const L=(Y=m==null?void 0:m.changedTouches)==null?void 0:Y[0];L&&(p.lastX=L.clientX,p.lastY=L.clientY);const G=p.lastX-p.startX;if(p.intent==="open"){G>=qa&&(t.trigger("gesture"),x("default"));return}if(p.intent==="close"){G<=-34&&(t.trigger("gesture"),A());return}if(G<=-34){t.trigger("gesture"),A();return}G>=Ua&&d.current==="default"&&(t.trigger("gesture"),w())}const I=l==="expanded"?Is:l==="default"?Tn:0,S=Math.round(o*I*100)/100,B=I===0?0:I/Is,D={"--mobile-conversation-preview-default-width":`${Math.round(o*Tn*100)/100}px`,"--mobile-conversation-preview-max-width":`${Math.round(o*Is*100)/100}px`,"--mobile-conversation-preview-width":`${S}px`,"--mobile-conversation-preview-progress":B.toFixed(4)};return{closePreview:A,displayMode:l==="closed"?"immersive":"preview",isDragging:!1,isVisible:l!=="closed",mainGestureHandlers:{onTouchStart:m=>v("main",m),onTouchMove:E,onTouchEnd:y,onTouchCancel:y},pageStyle:D,previewWidthPx:S,railGestureHandlers:{onTouchStart:m=>v("rail",m),onTouchMove:E,onTouchEnd:y,onTouchCancel:y},togglePreview:b}}function Hr({visible:e,widthPx:t,isDragging:n,gestureHandlers:s,activeSessionId:o,createSessionActionLabel:c,favoriteItems:l,items:u,expandedRootIds:d,workspaceSectionLabel:f,onCreateSession:C,archiveCurrentActionLabel:x,archiveFolderActionLabel:A,onArchiveActiveSession:w,onOpenArchiveFolder:b,onToggleSubsessions:v,onActivate:E}){if(!e)return null;function y(I,S){const{workspaceName:B,ancestorExpanded:D=!1,ancestorHasNextSiblings:j=[],hasNextSibling:N=!1,isFirstSibling:m=!1}=S??{},p=I.item.session.sessionId,L=I.children,G=I.depth===0&&L.length>0,Y=D||G&&d.includes(p),K=I.depth>0?[...j,N]:[...j];return r.jsxs("div",{className:"mobile-conversation-preview-tree-node",children:[r.jsxs("div",{className:"mobile-conversation-preview-tree-row",style:{"--mobile-preview-tree-depth":I.depth},children:[I.depth>0?r.jsxs("div",{className:"mobile-conversation-preview-guides","aria-hidden":"true",children:[j.map((te,O)=>te?r.jsx("span",{className:"mobile-conversation-preview-guide-column",style:{"--mobile-preview-tree-level":O+1}},`${p}:ancestor:${O}`):null),r.jsx("span",{className:"mobile-conversation-preview-guide-branch","data-continue":N,"data-first":m,style:{"--mobile-preview-tree-level":I.depth},children:r.jsx("span",{className:"mobile-conversation-preview-guide-branch-horizontal"})})]}):null,r.jsx(el,{entry:I.item,activeSessionId:o,hasSubsessions:G,subsessionsExpanded:Y,workspaceName:B,onToggleSubsessions:G?()=>{v(p)}:void 0,onActivate:E})]}),L.length>0&&Y?r.jsx("div",{className:"mobile-conversation-preview-children",children:L.map((te,O)=>y(te,{workspaceName:B,ancestorExpanded:!0,ancestorHasNextSiblings:K,hasNextSibling:O<L.length-1,isFirstSibling:O===0}))}):null]},`${I.item.workspace.id}:${p}`)}return r.jsxs("aside",{className:"mobile-conversation-preview-rail terminal-mobile-list-rail surface-card","data-dragging":n,style:{width:`${t}px`,maxWidth:`${t}px`},...s,children:[c&&C?r.jsx("div",{className:"mobile-conversation-preview-topbar terminal-mobile-list-footer",children:r.jsxs("button",{type:"button",className:"mobile-conversation-preview-create-button workbench-import-toggle terminal-mobile-list-create",onClick:C,children:[r.jsx("span",{className:"workbench-import-toggle-symbol","aria-hidden":"true",children:"+"}),r.jsx("span",{className:"workbench-import-toggle-label",children:c})]})}):null,r.jsxs("div",{className:"mobile-conversation-preview-body terminal-mobile-list-body",children:[l.length>0?r.jsxs("section",{className:"mobile-conversation-preview-group mobile-conversation-preview-list-favorites terminal-mobile-list-group terminal-mobile-list-group-pinned",children:[r.jsxs("div",{className:"mobile-conversation-preview-group-heading terminal-mobile-list-group-heading",children:[r.jsx("span",{children:i("shell.favoriteSectionTitle")}),r.jsx("span",{className:"workbench-section-counter",children:l.length})]}),r.jsx("div",{className:"mobile-conversation-preview-list mobile-conversation-preview-list-static terminal-mobile-session-list",children:l.map(I=>r.jsx("div",{children:y(I,{workspaceName:I.item.workspace.name})},`favorite:${I.item.workspace.id}:${I.item.session.sessionId}`))})]}):null,r.jsxs("section",{className:"mobile-conversation-preview-group mobile-conversation-preview-group-workspace terminal-mobile-list-group terminal-mobile-list-group-workspace",children:[r.jsxs("div",{className:"mobile-conversation-preview-group-heading terminal-mobile-list-group-heading",children:[r.jsx("span",{children:f}),r.jsx("span",{className:"workbench-section-counter",children:u.length})]}),u.length===0?r.jsx("div",{className:"workbench-session-empty",children:i("shell.emptyWorkspaceSessions")}):r.jsx("div",{className:"mobile-conversation-preview-list terminal-mobile-session-list","data-preview-gesture":"ignore",children:u.map(I=>y(I))})]})]}),x&&w||A&&b?r.jsxs("div",{className:"mobile-conversation-preview-actions terminal-mobile-list-footer",children:[x&&w?r.jsx("button",{type:"button",className:"mobile-conversation-preview-archive-button workbench-import-toggle",onClick:()=>{w()},children:x}):null,A&&b?r.jsx("button",{type:"button",className:"mobile-conversation-preview-archive-button workbench-import-toggle",onClick:b,children:A}):null]}):null]})}function el({entry:e,activeSessionId:t,hasSubsessions:n=!1,subsessionsExpanded:s=!1,onActivate:o,onToggleSubsessions:c,workspaceName:l}){const u=e.session.sessionId===t;return r.jsxs("article",{className:"mobile-conversation-preview-entry terminal-mobile-session-card","data-active":u,children:[n?r.jsx("button",{type:"button",className:"mobile-conversation-preview-toggle","aria-label":s?i("shell.subagentCollapse"):i("shell.subagentExpand"),title:s?i("shell.subagentCollapse"):i("shell.subagentExpand"),"aria-expanded":s,onClick:d=>{d.stopPropagation(),c==null||c()},children:r.jsx("span",{className:An(e.session,{isActive:u,hasSubsessions:n}),"aria-hidden":"true"})}):r.jsx("span",{className:An(e.session,{isActive:u,hasSubsessions:n}),"aria-hidden":"true"}),r.jsx("button",{type:"button",className:"mobile-conversation-preview-item terminal-mobile-session-primary","data-active":u,onClick:()=>o(e),children:r.jsxs("div",{className:"mobile-conversation-preview-item-body",children:[r.jsx("span",{className:"mobile-conversation-preview-item-title",children:e.session.title||i("common.unknown")}),r.jsx("span",{className:"mobile-conversation-preview-item-meta",children:Fr(e.session,l)})]})})]})}function jn(){return typeof window>"u"?390:Math.max(window.innerWidth||390,320)}function tl(e){return e instanceof Element?!!e.closest("input, textarea, select, option, label, [contenteditable='true'], [data-preview-gesture='ignore']"):!1}function An(e,t){const n=ei("mobile-conversation-preview-indicator",e,{hasSubagents:t.hasSubsessions});return n.endsWith(" is-idle")&&t.isActive?"mobile-conversation-preview-indicator is-active":n}function Fr(e,t){const n=Xn(e);return[t??null,At(e.provider),sl(e.lastMessageAt??e.updatedAt),n].filter(Boolean).join(" · ")}function sl(e){return e?new Date(e).toLocaleString(void 0,{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"}):i("common.unknown")}function nl({open:e,busy:t,onClose:n,onConfirm:s}){return r.jsx(Jt,{open:e,title:i("shell.archiveConfirmTitle"),description:i("shell.archiveConfirmDescription"),size:"narrow",layout:"confirm",dismissible:!t,showCloseButton:!1,footer:r.jsxs(es,{children:[r.jsx("button",{type:"button",className:"secondary-button",disabled:t,onClick:n,children:i("common.cancel")}),r.jsx("button",{type:"button",className:"secondary-button workbench-danger-button",disabled:t,onClick:()=>{s()},children:i("shell.archiveAction")})]}),onClose:n,children:r.jsx(r.Fragment,{})})}function Br({open:e,workspaceName:t,sessions:n,restoringSessionId:s,onClose:o,onRestore:c}){const{searchOpen:l,searchKeyword:u,filteredSessions:d,summaryLoading:f,summaryError:C,summaryBySessionId:x,setSearchKeyword:A,toggleSearch:w}=Qo(e,n),b=a.useId(),v=n.length>0&&u.trim().length>0?i("shell.archiveSearchEmpty"):i("shell.archiveEmpty");return r.jsxs(Jt,{open:e,title:i("shell.archiveModalTitle"),description:t?`${t} · ${i("shell.archiveModalDescription")}`:i("shell.archiveModalDescription"),size:"regular",layout:"list",dismissible:!s,headerActions:n.length>0?r.jsx("button",{type:"button",className:"secondary-button","aria-pressed":l,onClick:w,children:i("shell.archiveSearchAction")}):void 0,showCloseButton:!1,onClose:o,children:[l?r.jsxs("div",{className:"workbench-archive-search-panel",children:[r.jsx(Yt,{label:i("shell.archiveSearchLabel"),htmlFor:b,children:r.jsx("input",{id:b,type:"text",value:u,placeholder:i("shell.archiveSearchPlaceholder"),autoFocus:!0,onChange:E=>A(E.target.value)})}),f?r.jsx("p",{className:"workbench-archive-search-status",children:i("shell.archiveSearchSummaryLoading")}):null,C?r.jsx("p",{className:"workbench-archive-search-status status-text","data-tone":"warning",children:C}):null]}):null,d.length>0?r.jsx(bo,{className:"workbench-archive-list",children:d.map(E=>{var S;const y=It(E.title,i("common.unknown")),I=((S=x[E.sessionId])==null?void 0:S.trim())??"";return r.jsx(wo,{className:"workbench-archive-item",trailing:r.jsx("button",{type:"button",className:"secondary-button",disabled:s===E.sessionId,onClick:()=>{c(E.sessionId)},children:i("shell.unarchiveAction")}),children:r.jsxs("div",{className:"workbench-archive-item-main",children:[r.jsx("strong",{title:y.fullTitle,children:y.displayTitle}),r.jsx("p",{children:Fr(E)}),l&&I?r.jsx("p",{className:"workbench-archive-item-summary",children:I}):null]})},E.sessionId)})}):r.jsx(So,{title:v,compact:!0,className:"workbench-section-empty"})]})}function rl(e){return r.jsx("button",{type:"button",className:"conversation-header-ai-button","aria-label":i("conversation.branchTreeAction"),title:i("conversation.branchTreeAction"),onClick:e.onOpenBranchTree,children:r.jsx("span",{className:"conversation-header-ai-button-label","aria-hidden":"true",children:r.jsx(Ko,{})})})}function ol(){return r.jsxs("svg",{viewBox:"0 0 16 16","aria-hidden":"true",children:[r.jsx("path",{d:"M4 3.25a1.75 1.75 0 1 1 0 3.5a1.75 1.75 0 0 1 0-3.5Zm0 6a1.75 1.75 0 1 1 0 3.5a1.75 1.75 0 0 1 0-3.5Zm8-3a1.75 1.75 0 1 1 0 3.5a1.75 1.75 0 0 1 0-3.5Z",fill:"none",stroke:"currentColor",strokeWidth:"1.4"}),r.jsx("path",{d:"M5.75 5h2.15c1.35 0 2.45 1.1 2.45 2.45v.1M5.75 11h2.15c1.35 0 2.45-1.1 2.45-2.45V8.4",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.4"})]})}function il(e){return e.startsWith("draft-")}function al(e,t){if(!t||typeof t!="object")return[];const n=t.bootstrap;if(!n||typeof n!="object")return[];const s=n.sessionId,o=n.messages;return s!==e||!Array.isArray(o)?[]:o.filter(cl)}function ll(e,t){if(!t||typeof t!="object")return{initialModel:null,providerConfigMode:"global-default",providerPresetId:null};const n=t.composer;if(!n||typeof n!="object")return{initialModel:null,providerConfigMode:"global-default",providerPresetId:null};const s=n.sessionId,o=n.initialModel,c=n.providerConfigMode,l=n.providerPresetId;if(s!==e)return{initialModel:null,providerConfigMode:"global-default",providerPresetId:null};const u=typeof o=="string"&&o.trim()||null,d=typeof l=="string"&&l.trim()||null,f=c==="cc-switch-preset"&&d?"cc-switch-preset":"global-default";return{initialModel:u,providerConfigMode:f,providerPresetId:f==="cc-switch-preset"?d:null}}function cl(e){if(!e||typeof e!="object")return!1;const t=e;return typeof t.messageId=="string"&&typeof t.provider=="string"&&typeof t.providerSessionId=="string"&&typeof t.role=="string"&&typeof t.content=="string"&&typeof t.timestamp=="string"&&typeof t.sequence=="number"&&typeof t.rawRef=="string"}function ul(){const e=globalThis.crypto;return e&&typeof e.randomUUID=="function"?e.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}export{jl as ConversationPage};
|