@qt4798/pi-web 0.18.9 → 0.18.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +13 -13
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +1 -1
  15. package/.next/server/app/_not-found.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/api/app-update/route.js +1 -1
  20. package/.next/server/app/index.html +1 -1
  21. package/.next/server/app/index.rsc +3 -3
  22. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  23. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  24. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  25. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/login.html +1 -1
  27. package/.next/server/app/login.rsc +1 -1
  28. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  29. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  30. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  31. package/.next/server/app/page.js +2 -2
  32. package/.next/server/app/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app-paths-manifest.json +13 -13
  34. package/.next/server/chunks/7915.js +1 -1
  35. package/.next/server/middleware-build-manifest.js +1 -1
  36. package/.next/server/pages/404.html +1 -1
  37. package/.next/server/pages/500.html +1 -1
  38. package/.next/server/server-reference-manifest.json +1 -1
  39. package/.next/static/chunks/app/{page-5359d02397efd624.js → page-b5504be1d93b8430.js} +2 -2
  40. package/.next/trace +83 -83
  41. package/.next/trace-build +1 -1
  42. package/package.json +1 -1
  43. /package/.next/static/{M3_J0lDFVpE64US3ufEC2 → Bc4W8o_I-azZJvzY-9RoR}/_buildManifest.js +0 -0
  44. /package/.next/static/{M3_J0lDFVpE64US3ufEC2 → Bc4W8o_I-azZJvzY-9RoR}/_ssgManifest.js +0 -0
@@ -193,7 +193,7 @@ ${r}`:e:r,images:s,pastedBlocks:function(e,t){if(!e?.length&&!t?.length)return;l
193
193
 
194
194
  Goal: ${r}`:e9)}return t.join("\n\n")}({collaborationMode:ez.current,tokenMode:eT.current,goalText:"goal"===ez.current?eM.current??void 0:void 0}),c=[ez.current,eT.current,d?String(d.length):""].join("|"),u=t?.id??"new";d&&(eE.current.sessionKey!==u||eE.current.signature!==c)?(eE.current={sessionKey:u,signature:c},i=`${d}
195
195
 
196
- ${r}`):i=r;let h=i,g=o?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),x={role:"user",content:g?.length?[...r.trim()?[{type:"text",text:r}]:[],...g]:r,timestamp:Date.now()};z(e=>[...e,x]),rS.current=c8(x),rw.current=a;let f="goal"===ez.current&&!l&&s.length>0&&"idle"===eF.current.status;f&&(eM.current=s,eP(e=>({...e,status:"running",goalText:s,turnsUsed:0,noProgressTurns:0,tokensUsed:0})),eO.current=!0),rr.current=!0,q(!0),tf(l?{kind:"running_command"}:{kind:"waiting_model"}),A({type:"start"}),rg.current=!0,tv(!0),rx.current=!0;let m=o?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),v=null,y=!1;try{if(p&&n){let e=t6.current??await rk.current,t=e??await rK();if(t){v=t,rq(1,r),ea&&(ta(ea),e&&await tE(t,{type:"set_model",provider:ea.provider,modelId:ea.modelId}));let n=await Promise.race([rX(t).then(()=>!0).catch(()=>!1),c6(4e3).then(()=>!1)]);y=!0,await tE(t,{type:"prompt",message:h,...m?.length?{images:m}:{}}),n||ne(t,a),f&&tE(t,{type:"goal_start",goalText:s}).catch(()=>{})}else throw Error("Unable to create a session for this message")}else if(t){v=t.id;let e=await Promise.race([rX(t.id).then(()=>!0).catch(()=>!1),c6(4e3).then(()=>!1)]);y=!0,await tE(t.id,{type:"prompt",message:h,...m?.length?{images:m}:{}}),e||ne(t.id,a),f&&tE(t.id,{type:"goal_start",goalText:s}).catch(()=>{})}l&&v&&ne(v,a)}catch(t){if(console.error("Failed to send message:",t),y&&v&&!(t instanceof tR&&"prompt_rejected"===t.code&&!1===t.accepted))return void ne(v,a);if(eE.current={sessionKey:"",signature:""},f&&(eM.current=null,eO.current=!1,eP(e=>({...e,status:"idle",goalText:null}))),ro.current=!1,rY(),t instanceof c2){let e=rS.current;e&&z(t=>{let r=t[t.length-1];return r?.role==="user"&&c8(r)===e?t.slice(0,-1):t}),r0({type:"error",message:t.message})}else{let r=rS.current;r&&z(e=>{let t=e[e.length-1];return t?.role==="user"&&c8(t)===r?e.slice(0,-1):e});let n=e.chatInputRef?.current;n?.restoreSubmission?n.restoreSubmission(x):n?.replaceMessage?.(x),r0({type:"error",message:`Failed to send message: ${t instanceof Error?t.message:String(t)}`})}rS.current=null,rr.current=!1,q(!1),tf(null),A({type:"end"})}},[p,n,ea,t,rK,rX,rq,ne,r0,rJ,rY,r$,e.chatInputRef]),nl=(0,o.useCallback)(async(r,n)=>{if(rr.current||ra.current)return;let o=`${n?"!!":"!"}${r}`;ra.current=!0,Y({command:r,excludeFromContext:n}),V(!0);try{let e=t6.current??t?.id??await rK();if(!e)throw Error("Unable to create a session for the shell command");rq(1,o),await tE(e,{type:"bash",command:r,excludeFromContext:n}),await rU(e)}catch(t){console.error("Failed to execute shell command:",t),r0({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(o)}finally{ra.current=!1,Y(null),V(!1)}},[r0,rK,rU,e.chatInputRef,rq,t]),na=(0,o.useCallback)(async()=>{let e=t6.current;if(e)try{await tE(e,{type:ra.current?"abort_bash":"abort"})}catch(e){console.error("Failed to abort:",e)}},[]),nd=(0,o.useCallback)(async e=>{let t=t6.current;if(t){tt(e);try{let{cancelled:r,newSessionId:n}=await tE(t,{type:"fork",entryId:e})??{};!r&&n&&l?.(n)}catch(e){console.error("Fork failed:",e)}finally{tt(null)}}},[l]),nc=(0,o.useCallback)(async e=>{if(ra.current)return!1;let t=t6.current;if(!t)return!1;try{let r=await tE(t,{type:"navigate_tree",targetId:e});if(r?.cancelled||t6.current!==t)return!1;return S(e),await rU(t),t6.current===t}catch(e){return console.error("Failed to navigate:",e),!1}},[rU]),nu=(0,o.useCallback)(async e=>{S(e);let t=t6.current;t&&(await r2(t,e),e&&tE(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[r2]),np=(0,o.useCallback)(async(e,t)=>{if(p){let r={provider:e,modelId:t};rI.current=r,ed(r),ta(r),null===rM.current&&t7(cQ(t5.current[`${e}/${t}`])??t3.current);let n=t6.current??await rk.current;if(!n)return;try{await tE(n,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=t6.current;if(!r)return;let n=++rC.current,o=tr??g?.context.model??null;tn({provider:e,modelId:t});try{let n=await tE(r,{type:"set_model",provider:e,modelId:t});ti({provider:n.provider,modelId:n.id}),await rU(r)}catch(i){console.error("Failed to set model:",i),rC.current===n&&(tn(o&&(o.provider!==e||o.modelId!==t)?o:null),r0({type:"error",message:i instanceof Error?i.message:String(i)})),await rU(r,!1,!0)}},[r0,tr,g?.context.model,p,ed]),nh=(0,o.useCallback)(async()=>{let e=t6.current;if(e&&!td){tc(!0),tp(null),tg(null);try{let t=await tE(e,{type:"compact"});tg(c7(t,"manual")),await rU(e,!0)}catch(e){tp(e instanceof Error?e.message:String(e)),tg(null)}finally{tc(!1)}}},[td,rU]),ng=(0,o.useCallback)(async e=>{let r=++rz.current,o=n??t?.cwd??"",i=o?`/api/models?cwd=${encodeURIComponent(o)}`:"/api/models",s=rT.current;s?.abort();let l=new AbortController;rT.current=l;let a=()=>l.abort();e?.aborted?l.abort():e?.addEventListener("abort",a,{once:!0});try{let e=await fetch(i,{signal:l.signal});if(!e.ok){let t=`HTTP ${e.status}`;try{let r=await e.json();r?.error&&(t=r.error)}catch{}throw Error(t)}let t=await e.json();if(r!==rz.current||h!==rR.current)return;el(null),X(t.models),et(t.thinkingLevels??{}),en(t.thinkingLevelMaps??{}),ei(t.modelScopeWarnings??[]);let n=t.modelList??[];if(Q(n),p&&!t6.current){let e=(t.defaultModel?n.find(e=>e.id===t.defaultModel?.modelId&&e.provider===t.defaultModel?.provider):void 0)??n[0];eu(e?{provider:e.provider,modelId:e.id}:null);let r=e?t.thinkingLevelPins?.[`${e.provider}/${e.id}`]:void 0;null===rM.current&&eU(r??"auto")}}catch(e){if(l.signal.aborted||r!==rz.current||h!==rR.current)return;el(e instanceof Error?e.message:String(e))}finally{e?.removeEventListener("abort",a),rT.current===l&&(rT.current=null)}},[p,h,n,t?.cwd]),nx=(0,o.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,r,n=""]=t,o=n.trim(),i=t6.current??await rK(),s=e=>(e.handled&&(e.error?r0({type:"error",message:e.error}):"openSessionStats"!==e.action&&r0({type:"success",message:e.message??"Command completed"})),e);try{switch(r){case"compact":{if(!i||td)return s({handled:!0,error:"No active session to compact"});tc(!0),tp(null),tg(null);let e=await tE(i,{type:"compact",...o?{customInstructions:o}:{}});return tg(c7(e,"manual")),await rU(i,!0)&&rq(),s({handled:!0,message:"Compacted context"})}case"auto-compact":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_state"}),t=!(e?.autoCompactionEnabled??!0);return await tE(i,{type:"set_auto_compaction",enabled:t}),eH(t),s({handled:!0,message:t?"Auto-compaction enabled":"Auto-compaction disabled"})}case"reload":if(!i)return s({handled:!0,error:"No active session to reload"});return await tE(i,{type:"reload"}),await Promise.all([rU(i,!1,!0),r_(i),rV(),ng()]),s({handled:!0,message:"Reloaded session resources"});case"name":if(!i)return s({handled:!0,error:"No active session to name"});if(!o)return s({handled:!0,error:"Usage: /name <name>"});return await tE(i,{type:"set_session_name",name:te(o)}),await rU(i)&&rq(),s({handled:!0,message:`Session renamed to ${o}`});case"session":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_session_stats"});return e&&tI(e),u?.(),s({handled:!0,action:"openSessionStats"})}case"copy":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return s({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),s({handled:!0,message:"Copied last assistant message"})}case"clone":{if(!i)return s({handled:!0,error:"No active session to clone"});if(rr.current||ra.current)return s({handled:!0,error:"Cannot clone while the session is running"});let e=await tE(i,{type:"clone",leafId:w});if(e?.cancelled||!e?.newSessionId)return s({handled:!0,error:"Cannot clone an empty or unsaved session"});let t=s({handled:!0,message:"Cloned current session branch"});return l?.(e.newSessionId),t}default:return{handled:!1}}}catch(e){return s({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&tc(!1)}},[w,r0,rK,td,ng,rU,rV,r_,rq,l,u]),nf=(0,o.useCallback)(async e=>{let t=!1;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let e=await r.json(),n=e.state;if(e.running&&n&&(n.isStreaming||n.isPromptRunning||n.isBashRunning||n.isCompacting))return;t=!0}}catch{}t?r3():ne(e)},[ne,r3]),nm=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(r,{type:"steer",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to steer:",e),nf(r)}},[nf]),nv=(0,o.useCallback)(async(e,t,r)=>{let n=t6.current;if(!n)return;let o=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(n,{type:"prompt",message:e,streamingBehavior:t,...o?.length?{images:o}:{}})}catch(e){console.error("Failed to queue prompt:",e),nf(n)}},[nf]),ny=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(r,{type:"follow_up",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to follow up:",e),nf(r)}},[nf]),nb=(0,o.useCallback)(async()=>{let e=t6.current;if(e)try{await tE(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),nk=(0,o.useCallback)(async()=>{let t=t6.current;if(t)try{let r=await tE(t,{type:"clear_queue"});tO({steering:[],followUp:[]});let n=[...r?.steering??[],...r?.followUp??[]];n.length>0&&e.chatInputRef?.current?.prependText(n.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),r0({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,r0,tO]);(0,o.useEffect)(()=>{0===tB.length&&tK(!1)},[tB.length]);let nj=(0,o.useCallback)(async(e,t,r=!1)=>{let n=t6.current;if(!n)return tB;try{let o=await tE(n,{type:"resolve_recovery",keep:e,discard:t,continueRun:r}),i=o?.remaining??[];return t_(i),r&&e.length>0&&(async()=>{try{let e=await fetch(`/api/agent/${encodeURIComponent(n)}`);if(!e.ok)return;let t=await e.json(),r=t.state;if(!t.running||!r||!r.isStreaming&&!r.isPromptRunning)return;rn.current=!!r.isStreaming,ro.current=!!r.isPromptRunning,rr.current=!0,q(!0),tf(cG(r)),A({type:"start"}),rG(n),!r.isStreaming&&r.isPromptRunning&&ne(n)}catch{}})(),i}catch(e){return console.error("Failed to resolve queued message recovery:",e),r0({type:"error",message:"Failed to resolve queued message recovery"}),tB}},[tB,r0,rG,ne,t_]),nw=(0,o.useCallback)(async()=>{let e=t6.current;if(!e)return null;try{return await tE(e,{type:"export_queue"})}catch(e){return console.error("Failed to export queue:",e),r0({type:"error",message:"Failed to export queue"}),null}},[r0]),nS=(0,o.useCallback)(async e=>{let t=t6.current;if(!t)return null;try{let r=await tE(t,{type:"import_queue",entries:e});return r&&tO(cZ(r)),r?.imported??0}catch(e){return console.error("Failed to import queue:",e),r0({type:"error",message:"Failed to import queue"}),null}},[r0,tO]),nC=(0,o.useCallback)(async e=>{let t=t6.current;if(!t)return null;try{let r=await tE(t,{type:"stage_recovery",entries:e});return r?.pendingRecovery&&t_(r.pendingRecovery),(r?.staged??0)>0&&tK(!0),r?.staged??0}catch(e){return console.error("Failed to stage imported queue:",e),r0({type:"error",message:"Failed to stage imported queue"}),null}},[r0,t_]),nz=(0,o.useCallback)(async(e,t,r)=>{let n=t6.current;if(!n)return!1;try{let o=await tE(n,{type:"move_queue",kind:e,fromIndex:t,toIndex:r});return o&&tO(cZ(o)),!0}catch(e){return console.error("Failed to move queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to move queued message"}),!1}},[r0,tO]),nT=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return null;try{let n=await tE(r,{type:"recall_queue_item",kind:e,index:t});return n&&(void 0!==n.steering||void 0!==n.followUp)&&tO(cZ(n)),n?.entry?{text:n.entry.text,images:n.entry.images?.map(({data:e,mimeType:t})=>({data:e,mimeType:t}))}:null}catch(e){return console.error("Failed to recall queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to recall queued message"}),null}},[r0,tO]),nR=(0,o.useCallback)(async(e,t,r,n)=>{let o=t6.current;if(!o)return!1;try{let i=await tE(o,{type:"requeue_at",kind:e,index:t,text:r,images:n?.map(({data:e,mimeType:t})=>({type:"image",data:e,mimeType:t}))});return i&&tO(cZ(i)),!0}catch(e){return console.error("Failed to requeue message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to requeue message"}),!1}},[r0,tO]),nI=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return!1;try{let n=await tE(r,{type:"remove_queue_item",kind:e,index:t});return n&&tO(cZ(n)),!0}catch(e){return console.error("Failed to remove queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to remove queued message"}),!1}},[r0,tO]),nM=(0,o.useCallback)(async e=>{if("auto"===e){rM.current=null,eU(e);return}rM.current=e,eU(e);let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_thinking_level",level:e}),t4.current&&t6.current===t&&eq(e)}catch(e){console.error("Failed to set thinking level:",e)}},[]),nE=(0,o.useCallback)(async e=>{let t=(0,cB.xG)(e);!function(e,t=function(){try{return window.localStorage}catch{return null}}()){if(t)try{t.setItem("pi-tool-preset",e)}catch{}}(e),rL(e);let r=t6.current??await rk.current;if(!r){rt.current=void 0!==t;return}try{let e=await tE(r,{type:"set_tools",...void 0!==t?{toolNames:t}:{}});rt.current=void 0!==t;let n=e?.sessionId??r;(n!==r||e?.recreated)&&(rJ(),rY(),t6.current=n),tj([]),tA([]),tF([]);let[o]=await Promise.all([tE(n,{type:"get_state"}),r_(n)]);t4.current&&t6.current===n&&(eX(o.systemPrompt??""),ts(o))}catch(e){console.error("Failed to set tools:",e)}},[rJ,rY,r_,rL,ts]),n$=(0,o.useRef)(0),nW=(0,o.useCallback)(async e=>{let t=t6.current??await rk.current,r=++n$.current;if("plan"===e){if(eg.current="plan"===ep||"configured"===ep?"default":ep,t)try{await tE(t,{type:"prompt",message:"/plan"})}catch(e){if(n$.current!==r)return;console.error("Failed to enter plan mode:",e)}return}if(t){try{if(await tE(t,{type:"prompt",message:"/plan exit"}),n$.current!==r)return}catch(e){if(n$.current!==r)return;console.error("Failed to exit plan mode:",e)}if(n$.current!==r)return;try{await tE(t,{type:"set_tools",toolNames:(0,cB.xG)(eg.current)})}catch(e){console.error("Failed to restore tools after plan exit:",e)}}},[ep]),nL=(0,o.useCallback)(e=>{e$.current=e,em(e);let t=t6.current;if(!t){ev.current=e;return}ev.current=null,fetch(`/api/modes?session=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(e=>{console.error("Failed to persist mode settings:",e)})},[]),nN=(0,o.useCallback)(e=>{let t=e2(e),r="plan"===ez.current;if(nL({...e$.current,collaborationMode:t}),ez.current=t,eE.current={sessionKey:"",signature:""},"goal"!==t){eM.current=null,eO.current=!1,eP(e=>"idle"===e.status?e:{...e,status:"idle",goalText:null});let e=t6.current;e&&tE(e,{type:"goal_stop"}).catch(()=>{})}return"plan"!==t||r?"plan"!==t&&r?nW("normal"):Promise.resolve():nW("plan")},[nL,nW]),nA=(0,o.useCallback)(async e=>{nL({...e$.current,tokenMode:e6(e)});let t=t6.current??await rk.current;if(t)try{if("economy"!==e||ex.current){if("economy"!==e){let e=ex.current?cB.SC:(0,cB.xG)("plan"===ep?"default":ep);await tE(t,{type:"set_tools",toolNames:e})}}else await tE(t,{type:"set_tools",toolNames:[...e5]})}catch(e){console.error("Failed to apply token mode tools:",e)}},[nL,ep]),nP=(0,o.useCallback)(async e=>{nL({...e$.current,toolApprovalMode:e4(e)});let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_approval_mode",mode:e4(e)})}catch(e){console.error("Failed to apply approval mode:",e)}},[nL]),nF=(0,o.useCallback)(async e=>{nL({...e$.current,permissionRules:e});let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_approval_policy",policy:e})}catch(e){console.error("Failed to apply permission rules:",e)}},[nL]),nD=(0,o.useCallback)(async(e,t,r,n)=>{let o=t6.current;if(o){if("always"===n){let r=eN.current.find(t=>t.id===e);if(r){let e=aD(r.toolName,r.args),n=e?`${r.toolName}(${e})`:r.toolName,o=e$.current.permissionRules;(t?o.allow:o.deny).includes(n)||nF(t?{...o,allow:[...o.allow,n]}:{...o,deny:[...o.deny,n]})}}try{await tE(o,{type:"resolve_approval",id:e,approve:t,reason:r})}catch(e){console.error("Failed to resolve approval:",e)}finally{eL(t=>t.filter(t=>t.id!==e))}}},[nF]),nH=(0,o.useCallback)(e=>{eM.current=e},[]),nO=(0,o.useCallback)(e=>{let t=e.trim();if(!t)return;eM.current=t,eP(e=>({...e,status:"running",goalText:t,turnsUsed:0,noProgressTurns:0,tokensUsed:0,startedAt:Date.now()}));let r=t6.current;r&&tE(r,{type:"goal_start",goalText:t}).catch(()=>{})},[]),nB=(0,o.useCallback)(()=>{if("running"!==eF.current.status)return;eP(e=>({...e,status:"paused"}));let e=t6.current;e&&tE(e,{type:"goal_pause"}).catch(()=>{})},[]),nU=(0,o.useCallback)(()=>{let e=eF.current;if("paused"!==e.status&&"blocked"!==e.status)return;eP(e=>({...e,status:"running"}));let t=t6.current;t&&tE(t,{type:"goal_resume"}).catch(()=>{})},[]),n_=(0,o.useCallback)(()=>{eO.current=!1,eM.current=null,eP(e=>({...e,status:"idle",goalText:null,turnsUsed:0,noProgressTurns:0}));let e=t6.current;e&&tE(e,{type:"goal_stop"}).catch(()=>{})},[]),nq=(0,o.useCallback)(e=>{let t=e.trim();if(!t)return;eP(e=>({...e,goalText:t}));let r=t6.current;r&&tE(r,{type:"goal_edit",goalText:t}).catch(()=>{})},[]),nK=(0,o.useCallback)(()=>{let e=rb.current,t=rh.current;if(!e||!t)return;let r=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop,n=Math.max(0,e.scrollHeight-e.clientHeight),o=Math.min(Math.max(0,r-16),n);rf.current=o>=n-150,rv.current=Date.now()+700,e.scrollTo({top:o,behavior:"smooth"})},[]),nV=(0,o.useCallback)(e=>{if(e instanceof KeyboardEvent){if(!c1.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))return}else if(e instanceof PointerEvent){let t=rb.current;if(t&&e.target instanceof Element&&!t.contains(e.target))return}rm.current=Date.now()+1200},[]),nJ=(0,o.useCallback)(()=>{let e=rb.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:n}=e,o=rr.current,i=rf.current,s=function(e,t,r,n,o,i=96){return!!cJ(r,n,o)||!(r<t)&&(!!(!e&&r>t&&cJ(r,n,o,i))||e)}(i,t9.current,t,r,n,o?96:8);rf.current=s,t9.current=t;let l=function(e,t,r,n=8){return!(r<=t)&&!cJ(e,t,r,n)}(t,r,n);tb(e=>e===l?e:l),!i&&s&&o&&no("auto")}if(Date.now()<rm.current){rx.current=!1;return}Date.now()<rv.current||(rx.current=!1)},[]);(0,o.useEffect)(()=>{if(rs.current=!0,t){var e;let r;t6.current=t.id;let n=(e=t.id,(r=cq().get(e))?Date.now()-r.savedAt>6e5?(cq().delete(e),null):(cq().delete(e),cq().set(e,r),r):null);n&&(x({sessionId:t.id,filePath:"",leafId:n.leafId,context:{messages:n.messages,entryIds:n.entryIds,oldestEntryId:n.oldestEntryId,hasMore:n.hasMore,thinkingLevel:n.thinkingLevel,model:n.model},stats:n.stats,...void 0!==n.totalActiveMs?{totalActiveMs:n.totalActiveMs}:{}}),S(n.leafId),z(n.messages),M(n.entryIds),$(n.oldestEntryId),L(n.hasMore),j(null),b(!1));let o=eR.current,i=eI.current;("auto"!==o||i.allow.length||i.ask.length||i.deny.length)&&(tE(t.id,{type:"set_approval_mode",mode:o}).catch(()=>{}),tE(t.id,{type:"set_approval_policy",policy:i}).catch(()=>{}));let s=e=>{!rc.current&&(rc.current=!0,e.isBashRunning&&(ra.current=!0,V(!0),nt(t.id)),r_(t.id),(e.isStreaming||e.isPromptRunning)&&(rn.current=!!e.isStreaming,ro.current=!!e.isPromptRunning,rr.current=!0,q(!0),tf(cG(e)),A({type:"resume"}),rG(t.id),!e.isStreaming&&e.isPromptRunning&&ne(t.id)))};(async()=>{try{let e,r=new AbortController,n=setTimeout(()=>r.abort(),2e4);try{e=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/state`,{signal:r.signal})}finally{clearTimeout(n)}if(!e.ok)throw Error(`HTTP ${e.status}`);let o=await e.json();if(!rs.current||t6.current!==t.id)return;o.running&&o.state&&s(o.state)}catch{}})(),rU(t.id,!n,!0,{force:!0}).then(e=>{e?.running&&e.state&&s(e.state),e?.state&&(void 0!==e.state.isCompacting&&tc(e.state.isCompacting),void 0!==e.state.contextUsage&&eY(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eX(e.state.systemPrompt??null),void 0!==e.state.extensionStatuses&&tA(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&tF(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&tO(cZ(e.state.queuedMessages)),void 0!==e.state.pendingRecovery&&t_(e.state.pendingRecovery??[])),e?.running||(async()=>{for(let e=0;e<5;e++){if(e>0&&await new Promise(e=>setTimeout(e,2e3)),!rs.current||t6.current!==t.id||rr.current)return;try{let e=await fetch(`/api/agent/${encodeURIComponent(t.id)}`);if(!e.ok)continue;let r=await e.json();if(!rs.current||t6.current!==t.id)return;if(r?.running&&r.state)return void s(r.state)}catch{}}})()})}return()=>{rs.current=!1,f.current?.abort(),v.current?.abort(),r$(),tY(),rd.current+=1,rJ(),rY()}},[r$]),(0,o.useEffect)(()=>{c?.(eG)},[eG,c]),(0,o.useEffect)(()=>{d&&d(g?.tree??[],w,nu)},[g?.tree,w,nu,d]),(0,o.useEffect)(()=>(window.addEventListener("keydown",nV),window.addEventListener("pointerdown",nV,{passive:!0}),()=>{window.removeEventListener("keydown",nV),window.removeEventListener("pointerdown",nV)}),[nV]),(0,o.useEffect)(()=>{let e=rb.current;if(e)return e.addEventListener("wheel",nV,{passive:!0}),e.addEventListener("touchstart",nV,{passive:!0}),e.addEventListener("scroll",nJ,{passive:!0}),()=>{e.removeEventListener("wheel",nV),e.removeEventListener("touchstart",nV),e.removeEventListener("scroll",nJ)}},[C.length,y,nJ,nV]),(0,o.useEffect)(()=>{C.length>0&&(rg.current?(rp.current=!0,rh.current&&(rg.current=!1,nK())):y||!rp.current?(y||(rp.current=!0),no("instant")):!rr.current&&(rx.current||rf.current)&&(no("smooth"),nX(e=>e+1)))},[C.length,y,_,no,nK]);let nY=(0,o.useRef)(null),[nG,nX]=(0,o.useState)(0),nZ=`${t?.id??null}#${nG}`;(0,o.useEffect)(()=>{let e;if(y){nY.current=null;return}if(0===C.length||nY.current===nZ)return;nY.current=nZ;let t=!1,r=!1,n=-1,o=0,i=Date.now(),s=()=>{if(t||r)return;let l=rb.current;if(l){if(Date.now()<rm.current){let{scrollTop:e,clientHeight:t,scrollHeight:n}=l;if(e+t<n-150){r=!0;return}}if(no("instant"),l.scrollHeight===n){if((o+=1)>=4||Date.now()-i>=3e4)return}else if(n=l.scrollHeight,o=0,Date.now()-i>=3e4)return;e=window.setTimeout(s,o>0?500:250)}};return e=window.setTimeout(s,250),()=>{t=!0,void 0!==e&&window.clearTimeout(e)}},[y,no,nZ]),(0,o.useEffect)(()=>{let e=new AbortController;return ng(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[ng,a]),(0,o.useEffect)(()=>{if(!es)return;let e=()=>{"visible"===document.visibilityState&&ng()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}},[es,ng]),(0,o.useEffect)(()=>{if(!tu)return;let e=setTimeout(()=>tp(null),3e3);return()=>clearTimeout(e)},[tu]),(0,o.useEffect)(()=>{if(!th)return;let e=setTimeout(()=>tg(null),6e3);return()=>clearTimeout(e)},[th]),(0,o.useEffect)(()=>{if(0===tC.visible.length)return;let e=tC.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{tz({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!tC.visible[0])return;let t=setTimeout(()=>{tz({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[tC.visible]),(0,o.useEffect)(()=>{tI(null)},[C.length,eJ?.tokens,eJ?.percent,eJ?.contextWindow]);let nQ=g?.tree??[];return{isAutoThinkingSelection:p&&null===rH,data:g,loading:y,error:k,activeLeafId:w,messages:C,activeToolResults:T,entryIds:I,historyCursor:E,hasEarlierMessages:W,streamState:N,agentRunning:_,bashRunning:K,pendingBash:J,modelNames:G,modelList:Z,modelThinkingLevels:ee,modelThinkingLevelMaps:er,modelScopeWarnings:eo,modelsError:es,newSessionModel:ea,toolPreset:ep,thinkingLevel:rO??eB,retryInfo:eK,contextUsage:eJ,systemPrompt:eG,forkingEntryId:eZ,isCompacting:td,compactError:tu,compactResult:th,currentModel:rP,displayModel:rF,sessionStats:rB,tokenRate:F,planMode:eC,collaborationMode:ek,tokenMode:ej,toolApprovalMode:ew,permissionRules:eS,modeSettings:ef,approvalRequests:eW,handleCollaborationModeChange:nN,handleTokenModeChange:nA,handleToolApprovalModeChange:nP,handlePermissionRulesChange:nF,resolveApproval:nD,setActiveGoalText:nH,goalState:eA,handleGoalStart:nO,handleGoalPause:nB,handleGoalResume:nU,handleGoalStop:n_,handleGoalEdit:nq,slashCommands:tk,slashCommandsLoading:tw,queuedMessages:tD,pendingRecovery:tB,recoveryIsImport:tq,notices:tC.visible,extensionDialog:tM,extensionCustomUi:tW,extensionStatuses:tN,extensionWidgets:tP,respondToExtensionUi:rZ,sendExtensionCustomInput:rQ,agentPhase:tx,isNew:p,promptAnchorActive:tm,branchTree:nQ,autoCompactionEnabled:eD,sessionIdRef:t6,eventSourceRef:tG,messagesEndRef:ry,scrollContainerRef:rb,lastUserMsgRef:rh,pendingScrollToUserRef:rg,initialScrollDoneRef:rp,scrollUserMsgToTop:nK,handleSend:ns,executeBash:nl,handleAbort:na,handleFork:nd,handleNavigate:nc,handleModelChange:np,handleCompact:nh,handleSteer:nm,handleFollowUp:ny,handlePromptWithStreamingBehavior:nv,handleAbortCompaction:nb,handleRecallQueue:nk,resolveRecovery:nj,exportQueueData:nw,importQueueData:nS,stageQueueImport:nC,moveQueuedMessage:nz,recallQueuedMessage:nT,requeueAt:nR,removeQueuedMessage:nI,handleBuiltinSlashCommand:nx,handleToolPresetChange:nE,handleThinkingLevelChange:nM,loadTools:r_,loadSlashCommands:rV,reloadModels:ng,setActiveLeafId:S,setData:x,setMessages:z,loadContext:r2,dispatch:A,setAgentRunning:q,setForkingEntryId:tt,handleLeafChange:nu,handleAgentEventRef:ru}}({session:e,newSessionCwd:t,onAgentEnd:N,onSessionCreated:s,onSessionForked:l,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:u,onSystemPromptChange:p,onSessionStatsPanelOpen:g}),[tz,tT]=(0,o.useState)(!1);(0,o.useEffect)(()=>{0===em.length&&tT(!1)},[em.length]);let tI=(0,o.useMemo)(()=>{let e=O.findLast(e=>"assistant"===e.role&&!!e.usage);if(!e?.usage)return null;let t=e.usage;return{model:e.model??"",input:t.input??0,output:t.output??0,cacheRead:t.cacheRead??0,costCNY:ar(e.model)?an(e.model,t):0,costUSD:ar(e.model)?0:t.cost?.total??0}},[O]),[tM,t$]=(0,o.useState)(!1),[tW,tL]=(0,o.useState)(null),tN=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(!td){tN.current=!1;return}if(q){tN.current=!0;return}tN.current&&(tN.current=!1,tL(function(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if("assistant"!==r.role)continue;let n=r.content;if("string"==typeof n&&n.trim())return n;if(Array.isArray(n)){let e=n.filter(e=>"text"===e.type).map(e=>e.text??"").join("\n").trim();if(e)return e}}for(let t=e.length-1;t>=0;t--){let r=e[t];if("toolResult"!==r.role)continue;let n=r.content,o="string"==typeof n?n:Array.isArray(n)?n.map(e=>e.text??"").join("\n"):"";if(!o)continue;let i=o.match(/\*\*Proposed Plan\*\*\s*\n+([\s\S]+)/i);if(i?.[1]?.trim())return i[1].trim()}return null}(O)??null),t$(!0))},[q,td,O]);let tA=(0,o.useCallback)(()=>{t$(!1);let e=tP.current;e&&th("plan"===tc?"normal":tc).catch(e=>{console.error("Failed to leave plan mode before executing:",e)}).then(()=>{eF(E("tasks.planReviewExecutePrompt",{plan:e}))})},[th,eF,E,tc]),tP=(0,o.useRef)(null);(0,o.useEffect)(()=>{tP.current=tW},[tW]);let tF=(0,o.useCallback)(e=>{t$(!1),eF(e)},[eF]),tD=(0,o.useCallback)(()=>{t$(!1),th("plan"===tc?"normal":tc)},[th,tc]);(0,o.useEffect)(()=>{eb&&L.current!==eb.id&&(L.current=eb.id,W.current&&$.current())},[eb]),(0,o.useEffect)(()=>(a=q||K?eH:null,()=>void(a=null)),[q,K,eH]);let[tH,tO]=(0,o.useState)(!1),[tB,tU]=(0,o.useState)(!1),[t_,tq]=(0,o.useState)(!1),tK=(0,o.useCallback)(()=>{let e=eW.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;tO(e.scrollTop>1),tU(t>1),tq(t>240)},[eW]),tV=(0,o.useCallback)(()=>{window.requestAnimationFrame(()=>{let e=eW.current,t=e$.current;if(!e||!t)return;let r=Math.max(88,c?.current?.measureHeight?.()??0),n=()=>{if(!e||!t)return;let n=Math.max(0,t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop-96-e.clientHeight+r);e.scrollTo({top:n,behavior:"auto"})};n(),tK(),window.setTimeout(n,200)})},[e$,eW,tK,c]);(0,o.useEffect)(()=>{let e=eW.current;if(!e)return;let t=new ResizeObserver(tK);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),e.addEventListener("scroll",tK,{passive:!0}),tK(),()=>{e.removeEventListener("scroll",tK),t.disconnect()}},[O.length,eW,tK]);let tJ=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let t=eW.current;if(!t)return;let r=()=>{if(tJ.current||!tS||!tw||t.scrollTop>8)return;let r=e?.id;if(!r)return;tJ.current=!0;let n=t.scrollHeight-t.scrollTop;tC(r,eI,tw).finally(()=>{tJ.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})};return t.addEventListener("scroll",r,{passive:!0}),()=>t.removeEventListener("scroll",r)},[eW,tw,tS,tC,e?.id,eI]);let tY=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(!tS||!tw)return;let t=eW.current,r=e?.id;if(!t||!r||tJ.current||tY.current||D||t.scrollTop>8||t.scrollHeight>t.clientHeight+50)return;tY.current=!0;let n=t.scrollHeight-t.scrollTop;tC(r,eI,tw).finally(()=>{tY.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})},[eW,tw,tS,tC,e?.id,eI,D,O.length]);let tG=(0,o.useRef)(null),tX=(0,o.useRef)([]),tZ=(0,o.useRef)(new Map),tQ=(0,o.useRef)(null),[t0,t1]=(0,o.useState)(0);(0,o.useEffect)(()=>{let e=tQ.current;if(!e)return void t1(e=>0===e?e:0);let t=()=>{let t=Math.round(e.getBoundingClientRect().height);t1(e=>e===t?e:t)};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[D,H]);let t2=(0,o.useMemo)(()=>({getOffsetForIndex:e=>tG.current?.getOffsetForIndex(e)?.[0]??0,sizeFor:e=>{let t=tG.current;if(!t)return 0;let r=t.measurementsCache[e];return r?.size??t.options.estimateSize?.(e)??0},totalHeight:()=>tG.current?.getTotalSize()??0,refToItemIndex:e=>tX.current[e],itemCount:tX.current.length}),[]),t6=ep?[ep.sessionId,ep.sessionFile??"",ep.sessionName??"",ep.userMessages,ep.assistantMessages,ep.toolCalls,ep.toolResults,ep.totalMessages,ep.tokens.input,ep.tokens.output,ep.tokens.cacheRead,ep.tokens.cacheWrite,ep.tokens.total,ep.cost??0,ep.totalActiveMs??0].join("|"):null,t4=(0,o.useRef)(ep);t4.current=ep,(0,o.useEffect)(()=>{h?.(t4.current)},[t6,h]),(0,o.useEffect)(()=>()=>{h?.(null)},[h]);let t5=es?`${es.percent??"null"}|${es.contextWindow}|${es.tokens??"null"}`:null,t3=(0,o.useRef)(es);t3.current=es,(0,o.useEffect)(()=>{x?.(t3.current)},[t5,x]),(0,o.useEffect)(()=>()=>{x?.(null)},[x]);let{isDragOver:t8,handleDragEnter:t7,handleDragOver:t9,handleDragLeave:re,handleDrop:rt}=function(e){let[t,r]=(0,o.useState)(!1),n=(0,o.useRef)(0),i=(0,o.useCallback)(e=>{e.dataTransfer.files.length&&(e.preventDefault(),n.current+=1,r(!0))},[]),s=(0,o.useCallback)(e=>{e.dataTransfer.files.length&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:i,handleDragOver:s,handleDragLeave:(0,o.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,o.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files),t.dataTransfer)},[e])}}((0,o.useCallback)((e,t)=>{if(q){let t=e.filter(e=>e.type.startsWith("image/"));t.length&&c?.current?.addImages(t);return}c?.current?.addFiles(e,t)},[q,c])),rr=O.filter(e=>"user"===e.role||"assistant"===e.role||si(e));(0,o.useMemo)(()=>{let e=new Map(B);for(let t of O)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[B,O]);let rn=(0,o.useMemo)(()=>{let e=new Set,t=[];for(let n=O.length-1;n>=0&&t.length<50;n-=1){var r;let o="user"!==(r=O[n]).role?null:("string"==typeof r.content?r.content:r.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).trim()||null;!o||e.has(o)||(e.add(o),t.push(o))}return t},[O]),ro=(S=rr.length,(C=(0,o.useRef)([])).current.length!==S&&(C.current=Array.from({length:S},(e,t)=>C.current[t]??null)),C),ri=eT&&0===O.length&&!_.isStreaming&&!q,rs=e?.cwd??t??void 0;!function(e,t=!0){(0,o.useEffect)(()=>{if(!t)return;let r=null,n=null,o=!1,i=null,s=()=>{null!==i&&(clearTimeout(i),i=null)},l=()=>{r&&(s(),r.classList.add("scrollbar-visible"))},a=()=>{r&&(s(),i=setTimeout(()=>{i=null,r?.classList.remove("scrollbar-visible")},500))},d=()=>{l(),a()},c=()=>{if(!o){if(!(r=e.current)){n=requestAnimationFrame(c);return}r.addEventListener("pointerenter",l),r.addEventListener("pointerleave",a),r.addEventListener("scroll",d)}};return c(),()=>{o=!0,null!==n&&cancelAnimationFrame(n),r?.removeEventListener("pointerenter",l),r?.removeEventListener("pointerleave",a),r?.removeEventListener("scroll",d),s(),r?.classList.remove("scrollbar-visible")}},[t,e])}(eW,!!e?.id||!ri);let rl=(0,o.useMemo)(()=>sN(O,U,rs,B),[O,U,rs,B]),ra=eu?X[`${eu.provider}:${eu.modelId}`]??null:null,rd=eu?Z[`${eu.provider}:${eu.modelId}`]??null:null,rc=(0,o.useCallback)(()=>{et()},[et]),ru=(0,o.useCallback)(e=>{th(e)},[th]),rp=e?.relation?.kind==="subagent"?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"14px 16px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:12},children:[(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),E("subagent.readOnlyNotice")]}):(0,n.jsx)(cv,{ref:c,onSend:eF,onBash:eD,tasksBoardEnabled:b,onAbort:eH,onSteer:q?eq:void 0,onFollowUp:q?eK:void 0,onPromptWithStreamingBehavior:q?eV:void 0,isStreaming:q,model:eu,modelNames:J,modelList:G,modelScopeWarnings:Q,modelsError:ee,onRetryModels:rc,onModelChange:eU,compactResult:ec,toolPreset:er,onToolPresetChange:e||eT?ts:void 0,collaborationMode:tc,toolApprovalMode:tu,onCollaborationModeChange:ru,onToolApprovalModeChange:tg,goalState:tm,onGoalStart:tv,onGoalPause:ty,onGoalResume:tb,onGoalStop:tk,thinkingLevel:en,isAutoThinkingSelection:eo,onThinkingLevelChange:e||eT?tl:void 0,availableThinkingLevels:ra,thinkingLevelMap:rd,retryInfo:ei,queuedMessages:ef,inputHistory:rn,onRecallQueue:eY,onMoveQueue:tt,onRecallOne:tr,onRequeueAt:tn,onRemoveQueueItem:to,slashCommands:eg,slashCommandsLoading:ex,onLoadSlashCommands:ta,onBuiltinCommand:ti,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t,topCenterControl:t_?(0,n.jsx)("button",{type:"button",className:"chat-input-top-center",onClick:tV,title:E("desktop.scrollToBottom"),"aria-label":E("desktop.scrollToBottom"),children:(0,n.jsx)(l5.Z,{size:16,weight:"bold","aria-hidden":"true"})}):void 0}),rh=ew.filter(e=>"belowEditor"!==e.placement),rg=ew.filter(e=>"belowEditor"===e.placement),rx=ea?E("desktop.compacting"):function(e,t){if(e?.kind==="running_tools"){let r=e.tools.map(e=>e.name);return 0===r.length?t("desktop.runningTool"):t("desktop.runningTools",{tools:r.length<=3?r.join(", "):`${r.slice(0,2).join(", ")} (+${r.length-2})`})}return e?.kind==="waiting_model"?t("desktop.waitingForModel"):e?.kind==="running_command"?t("desktop.runningCommand"):null}(ez,E);return D?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:E("desktop.loadingSession")}):H?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:H}):(0,n.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",onDragEnter:t7,onDragOver:t9,onDragLeave:re,onDrop:rt,children:[t8&&(0,n.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[rgba(37,99,235,0.06)] backdrop-blur-[1px]",children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,n.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[rgba(37,99,235,0.5)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",style:{transformOrigin:"center",animationDelay:`${e}s`}},e))}),(0,n.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,n.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,n.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,n.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,n.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,n.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,n.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,n.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,n.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,n.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,n.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),eb&&(0,n.jsx)(ui,{request:eb,onRespond:eS}),ek&&(0,n.jsx)(us,{request:ek,onInput:eC}),!eT&&em.length>0&&!tz&&(0,n.jsx)(ck,{items:em,sessionId:e?.id,onResolve:eG,onExport:eX,onStageImport:eZ,onDismiss:()=>tT(!0),mode:ev?"import":"recovery"}),tx.length>0&&(0,n.jsx)(aO,{request:tx[0]??null,queuedCount:Math.max(0,tx.length-1),busy:!1,onResolve:(e,t,r)=>{let n=tx[0];n&&tf(n.id,e,t,r)}}),ri?(0,n.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto",children:(0,n.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,n.jsx)("div",{style:{display:"flex",justifyContent:"center",marginBottom:28},children:(0,n.jsxs)("svg",{fill:"currentColor",fillRule:"evenodd",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{width:64,height:64,color:"var(--accent)",opacity:.85},"aria-label":"Pi",children:[(0,n.jsx)("title",{children:"Pi"}),(0,n.jsx)("path",{clipRule:"evenodd",d:"M1 1h16.5v11H12v5.5H6.5V23H1V1zm5.5 5.5V12H12V6.5H6.5z"}),(0,n.jsx)("path",{d:"M17.5 12H23v11h-5.5V12z"})]})}),M&&(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:10,marginBottom:18,marginTop:-14},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.18.9"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]}),(0,n.jsx)("div",{style:{padding:"0 34px 6px 7px",paddingRight:M?16:34},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsx)("div",{ref:m,style:{display:"flex",alignItems:"center",minWidth:0,flex:1,minHeight:48}}),(0,n.jsxs)("div",{style:{display:M?"none":"flex",flexDirection:"column",alignItems:"flex-end",gap:2,flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.18.9"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]})]})}),(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)(uo,{notices:ey,align:"right"})}),"goal"===tc&&(0,n.jsx)(aF,{goalState:tm,onPause:ty,onResume:tb,onStop:tk,onEdit:tj}),rp,(0,n.jsx)("div",{style:{padding:"0 16px 6px",paddingRight:M?16:34,marginTop:-15},children:(0,n.jsx)(cW,{onViewFullHistory:v,cwd:rs,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,showSoundLabel:!0,soundEnabled:z,onSoundToggle:T,onCompact:e?e_:void 0,onAbortCompaction:eJ,isCompacting:ea,compactError:ed,lastTurnUsage:tI})})]})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden z-0",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:18*!M,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(uo,{notices:ey,floating:!0,align:"right"})})}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 min-w-0",children:[(0,n.jsx)("div",{ref:eW,className:"scrollbar-subtle h-full min-w-0 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-gutter:stable]",children:(0,n.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,n.jsxs)("div",{style:{width:"100%",minWidth:0,maxWidth:820,margin:"0 auto"},children:[(0,n.jsxs)("div",{ref:tQ,children:[(0,n.jsx)(ur,{statuses:ej}),(0,n.jsx)(un,{widgets:rh})]}),(()=>{let{toolResultsMap:t,lastUserIdx:r,visibleRefIndexByMessage:o,items:i}=rl;for(let e=O.length-1;e>=0&&!si(O[e]);e--);let s=tZ.current,l=(i,l={})=>{let a=l.messageOverride??O[i];if(!a||"toolResult"===a.role)return null;let d="user"===a.role||"assistant"===a.role||si(a),c=o.get(i),u=l.keyPrefix??"message",p=!1;if("assistant"===a.role){p=!0;for(let e=i+1;e<O.length;e++){let t=O[e].role;if("user"===t)break;if("assistant"===t){p=!1;break}}p&&_.isStreaming&&i===O.length-1&&(p=!1)}void 0!==l.showTimestamp&&(p=l.showTimestamp);let h=(0,n.jsx)(ad,{message:a,toolResults:t,modelNames:J,cwd:rs,onOpenFile:f,entryId:U[i],onFork:q||eT?void 0:eO,forking:el===U[i],onNavigate:q?void 0:eB,onEditContent:A,onQuoteReply:P,onOpenSession:k,onCreateTask:F,showTimestamp:p,prevTimestamp:i>0?O[i-1].timestamp:void 0,sessionId:e?.id??eE.current??void 0,writtenFiles:l.writtenFiles},`${u}-view-${i}`);return d&&!1!==l.attachRef&&void 0!==c?(0,n.jsx)("div",{ref:((e,t)=>{let n=s.get(t);if(!n){let e={isLastUser:!1};n={state:e,callback:r=>{ro.current[t]=r,e.isLastUser&&(eL.current=r,r&&eN.current&&(eN.current=!1,eA.current=!0,eP()))}},s.set(t,n)}return n.state.isLastUser=e===r,n.callback})(i,c),children:h},`${u}-${i}`):h},a=[],d=[],c=[],u=(e,t,r)=>{null!==e&&(a.push(e),d.push(t),c.push(r))},p=(e,t)=>U[e]||`${t}-${e}`,h=e=>`live-answer-u${e}`,g=e=>`answer-${p(e,"user")}`,x=e=>`subagent-${e}`,m=e=>sp(e.result?.details)?e.result.details.sessionId:"",v=e=>{let t=m(e);if(t&&w){let e=w.get(t);if(e)return"running"===e.status}let r=sp(e.result?.details)?e.result.details:null;return r?"running"===r.status||"starting"===r.status:!e.result},y=(e,t)=>`live-process-u${e}-seg${t}`,b=(e,t,r)=>`process-${p(e,"user")}-${r||`seg${t}`}`;for(let s of i){if("single"===s.kind){if(O[s.idx]?.role==="toolResult")continue;u(l(s.idx),o.get(s.idx),p(s.idx,"single"));continue}let{userIdx:i,endIdx:a,startsCompactionTurn:d,finalAssistantIdx:c}=s;if((q||_.isStreaming)&&a===O.length&&(i===r||d)){i>=0&&u(l(i),o.get(i),p(i,"user"));let r=_.streamingMessage?.role==="assistant",s=[],d=!r&&c>=0?c:a;for(let e=i+1;e<d;e++)sW(O[e])&&s.push(e);let g=sm(O,U,s,t),v=null;if(!r&&c>=0){let e=O[c],r=sc(e,{isStreaming:!0}),n=sf(e,{messageIndex:c,entryId:U[c],toolResults:t,isStreaming:!0});g=g.concat(n.processBlocks),r.answerBlocks.length>0&&(v=sL(e,r.answerBlocks,{omitUsage:!0}))}if(r){let e=_.streamingMessage,r=sc(e,{isStreaming:!0}),n=sf(e,{messageIndex:O.length,toolResults:t,isStreaming:!0});g=g.concat(n.processBlocks),r.answerBlocks.length>0&&(v=sL(e,r.answerBlocks,{omitUsage:!0}))}if(g.length>0){let t=s.map(e=>o.get(e)).find(e=>"number"==typeof e);sh(g).forEach((r,s)=>{let l=o.get(r.blocks[0].origin.sourceMessageIndex)??t;if("subagent"===r.kind&&r.subagent)return void u((0,n.jsx)(dR,{run:r.subagent,onOpenSubagent:j,sessionRun:w?.get(m(r.subagent))},x(r.subagent.toolCallId)),l,x(r.subagent.toolCallId));if("output"===r.kind){let e=r.blocks[0],t=o.get(e.origin.sourceMessageIndex);u((0,n.jsx)(ad,{message:{role:"assistant",provider:"",model:"",content:r.blocks},isStreaming:e.origin.sourceMessageIndex===O.length,cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k}),t,`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===l?void 0:e=>{ro.current[l]=e},children:(0,n.jsx)(dC,{blocks:r.blocks,isStreaming:q||_.isStreaming,cwd:rs,onOpenFile:f,sessionId:e?.id??eE.current??void 0,tokenRate:eh})},y(i,s)),l,y(i,s))})}v&&u((0,n.jsx)(ad,{message:v,isStreaming:!0,modelNames:J,cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k},`live-answer-${i}`),c>=0?o.get(c):void 0,h(i));continue}if(-1===c&&0===s.processBlocks.length){if(i>=0)for(let e=i;e<a;e++)u(l(e),o.get(e),p(e,"raw"));continue}i>=0&&u(l(i),o.get(i),p(i,"user"));let{finalAnswerMessage:S,writtenFiles:C,visibleProcessIndices:z}=s;if(s.processBlocks.length>0){let t=z.map(e=>o.get(e)).find(e=>"number"==typeof e)??(S?void 0:o.get(c));s.processSegments.forEach((r,s)=>{let l=o.get(r.blocks[0].origin.sourceMessageIndex)??t;if("subagent"===r.kind&&r.subagent)return void u((0,n.jsx)(dR,{run:r.subagent,onOpenSubagent:j,sessionRun:w?.get(m(r.subagent))},x(r.subagent.toolCallId)),l,x(r.subagent.toolCallId));if("output"===r.kind){let e=r.blocks[0];u((0,n.jsx)(ad,{message:{role:"assistant",provider:"",model:"",content:r.blocks},cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k}),o.get(e.origin.sourceMessageIndex),`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===l?void 0:e=>{ro.current[l]=e},children:(0,n.jsx)(dC,{blocks:r.blocks,isStreaming:"subagent"===r.kind&&void 0!==r.subagent&&v(r.subagent),defaultExpanded:!1,onAutoExpanded:void 0,cwd:rs,onOpenFile:f,sessionId:e?.id??eE.current??void 0})},`process-group-${i}-${s}`),l,b(i,s,r.blocks[0]?.id??""))})}if(S&&u(l(c,{messageOverride:S,writtenFiles:C}),o.get(c),g(i)),c>=0)for(let e=c+1;e<a;e++)u(l(e),o.get(e),p(e,"tail"))}let S=[],C=d.map((e,t)=>({startRef:e,itemIdx:t})).filter(e=>void 0!==e.startRef);return C.forEach((e,t)=>{let r=C[t+1]?.startRef??rr.length;for(let t=e.startRef;t<r;t++)S[t]=e.itemIdx}),tX.current=S,(0,n.jsx)(cA,{scrollElementRef:eW,items:a,itemKeys:c,virtualizerRef:tG,headerHeight:t0})})(),rx&&(ea||q&&!_.streamingMessage)&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsxs)("span",{className:"animate-[pulse_1.5s_infinite]",children:[rx,ez?.kind==="waiting_model"&&(0,n.jsx)("span",{style:{display:"inline-block",width:12,height:12,marginLeft:6,verticalAlign:"-2px",border:"1.5px solid var(--text-muted)",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 0.6s linear infinite"}})]})}),V&&(0,n.jsx)(ad,{message:{role:"bashExecution",command:V.command,output:"",excludeFromContext:V.excludeFromContext},sessionId:e?.id??eE.current??void 0}),K&&!V&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:E("desktop.runningShellCommand")})}),(0,n.jsx)("div",{style:{height:96}}),(0,n.jsx)("div",{ref:e$}),(0,n.jsx)(a$,{open:tM,planText:tW,busy:q,onExecute:tA,onFeedback:tF,onExit:tD,onClose:()=>t$(!1)})]})})}),tH&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-8 bg-gradient-to-b from-[var(--bg)] to-transparent"}),tB&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-8 bg-gradient-to-t from-[var(--bg)] to-transparent"})]}),M?null:(0,n.jsx)(cD,{messages:O,streamingMessage:_.streamingMessage,scrollContainer:eW,messageRefs:ro,virtualizer:t2})]}),(0,n.jsxs)("div",{className:"relative z-10",children:[(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(un,{widgets:rg})})}),rp,(0,n.jsx)("div",{className:`session-info-bar-wrap${M?" is-mobile":""}`,children:(0,n.jsx)("div",{className:"session-info-bar-inner",children:(0,n.jsx)(cW,{onViewFullHistory:v,cwd:rs,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,soundEnabled:z,onSoundToggle:T,onCompact:e?e_:void 0,onAbortCompaction:eJ,isCompacting:ea,compactError:ed,branchTree:eR,branchActiveLeafId:eI,onBranchLeafChange:eM,lastTurnUsage:tI})})})]})]})]})}function ur({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:e.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"4px 8px",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:6,background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function un({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:10},children:e.map(e=>(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"8px 9px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function uo({notices:e,floating:t=!1,align:r="left"}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===r?"flex-end":"stretch",marginBottom:10*!t},children:e.map((r,o)=>{let i="error"===r.type?"var(--status-error)":"warning"===r.type?"var(--status-warning)":"success"===r.type?"#10b981":"var(--accent)";return(0,n.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:"center",gap:10,minHeight:44,maxHeight:180,marginBottom:6*(o!==e.length-1),overflowY:"auto",overflowX:"hidden",borderRadius:14,border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:"var(--bg)",color:"var(--text-muted)",width:"fit-content",maxWidth:"min(100%, 620px)",boxShadow:t?"0 1px 2px rgba(15,23,42,0.05), 0 10px 28px -14px rgba(15,23,42,0.24)":"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",fontSize:13,lineHeight:1.45,transformOrigin:"top center",animation:r.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out both",padding:"0 12px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:i,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"10px 0",minWidth:0,maxWidth:"100%",overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:r.message})]},r.id)})})}function ui({request:e,onRespond:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)("editor"===e.method?e.prefill??"":""),[l,a]=(0,o.useState)(!1),[d,c]=(0,o.useState)(()=>Date.now()),u=(0,o.useCallback)(e=>e?.focus(),[]);!function(e){if("select"===e.method&&e.options.length>0)return e.options[0];if("confirm"===e.method){let t=e.message.split("\n").find(e=>e.trim());t?.trim()}}(e);let p=void 0===e.expiresAt?null:Math.max(0,Math.ceil((e.expiresAt-d)/1e3));(0,o.useEffect)(()=>{if(void 0===e.expiresAt)return;let t=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(t)},[e.expiresAt]);let h=null!==p&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap",flexShrink:0},children:r("chat.extensionExpiresIn",{seconds:p})});(0,o.useEffect)(()=>{s("editor"===e.method?e.prefill??"":"")},[e]);let g=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:i})};return(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"flex-start",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)",maxHeight:"50%",overflowY:"auto"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650,lineHeight:1.45,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.title}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{children:r("desktop.extensionRequest")}),h]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>a(!0),"aria-expanded":!0,title:r("chat.extensionCollapse"),"aria-label":r("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)(lH,{children:e.message}),"select"===e.method&&(0,n.jsx)("div",{onKeyDown:e=>{if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e.key))return;let t=Array.from(e.currentTarget.querySelectorAll("[data-extension-option]")),r=t.indexOf(e.target);if(r<0)return;e.preventDefault();let n="Home"===e.key?0:"End"===e.key?t.length-1:(r+("ArrowDown"===e.key||"ArrowRight"===e.key?1:-1)+t.length)%t.length;t[n]?.focus()},style:{display:"grid",gap:8},children:e.options.map((r,o)=>(0,n.jsx)("div",{role:"button",tabIndex:0,"data-extension-option":!0,"aria-label":r,ref:0===o?u:void 0,onClick:()=>t(e,{value:r}),onKeyDown:n=>{("Enter"===n.key||" "===n.key)&&(n.preventDefault(),t(e,{value:r}))},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:13,overflowWrap:"anywhere",scrollMargin:14},children:(0,n.jsx)("div",{inert:!0,children:(0,n.jsx)(lH,{children:r})})},r))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:!0,className:"extension-input",value:i,placeholder:e.placeholder,onChange:e=>s(e.target.value),onKeyDown:r=>{"Enter"===r.key&&g(),"Escape"===r.key&&t(e,{cancelled:!0})},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:13}}),"editor"===e.method&&(0,n.jsx)("textarea",{autoFocus:!0,value:i,onChange:e=>s(e.target.value),onKeyDown:r=>{"Escape"===r.key&&t(e,{cancelled:!0}),(r.metaKey||r.ctrlKey)&&"Enter"===r.key&&g()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:()=>t(e,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:r("desktop.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:r("desktop.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:r("desktop.submit")}):null]})]})})}function us({request:e,onInput:t}){let{t:r}=(0,Y.s)(),i=(0,o.useRef)(null),s=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=st(n).trimEnd();if(t.test(e))continue;let o=n,i=so(o);("│"===i||"┃"===i)&&" "===so(o=sn(o,0))&&(o=sn(o,0));let s=function(e){let t=sr(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(o),l=s>=0?sr(o)[s]?.char:void 0;("│"===l||"┃"===l)&&(o=sn(o,s)),r.push(function(e){let t=e;for(;;){let e=sr(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(o))}for(;r.length>0&&""===st(r[0]).trim();)r.shift();for(;r.length>0&&""===st(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,o.useEffect)(()=>{i.current?.focus()},[e.id]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{ref:i,tabIndex:0,role:"dialog","aria-modal":"true",onKeyDown:r=>{let n=function(e){if(e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length){let t=e.key.toLowerCase();if(t>="a"&&t<="z")return String.fromCharCode(t.charCodeAt(0)-96)}switch(e.key){case"ArrowUp":return"\x1b[A";case"ArrowDown":return"\x1b[B";case"ArrowRight":return"\x1b[C";case"ArrowLeft":return"\x1b[D";case"Enter":return"\r";case"Escape":return"\x1b";case"Backspace":return"";case"Tab":return" ";case" ":return" ";default:if(!e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length)return e.key;return null}}(r);n&&(r.preventDefault(),r.stopPropagation(),t(e,n))},style:{width:"min(920px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden",outline:"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:r("desktop.extensionPanel")}),(0,n.jsx)("button",{onClick:()=>t(e,"\x03"),style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:r("desktop.close")})]}),(0,n.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(s.length?s:[""]).map((e,t,r)=>{var i;return(0,n.jsxs)(o.Fragment,{children:[(i=`line-${t}`,(function(e){let t,r=[],n={},o=0;for(i7.lastIndex=0;null!==(t=i7.exec(e));)t.index>o&&r.push({text:e.slice(o,t.index),style:n}),n=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(r))delete r[e];else if(1===n)r.fontWeight=700;else if(2===n)r.opacity=.65;else if(3===n)r.fontStyle="italic";else if(4===n)r.textDecoration="underline";else if(22===n)delete r.fontWeight,delete r.opacity;else if(23===n)delete r.fontStyle;else if(24===n)delete r.textDecoration;else if(39===n)delete r.color;else if(49===n)delete r.backgroundColor;else if(n>=30&&n<=37)r.color=i9[n-30];else if(n>=90&&n<=97)r.color=se[n-90];else if(n>=40&&n<=47)r.backgroundColor=i9[n-40];else if(n>=100&&n<=107)r.backgroundColor=se[n-100];else if((38===n||48===n)&&2===t[e+1]){let[o,i,s]=[t[e+2],t[e+3],t[e+4]];[o,i,s].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${o}, ${i}, ${s})`:r.backgroundColor=`rgb(${o}, ${i}, ${s})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let o=function(e){if(e>=0&&e<8)return i9[e];if(e>=8&&e<16)return se[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),o=e=>0===e?0:55+40*e;return`rgb(${o(r)}, ${o(n)}, ${o(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);o&&(38===n?r.color=o:r.backgroundColor=o),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),o=t.index+t[0].length;return o<e.length&&r.push({text:e.slice(o),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${i}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}var ul=r(93549);let ua={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},ud={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"};function uc(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function uu(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function up(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let r=t.getRangeAt(0);if(!e.contains(r.startContainer)||!e.contains(r.endContainer))return null;let n=Number(uu(r.startContainer)?.dataset.lineNumber),o=Number(uu(r.endContainer)?.dataset.lineNumber);return Number.isInteger(n)&&Number.isInteger(o)?n<=o?{startLine:n,endLine:o}:{startLine:o,endLine:n}:null}function uh(e,t,r,n={}){let o=oW(e),i=new URLSearchParams({type:t});for(let[e,t]of(r&&i.set("sessionId",r),Object.entries(n)))void 0!==t&&i.set(e,String(t));return`/api/files/${o}?${i.toString()}`}function ug({filePath:e,sourceSessionId:t}){let{t:r}=(0,Y.s)();return(0,n.jsx)("a",{href:uh(e,"download",t),download:oL(e),title:r("desktop.downloadFile"),style:{display:"flex",alignItems:"center",justifyContent:"center",height:20,padding:"0 5px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,textDecoration:"none"},children:(0,n.jsx)(M.z,{size:11,"aria-hidden":"true"})})}let ux={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,tabSize:2},uf={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,padding:"12px 0 12px 16px",color:"var(--text-dim)",textAlign:"right",userSelect:"none"};async function um(e,t){let r=await fetch(`/api/files/${oW(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error??`HTTP ${r.status}`);let n=await r.json();return"number"==typeof n.size?n.size:0}let uv={delete:"3px solid var(--git-status-deleted)",add:"3px solid var(--git-status-added)",edit:"3px solid var(--git-status-modified)"},uy="var(--git-status-deleted-bg)",ub="var(--git-status-added-bg)",uk="var(--git-status-added)";function uj(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function uw({oldContent:e,newContent:t}){let{t:r}=(0,Y.s)(),o=function(e,t){let r=e.length,n=t.length,o=r+n,i=Array(2*o+1).fill(0),s=[];for(let l=0;l<=o;l++){s.push([...i]);for(let a=-l;a<=l;a+=2){let d,c=(d=a===-l||a!==l&&i[a-1+o]<i[a+1+o]?i[a+1+o]:i[a-1+o]+1)-a;for(;d<r&&c<n&&e[d]===t[c];)d++,c++;if(i[a+o]=d,d>=r&&c>=n){let i=[],a=r,d=n;for(let r=l;r>0;r--){let n,l=s[r-1],c=a-d;n=c===-r||c!==r&&l[c-1+o]<l[c+1+o]?c+1:c-1;let u=l[n+o],p=u-n;for(;a>u&&d>p;)a--,d--,i.unshift({type:"unchanged",text:e[a]});r>0&&(a>u?(a--,i.unshift({type:"removed",text:e[a]})):(d--,i.unshift({type:"added",text:t[d]})))}for(;a>0&&d>0;)a--,d--,i.unshift({type:"unchanged",text:e[a]});return i}}}return[...e.map(e=>({type:"removed",text:e})),...t.map(e=>({type:"added",text:e}))]}(e.split("\n"),t.split("\n"));if(!o.some(e=>"unchanged"!==e.type))return(0,n.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:r("desktop.noChanges")});let i=new Set(o.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),s=new Set;for(let e of i)for(let t=Math.max(0,e-3);t<=Math.min(o.length-1,e+3);t++)s.add(t);let l=[],a=0;for(;a<o.length;)if(s.has(a)){let e=[];for(;a<o.length&&s.has(a);)e.push(o[a]),a++;l.push({hidden:!1,lines:e})}else{let e=0;for(;a<o.length&&!s.has(a);)e++,a++;l.push({hidden:!0,count:e})}let d=[],c=1;for(let e of o)"removed"===e.type?d.push(0):d.push(c++);let u=0;return(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,minWidth:"max-content"},children:l.map((e,t)=>{if(e.hidden){let o=(0,n.jsx)("div",{style:{padding:"2px 16px",color:"var(--text-dim)",background:"var(--bg-panel)",fontSize:11,borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:r("desktop.unchangedLines",{count:e.count})},t);return u+=e.count,o}let o=[],i=[],s=[],l=()=>{if(i.length||s.length){let e=i.length&&s.length?"edit":i.length?"delete":"add";for(let t of i)o.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of s)o.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});i=[],s=[]}};e.lines.forEach((e,r)=>{"unchanged"===e.type?(l(),o.push({key:`${t}:${r}`,kind:"context",text:e.text,lineNo:d[u+r],block:null})):"removed"===e.type?i.push({key:`${t}:${r}`,text:e.text}):s.push({key:`${t}:${r}`,text:e.text,lineNo:d[u+r]})}),l();let a=o.map(e=>{let t="removed"===e.kind?uy:"added"===e.kind?ub:"transparent",r=e.block?uv[e.block]:"3px solid transparent",o="added"===e.kind?uk:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:o,userSelect:"none",fontSize:11,lineHeight:1.6,flexShrink:0},children:e.lineNo??""}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)});return u+=e.lines.length,(0,n.jsx)("div",{children:a},t)})})}function uS({patch:e}){let t=lZ(e);if(!t)return null;let r=[],o=[],i=[],s=()=>{if(o.length||i.length){let e=o.length&&i.length?"edit":o.length?"delete":"add";for(let t of o)r.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of i)r.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});o=[],i=[]}};return t.forEach((e,t)=>{e.rows.forEach((e,n)=>{if("hunk"===e.type){s(),r.push({key:`${t}:${n}:h`,kind:"hunk",text:e.text,lineNo:null,block:null});return}let{left:l,right:a}=e;if("context"===l.type&&"context"===a.type){s(),r.push({key:`${t}:${n}:c`,kind:"context",text:l.text,lineNo:a.lineNo,block:null});return}"removed"===l.type&&o.push({key:`${t}:${n}:l`,text:l.text}),"added"===a.type&&i.push({key:`${t}:${n}:r`,text:a.text,lineNo:a.lineNo})})}),s(),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:"max-content"},children:r.map(e=>{if("hunk"===e.kind)return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{height:"1.55em"}}),(0,n.jsx)("div",{style:{padding:"3px 12px",color:"var(--accent-blue)",background:"var(--bg-secondary)"},children:e.text}),(0,n.jsx)("div",{style:{height:"1.55em"}})]},e.key);let t="removed"===e.kind?uy:"added"===e.kind?ub:"transparent",r=e.block?uv[e.block]:"3px solid transparent",o="added"===e.kind?uk:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{width:44,flexShrink:0,padding:"0 8px 0 16px",textAlign:"right",color:o,userSelect:"none",fontSize:11},children:e.lineNo??""}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)})})}function uC({filePath:e,cwd:t,sourceSessionId:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(0),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=oL(e).toLowerCase().split(".").pop()??"";(0,o.useEffect)(()=>{l(0),d(null),u(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(uh(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=uh(e,"read",r,s?{v:s}:void 0),m=null!=a?uj(a):null;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x||i("desktop.image")}),c&&(0,n.jsxs)("span",{children:[c.w," \xd7 ",c.h]}),m&&(0,n.jsx)("span",{children:m}),(0,n.jsx)(ug,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg-panel)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,backgroundImage:"linear-gradient(45deg, var(--bg) 25%, transparent 25%), linear-gradient(-45deg, var(--bg) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--bg) 75%), linear-gradient(-45deg, transparent 75%, var(--bg) 75%)",backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px"},children:p?(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13},children:p}):(0,n.jsx)("img",{src:f,alt:e,onLoad:e=>{let t=e.currentTarget;u({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>h(i("desktop.failedToLoadImage")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function uz({filePath:e,cwd:t,sourceSessionId:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(0),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=oL(e).toLowerCase().split(".").pop()??"";(0,o.useEffect)(()=>{l(0),d(null),u(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(uh(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}u(null),h(null),l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=uh(e,"read",r,s?{v:s}:void 0);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x||i("desktop.audio")}),null!=c&&(0,n.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),r=Math.floor(t/60);return`${r}:${String(t%60).padStart(2,"0")}`}(c)}),null!=a&&(0,n.jsx)("span",{children:uj(a)}),(0,n.jsx)(ug,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,n.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[p&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13,marginBottom:12,textAlign:"center"},children:p}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:f,onLoadedMetadata:e=>u(e.currentTarget.duration),onError:()=>h(i("desktop.failedToLoadAudio")),style:{width:"100%"}},f)]})})]})}function uT({filePath:e,cwd:t,sourceSessionId:r,initialPage:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)(0),[d,c]=(0,o.useState)(null),[u,p]=(0,o.useState)(null),h=(0,o.useRef)(null),g=uc(e),x="pdf"===g,f=x&&i&&i>0?`#page=${i}`:"",m=x?`${uh(e,"read",r,l?{v:l}:void 0)}${f}`:uh(e,"preview",r,l?{v:l}:void 0);return(0,o.useEffect)(()=>{a(0),c(null),p(null),h.current&&(h.current.close(),h.current=null),fetch(uh(e,"meta",r)).then(e=>e.json()).then(e=>{e.error&&p(e.error),"number"==typeof e.size&&(c(e.size),!x&&e.size>0xa00000&&p(s("desktop.docxTooLargeForPreview")))}).catch(e=>p(String(e)));let t=new EventSource(uh(e,"watch",r));return h.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(c(t.size),!x&&t.size>0xa00000))return void p(s("desktop.docxTooLargeForPreview"))}catch{}p(null),a(e=>e+1)}),()=>{t.close(),h.current=null}},[e,x,r,s]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===g?s("desktop.docxPreview"):"pdf"}),null!=d&&(0,n.jsx)("span",{children:uj(d)}),(0,n.jsx)(ug,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:u?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"var(--status-error)",fontSize:13,textAlign:"center"},children:u}):(0,n.jsx)("iframe",{src:m,sandbox:x?void 0:"allow-same-origin",title:s("desktop.previewFile",{file:oL(e)}),style:{width:"100%",height:"100%",border:"none",background:x?"var(--bg)":"#eef1f5"}},m)})]})}function uR({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:o,onAtMention:i,onMentionLines:s,initialDisplayMode:l,initialPage:a,onFileSaved:d}){let c;return null!==(ua[uc(e)]??null)?(0,n.jsx)(uC,{filePath:e,cwd:t,sourceSessionId:r}):null!==(ud[uc(e)]??null)?(0,n.jsx)(uz,{filePath:e,cwd:t,sourceSessionId:r}):null!==("pdf"===(c=uc(e))||"docx"===c?c:null)?(0,n.jsx)(uT,{filePath:e,cwd:t,sourceSessionId:r,initialPage:a}):(0,n.jsx)(uI,{filePath:e,cwd:t,sourceSessionId:r,onOpenFile:o,onAtMention:i,onMentionLines:s,initialDisplayMode:l,onFileSaved:d})}function uI({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:i,onAtMention:s,onMentionLines:l,initialDisplayMode:a,onFileSaved:d}){let c,u,{t:p}=(0,Y.s)(),[h,x]=(0,o.useState)(null),[f,v]=(0,o.useState)(null),[y,b]=(0,o.useState)(null),[k,j]=(0,o.useState)(!0),[w,S]=(0,o.useState)(!1),[C,z]=(0,o.useState)(null),[T,R]=(0,o.useState)(!1),[I,M]=(0,o.useState)("source"),[E,$]=(0,o.useState)(!1),[W,L]=(0,o.useState)(0),[N,A]=(0,o.useState)(null),P=(0,o.useRef)(null),F=(0,o.useRef)(null),[D,H]=(0,o.useState)(!1),[O,B]=(0,o.useState)(""),[U,_]=(0,o.useState)(""),[q,K]=(0,o.useState)(!1),[V,J]=(0,o.useState)(null),[G,X]=(0,o.useState)(!1),Z=(0,o.useRef)(null),Q=(0,o.useRef)(null),ee=(0,o.useRef)(0),et=(0,o.useRef)(!1);(0,o.useEffect)(()=>{et.current=D},[D]);let er=D&&O!==U,en=!!(h?.content&&h.content.includes("\0")),eo=(0,o.useCallback)(async e=>{if(!t)return void b(null);try{let r=new URLSearchParams({cwd:t,path:e}),n=await fetch(`/api/git/diff?${r.toString()}`),o=await n.json();b(n.ok&&o.supported&&"string"==typeof o.patch?o:null)}catch{b(null)}},[t]),ei=(0,o.useCallback)((e,t=!1,n=0)=>fetch(uh(e,"read",r,n?{offset:n}:void 0)).then(e=>e.json()).then(e=>e.error?(z(e.error),null):(t?(x(t=>(t&&v(t.content),e)),L(e=>e+1)):n?x(t=>t?{...e,content:t.content+e.content}:e):x(e),e)).catch(e=>(z(String(e)),null)),[r]);(0,o.useEffect)(()=>{j(!0),z(null),x(null),v(null),b(null),R(!1),M("source"),$(!1),L(0),H(!1),B(""),_(""),J(null),X(!1),K(!1),P.current&&(P.current.close(),P.current=null),ei(e).then(e=>{e?.truncated||e?.language!=="markdown"&&e?.language!=="html"||"diff"===a||R(!0)}).finally(()=>j(!1)),eo(e);let t=new EventSource(uh(e,"watch",r));return P.current=t,t.addEventListener("change",()=>{et.current?X(!0):(ei(e,!0),eo(e))}),()=>{t.close(),P.current=null}},[e,ei,eo,a,r]);let es=(0,o.useCallback)(()=>{h&&!en&&(B(h.content),_(h.content),J(null),X(!1),H(!0))},[h,en]),el=(0,o.useCallback)(()=>{H(!1),B(""),_(""),J(null),X(!1)},[]),ea=(0,o.useCallback)(()=>{(!er||window.confirm(p("files.unsavedChanges")))&&el()},[er,el,p]),ed=(0,o.useCallback)(async()=>{if(!h||q)return;let t=++ee.current;K(!0),J(null);try{let r=await um(e,O);if(t!==ee.current)return;x(e=>e?{...e,content:O,size:r}:e),_(O),K(!1),el(),eo(e),d?.()}catch(e){if(t!==ee.current)return;J(e instanceof Error?e.message:String(e)),K(!1)}},[h,q,O,e,el,eo,d]);(0,o.useEffect)(()=>{if(!D)return;let e=e=>{if((e.metaKey||e.ctrlKey)&&"s"===e.key.toLowerCase()){e.preventDefault(),ed();return}"Escape"===e.key&&(e.preventDefault(),ea())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[D,ed,ea]),(0,o.useEffect)(()=>{if(!er)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[er]);let ec=(0,o.useCallback)(()=>{let e=Z.current,t=Q.current;e&&t&&(t.scrollTop=e.scrollTop)},[]),eu=(0,o.useCallback)(e=>{if("Tab"!==e.key||e.metaKey||e.ctrlKey||e.altKey)return;e.preventDefault();let t=e.currentTarget,{selectionStart:r,selectionEnd:n}=t;B(t.value.slice(0,r)+" "+t.value.slice(n)),requestAnimationFrame(()=>{let e=Z.current;if(!e)return;let t=r+2;e.selectionStart=t,e.selectionEnd=t})},[]),ep=(0,o.useMemo)(()=>ly(h?.content??""),[h?.content]),eh=y?.supported===!0&&"string"==typeof y.patch;(0,o.useEffect)(()=>{"diff"===a&&eh&&M("diff")},[eh,a]);let eg=eh&&y?.status==="deleted",ex=(0,o.useCallback)(r=>{l&&r&&l(oN(e,t),r.startLine,r.endLine)},[t,e,l]);if((0,o.useEffect)(()=>{let e=()=>{let e=F.current,t="source"===I&&!T;A(l&&t&&e?up(e,window.getSelection()):null)};if(e(),l&&"source"===I&&!T)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[h?.content,l,T,I]),(0,o.useEffect)(()=>{if(!l||"source"!==I||T)return;let e=e=>{if(e.repeat||"i"!==e.key.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.target;if(t instanceof Element&&t.closest("input, textarea, [contenteditable='true']"))return;let r=F.current,n=r?up(r,window.getSelection()):null;n&&(e.preventDefault(),ex(n))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ex,l,T,I]),k)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:p("desktop.loadingFile")});if(eg&&!h)return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 16px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},title:e,children:oN(e,t)}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)"},children:(0,n.jsx)(uS,{patch:y.patch})})]});if(C)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--status-error)",fontSize:13},children:C});if(!h)return null;let ef="html"===h.language,em="markdown"===h.language,ev=(u=(c=o$(e).replace(/\/+$/,"")).lastIndexOf("/"))<0?"":0===u?"/":2===u&&/^[a-zA-Z]:\//.test(c)?c.slice(0,3):c.slice(0,u),ey=h.content.split("\n"),eb=null!==f&&f!==h.content||eh,ek=!eg&&!en&&oF();return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:h.language}),"source"===I&&!D&&(0,n.jsx)("span",{children:p("desktop.lines",{count:ey.length})}),(0,n.jsx)("span",{children:uj(h.size)}),eb&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>M("source"),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:"source"===I?"var(--bg-selected)":"var(--bg-hover)",color:"source"===I?"var(--text)":"var(--text-muted)",fontWeight:"source"===I?600:400},children:p("desktop.source")}),(0,n.jsxs)("button",{onClick:()=>M("diff"),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:"diff"===I?"var(--bg-selected)":"var(--bg-hover)",color:"diff"===I?"var(--text)":"var(--text-muted)",fontWeight:"diff"===I?600:400},children:[p("desktop.diff")," ",W>0&&(0,n.jsxs)("span",{style:{color:"var(--git-status-added)",marginLeft:2},children:["+",W]})]})]}),"source"===I&&!T&&!D&&(0,n.jsx)("button",{onClick:()=>$(e=>!e),title:E?p("desktop.disableWordWrap"):p("desktop.enableWordWrap"),style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:E?"var(--bg-selected)":"var(--bg-hover)",color:E?"var(--text)":"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:E?600:400},children:p("desktop.wrap")}),ef&&"source"===I&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>R(!1),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:T?"var(--bg-hover)":"var(--bg-selected)",color:T?"var(--text-muted)":"var(--text)",fontWeight:T?400:600},children:p("desktop.code")}),(0,n.jsx)("button",{onClick:()=>R(!0),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",fontWeight:T?600:400},children:p("desktop.preview")})]}),em&&"source"===I&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>R(!0),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",fontWeight:T?600:400},children:p("desktop.preview")}),(0,n.jsx)("button",{onClick:()=>R(!1),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:T?"var(--bg-hover)":"var(--bg-selected)",color:T?"var(--text-muted)":"var(--text)",fontWeight:T?400:600},children:p("desktop.raw")})]}),D?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>void ed(),disabled:q,title:p("files.saveHint"),"aria-label":p("files.save"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-selected)",color:"var(--text)",cursor:"pointer"},children:(0,n.jsx)(ul.g,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:ea,disabled:q,title:p("files.cancelEdit"),"aria-label":p("files.cancelEdit"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(g.X,{size:13,"aria-hidden":"true"})})]}):"source"===I&&ek?(0,n.jsx)("button",{type:"button",onClick:es,title:p("files.edit"),"aria-label":p("files.edit"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(m.I,{size:13,"aria-hidden":"true"})}):null,(s||l)&&!D&&(0,n.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{N&&l?ex(N):s?.(oN(e,t),!1)},title:N?p("desktop.mentionSelectedLines",{start:N.startLine,end:N.endLine}):p("desktop.mentionFile"),"aria-label":N?p("desktop.mentionSelectedLines",{start:N.startLine,end:N.endLine}):p("desktop.mentionFile"),style:{height:20,minWidth:20,padding:"0 5px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:"@"}),!D&&(0,n.jsx)(ug,{filePath:e,sourceSessionId:r})]}),h?.truncated&&"source"===I&&!D&&(0,n.jsxs)("div",{className:"file-viewer-load-more",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:10,padding:"5px 8px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:[(0,n.jsxs)("span",{children:[uj(h.nextOffset)," / ",uj(h.size)]}),(0,n.jsx)("button",{type:"button",disabled:w,onClick:()=>{S(!0),ei(e,!1,h.nextOffset).finally(()=>S(!1))},style:{padding:"2px 10px",fontSize:11,cursor:"pointer",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-hover)",color:"var(--text)",opacity:w?.6:1},children:w?p("i18n.loading"):p("i18n.loadMore")})]}),(0,n.jsx)("div",{ref:F,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:D?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[G&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(214,168,75,0.14)",color:"#d6a84b",fontSize:11,flexShrink:0},children:[(0,n.jsx)("span",{style:{flex:1},children:p("files.externalModified")}),(0,n.jsx)("button",{type:"button",onClick:()=>{(!er||window.confirm(p("files.reloadOverwriteConfirm")))&&ei(e).then(e=>{e&&(B(e.content),_(e.content),X(!1))})},disabled:q,style:{padding:"2px 8px",fontSize:11,border:"1px solid #d6a84b",borderRadius:4,background:"transparent",color:"#d6a84b",cursor:"pointer"},children:p("files.reload")})]}),V&&(0,n.jsx)("div",{style:{padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(248,113,113,0.14)",color:"var(--status-error)",fontSize:11,flexShrink:0},children:p("files.saveFailed",{error:V})}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,n.jsx)("div",{ref:Q,"aria-hidden":"true",style:{...uf,height:"100%",overflow:"hidden",whiteSpace:"pre",pointerEvents:"none"},children:O.split("\n").map((e,t)=>`${t+1}
196
+ ${r}`):i=r;let h=i,g=o?.map(e=>({type:"image",source:{type:"base64",media_type:e.mimeType,data:e.data}})),x={role:"user",content:g?.length?[...r.trim()?[{type:"text",text:r}]:[],...g]:r,timestamp:Date.now()};z(e=>[...e,x]),rS.current=c8(x),rw.current=a;let f="goal"===ez.current&&!l&&s.length>0&&"idle"===eF.current.status;f&&(eM.current=s,eP(e=>({...e,status:"running",goalText:s,turnsUsed:0,noProgressTurns:0,tokensUsed:0})),eO.current=!0),rr.current=!0,q(!0),tf(l?{kind:"running_command"}:{kind:"waiting_model"}),A({type:"start"}),rg.current=!0,tv(!0),rx.current=!0;let m=o?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType})),v=null,y=!1;try{if(p&&n){let e=t6.current??await rk.current,t=e??await rK();if(t){v=t,rq(1,r),ea&&(ta(ea),e&&await tE(t,{type:"set_model",provider:ea.provider,modelId:ea.modelId}));let n=await Promise.race([rX(t).then(()=>!0).catch(()=>!1),c6(4e3).then(()=>!1)]);y=!0,await tE(t,{type:"prompt",message:h,...m?.length?{images:m}:{}}),n||ne(t,a),f&&tE(t,{type:"goal_start",goalText:s}).catch(()=>{})}else throw Error("Unable to create a session for this message")}else if(t){v=t.id;let e=await Promise.race([rX(t.id).then(()=>!0).catch(()=>!1),c6(4e3).then(()=>!1)]);y=!0,await tE(t.id,{type:"prompt",message:h,...m?.length?{images:m}:{}}),e||ne(t.id,a),f&&tE(t.id,{type:"goal_start",goalText:s}).catch(()=>{})}l&&v&&ne(v,a)}catch(t){if(console.error("Failed to send message:",t),y&&v&&!(t instanceof tR&&"prompt_rejected"===t.code&&!1===t.accepted))return void ne(v,a);if(eE.current={sessionKey:"",signature:""},f&&(eM.current=null,eO.current=!1,eP(e=>({...e,status:"idle",goalText:null}))),ro.current=!1,rY(),t instanceof c2){let e=rS.current;e&&z(t=>{let r=t[t.length-1];return r?.role==="user"&&c8(r)===e?t.slice(0,-1):t}),r0({type:"error",message:t.message})}else{let r=rS.current;r&&z(e=>{let t=e[e.length-1];return t?.role==="user"&&c8(t)===r?e.slice(0,-1):e});let n=e.chatInputRef?.current;n?.restoreSubmission?n.restoreSubmission(x):n?.replaceMessage?.(x),r0({type:"error",message:`Failed to send message: ${t instanceof Error?t.message:String(t)}`})}rS.current=null,rr.current=!1,q(!1),tf(null),A({type:"end"})}},[p,n,ea,t,rK,rX,rq,ne,r0,rJ,rY,r$,e.chatInputRef]),nl=(0,o.useCallback)(async(r,n)=>{if(rr.current||ra.current)return;let o=`${n?"!!":"!"}${r}`;ra.current=!0,Y({command:r,excludeFromContext:n}),V(!0);try{let e=t6.current??t?.id??await rK();if(!e)throw Error("Unable to create a session for the shell command");rq(1,o),await tE(e,{type:"bash",command:r,excludeFromContext:n}),await rU(e)}catch(t){console.error("Failed to execute shell command:",t),r0({type:"error",message:t instanceof Error?t.message:String(t)}),e.chatInputRef?.current?.insertIfEmpty(o)}finally{ra.current=!1,Y(null),V(!1)}},[r0,rK,rU,e.chatInputRef,rq,t]),na=(0,o.useCallback)(async()=>{let e=t6.current;if(e)try{await tE(e,{type:ra.current?"abort_bash":"abort"})}catch(e){console.error("Failed to abort:",e)}},[]),nd=(0,o.useCallback)(async e=>{let t=t6.current;if(t){tt(e);try{let{cancelled:r,newSessionId:n}=await tE(t,{type:"fork",entryId:e})??{};!r&&n&&l?.(n)}catch(e){console.error("Fork failed:",e)}finally{tt(null)}}},[l]),nc=(0,o.useCallback)(async e=>{if(ra.current)return!1;let t=t6.current;if(!t)return!1;try{let r=await tE(t,{type:"navigate_tree",targetId:e});if(r?.cancelled||t6.current!==t)return!1;return S(e),await rU(t),t6.current===t}catch(e){return console.error("Failed to navigate:",e),!1}},[rU]),nu=(0,o.useCallback)(async e=>{S(e);let t=t6.current;t&&(await r2(t,e),e&&tE(t,{type:"navigate_tree",targetId:e}).catch(()=>{}))},[r2]),np=(0,o.useCallback)(async(e,t)=>{if(p){let r={provider:e,modelId:t};rI.current=r,ed(r),ta(r),null===rM.current&&t7(cQ(t5.current[`${e}/${t}`])??t3.current);let n=t6.current??await rk.current;if(!n)return;try{await tE(n,{type:"set_model",provider:e,modelId:t})}catch(e){console.error("Failed to set model:",e)}return}let r=t6.current;if(!r)return;let n=++rC.current,o=tr??g?.context.model??null;tn({provider:e,modelId:t});try{let n=await tE(r,{type:"set_model",provider:e,modelId:t});ti({provider:n.provider,modelId:n.id}),await rU(r)}catch(i){console.error("Failed to set model:",i),rC.current===n&&(tn(o&&(o.provider!==e||o.modelId!==t)?o:null),r0({type:"error",message:i instanceof Error?i.message:String(i)})),await rU(r,!1,!0)}},[r0,tr,g?.context.model,p,ed]),nh=(0,o.useCallback)(async()=>{let e=t6.current;if(e&&!td){tc(!0),tp(null),tg(null);try{let t=await tE(e,{type:"compact"});tg(c7(t,"manual")),await rU(e,!0)}catch(e){tp(e instanceof Error?e.message:String(e)),tg(null)}finally{tc(!1)}}},[td,rU]),ng=(0,o.useCallback)(async e=>{let r=++rz.current,o=n??t?.cwd??"",i=o?`/api/models?cwd=${encodeURIComponent(o)}`:"/api/models",s=rT.current;s?.abort();let l=new AbortController;rT.current=l;let a=()=>l.abort();e?.aborted?l.abort():e?.addEventListener("abort",a,{once:!0});try{let e=await fetch(i,{signal:l.signal});if(!e.ok){let t=`HTTP ${e.status}`;try{let r=await e.json();r?.error&&(t=r.error)}catch{}throw Error(t)}let t=await e.json();if(r!==rz.current||h!==rR.current)return;el(null),X(t.models),et(t.thinkingLevels??{}),en(t.thinkingLevelMaps??{}),ei(t.modelScopeWarnings??[]);let n=t.modelList??[];if(Q(n),p&&!t6.current){let e=(t.defaultModel?n.find(e=>e.id===t.defaultModel?.modelId&&e.provider===t.defaultModel?.provider):void 0)??n[0];eu(e?{provider:e.provider,modelId:e.id}:null);let r=e?t.thinkingLevelPins?.[`${e.provider}/${e.id}`]:void 0;null===rM.current&&eU(r??"auto")}}catch(e){if(l.signal.aborted||r!==rz.current||h!==rR.current)return;el(e instanceof Error?e.message:String(e))}finally{e?.removeEventListener("abort",a),rT.current===l&&(rT.current=null)}},[p,h,n,t?.cwd]),nx=(0,o.useCallback)(async e=>{if(!e.startsWith("/"))return{handled:!1};let t=e.match(/^\/([^\s]+)(?:\s+([\s\S]*))?$/);if(!t)return{handled:!1};let[,r,n=""]=t,o=n.trim(),i=t6.current??await rK(),s=e=>(e.handled&&(e.error?r0({type:"error",message:e.error}):"openSessionStats"!==e.action&&r0({type:"success",message:e.message??"Command completed"})),e);try{switch(r){case"compact":{if(!i||td)return s({handled:!0,error:"No active session to compact"});tc(!0),tp(null),tg(null);let e=await tE(i,{type:"compact",...o?{customInstructions:o}:{}});return tg(c7(e,"manual")),await rU(i,!0)&&rq(),s({handled:!0,message:"Compacted context"})}case"auto-compact":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_state"}),t=!(e?.autoCompactionEnabled??!0);return await tE(i,{type:"set_auto_compaction",enabled:t}),eH(t),s({handled:!0,message:t?"Auto-compaction enabled":"Auto-compaction disabled"})}case"reload":if(!i)return s({handled:!0,error:"No active session to reload"});return await tE(i,{type:"reload"}),await Promise.all([rU(i,!1,!0),r_(i),rV(),ng()]),s({handled:!0,message:"Reloaded session resources"});case"name":if(!i)return s({handled:!0,error:"No active session to name"});if(!o)return s({handled:!0,error:"Usage: /name <name>"});return await tE(i,{type:"set_session_name",name:te(o)}),await rU(i)&&rq(),s({handled:!0,message:`Session renamed to ${o}`});case"session":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_session_stats"});return e&&tI(e),u?.(),s({handled:!0,action:"openSessionStats"})}case"copy":{if(!i)return s({handled:!0,error:"No active session"});let e=await tE(i,{type:"get_last_assistant_text"}),t=e?.text??"";if(!t)return s({handled:!0,error:"No assistant message to copy"});return await navigator.clipboard.writeText(t),s({handled:!0,message:"Copied last assistant message"})}case"clone":{if(!i)return s({handled:!0,error:"No active session to clone"});if(rr.current||ra.current)return s({handled:!0,error:"Cannot clone while the session is running"});let e=await tE(i,{type:"clone",leafId:w});if(e?.cancelled||!e?.newSessionId)return s({handled:!0,error:"Cannot clone an empty or unsaved session"});let t=s({handled:!0,message:"Cloned current session branch"});return l?.(e.newSessionId),t}default:return{handled:!1}}}catch(e){return s({handled:!0,error:e instanceof Error?e.message:String(e)})}finally{"compact"===r&&tc(!1)}},[w,r0,rK,td,ng,rU,rV,r_,rq,l,u]),nf=(0,o.useCallback)(async e=>{let t=!1;try{let r=await fetch(`/api/agent/${encodeURIComponent(e)}`);if(r.ok){let e=await r.json(),n=e.state;if(e.running&&n&&(n.isStreaming||n.isPromptRunning||n.isBashRunning||n.isCompacting))return;t=!0}}catch{}t?r3():ne(e)},[ne,r3]),nm=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(r,{type:"steer",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to steer:",e),nf(r)}},[nf]),nv=(0,o.useCallback)(async(e,t,r)=>{let n=t6.current;if(!n)return;let o=r?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(n,{type:"prompt",message:e,streamingBehavior:t,...o?.length?{images:o}:{}})}catch(e){console.error("Failed to queue prompt:",e),nf(n)}},[nf]),ny=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return;let n=t?.map(e=>({type:"image",data:e.data,mimeType:e.mimeType}));rr.current=!0,q(!0),tf(e=>e??{kind:"waiting_model"});try{await tE(r,{type:"follow_up",message:e,...n?.length?{images:n}:{}})}catch(e){console.error("Failed to follow up:",e),nf(r)}},[nf]),nb=(0,o.useCallback)(async()=>{let e=t6.current;if(e)try{await tE(e,{type:"abort_compaction"})}catch(e){console.error("Failed to abort compaction:",e)}},[]),nk=(0,o.useCallback)(async()=>{let t=t6.current;if(t)try{let r=await tE(t,{type:"clear_queue"});tO({steering:[],followUp:[]});let n=[...r?.steering??[],...r?.followUp??[]];n.length>0&&e.chatInputRef?.current?.prependText(n.join("\n\n"))}catch(e){console.error("Failed to recall queued messages:",e),r0({type:"error",message:"Failed to recall queued messages"})}},[e.chatInputRef,r0,tO]);(0,o.useEffect)(()=>{0===tB.length&&tK(!1)},[tB.length]);let nj=(0,o.useCallback)(async(e,t,r=!1)=>{let n=t6.current;if(!n)return tB;try{let o=await tE(n,{type:"resolve_recovery",keep:e,discard:t,continueRun:r}),i=o?.remaining??[];return t_(i),r&&e.length>0&&(async()=>{try{let e=await fetch(`/api/agent/${encodeURIComponent(n)}`);if(!e.ok)return;let t=await e.json(),r=t.state;if(!t.running||!r||!r.isStreaming&&!r.isPromptRunning)return;rn.current=!!r.isStreaming,ro.current=!!r.isPromptRunning,rr.current=!0,q(!0),tf(cG(r)),A({type:"start"}),rG(n),!r.isStreaming&&r.isPromptRunning&&ne(n)}catch{}})(),i}catch(e){return console.error("Failed to resolve queued message recovery:",e),r0({type:"error",message:"Failed to resolve queued message recovery"}),tB}},[tB,r0,rG,ne,t_]),nw=(0,o.useCallback)(async()=>{let e=t6.current;if(!e)return null;try{return await tE(e,{type:"export_queue"})}catch(e){return console.error("Failed to export queue:",e),r0({type:"error",message:"Failed to export queue"}),null}},[r0]),nS=(0,o.useCallback)(async e=>{let t=t6.current;if(!t)return null;try{let r=await tE(t,{type:"import_queue",entries:e});return r&&tO(cZ(r)),r?.imported??0}catch(e){return console.error("Failed to import queue:",e),r0({type:"error",message:"Failed to import queue"}),null}},[r0,tO]),nC=(0,o.useCallback)(async e=>{let t=t6.current;if(!t)return null;try{let r=await tE(t,{type:"stage_recovery",entries:e});return r?.pendingRecovery&&t_(r.pendingRecovery),(r?.staged??0)>0&&tK(!0),r?.staged??0}catch(e){return console.error("Failed to stage imported queue:",e),r0({type:"error",message:"Failed to stage imported queue"}),null}},[r0,t_]),nz=(0,o.useCallback)(async(e,t,r)=>{let n=t6.current;if(!n)return!1;try{let o=await tE(n,{type:"move_queue",kind:e,fromIndex:t,toIndex:r});return o&&tO(cZ(o)),!0}catch(e){return console.error("Failed to move queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to move queued message"}),!1}},[r0,tO]),nT=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return null;try{let n=await tE(r,{type:"recall_queue_item",kind:e,index:t});return n&&(void 0!==n.steering||void 0!==n.followUp)&&tO(cZ(n)),n?.entry?{text:n.entry.text,images:n.entry.images?.map(({data:e,mimeType:t})=>({data:e,mimeType:t}))}:null}catch(e){return console.error("Failed to recall queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to recall queued message"}),null}},[r0,tO]),nR=(0,o.useCallback)(async(e,t,r,n)=>{let o=t6.current;if(!o)return!1;try{let i=await tE(o,{type:"requeue_at",kind:e,index:t,text:r,images:n?.map(({data:e,mimeType:t})=>({type:"image",data:e,mimeType:t}))});return i&&tO(cZ(i)),!0}catch(e){return console.error("Failed to requeue message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to requeue message"}),!1}},[r0,tO]),nI=(0,o.useCallback)(async(e,t)=>{let r=t6.current;if(!r)return!1;try{let n=await tE(r,{type:"remove_queue_item",kind:e,index:t});return n&&tO(cZ(n)),!0}catch(e){return console.error("Failed to remove queued message:",e),r0({type:"error",message:e instanceof Error?e.message:"Failed to remove queued message"}),!1}},[r0,tO]),nM=(0,o.useCallback)(async e=>{if("auto"===e){rM.current=null,eU(e);return}rM.current=e,eU(e);let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_thinking_level",level:e}),t4.current&&t6.current===t&&eq(e)}catch(e){console.error("Failed to set thinking level:",e)}},[]),nE=(0,o.useCallback)(async e=>{let t=(0,cB.xG)(e);!function(e,t=function(){try{return window.localStorage}catch{return null}}()){if(t)try{t.setItem("pi-tool-preset",e)}catch{}}(e),rL(e);let r=t6.current??await rk.current;if(!r){rt.current=void 0!==t;return}try{let e=await tE(r,{type:"set_tools",...void 0!==t?{toolNames:t}:{}});rt.current=void 0!==t;let n=e?.sessionId??r;(n!==r||e?.recreated)&&(rJ(),rY(),t6.current=n),tj([]),tA([]),tF([]);let[o]=await Promise.all([tE(n,{type:"get_state"}),r_(n)]);t4.current&&t6.current===n&&(eX(o.systemPrompt??""),ts(o))}catch(e){console.error("Failed to set tools:",e)}},[rJ,rY,r_,rL,ts]),n$=(0,o.useRef)(0),nW=(0,o.useCallback)(async e=>{let t=t6.current??await rk.current,r=++n$.current;if("plan"===e){if(eg.current="plan"===ep||"configured"===ep?"default":ep,t)try{await tE(t,{type:"prompt",message:"/plan"})}catch(e){if(n$.current!==r)return;console.error("Failed to enter plan mode:",e)}return}if(t){try{if(await tE(t,{type:"prompt",message:"/plan exit"}),n$.current!==r)return}catch(e){if(n$.current!==r)return;console.error("Failed to exit plan mode:",e)}if(n$.current!==r)return;try{await tE(t,{type:"set_tools",toolNames:(0,cB.xG)(eg.current)})}catch(e){console.error("Failed to restore tools after plan exit:",e)}}},[ep]),nL=(0,o.useCallback)(e=>{e$.current=e,em(e);let t=t6.current;if(!t){ev.current=e;return}ev.current=null,fetch(`/api/modes?session=${encodeURIComponent(t)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).catch(e=>{console.error("Failed to persist mode settings:",e)})},[]),nN=(0,o.useCallback)(e=>{let t=e2(e),r="plan"===ez.current;if(nL({...e$.current,collaborationMode:t}),ez.current=t,eE.current={sessionKey:"",signature:""},"goal"!==t){eM.current=null,eO.current=!1,eP(e=>"idle"===e.status?e:{...e,status:"idle",goalText:null});let e=t6.current;e&&tE(e,{type:"goal_stop"}).catch(()=>{})}return"plan"!==t||r?"plan"!==t&&r?nW("normal"):Promise.resolve():nW("plan")},[nL,nW]),nA=(0,o.useCallback)(async e=>{nL({...e$.current,tokenMode:e6(e)});let t=t6.current??await rk.current;if(t)try{if("economy"!==e||ex.current){if("economy"!==e){let e=ex.current?cB.SC:(0,cB.xG)("plan"===ep?"default":ep);await tE(t,{type:"set_tools",toolNames:e})}}else await tE(t,{type:"set_tools",toolNames:[...e5]})}catch(e){console.error("Failed to apply token mode tools:",e)}},[nL,ep]),nP=(0,o.useCallback)(async e=>{nL({...e$.current,toolApprovalMode:e4(e)});let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_approval_mode",mode:e4(e)})}catch(e){console.error("Failed to apply approval mode:",e)}},[nL]),nF=(0,o.useCallback)(async e=>{nL({...e$.current,permissionRules:e});let t=t6.current??await rk.current;if(t)try{await tE(t,{type:"set_approval_policy",policy:e})}catch(e){console.error("Failed to apply permission rules:",e)}},[nL]),nD=(0,o.useCallback)(async(e,t,r,n)=>{let o=t6.current;if(o){if("always"===n){let r=eN.current.find(t=>t.id===e);if(r){let e=aD(r.toolName,r.args),n=e?`${r.toolName}(${e})`:r.toolName,o=e$.current.permissionRules;(t?o.allow:o.deny).includes(n)||nF(t?{...o,allow:[...o.allow,n]}:{...o,deny:[...o.deny,n]})}}try{await tE(o,{type:"resolve_approval",id:e,approve:t,reason:r})}catch(e){console.error("Failed to resolve approval:",e)}finally{eL(t=>t.filter(t=>t.id!==e))}}},[nF]),nH=(0,o.useCallback)(e=>{eM.current=e},[]),nO=(0,o.useCallback)(e=>{let t=e.trim();if(!t)return;eM.current=t,eP(e=>({...e,status:"running",goalText:t,turnsUsed:0,noProgressTurns:0,tokensUsed:0,startedAt:Date.now()}));let r=t6.current;r&&tE(r,{type:"goal_start",goalText:t}).catch(()=>{})},[]),nB=(0,o.useCallback)(()=>{if("running"!==eF.current.status)return;eP(e=>({...e,status:"paused"}));let e=t6.current;e&&tE(e,{type:"goal_pause"}).catch(()=>{})},[]),nU=(0,o.useCallback)(()=>{let e=eF.current;if("paused"!==e.status&&"blocked"!==e.status)return;eP(e=>({...e,status:"running"}));let t=t6.current;t&&tE(t,{type:"goal_resume"}).catch(()=>{})},[]),n_=(0,o.useCallback)(()=>{eO.current=!1,eM.current=null,eP(e=>({...e,status:"idle",goalText:null,turnsUsed:0,noProgressTurns:0}));let e=t6.current;e&&tE(e,{type:"goal_stop"}).catch(()=>{})},[]),nq=(0,o.useCallback)(e=>{let t=e.trim();if(!t)return;eP(e=>({...e,goalText:t}));let r=t6.current;r&&tE(r,{type:"goal_edit",goalText:t}).catch(()=>{})},[]),nK=(0,o.useCallback)(()=>{let e=rb.current,t=rh.current;if(!e||!t)return;let r=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop,n=Math.max(0,e.scrollHeight-e.clientHeight),o=Math.min(Math.max(0,r-16),n);rf.current=o>=n-150,rv.current=Date.now()+700,e.scrollTo({top:o,behavior:"smooth"})},[]),nV=(0,o.useCallback)(e=>{if(e instanceof KeyboardEvent){if(!c1.has(e.key)||e.target instanceof Element&&e.target.closest("input, textarea, [contenteditable='true']"))return}else if(e instanceof PointerEvent){let t=rb.current;if(t&&e.target instanceof Element&&!t.contains(e.target))return}rm.current=Date.now()+1200},[]),nJ=(0,o.useCallback)(()=>{let e=rb.current;if(e){let{scrollTop:t,clientHeight:r,scrollHeight:n}=e,o=rr.current,i=rf.current,s=function(e,t,r,n,o,i=96){return!!cJ(r,n,o)||!(r<t)&&(!!(!e&&r>t&&cJ(r,n,o,i))||e)}(i,t9.current,t,r,n,o?96:8);rf.current=s,t9.current=t;let l=function(e,t,r,n=8){return!(r<=t)&&!cJ(e,t,r,n)}(t,r,n);tb(e=>e===l?e:l),!i&&s&&o&&no("auto")}if(Date.now()<rm.current){rx.current=!1;return}Date.now()<rv.current||(rx.current=!1)},[]);(0,o.useEffect)(()=>{if(rs.current=!0,t){var e;let r;t6.current=t.id;let n=(e=t.id,(r=cq().get(e))?Date.now()-r.savedAt>6e5?(cq().delete(e),null):(cq().delete(e),cq().set(e,r),r):null);n&&(x({sessionId:t.id,filePath:"",leafId:n.leafId,context:{messages:n.messages,entryIds:n.entryIds,oldestEntryId:n.oldestEntryId,hasMore:n.hasMore,thinkingLevel:n.thinkingLevel,model:n.model},stats:n.stats,...void 0!==n.totalActiveMs?{totalActiveMs:n.totalActiveMs}:{}}),S(n.leafId),z(n.messages),M(n.entryIds),$(n.oldestEntryId),L(n.hasMore),j(null),b(!1));let o=eR.current,i=eI.current;("auto"!==o||i.allow.length||i.ask.length||i.deny.length)&&(tE(t.id,{type:"set_approval_mode",mode:o}).catch(()=>{}),tE(t.id,{type:"set_approval_policy",policy:i}).catch(()=>{}));let s=e=>{!rc.current&&(rc.current=!0,e.isBashRunning&&(ra.current=!0,V(!0),nt(t.id)),r_(t.id),(e.isStreaming||e.isPromptRunning)&&(rn.current=!!e.isStreaming,ro.current=!!e.isPromptRunning,rr.current=!0,q(!0),tf(cG(e)),A({type:"resume"}),rG(t.id),!e.isStreaming&&e.isPromptRunning&&ne(t.id)))};(async()=>{try{let e,r=new AbortController,n=setTimeout(()=>r.abort(),2e4);try{e=await fetch(`/api/sessions/${encodeURIComponent(t.id)}/state`,{signal:r.signal})}finally{clearTimeout(n)}if(!e.ok)throw Error(`HTTP ${e.status}`);let o=await e.json();if(!rs.current||t6.current!==t.id)return;o.running&&o.state&&s(o.state)}catch{}})(),rU(t.id,!n,!0,{force:!0}).then(e=>{e?.running&&e.state&&s(e.state),e?.state&&(void 0!==e.state.isCompacting&&tc(e.state.isCompacting),void 0!==e.state.contextUsage&&eY(e.state.contextUsage??null),void 0!==e.state.systemPrompt&&eX(e.state.systemPrompt??null),void 0!==e.state.extensionStatuses&&tA(e.state.extensionStatuses??[]),void 0!==e.state.extensionWidgets&&tF(e.state.extensionWidgets??[]),void 0!==e.state.queuedMessages&&tO(cZ(e.state.queuedMessages)),void 0!==e.state.pendingRecovery&&t_(e.state.pendingRecovery??[])),e?.running||(async()=>{for(let e=0;e<5;e++){if(e>0&&await new Promise(e=>setTimeout(e,2e3)),!rs.current||t6.current!==t.id||rr.current)return;try{let e=await fetch(`/api/agent/${encodeURIComponent(t.id)}`);if(!e.ok)continue;let r=await e.json();if(!rs.current||t6.current!==t.id)return;if(r?.running&&r.state)return void s(r.state)}catch{}}})()})}return()=>{rs.current=!1,f.current?.abort(),v.current?.abort(),r$(),tY(),rd.current+=1,rJ(),rY()}},[r$]),(0,o.useEffect)(()=>{c?.(eG)},[eG,c]),(0,o.useEffect)(()=>{d&&d(g?.tree??[],w,nu)},[g?.tree,w,nu,d]),(0,o.useEffect)(()=>(window.addEventListener("keydown",nV),window.addEventListener("pointerdown",nV,{passive:!0}),()=>{window.removeEventListener("keydown",nV),window.removeEventListener("pointerdown",nV)}),[nV]),(0,o.useEffect)(()=>{let e=rb.current;if(e)return e.addEventListener("wheel",nV,{passive:!0}),e.addEventListener("touchstart",nV,{passive:!0}),e.addEventListener("scroll",nJ,{passive:!0}),()=>{e.removeEventListener("wheel",nV),e.removeEventListener("touchstart",nV),e.removeEventListener("scroll",nJ)}},[C.length,y,nJ,nV]),(0,o.useEffect)(()=>{C.length>0&&(rg.current?(rp.current=!0,rh.current&&(rg.current=!1,nK())):y||!rp.current?(y||(rp.current=!0),no("instant")):!rr.current&&(rx.current||rf.current)&&(no("smooth"),nX(e=>e+1)))},[C.length,y,_,no,nK]);let nY=(0,o.useRef)(null),[nG,nX]=(0,o.useState)(0),nZ=`${t?.id??null}#${nG}`;(0,o.useEffect)(()=>{let e;if(y){nY.current=null;return}if(0===C.length||nY.current===nZ)return;nY.current=nZ;let t=!1,r=!1,n=-1,o=0,i=Date.now(),s=()=>{if(t||r)return;let l=rb.current;if(l){if(Date.now()<rm.current){let{scrollTop:e,clientHeight:t,scrollHeight:n}=l;if(e+t<n-150){r=!0;return}}if(no("instant"),l.scrollHeight===n){if((o+=1)>=4||Date.now()-i>=3e4)return}else if(n=l.scrollHeight,o=0,Date.now()-i>=3e4)return;e=window.setTimeout(s,o>0?500:250)}};return e=window.setTimeout(s,250),()=>{t=!0,void 0!==e&&window.clearTimeout(e)}},[y,no,nZ]),(0,o.useEffect)(()=>{let e=new AbortController;return ng(e.signal).catch(e=>{if(e instanceof DOMException&&"AbortError"===e.name)return}),()=>e.abort()},[ng,a]),(0,o.useEffect)(()=>{if(!es)return;let e=()=>{"visible"===document.visibilityState&&ng()};return document.addEventListener("visibilitychange",e),window.addEventListener("online",e),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("online",e)}},[es,ng]),(0,o.useEffect)(()=>{if(!tu)return;let e=setTimeout(()=>tp(null),3e3);return()=>clearTimeout(e)},[tu]),(0,o.useEffect)(()=>{if(!th)return;let e=setTimeout(()=>tg(null),6e3);return()=>clearTimeout(e)},[th]),(0,o.useEffect)(()=>{if(0===tC.visible.length)return;let e=tC.visible.find(e=>e.exiting);if(e){let t=setTimeout(()=>{tz({type:"remove",id:e.id})},180);return()=>clearTimeout(t)}if(!tC.visible[0])return;let t=setTimeout(()=>{tz({type:"mark_oldest_exiting"})},5e3);return()=>clearTimeout(t)},[tC.visible]),(0,o.useEffect)(()=>{tI(null)},[C.length,eJ?.tokens,eJ?.percent,eJ?.contextWindow]);let nQ=g?.tree??[];return{isAutoThinkingSelection:p&&null===rH,data:g,loading:y,error:k,activeLeafId:w,messages:C,activeToolResults:T,entryIds:I,historyCursor:E,hasEarlierMessages:W,streamState:N,agentRunning:_,bashRunning:K,pendingBash:J,modelNames:G,modelList:Z,modelThinkingLevels:ee,modelThinkingLevelMaps:er,modelScopeWarnings:eo,modelsError:es,newSessionModel:ea,toolPreset:ep,thinkingLevel:rO??eB,retryInfo:eK,contextUsage:eJ,systemPrompt:eG,forkingEntryId:eZ,isCompacting:td,compactError:tu,compactResult:th,currentModel:rP,displayModel:rF,sessionStats:rB,tokenRate:F,planMode:eC,collaborationMode:ek,tokenMode:ej,toolApprovalMode:ew,permissionRules:eS,modeSettings:ef,approvalRequests:eW,handleCollaborationModeChange:nN,handleTokenModeChange:nA,handleToolApprovalModeChange:nP,handlePermissionRulesChange:nF,resolveApproval:nD,setActiveGoalText:nH,goalState:eA,handleGoalStart:nO,handleGoalPause:nB,handleGoalResume:nU,handleGoalStop:n_,handleGoalEdit:nq,slashCommands:tk,slashCommandsLoading:tw,queuedMessages:tD,pendingRecovery:tB,recoveryIsImport:tq,notices:tC.visible,extensionDialog:tM,extensionCustomUi:tW,extensionStatuses:tN,extensionWidgets:tP,respondToExtensionUi:rZ,sendExtensionCustomInput:rQ,agentPhase:tx,isNew:p,promptAnchorActive:tm,branchTree:nQ,autoCompactionEnabled:eD,sessionIdRef:t6,eventSourceRef:tG,messagesEndRef:ry,scrollContainerRef:rb,lastUserMsgRef:rh,pendingScrollToUserRef:rg,initialScrollDoneRef:rp,scrollUserMsgToTop:nK,handleSend:ns,executeBash:nl,handleAbort:na,handleFork:nd,handleNavigate:nc,handleModelChange:np,handleCompact:nh,handleSteer:nm,handleFollowUp:ny,handlePromptWithStreamingBehavior:nv,handleAbortCompaction:nb,handleRecallQueue:nk,resolveRecovery:nj,exportQueueData:nw,importQueueData:nS,stageQueueImport:nC,moveQueuedMessage:nz,recallQueuedMessage:nT,requeueAt:nR,removeQueuedMessage:nI,handleBuiltinSlashCommand:nx,handleToolPresetChange:nE,handleThinkingLevelChange:nM,loadTools:r_,loadSlashCommands:rV,reloadModels:ng,setActiveLeafId:S,setData:x,setMessages:z,loadContext:r2,dispatch:A,setAgentRunning:q,setForkingEntryId:tt,handleLeafChange:nu,handleAgentEventRef:ru}}({session:e,newSessionCwd:t,onAgentEnd:N,onSessionCreated:s,onSessionForked:l,modelsRefreshKey:d,chatInputRef:c,onBranchDataChange:u,onSystemPromptChange:p,onSessionStatsPanelOpen:g}),[tz,tT]=(0,o.useState)(!1);(0,o.useEffect)(()=>{0===em.length&&tT(!1)},[em.length]);let tI=(0,o.useMemo)(()=>{let e=O.findLast(e=>"assistant"===e.role&&!!e.usage);if(!e?.usage)return null;let t=e.usage;return{model:e.model??"",input:t.input??0,output:t.output??0,cacheRead:t.cacheRead??0,costCNY:ar(e.model)?an(e.model,t):0,costUSD:ar(e.model)?0:t.cost?.total??0}},[O]),[tM,t$]=(0,o.useState)(!1),[tW,tL]=(0,o.useState)(null),tN=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(!td){tN.current=!1;return}if(q){tN.current=!0;return}tN.current&&(tN.current=!1,tL(function(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if("assistant"!==r.role)continue;let n=r.content;if("string"==typeof n&&n.trim())return n;if(Array.isArray(n)){let e=n.filter(e=>"text"===e.type).map(e=>e.text??"").join("\n").trim();if(e)return e}}for(let t=e.length-1;t>=0;t--){let r=e[t];if("toolResult"!==r.role)continue;let n=r.content,o="string"==typeof n?n:Array.isArray(n)?n.map(e=>e.text??"").join("\n"):"";if(!o)continue;let i=o.match(/\*\*Proposed Plan\*\*\s*\n+([\s\S]+)/i);if(i?.[1]?.trim())return i[1].trim()}return null}(O)??null),t$(!0))},[q,td,O]);let tA=(0,o.useCallback)(()=>{t$(!1);let e=tP.current;e&&th("plan"===tc?"normal":tc).catch(e=>{console.error("Failed to leave plan mode before executing:",e)}).then(()=>{eF(E("tasks.planReviewExecutePrompt",{plan:e}))})},[th,eF,E,tc]),tP=(0,o.useRef)(null);(0,o.useEffect)(()=>{tP.current=tW},[tW]);let tF=(0,o.useCallback)(e=>{t$(!1),eF(e)},[eF]),tD=(0,o.useCallback)(()=>{t$(!1),th("plan"===tc?"normal":tc)},[th,tc]);(0,o.useEffect)(()=>{eb&&L.current!==eb.id&&(L.current=eb.id,W.current&&$.current())},[eb]),(0,o.useEffect)(()=>(a=q||K?eH:null,()=>void(a=null)),[q,K,eH]);let[tH,tO]=(0,o.useState)(!1),[tB,tU]=(0,o.useState)(!1),[t_,tq]=(0,o.useState)(!1),tK=(0,o.useCallback)(()=>{let e=eW.current;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight;tO(e.scrollTop>1),tU(t>1),tq(t>240)},[eW]),tV=(0,o.useCallback)(()=>{window.requestAnimationFrame(()=>{let e=eW.current,t=e$.current;if(!e||!t)return;let r=Math.max(88,c?.current?.measureHeight?.()??0),n=()=>{if(!e||!t)return;let n=Math.max(0,t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop-96-e.clientHeight+r);e.scrollTo({top:n,behavior:"auto"})};n(),tK(),window.setTimeout(n,200)})},[e$,eW,tK,c]);(0,o.useEffect)(()=>{let e=eW.current;if(!e)return;let t=new ResizeObserver(tK);return t.observe(e),e.firstElementChild&&t.observe(e.firstElementChild),e.addEventListener("scroll",tK,{passive:!0}),tK(),()=>{e.removeEventListener("scroll",tK),t.disconnect()}},[O.length,eW,tK]);let tJ=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let t=eW.current;if(!t)return;let r=()=>{if(tJ.current||!tS||!tw||t.scrollTop>8)return;let r=e?.id;if(!r)return;tJ.current=!0;let n=t.scrollHeight-t.scrollTop;tC(r,eI,tw).finally(()=>{tJ.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})};return t.addEventListener("scroll",r,{passive:!0}),()=>t.removeEventListener("scroll",r)},[eW,tw,tS,tC,e?.id,eI]);let tY=(0,o.useRef)(!1);(0,o.useEffect)(()=>{if(!tS||!tw)return;let t=eW.current,r=e?.id;if(!t||!r||tJ.current||tY.current||D||t.scrollTop>8||t.scrollHeight>t.clientHeight+50)return;tY.current=!0;let n=t.scrollHeight-t.scrollTop;tC(r,eI,tw).finally(()=>{tY.current=!1,requestAnimationFrame(()=>{let e=t.scrollHeight-n;Math.abs(t.scrollTop-e)>1&&t.scrollTo({top:e,behavior:"auto"})})})},[eW,tw,tS,tC,e?.id,eI,D,O.length]);let tG=(0,o.useRef)(null),tX=(0,o.useRef)([]),tZ=(0,o.useRef)(new Map),tQ=(0,o.useRef)(null),[t0,t1]=(0,o.useState)(0);(0,o.useEffect)(()=>{let e=tQ.current;if(!e)return void t1(e=>0===e?e:0);let t=()=>{let t=Math.round(e.getBoundingClientRect().height);t1(e=>e===t?e:t)};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[D,H]);let t2=(0,o.useMemo)(()=>({getOffsetForIndex:e=>tG.current?.getOffsetForIndex(e)?.[0]??0,sizeFor:e=>{let t=tG.current;if(!t)return 0;let r=t.measurementsCache[e];return r?.size??t.options.estimateSize?.(e)??0},totalHeight:()=>tG.current?.getTotalSize()??0,refToItemIndex:e=>tX.current[e],itemCount:tX.current.length}),[]),t6=ep?[ep.sessionId,ep.sessionFile??"",ep.sessionName??"",ep.userMessages,ep.assistantMessages,ep.toolCalls,ep.toolResults,ep.totalMessages,ep.tokens.input,ep.tokens.output,ep.tokens.cacheRead,ep.tokens.cacheWrite,ep.tokens.total,ep.cost??0,ep.totalActiveMs??0].join("|"):null,t4=(0,o.useRef)(ep);t4.current=ep,(0,o.useEffect)(()=>{h?.(t4.current)},[t6,h]),(0,o.useEffect)(()=>()=>{h?.(null)},[h]);let t5=es?`${es.percent??"null"}|${es.contextWindow}|${es.tokens??"null"}`:null,t3=(0,o.useRef)(es);t3.current=es,(0,o.useEffect)(()=>{x?.(t3.current)},[t5,x]),(0,o.useEffect)(()=>()=>{x?.(null)},[x]);let{isDragOver:t8,handleDragEnter:t7,handleDragOver:t9,handleDragLeave:re,handleDrop:rt}=function(e){let[t,r]=(0,o.useState)(!1),n=(0,o.useRef)(0),i=(0,o.useCallback)(e=>{e.dataTransfer.files.length&&(e.preventDefault(),n.current+=1,r(!0))},[]),s=(0,o.useCallback)(e=>{e.dataTransfer.files.length&&e.preventDefault()},[]);return{isDragOver:t,handleDragEnter:i,handleDragOver:s,handleDragLeave:(0,o.useCallback)(()=>{n.current-=1,n.current<=0&&(n.current=0,r(!1))},[]),handleDrop:(0,o.useCallback)(t=>{t.preventDefault(),n.current=0,r(!1),e(Array.from(t.dataTransfer.files),t.dataTransfer)},[e])}}((0,o.useCallback)((e,t)=>{if(q){let t=e.filter(e=>e.type.startsWith("image/"));t.length&&c?.current?.addImages(t);return}c?.current?.addFiles(e,t)},[q,c])),rr=O.filter(e=>"user"===e.role||"assistant"===e.role||si(e));(0,o.useMemo)(()=>{let e=new Map(B);for(let t of O)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[B,O]);let rn=(0,o.useMemo)(()=>{let e=new Set,t=[];for(let n=O.length-1;n>=0&&t.length<50;n-=1){var r;let o="user"!==(r=O[n]).role?null:("string"==typeof r.content?r.content:r.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n")).trim()||null;!o||e.has(o)||(e.add(o),t.push(o))}return t},[O]),ro=(S=rr.length,(C=(0,o.useRef)([])).current.length!==S&&(C.current=Array.from({length:S},(e,t)=>C.current[t]??null)),C),ri=eT&&0===O.length&&!_.isStreaming&&!q,rs=e?.cwd??t??void 0;!function(e,t=!0){(0,o.useEffect)(()=>{if(!t)return;let r=null,n=null,o=!1,i=null,s=()=>{null!==i&&(clearTimeout(i),i=null)},l=()=>{r&&(s(),r.classList.add("scrollbar-visible"))},a=()=>{r&&(s(),i=setTimeout(()=>{i=null,r?.classList.remove("scrollbar-visible")},500))},d=()=>{l(),a()},c=()=>{if(!o){if(!(r=e.current)){n=requestAnimationFrame(c);return}r.addEventListener("pointerenter",l),r.addEventListener("pointerleave",a),r.addEventListener("scroll",d)}};return c(),()=>{o=!0,null!==n&&cancelAnimationFrame(n),r?.removeEventListener("pointerenter",l),r?.removeEventListener("pointerleave",a),r?.removeEventListener("scroll",d),s(),r?.classList.remove("scrollbar-visible")}},[t,e])}(eW,!!e?.id||!ri);let rl=(0,o.useMemo)(()=>sN(O,U,rs,B),[O,U,rs,B]),ra=eu?X[`${eu.provider}:${eu.modelId}`]??null:null,rd=eu?Z[`${eu.provider}:${eu.modelId}`]??null:null,rc=(0,o.useCallback)(()=>{et()},[et]),ru=(0,o.useCallback)(e=>{th(e)},[th]),rp=e?.relation?.kind==="subagent"?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,padding:"14px 16px",borderTop:"1px solid var(--border)",color:"var(--text-dim)",fontSize:12},children:[(0,n.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),E("subagent.readOnlyNotice")]}):(0,n.jsx)(cv,{ref:c,onSend:eF,onBash:eD,tasksBoardEnabled:b,onAbort:eH,onSteer:q?eq:void 0,onFollowUp:q?eK:void 0,onPromptWithStreamingBehavior:q?eV:void 0,isStreaming:q,model:eu,modelNames:J,modelList:G,modelScopeWarnings:Q,modelsError:ee,onRetryModels:rc,onModelChange:eU,compactResult:ec,toolPreset:er,onToolPresetChange:e||eT?ts:void 0,collaborationMode:tc,toolApprovalMode:tu,onCollaborationModeChange:ru,onToolApprovalModeChange:tg,goalState:tm,onGoalStart:tv,onGoalPause:ty,onGoalResume:tb,onGoalStop:tk,thinkingLevel:en,isAutoThinkingSelection:eo,onThinkingLevelChange:e||eT?tl:void 0,availableThinkingLevels:ra,thinkingLevelMap:rd,retryInfo:ei,queuedMessages:ef,inputHistory:rn,onRecallQueue:eY,onMoveQueue:tt,onRecallOne:tr,onRequeueAt:tn,onRemoveQueueItem:to,slashCommands:eg,slashCommandsLoading:ex,onLoadSlashCommands:ta,onBuiltinCommand:ti,onAudioUnlock:I,draftKey:e?.id??(t?`new:${t}`:void 0),cwd:e?.cwd??t,topCenterControl:t_?(0,n.jsx)("button",{type:"button",className:"chat-input-top-center",onClick:tV,title:E("desktop.scrollToBottom"),"aria-label":E("desktop.scrollToBottom"),children:(0,n.jsx)(l5.Z,{size:16,weight:"bold","aria-hidden":"true"})}):void 0}),rh=ew.filter(e=>"belowEditor"!==e.placement),rg=ew.filter(e=>"belowEditor"===e.placement),rx=ea?E("desktop.compacting"):function(e,t){if(e?.kind==="running_tools"){let r=e.tools.map(e=>e.name);return 0===r.length?t("desktop.runningTool"):t("desktop.runningTools",{tools:r.length<=3?r.join(", "):`${r.slice(0,2).join(", ")} (+${r.length-2})`})}return e?.kind==="waiting_model"?t("desktop.waitingForModel"):e?.kind==="running_command"?t("desktop.runningCommand"):null}(ez,E);return D?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-text-muted",children:E("desktop.loadingSession")}):H?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-red-400",children:H}):(0,n.jsxs)("div",{className:"relative flex h-full min-w-0 flex-col overflow-hidden",onDragEnter:t7,onDragOver:t9,onDragLeave:re,onDrop:rt,children:[t8&&(0,n.jsxs)("div",{className:"pointer-events-none absolute inset-0 z-50 flex animate-[drop-zone-in_0.15s_ease_both] items-center justify-center bg-[rgba(37,99,235,0.06)] backdrop-blur-[1px]",children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:[0,.8,1.6].map(e=>(0,n.jsx)("div",{className:"absolute h-[720px] w-[720px] rounded-full border-[1.5px] border-solid border-[rgba(37,99,235,0.5)] animate-[drop-ripple_2.4s_ease-out_infinite_backwards]",style:{transformOrigin:"center",animationDelay:`${e}s`}},e))}),(0,n.jsxs)("svg",{width:"280",height:"280",viewBox:"0 0 140 140",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"drop-shadow-[0_6px_18px_rgba(37,99,235,0.18)]",children:[(0,n.jsx)("rect",{x:"28",y:"44",width:"84",height:"60",rx:"8",fill:"rgba(37,99,235,0.08)",stroke:"rgba(37,99,235,0.50)",strokeWidth:"1.8"}),(0,n.jsx)("path",{d:"M36 100 L54 72 L68 88 L80 74 L104 100Z",fill:"rgba(37,99,235,0.16)",stroke:"rgba(37,99,235,0.40)",strokeWidth:"1.4",strokeLinejoin:"round"}),(0,n.jsx)("circle",{cx:"96",cy:"58",r:"8",fill:"rgba(37,99,235,0.22)",stroke:"rgba(37,99,235,0.55)",strokeWidth:"1.6"}),(0,n.jsxs)("g",{stroke:"rgba(37,99,235,0.45)",strokeWidth:"1.4",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"96",y1:"46",x2:"96",y2:"43"}),(0,n.jsx)("line",{x1:"96",y1:"70",x2:"96",y2:"73"}),(0,n.jsx)("line",{x1:"84",y1:"58",x2:"81",y2:"58"}),(0,n.jsx)("line",{x1:"108",y1:"58",x2:"111",y2:"58"}),(0,n.jsx)("line",{x1:"87.5",y1:"49.5",x2:"85.4",y2:"47.4"}),(0,n.jsx)("line",{x1:"104.5",y1:"66.5",x2:"106.6",y2:"68.6"}),(0,n.jsx)("line",{x1:"104.5",y1:"49.5",x2:"106.6",y2:"47.4"}),(0,n.jsx)("line",{x1:"87.5",y1:"66.5",x2:"85.4",y2:"68.6"})]})]})]}),eb&&(0,n.jsx)(ui,{request:eb,onRespond:eS}),ek&&(0,n.jsx)(us,{request:ek,onInput:eC}),!eT&&em.length>0&&!tz&&(0,n.jsx)(ck,{items:em,sessionId:e?.id,onResolve:eG,onExport:eX,onStageImport:eZ,onDismiss:()=>tT(!0),mode:ev?"import":"recovery"}),tx.length>0&&(0,n.jsx)(aO,{request:tx[0]??null,queuedCount:Math.max(0,tx.length-1),busy:!1,onResolve:(e,t,r)=>{let n=tx[0];n&&tf(n.id,e,t,r)}}),ri?(0,n.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center overflow-y-auto",children:(0,n.jsxs)("div",{className:"w-full max-w-[820px]",children:[(0,n.jsx)("div",{style:{display:"flex",justifyContent:"center",marginBottom:28},children:(0,n.jsxs)("svg",{fill:"currentColor",fillRule:"evenodd",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{width:64,height:64,color:"var(--accent)",opacity:.85},"aria-label":"Pi",children:[(0,n.jsx)("title",{children:"Pi"}),(0,n.jsx)("path",{clipRule:"evenodd",d:"M1 1h16.5v11H12v5.5H6.5V23H1V1zm5.5 5.5V12H12V6.5H6.5z"}),(0,n.jsx)("path",{d:"M17.5 12H23v11h-5.5V12z"})]})}),M&&(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",gap:10,marginBottom:18,marginTop:-14},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.18.10"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]}),(0,n.jsx)("div",{style:{padding:"0 34px 6px 7px",paddingRight:M?16:34},children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,n.jsx)("div",{ref:m,style:{display:"flex",alignItems:"center",minWidth:0,flex:1,minHeight:48}}),(0,n.jsxs)("div",{style:{display:M?"none":"flex",flexDirection:"column",alignItems:"flex-end",gap:2,flexShrink:0},children:[(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["web ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.18.10"]})]}),(0,n.jsxs)("span",{style:{fontSize:11,color:"var(--text-muted)",fontFamily:"var(--font-mono)"},children:["pi ",(0,n.jsxs)("span",{style:{color:"var(--text)"},children:["v","0.87.1"]})]})]})]})}),(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)(uo,{notices:ey,align:"right"})}),"goal"===tc&&(0,n.jsx)(aF,{goalState:tm,onPause:ty,onResume:tb,onStop:tk,onEdit:tj}),rp,(0,n.jsx)("div",{style:{padding:"0 16px 6px",paddingRight:M?16:34,marginTop:-15},children:(0,n.jsx)(cW,{onViewFullHistory:v,cwd:rs,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,showSoundLabel:!0,soundEnabled:z,onSoundToggle:T,onCompact:e?e_:void 0,onAbortCompaction:eJ,isCompacting:ea,compactError:ed,lastTurnUsage:tI})})]})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"relative flex flex-1 overflow-hidden z-0",children:[(0,n.jsx)("div",{style:{position:"absolute",top:12,left:0,right:18*!M,zIndex:40,padding:"0 16px",pointerEvents:"none"},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(uo,{notices:ey,floating:!0,align:"right"})})}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 min-w-0",children:[(0,n.jsx)("div",{ref:eW,className:"scrollbar-subtle h-full min-w-0 overflow-x-hidden overflow-y-auto pt-4 [scrollbar-gutter:stable]",children:(0,n.jsx)("div",{style:{minWidth:0,padding:"0 16px"},children:(0,n.jsxs)("div",{style:{width:"100%",minWidth:0,maxWidth:820,margin:"0 auto"},children:[(0,n.jsxs)("div",{ref:tQ,children:[(0,n.jsx)(ur,{statuses:ej}),(0,n.jsx)(un,{widgets:rh})]}),(()=>{let{toolResultsMap:t,lastUserIdx:r,visibleRefIndexByMessage:o,items:i}=rl;for(let e=O.length-1;e>=0&&!si(O[e]);e--);let s=tZ.current,l=(i,l={})=>{let a=l.messageOverride??O[i];if(!a||"toolResult"===a.role)return null;let d="user"===a.role||"assistant"===a.role||si(a),c=o.get(i),u=l.keyPrefix??"message",p=!1;if("assistant"===a.role){p=!0;for(let e=i+1;e<O.length;e++){let t=O[e].role;if("user"===t)break;if("assistant"===t){p=!1;break}}p&&_.isStreaming&&i===O.length-1&&(p=!1)}void 0!==l.showTimestamp&&(p=l.showTimestamp);let h=(0,n.jsx)(ad,{message:a,toolResults:t,modelNames:J,cwd:rs,onOpenFile:f,entryId:U[i],onFork:q||eT?void 0:eO,forking:el===U[i],onNavigate:q?void 0:eB,onEditContent:A,onQuoteReply:P,onOpenSession:k,onCreateTask:F,showTimestamp:p,prevTimestamp:i>0?O[i-1].timestamp:void 0,sessionId:e?.id??eE.current??void 0,writtenFiles:l.writtenFiles},`${u}-view-${i}`);return d&&!1!==l.attachRef&&void 0!==c?(0,n.jsx)("div",{ref:((e,t)=>{let n=s.get(t);if(!n){let e={isLastUser:!1};n={state:e,callback:r=>{ro.current[t]=r,e.isLastUser&&(eL.current=r,r&&eN.current&&(eN.current=!1,eA.current=!0,eP()))}},s.set(t,n)}return n.state.isLastUser=e===r,n.callback})(i,c),children:h},`${u}-${i}`):h},a=[],d=[],c=[],u=(e,t,r)=>{null!==e&&(a.push(e),d.push(t),c.push(r))},p=(e,t)=>U[e]||`${t}-${e}`,h=e=>`live-answer-u${e}`,g=e=>`answer-${p(e,"user")}`,x=e=>`subagent-${e}`,m=e=>sp(e.result?.details)?e.result.details.sessionId:"",v=e=>{let t=m(e);if(t&&w){let e=w.get(t);if(e)return"running"===e.status}let r=sp(e.result?.details)?e.result.details:null;return r?"running"===r.status||"starting"===r.status:!e.result},y=(e,t)=>`live-process-u${e}-seg${t}`,b=(e,t,r)=>`process-${p(e,"user")}-${r||`seg${t}`}`;for(let s of i){if("single"===s.kind){if(O[s.idx]?.role==="toolResult")continue;u(l(s.idx),o.get(s.idx),p(s.idx,"single"));continue}let{userIdx:i,endIdx:a,startsCompactionTurn:d,finalAssistantIdx:c}=s;if((q||_.isStreaming)&&a===O.length&&(i===r||d)){i>=0&&u(l(i),o.get(i),p(i,"user"));let r=_.streamingMessage?.role==="assistant",s=[],d=!r&&c>=0?c:a;for(let e=i+1;e<d;e++)sW(O[e])&&s.push(e);let g=sm(O,U,s,t),v=null;if(!r&&c>=0){let e=O[c],r=sc(e,{isStreaming:!0}),n=sf(e,{messageIndex:c,entryId:U[c],toolResults:t,isStreaming:!0});g=g.concat(n.processBlocks),r.answerBlocks.length>0&&(v=sL(e,r.answerBlocks,{omitUsage:!0}))}if(r){let e=_.streamingMessage,r=sc(e,{isStreaming:!0}),n=sf(e,{messageIndex:O.length,toolResults:t,isStreaming:!0});g=g.concat(n.processBlocks),r.answerBlocks.length>0&&(v=sL(e,r.answerBlocks,{omitUsage:!0}))}if(g.length>0){let t=s.map(e=>o.get(e)).find(e=>"number"==typeof e);sh(g).forEach((r,s)=>{let l=o.get(r.blocks[0].origin.sourceMessageIndex)??t;if("subagent"===r.kind&&r.subagent)return void u((0,n.jsx)(dR,{run:r.subagent,onOpenSubagent:j,sessionRun:w?.get(m(r.subagent))},x(r.subagent.toolCallId)),l,x(r.subagent.toolCallId));if("output"===r.kind){let e=r.blocks[0],t=o.get(e.origin.sourceMessageIndex);u((0,n.jsx)(ad,{message:{role:"assistant",provider:"",model:"",content:r.blocks},isStreaming:e.origin.sourceMessageIndex===O.length,cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k}),t,`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===l?void 0:e=>{ro.current[l]=e},children:(0,n.jsx)(dC,{blocks:r.blocks,isStreaming:q||_.isStreaming,cwd:rs,onOpenFile:f,sessionId:e?.id??eE.current??void 0,tokenRate:eh})},y(i,s)),l,y(i,s))})}v&&u((0,n.jsx)(ad,{message:v,isStreaming:!0,modelNames:J,cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k},`live-answer-${i}`),c>=0?o.get(c):void 0,h(i));continue}if(-1===c&&0===s.processBlocks.length){if(i>=0)for(let e=i;e<a;e++)u(l(e),o.get(e),p(e,"raw"));continue}i>=0&&u(l(i),o.get(i),p(i,"user"));let{finalAnswerMessage:S,writtenFiles:C,visibleProcessIndices:z}=s;if(s.processBlocks.length>0){let t=z.map(e=>o.get(e)).find(e=>"number"==typeof e)??(S?void 0:o.get(c));s.processSegments.forEach((r,s)=>{let l=o.get(r.blocks[0].origin.sourceMessageIndex)??t;if("subagent"===r.kind&&r.subagent)return void u((0,n.jsx)(dR,{run:r.subagent,onOpenSubagent:j,sessionRun:w?.get(m(r.subagent))},x(r.subagent.toolCallId)),l,x(r.subagent.toolCallId));if("output"===r.kind){let e=r.blocks[0];u((0,n.jsx)(ad,{message:{role:"assistant",provider:"",model:"",content:r.blocks},cwd:rs,onOpenFile:f,onQuoteReply:P,onOpenSession:k}),o.get(e.origin.sourceMessageIndex),`output-${e.id}`);return}u((0,n.jsx)("div",{ref:void 0===l?void 0:e=>{ro.current[l]=e},children:(0,n.jsx)(dC,{blocks:r.blocks,isStreaming:"subagent"===r.kind&&void 0!==r.subagent&&v(r.subagent),defaultExpanded:!1,onAutoExpanded:void 0,cwd:rs,onOpenFile:f,sessionId:e?.id??eE.current??void 0})},`process-group-${i}-${s}`),l,b(i,s,r.blocks[0]?.id??""))})}if(S&&u(l(c,{messageOverride:S,writtenFiles:C}),o.get(c),g(i)),c>=0)for(let e=c+1;e<a;e++)u(l(e),o.get(e),p(e,"tail"))}let S=[],C=d.map((e,t)=>({startRef:e,itemIdx:t})).filter(e=>void 0!==e.startRef);return C.forEach((e,t)=>{let r=C[t+1]?.startRef??rr.length;for(let t=e.startRef;t<r;t++)S[t]=e.itemIdx}),tX.current=S,(0,n.jsx)(cA,{scrollElementRef:eW,items:a,itemKeys:c,virtualizerRef:tG,headerHeight:t0})})(),rx&&(ea||q&&!_.streamingMessage)&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsxs)("span",{className:"animate-[pulse_1.5s_infinite]",children:[rx,ez?.kind==="waiting_model"&&(0,n.jsx)("span",{style:{display:"inline-block",width:12,height:12,marginLeft:6,verticalAlign:"-2px",border:"1.5px solid var(--text-muted)",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 0.6s linear infinite"}})]})}),V&&(0,n.jsx)(ad,{message:{role:"bashExecution",command:V.command,output:"",excludeFromContext:V.excludeFromContext},sessionId:e?.id??eE.current??void 0}),K&&!V&&(0,n.jsx)("div",{className:"py-2 text-[13px] text-text-muted",children:(0,n.jsx)("span",{className:"animate-[pulse_1.5s_infinite]",children:E("desktop.runningShellCommand")})}),(0,n.jsx)("div",{style:{height:96}}),(0,n.jsx)("div",{ref:e$}),(0,n.jsx)(a$,{open:tM,planText:tW,busy:q,onExecute:tA,onFeedback:tF,onExit:tD,onClose:()=>t$(!1)})]})})}),tH&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 top-0 z-10 h-8 bg-gradient-to-b from-[var(--bg)] to-transparent"}),tB&&(0,n.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 z-10 h-8 bg-gradient-to-t from-[var(--bg)] to-transparent"})]}),M?null:(0,n.jsx)(cD,{messages:O,streamingMessage:_.streamingMessage,scrollContainer:eW,messageRefs:ro,virtualizer:t2})]}),(0,n.jsxs)("div",{className:"relative z-10",children:[(0,n.jsx)("div",{style:{padding:"0 16px",paddingRight:M?16:34},children:(0,n.jsx)("div",{style:{maxWidth:820,margin:"0 auto"},children:(0,n.jsx)(un,{widgets:rg})})}),rp,(0,n.jsx)("div",{className:`session-info-bar-wrap${M?" is-mobile":""}`,children:(0,n.jsx)("div",{className:"session-info-bar-inner",children:(0,n.jsx)(cW,{onViewFullHistory:v,cwd:rs,systemPrompt:y,sessionStats:ep,contextUsage:es,hasSession:!!e,showChat:!0,soundEnabled:z,onSoundToggle:T,onCompact:e?e_:void 0,onAbortCompaction:eJ,isCompacting:ea,compactError:ed,branchTree:eR,branchActiveLeafId:eI,onBranchLeafChange:eM,lastTurnUsage:tI})})})]})]})]})}function ur({statuses:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginBottom:10},children:e.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,maxWidth:"100%",padding:"4px 8px",border:"1px solid color-mix(in srgb, var(--accent) 24%, var(--border))",borderRadius:6,background:"color-mix(in srgb, var(--accent) 7%, var(--bg))",color:"var(--text-muted)",fontSize:12},children:[(0,n.jsx)("span",{style:{color:"var(--accent)",fontFamily:"var(--font-mono)",fontSize:11},children:e.key}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.text})]},e.key))})}function un({widgets:e}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8,marginBottom:10},children:e.map(e=>(0,n.jsxs)("div",{style:{border:"1px solid var(--border)",borderRadius:7,background:"var(--bg-panel)",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 9px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:e.key}),(0,n.jsx)("pre",{style:{margin:0,padding:"8px 9px",color:"var(--text-muted)",fontSize:12,lineHeight:1.5,whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"var(--font-mono)"},children:e.lines.join("\n")})]},e.key))})}function uo({notices:e,floating:t=!1,align:r="left"}){return 0===e.length?null:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",alignItems:"right"===r?"flex-end":"stretch",marginBottom:10*!t},children:e.map((r,o)=>{let i="error"===r.type?"var(--status-error)":"warning"===r.type?"var(--status-warning)":"success"===r.type?"#10b981":"var(--accent)";return(0,n.jsxs)("div",{className:"notice-shelf-item",style:{display:"flex",alignItems:"center",gap:10,minHeight:44,maxHeight:180,marginBottom:6*(o!==e.length-1),overflowY:"auto",overflowX:"hidden",borderRadius:14,border:"1px solid color-mix(in srgb, var(--border) 70%, transparent)",background:"var(--bg)",color:"var(--text-muted)",width:"fit-content",maxWidth:"min(100%, 620px)",boxShadow:t?"0 1px 2px rgba(15,23,42,0.05), 0 10px 28px -14px rgba(15,23,42,0.24)":"0 1px 2px rgba(15,23,42,0.04), 0 8px 24px -12px rgba(15,23,42,0.10)",fontSize:13,lineHeight:1.45,transformOrigin:"top center",animation:r.exiting?"notice-shelf-out 0.18s ease-in forwards":"notice-shelf-in 0.18s ease-out both",padding:"0 12px"},children:[(0,n.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:i,flexShrink:0}}),(0,n.jsx)("span",{style:{padding:"10px 0",minWidth:0,maxWidth:"100%",overflowWrap:"anywhere",whiteSpace:"pre-wrap"},children:r.message})]},r.id)})})}function ui({request:e,onRespond:t}){let{t:r}=(0,Y.s)(),[i,s]=(0,o.useState)("editor"===e.method?e.prefill??"":""),[l,a]=(0,o.useState)(!1),[d,c]=(0,o.useState)(()=>Date.now()),u=(0,o.useCallback)(e=>e?.focus(),[]);!function(e){if("select"===e.method&&e.options.length>0)return e.options[0];if("confirm"===e.method){let t=e.message.split("\n").find(e=>e.trim());t?.trim()}}(e);let p=void 0===e.expiresAt?null:Math.max(0,Math.ceil((e.expiresAt-d)/1e3));(0,o.useEffect)(()=>{if(void 0===e.expiresAt)return;let t=setInterval(()=>c(Date.now()),1e3);return()=>clearInterval(t)},[e.expiresAt]);let h=null!==p&&(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-dim)",whiteSpace:"nowrap",flexShrink:0},children:r("chat.extensionExpiresIn",{seconds:p})});(0,o.useEffect)(()=>{s("editor"===e.method?e.prefill??"":"")},[e]);let g=()=>{"confirm"===e.method?t(e,{confirmed:!0}):t(e,{value:i})};return(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:90,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{role:"dialog","aria-modal":"true",style:{width:"min(560px, 100%)",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden"},children:[(0,n.jsxs)("div",{style:{flexShrink:0,display:"flex",alignItems:"flex-start",gap:8,padding:"12px 14px",borderBottom:"1px solid var(--border)",maxHeight:"50%",overflowY:"auto"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:14,fontWeight:650,lineHeight:1.45,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:e.title}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:3,color:"var(--text-dim)",fontSize:11,fontFamily:"var(--font-mono)"},children:[(0,n.jsx)("span",{children:r("desktop.extensionRequest")}),h]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>a(!0),"aria-expanded":!0,title:r("chat.extensionCollapse"),"aria-label":r("chat.extensionCollapse"),style:{display:"grid",placeItems:"center",width:28,height:28,borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"2 3.5 5 6.5 8 3.5"})})})]}),(0,n.jsxs)("div",{style:{padding:14},children:["confirm"===e.method&&(0,n.jsx)(lH,{children:e.message}),"select"===e.method&&(0,n.jsx)("div",{onKeyDown:e=>{if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft","Home","End"].includes(e.key))return;let t=Array.from(e.currentTarget.querySelectorAll("[data-extension-option]")),r=t.indexOf(e.target);if(r<0)return;e.preventDefault();let n="Home"===e.key?0:"End"===e.key?t.length-1:(r+("ArrowDown"===e.key||"ArrowRight"===e.key?1:-1)+t.length)%t.length;t[n]?.focus()},style:{display:"grid",gap:8},children:e.options.map((r,o)=>(0,n.jsx)("div",{role:"button",tabIndex:0,"data-extension-option":!0,"aria-label":r,ref:0===o?u:void 0,onClick:()=>t(e,{value:r}),onKeyDown:n=>{("Enter"===n.key||" "===n.key)&&(n.preventDefault(),t(e,{value:r}))},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",textAlign:"left",fontSize:13,overflowWrap:"anywhere",scrollMargin:14},children:(0,n.jsx)("div",{inert:!0,children:(0,n.jsx)(lH,{children:r})})},r))}),"input"===e.method&&(0,n.jsx)("input",{autoFocus:!0,className:"extension-input",value:i,placeholder:e.placeholder,onChange:e=>s(e.target.value),onKeyDown:r=>{"Enter"===r.key&&g(),"Escape"===r.key&&t(e,{cancelled:!0})},style:{width:"100%",padding:"9px 10px",borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",fontSize:13}}),"editor"===e.method&&(0,n.jsx)("textarea",{autoFocus:!0,value:i,onChange:e=>s(e.target.value),onKeyDown:r=>{"Escape"===r.key&&t(e,{cancelled:!0}),(r.metaKey||r.ctrlKey)&&"Enter"===r.key&&g()},style:{width:"100%",minHeight:220,padding:10,borderRadius:7,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text)",outline:"none",resize:"vertical",fontSize:13,lineHeight:1.55,fontFamily:"var(--font-mono)"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,padding:"10px 14px",borderTop:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("button",{onClick:()=>t(e,{cancelled:!0}),style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text-muted)",cursor:"pointer"},children:r("desktop.cancel")}),"confirm"===e.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:r("desktop.confirm")}):"select"!==e.method?(0,n.jsx)("button",{onClick:g,style:{padding:"6px 10px",borderRadius:6,border:"1px solid var(--accent)",background:"var(--accent)",color:"var(--accent-fg)",cursor:"pointer"},children:r("desktop.submit")}):null]})]})})}function us({request:e,onInput:t}){let{t:r}=(0,Y.s)(),i=(0,o.useRef)(null),s=function(e){let t=/^[┌├└╭╰][─┬┴┼]+[┐┤┘╮╯]$/,r=[];for(let n of e){let e=st(n).trimEnd();if(t.test(e))continue;let o=n,i=so(o);("│"===i||"┃"===i)&&" "===so(o=sn(o,0))&&(o=sn(o,0));let s=function(e){let t=sr(e);for(let e=t.length-1;e>=0;e--)if(""!==t[e].char.trim())return e;return -1}(o),l=s>=0?sr(o)[s]?.char:void 0;("│"===l||"┃"===l)&&(o=sn(o,s)),r.push(function(e){let t=e;for(;;){let e=sr(t),r=e[e.length-1];if(!r||""!==r.char.trim())return t;t=t.slice(0,r.start)+t.slice(r.end)}}(o))}for(;r.length>0&&""===st(r[0]).trim();)r.shift();for(;r.length>0&&""===st(r[r.length-1]).trim();)r.pop();return r.length?r:e}(e.lines);return(0,o.useEffect)(()=>{i.current?.focus()},[e.id]),(0,n.jsx)("div",{style:{position:"absolute",inset:0,zIndex:95,display:"flex",alignItems:"center",justifyContent:"center",padding:20,background:"rgba(0,0,0,0.18)"},children:(0,n.jsxs)("div",{ref:i,tabIndex:0,role:"dialog","aria-modal":"true",onKeyDown:r=>{let n=function(e){if(e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length){let t=e.key.toLowerCase();if(t>="a"&&t<="z")return String.fromCharCode(t.charCodeAt(0)-96)}switch(e.key){case"ArrowUp":return"\x1b[A";case"ArrowDown":return"\x1b[B";case"ArrowRight":return"\x1b[C";case"ArrowLeft":return"\x1b[D";case"Enter":return"\r";case"Escape":return"\x1b";case"Backspace":return"";case"Tab":return" ";case" ":return" ";default:if(!e.ctrlKey&&!e.metaKey&&!e.altKey&&1===e.key.length)return e.key;return null}}(r);n&&(r.preventDefault(),r.stopPropagation(),t(e,n))},style:{width:"min(920px, 100%)",maxHeight:"min(760px, calc(100vh - 40px))",border:"1px solid var(--border)",borderRadius:8,background:"var(--bg)",boxShadow:"0 20px 60px rgba(0,0,0,0.28)",overflow:"hidden",outline:"none"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("div",{style:{color:"var(--text)",fontSize:13,fontWeight:650},children:r("desktop.extensionPanel")}),(0,n.jsx)("button",{onClick:()=>t(e,"\x03"),style:{padding:"5px 9px",borderRadius:6,border:"1px solid var(--border)",background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer",fontSize:12},children:r("desktop.close")})]}),(0,n.jsx)("pre",{style:{margin:0,padding:14,maxHeight:"calc(min(760px, 100vh - 40px) - 48px)",overflow:"auto",background:"var(--bg-panel)",color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.45,whiteSpace:"pre"},children:(s.length?s:[""]).map((e,t,r)=>{var i;return(0,n.jsxs)(o.Fragment,{children:[(i=`line-${t}`,(function(e){let t,r=[],n={},o=0;for(i7.lastIndex=0;null!==(t=i7.exec(e));)t.index>o&&r.push({text:e.slice(o,t.index),style:n}),n=function(e,t){let r={...e};for(let e=0;e<t.length;e++){let n=t[e];if(0===n)for(let e of Object.keys(r))delete r[e];else if(1===n)r.fontWeight=700;else if(2===n)r.opacity=.65;else if(3===n)r.fontStyle="italic";else if(4===n)r.textDecoration="underline";else if(22===n)delete r.fontWeight,delete r.opacity;else if(23===n)delete r.fontStyle;else if(24===n)delete r.textDecoration;else if(39===n)delete r.color;else if(49===n)delete r.backgroundColor;else if(n>=30&&n<=37)r.color=i9[n-30];else if(n>=90&&n<=97)r.color=se[n-90];else if(n>=40&&n<=47)r.backgroundColor=i9[n-40];else if(n>=100&&n<=107)r.backgroundColor=se[n-100];else if((38===n||48===n)&&2===t[e+1]){let[o,i,s]=[t[e+2],t[e+3],t[e+4]];[o,i,s].every(e=>"number"==typeof e&&Number.isFinite(e))&&(38===n?r.color=`rgb(${o}, ${i}, ${s})`:r.backgroundColor=`rgb(${o}, ${i}, ${s})`),e+=4}else if((38===n||48===n)&&5===t[e+1]){let o=function(e){if(e>=0&&e<8)return i9[e];if(e>=8&&e<16)return se[e-8];if(e>=16&&e<=231){let t=e-16,r=Math.floor(t/36),n=Math.floor(t%36/6),o=e=>0===e?0:55+40*e;return`rgb(${o(r)}, ${o(n)}, ${o(t%6)})`}if(e>=232&&e<=255){let t=8+(e-232)*10;return`rgb(${t}, ${t}, ${t})`}}(t[e+2]);o&&(38===n?r.color=o:r.backgroundColor=o),e+=2}}return r}(n,t[1]?t[1].split(";").map(e=>Number(e||"0")):[0]),o=t.index+t[0].length;return o<e.length&&r.push({text:e.slice(o),style:n}),r})(e).map((e,t)=>Object.keys(e.style).length>0?(0,n.jsx)("span",{style:e.style,children:e.text},`${i}-${t}`):e.text)),t<r.length-1?"\n":null]},t)})})]})})}var ul=r(93549);let ua={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif"},ud={mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",flac:"audio/flac",weba:"audio/webm"};function uc(e){return(e.replace(/\\/g,"/").split("/").pop()??"").toLowerCase().split(".").pop()??""}function uu(e){let t=e.nodeType===Node.ELEMENT_NODE?e:e.parentElement;return t?.closest(".file-source-line[data-line-number]")??null}function up(e,t){if(!t||t.isCollapsed||0===t.rangeCount)return null;let r=t.getRangeAt(0);if(!e.contains(r.startContainer)||!e.contains(r.endContainer))return null;let n=Number(uu(r.startContainer)?.dataset.lineNumber),o=Number(uu(r.endContainer)?.dataset.lineNumber);return Number.isInteger(n)&&Number.isInteger(o)?n<=o?{startLine:n,endLine:o}:{startLine:o,endLine:n}:null}function uh(e,t,r,n={}){let o=oW(e),i=new URLSearchParams({type:t});for(let[e,t]of(r&&i.set("sessionId",r),Object.entries(n)))void 0!==t&&i.set(e,String(t));return`/api/files/${o}?${i.toString()}`}function ug({filePath:e,sourceSessionId:t}){let{t:r}=(0,Y.s)();return(0,n.jsx)("a",{href:uh(e,"download",t),download:oL(e),title:r("desktop.downloadFile"),style:{display:"flex",alignItems:"center",justifyContent:"center",height:20,padding:"0 5px",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:4,color:"var(--text-muted)",cursor:"pointer",flexShrink:0,textDecoration:"none"},children:(0,n.jsx)(M.z,{size:11,"aria-hidden":"true"})})}let ux={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,tabSize:2},uf={fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,padding:"12px 0 12px 16px",color:"var(--text-dim)",textAlign:"right",userSelect:"none"};async function um(e,t){let r=await fetch(`/api/files/${oW(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error??`HTTP ${r.status}`);let n=await r.json();return"number"==typeof n.size?n.size:0}let uv={delete:"3px solid var(--git-status-deleted)",add:"3px solid var(--git-status-added)",edit:"3px solid var(--git-status-modified)"},uy="var(--git-status-deleted-bg)",ub="var(--git-status-added-bg)",uk="var(--git-status-added)";function uj(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function uw({oldContent:e,newContent:t}){let{t:r}=(0,Y.s)(),o=function(e,t){let r=e.length,n=t.length,o=r+n,i=Array(2*o+1).fill(0),s=[];for(let l=0;l<=o;l++){s.push([...i]);for(let a=-l;a<=l;a+=2){let d,c=(d=a===-l||a!==l&&i[a-1+o]<i[a+1+o]?i[a+1+o]:i[a-1+o]+1)-a;for(;d<r&&c<n&&e[d]===t[c];)d++,c++;if(i[a+o]=d,d>=r&&c>=n){let i=[],a=r,d=n;for(let r=l;r>0;r--){let n,l=s[r-1],c=a-d;n=c===-r||c!==r&&l[c-1+o]<l[c+1+o]?c+1:c-1;let u=l[n+o],p=u-n;for(;a>u&&d>p;)a--,d--,i.unshift({type:"unchanged",text:e[a]});r>0&&(a>u?(a--,i.unshift({type:"removed",text:e[a]})):(d--,i.unshift({type:"added",text:t[d]})))}for(;a>0&&d>0;)a--,d--,i.unshift({type:"unchanged",text:e[a]});return i}}}return[...e.map(e=>({type:"removed",text:e})),...t.map(e=>({type:"added",text:e}))]}(e.split("\n"),t.split("\n"));if(!o.some(e=>"unchanged"!==e.type))return(0,n.jsx)("div",{style:{padding:"12px 16px",fontSize:12,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:r("desktop.noChanges")});let i=new Set(o.flatMap((e,t)=>"unchanged"!==e.type?[t]:[])),s=new Set;for(let e of i)for(let t=Math.max(0,e-3);t<=Math.min(o.length-1,e+3);t++)s.add(t);let l=[],a=0;for(;a<o.length;)if(s.has(a)){let e=[];for(;a<o.length&&s.has(a);)e.push(o[a]),a++;l.push({hidden:!1,lines:e})}else{let e=0;for(;a<o.length&&!s.has(a);)e++,a++;l.push({hidden:!0,count:e})}let d=[],c=1;for(let e of o)"removed"===e.type?d.push(0):d.push(c++);let u=0;return(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:13,lineHeight:1.6,minWidth:"max-content"},children:l.map((e,t)=>{if(e.hidden){let o=(0,n.jsx)("div",{style:{padding:"2px 16px",color:"var(--text-dim)",background:"var(--bg-panel)",fontSize:11,borderTop:"1px solid var(--border)",borderBottom:"1px solid var(--border)"},children:r("desktop.unchangedLines",{count:e.count})},t);return u+=e.count,o}let o=[],i=[],s=[],l=()=>{if(i.length||s.length){let e=i.length&&s.length?"edit":i.length?"delete":"add";for(let t of i)o.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of s)o.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});i=[],s=[]}};e.lines.forEach((e,r)=>{"unchanged"===e.type?(l(),o.push({key:`${t}:${r}`,kind:"context",text:e.text,lineNo:d[u+r],block:null})):"removed"===e.type?i.push({key:`${t}:${r}`,text:e.text}):s.push({key:`${t}:${r}`,text:e.text,lineNo:d[u+r]})}),l();let a=o.map(e=>{let t="removed"===e.kind?uy:"added"===e.kind?ub:"transparent",r=e.block?uv[e.block]:"3px solid transparent",o="added"===e.kind?uk:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{minWidth:44,padding:"0 8px 0 16px",textAlign:"right",color:o,userSelect:"none",fontSize:11,lineHeight:1.6,flexShrink:0},children:e.lineNo??""}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)});return u+=e.lines.length,(0,n.jsx)("div",{children:a},t)})})}function uS({patch:e}){let t=lZ(e);if(!t)return null;let r=[],o=[],i=[],s=()=>{if(o.length||i.length){let e=o.length&&i.length?"edit":o.length?"delete":"add";for(let t of o)r.push({key:t.key,kind:"removed",text:t.text,lineNo:null,block:e});for(let t of i)r.push({key:t.key,kind:"added",text:t.text,lineNo:t.lineNo,block:e});o=[],i=[]}};return t.forEach((e,t)=>{e.rows.forEach((e,n)=>{if("hunk"===e.type){s(),r.push({key:`${t}:${n}:h`,kind:"hunk",text:e.text,lineNo:null,block:null});return}let{left:l,right:a}=e;if("context"===l.type&&"context"===a.type){s(),r.push({key:`${t}:${n}:c`,kind:"context",text:l.text,lineNo:a.lineNo,block:null});return}"removed"===l.type&&o.push({key:`${t}:${n}:l`,text:l.text}),"added"===a.type&&i.push({key:`${t}:${n}:r`,text:a.text,lineNo:a.lineNo})})}),s(),(0,n.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:12,lineHeight:1.55,minWidth:"max-content"},children:r.map(e=>{if("hunk"===e.kind)return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{height:"1.55em"}}),(0,n.jsx)("div",{style:{padding:"3px 12px",color:"var(--accent-blue)",background:"var(--bg-secondary)"},children:e.text}),(0,n.jsx)("div",{style:{height:"1.55em"}})]},e.key);let t="removed"===e.kind?uy:"added"===e.kind?ub:"transparent",r=e.block?uv[e.block]:"3px solid transparent",o="added"===e.kind?uk:"var(--text-dim)";return(0,n.jsxs)("div",{style:{display:"flex",background:t,borderLeft:r},children:[(0,n.jsx)("span",{style:{width:44,flexShrink:0,padding:"0 8px 0 16px",textAlign:"right",color:o,userSelect:"none",fontSize:11},children:e.lineNo??""}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,padding:"0 8px 0 0",whiteSpace:"pre",color:"var(--text)"},children:e.text||"\xa0"})]},e.key)})})}function uC({filePath:e,cwd:t,sourceSessionId:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(0),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=oL(e).toLowerCase().split(".").pop()??"";(0,o.useEffect)(()=>{l(0),d(null),u(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(uh(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=uh(e,"read",r,s?{v:s}:void 0),m=null!=a?uj(a):null;return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x||i("desktop.image")}),c&&(0,n.jsxs)("span",{children:[c.w," \xd7 ",c.h]}),m&&(0,n.jsx)("span",{children:m}),(0,n.jsx)(ug,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg-panel)",display:"flex",alignItems:"center",justifyContent:"center",padding:16,backgroundImage:"linear-gradient(45deg, var(--bg) 25%, transparent 25%), linear-gradient(-45deg, var(--bg) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--bg) 75%), linear-gradient(-45deg, transparent 75%, var(--bg) 75%)",backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px"},children:p?(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13},children:p}):(0,n.jsx)("img",{src:f,alt:e,onLoad:e=>{let t=e.currentTarget;u({w:t.naturalWidth,h:t.naturalHeight})},onError:()=>h(i("desktop.failedToLoadImage")),style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}})})]})}function uz({filePath:e,cwd:t,sourceSessionId:r}){let{t:i}=(0,Y.s)(),[s,l]=(0,o.useState)(0),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=oL(e).toLowerCase().split(".").pop()??"";(0,o.useEffect)(()=>{l(0),d(null),u(null),h(null),g.current&&(g.current.close(),g.current=null);let t=new EventSource(uh(e,"watch",r));return g.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);"number"==typeof t.size&&d(t.size)}catch{}u(null),h(null),l(e=>e+1)}),()=>{t.close(),g.current=null}},[e,r]);let f=uh(e,"read",r,s?{v:s}:void 0);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:x||i("desktop.audio")}),null!=c&&(0,n.jsx)("span",{children:function(e){if(!Number.isFinite(e))return"";let t=Math.round(e),r=Math.floor(t/60);return`${r}:${String(t%60).padStart(2,"0")}`}(c)}),null!=a&&(0,n.jsx)("span",{children:uj(a)}),(0,n.jsx)(ug,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",padding:24,background:"var(--bg-panel)"},children:(0,n.jsxs)("div",{style:{width:"min(680px, 100%)"},children:[p&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:13,marginBottom:12,textAlign:"center"},children:p}),(0,n.jsx)("audio",{controls:!0,preload:"metadata",src:f,onLoadedMetadata:e=>u(e.currentTarget.duration),onError:()=>h(i("desktop.failedToLoadAudio")),style:{width:"100%"}},f)]})})]})}function uT({filePath:e,cwd:t,sourceSessionId:r,initialPage:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)(0),[d,c]=(0,o.useState)(null),[u,p]=(0,o.useState)(null),h=(0,o.useRef)(null),g=uc(e),x="pdf"===g,f=x&&i&&i>0?`#page=${i}`:"",m=x?`${uh(e,"read",r,l?{v:l}:void 0)}${f}`:uh(e,"preview",r,l?{v:l}:void 0);return(0,o.useEffect)(()=>{a(0),c(null),p(null),h.current&&(h.current.close(),h.current=null),fetch(uh(e,"meta",r)).then(e=>e.json()).then(e=>{e.error&&p(e.error),"number"==typeof e.size&&(c(e.size),!x&&e.size>0xa00000&&p(s("desktop.docxTooLargeForPreview")))}).catch(e=>p(String(e)));let t=new EventSource(uh(e,"watch",r));return h.current=t,t.addEventListener("change",e=>{try{let t=JSON.parse(e.data);if("number"==typeof t.size&&(c(t.size),!x&&t.size>0xa00000))return void p(s("desktop.docxTooLargeForPreview"))}catch{}p(null),a(e=>e+1)}),()=>{t.close(),h.current=null}},[e,x,r,s]),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:"docx"===g?s("desktop.docxPreview"):"pdf"}),null!=d&&(0,n.jsx)("span",{children:uj(d)}),(0,n.jsx)(ug,{filePath:e,sourceSessionId:r})]}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,background:"var(--bg-panel)"},children:u?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",padding:24,color:"var(--status-error)",fontSize:13,textAlign:"center"},children:u}):(0,n.jsx)("iframe",{src:m,sandbox:x?void 0:"allow-same-origin",title:s("desktop.previewFile",{file:oL(e)}),style:{width:"100%",height:"100%",border:"none",background:x?"var(--bg)":"#eef1f5"}},m)})]})}function uR({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:o,onAtMention:i,onMentionLines:s,initialDisplayMode:l,initialPage:a,onFileSaved:d}){let c;return null!==(ua[uc(e)]??null)?(0,n.jsx)(uC,{filePath:e,cwd:t,sourceSessionId:r}):null!==(ud[uc(e)]??null)?(0,n.jsx)(uz,{filePath:e,cwd:t,sourceSessionId:r}):null!==("pdf"===(c=uc(e))||"docx"===c?c:null)?(0,n.jsx)(uT,{filePath:e,cwd:t,sourceSessionId:r,initialPage:a}):(0,n.jsx)(uI,{filePath:e,cwd:t,sourceSessionId:r,onOpenFile:o,onAtMention:i,onMentionLines:s,initialDisplayMode:l,onFileSaved:d})}function uI({filePath:e,cwd:t,sourceSessionId:r,onOpenFile:i,onAtMention:s,onMentionLines:l,initialDisplayMode:a,onFileSaved:d}){let c,u,{t:p}=(0,Y.s)(),[h,x]=(0,o.useState)(null),[f,v]=(0,o.useState)(null),[y,b]=(0,o.useState)(null),[k,j]=(0,o.useState)(!0),[w,S]=(0,o.useState)(!1),[C,z]=(0,o.useState)(null),[T,R]=(0,o.useState)(!1),[I,M]=(0,o.useState)("source"),[E,$]=(0,o.useState)(!1),[W,L]=(0,o.useState)(0),[N,A]=(0,o.useState)(null),P=(0,o.useRef)(null),F=(0,o.useRef)(null),[D,H]=(0,o.useState)(!1),[O,B]=(0,o.useState)(""),[U,_]=(0,o.useState)(""),[q,K]=(0,o.useState)(!1),[V,J]=(0,o.useState)(null),[G,X]=(0,o.useState)(!1),Z=(0,o.useRef)(null),Q=(0,o.useRef)(null),ee=(0,o.useRef)(0),et=(0,o.useRef)(!1);(0,o.useEffect)(()=>{et.current=D},[D]);let er=D&&O!==U,en=!!(h?.content&&h.content.includes("\0")),eo=(0,o.useCallback)(async e=>{if(!t)return void b(null);try{let r=new URLSearchParams({cwd:t,path:e}),n=await fetch(`/api/git/diff?${r.toString()}`),o=await n.json();b(n.ok&&o.supported&&"string"==typeof o.patch?o:null)}catch{b(null)}},[t]),ei=(0,o.useCallback)((e,t=!1,n=0)=>fetch(uh(e,"read",r,n?{offset:n}:void 0)).then(e=>e.json()).then(e=>e.error?(z(e.error),null):(t?(x(t=>(t&&v(t.content),e)),L(e=>e+1)):n?x(t=>t?{...e,content:t.content+e.content}:e):x(e),e)).catch(e=>(z(String(e)),null)),[r]);(0,o.useEffect)(()=>{j(!0),z(null),x(null),v(null),b(null),R(!1),M("source"),$(!1),L(0),H(!1),B(""),_(""),J(null),X(!1),K(!1),P.current&&(P.current.close(),P.current=null),ei(e).then(e=>{e?.truncated||e?.language!=="markdown"&&e?.language!=="html"||"diff"===a||R(!0)}).finally(()=>j(!1)),eo(e);let t=new EventSource(uh(e,"watch",r));return P.current=t,t.addEventListener("change",()=>{et.current?X(!0):(ei(e,!0),eo(e))}),()=>{t.close(),P.current=null}},[e,ei,eo,a,r]);let es=(0,o.useCallback)(()=>{h&&!en&&(B(h.content),_(h.content),J(null),X(!1),H(!0))},[h,en]),el=(0,o.useCallback)(()=>{H(!1),B(""),_(""),J(null),X(!1)},[]),ea=(0,o.useCallback)(()=>{(!er||window.confirm(p("files.unsavedChanges")))&&el()},[er,el,p]),ed=(0,o.useCallback)(async()=>{if(!h||q)return;let t=++ee.current;K(!0),J(null);try{let r=await um(e,O);if(t!==ee.current)return;x(e=>e?{...e,content:O,size:r}:e),_(O),K(!1),el(),eo(e),d?.()}catch(e){if(t!==ee.current)return;J(e instanceof Error?e.message:String(e)),K(!1)}},[h,q,O,e,el,eo,d]);(0,o.useEffect)(()=>{if(!D)return;let e=e=>{if((e.metaKey||e.ctrlKey)&&"s"===e.key.toLowerCase()){e.preventDefault(),ed();return}"Escape"===e.key&&(e.preventDefault(),ea())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[D,ed,ea]),(0,o.useEffect)(()=>{if(!er)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[er]);let ec=(0,o.useCallback)(()=>{let e=Z.current,t=Q.current;e&&t&&(t.scrollTop=e.scrollTop)},[]),eu=(0,o.useCallback)(e=>{if("Tab"!==e.key||e.metaKey||e.ctrlKey||e.altKey)return;e.preventDefault();let t=e.currentTarget,{selectionStart:r,selectionEnd:n}=t;B(t.value.slice(0,r)+" "+t.value.slice(n)),requestAnimationFrame(()=>{let e=Z.current;if(!e)return;let t=r+2;e.selectionStart=t,e.selectionEnd=t})},[]),ep=(0,o.useMemo)(()=>ly(h?.content??""),[h?.content]),eh=y?.supported===!0&&"string"==typeof y.patch;(0,o.useEffect)(()=>{"diff"===a&&eh&&M("diff")},[eh,a]);let eg=eh&&y?.status==="deleted",ex=(0,o.useCallback)(r=>{l&&r&&l(oN(e,t),r.startLine,r.endLine)},[t,e,l]);if((0,o.useEffect)(()=>{let e=()=>{let e=F.current,t="source"===I&&!T;A(l&&t&&e?up(e,window.getSelection()):null)};if(e(),l&&"source"===I&&!T)return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[h?.content,l,T,I]),(0,o.useEffect)(()=>{if(!l||"source"!==I||T)return;let e=e=>{if(e.repeat||"i"!==e.key.toLowerCase()||!e.metaKey&&!e.ctrlKey||e.altKey||e.shiftKey)return;let t=e.target;if(t instanceof Element&&t.closest("input, textarea, [contenteditable='true']"))return;let r=F.current,n=r?up(r,window.getSelection()):null;n&&(e.preventDefault(),ex(n))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ex,l,T,I]),k)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:13},children:p("desktop.loadingFile")});if(eg&&!h)return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsx)("div",{style:{padding:"5px 16px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontFamily:"var(--font-mono)",fontSize:11},title:e,children:oN(e,t)}),(0,n.jsx)("div",{style:{flex:1,overflow:"auto",background:"var(--bg)"},children:(0,n.jsx)(uS,{patch:y.patch})})]});if(C)return(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--status-error)",fontSize:13},children:C});if(!h)return null;let ef="html"===h.language,em="markdown"===h.language,ev=(u=(c=o$(e).replace(/\/+$/,"")).lastIndexOf("/"))<0?"":0===u?"/":2===u&&/^[a-zA-Z]:\//.test(c)?c.slice(0,3):c.slice(0,u),ey=h.content.split("\n"),eb=null!==f&&f!==h.content||eh,ek=!eg&&!en&&oF();return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,n.jsxs)("div",{className:"file-viewer-status-bar",style:{display:"flex",alignItems:"center",gap:12,padding:"4px 16px",borderBottom:"1px solid var(--border)",fontSize:11,color:"var(--text-dim)",background:"var(--bg)",flexShrink:0,flexWrap:"wrap",rowGap:4},children:[(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 1 auto"},title:e,children:oN(e,t)}),(0,n.jsx)("span",{style:{marginLeft:"auto"},children:h.language}),"source"===I&&!D&&(0,n.jsx)("span",{children:p("desktop.lines",{count:ey.length})}),(0,n.jsx)("span",{children:uj(h.size)}),eb&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>M("source"),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:"source"===I?"var(--bg-selected)":"var(--bg-hover)",color:"source"===I?"var(--text)":"var(--text-muted)",fontWeight:"source"===I?600:400},children:p("desktop.source")}),(0,n.jsxs)("button",{onClick:()=>M("diff"),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:"diff"===I?"var(--bg-selected)":"var(--bg-hover)",color:"diff"===I?"var(--text)":"var(--text-muted)",fontWeight:"diff"===I?600:400},children:[p("desktop.diff")," ",W>0&&(0,n.jsxs)("span",{style:{color:"var(--git-status-added)",marginLeft:2},children:["+",W]})]})]}),"source"===I&&!T&&!D&&(0,n.jsx)("button",{onClick:()=>$(e=>!e),title:E?p("desktop.disableWordWrap"):p("desktop.enableWordWrap"),style:{padding:"2px 8px",fontSize:11,cursor:"pointer",background:E?"var(--bg-selected)":"var(--bg-hover)",color:E?"var(--text)":"var(--text-muted)",border:"1px solid var(--border)",borderRadius:5,fontWeight:E?600:400},children:p("desktop.wrap")}),ef&&"source"===I&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>R(!1),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:T?"var(--bg-hover)":"var(--bg-selected)",color:T?"var(--text-muted)":"var(--text)",fontWeight:T?400:600},children:p("desktop.code")}),(0,n.jsx)("button",{onClick:()=>R(!0),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",fontWeight:T?600:400},children:p("desktop.preview")})]}),em&&"source"===I&&!D&&(0,n.jsxs)("div",{style:{display:"flex",borderRadius:5,overflow:"hidden",border:"1px solid var(--border)"},children:[(0,n.jsx)("button",{onClick:()=>R(!0),style:{padding:"2px 8px",fontSize:11,border:"none",cursor:"pointer",background:T?"var(--bg-selected)":"var(--bg-hover)",color:T?"var(--text)":"var(--text-muted)",fontWeight:T?600:400},children:p("desktop.preview")}),(0,n.jsx)("button",{onClick:()=>R(!1),style:{padding:"2px 8px",fontSize:11,border:"none",borderLeft:"1px solid var(--border)",cursor:"pointer",background:T?"var(--bg-hover)":"var(--bg-selected)",color:T?"var(--text-muted)":"var(--text)",fontWeight:T?400:600},children:p("desktop.raw")})]}),D?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",onClick:()=>void ed(),disabled:q,title:p("files.saveHint"),"aria-label":p("files.save"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-selected)",color:"var(--text)",cursor:"pointer"},children:(0,n.jsx)(ul.g,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button",onClick:ea,disabled:q,title:p("files.cancelEdit"),"aria-label":p("files.cancelEdit"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(g.X,{size:13,"aria-hidden":"true"})})]}):"source"===I&&ek?(0,n.jsx)("button",{type:"button",onClick:es,title:p("files.edit"),"aria-label":p("files.edit"),style:{height:20,minWidth:20,padding:"0 5px",display:"inline-flex",alignItems:"center",justifyContent:"center",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:(0,n.jsx)(m.I,{size:13,"aria-hidden":"true"})}):null,(s||l)&&!D&&(0,n.jsx)("button",{type:"button",onPointerDown:e=>e.preventDefault(),onClick:()=>{N&&l?ex(N):s?.(oN(e,t),!1)},title:N?p("desktop.mentionSelectedLines",{start:N.startLine,end:N.endLine}):p("desktop.mentionFile"),"aria-label":N?p("desktop.mentionSelectedLines",{start:N.startLine,end:N.endLine}):p("desktop.mentionFile"),style:{height:20,minWidth:20,padding:"0 5px",border:"1px solid var(--border)",borderRadius:4,background:"var(--bg-panel)",color:"var(--text-muted)",cursor:"pointer"},children:"@"}),!D&&(0,n.jsx)(ug,{filePath:e,sourceSessionId:r})]}),h?.truncated&&"source"===I&&!D&&(0,n.jsxs)("div",{className:"file-viewer-load-more",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:10,padding:"5px 8px",borderBottom:"1px solid var(--border)",color:"var(--text-dim)",fontSize:11},children:[(0,n.jsxs)("span",{children:[uj(h.nextOffset)," / ",uj(h.size)]}),(0,n.jsx)("button",{type:"button",disabled:w,onClick:()=>{S(!0),ei(e,!1,h.nextOffset).finally(()=>S(!1))},style:{padding:"2px 10px",fontSize:11,cursor:"pointer",border:"1px solid var(--border)",borderRadius:5,background:"var(--bg-hover)",color:"var(--text)",opacity:w?.6:1},children:w?p("i18n.loading"):p("i18n.loadMore")})]}),(0,n.jsx)("div",{ref:F,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:D?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[G&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(214,168,75,0.14)",color:"#d6a84b",fontSize:11,flexShrink:0},children:[(0,n.jsx)("span",{style:{flex:1},children:p("files.externalModified")}),(0,n.jsx)("button",{type:"button",onClick:()=>{(!er||window.confirm(p("files.reloadOverwriteConfirm")))&&ei(e).then(e=>{e&&(B(e.content),_(e.content),X(!1))})},disabled:q,style:{padding:"2px 8px",fontSize:11,border:"1px solid #d6a84b",borderRadius:4,background:"transparent",color:"#d6a84b",cursor:"pointer"},children:p("files.reload")})]}),V&&(0,n.jsx)("div",{style:{padding:"5px 12px",borderBottom:"1px solid var(--border)",background:"rgba(248,113,113,0.14)",color:"var(--status-error)",fontSize:11,flexShrink:0},children:p("files.saveFailed",{error:V})}),(0,n.jsxs)("div",{style:{flex:1,display:"flex",overflow:"hidden"},children:[(0,n.jsx)("div",{ref:Q,"aria-hidden":"true",style:{...uf,height:"100%",overflow:"hidden",whiteSpace:"pre",pointerEvents:"none"},children:O.split("\n").map((e,t)=>`${t+1}
197
197
  `).join("")}),(0,n.jsx)("textarea",{ref:Z,className:"file-editor-textarea",value:O,onChange:e=>B(e.target.value),onScroll:ec,onKeyDown:eu,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",wrap:"off",style:{flex:1,height:"100%",resize:"none",border:"none",outline:"none",background:"var(--bg)",color:"var(--text)",...ux,whiteSpace:"pre",overflow:"auto",padding:0,tabSize:2}})]})]}):"diff"===I&&eb?eh?(0,n.jsx)(uS,{patch:y.patch}):(0,n.jsx)(uw,{oldContent:f,newContent:h.content}):ef&&T?(0,n.jsx)("iframe",{srcDoc:h.content,sandbox:"allow-scripts",style:{width:"100%",height:"100%",border:"none",background:"var(--bg)"},title:p("desktop.htmlPreview")}):em&&T?(0,n.jsx)("div",{className:"markdown-body markdown-file-preview",style:{padding:"24px 32px"},children:(0,n.jsx)(sP.oz,{remarkPlugins:lj,rehypePlugins:lw,components:{h1:({children:e})=>(0,n.jsx)("h1",{id:lm(e),children:e}),h2:({children:e})=>(0,n.jsx)("h2",{id:lm(e),children:e}),h3:({children:e})=>(0,n.jsx)("h3",{id:lm(e),children:e}),code({className:e,children:t,...r}){let o=e?.replace("language-","").toLowerCase()??"",i=String(t);return e?.includes("language-")||i.includes("\n")?"mermaid"===o?(0,n.jsx)(lB,{code:i.replace(/\n$/,"")}):(0,n.jsx)(lq,{code:i.replace(/\n$/,""),lang:o}):(0,n.jsx)("code",{className:"inline max-w-full whitespace-normal break-words [overflow-wrap:anywhere] align-baseline bg-(--bg-secondary) border border-(--border) px-1.5 py-0.5 text-xs font-mono text-(--accent-blue)",...r,children:t})},pre:({children:e})=>(0,n.jsx)(n.Fragment,{children:e}),a({href:e,children:r,...o}){delete o.node;let s="text-(--accent-blue) underline underline-offset-2 hover:text-(--accent-blue)/80",l=i?sk(e,ev,t??ev):null;return l&&i?(0,n.jsx)("a",{href:e,...o,className:s,onClick:t=>{if(t.defaultPrevented||0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;let r=t.currentTarget.getAttribute("target");r&&"_self"!==r||(t.preventDefault(),i(l,sw(e)??void 0))},children:r}):(0,n.jsx)("a",{href:e,...o,className:s,target:"_blank",rel:"noopener noreferrer",children:r})},table:({children:e})=>(0,n.jsx)("div",{className:"my-3 rounded-lg overflow-hidden border border-(--border)",children:(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsx)("table",{className:"w-full text-sm border-collapse [&_tr:last-child>td]:border-b-0",children:e})})})},children:ep})}):(0,n.jsx)(sF.A,{language:"text"===h.language?"plaintext":h.language,style:lS,showLineNumbers:!0,lineNumberStyle:{color:"var(--text-dim)",fontStyle:"normal",minWidth:"3em",paddingRight:"1em"},customStyle:{margin:0,padding:"12px 0",background:"var(--bg)",fontSize:13,lineHeight:1.6,fontFamily:"var(--font-mono)",minHeight:"100%"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},lineProps:e=>({className:"file-source-line","data-line-number":String(e)}),wrapLongLines:E,children:h.content})})]})}function uM({sessionId:e,label:t,running:r=!1,onOpenFile:i}){let{t:s}=(0,Y.s)(),[l,a]=(0,o.useState)([]),[d,c]=(0,o.useState)([]),[u,p]=(0,o.useState)(!0),[h,g]=(0,o.useState)(null);(0,o.useEffect)(()=>{let t=!1;return(async r=>{r&&p(!0);try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}?tail=500`,{cache:"no-store"}),n=await r.json();if(t)return;if(!r.ok)throw Error(n.error??`HTTP ${r.status}`);a(n.context?.messages??[]),c(n.context?.entryIds??[]),g(null)}catch(e){if(t)return;g(e instanceof Error?e.message:String(e))}finally{t||p(!1)}})(!0),()=>{t=!0}},[e]),(0,o.useEffect)(()=>{if(!r)return;let t=!1,n=window.setInterval(async()=>{if("visible"===document.visibilityState)try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}?tail=500`,{cache:"no-store"});if(!r.ok)return;let n=await r.json();if(t)return;a(n.context?.messages??[]),c(n.context?.entryIds??[])}catch{}},2500);return()=>{t=!0,window.clearInterval(n)}},[r,e]);let x=(0,o.useMemo)(()=>{let e=new Map;for(let t of l)"toolResult"===t.role&&e.set(t.toolCallId,t);return e},[l]),f=(0,o.useMemo)(()=>sN(l,d,void 0,x),[l,d,x]),m=(0,o.useMemo)(()=>l.filter(e=>"user"===e.role||"assistant"===e.role).length,[l]),v=(t,r)=>(0,n.jsx)(ad,{message:r?.messageOverride??l[t],toolResults:f.toolResultsMap,entryId:d[t],sessionId:e,onOpenFile:i},`subagent-msg-${t}`);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,padding:"8px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:600,color:"var(--text)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t||s("subagent.transcriptTitle")}),r&&(0,n.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"var(--accent)",whiteSpace:"nowrap"},children:s("agentSwitcher.status.running")})]}),(0,n.jsxs)("div",{className:"scrollbar-subtle scroll-overlay",style:{flex:1,minHeight:0,overflowY:"auto",padding:"10px 12px"},children:[u&&0===l.length&&(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:12},children:s("subagent.transcriptLoading")}),h&&0===l.length&&(0,n.jsx)("div",{style:{color:"var(--status-error)",fontSize:12},children:s("subagent.transcriptFailed",{error:h})}),!u&&!h&&0===m&&(0,n.jsx)("div",{style:{color:"var(--text-dim)",fontSize:12},children:s(r?"subagent.transcriptWaiting":"subagent.transcriptEmpty")}),f.items.map((e,t)=>{if("single"===e.kind)return(0,n.jsx)("div",{children:v(e.idx)},`single-${e.idx}`);let{userIdx:o,endIdx:s,finalAssistantIdx:l,finalAnswerMessage:a}=e,d=t===f.items.length-1,c=r&&d;return(0,n.jsxs)("div",{children:[o>=0&&v(o),e.processSegments.map((t,r)=>(0,n.jsx)(dC,{blocks:t.blocks,isStreaming:c&&r===e.processSegments.length-1&&-1===l,defaultExpanded:c&&r===e.processSegments.length-1&&-1===l,onOpenFile:i},`seg-${o}-${r}`)),a&&v(l,{messageOverride:a}),l>=0&&(()=>{let e=[];for(let t=l+1;t<s;t++)e.push((0,n.jsx)("div",{children:v(t)},`tail-${t}`));return e})()]},`turn-${o}-${t}`)})]})]})}function uE({tabs:e,activeTabId:t,onSelectTab:r,onCloseTab:i}){let{t:s}=(0,Y.s)(),l=(0,o.useRef)(null),[a,d]=(0,o.useState)(!1);(0,o.useEffect)(()=>{if(!t)return;let e=l.current;if(!e)return;let r=e.querySelector(`[data-tab-id="${CSS.escape(t)}"]`);r?.scrollIntoView({block:"nearest",inline:"nearest"})},[t,e.length]),(0,o.useEffect)(()=>{let e=l.current;if(!e)return;let t=()=>d(e.scrollWidth>e.clientWidth+1);t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[e.length]);let c=(0,o.useCallback)((t,n)=>{if(t.target!==t.currentTarget)return;if("Enter"===t.key||" "===t.key){t.preventDefault(),r(n.id);return}if(!["ArrowLeft","ArrowRight","Home","End"].includes(t.key))return;t.preventDefault();let o=e.findIndex(e=>e.id===n.id),i="Home"===t.key?0:"End"===t.key?e.length-1:(o+("ArrowRight"===t.key?1:-1)+e.length)%e.length;r(e[i].id);let s=l.current;s?.querySelector(`[data-tab-id="${CSS.escape(e[i].id)}"]`)?.focus()},[r,e]);return(0,n.jsx)("div",{ref:l,role:"tablist",className:`file-tab-bar${a?"":" no-overflow"}`,children:e.map(o=>{let l=o.id===t;return(0,n.jsxs)("div",{role:"tab","data-tab-id":o.id,"aria-label":"terminal"===o.kind?s("terminal.tabLabel",{name:o.label}):"subagent"===o.kind?s("subagent.transcriptTitle")+": "+o.label:o.label,"aria-selected":l,tabIndex:l||!t&&e[0].id===o.id?0:-1,className:"file-tab",onKeyDown:e=>c(e,o),onClick:()=>r(o.id),onMouseDown:e=>{1===e.button&&e.preventDefault()},onAuxClick:e=>{1===e.button&&(e.preventDefault(),e.stopPropagation(),o.closing||i(o.id))},children:[(0,n.jsx)("span",{className:"file-tab-icon",children:"subagent"===o.kind?(0,n.jsx)(_.d,{size:13,"aria-hidden":"true"}):"terminal"===o.kind?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("polyline",{points:"4 17 10 11 4 5"}),(0,n.jsx)("line",{x1:"12",y1:"19",x2:"20",y2:"19"})]}):oE(o.label,13)}),(0,n.jsx)("span",{className:"file-tab-label",title:o.filePath,children:o.label}),(0,n.jsx)("button",{type:"button",className:"file-tab-close",disabled:o.closing,onClick:e=>{e.stopPropagation(),i(o.id)},title:s("desktop.closeTab"),"aria-label":s("desktop.closeTabWithLabel",{label:o.label}),children:(0,n.jsx)(g.X,{size:11,"aria-hidden":"true"})})]},o.id)})})}let u$="pi-web:file-tabs";function uW(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}let uL=new Set(["awaiting_input","review","failed"]),uN=(0,o.createContext)(null);function uA(){let e=(0,o.useContext)(uN);if(!e)throw Error("useTasksView must be used within TasksViewProvider");return e}function uP({children:e}){let{t}=(0,Y.s)(),r=(0,o.useRef)(t);(0,o.useEffect)(()=>{r.current=t},[t]);let[i,s]=(0,o.useState)([]),[l,a]=(0,o.useState)([]),d=(0,o.useRef)(0),c=(0,o.useCallback)(async()=>{let e=++d.current;try{let t=await (0,dU.Wt)(),r=(await Promise.all(t.map(e=>(0,dU.Vk)(e).catch(()=>[])))).flat().sort((e,t)=>t.id-e.id);if(e!==d.current)return;a(e=>uF(e,t)?e:t),s(e=>uF(e,r)?e:r)}catch{}},[]);(0,o.useEffect)(()=>{c();let e=null,t=!1,r=()=>{t||((e=new EventSource("/api/tasks/events")).onmessage=()=>{c()},e.onerror=()=>{e?.close(),e=null,c(),setTimeout(r,2e3)})};r();let n=()=>{"visible"===document.visibilityState&&c()},o=()=>void c();document.addEventListener("visibilitychange",n),window.addEventListener("online",o);let i=setInterval(()=>void c(),6e4);return()=>{t=!0,e?.close(),document.removeEventListener("visibilitychange",n),window.removeEventListener("online",o),clearInterval(i)}},[c]);let u=(0,o.useMemo)(()=>i.filter(e=>uL.has(e.status)&&null==e.archivedAt).length,[i]),p=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=p.current;if((p.current=new Map(i.map(e=>[e.id,e.status])),e&&0!==i.length)&&"Notification"in window){for(let r of i)if(e.get(r.id)!==r.status&&("review"===r.status||"failed"===r.status)&&null==r.archivedAt&&"visible"!==document.visibilityState)try{let e="review"===r.status?t("tasks.notifyReview",{title:r.title}):t("tasks.notifyFailed",{title:r.title});!function(e,t){new Promise(r=>{if(!("Notification"in window))return void r();let n=()=>{try{new Notification(e,{body:t,tag:"pi-tasks"})}catch{}r()};"granted"===Notification.permission?n():"denied"!==Notification.permission?Notification.requestPermission().then(e=>{"granted"===e?n():r()}):r()})}("Pi Web Tasks",e)}catch{}}},[i,t]);let h=(0,o.useMemo)(()=>({tasks:i,projects:l,attentionCount:u,refetch:c}),[i,l,u,c]);return(0,n.jsx)(uN.Provider,{value:h,children:e})}function uF(e,t){return JSON.stringify(e)===JSON.stringify(t)}var uD=r(4539),uH=r(12449),uO=r(2571);let uB=["todo","inProgress","attention","done"];function uU(e){return"review"===e.status&&0===e.filesChanged}function u_(){return{defaultAgentType:null,modeId:null,configValues:{},autoProcess:!0,maxConcurrent:1,mergeStrategy:"merge",deleteWorktreeDefault:!0,preflightCommand:null,initCommand:null,stagePrompts:null}}let uq=["todo","inProgress","attention","done"],uK={todo:{id:"todo",marker:"var(--text-dim)"},inProgress:{id:"inProgress",marker:"var(--accent)"},attention:{id:"attention",marker:"var(--status-warning)"},done:{id:"done",marker:"var(--status-success)"}};var uV=r(54775),uJ=r(98998),uY=r(36668);function uG({task:e}){let{t}=(0,Y.s)(),r=t("failed"===e.status&&"interrupted"===e.failureReason?"tasks.statusInterrupted":function(e){switch(e){case"todo":return"tasks.statusTodo";case"queued":return"tasks.statusQueued";case"preparing":return"tasks.statusPreparing";case"running":return"tasks.statusRunning";case"awaiting_input":return"tasks.statusAwaitingInput";case"review":return"tasks.statusReview";case"merging":return"tasks.statusMerging";case"done":return"tasks.statusDone";case"failed":return"tasks.statusFailed";case"canceled":return"tasks.statusCanceled"}}(e.status)),o={display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,padding:"2px 8px",fontSize:10,fontWeight:600,lineHeight:1.4,flexShrink:0,whiteSpace:"nowrap"};switch(e.status){case"queued":case"preparing":case"running":case"merging":return(0,n.jsxs)("span",{style:{...o,color:"var(--accent)"},children:[(0,n.jsx)(uV.N,{size:11,className:"pi-spin",style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}),r]});case"awaiting_input":case"review":return(0,n.jsx)("span",{style:{...o,border:"1px solid rgba(245,158,11,0.45)",background:"rgba(245,158,11,0.08)",color:"var(--status-warning)"},children:r});case"done":return(0,n.jsxs)("span",{style:{...o,background:"rgba(16,185,129,0.12)",color:"#059669"},children:[(0,n.jsx)(f.J,{size:10,weight:"bold","aria-hidden":"true"}),r]});case"failed":return(0,n.jsx)("span",{style:{...o,background:"rgba(239,68,68,0.12)",color:"var(--status-error)"},children:r});default:return(0,n.jsx)("span",{style:{...o,background:"var(--bg-hover)",color:"var(--text-muted)"},children:r})}}function uX({task:e}){let t=e.preflight;if(!t||"review"!==e.status)return null;let r="passed"===t.status?{background:"rgba(16,185,129,0.12)",color:"#059669"}:"failed"===t.status?{background:"rgba(239,68,68,0.12)",color:"var(--status-error)"}:{background:"var(--bg-hover)",color:"var(--text-muted)"};return(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,padding:"1px 6px",fontSize:10,fontWeight:500,lineHeight:1.5,maxWidth:"100%",...r},title:t.command,children:["running"===t.status?(0,n.jsx)(uV.N,{size:10,style:{animation:"pi-spin 1s linear infinite"},"aria-hidden":"true"}):"passed"===t.status?(0,n.jsx)(ei.r,{size:10,"aria-hidden":"true"}):(0,n.jsx)(nC.J,{size:10,"aria-hidden":"true"}),(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t.command})]})}function uZ({task:e,folderName:t,now:r,onOpen:o,onStart:i,onCancel:s,onRetry:l,onRequeue:a,onViewSession:d,onMerge:c,onArchive:u,onEdit:p}){let{t:h}=(0,Y.s)(),g=null!=e.archivedAt,x="running"===e.status||"awaiting_input"===e.status||"merging"===e.status,m=null!=e.filesChanged&&e.filesChanged>0?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:3,fontFamily:"var(--font-mono)",fontSize:10},children:[(0,n.jsxs)("span",{style:{color:"#059669"},children:["+",e.additions??0]}),(0,n.jsxs)("span",{style:{color:"var(--status-error)"},children:["-",e.deletions??0]})]}):null,v=function(e,t){if(!e)return"";let r=new Date(e).getTime();if(Number.isNaN(r))return"";let n=Math.floor(Math.max(0,t-r)/6e4);if(n<1)return"now";if(n<60)return`${n}m`;let o=Math.floor(n/60);if(o<24)return`${o}h`;let i=Math.floor(o/24);return`${i}d`}(e.finishedAt??e.settledAt??e.startedAt??e.createdAt,r),{primary:y,more:b}=(()=>{let t=[],r=null;if(g)return{primary:r={icon:I.T,label:h("tasks.actionUnarchive"),onClick:u},more:t};switch(e.status){case"todo":r={icon:uO.j,label:h("tasks.actionStart"),onClick:i},t.push({icon:du.S,label:h("tasks.actionEdit"),onClick:p});break;case"queued":case"preparing":case"running":case"awaiting_input":r={icon:uJ.k,label:h("tasks.actionCancel"),onClick:s};break;case"review":r=uU(e)?{icon:f.J,label:h("tasks.actionComplete"),onClick:c}:{icon:uY.r,label:h("tasks.actionMerge"),onClick:c};break;case"merging":break;case"failed":r={icon:z.S,label:h("tasks.actionRetry"),onClick:l},t.push({icon:du.S,label:h("tasks.actionEdit"),onClick:p}),t.push({icon:I.T,label:h("tasks.actionArchive"),onClick:u});break;case"done":r={icon:I.T,label:h("tasks.actionArchive"),onClick:u};break;case"canceled":r={icon:aE.f,label:h("tasks.actionRequeue"),onClick:a},t.push({icon:I.T,label:h("tasks.actionArchive"),onClick:u})}return{primary:r,more:t}})(),k=[...b];return null!=e.conversationId&&k.push({icon:aM.y,label:h("tasks.actionViewSession"),onClick:d}),(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:o,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),o())},style:{display:"flex",flexDirection:"column",cursor:"pointer",borderRadius:12,border:"1px solid color-mix(in srgb, var(--border) 85%, transparent)",background:"var(--bg-panel)",padding:12,textAlign:"left",transition:"border-color 0.12s",opacity:g?.6:1,boxShadow:"0 1px 2px rgba(0,0,0,0.04)"},className:"task-card-hover",onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="color-mix(in srgb, var(--border) 85%, transparent)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{minWidth:0,overflowWrap:"break-word",fontSize:13,fontWeight:500,lineHeight:1.4},children:e.title}),(0,n.jsx)(uG,{task:e})]}),(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"2px 6px",marginTop:6,fontSize:11,color:"var(--text-muted)"},children:[t?(0,n.jsx)("span",{style:{maxWidth:160,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t}):null,t&&e.workBranch?(0,n.jsx)("span",{style:{opacity:.5},children:"/"}):null,e.workBranch?(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:180},children:e.workBranch}):null,(t||e.workBranch)&&(m||v)?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,m,m&&v?(0,n.jsx)("span",{style:{opacity:.5},children:"\xb7"}):null,v?(0,n.jsx)("span",{style:{flexShrink:0},children:v}):null,(0,n.jsx)(uX,{task:e})]}),e.lastError&&("failed"===e.status||"review"===e.status)?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:8,borderRadius:8,background:"rgba(239,68,68,0.08)",padding:"6px 8px",fontSize:11,color:"var(--status-error)"},children:[(0,n.jsx)(l9.t,{size:13,style:{flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{minWidth:0,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.lastError}),(0,n.jsx)("button",{type:"button",style:{flexShrink:0,fontWeight:600,background:"none",border:"none",cursor:"pointer",color:"inherit",fontSize:11,textDecoration:"underline"},onClick:e=>{e.stopPropagation(),o()},children:h("tasks.errorView")})]}):null,"review"===e.status&&e.resultSummary?(0,n.jsx)("p",{style:{margin:"6px 0 0",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",fontSize:11,lineHeight:1.5,color:"var(--text-muted)"},children:e.resultSummary}):null,x&&e.latestProgress?(0,n.jsx)("p",{style:{margin:"6px 0 0",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden",fontSize:11,lineHeight:1.5,color:"var(--text-muted)",fontStyle:"italic"},children:e.latestProgress}):null,y||k.length>0?(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:12,paddingTop:12,borderTop:"1px solid var(--border)"},children:[y?(0,n.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),y.onClick()},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 10px",borderRadius:7,background:"var(--accent)",color:"var(--accent-fg)",border:"none",cursor:"pointer",fontSize:11,fontWeight:600},children:[(0,n.jsx)(y.icon,{size:12,weight:"bold","aria-hidden":"true"}),y.label]}):null,(0,n.jsx)("div",{style:{flex:1}}),k.map(e=>(0,n.jsx)("button",{type:"button",title:e.label,"aria-label":e.label,onClick:t=>{t.stopPropagation(),e.onClick()},style:{display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,borderRadius:999,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",opacity:0,transition:"opacity 0.12s, background 0.12s, color 0.12s"},className:"task-card-secondary",onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(e.icon,{size:13,"aria-hidden":"true"})},e.label))]}):null]})}function uQ({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=uA(),[l,a]=(0,o.useState)(""),[d,c]=(0,o.useState)(!1);if(L(!d,()=>t(!1)),(0,o.useEffect)(()=>{e&&(a(""),c(!1))},[e,r]),!e||!r)return null;let u=async()=>{if(!d){c(!0);try{await (0,dU.oQ)(r.id,r.projectRoot,"cancel",{reason:l.trim()||null}),t(!1),s()}catch(e){console.error("cancel failed",e)}finally{c(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.cancelTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:i("tasks.cancelDescription")}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:i("tasks.cancelReasonLabel")}),(0,n.jsx)("textarea",{value:l,onChange:e=>a(e.target.value),placeholder:i("tasks.cancelReasonPlaceholder"),rows:3,autoFocus:!0,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit",resize:"vertical"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:d,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("tasks.cancelKeep")}),(0,n.jsx)("button",{type:"button",onClick:()=>void u(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.cancelSubmit")})]})]})]})})}function u0({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=uA(),[l,a]=(0,o.useState)(!0),[d,c]=(0,o.useState)(!1);L(!d,()=>t(!1));let u=r?.worktreePath!=null;if((0,o.useEffect)(()=>{if(!e||!r)return;c(!1);let t=!1;return(0,dU.CG)(r.projectRoot).then(e=>{t||a(e.deleteWorktreeDefault)}).catch(()=>{t||a(!0)}),()=>{t=!0}},[e,r]),!e||!r)return null;let p=async()=>{if(!d){c(!0);try{await (0,dU.ZX)(r.id,r.projectRoot,u&&l),t(!1),s()}catch(e){console.error("complete failed",e)}finally{c(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.completeTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:i("tasks.completeDescription")}),u?(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:l,onChange:e=>a(e.target.checked),style:{accentColor:"var(--accent)"}}),i("tasks.completeDeleteWorktree")]}):null,(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:d,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void p(),disabled:d,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.completeSubmit")})]})]})]})})}var u1=r(51285),u2=r(16894);function u6({open:e,onOpenChange:t,task:r,onViewSession:i,onMerge:s,onEdit:l,onCancel:a,onRetry:d,onRequeue:c,onComplete:u}){let{t:p}=(0,Y.s)(),{refetch:h}=uA(),[x,m]=(0,o.useState)([]),[v,y]=(0,o.useState)([]),[b,j]=(0,o.useState)(null),[w,S]=(0,o.useState)(null),[C,R]=(0,o.useState)(!1),[M,E]=(0,o.useState)(!1),[$,W]=(0,o.useState)(""),[N,A]=(0,o.useState)(!1),[P,F]=(0,o.useState)(!1),[D,H]=(0,o.useState)(!1);L(!0,()=>t(!1));let O=r?.id??null,B=r?.projectRoot??null,U=(0,o.useCallback)(async()=>{if(null==O||null==B)return;let[e,t]=await Promise.all([(0,dU.HB)(B,O).catch(()=>[]),r?.worktreePath?(0,dU.JH)(B,O).then(e=>e.files).catch(()=>[]):Promise.resolve([])]);m(e),y(t)},[O,B,r?.worktreePath]);(0,o.useEffect)(()=>{if(!e||null==O)return;m([]),y([]),E(!1),W(""),U();let t=window.setInterval(()=>void U(),5e3);return()=>window.clearInterval(t)},[e,O,U]);let _=(0,o.useCallback)(async e=>{H(!0);try{await e()}catch(e){console.error("detail action failed",e)}finally{H(!1),h()}},[h]),q=(0,o.useCallback)(async e=>{if(null!=B&&null!=O){R(!0);try{let t=await (0,dU.h)(B,O,e);S(t.supported&&t.patch?t.patch:null)}catch{S(null)}finally{R(!1)}}},[B,O]),K=async()=>{null!=r&&null!=B&&(await _(()=>(0,dU.bH)(r.id,B,P)),t(!1))},V=async()=>{null!=r&&null!=B&&$.trim()&&(await _(()=>(0,dU.in)(r.id,B,$.trim())),E(!1),W(""))};if(!e||null==r||null==B)return null;let J=[];if(null==r.archivedAt)switch(r.status){case"todo":J.push({label:p("tasks.actionStart"),icon:uO.j,onClick:()=>void _(()=>(0,dU.oQ)(r.id,B,"start")),filled:!0}),J.push({label:p("tasks.actionEdit"),icon:du.S,onClick:()=>l(r)});break;case"queued":case"preparing":case"running":case"awaiting_input":J.push({label:p("tasks.actionCancel"),icon:uJ.k,onClick:()=>a(r),danger:!0});break;case"review":J.push({label:uU(r)?p("tasks.actionComplete"):p("tasks.actionMerge"),icon:uU(r)?f.J:u1.Y,onClick:()=>uU(r)?u(r):s(r),filled:!0}),J.push({label:p("tasks.actionReturn"),icon:aE.f,onClick:()=>E(!0)});break;case"failed":J.push({label:p("tasks.actionRetry"),icon:z.S,onClick:()=>d(r),filled:!0}),J.push({label:p("tasks.actionEdit"),icon:du.S,onClick:()=>l(r)});break;case"done":J.push({label:p("tasks.actionArchive"),icon:I.T,onClick:()=>void _(()=>(0,dU.et)(r.id,B,!0))});break;case"canceled":J.push({label:p("tasks.actionRequeue"),icon:aE.f,onClick:()=>c(r),filled:!0})}else J.push({label:p("tasks.actionUnarchive"),icon:I.T,onClick:()=>void _(()=>(0,dU.et)(r.id,B,!1))});return null!=r.conversationId&&J.push({label:p("tasks.actionViewSession"),icon:aM.y,onClick:()=>i(r)}),(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:800,background:"rgba(0,0,0,0.35)"},children:(0,n.jsxs)("div",{style:{position:"absolute",top:0,right:0,bottom:0,width:"min(480px, 90vw)",background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",display:"flex",flexDirection:"column",boxShadow:"-8px 0 32px rgba(0,0,0,0.2)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12,padding:"16px 16px 0"},children:[(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("h3",{style:{margin:0,fontSize:15,fontWeight:600,lineHeight:1.4,overflowWrap:"break-word"},children:r.title}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:6},children:[(0,n.jsx)(uG,{task:r}),r.workBranch?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontFamily:"var(--font-mono)",fontSize:11,color:"var(--text-muted)"},children:[(0,n.jsx)(k.Z,{size:12,"aria-hidden":"true"}),r.workBranch]}):null]})]}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":p("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex",flexShrink:0},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,padding:"14px 16px 0"},children:J.map(e=>{let t,r;return(0,n.jsxs)("button",{type:"button",onClick:e.onClick,disabled:D,style:(t=e.filled,r=e.danger,{display:"inline-flex",alignItems:"center",gap:5,padding:"7px 12px",borderRadius:8,fontSize:12,fontWeight:600,cursor:"pointer",background:t?"var(--accent)":r?"rgba(239,68,68,0.1)":"var(--bg-hover)",color:t?"#fff":r?"var(--status-error)":"var(--text)",border:t||r?"none":"1px solid var(--border)"}),children:[(0,n.jsx)(e.icon,{size:13,weight:"bold","aria-hidden":"true"}),e.label]},e.label)})}),M&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,padding:"12px 16px 0"},children:[(0,n.jsx)("textarea",{value:$,onChange:e=>W(e.target.value),placeholder:p("tasks.returnPlaceholder"),rows:3,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:12,resize:"vertical",fontFamily:"inherit"}}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[(0,n.jsx)("button",{type:"button",onClick:()=>E(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:p("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void V(),disabled:!$.trim(),style:{padding:"6px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:p("tasks.returnSubmit")})]})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"14px 16px 0",fontSize:12,color:"var(--text-muted)"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaProject")}),(0,n.jsx)("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:r.projectRoot})]}),r.createdAt?(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaCreated")}),(0,n.jsx)("span",{children:new Date(r.createdAt).toLocaleString()})]}):null,r.mergeCommit?(0,n.jsxs)("div",{style:{display:"flex",gap:6},children:[(0,n.jsx)("span",{style:{flexShrink:0,color:"var(--text-dim)",width:64},children:p("tasks.metaCommit")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11},children:r.mergeCommit})]}):null]}),v.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,padding:"14px 16px 0"},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:p("tasks.changedFiles")}),(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2,maxHeight:140,overflowY:"auto"},children:v.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>{var t;j(t=e.file),S(null),q(t)},style:{display:"flex",alignItems:"center",gap:8,textAlign:"left",padding:"4px 6px",borderRadius:6,background:"none",border:"none",color:"var(--text)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(u2.o,{size:13,style:{flexShrink:0,color:"var(--text-muted)"},"aria-hidden":"true"}),(0,n.jsx)("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontFamily:"var(--font-mono)",fontSize:11},children:e.file}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"#059669",flexShrink:0},children:["+",e.additions]}),(0,n.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--status-error)",flexShrink:0},children:["-",e.deletions]})]},e.file))})]}),null!=b&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,padding:"12px 16px 0",minHeight:0,flexShrink:0},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)"},children:p("tasks.diff")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,color:"var(--text-muted)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:b}),(0,n.jsx)("button",{type:"button",onClick:()=>j(null),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:2,display:"flex"},children:(0,n.jsx)(g.X,{size:12,"aria-hidden":"true"})})]}),C?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:p("tasks.loading")}):w?(0,n.jsx)("pre",{style:{margin:0,maxHeight:200,overflow:"auto",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10,fontSize:11,lineHeight:1.5,fontFamily:"var(--font-mono)",color:"var(--text-muted)",whiteSpace:"pre"},children:w.split("\n").map((e,t)=>{let r;return e.startsWith("+")&&!e.startsWith("+++")?r="#059669":e.startsWith("-")&&!e.startsWith("---")?r="var(--status-error)":e.startsWith("@@")&&(r="var(--accent)"),(0,n.jsx)("div",{style:{color:r},children:e||" "},t)})}):(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",padding:8},children:p("tasks.noDiff")})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,padding:"14px 16px 0",flex:1,minHeight:0},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:p("tasks.timeline")}),(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",paddingBottom:8},children:0===x.length?(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-dim)",padding:8},children:p("tasks.noEvents")}):(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[...x].reverse().map(e=>{var t;let r,o;return(0,n.jsxs)("div",{style:{display:"flex",gap:8,padding:"4px 6px",borderRadius:6,fontSize:11},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",flexShrink:0,fontFamily:"var(--font-mono)",fontSize:10,paddingTop:1},children:new Date(e.createdAt).toLocaleTimeString()}),(0,n.jsx)("span",{style:{color:"var(--text)",flexShrink:0,fontWeight:500},children:(t=e.kind,(o=p(r=`tasks.event_${t}`))===r?t:o)}),e.payload?.feedback?(0,n.jsx)("span",{style:{color:"var(--text-muted)",fontStyle:"italic",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:String(e.payload.feedback)}):null]},e.id)})})})]}),(0,n.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:8,padding:"10px 16px",borderTop:"1px solid var(--border)",flexShrink:0},children:N?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:6,fontSize:12,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:P,onChange:e=>F(e.target.checked),style:{accentColor:"var(--accent)"}}),p("tasks.deleteWorktree")]}),(0,n.jsx)("button",{type:"button",onClick:()=>A(!1),style:{padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:p("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void K(),disabled:D,style:{padding:"6px 14px",borderRadius:8,background:"var(--status-error)",color:"#fff",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:p("tasks.deleteConfirm")})]}):(0,n.jsxs)("button",{type:"button",onClick:()=>A(!0),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--status-error)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(T.l,{size:13,"aria-hidden":"true"}),p("tasks.delete")]})})]})})}var u4=r(17757);function u5({open:e,onOpenChange:t,task:r,defaultProject:i,projects:s,prefillTitle:l,prefillPrompt:a,onSubmit:d}){let{t:c}=(0,Y.s)(),[u,p]=(0,o.useState)(""),[h,x]=(0,o.useState)(""),[f,m]=(0,o.useState)(""),[v,y]=(0,o.useState)([]),[b,k]=(0,o.useState)(""),[j,w]=(0,o.useState)(!1);L(!j,()=>t(!1));let S=(0,o.useRef)(!1);if((0,o.useEffect)(()=>{if(!e){S.current=!1;return}S.current||(S.current=!0,p(r?.projectRoot??i??s[0]??""),x(r?.title??l??""),m(r?.config?.prompt??a??""),(0,dU.VB)().then(y).catch(()=>void 0))},[e,r,i,s,l,a]),!e)return null;let C=async()=>{if(u&&h.trim()&&!j){w(!0);try{await d(u,h.trim(),{prompt:f.trim(),agentType:r?.config?.agentType??null,modelId:r?.config?.modelId??null,thinkingLevel:r?.config?.thinkingLevel??null}),t(!1)}catch(e){console.error("submit task failed",e)}finally{w(!1)}}},z=async()=>{if(b.trim()&&h.trim())try{await (0,dU.nY)({name:b.trim(),title:h.trim(),config:{prompt:f.trim()}}),k(""),(0,dU.VB)().then(y).catch(()=>void 0)}catch(e){console.error("save template failed",e)}},R=async e=>{try{await (0,dU.B_)(e),(0,dU.VB)().then(y).catch(()=>void 0)}catch(e){console.error("delete template failed",e)}},I={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:900,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",maxHeight:"80vh",overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:r?c("tasks.editTitle"):c("tasks.newTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":c("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[v.length>0&&(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:11,fontWeight:600,color:"var(--text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:c("tasks.templates")}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6},children:v.map(e=>(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,background:"var(--bg-hover)",padding:"3px 8px",fontSize:11},children:[(0,n.jsx)("button",{type:"button",onClick:()=>{x(e.title),m(e.config?.prompt??"")},style:{background:"none",border:"none",cursor:"pointer",color:"var(--text)",fontSize:11,padding:0},children:e.name}),(0,n.jsx)("button",{type:"button",onClick:()=>void R(e.id),"aria-label":c("tasks.deleteTemplate"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)",padding:0,display:"flex"},children:(0,n.jsx)(T.l,{size:10,"aria-hidden":"true"})})]},e.id))})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldProject")}),(0,n.jsx)("select",{value:u,onChange:e=>p(e.target.value),style:I,children:s.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldTitle")}),(0,n.jsx)("input",{value:h,onChange:e=>x(e.target.value),placeholder:c("tasks.fieldTitlePlaceholder"),style:I,autoFocus:!0})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500,color:"var(--text)"},children:c("tasks.fieldPrompt")}),(0,n.jsx)("textarea",{value:f,onChange:e=>m(e.target.value),placeholder:c("tasks.fieldPromptPlaceholder"),rows:6,style:{...I,resize:"vertical",fontFamily:"inherit",lineHeight:1.5}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)("input",{value:b,onChange:e=>k(e.target.value),placeholder:c("tasks.templateNamePlaceholder"),style:{...I,flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>void z(),disabled:!b.trim()||!h.trim(),style:{display:"inline-flex",alignItems:"center",gap:5,padding:"8px 12px",borderRadius:8,background:"var(--bg-hover)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:[(0,n.jsx)(u4.D,{size:13,"aria-hidden":"true"}),c("tasks.saveAsTemplate")]})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:c("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void C(),disabled:!u||!h.trim()||j,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:c("tasks.save")})]})]})]})})}function u3({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)(),{refetch:s}=uA(),[l,a]=(0,o.useState)(!0),[d,c]=(0,o.useState)(""),[u,p]=(0,o.useState)(!0),[h,x]=(0,o.useState)(!1);if(L(!h,()=>t(!1)),(0,o.useEffect)(()=>{e&&r&&(a(!0),c(r.title),x(!1),(0,dU.CG)(r.projectRoot).then(e=>p(e.deleteWorktreeDefault)).catch(()=>p(!0)))},[e,r]),!e||!r)return null;let f=async()=>{if((l||d.trim())&&!h){x(!0);try{await (0,dU.oB)(r.id,r.projectRoot,l?null:d.trim(),u),t(!1),s()}catch(e){console.error("merge failed",e)}finally{x(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(440px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.mergeTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"radio",checked:l,onChange:()=>a(!0),style:{accentColor:"var(--accent)"}}),i("tasks.mergeAutoMessage")]}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"radio",checked:!l,onChange:()=>a(!1),style:{accentColor:"var(--accent)"}}),i("tasks.mergeManualMessage")]}),!l&&(0,n.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:i("tasks.mergeMessagePlaceholder"),style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit"}}),(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13,cursor:"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:u,onChange:e=>p(e.target.checked),style:{accentColor:"var(--accent)"}}),i("tasks.mergeDeleteWorktree")]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void f(),disabled:!l&&!d.trim()||h,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.mergeConfirm")})]})]})]})})}function u8({open:e,onOpenChange:t,task:r,kind:i}){let{t:s}=(0,Y.s)(),{refetch:l}=uA(),[a,d]=(0,o.useState)(""),[c,u]=(0,o.useState)(!1);if(L(!c,()=>t(!1)),(0,o.useEffect)(()=>{e&&(d(""),u(!1))},[e,r]),!e||!r)return null;let p="retry"===i,h=async()=>{if(!c){u(!0);try{await (0,dU.oQ)(r.id,r.projectRoot,i,{note:a.trim()||null}),t(!1),l()}catch(e){console.error("restart failed",e)}finally{u(!1)}}};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:950,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(480px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:s(p?"tasks.restartTitleRetry":"tasks.restartTitleRequeue")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":s("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12,padding:"14px 16px 16px"},children:[(0,n.jsx)("p",{style:{margin:0,fontSize:12,lineHeight:1.5,color:"var(--text-muted)"},children:s("tasks.restartDescription")}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:5},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"var(--text-muted)"},children:s("tasks.actionAddNote")}),(0,n.jsx)("textarea",{value:a,onChange:e=>d(e.target.value),placeholder:s(p?"tasks.followUpPlaceholderRetry":"tasks.followUpPlaceholderRequeue"),rows:3,autoFocus:!0,style:{width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"8px 10px",color:"var(--text)",fontSize:13,outline:"none",fontFamily:"inherit",resize:"vertical"}})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),disabled:c,style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:s("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void h(),disabled:c,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:s(p?"tasks.actionRetry":"tasks.actionRequeue")})]})]})]})})}let u7=["work","retry","return","merge"];function u9({open:e,onOpenChange:t,projectRoot:r}){let{t:i}=(0,Y.s)(),{projects:s}=uA(),[l,a]=(0,o.useState)(""),[d,c]=(0,o.useState)(()=>u_()),[u,p]=(0,o.useState)(!1),[h,x]=(0,o.useState)(!1);if(L(!h,()=>t(!1)),(0,o.useEffect)(()=>{if(!e)return;let t=r??s[0]??"";a(t),t&&(0,dU.Pf)(t).then(e=>{p(null!=e),c(e??u_())}).catch(()=>{p(!1),c(u_())})},[e,r,s]),!e)return null;let f=(e,t)=>{c(r=>({...r,[e]:t}))},m=async()=>{if(l&&!h){x(!0);try{await (0,dU.eA)(l,d),p(!0),t(!1)}catch(e){console.error("save settings failed",e)}finally{x(!1)}}},v=async()=>{if(l)try{await (0,dU.E)(l),p(!1),c(u_())}catch(e){console.error("reset settings failed",e)}},y={width:"100%",background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:"7px 10px",color:"var(--text)",fontSize:12,outline:"none",fontFamily:"inherit"},b={display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:"10px 0",borderBottom:"1px solid var(--border)"};return(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:960,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(560px, calc(100vw - 48px))",maxHeight:"82vh",overflowY:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.settingsTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px 16px"},children:[(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500},children:i("tasks.settingsProject")}),(0,n.jsx)("select",{value:l,onChange:e=>a(e.target.value),style:y,children:s.map(e=>(0,n.jsx)("option",{value:e,children:e.split("/").filter(Boolean).pop()??e},e))})]}),l?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsAutoProcess")}),(0,n.jsx)("input",{type:"checkbox",checked:d.autoProcess,onChange:e=>f("autoProcess",e.target.checked),style:{accentColor:"var(--accent)"}})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsMaxConcurrent")}),(0,n.jsx)("input",{type:"number",min:0,value:d.maxConcurrent,onChange:e=>f("maxConcurrent",Math.max(0,Number(e.target.value)||0)),style:{...y,width:90}})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsMergeStrategy")}),(0,n.jsxs)("select",{value:d.mergeStrategy,onChange:e=>f("mergeStrategy",e.target.value),style:{...y,width:140},children:[(0,n.jsx)("option",{value:"merge",children:i("tasks.mergeStrategyMerge")}),(0,n.jsx)("option",{value:"squash",children:i("tasks.mergeStrategySquash")})]})]}),(0,n.jsxs)("div",{style:b,children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsDeleteWorktree")}),(0,n.jsx)("input",{type:"checkbox",checked:d.deleteWorktreeDefault,onChange:e=>f("deleteWorktreeDefault",e.target.checked),style:{accentColor:"var(--accent)"}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsPreflightCommand")}),(0,n.jsx)("input",{value:d.preflightCommand??"",onChange:e=>f("preflightCommand",e.target.value||null),placeholder:i("tasks.settingsPreflightPlaceholder"),style:{...y,fontFamily:"var(--font-mono)",fontSize:11}})]}),(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:12},children:i("tasks.settingsInitCommand")}),(0,n.jsx)("input",{value:d.initCommand??"",onChange:e=>f("initCommand",e.target.value||null),placeholder:i("tasks.settingsInitPlaceholder"),style:{...y,fontFamily:"var(--font-mono)",fontSize:11}})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6,paddingTop:4},children:[(0,n.jsx)("span",{style:{fontSize:12,fontWeight:500},children:i("tasks.settingsStagePrompts")}),u7.map(e=>(0,n.jsxs)("label",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("span",{style:{fontSize:11,color:"var(--text-muted)"},children:i(`tasks.stage.${e}`)}),(0,n.jsx)("input",{value:d.stagePrompts?.[e]??"",onChange:t=>f("stagePrompts",{...d.stagePrompts??{},[e]:t.target.value}),style:{...y,fontSize:11}})]},e))]}),u&&(0,n.jsx)("button",{type:"button",onClick:()=>void v(),style:{alignSelf:"flex-start",padding:"6px 12px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text-muted)",fontSize:12,cursor:"pointer"},children:i("tasks.settingsReset")})]}):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",padding:8},children:i("tasks.settingsNoProject")}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:4},children:[(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 14px",borderRadius:8,background:"none",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,cursor:"pointer"},children:i("i18n.cancel")}),(0,n.jsx)("button",{type:"button",onClick:()=>void m(),disabled:!l||h,style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("tasks.save")})]})]})]})})}function pe({open:e,onOpenChange:t,task:r}){let{t:i}=(0,Y.s)();return(L(e&&!!r,()=>t(!1)),(0,o.useEffect)(()=>{if(!e)return},[e,r]),e&&r)?(0,n.jsx)("div",{style:{position:"fixed",inset:0,zIndex:970,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(0,0,0,0.45)"},children:(0,n.jsxs)("div",{style:{width:"min(520px, calc(100vw - 48px))",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:14,boxShadow:"0 16px 48px rgba(0,0,0,0.3)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"14px 16px 0"},children:[(0,n.jsx)("h3",{style:{fontSize:15,fontWeight:600,margin:0},children:i("tasks.sessionTitle")}),(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),"aria-label":i("i18n.close"),style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-muted)",padding:4,display:"flex"},children:(0,n.jsx)(g.X,{size:16,"aria-hidden":"true"})})]}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10,padding:"14px 16px 16px",fontSize:12},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:i("tasks.sessionId")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:r.conversationId??"—"})]}),r.sessionFile?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:8,padding:10},children:[(0,n.jsx)("span",{style:{color:"var(--text-muted)"},children:i("tasks.sessionFile")}),(0,n.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,overflowWrap:"anywhere"},children:r.sessionFile})]}):null,(0,n.jsx)("div",{style:{fontSize:11,color:"var(--text-muted)",lineHeight:1.6},children:i("tasks.sessionHint")}),(0,n.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginTop:4},children:(0,n.jsx)("button",{type:"button",onClick:()=>t(!1),style:{padding:"8px 16px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:i("i18n.close")})})]})]})}):null}let pt="__all__",pr="pi-tasks-board-filter",pn={showCanceled:!1,showArchived:!1},po="pi:open-task-settings";function pi(){let{t:e}=(0,Y.s)(),{attentionCount:t}=uA();return(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,height:36,flexShrink:0,padding:"0 16px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)"},children:[(0,n.jsxs)("h1",{style:{margin:0,display:"flex",alignItems:"center",gap:6,fontSize:13,fontWeight:600},children:[(0,n.jsx)(eJ.x,{size:15,color:"var(--text-muted)","aria-hidden":"true"}),e("tasks.title"),(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 8px",fontSize:9,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Beta"})]}),t>0?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,borderRadius:999,background:"rgba(239,68,68,0.12)",color:"var(--status-error)",padding:"1px 8px",fontSize:10,fontWeight:700},children:[t," ",e("tasks.attentionBadge")]}):null,(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:()=>window.dispatchEvent(new Event(po)),style:{display:"inline-flex",alignItems:"center",gap:5,height:26,padding:"0 10px",borderRadius:7,background:"none",border:"none",color:"var(--text-muted)",fontSize:12,cursor:"pointer"},title:e("tasks.settingsTitle"),children:[(0,n.jsx)(uD.O,{size:13,"aria-hidden":"true"}),e("tasks.settingsTitle")]})]})}function ps({activeProject:e}){let{t}=(0,Y.s)(),{tasks:i,projects:s,refetch:l}=uA(),[a,d]=(0,o.useState)(null),[c,u]=(0,o.useState)(()=>(function(){try{let e=window.localStorage.getItem(pr);if(e){let t=JSON.parse(e);return{showCanceled:t.showCanceled??!1,showArchived:t.showArchived??!1}}}catch{}return pn})()),[h,g]=(0,o.useState)(!1);(0,o.useEffect)(()=>{try{window.localStorage.setItem(pr,JSON.stringify(c))}catch{}},[c]);let[x,f]=(0,o.useState)(null),[m,v]=(0,o.useState)(!1),y=(0,o.useRef)(null),k=(0,o.useRef)({x:0,y:0}),j=(0,o.useRef)(null),w=(0,o.useRef)(null),[S,C]=(0,o.useState)(null),z=(0,o.useRef)(null);z.current=S;let T=(0,o.useRef)(!1),R=(0,o.useRef)(!1),[I,M]=(0,o.useState)(()=>Date.now());(0,o.useEffect)(()=>{let e=window.setInterval(()=>M(Date.now()),6e4);return()=>window.clearInterval(e)},[]);let[E,$]=(0,o.useState)(!1),[W,L]=(0,o.useState)(null),[N,A]=(0,o.useState)(null);(0,o.useEffect)(()=>{let e=()=>{let e,t=(e=aU,aU=null,e);t&&(L(null),A(t),$(!0))};return e(),window.addEventListener(aB,e),()=>window.removeEventListener(aB,e)},[]);let[P,F]=(0,o.useState)(null),[D,H]=(0,o.useState)(null),[O,B]=(0,o.useState)(!1),[U,_]=(0,o.useState)(null),[q,K]=(0,o.useState)(!1),[V,J]=(0,o.useState)(null),[G,X]=(0,o.useState)("retry"),[Z,Q]=(0,o.useState)(!1),[ee,et]=(0,o.useState)(null),[er,en]=(0,o.useState)(!1),[eo,ei]=(0,o.useState)(!1),[es,el]=(0,o.useState)(null),[ea,ed]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=()=>ei(!0);return window.addEventListener(po,e),()=>window.removeEventListener(po,e)},[]);let ec=(0,o.useMemo)(()=>null==a?i:i.filter(e=>e.projectRoot===a),[i,a]),eu=(0,o.useMemo)(()=>(function(e,t,r=!1){let n={todo:[],inProgress:[],attention:[],done:[]};for(let o of e)("canceled"!==o.status||t)&&(null==o.archivedAt||r)&&n[function(e){switch(e){case"todo":case"queued":return"todo";case"preparing":case"running":return"inProgress";case"awaiting_input":case"review":case"merging":case"failed":return"attention";case"done":case"canceled":return"done"}}(o.status)].push(o);for(let e of uB)n[e].sort((e,t)=>(t.updatedAt??"").localeCompare(e.updatedAt??""));return n})(ec,c.showCanceled,c.showArchived),[ec,c]),ep=(0,o.useMemo)(()=>{let e=eu.todo;if(null==S)return e;let t=new Map(e.map(e=>[e.id,e])),r=S.flatMap(e=>t.get(e)??[]);for(let t of e)S.includes(t.id)||r.push(t);return r},[eu.todo,S]),eh=(0,o.useMemo)(()=>i.find(e=>e.id===P)??null,[i,P]),eg=(0,o.useMemo)(()=>i.find(e=>e.id===es)??null,[i,es]),ex=(0,o.useCallback)(async e=>{try{await e()}catch(e){console.error("task action failed",e)}finally{l()}},[l]),ef=(0,o.useCallback)(e=>{null!=e.conversationId&&(el(e.id),ed(!0))},[el,ed]),em=(0,o.useCallback)(e=>{H(e),B(!0)},[H,B]),ev=(0,o.useCallback)(()=>{L(null),$(!0)},[L,$]),ey=(0,o.useCallback)((e,t)=>{let r=j.current,n=y.current;r&&n&&(r.style.transform=`translate3d(${e-n.dx}px, ${t-n.dy}px, 0)`)},[]),eb=e=>{let t=e.currentTarget.getBoundingClientRect();y.current={dx:e.clientX-t.left,dy:e.clientY-t.top,width:t.width}},ek=(0,o.useCallback)(e=>{if(f(null),v(!1),e){T.current=!1;return}requestAnimationFrame(()=>{T.current=!1})},[f,v]),ej=(0,o.useCallback)(()=>{R.current=!0,C(null),ek(!0)},[ek,C]);(0,o.useEffect)(()=>{if(!x)return;let e=()=>{document.hidden&&ej()};return window.addEventListener("blur",ej),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("blur",ej),document.removeEventListener("visibilitychange",e)}},[x,ej]),(0,o.useEffect)(()=>{x&&!ep.some(e=>e.id===x.task.id)&&ej()},[x,ep,ej]);let ew=(0,o.useCallback)((e,t,r)=>{if(R.current){ek(!0),C(null);return}let n=w.current?.getBoundingClientRect(),o=null!=n&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom;if(ek(!1),o){C(null);let t=i.find(t=>t.id===e.id);t?.status==="todo"&&null!=a&&ex(()=>(0,dU.oQ)(e.id,e.projectRoot,"start"));return}let s=z.current;null!=a&&null!=s&&(async()=>{try{await (0,dU.Lu)(a,s)}catch(e){console.error("reorder failed",e)}await l(),C(null)})()},[ex,ek,a,l,i]),eS=(0,o.useCallback)(()=>{ex(async()=>{let e=await (0,dU.a5)(a);e>0&&console.log(`started ${e} tasks`)})},[ex,a]),eC=(0,o.useCallback)(()=>{let e=eu.done.filter(e=>null==e.archivedAt);0!==e.length&&ex(()=>Promise.all(e.map(e=>(0,dU.et)(e.id,e.projectRoot,!0))))},[ex,eu.done]),ez=+(c.showCanceled!==pn.showCanceled)+ +(c.showArchived!==pn.showArchived),eT=i.length>0,eR=(0,o.useMemo)(()=>{let t=new Set(s);return e&&t.add(e),[...t].sort()},[s,e]),eI=(0,o.useMemo)(()=>{let e=new Map;for(let t of eR)e.set(t,t.split("/").filter(Boolean).pop()??t);return e},[eR]);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0},children:[eT&&(0,n.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8,padding:"14px 16px 8px"},children:[(0,n.jsxs)("select",{value:a??pt,onChange:e=>d(e.target.value===pt?null:e.target.value),style:{height:30,borderRadius:999,padding:"0 10px",background:"var(--bg-panel)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,fontWeight:500,cursor:"pointer",maxWidth:"14rem"},"aria-label":t("tasks.allFolders"),children:[(0,n.jsx)("option",{value:pt,children:t("tasks.allFolders")}),eR.map(e=>(0,n.jsx)("option",{value:e,children:eI.get(e)??e},e))]}),(0,n.jsxs)("div",{style:{position:"relative"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>g(e=>!e),style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 12px",background:"var(--bg-panel)",border:"1px solid var(--border)",color:"var(--text)",fontSize:12,fontWeight:500,cursor:"pointer"},children:[(0,n.jsx)(uH.n,{size:13,"aria-hidden":"true"}),t("tasks.filter"),ez>0?(0,n.jsx)("span",{style:{borderRadius:999,background:"rgba(37,99,235,0.12)",color:"var(--accent)",padding:"1px 6px",fontSize:10,fontWeight:700},children:ez}):null]}),h&&(0,n.jsx)("div",{style:{position:"absolute",top:34,left:0,zIndex:50,width:200,borderRadius:12,padding:6,background:"var(--bg-panel)",border:"1px solid var(--border)",boxShadow:"0 8px 24px rgba(0,0,0,0.16)"},children:[["showCanceled",t("tasks.showCanceled")],["showArchived",t("tasks.showArchived")]].map(([e,t])=>(0,n.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 8px",borderRadius:8,cursor:"pointer",fontSize:12},children:[(0,n.jsx)("input",{type:"checkbox",checked:c[e],onChange:t=>u(r=>({...r,[e]:t.target.checked})),style:{accentColor:"var(--accent)"}}),t]},e))})]}),(0,n.jsx)("div",{style:{flex:1}}),(0,n.jsxs)("button",{type:"button",onClick:eS,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 12px",background:"none",border:"none",color:"var(--text)",fontSize:12,cursor:"pointer"},title:t("tasks.startAll"),children:[(0,n.jsx)(uO.j,{size:13,"aria-hidden":"true"}),t("tasks.startAll")]}),(0,n.jsxs)("button",{type:"button",onClick:ev,style:{display:"inline-flex",alignItems:"center",gap:6,height:30,borderRadius:999,padding:"0 14px",background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(b.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),eT?(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowX:"auto"},children:(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, minmax(0, 1fr))",gap:16,minWidth:"56rem",height:"100%",padding:"4px 16px 16px"},children:uq.map(e=>{let r="todo"===e?ep:eu[e],o=uK[e],i=e=>(0,n.jsx)(uZ,{task:e,folderName:e.projectRoot?eI.get(e.projectRoot)??null:null,now:I,onOpen:()=>{T.current||F(e.id)},onStart:()=>void ex(()=>(0,dU.oQ)(e.id,e.projectRoot,"start")),onCancel:()=>{_(e),K(!0)},onRetry:()=>{J(e),X("retry"),Q(!0)},onRequeue:()=>{J(e),X("requeue"),Q(!0)},onViewSession:()=>ef(e),onMerge:()=>{uU(e)?(et(e),en(!0)):em(e)},onArchive:()=>void ex(()=>(0,dU.et)(e.id,e.projectRoot,null==e.archivedAt)),onEdit:()=>{L(e),$(!0)}},e.id);return(0,n.jsxs)("div",{ref:"inProgress"===e?w:void 0,style:{display:"flex",flexDirection:"column",minHeight:0,gap:8},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,height:24,flexShrink:0,padding:"0 2px"},children:[(0,n.jsx)("span",{style:{width:3,height:14,borderRadius:999,background:o.marker,flexShrink:0},"aria-hidden":"true"}),(0,n.jsx)("h2",{style:{fontSize:12,fontWeight:600,color:"var(--text)"},children:t(`tasks.col${e[0].toUpperCase()}${e.slice(1)}`)}),(0,n.jsx)("span",{style:{borderRadius:999,background:"var(--bg-hover)",padding:"1px 8px",fontSize:10,fontWeight:600,color:"var(--text-muted)"},children:r.length}),(0,n.jsx)("div",{style:{flex:1}}),"done"===e&&eu.done.some(e=>null==e.archivedAt)?(0,n.jsx)("button",{type:"button",onClick:eC,style:{background:"none",border:"none",cursor:"pointer",fontSize:11,color:"var(--text-muted)",padding:"2px 6px",borderRadius:6},children:t("tasks.archiveAllDone")}):null]}),0===r.length?(0,n.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:4,borderRadius:12,border:"1px dashed var(--border)",padding:16,textAlign:"center",..."inProgress"===e&&x?m?{borderColor:"var(--accent)",background:"rgba(37,99,235,0.08)"}:{borderColor:"var(--accent)"}:{}},children:(0,n.jsx)("p",{style:{fontSize:12,color:"var(--text-muted)"},children:t(`tasks.emptyCol${e[0].toUpperCase()}${e.slice(1)}`)})}):(0,n.jsx)("div",{style:{flex:1,minHeight:0,overflowY:"auto",borderRadius:12,transition:"background 0.15s, box-shadow 0.15s",..."inProgress"===e&&x?m?{background:"rgba(37,99,235,0.06)",boxShadow:"inset 0 0 0 2px var(--accent)"}:{boxShadow:"inset 0 0 0 1px rgba(37,99,235,0.25)"}:{}},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:16,paddingBottom:4},children:r.map(t=>"todo"===e?(0,n.jsx)("div",{draggable:!0,onDragStart:e=>{var r,n;e.dataTransfer.effectAllowed="move",r=e.clientX,n=e.clientY,T.current=!0,R.current=!1,k.current={x:r,y:n},f({task:t,width:y.current?.width??280})},onDrag:e=>{var t,r;let n,o;return k.current={x:t=e.clientX,y:r=e.clientY},ey(t,r),void((o=null!=(n=w.current?.getBoundingClientRect())&&t>=n.left&&t<=n.right&&r>=n.top&&r<=n.bottom)!==m&&v(o))},onDragEnd:e=>ew(t,e.clientX,e.clientY),onPointerDown:eb,style:{cursor:"grab",opacity:x?.task.id===t.id?.4:1},children:i(t)},t.id):(0,n.jsx)("div",{children:i(t)},t.id))})})]},e)})})}):(0,n.jsxs)("div",{style:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,padding:32,textAlign:"center"},children:[(0,n.jsx)(eJ.x,{size:40,color:"var(--text-dim)",opacity:.4,"aria-hidden":"true"}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[(0,n.jsx)("p",{style:{fontSize:14,fontWeight:500,color:"var(--text)"},children:t("tasks.empty")}),(0,n.jsx)("p",{style:{maxWidth:320,fontSize:12,color:"var(--text-muted)",lineHeight:1.6},children:t("tasks.emptyHint")})]}),(0,n.jsxs)("button",{type:"button",onClick:ev,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"7px 14px",borderRadius:8,background:"var(--accent)",color:"var(--accent-fg)",border:"none",fontSize:12,fontWeight:600,cursor:"pointer"},children:[(0,n.jsx)(b.F,{size:13,weight:"bold","aria-hidden":"true"}),t("tasks.new")]})]}),(0,n.jsx)(u5,{open:E,onOpenChange:$,task:W,defaultProject:N?.projectRoot??a??e??null,projects:eR,prefillTitle:N?N.text.slice(0,80):void 0,prefillPrompt:N?N.text:void 0,onSubmit:async(e,t,n)=>{await ex(async()=>{let{createTaskApi:o}=await Promise.resolve().then(r.bind(r,23084)),{updateTaskApi:i}=await Promise.resolve().then(r.bind(r,23084));W?await i(W.id,e,{title:t,config:n}):await o({projectRoot:e,title:t,config:n})}),$(!1),A(null)}}),(0,n.jsx)(u6,{open:null!=P,onOpenChange:e=>{e||F(null)},task:eh,onViewSession:ef,onMerge:em,onEdit:e=>{L(e),$(!0)},onCancel:e=>{_(e),K(!0)},onRetry:e=>{J(e),X("retry"),Q(!0)},onRequeue:e=>{J(e),X("requeue"),Q(!0)},onComplete:e=>{et(e),en(!0)}}),(0,n.jsx)(u3,{open:O,onOpenChange:B,task:D}),(0,n.jsx)(uQ,{open:q,onOpenChange:K,task:U}),(0,n.jsx)(u8,{open:Z,onOpenChange:Q,task:V,kind:G}),(0,n.jsx)(u0,{open:er,onOpenChange:en,task:ee}),(0,n.jsx)(pe,{open:ea&&null!=eg,onOpenChange:ed,task:eg}),(0,n.jsx)(u9,{open:eo,onOpenChange:ei,projectRoot:a}),x?(0,p.createPortal)((0,n.jsx)("div",{ref:j,style:{position:"fixed",left:0,top:0,zIndex:999,pointerEvents:"none",width:x.width,willChange:"transform"},"aria-hidden":"true",children:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8,borderRadius:12,border:m?"1px solid var(--accent)":"1px solid var(--border)",background:"var(--bg-panel)",padding:12,boxShadow:"0 8px 24px rgba(0,0,0,0.2)",transform:"rotate(-1deg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:8},children:[(0,n.jsx)("span",{style:{minWidth:0,overflowWrap:"break-word",fontSize:13,fontWeight:500},children:x.task.title}),(0,n.jsx)(uG,{task:x.task})]}),m?(0,n.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:4,fontSize:11,fontWeight:600,color:"var(--accent)"},children:[(0,n.jsx)(uO.j,{size:11,weight:"bold","aria-hidden":"true"}),t("tasks.dropToStart")]}):null]})}),document.body):null]})}var pl=r(62235),pa=r(1022);function pd(){return!!window.__TAURI_INTERNALS__}let pc=null;function pu(){return pc||(pc=r.e(8518).then(r.bind(r,38518)).then(e=>e.getCurrentWindow())),pc}async function pp(e){let t=await pu();await e(t)}async function ph(){await pp(e=>e.minimize())}async function pg(){await pp(e=>e.toggleMaximize())}async function px(){await pp(e=>e.startDragging())}async function pf(){await pp(e=>e.close())}async function pm(){return(await pu()).isMaximized()}function pv(){let[e,t]=(0,o.useState)(null);return(0,o.useEffect)(()=>{pd()&&t(function(){if("u"<typeof navigator)return null;let e=navigator.platform||"";return/mac/i.test(e)?"macos":/win/i.test(e)?"windows":/linux/i.test(e)?"linux":null}())},[]),{platform:e,isDesktop:null!==e,isMacOS:"macos"===e,dragRegionProps:e?{"data-tauri-drag-region":!0}:{}}}let py="pi-web-island-pos";function pb(e,t,r,n,o,i){return{x:Math.min(Math.max(0,e),Math.max(0,r-o)),y:Math.min(Math.max(0,t),Math.max(0,n-i))}}let pk={display:"flex",alignItems:"center",justifyContent:"center",width:26,height:26,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",borderRadius:7,transition:"background 0.12s, color 0.12s"};function pj({onRefreshSession:e}={}){let{t:t}=(0,Y.s)(),{isDark:r}=eA(),{isDesktop:i,isMacOS:s}=pv(),l=i&&!s,[a,d]=(0,o.useState)(!1),[c,u]=(0,o.useState)(null),[p,h]=(0,o.useState)(null),g=(0,o.useRef)(null),x=(0,o.useRef)(null);(0,o.useEffect)(()=>{l&&pu().then(()=>void 0,e=>{throw pc=null,e}).catch(e=>{console.error("[DynamicIsland] window API preload failed:",e)})},[l]);let f=(0,o.useCallback)(e=>{e().catch(e=>{console.error("[DynamicIsland] window command failed:",e),u(String(e)),window.setTimeout(()=>u(null),4e3)})},[]),m=(0,o.useCallback)(()=>{window.location.reload()},[]);(0,o.useEffect)(()=>{if(!pd()||!l)return;let e=()=>{pm().then(d)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[l]),(0,o.useEffect)(()=>{if(l)try{let e=localStorage.getItem(py);if(e){let t=JSON.parse(e);"number"==typeof t.x&&"number"==typeof t.y&&h(pb(t.x,t.y,window.innerWidth,window.innerHeight,168,34))}}catch{}},[l]),(0,o.useEffect)(()=>{if(l&&p)try{localStorage.setItem(py,JSON.stringify(p))}catch{}},[p,l]);let[v,y]=(0,o.useState)(0);(0,o.useEffect)(()=>{if(!l)return;let e=()=>{y(window.innerWidth),h(e=>e?pb(e.x,e.y,window.innerWidth,window.innerHeight,168,34):e)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[l]);let b=(0,o.useCallback)(e=>{if(0!==e.button||e.target.closest?.("[data-island-btn]"))return;let t=g.current;if(!t)return;let r=t.getBoundingClientRect();x.current={startX:e.clientX,startY:e.clientY,origX:r.left,origY:r.top},e.currentTarget.setPointerCapture(e.pointerId)},[]),k=(0,o.useCallback)(e=>{let t=x.current;if(!t)return;let r=e.clientX-t.startX,n=e.clientY-t.startY;h(pb(t.origX+r,t.origY+n,window.innerWidth,window.innerHeight,168,34))},[]),j=(0,o.useCallback)(e=>{x.current=null;try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}},[]),w=(0,o.useCallback)(()=>pg().then(()=>{d(e=>!e)}),[]),S=(0,o.useCallback)(e=>{if(!x.current&&!e.target.closest?.("[data-island-btn]")){h(null);try{localStorage.removeItem(py)}catch{}}},[]);if(!l)return null;let C=v||window.innerWidth,T=null!==p?p.x:Math.max(0,C-168-14);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{ref:g,role:"toolbar","aria-label":t("desktop.islandLabel"),title:t("desktop.islandResetHint"),onPointerDown:b,onPointerMove:k,onPointerUp:j,onPointerCancel:j,onDoubleClick:S,onMouseDown:e=>e.stopPropagation(),onDoubleClickCapture:e=>e.stopPropagation(),style:{position:"fixed",top:null!==p?p.y:100,left:T,zIndex:700,display:"flex",alignItems:"center",gap:1,padding:"3px 5px",borderRadius:999,background:"color-mix(in srgb, var(--bg-panel) 88%, transparent)",border:"1px solid var(--border)",boxShadow:r?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",cursor:"grab",userSelect:"none",touchAction:"none"},children:[(0,n.jsx)("span",{"data-island-grip":!0,"aria-hidden":"true",title:t("desktop.islandDrag"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:12,height:26,flexShrink:0,marginRight:2,color:"var(--text-dim)",cursor:"grab"},children:(0,n.jsxs)("svg",{width:"6",height:"14",viewBox:"0 0 6 14",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"1.5",cy:"2",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"2",r:"1.2"}),(0,n.jsx)("circle",{cx:"1.5",cy:"7",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"7",r:"1.2"}),(0,n.jsx)("circle",{cx:"1.5",cy:"12",r:"1.2"}),(0,n.jsx)("circle",{cx:"4.5",cy:"12",r:"1.2"})]})}),e&&(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.refreshSession"),title:t("desktop.refreshSession"),onClick:()=>{try{e()}catch(e){console.error("[DynamicIsland] refresh session failed:",e)}},style:pk,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(pa.P,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.reloadPage"),title:t("desktop.reloadPage"),onClick:m,style:pk,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(z.S,{size:13,"aria-hidden":"true"})}),(0,n.jsx)("span",{"aria-hidden":"true",style:{width:1,height:18,flexShrink:0,background:"var(--border)",margin:"0 3px"}}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.minimize"),title:t("desktop.minimize"),onClick:()=>f(ph),style:pk,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:(0,n.jsx)("line",{x1:"1",y1:"5",x2:"9",y2:"5"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t(a?"desktop.restore":"desktop.maximize"),title:t(a?"desktop.restore":"desktop.maximize"),onClick:()=>f(w),style:pk,onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:a?(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:[(0,n.jsx)("rect",{x:"2",y:"0.5",width:"7.5",height:"7.5"}),(0,n.jsx)("path",{d:"M0.5 2.5 V9.5 H7.5"})]}):(0,n.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:(0,n.jsx)("rect",{x:"0.5",y:"0.5",width:"9",height:"9"})})}),(0,n.jsx)("button",{type:"button","data-island-btn":!0,"aria-label":t("desktop.close"),title:t("desktop.close"),onClick:()=>f(pf),style:pk,onMouseEnter:e=>{e.currentTarget.style.background="#e81123",e.currentTarget.style.color="#fff"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1",children:[(0,n.jsx)("line",{x1:"0",y1:"0",x2:"10",y2:"10"}),(0,n.jsx)("line",{x1:"10",y1:"0",x2:"0",y2:"10"})]})})]}),c&&(0,n.jsx)("div",{role:"alert",style:{position:"fixed",top:(null!==p?p.y:100)+34+6,left:T,zIndex:700,maxWidth:280,padding:"5px 10px",borderRadius:8,background:"var(--bg-panel)",border:"1px solid var(--status-error, #f85149)",color:"var(--status-error, #f85149)",fontSize:11,lineHeight:1.5,wordBreak:"break-all",boxShadow:r?"0 6px 24px rgba(0,0,0,0.45)":"0 6px 20px rgba(0,0,0,0.12)",pointerEvents:"none"},children:c})]})}function pw(){try{return window.localStorage}catch{return null}}let pS="pi-web:desktop-server-hint-seen";function pC(e=pw()){if(e)try{e.setItem(pS,"1")}catch{}}function pz(){let{t:e}=(0,Y.s)(),[t,r]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=!1;try{e=new URLSearchParams(window.location.search).has("piweb_connected")}catch{e=!1}e&&function(e=pw()){if(!e)return!1;try{return"1"!==e.getItem(pS)}catch{return!1}}()&&r(!0)},[]);let i=(0,o.useCallback)(()=>{pC(),r(!1)},[]),s=(0,o.useCallback)(()=>{pC(),r(!1),window.location.href="piweb-switch://manage"},[]);return t?(0,n.jsxs)("div",{role:"status",style:{position:"fixed",top:56,right:16,zIndex:700,width:288,padding:"14px 16px 14px",borderRadius:12,background:"var(--bg-panel)",border:"1px solid var(--border)",boxShadow:"0 12px 36px rgba(0,0,0,0.32)",color:"var(--text)"},children:[(0,n.jsx)("span",{"aria-hidden":"true",style:{position:"absolute",top:-6,right:28,width:10,height:10,background:"var(--bg-panel)",borderTop:"1px solid var(--border)",borderLeft:"1px solid var(--border)",transform:"rotate(45deg)"}}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:10},children:[(0,n.jsx)(N.X,{size:18,color:"var(--accent)",style:{flexShrink:0,marginTop:1}}),(0,n.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,n.jsx)("div",{style:{fontSize:13.5,fontWeight:600,lineHeight:1.45},children:e("desktop.serverHintTitle")}),(0,n.jsx)("p",{style:{margin:"6px 0 0",fontSize:12.5,lineHeight:1.65,color:"var(--text-muted)"},children:e("desktop.serverHintBody")})]}),(0,n.jsx)("button",{type:"button",onClick:i,"aria-label":e("desktop.serverHintDismiss"),title:e("desktop.serverHintDismiss"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:22,height:22,padding:0,flexShrink:0,background:"none",border:"none",cursor:"pointer",color:"var(--text-dim)"},children:(0,n.jsx)(g.X,{size:14,"aria-hidden":"true"})})]}),(0,n.jsx)("button",{type:"button",onClick:s,style:{marginTop:12,width:"100%",display:"flex",alignItems:"center",justifyContent:"center",gap:6,padding:"8px 12px",borderRadius:9,background:"var(--accent)",border:"none",color:"var(--accent-fg)",fontSize:13,fontWeight:600,cursor:"pointer"},children:e("desktop.serverHintAction")})]}):null}function pT({isDark:e,toggleTheme:t,translate:r}){let[i,s]=(0,o.useState)(!1);(0,o.useEffect)(()=>{s(!0)},[]);let l=r(i?e?"desktop.switchToLight":"desktop.switchToDark":"desktop.switchToLight");return(0,n.jsx)("button",{className:"app-no-drag",suppressHydrationWarning:!0,onClick:e=>{let r=e.currentTarget.getBoundingClientRect();t({x:r.left+r.width/2,y:r.top+r.height/2})},title:l,"aria-label":l,"aria-pressed":!i||e,style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:i?e?(0,n.jsx)(ec.b,{size:16,"aria-hidden":"true"}):(0,n.jsx)(ed.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(ec.b,{size:16,"aria-hidden":"true"})})}function pR({topBarRef:e,sidebarOpen:t,onSidebarToggle:r,isDark:i,toggleTheme:s,isMobile:l,showTasks:a,tasksBoardEnabled:d,onToggleTasks:c,systemPrompt:u,activeTopPanel:p,topPanelPos:h,sessionStats:g,selectedSession:x,contextUsage:m,copiedSessionField:v,onCopySessionField:y,rightPanelOpen:b,onToggleFilePanel:k,onRefreshSession:j,onOpenSettings:S,sessionTitle:C,onWorkspaceControlsHostChange:T,onTitleRightHostChange:R,desktopChrome:I,windowDrag:M}){let E,$,W,A,P,F,D,H,O,B,U,{t:_}=(0,Y.s)(),[q,K]=(0,o.useState)(!1);L(q,()=>K(!1));let[V,J]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{try{J(new URLSearchParams(window.location.search).has("piweb_connected"))}catch{J(!1)}},[]),(0,n.jsxs)(n.Fragment,{children:[V&&(0,n.jsx)(pz,{}),(0,n.jsxs)("div",{ref:e,className:"app-title-bar",...I?.dragRegionProps,...M,style:{display:"flex",alignItems:"center",flexShrink:0,borderBottom:"1px solid var(--border)",height:48,background:"var(--bg-panel)",position:"relative",zIndex:600,paddingLeft:76*!!I?.isMacOS},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",minWidth:0,height:"100%",flex:"0 1 auto",position:"relative",zIndex:1},children:[(0,n.jsx)("button",{className:"app-no-drag",onClick:r,title:t?_("desktop.hideSidebar"):_("desktop.showSidebar"),"aria-label":t?_("desktop.hideSidebar"):_("desktop.showSidebar"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,flexShrink:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:t?(0,n.jsx)(pl.V,{size:16,"aria-hidden":"true"}):(0,n.jsx)(w.B,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("div",{className:"app-no-drag",ref:T,style:{flex:"0 1 auto",minWidth:0,maxWidth:"min(60vw, 820px)",height:"100%",display:"flex",alignItems:"center",padding:"0 8px 0 0",overflow:"visible"}})]}),(0,n.jsxs)("div",{className:"app-title-drag",style:{...l?{position:"relative",flex:"1 1 auto",minWidth:0}:{position:"absolute",left:"var(--pi-titlebar-sidebar-offset, 0px)",right:0,top:0,bottom:0},display:"flex",alignItems:"center",justifyContent:l?"flex-start":"center",padding:l?"0 8px 0 4px":"0 12px",overflow:"hidden",userSelect:"none"},children:[C&&(0,n.jsx)("button",{type:"button",className:"app-no-drag",onClick:()=>{l&&K(!0)},style:{display:"block",flex:"0 1 auto",minWidth:0,maxWidth:l?"100%":"calc(100% - 320px)",fontSize:12,fontWeight:500,color:"var(--text-muted)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",background:"none",border:"none",cursor:"pointer",padding:"2px 6px",borderRadius:5},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.background="none"},children:C}),(0,n.jsx)("div",{className:"app-no-drag",ref:R,style:{flexShrink:0,display:"flex",alignItems:"center",marginLeft:4}})]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:3,minWidth:0,height:"100%",flexShrink:+!l,overflow:"hidden",marginLeft:"auto",position:"relative",zIndex:1},children:[!l&&d&&(0,n.jsx)("button",{className:"app-no-drag",onClick:c,title:a?_("desktop.hideTaskBoard"):_("desktop.showTaskBoard"),"aria-label":a?_("desktop.hideTaskBoard"):_("desktop.showTaskBoard"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:a?"var(--bg-selected)":"none",border:"none",color:a?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=a?"var(--bg-selected)":"none",e.currentTarget.style.color=a?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(eJ.x,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",onClick:k,title:b?_("desktop.hideFilePanel"):_("desktop.showFilePanel"),"aria-label":b?_("desktop.hideFilePanel"):_("desktop.showFilePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:b?"var(--bg-selected)":"none",border:"none",color:b?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background=b?"var(--bg-selected)":"none",e.currentTarget.style.color=b?"var(--text)":"var(--text-muted)"},children:(0,n.jsx)(pl.V,{size:16,"aria-hidden":"true",style:{transform:"scaleX(-1)"}})}),(0,n.jsx)(pT,{isDark:i,toggleTheme:s,translate:_}),V&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:()=>{window.location.href="piweb-switch://manage"},title:_("desktop.serverSwitch"),"aria-label":_("desktop.serverSwitch"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(N.X,{size:16,"aria-hidden":"true"})}),!V&&!l&&(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:j,title:_("desktop.refreshSession"),"aria-label":_("desktop.refreshSession"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(z.S,{size:16,"aria-hidden":"true"})}),(0,n.jsx)("button",{className:"app-no-drag",type:"button",onClick:S,title:_("desktop.settings"),"aria-label":_("desktop.settings"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"background 0.12s, color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--bg-hover)",e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.background="none",e.currentTarget.style.color="var(--text-muted)"},children:(0,n.jsx)(uD.O,{size:16,"aria-hidden":"true"})})]})]}),(0,n.jsx)(pj,{onRefreshSession:j}),p&&h&&(0,n.jsxs)("div",{style:{position:"fixed",top:h.top,left:h.left,width:h.width,maxHeight:`calc(100dvh - ${h.top}px)`,overflowY:"auto",zIndex:500},children:["system"===p&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:u?(0,n.jsx)("div",{style:{maxHeight:"min(600px, 75vh)",overflowY:"auto",padding:"12px 16px",color:"var(--text-muted)",fontSize:12,lineHeight:1.6,whiteSpace:"pre-wrap",fontFamily:"var(--font-mono)"},children:u}):""===u?(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:"System prompt is empty (tools are disabled)"}):(0,n.jsx)("div",{style:{padding:"10px 16px",fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:"Send a message to load the system prompt"})}),"session"===p&&(0,n.jsx)("div",{style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:g?(E=[...g.sessionName?[{label:_("desktop.name"),value:g.sessionName,copyField:null}]:[],{label:_("desktop.sessionInfoFile"),value:g.sessionFile??_("desktop.sessionInfoInMemory"),copyField:"file"},{label:_("desktop.sessionInfoId"),value:g.sessionId,copyField:"id"}],$=[[_("desktop.sessionInfoUser"),g.userMessages.toLocaleString()],[_("desktop.sessionInfoAssistant"),g.assistantMessages.toLocaleString()],[_("desktop.sessionInfoToolCalls"),g.toolCalls.toLocaleString()],[_("desktop.sessionInfoToolResults"),g.toolResults.toLocaleString()],[_("desktop.sessionInfoTotal"),g.totalMessages.toLocaleString()]],W=[[_("desktop.sessionInfoInput"),g.tokens.input.toLocaleString()],[_("desktop.sessionInfoOutput"),g.tokens.output.toLocaleString()],...g.tokens.cacheRead>0?[[_("desktop.sessionInfoCacheRead"),g.tokens.cacheRead.toLocaleString()]]:[],...g.tokens.cacheWrite>0?[[_("desktop.sessionInfoCacheWrite"),g.tokens.cacheWrite.toLocaleString()]]:[],[_("desktop.sessionInfoTotal"),g.tokens.total.toLocaleString()]],A=m??g.contextUsage,F=[...g.cost>0?[[_("desktop.sessionInfoCost"),`$${g.cost.toFixed(4)}`]]:[],...A?.contextWindow?[[_("desktop.sessionInfoContext"),`${null!==A.percent?`${A.percent.toFixed(1)}%`:"?"} / ${(P=A.contextWindow)>=1e6?`${(P/1e6).toFixed(1)}M`:P>=1e3?`${(P/1e3).toFixed(0)}k`:String(P)}`]]:[]],D=(e,t,r="left",o=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content max-content":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,i])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:o?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:i})]},`${e}:${t}`))})]}),H=(e,t)=>{let r=v===e;return(0,n.jsx)("button",{type:"button",title:r?_("desktop.copied"):_({file:"desktop.copyFilePath",id:"desktop.copySessionId",projectDir:"desktop.copyProjectDir",gitBranch:"desktop.copyGitBranch",gitWorktree:"desktop.copyGitWorktree"}[e]),onClick:()=>y(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)(f.J,{size:12,"aria-hidden":"true"}):(0,n.jsx)(sA.Q,{size:12,"aria-hidden":"true"})})},O=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:_("desktop.sessionInfoTitle")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:E.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?H(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),U=(B=[...x?[{label:_("desktop.projectDir"),value:x.projectRoot??x.cwd,copyField:"projectDir"}]:[],...x?.branch?[{label:_("desktop.gitBranch"),value:x.branch,copyField:"gitBranch"}]:[],...x?.isWorktree?[{label:_("desktop.gitWorktree"),value:x.cwd,copyField:"gitWorktree"}]:[]]).length>0?(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:_("desktop.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:B.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?H(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:l?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:l?16:20,minWidth:0},children:[O,U]}),D(_("desktop.sessionInfoMessages"),$),D(_("desktop.sessionInfoTokens"),[...W,...F],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:_("desktop.sendMessageForSessionInfo")})})]}),q&&C&&(0,n.jsx)("div",{className:"app-no-drag",onClick:()=>K(!1),style:{position:"fixed",inset:0,zIndex:3e3,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:48,background:"rgba(0,0,0,0.35)",cursor:"pointer"},children:(0,n.jsxs)("div",{role:"dialog","aria-label":C,style:{position:"relative",maxWidth:"min(560px, calc(100vw - 32px))",maxHeight:"min(60vh, 400px)",overflow:"auto",background:"var(--bg-panel)",border:"1px solid var(--border)",borderRadius:12,boxShadow:"0 16px 40px rgba(0,0,0,0.3)",padding:"14px 40px 14px 18px",fontSize:13,lineHeight:1.6,color:"var(--text)",wordBreak:"break-word",whiteSpace:"pre-wrap",cursor:"default"},children:[C,(0,n.jsx)("button",{type:"button","aria-label":_("i18n.close"),title:_("i18n.close"),onClick:e=>{e.stopPropagation(),K(!1)},style:{position:"sticky",top:0,float:"right",marginLeft:8,display:"inline-flex",alignItems:"center",justifyContent:"center",width:24,height:24,padding:0,border:"none",borderRadius:5,background:"none",color:"var(--text-muted)",cursor:"pointer",fontSize:14,lineHeight:1},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)",e.currentTarget.style.background="none"},children:"✕"})]})})]})}function pI({status:e}){return"running"===e||"starting"===e?(0,n.jsxs)("svg",{className:"animate-spin",width:"13",height:"13",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2",opacity:"0.25"}),(0,n.jsx)("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})]}):"queued"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M12 7v5l3 2"})]}):"failed"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m9 9 6 6M15 9l-6 6"})]}):"aborted"===e||"interrupted"===e?(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"M9 9h6v6H9z"})]}):(0,n.jsxs)("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,n.jsx)("path",{d:"m8 12 3 3 5-6"})]})}function pM({session:e,main:t,selected:r,running:o,onSelect:i}){let{locale:s,t:l}=(0,Y.s)(),a=e.relation?.kind==="subagent"?e.relation:null,d=o?"running":a?.status??"completed",c=t?l("agentSwitcher.main"):a?.description||os(e),u=t?os(e):`${a?.profile??l("agentSwitcher.subagent")} \xb7 ${function(e,t){let r=new Date(e).getTime();if(!Number.isFinite(r))return"";let n=Math.round((r-Date.now())/1e3),o=new Intl.RelativeTimeFormat(t,{numeric:"auto"});if(60>Math.abs(n))return o.format(n,"second");let i=Math.round(n/60);if(60>Math.abs(i))return o.format(i,"minute");let s=Math.round(i/60);return 24>Math.abs(s)?o.format(s,"hour"):o.format(Math.round(s/24),"day")}(e.modified,s)}`;return(0,n.jsxs)("button",{type:"button",role:"option","aria-selected":r,onClick:i,style:{width:"100%",minHeight:56,display:"grid",gridTemplateColumns:"28px minmax(0, 1fr) auto",alignItems:"center",gap:9,padding:"7px 12px",border:"none",borderBottom:"1px solid var(--border)",borderLeft:r?"2px solid var(--accent)":"2px solid transparent",background:r?"var(--bg-selected)":"transparent",color:"var(--text)",cursor:"pointer",textAlign:"left"},onMouseEnter:e=>{r||(e.currentTarget.style.background="var(--bg-hover)")},onMouseLeave:e=>{r||(e.currentTarget.style.background="transparent")},children:[(0,n.jsx)("span",{style:{width:28,height:28,display:"grid",placeItems:"center",color:t?"var(--text-muted)":"var(--accent)"},children:t?(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"8",r:"4"}),(0,n.jsx)("path",{d:"M4 21a8 8 0 0 1 16 0"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"5",y:"7",width:"14",height:"11",rx:"2"}),(0,n.jsx)("path",{d:"M9 11h.01M15 11h.01M9 15h6M12 7V4M10 4h4"})]})}),(0,n.jsxs)("span",{style:{minWidth:0},children:[(0,n.jsx)("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:12,fontWeight:r?600:500},title:c,children:c}),(0,n.jsx)("span",{style:{display:"block",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:"var(--text-dim)",fontSize:11},title:u,children:u})]}),(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",gap:6,color:t&&!o?"var(--text-dim)":"running"===d||"starting"===d?"var(--accent)":"queued"===d?"var(--text-dim)":"completed"===d?"var(--status-success)":"failed"===d?"var(--status-error)":"aborted"===d?"var(--status-warning)":"var(--text-dim)",fontSize:11,whiteSpace:"nowrap"},children:t&&!o?r?l("agentSwitcher.current"):null:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(pI,{status:d}),(0,n.jsx)("span",{children:l(`agentSwitcher.status.${d}`)})]})})]})}function pE({rootSession:e,subagents:t,selectedSessionId:r,runningSessionIds:i,onSelectSession:s}){let{t:l}=(0,Y.s)(),[a,d]=(0,o.useState)(""),c=(0,o.useMemo)(()=>[...t].sort((e,t)=>{let r=i.has(e.id);return r!==i.has(t.id)?r?-1:1:t.modified.localeCompare(e.modified)}),[i,t]),u=a.trim().toLowerCase(),p=u?c.filter(e=>{let t=e.relation?.kind==="subagent"?e.relation:null;return[t?.description,t?.profile,e.name,e.firstMessage].some(e=>e?.toLowerCase().includes(u))}):c,h=t.filter(e=>i.has(e.id)).length;return(0,n.jsx)("div",{role:"listbox","aria-label":l("agentSwitcher.title"),style:{background:"var(--bg-panel)",borderLeft:"1px solid var(--border)",borderRight:"1px solid var(--border)",borderBottom:"1px solid var(--border)",borderRadius:"0 0 6px 6px",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",overflow:"hidden"},children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{minHeight:44,display:"flex",alignItems:"center",gap:8,padding:"7px 12px",borderBottom:"1px solid var(--border)"},children:[(0,n.jsx)("strong",{style:{fontSize:12,fontWeight:600},children:l("agentSwitcher.title")}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",fontSize:11},children:l("agentSwitcher.count",{count:t.length})}),h>0&&(0,n.jsx)("span",{style:{marginLeft:"auto",color:"var(--accent)",fontSize:11},children:l("agentSwitcher.runningCount",{count:h})})]}),t.length>8&&(0,n.jsx)("div",{style:{padding:8,borderBottom:"1px solid var(--border)"},children:(0,n.jsx)("input",{type:"search",value:a,onChange:e=>d(e.target.value),placeholder:l("agentSwitcher.search"),"aria-label":l("agentSwitcher.search"),style:{width:"100%",height:32,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:"var(--bg)",color:"var(--text)",fontSize:12,outline:"none"}})}),(0,n.jsxs)("div",{style:{maxHeight:"min(58dvh, 480px)",overflowY:"auto"},children:[(0,n.jsx)(pM,{session:e,main:!0,selected:e.id===r,running:i.has(e.id),onSelect:()=>s(e)}),p.map(e=>(0,n.jsx)(pM,{session:e,selected:e.id===r,running:i.has(e.id),onSelect:()=>s(e)},e.id)),0===p.length&&(0,n.jsx)("div",{style:{padding:"22px 12px",color:"var(--text-dim)",fontSize:12,textAlign:"center"},children:l("agentSwitcher.noMatches")})]})]})})}function p$({loading:e,prompt:t,translate:r}){return(0,n.jsxs)("section",{className:"system-prompt-panel","aria-label":r("system.prompt"),children:[(0,n.jsx)("div",{className:"system-prompt-scroll",children:t?(0,n.jsx)("div",{className:"system-prompt-text",children:t}):(0,n.jsx)("div",{className:"system-prompt-empty",children:r(""===t?"system.empty":e?"system.loading":"system.load")})}),(0,n.jsx)("style",{children:`
198
198
  .system-prompt-panel {
199
199
  display: flex;
@@ -234,4 +234,4 @@ ${r}`):i=r;let h=i,g=o?.map(e=>({type:"image",source:{type:"base64",media_type:e
234
234
  box-shadow: none;
235
235
  }
236
236
  }
237
- `}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100dvh",overflow:"hidden",background:"var(--bg)","--pi-titlebar-sidebar-offset":`${M||!ef?0:tA.width}px`},children:[(0,n.jsx)(pR,{topBarRef:eI,sidebarOpen:ef,onSidebarToggle:tx,isDark:z,toggleTheme:T,isMobile:M,showTasks:ry,tasksBoardEnabled:rj,onToggleTasks:rk,systemPrompt:eK,activeTopPanel:e5,topPanelPos:e8,sessionStats:eY,selectedSession:W,contextUsage:e2,copiedSessionField:eZ,onCopySessionField:e1,rightPanelOpen:ev,onToggleFilePanel:()=>ey(e=>!e),onRefreshSession:()=>Q(e=>e+1),onOpenSettings:()=>rR("models"),sessionTitle:rg,onWorkspaceControlsHostChange:e$,onTitleRightHostChange:eL,desktopChrome:eF,windowDrag:eD}),rm&&ea?.requiresTrust&&!ea.trusted&&(0,n.jsxs)("button",{type:"button",onClick:()=>{ex(null),eu(!0)},title:I("desktop.projectResourcesRestricted"),"aria-label":I("desktop.projectResourcesRestricted"),style:{position:"fixed",top:60,right:M?12:20,zIndex:700,display:"inline-flex",alignItems:"center",gap:7,padding:"8px 11px",border:"1px solid color-mix(in srgb, var(--accent-orange) 52%, var(--border))",borderRadius:7,background:"color-mix(in srgb, var(--accent-orange) 11%, var(--bg-panel))",color:"var(--accent-orange)",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.16)",cursor:"pointer",fontSize:12,fontWeight:600},children:[(0,n.jsx)("span",{"aria-hidden":"true",children:"⚠"}),I("desktop.trustProject")]}),(0,n.jsxs)("div",{style:{"--right-panel-width":`${tP.width}px`,flex:1,display:"flex",overflow:"hidden",minWidth:0,position:"relative"},children:[(0,n.jsx)("div",{className:`sidebar-overlay-backdrop${eC?"":" sidebar-mobile-pending"}`,onClick:()=>em(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!ef,pointerEvents:ef?"auto":"none",transition:"opacity 0.25s ease"}}),(0,n.jsx)("div",{ref:tA.panelRef,id:"session-sidebar",inert:ej,className:`sidebar-container${ef?" sidebar-open":" sidebar-closed"}${eC?"":" sidebar-mobile-pending"}${tA.isResizing?" sidebar-resizing":""}`,style:{"--sidebar-width":`${tA.width}px`,background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,zIndex:200},children:rI}),ef&&(0,n.jsx)("div",{...tA.separatorProps,inert:ej,"aria-controls":"session-sidebar",className:`panel-resize-handle sidebar-resize-handle${tA.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar",title:`${I("layout.resizeSidebar")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{inert:ej,style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,n.jsxs)("div",{ref:eM,style:{flexShrink:0,background:"var(--bg-panel)"},children:[!M&&rM(!1),(0,n.jsxs)("div",{style:{display:M?"flex":"none",alignItems:"center",position:"relative",borderBottom:"1px solid var(--border)",height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)"},children:[(0,n.jsx)("button",{onClick:tx,title:ef?I("sidebar.hide"):I("sidebar.show"),"aria-label":ef?I("sidebar.hide"):I("sidebar.show"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",borderRight:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:ef?(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,n.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,n.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,n.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),M&&(0,n.jsxs)("div",{ref:eT,"data-mobile-toolbar":"true",style:{position:"relative",display:"flex",alignItems:"stretch",flex:1,minWidth:0,height:"100%"},children:[E&&(0,n.jsx)("button",{type:"button",onClick:tf,title:ew?I("chat.close"):I("chat.moreControls"),"aria-label":ew?I("chat.close"):I("chat.moreControls"),"aria-controls":"mobile-toolbar-actions","aria-expanded":ew,"data-mobile-toolbar-more":"true",style:{position:"relative",zIndex:ew?21:void 0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:ew?"var(--bg-selected)":"none",border:"none",borderRight:"1px solid var(--border)",color:ew?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:ew?(0,n.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"5",x2:"19",y2:"19"}),(0,n.jsx)("line",{x1:"19",y1:"5",x2:"5",y2:"19"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),!E&&rE(!0),(e=>{if(!e&&(!rm||!eY&&!e2))return null;let t=eY?.tokens,r=eY?.cost??0,o=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e),i=r>0?r>=.01?`$${r.toFixed(2)}`:"<$0.01":null,s="var(--text-muted)",l=null,a=null;if(e2?.contextWindow){let e=e2.percent;null!==e&&e>90?s="#ef4444":null!==e&&e>70&&(s="rgba(234,179,8,0.95)"),l=null!==e?`${e.toFixed(0)}% / ${o(e2.contextWindow)}`:`? / ${o(e2.contextWindow)}`,a=null!==e?`${e.toFixed(0)}%`:null}let d=[];if(t&&(d.push(`in: ${t.input.toLocaleString(R)}`),d.push(`out: ${t.output.toLocaleString(R)}`),d.push(`cache read: ${t.cacheRead.toLocaleString(R)}`),d.push(`cache write: ${t.cacheWrite.toLocaleString(R)}`),r>0&&d.push(`cost: $${r.toFixed(4)}`)),e2?.contextWindow){let e=e2.percent;d.push(`context: ${null!==e?e.toFixed(1)+"%":"unknown"} of ${e2.contextWindow.toLocaleString()} tokens`)}let c=d.join(" | "),u=e&&E&&ew,p=!!(t&&(t.input>0||t.output>0)||i||a);return(0,n.jsx)("button",{type:"button",onClick:()=>e9("session"),disabled:!rm||u,tabIndex:u?-1:void 0,title:c||I("session.title"),"aria-label":I("session.title"),"aria-pressed":"session"===e5,"aria-hidden":!!u||void 0,className:e?"mobile-session-stats":void 0,"data-mobile-toolbar-stats":e?"true":void 0,style:{marginLeft:e?0:"auto",display:"flex",alignItems:"center",justifyContent:"flex-end",flex:e?1:void 0,minWidth:0,gap:e?7:10,paddingLeft:e?6:12,paddingRight:e?6:12,height:"100%",overflow:"hidden",visibility:u?"hidden":"visible",pointerEvents:u?"none":"auto",background:"session"===e5?"var(--bg-selected)":"none",border:"none",borderTop:"session"===e5?"2px solid var(--accent)":"2px solid transparent",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:rm?"pointer":"default",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{rm&&!u&&(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="session"===e5?"var(--text)":"var(--text-muted)"},children:e?(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),o(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),o(t.output)]}),i&&(0,n.jsx)("span",{className:"mobile-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:i}),a&&(0,n.jsx)("span",{style:{color:s,flexShrink:0},children:a}),!p&&rm&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-dim)"},children:I("session.title")})]}):(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),o(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),o(t.output)]}),t&&t.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,n.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),o(t.cacheRead)]}),i&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:i}),l&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:s},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),l]})]})})})(!0),(t=E&&ew,(0,n.jsx)("button",{type:"button",onClick:tm,disabled:t,tabIndex:t?-1:void 0,"aria-controls":"file-panel","aria-expanded":ev,"aria-hidden":!!t||void 0,title:ev?I("files.hidePanel"):I("files.showPanel"),"aria-label":ev?I("files.hidePanel"):I("files.showPanel"),"data-mobile-toolbar-file":"true",style:{marginLeft:0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,visibility:t?"hidden":"visible",pointerEvents:t?"none":"auto",background:ev?"var(--bg-selected)":"none",border:"none",borderLeft:"1px solid var(--border)",color:ev?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{t||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color=ev?"var(--text)":"var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})),E&&ew&&(0,n.jsx)("div",{id:"mobile-toolbar-actions",role:"toolbar","aria-label":I("chat.moreControls"),"data-mobile-toolbar-actions":"true",style:{position:"absolute",top:0,right:0,bottom:0,left:36,zIndex:20,display:"flex",alignItems:"stretch",background:"color-mix(in srgb, var(--bg-panel) 94%, var(--bg))",boxShadow:"4px 0 18px rgba(0,0,0,0.12)",backdropFilter:"blur(10px)"},children:rE(!0)})]}),M&&eq&&(0,n.jsx)(cI,{tree:eH,activeLeafId:eB,onLeafChange:t8,inline:!0,compact:!0,containerRef:eI,open:"branches"===e5,onToggle:()=>e9("branches"),hasSession:rm,hideInlineButton:!0}),M&&e5&&e8&&(0,n.jsxs)("div",{style:{position:"fixed",top:e8.top,left:e8.left,width:e8.width,maxHeight:`calc(100dvh - ${e8.top}px)`,overflowY:"auto",zIndex:500},children:["agents"===e5&&F&&W&&(0,n.jsx)(pE,{rootSession:F.root,subagents:F.subagents,selectedSessionId:W.id,runningSessionIds:H,onSelectSession:t5}),"system"===e5&&(0,n.jsx)(p$,{loading:ts,prompt:eK,translate:I}),"tools"===e5&&(0,n.jsx)(or,{loading:ts,tools:to,translate:I}),"session"===e5&&(0,n.jsx)("div",{className:"session-info-popover",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:eY?(r=eY.totalActiveMs??0,d=[...eY.sessionName?[{label:I("session.name"),value:eY.sessionName,copyField:null}]:[],{label:I("session.file"),value:eY.sessionFile??I("session.inMemory"),copyField:"file"},{label:I("session.id"),value:eY.sessionId,copyField:"id"},...r>0?[{label:I("session.totalActive"),value:(e=>{if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${o}s`:`${o}s`})(r),copyField:null}]:[]],c=[...W?[{label:I("session.projectDir"),value:W.projectRoot??W.cwd,copyField:"projectDir"}]:[],...W?.branch?[{label:I("session.gitBranch"),value:W.branch,copyField:"gitBranch"}]:[],...W?.isWorktree?[{label:I("session.gitWorktree"),value:W.cwd,copyField:"gitWorktree"}]:[]],u=[[I("session.user"),eY.userMessages.toLocaleString(R)],[I("session.assistant"),eY.assistantMessages.toLocaleString(R)],[I("session.toolCalls"),eY.toolCalls.toLocaleString(R)],[I("session.toolResults"),eY.toolResults.toLocaleString(R)],[I("session.total"),eY.totalMessages.toLocaleString(R)]],p=[[I("session.input"),eY.tokens.input.toLocaleString(R)],[I("session.output"),eY.tokens.output.toLocaleString(R)],...eY.tokens.cacheRead>0?[[I("session.cacheRead"),eY.tokens.cacheRead.toLocaleString(R)]]:[],...eY.tokens.cacheWrite>0?[[I("session.cacheWrite"),eY.tokens.cacheWrite.toLocaleString(R)]]:[],[I("session.total"),eY.tokens.total.toLocaleString(R)]],h=e2??eY.contextUsage,x=[...eY.cost>0?[[I("session.cost"),`$${eY.cost.toFixed(4)}`]]:[],...h?.contextWindow?[[I("session.context"),`${null!==h.percent?`${h.percent.toFixed(1)}%`:"?"} / ${(g=h.contextWindow)>=1e6?`${(g/1e6).toFixed(1)}M`:g>=1e3?`${(g/1e3).toFixed(0)}k`:String(g)}`]]:[],...eY.tokens.cacheRead+eY.tokens.cacheWrite>0&&eY.tokens.cacheRead+eY.tokens.cacheWrite+eY.tokens.input>0?[[I("session.cacheHitRate"),`${(eY.tokens.cacheRead/(eY.tokens.cacheRead+eY.tokens.cacheWrite+eY.tokens.input)*100).toFixed(1)}%`]]:[]],f=(e,t,r="left",o=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content max-content":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,i])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:o?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:i})]},`${e}:${t}`))})]}),m={file:"session.copyFile",id:"session.copyId",projectDir:"session.copyProjectDir",gitBranch:"session.copyGitBranch",gitWorktree:"session.copyGitWorktree"},v=(e,t)=>{let r=eZ===e;return(0,n.jsx)("button",{type:"button",title:r?I("session.copied"):I(m[e]),onClick:()=>e1(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},y=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.infoSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:d.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),b=c.length>0?(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:c.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:M?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:M?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:M?16:20},children:[y,b]}),f(I("session.messages"),u),f(I("session.tokens"),[...p,...x],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:I("session.load")})})]})]}),M&&rM(!0)]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:ry&&rj?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(pi,{}),(0,n.jsx)(ps,{activeProject:t_??void 0})]}):rm?(0,n.jsx)(ut,{session:W,newSessionCwd:rf,onAgentEnd:ri,onSessionCreated:rn,onSessionForked:ro,modelsRefreshKey:es,chatInputRef:eR,tasksBoardEnabled:rj,onSystemPromptChange:eJ,onSessionStatsChange:eX,onOpenSession:tM,onOpenSubagent:rc,subagentRuns:rd,onSessionStatsPanelOpen:tg,onContextUsageChange:e4,onOpenFile:ra,onWorkspaceControlsHostChange:eP,onViewFullHistory:rx,systemPrompt:eK},Z):"validating"===tK?(0,n.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:I("desktop.openingWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd})]}):"error"===tK?(0,n.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--status-error)"},children:I("desktop.unableToOpenWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd}),(0,n.jsx)("div",{style:{maxWidth:720,fontSize:12},children:tJ})]}):rS?t_?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:I("desktop.selectSessionFromSidebar")}):(0,n.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,n.jsx)(i.n,{size:44,color:"var(--accent)","aria-hidden":"true",style:{opacity:.7,flexShrink:0}}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:I("desktop.getStarted")}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),I("desktop.selectProjectDirectory"),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),I("desktop.addModelsFromBottom")]})]})]}):null})]}),ev&&(0,n.jsx)("div",{...tP.separatorProps,inert:ej,"aria-controls":"file-panel",className:`panel-resize-handle right-panel-resize-handle${tP.isResizing?" is-resizing":""}`,"data-resize-handle":"right-panel",title:`${I("layout.resizeFilePanel")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{ref:tP.panelRef,id:"file-panel",className:`right-panel-container${ev?" right-panel-open":" right-panel-closed"}${ej?" right-panel-full-width":""}${tP.isResizing?" right-panel-resizing":""}`,style:{display:"flex",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",height:36},children:[(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,n.jsx)(uE,{tabs:ty,activeTabId:tk??"",onSelectTab:tj,onCloseTab:ru})}),(0,n.jsx)("div",{style:{width:1,height:18,flexShrink:0,background:"var(--border)",marginRight:6},"aria-hidden":"true"}),(0,n.jsx)("button",{type:"button",className:"file-panel-expand-button",onClick:tv,"aria-controls":"file-panel","aria-pressed":ej,title:I(ej?"files.restorePanelWidth":"files.expandPanel"),"aria-label":I(ej?"files.restorePanelWidth":"files.expandPanel"),children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:ej?"M9 3v6H3m12-6v6h6M9 21v-6H3m12 6v-6h6M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6":"M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6"})})}),(0,n.jsxs)("button",{type:"button",onClick:()=>tC(e=>!e),"aria-controls":"file-panel","aria-pressed":tS,title:I("agentSwitcher.title"),"aria-label":I("agentSwitcher.title"),style:{display:"inline-flex",alignItems:"center",gap:5,flexShrink:0,height:28,marginRight:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:tS?"var(--bg-selected)":"transparent",color:tS?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:11,whiteSpace:"nowrap"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),I("agentSwitcher.title")]}),(0,n.jsx)("button",{type:"button",onClick:()=>ey(!1),"aria-controls":"file-panel","aria-expanded":ev,title:I("files.hidePanel"),"aria-label":I("files.hidePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"var(--bg-selected)",border:"none",borderLeft:"1px solid var(--border)",color:"var(--text)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:tS?(k=p_(tz,W?.id))?(0,n.jsx)(pE,{rootSession:k.root,subagents:k.subagents,selectedSessionId:W?.id??"",runningSessionIds:tR,onSelectSession:e=>{tC(!1),t3.current(e)}}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:I("agentSwitcher.noFamily")}):rz?.kind==="subagent"&&rz.sessionId?(0,n.jsx)(uM,{sessionId:rz.sessionId,label:rz.label,running:tR.has(rz.sessionId),onOpenFile:ra}):rz?.filePath?(0,n.jsx)(uR,{filePath:rz.filePath,cwd:t_??void 0,sourceSessionId:rz.sourceSessionId,initialDisplayMode:rz.initialDisplayMode,initialPage:rz.page,initialState:rz.viewerState,onOpenFile:(e,t)=>rl(e,oL(e),{sourceSessionId:rz.sourceSessionId,page:t}),onFileSaved:()=>et(e=>e+1)}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:"No file open"})})]})]}),ec&&rv&&(0,n.jsx)(pW,{cwd:rv,busy:ep,error:eg,onCancelAction:()=>{ep||eu(!1)},onConfirmAction:()=>void rC()}),er&&(0,n.jsx)(op,{initialTab:eo,cwd:rT,sessionId:W?.id??null,onCloseAction:()=>{en(!1),el(e=>e+1)},onModelsSavedAction:()=>el(e=>e+1),onSessionReloadedAction:()=>Q(e=>e+1),onSessionsChanged:()=>X(e=>e+1)})]})]})}},79023:(e,t,r)=>{Promise.resolve().then(r.bind(r,40888)),Promise.resolve().then(r.bind(r,32981))}},e=>{e.O(0,[7330,7650,2981,8441,3794,7358],()=>e(e.s=79023)),_N_E=e.O()}]);
237
+ `}),(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100dvh",overflow:"hidden",background:"var(--bg)","--pi-titlebar-sidebar-offset":`${M||!ef?0:tA.width}px`},children:[(0,n.jsx)(pR,{topBarRef:eI,sidebarOpen:ef,onSidebarToggle:tx,isDark:z,toggleTheme:T,isMobile:M,showTasks:ry,tasksBoardEnabled:rj,onToggleTasks:rk,systemPrompt:eK,activeTopPanel:e5,topPanelPos:e8,sessionStats:eY,selectedSession:W,contextUsage:e2,copiedSessionField:eZ,onCopySessionField:e1,rightPanelOpen:ev,onToggleFilePanel:()=>ey(e=>!e),onRefreshSession:()=>Q(e=>e+1),onOpenSettings:()=>rR("models"),sessionTitle:rg,onWorkspaceControlsHostChange:e$,onTitleRightHostChange:eL,desktopChrome:eF,windowDrag:eD}),rm&&ea?.requiresTrust&&!ea.trusted&&(0,n.jsxs)("button",{type:"button",onClick:()=>{ex(null),eu(!0)},title:I("desktop.projectResourcesRestricted"),"aria-label":I("desktop.projectResourcesRestricted"),style:{position:"fixed",top:60,right:M?12:20,zIndex:700,display:"inline-flex",alignItems:"center",gap:7,padding:"8px 11px",border:"1px solid color-mix(in srgb, var(--accent-orange) 52%, var(--border))",borderRadius:7,background:"color-mix(in srgb, var(--accent-orange) 11%, var(--bg-panel))",color:"var(--accent-orange)",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.16)",cursor:"pointer",fontSize:12,fontWeight:600},children:[(0,n.jsx)("span",{"aria-hidden":"true",children:"⚠"}),I("desktop.trustProject")]}),(0,n.jsxs)("div",{style:{"--right-panel-width":`${tP.width}px`,flex:1,display:"flex",overflow:"hidden",minWidth:0,position:"relative"},children:[(0,n.jsx)("div",{className:`sidebar-overlay-backdrop${eC?"":" sidebar-mobile-pending"}`,onClick:()=>em(!1),style:{position:"fixed",inset:0,zIndex:199,background:"rgba(0,0,0,0.4)",opacity:+!!ef,pointerEvents:ef?"auto":"none",transition:"opacity 0.25s ease"}}),(0,n.jsx)("div",{ref:tA.panelRef,id:"session-sidebar",inert:ej,className:`sidebar-container${ef?" sidebar-open":" sidebar-closed"}${eC?"":" sidebar-mobile-pending"}${tA.isResizing?" sidebar-resizing":""}`,style:{"--sidebar-width":`${tA.width}px`,background:"var(--bg-panel)",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",flexShrink:0,zIndex:200},children:rI}),ef&&(0,n.jsx)("div",{...tA.separatorProps,inert:ej,"aria-controls":"session-sidebar",className:`panel-resize-handle sidebar-resize-handle${tA.isResizing?" is-resizing":""}`,"data-resize-handle":"sidebar",title:`${I("layout.resizeSidebar")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{inert:ej,style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:0},children:[(0,n.jsxs)("div",{ref:eM,style:{flexShrink:0,background:"var(--bg-panel)"},children:[!M&&rM(!1),(0,n.jsxs)("div",{style:{display:"none",alignItems:"center",position:"relative",borderBottom:"1px solid var(--border)",height:"calc(36px + env(safe-area-inset-top))",paddingTop:"env(safe-area-inset-top)"},children:[(0,n.jsx)("button",{onClick:tx,title:ef?I("sidebar.hide"):I("sidebar.show"),"aria-label":ef?I("sidebar.hide"):I("sidebar.show"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"none",border:"none",borderRight:"1px solid var(--border)",color:"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--text)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text-muted)"},children:ef?(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"9",y1:"3",x2:"9",y2:"21"})]}):(0,n.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:[(0,n.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,n.jsx)("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),(0,n.jsx)("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),M&&(0,n.jsxs)("div",{ref:eT,"data-mobile-toolbar":"true",style:{position:"relative",display:"flex",alignItems:"stretch",flex:1,minWidth:0,height:"100%"},children:[E&&(0,n.jsx)("button",{type:"button",onClick:tf,title:ew?I("chat.close"):I("chat.moreControls"),"aria-label":ew?I("chat.close"):I("chat.moreControls"),"aria-controls":"mobile-toolbar-actions","aria-expanded":ew,"data-mobile-toolbar-more":"true",style:{position:"relative",zIndex:ew?21:void 0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:ew?"var(--bg-selected)":"none",border:"none",borderRight:"1px solid var(--border)",color:ew?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},children:ew?(0,n.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"5",x2:"19",y2:"19"}),(0,n.jsx)("line",{x1:"19",y1:"5",x2:"5",y2:"19"})]}):(0,n.jsxs)("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"5",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1.5"}),(0,n.jsx)("circle",{cx:"19",cy:"12",r:"1.5"})]})}),!E&&rE(!0),(e=>{if(!e&&(!rm||!eY&&!e2))return null;let t=eY?.tokens,r=eY?.cost??0,o=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}k`:String(e),i=r>0?r>=.01?`$${r.toFixed(2)}`:"<$0.01":null,s="var(--text-muted)",l=null,a=null;if(e2?.contextWindow){let e=e2.percent;null!==e&&e>90?s="#ef4444":null!==e&&e>70&&(s="rgba(234,179,8,0.95)"),l=null!==e?`${e.toFixed(0)}% / ${o(e2.contextWindow)}`:`? / ${o(e2.contextWindow)}`,a=null!==e?`${e.toFixed(0)}%`:null}let d=[];if(t&&(d.push(`in: ${t.input.toLocaleString(R)}`),d.push(`out: ${t.output.toLocaleString(R)}`),d.push(`cache read: ${t.cacheRead.toLocaleString(R)}`),d.push(`cache write: ${t.cacheWrite.toLocaleString(R)}`),r>0&&d.push(`cost: $${r.toFixed(4)}`)),e2?.contextWindow){let e=e2.percent;d.push(`context: ${null!==e?e.toFixed(1)+"%":"unknown"} of ${e2.contextWindow.toLocaleString()} tokens`)}let c=d.join(" | "),u=e&&E&&ew,p=!!(t&&(t.input>0||t.output>0)||i||a);return(0,n.jsx)("button",{type:"button",onClick:()=>e9("session"),disabled:!rm||u,tabIndex:u?-1:void 0,title:c||I("session.title"),"aria-label":I("session.title"),"aria-pressed":"session"===e5,"aria-hidden":!!u||void 0,className:e?"mobile-session-stats":void 0,"data-mobile-toolbar-stats":e?"true":void 0,style:{marginLeft:e?0:"auto",display:"flex",alignItems:"center",justifyContent:"flex-end",flex:e?1:void 0,minWidth:0,gap:e?7:10,paddingLeft:e?6:12,paddingRight:e?6:12,height:"100%",overflow:"hidden",visibility:u?"hidden":"visible",pointerEvents:u?"none":"auto",background:"session"===e5?"var(--bg-selected)":"none",border:"none",borderTop:"session"===e5?"2px solid var(--accent)":"2px solid transparent",fontSize:11,color:"var(--text-muted)",whiteSpace:"nowrap",cursor:rm?"pointer":"default",fontVariantNumeric:"tabular-nums",transition:"color 0.1s, background 0.1s"},onMouseEnter:e=>{rm&&!u&&(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color="session"===e5?"var(--text)":"var(--text-muted)"},children:e?(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),o(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{className:"mobile-session-stat-io",style:{display:"flex",alignItems:"center",gap:2,flexShrink:0},children:[(0,n.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),o(t.output)]}),i&&(0,n.jsx)("span",{className:"mobile-session-stat-cost",style:{color:"var(--text)",fontWeight:500,flexShrink:0},children:i}),a&&(0,n.jsx)("span",{style:{color:s,flexShrink:0},children:a}),!p&&rm&&(0,n.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",color:"var(--text-dim)"},children:I("session.title")})]}):(0,n.jsxs)(n.Fragment,{children:[t&&t.input>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"8.5",x2:"5",y2:"1.5"}),(0,n.jsx)("polyline",{points:"2 4 5 1.5 8 4"})]}),o(t.input)]}),t&&t.output>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("line",{x1:"5",y1:"1.5",x2:"5",y2:"8.5"}),(0,n.jsx)("polyline",{points:"2 6 5 8.5 8 6"})]}),o(t.output)]}),t&&t.cacheRead>0&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M8.5 5a3.5 3.5 0 1 1-1-2.45"}),(0,n.jsx)("polyline",{points:"6.5 1.5 8.5 2.5 7.5 4.5"})]}),o(t.cacheRead)]}),i&&(0,n.jsx)("span",{style:{display:"flex",alignItems:"center",color:"var(--text)",fontWeight:500},children:i}),l&&(0,n.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:4,color:s},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 10 10",fill:"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M1 9 L1 5 Q1 1 5 1 Q9 1 9 5 L9 9"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"9",y2:"9"})]}),l]})]})})})(!0),(t=E&&ew,(0,n.jsx)("button",{type:"button",onClick:tm,disabled:t,tabIndex:t?-1:void 0,"aria-controls":"file-panel","aria-expanded":ev,"aria-hidden":!!t||void 0,title:ev?I("files.hidePanel"):I("files.showPanel"),"aria-label":ev?I("files.hidePanel"):I("files.showPanel"),"data-mobile-toolbar-file":"true",style:{marginLeft:0,display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,visibility:t?"hidden":"visible",pointerEvents:t?"none":"auto",background:ev?"var(--bg-selected)":"none",border:"none",borderLeft:"1px solid var(--border)",color:ev?"var(--text)":"var(--text-muted)",cursor:"pointer",flexShrink:0,transition:"color 0.12s, background 0.12s"},onMouseEnter:e=>{t||(e.currentTarget.style.color="var(--text)")},onMouseLeave:e=>{e.currentTarget.style.color=ev?"var(--text)":"var(--text-muted)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})),E&&ew&&(0,n.jsx)("div",{id:"mobile-toolbar-actions",role:"toolbar","aria-label":I("chat.moreControls"),"data-mobile-toolbar-actions":"true",style:{position:"absolute",top:0,right:0,bottom:0,left:36,zIndex:20,display:"flex",alignItems:"stretch",background:"color-mix(in srgb, var(--bg-panel) 94%, var(--bg))",boxShadow:"4px 0 18px rgba(0,0,0,0.12)",backdropFilter:"blur(10px)"},children:rE(!0)})]}),M&&eq&&(0,n.jsx)(cI,{tree:eH,activeLeafId:eB,onLeafChange:t8,inline:!0,compact:!0,containerRef:eI,open:"branches"===e5,onToggle:()=>e9("branches"),hasSession:rm,hideInlineButton:!0}),M&&e5&&e8&&(0,n.jsxs)("div",{style:{position:"fixed",top:e8.top,left:e8.left,width:e8.width,maxHeight:`calc(100dvh - ${e8.top}px)`,overflowY:"auto",zIndex:500},children:["agents"===e5&&F&&W&&(0,n.jsx)(pE,{rootSession:F.root,subagents:F.subagents,selectedSessionId:W.id,runningSessionIds:H,onSelectSession:t5}),"system"===e5&&(0,n.jsx)(p$,{loading:ts,prompt:eK,translate:I}),"tools"===e5&&(0,n.jsx)(or,{loading:ts,tools:to,translate:I}),"session"===e5&&(0,n.jsx)("div",{className:"session-info-popover",style:{background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",boxShadow:"0 10px 28px rgba(0,0,0,0.10)",padding:"12px 16px"},children:eY?(r=eY.totalActiveMs??0,d=[...eY.sessionName?[{label:I("session.name"),value:eY.sessionName,copyField:null}]:[],{label:I("session.file"),value:eY.sessionFile??I("session.inMemory"),copyField:"file"},{label:I("session.id"),value:eY.sessionId,copyField:"id"},...r>0?[{label:I("session.totalActive"),value:(e=>{if(e<=0)return"0s";let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h ${n}m`:n>0?`${n}m ${o}s`:`${o}s`})(r),copyField:null}]:[]],c=[...W?[{label:I("session.projectDir"),value:W.projectRoot??W.cwd,copyField:"projectDir"}]:[],...W?.branch?[{label:I("session.gitBranch"),value:W.branch,copyField:"gitBranch"}]:[],...W?.isWorktree?[{label:I("session.gitWorktree"),value:W.cwd,copyField:"gitWorktree"}]:[]],u=[[I("session.user"),eY.userMessages.toLocaleString(R)],[I("session.assistant"),eY.assistantMessages.toLocaleString(R)],[I("session.toolCalls"),eY.toolCalls.toLocaleString(R)],[I("session.toolResults"),eY.toolResults.toLocaleString(R)],[I("session.total"),eY.totalMessages.toLocaleString(R)]],p=[[I("session.input"),eY.tokens.input.toLocaleString(R)],[I("session.output"),eY.tokens.output.toLocaleString(R)],...eY.tokens.cacheRead>0?[[I("session.cacheRead"),eY.tokens.cacheRead.toLocaleString(R)]]:[],...eY.tokens.cacheWrite>0?[[I("session.cacheWrite"),eY.tokens.cacheWrite.toLocaleString(R)]]:[],[I("session.total"),eY.tokens.total.toLocaleString(R)]],h=e2??eY.contextUsage,x=[...eY.cost>0?[[I("session.cost"),`$${eY.cost.toFixed(4)}`]]:[],...h?.contextWindow?[[I("session.context"),`${null!==h.percent?`${h.percent.toFixed(1)}%`:"?"} / ${(g=h.contextWindow)>=1e6?`${(g/1e6).toFixed(1)}M`:g>=1e3?`${(g/1e3).toFixed(0)}k`:String(g)}`]]:[],...eY.tokens.cacheRead+eY.tokens.cacheWrite>0&&eY.tokens.cacheRead+eY.tokens.cacheWrite+eY.tokens.input>0?[[I("session.cacheHitRate"),`${(eY.tokens.cacheRead/(eY.tokens.cacheRead+eY.tokens.cacheWrite+eY.tokens.input)*100).toFixed(1)}%`]]:[]],f=(e,t,r="left",o=!1)=>(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:e}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:o?"max-content max-content":"auto minmax(0, 1fr)",columnGap:o?14:12,rowGap:4,justifyContent:o?"start":void 0},children:t.map(([t,i])=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:t}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:o?"normal":"anywhere",textAlign:r,whiteSpace:"right"===r?"nowrap":"normal"},children:i})]},`${e}:${t}`))})]}),m={file:"session.copyFile",id:"session.copyId",projectDir:"session.copyProjectDir",gitBranch:"session.copyGitBranch",gitWorktree:"session.copyGitWorktree"},v=(e,t)=>{let r=eZ===e;return(0,n.jsx)("button",{type:"button",title:r?I("session.copied"):I(m[e]),onClick:()=>e1(e,t),style:{alignSelf:"start",display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,marginTop:-2,color:r?"var(--accent)":"var(--text-dim)",background:"transparent",border:"1px solid var(--border)",borderRadius:4,cursor:"pointer",flex:"0 0 auto",transition:"color 0.12s, border-color 0.12s, background 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)",e.currentTarget.style.borderColor="var(--accent)",e.currentTarget.style.background="var(--bg-hover)"},onMouseLeave:e=>{e.currentTarget.style.color=r?"var(--accent)":"var(--text-dim)",e.currentTarget.style.borderColor="var(--border)",e.currentTarget.style.background="transparent"},children:r?(0,n.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("polyline",{points:"20 6 9 17 4 12"})}):(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,n.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})})},y=(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.infoSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:d.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`session-info:${e.label}`))})]}),b=c.length>0?(0,n.jsxs)("div",{style:{minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"var(--text)",marginBottom:6},children:I("session.projectSection")}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"auto minmax(0, 1fr) auto",columnGap:12,rowGap:8,alignItems:"start"},children:c.map(e=>(0,n.jsxs)("div",{style:{display:"contents"},children:[(0,n.jsx)("div",{style:{color:"var(--text-dim)",whiteSpace:"nowrap"},children:e.label}),(0,n.jsx)("div",{style:{color:"var(--text-muted)",minWidth:0,overflowWrap:"anywhere",wordBreak:"break-word",whiteSpace:"normal"},children:e.value}),(0,n.jsx)("div",{children:e.copyField?v(e.copyField,e.value):null})]},`project-info:${e.label}`))})]}):null,(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:M?"1fr":"minmax(360px, 1.7fr) minmax(140px, 0.55fr) minmax(190px, 0.75fr)",gap:M?16:24,fontSize:12,lineHeight:1.5,fontFamily:"var(--font-mono)"},children:[(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:M?16:20},children:[y,b]}),f(I("session.messages"),u),f(I("session.tokens"),[...p,...x],"right",!0)]})):(0,n.jsx)("div",{style:{fontSize:12,color:"var(--text-muted)",fontStyle:"italic"},children:I("session.load")})})]})]}),M&&rM(!0)]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",position:"relative"},children:ry&&rj?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(pi,{}),(0,n.jsx)(ps,{activeProject:t_??void 0})]}):rm?(0,n.jsx)(ut,{session:W,newSessionCwd:rf,onAgentEnd:ri,onSessionCreated:rn,onSessionForked:ro,modelsRefreshKey:es,chatInputRef:eR,tasksBoardEnabled:rj,onSystemPromptChange:eJ,onSessionStatsChange:eX,onOpenSession:tM,onOpenSubagent:rc,subagentRuns:rd,onSessionStatsPanelOpen:tg,onContextUsageChange:e4,onOpenFile:ra,onWorkspaceControlsHostChange:eP,onViewFullHistory:rx,systemPrompt:eK},Z):"validating"===tK?(0,n.jsxs)("div",{role:"status",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--text)"},children:I("desktop.openingWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd})]}):"error"===tK?(0,n.jsxs)("div",{role:"alert",style:{height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:8,padding:24,color:"var(--text-muted)",textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:14,color:"var(--status-error)"},children:I("desktop.unableToOpenWorkspace")}),(0,n.jsx)("div",{style:{maxWidth:"min(720px, 100%)",overflowWrap:"anywhere",fontFamily:"var(--font-mono)",fontSize:12},children:S.requestedCwd}),(0,n.jsx)("div",{style:{maxWidth:720,fontSize:12},children:tJ})]}):rS?t_?(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:15},children:I("desktop.selectSessionFromSidebar")}):(0,n.jsxs)("div",{style:{position:"absolute",top:12,left:12,display:"flex",alignItems:"flex-start",gap:8,userSelect:"none",pointerEvents:"none"},children:[(0,n.jsx)(i.n,{size:44,color:"var(--accent)","aria-hidden":"true",style:{opacity:.7,flexShrink:0}}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:18,fontWeight:600,color:"var(--text)",marginBottom:8},children:I("desktop.getStarted")}),(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--text-muted)",lineHeight:1.8},children:[(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"1."}),I("desktop.selectProjectDirectory"),(0,n.jsx)("br",{}),(0,n.jsx)("span",{style:{color:"var(--text-dim)",marginRight:6},children:"2."}),I("desktop.addModelsFromBottom")]})]})]}):null})]}),ev&&(0,n.jsx)("div",{...tP.separatorProps,inert:ej,"aria-controls":"file-panel",className:`panel-resize-handle right-panel-resize-handle${tP.isResizing?" is-resizing":""}`,"data-resize-handle":"right-panel",title:`${I("layout.resizeFilePanel")}: ${I("layout.resizeHint")}`}),(0,n.jsxs)("div",{ref:tP.panelRef,id:"file-panel",className:`right-panel-container${ev?" right-panel-open":" right-panel-closed"}${ej?" right-panel-full-width":""}${tP.isResizing?" right-panel-resizing":""}`,style:{display:"flex",flexDirection:"column",borderLeft:"1px solid var(--border)",background:"var(--bg)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",flexShrink:0,background:"var(--bg-panel)",borderBottom:"1px solid var(--border)",height:36},children:[(0,n.jsx)("div",{style:{flex:1,overflow:"hidden"},children:(0,n.jsx)(uE,{tabs:ty,activeTabId:tk??"",onSelectTab:tj,onCloseTab:ru})}),(0,n.jsx)("div",{style:{width:1,height:18,flexShrink:0,background:"var(--border)",marginRight:6},"aria-hidden":"true"}),(0,n.jsx)("button",{type:"button",className:"file-panel-expand-button",onClick:tv,"aria-controls":"file-panel","aria-pressed":ej,title:I(ej?"files.restorePanelWidth":"files.expandPanel"),"aria-label":I(ej?"files.restorePanelWidth":"files.expandPanel"),children:(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.7",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:(0,n.jsx)("path",{d:ej?"M9 3v6H3m12-6v6h6M9 21v-6H3m12 6v-6h6M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6":"M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5M3 3l6 6m12-6-6 6M3 21l6-6m12 6-6-6"})})}),(0,n.jsxs)("button",{type:"button",onClick:()=>tC(e=>!e),"aria-controls":"file-panel","aria-pressed":tS,title:I("agentSwitcher.title"),"aria-label":I("agentSwitcher.title"),style:{display:"inline-flex",alignItems:"center",gap:5,flexShrink:0,height:28,marginRight:6,padding:"0 10px",border:"1px solid var(--border)",borderRadius:6,background:tS?"var(--bg-selected)":"transparent",color:tS?"var(--text)":"var(--text-muted)",cursor:"pointer",fontSize:11,whiteSpace:"nowrap"},children:[(0,n.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"11",width:"18",height:"10",rx:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2"}),(0,n.jsx)("path",{d:"M12 7v4"})]}),I("agentSwitcher.title")]}),(0,n.jsx)("button",{type:"button",onClick:()=>ey(!1),"aria-controls":"file-panel","aria-expanded":ev,title:I("files.hidePanel"),"aria-label":I("files.hidePanel"),style:{display:"flex",alignItems:"center",justifyContent:"center",width:36,height:36,padding:0,background:"var(--bg-selected)",border:"none",borderLeft:"1px solid var(--border)",color:"var(--text)",cursor:"pointer",flexShrink:0,transition:"color 0.12s"},onMouseEnter:e=>{e.currentTarget.style.color="var(--accent)"},onMouseLeave:e=>{e.currentTarget.style.color="var(--text)"},children:(0,n.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[(0,n.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,n.jsx)("line",{x1:"15",y1:"3",x2:"15",y2:"21"})]})})]}),(0,n.jsx)("div",{style:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column",minHeight:0},children:tS?(k=p_(tz,W?.id))?(0,n.jsx)(pE,{rootSession:k.root,subagents:k.subagents,selectedSessionId:W?.id??"",runningSessionIds:tR,onSelectSession:e=>{tC(!1),t3.current(e)}}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:I("agentSwitcher.noFamily")}):rz?.kind==="subagent"&&rz.sessionId?(0,n.jsx)(uM,{sessionId:rz.sessionId,label:rz.label,running:tR.has(rz.sessionId),onOpenFile:ra}):rz?.filePath?(0,n.jsx)(uR,{filePath:rz.filePath,cwd:t_??void 0,sourceSessionId:rz.sourceSessionId,initialDisplayMode:rz.initialDisplayMode,initialPage:rz.page,initialState:rz.viewerState,onOpenFile:(e,t)=>rl(e,oL(e),{sourceSessionId:rz.sourceSessionId,page:t}),onFileSaved:()=>et(e=>e+1)}):(0,n.jsx)("div",{style:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-dim)",fontSize:12},children:"No file open"})})]})]}),ec&&rv&&(0,n.jsx)(pW,{cwd:rv,busy:ep,error:eg,onCancelAction:()=>{ep||eu(!1)},onConfirmAction:()=>void rC()}),er&&(0,n.jsx)(op,{initialTab:eo,cwd:rT,sessionId:W?.id??null,onCloseAction:()=>{en(!1),el(e=>e+1)},onModelsSavedAction:()=>el(e=>e+1),onSessionReloadedAction:()=>Q(e=>e+1),onSessionsChanged:()=>X(e=>e+1)})]})]})}},79023:(e,t,r)=>{Promise.resolve().then(r.bind(r,40888)),Promise.resolve().then(r.bind(r,32981))}},e=>{e.O(0,[7330,7650,2981,8441,3794,7358],()=>e(e.s=79023)),_N_E=e.O()}]);