@yuriai/web 0.1.2-beta.1 → 0.1.2-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/assets/{AssistantView-CIqBqeNE.js → AssistantView-CdO4imc6.js} +3 -3
  2. package/dist/assets/{DiagramView-2e_NtYG0.js → DiagramView-ALA0pyKm.js} +1 -1
  3. package/dist/assets/{MarkdownRenderer-DlWNCRax.js → MarkdownRenderer-QKxUWu_S.js} +2 -2
  4. package/dist/assets/{MarkdownRendererImpl-CBrvUx9b.js → MarkdownRendererImpl-XEO441ER.js} +1 -1
  5. package/dist/assets/{MarkstreamRendererImpl-D6nOj77r.js → MarkstreamRendererImpl-C_-nyQrd.js} +1 -1
  6. package/dist/assets/{MobileDetailNavigation-2b6HPGTA.js → MobileDetailNavigation-nJl1j85R.js} +1 -1
  7. package/dist/assets/{MobileShareBridge-DzotNnYa.js → MobileShareBridge-DZ-a1-hd.js} +1 -1
  8. package/dist/assets/{MobileTabPageHeader-CAqHelvi.js → MobileTabPageHeader-sOgdUSiO.js} +1 -1
  9. package/dist/assets/{MultiRunWindow-FOHJyoSa.js → MultiRunWindow-D5HKvioh.js} +1 -1
  10. package/dist/assets/{SettingsView-CwYSe0Hn.js → SettingsView-ulmuNYxi.js} +1 -1
  11. package/dist/assets/{SettingsWindow-CGtblcjh.js → SettingsWindow-C6iznJxw.js} +1 -1
  12. package/dist/assets/{TerminalView-CHF8JAUY.js → TerminalView-CWZCDRxs.js} +1 -1
  13. package/dist/assets/{ToolOutputDialog-Ch7YgIFM.js → ToolOutputDialog-DAwoBF6c.js} +1 -1
  14. package/dist/assets/{appThemeRegistry-DjalCSQY.js → appThemeRegistry-Cxk6QddU.js} +1 -1
  15. package/dist/assets/{fileMentionTouchSelection-Df8i8cy9.js → fileMentionTouchSelection-COw28yPf.js} +1 -1
  16. package/dist/assets/{gitApi-CfmVEFGC.js → gitApi-D0t8KXsn.js} +1 -1
  17. package/dist/assets/{insertionBoundaries-M248KoHZ.js → insertionBoundaries-UMFkRmkG.js} +1 -1
  18. package/dist/assets/{main-BQDGH6oo.js → main-B_h17HmQ.js} +2 -2
  19. package/dist/assets/{main-C5Y1nUOR.js → main-DZSusaPd.js} +4 -4
  20. package/dist/assets/{mcpQueries-D0tZWuVO.js → mcpQueries-CCU0buGG.js} +1 -1
  21. package/dist/assets/{miniChat-BiC7NSkc.js → miniChat-B1i0B5Ml.js} +2 -2
  22. package/dist/assets/{mobile-BmRRtAwR.js → mobile-C-PKN6lA.js} +2 -2
  23. package/dist/assets/{mobileBackNavigation-C42lt6Sc.js → mobileBackNavigation-CBPY3q34.js} +1 -1
  24. package/dist/assets/{multirun-bp5LO44K.js → multirun-BTBDMVOl.js} +1 -1
  25. package/dist/assets/{projectMeta-Cr7d93X2.js → projectMeta---vfnScT.js} +1 -1
  26. package/dist/assets/{renderElectronMiniChatApp-D5vKPry5.js → renderElectronMiniChatApp-CBZ5TGG8.js} +2 -2
  27. package/dist/assets/{renderMobileApp-D5UmLgrv.js → renderMobileApp-DaFhnxuq.js} +4 -4
  28. package/dist/assets/{runtimeConfig-DSv5sBM6.js → runtimeConfig-DTzs5NCT.js} +1 -1
  29. package/dist/assets/{runtimeEndpointReset-wOFtBKcv.js → runtimeEndpointReset-CBcDor5H.js} +1 -1
  30. package/dist/assets/{sessionChangeSummary-BfogRFFy.js → sessionChangeSummary-DTa1NhbK.js} +1 -1
  31. package/dist/assets/{sessionLookup-BeTE-q-N.js → sessionLookup-xGVDWmBL.js} +1 -1
  32. package/dist/assets/{speechSettingsQueries-D5iCuDPW.js → speechSettingsQueries-Chq_vO6e.js} +1 -1
  33. package/dist/assets/{useAppFontEffects-C17AVZt3.js → useAppFontEffects-CzYFu1JQ.js} +5 -5
  34. package/dist/assets/{useDesktopWindowControlsLayout-DvGJmIDB.js → useDesktopWindowControlsLayout-DML3uW6M.js} +1 -1
  35. package/dist/assets/{useEffectiveDirectory-Cd3-qnsE.js → useEffectiveDirectory-CYhf9ITQ.js} +1 -1
  36. package/dist/assets/{useMobileNavigationStore-CUEUhpAr.js → useMobileNavigationStore-DvSdigrK.js} +3 -3
  37. package/dist/assets/{useWorkerHighlightedLines-Dcrnd3fR.js → useWorkerHighlightedLines-BThWzx-h.js} +1 -1
  38. package/dist/index.html +2 -2
  39. package/dist/mini-chat.html +2 -2
  40. package/dist/mobile.html +2 -2
  41. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-capacitor-app-B5H_XtmE.js","assets/rolldown-runtime-hePW80VL.js","assets/vendor-aparajita-capacitor-secure-storage-xol_6BsB.js"])))=>i.map(i=>d[i]);
2
- import{f as e,g as t,h as n,l as r,p as i}from"./runtime-auth-ef9W7A43.js";import{a,d as o,f as s,p as c,u as l}from"./runtime-switch-CAZiOV2G.js";import{l as u,u as d}from"./queryRuntime-DKGLQtb9.js";import{tt as f}from"./persistence-Dzooc9Xg.js";import{t as ee}from"./desktopRelayRestore-C_23nlKD.js";import{$ as te,A as ne,B as re,Ct as ie,D as ae,E as oe,F as se,H as ce,I as le,J as ue,L as de,M as fe,N as pe,P as me,Q as he,R as ge,S as _e,T as ve,U as ye,V as be,W as xe,X as Se,Y as p,Z as Ce,_ as we,_t as Te,a as Ee,at as De,b as Oe,bt as ke,c as Ae,ct as je,d as Me,dt as Ne,et as Pe,f as Fe,ft as Ie,g as Le,gt as Re,h as ze,ht as Be,i as Ve,j as He,k as Ue,l as We,lt as Ge,m as Ke,mt as qe,n as m,nt as Je,o as Ye,ot as Xe,p as Ze,pt as Qe,q as $e,s as et,st as tt,t as nt,tt as rt,u as it,ut as at,v as h,vt as ot,x as g,y as st,yt as _}from"./platform-7bX6qtBV.js";import"./brand-storage-bootstrap-D4BW3w-M.js";import{s as ct}from"./runtime-file-resource-C1k5nbWb.js";import{n as v,o as y}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{a as lt,c as ut,l as dt,n as ft,r as pt,s as mt,t as ht}from"./terminalApi-BHXvha-U.js";import{t as gt}from"./runtime-file-download-DAOam_oV.js";import{t as b}from"./types-BuiqMmh_.js";import{n as x,t as S}from"./capgoAdapter-KNLHDj7G.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var _t=e=>{let t=e?.retry;return{maxRetries:t?.maxRetries??3,initialRetryDelay:t?.initialDelayMs??1e3,maxRetryDelay:t?.maxDelayMs??8e3,connectionTimeout:e?.connectionTimeoutMs??1e4}},vt=()=>({async createSession(e){return pt(e)},connect(e,t,n){let r=ft(e,t.onEvent,t.onError,_t(n));return{close:()=>r()}},async sendInput(e,t){await dt(e,t)},async resize(e){await mt(e.sessionId,e.cols,e.rows)},async close(e){await ht(e)},async restartSession(e,t){return ut(e,{cwd:t.cwd??``,cols:t.cols,rows:t.rows})},async forceKill(e){await lt(e)}}),yt=()=>({checkIsGitRepository:Ae,getGitStatus:de,getGitDiff:pe,getGitFileDiff:me,revertGitFile:Xe,stageGitFile:Ge,stageGitFiles:at,unstageGitFile:Be,unstageGitFiles:Re,stageGitHunk:Ne,unstageGitHunk:Te,revertGitHunk:tt,isLinkedWorktree:$e,getGitBranches:fe,deleteGitBranch:st,deleteRemoteBranch:_e,removeRemote:Pe,generateCommitMessage:oe,generatePullRequestDescription:ae,listGitWorktrees:p,validateGitWorktree:_,createGitWorktree:h,deleteGitWorktree:g,validateWorktreeDirectory:ke,canonicalizeWorktreeState:et,createGitCommit(e,t,n){return Le(e,t,n)},gitPush:ye,gitPull:ce,gitFetch:be,listGitStashes:ue,countGitStashFiles:Ke,stashGitChanges:Qe,applyGitStash:Ye,popGitStash:Ce,dropGitStash:ve,checkoutBranch:We,createBranch:ze,renameBranch:rt,getGitLog(e,t){return le(e,t)},getCommitFiles:Ue,getCurrentGitIdentity:He,hasLocalIdentity:xe,setGitIdentity:je,getGitIdentities:se,createGitIdentity:we,updateGitIdentity:ot,deleteGitIdentity:Oe,getRemotes:re,rebase:te,abortRebase:Ee,continueRebase:Ze,merge:Se,abortMerge:Ve,continueMerge:Fe,checkoutCommit:it,cherryPick:Me,revertCommit:De,resetToCommit:Je,stash:Ie,stashPop:qe,getConflictDetails:ne,worktree:{list:p,validate:_,bootstrapStatus:ge,preview:he,create:h,remove:g}}),C=e=>e.replace(/\\/g,`/`),bt=(e,t)=>({directory:C(t?.directory||t?.path||e),entries:(Array.isArray(t?.entries)?t.entries:[]).filter(e=>!!(e&&typeof e.name==`string`&&typeof e.path==`string`)).map(e=>({name:e.name,path:C(e.path),isDirectory:!!e.isDirectory}))}),w=(e,t)=>{let n=t||e?.();return n?{"x-opencode-directory":n}:void 0},xt=({getDirectory:e})=>({async listDirectory(t,n){let r=C(t),i=new URLSearchParams;r&&i.set(`path`,r),n?.respectGitignore&&i.set(`respectGitignore`,`true`);let a=await d(`/api/fs/list`,{query:i,headers:w(e)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to list directory`)}return bt(r,await a.json())},async search(t){let n=new URLSearchParams,r=C(t.directory);r&&n.set(`directory`,r),n.set(`query`,t.query),n.set(`dirs`,`false`),n.set(`type`,`file`),typeof t.maxResults==`number`&&Number.isFinite(t.maxResults)&&n.set(`limit`,String(t.maxResults));let i=await d(`/api/find/file`,{query:n,headers:w(e)});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||`Failed to search files`)}let a=await i.json();return(Array.isArray(a)?a:[]).map(e=>({path:C(`${r}/${e}`),preview:[C(e)]}))},async createDirectory(t){let n=C(t),r=await d(`/api/fs/mkdir`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to create directory`)}let i=await r.json();return{success:!!i?.success,path:typeof i?.path==`string`?C(i.path):n}},async statFile(t,n){let r=C(t),i=new URLSearchParams({path:r});n?.fingerprint&&i.set(`fingerprint`,`true`),n?.allowOutsideWorkspace&&i.set(`allowOutsideWorkspace`,`true`),n?.outsideFileGrant&&i.set(`outsideFileGrant`,n.outsideFileGrant);let a=await d(`/api/fs/stat`,{query:i,headers:w(e,n?.directory)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to stat file`)}let o=await a.json().catch(()=>({}));return{path:typeof o.path==`string`?C(o.path):r,isFile:!!o.isFile,size:typeof o.size==`number`?o.size:0,mtimeMs:typeof o.mtimeMs==`number`?o.mtimeMs:void 0,sha256:typeof o.sha256==`string`?o.sha256:void 0,mimeType:typeof o.mimeType==`string`?o.mimeType:void 0,filename:typeof o.filename==`string`?o.filename:void 0,isBinary:typeof o.isBinary==`boolean`?o.isBinary:void 0}},async readFile(t,n){let r=C(t);if(!n?.optional)return{content:await(await ct({path:r,...n,directory:n?.directory??e?.()})).text(),path:r,exists:!0};let i=new URLSearchParams({path:r});n?.allowOutsideWorkspace&&i.set(`allowOutsideWorkspace`,`true`),n?.outsideFileGrant&&i.set(`outsideFileGrant`,n.outsideFileGrant),n?.optional&&i.set(`optional`,`true`);let a=await d(`/api/fs/read`,{query:i,cache:n?.optional?`no-store`:`default`,headers:w(e,n?.directory)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to read file`)}let o=await a.text();if(n?.optional){let e=a.headers.get(`x-yuri-file-exists`);if(e!==`true`&&e!==`false`)throw Error(`Optional file read requires an existence response header`);return{content:o,path:r,exists:e===`true`}}return{content:o,path:r,exists:!0}},async writeFile(t,n){let r=C(t),i=await d(`/api/fs/write`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:r,content:n})});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||`Failed to write file`)}let a=await i.json().catch(()=>({}));return{success:!!a.success,path:typeof a.path==`string`?C(a.path):r}},async delete(t){let n=C(t),r=await d(`/api/fs/delete`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to delete file`)}return{success:!!(await r.json().catch(()=>({}))).success}},async rename(t,n){let r=await d(`/api/fs/rename`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({oldPath:t,newPath:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to rename file`)}let i=await r.json().catch(()=>({}));return{success:!!i.success,path:typeof i.path==`string`?C(i.path):n}},async revealPath(t){let n=await d(`/api/fs/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:C(t)})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to reveal path`)}return{success:!!(await n.json().catch(()=>({}))).success}},async downloadFile(t){let n=C(t);await gt({path:n,directory:e?.()})}}),T=`/api/config/settings`,St=`/api/config/reload`,E=e=>!e||typeof e!=`object`?{}:e,Ct=()=>({async load(){let e=await d(T,{method:`GET`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(`Failed to load settings: ${e.statusText}`);return{settings:E(await e.json().catch(()=>({}))),source:`web`}},async save(e){let t=await d(T,{method:`PUT`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to save settings`)}return E(await t.json().catch(()=>({})))},async restartOpenCode(){let e=await d(St,{method:`POST`});if(!e.ok){let t=await e.json().catch(()=>({error:e.statusText}));throw Error(t.error||`Failed to restart OpenCode`)}return{restarted:!0}}}),wt=()=>({async requestDirectoryAccess(e){return{success:!0,path:e.path}},async startAccessingDirectory(e){return{success:!0}},async stopAccessingDirectory(e){return{success:!0}}}),Tt=1500,D=5e3,Et=`yuri-notification-claim:`,O=new Map,Dt=()=>typeof document>`u`||document.visibilityState===`visible`&&document.hasFocus(),Ot=e=>(typeof e?.tag==`string`?e.tag.trim():``)||[e?.sessionId,e?.kind,e?.title,e?.body].filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim()).join(`|`),kt=e=>{for(let[t,n]of O)e-n>D&&O.delete(t)},At=e=>{let t=Ot(e);if(!t)return!0;let n=Date.now();if(kt(n),n-(O.get(t)??0)<D)return!1;try{if(typeof window<`u`&&window.localStorage){let e=`${Et}${t}`,r=Number(window.localStorage.getItem(e)??`0`);if(Number.isFinite(r)&&n-r<D)return O.set(t,r),!1;Number.isFinite(r)&&r>0&&window.localStorage.removeItem(e),window.localStorage.setItem(e,String(n))}}catch{}return O.set(t,n),!0},k=async()=>{if(typeof navigator>`u`||!(`serviceWorker`in navigator))return null;let e=null;try{e=await navigator.serviceWorker.getRegistration()??null}catch{e=null}if(e?.active)return e;if(!e)return null;try{return await Promise.race([navigator.serviceWorker.ready,new Promise(e=>{setTimeout(()=>e(null),Tt)})])??e}catch{return e}},jt=async e=>{let t=await k();if(!t||typeof t.showNotification!=`function`)return!1;try{return await t.showNotification(e?.title??`Yuri`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification via service worker`,e),!1}},Mt=async()=>{let e=await k();if(!e||!(`pushManager`in e)||!e.pushManager)return!1;try{return!!await e.pushManager.getSubscription()}catch{return!1}},Nt=async e=>{if(e?.requireHidden&&typeof document<`u`&&document.hasFocus())return!0;if(typeof Notification>`u`)return!1;if(Notification.permission==="default"&&await Notification.requestPermission()!==`granted`||Notification.permission!==`granted`)return console.warn(`Notification permission not granted`),!1;if(!Dt()&&await Mt()||!At(e))return!0;try{return await jt(e)||new Notification(e?.title??`Yuri`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification`,e),!1}},Pt=async e=>{if(typeof window>`u`)return!1;let t=window.__YURI_DESKTOP__;if(!t?.invoke)return!1;try{return await t.invoke(`desktop_notify`,{payload:{title:e?.title,body:e?.body,tag:e?.tag,kind:e?.kind,sessionId:e?.sessionId,directory:e?.directory,requireHidden:e?.requireHidden}}),!0}catch(e){return console.warn(`Failed to send native notification (desktop)`,e),!1}},Ft=()=>({async notifyAgentCompletion(e){return await Pt(e)||await Nt(e)},canNotify:()=>typeof window<`u`&&window.__YURI_DESKTOP__?.invoke?!0:typeof Notification<`u`&&Notification.permission===`granted`}),It=()=>({async getAvailableTools(){let e=await d(`/api/experimental/tool/ids`);if(!e.ok)throw Error(`Tools API returned ${e.status} ${e.statusText}`);let t=await e.json();if(!Array.isArray(t))throw Error(`Tools API returned invalid data format`);return t.filter(e=>typeof e==`string`&&e!==`invalid`).sort()}}),A=async(e,t)=>{try{let n=await d(e,{...t,credentials:`include`,headers:{Accept:`application/json`,...t?.headers??{}}});return n.ok?await n.json():null}catch{return null}},Lt=()=>({async getVapidPublicKey(){return A(`/api/push/vapid-public-key`)},async subscribe(e){return A(`/api/push/subscribe`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unsubscribe(e){return A(`/api/push/subscribe`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async setVisibility(e){return A(`/api/push/visibility`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),keepalive:!0})},async registerApnsToken(e){return A(`/api/push/apns-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unregisterApnsToken(e){return A(`/api/push/apns-token`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async registerLiveActivityToken(e){return A(`/api/push/live-activity-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unregisterLiveActivityToken(e){return A(`/api/push/live-activity-token`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}}),j=async e=>await e.json().catch(()=>null),Rt=({urls:e})=>({async authStatus(){let e=await d(`/api/github/auth/status`,{method:`GET`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load GitHub status`);return t},async authStart(){let e=await d(`/api/github/auth/start`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({})}),t=await j(e);if(!e.ok||!t||!(`deviceCode`in t))throw Error(t?.error||e.statusText||`Failed to start GitHub auth`);return t},async authComplete(e){let t=await d(`/api/github/auth/complete`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({deviceCode:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to complete GitHub auth`);return n},async authDisconnect(){let e=await d(`/api/github/auth`,{method:`DELETE`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok)throw Error(t?.error||e.statusText||`Failed to disconnect GitHub`);return{removed:!!t?.removed}},async authActivate(e){let t=await d(`/api/github/auth/activate`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({accountId:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to activate GitHub account`);return n},async authSetGhCliDisabled(e){let t=await d(`/api/github/auth/gh-cli`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({disabled:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to update gh CLI setting`);return{disabled:!!n.disabled}},async me(){let e=await d(`/api/github/me`,{method:`GET`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to fetch GitHub user`);return t},async prStatus(e,t,n,r){let i=new URLSearchParams({directory:e,branch:t,...n?{remote:n}:{},...r?.force?{force:`true`}:{}}),a=await d(`/api/github/pr/status?${i.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load PR status`);return o},async prCreate(e){let t=await d(`/api/github/pr/create`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to create PR`);return n},async prUpdate(e){let t=await d(`/api/github/pr/update`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to update PR`);return n},async prMerge(e){let t=await d(`/api/github/pr/merge`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to merge PR`);return n},async prReady(e){let t=await d(`/api/github/pr/ready`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to mark PR ready`);return n},async repoUpstream(e){let t=await d(`/api/github/repo/upstream?directory=${encodeURIComponent(e)}`,{method:`GET`,headers:{Accept:`application/json`}}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to detect upstream repo`);return n},async repoBranches(e,t){let n=await d(`/api/github/repo/branches?owner=${encodeURIComponent(e)}&repo=${encodeURIComponent(t)}`,{method:`GET`,headers:{Accept:`application/json`}}),r=await j(n);if(!n.ok||!r)throw Error(r?.error||n.statusText||`Failed to fetch repo branches`);return r.branches??[]},async prsList(e,t){let n=t?.page??1,r=new URLSearchParams({directory:e,page:String(n)});t?.query&&r.set(`query`,t.query);let i=await d(`/api/github/pulls/list?${r.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),a=await j(i);if(!i.ok||!a)throw Error(a?.error||i.statusText||`Failed to load pull requests`);return a},async prContext(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.includeDiff&&i.set(`diff`,`1`),r?.includeCheckDetails&&i.set(`checkDetails`,`1`),r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await d(e.api(`/api/github/pulls/context`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load pull request context`);return o},async issuesList(e,t){let n=t?.page??1,r=new URLSearchParams({directory:e,page:String(n)});t?.query&&r.set(`query`,t.query);let i=await d(`/api/github/issues/list?${r.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),a=await j(i);if(!i.ok||!a)throw Error(a?.error||i.statusText||`Failed to load issues`);return a},async issueGet(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await d(e.api(`/api/github/issues/get`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load issue`);return o},async issueComments(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await d(e.api(`/api/github/issues/comments`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load issue comments`);return o}}),M=async e=>await e.json().catch(()=>null),zt=()=>({async listClients(){let e=await d(`/api/client-auth/clients`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load remote clients`);return Array.isArray(t.clients)?t.clients:[]},async createClient(e={}){let t=await d(`/api/client-auth/clients`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:e.label??``})}),n=await M(t);if(!t.ok||!n?.client||typeof n.token!=`string`)throw Error(n?.error||t.statusText||`Failed to create remote client token`);return n},async createPairingSession(e={}){let t=await d(`/api/client-auth/pairing/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:e.label??``,...e.allowedClientKinds?{allowedClientKinds:e.allowedClientKinds}:{},...e.serverUrl?{serverUrl:e.serverUrl}:{},...typeof e.includeRelay==`boolean`?{includeRelay:e.includeRelay}:{},...typeof e.includeDirect==`boolean`?{includeDirect:e.includeDirect}:{},...e.relayUrl?{relayUrl:e.relayUrl}:{}})}),n=await M(t);if(!t.ok||typeof n?.pairing?.secret!=`string`||!n?.server)throw Error(n?.error||t.statusText||`Failed to create pairing session`);return n},async listPendingPairings(){let e=await d(`/api/client-auth/pairing/sessions`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load pending pairings`);return Array.isArray(t.pending)?t.pending:[]},async getPairingTransports(){let e=await d(`/api/client-auth/pairing/transports`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load pairing transports`);return{...typeof t.serverName==`string`?{serverName:t.serverName}:{},local:t.local??null,lan:t.lan??null,relayAvailable:t.relayAvailable===!0,...typeof t.relayUrl==`string`?{relayUrl:t.relayUrl}:{},...typeof t.relayUrlLocked==`boolean`?{relayUrlLocked:t.relayUrlLocked}:{}}},async cancelPairing(e){let t=await d(`/api/client-auth/pairing/sessions/${encodeURIComponent(e)}`,{method:`DELETE`,headers:{Accept:`application/json`}}),n=await M(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to cancel pairing`);return{cancelled:n.cancelled===!0}},async renameClient(e,t){let n=await d(`/api/client-auth/clients/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:t})}),r=await M(n);if(!n.ok||!r?.client)throw Error(r?.error||n.statusText||`Failed to rename remote client`);return r.client},async revokeClient(e){let t=await d(`/api/client-auth/clients/${encodeURIComponent(e)}`,{method:`DELETE`,headers:{Accept:`application/json`}}),n=await M(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to revoke remote client`);return n},async purgeRevokedClients(){let e=await d(`/api/client-auth/clients`,{method:`DELETE`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to clear revoked clients`);return t}}),N=e=>typeof e==`object`&&!!e&&!Array.isArray(e),P=e=>typeof e==`number`&&Number.isFinite(e),Bt=e=>{if(!N(e)||typeof e.ok!=`boolean`)return!1;if(e.ok===!0)return N(e.session)&&typeof e.session.id==`string`&&typeof e.messageID==`string`;let t=e.phase;if(typeof t!=`string`)return!1;switch(t){case`validate`:return typeof e.error==`string`&&Array.isArray(e.errors)&&e.errors.every(e=>typeof e==`string`);case`create`:return!(typeof e.error!=`string`||`status`in e&&e.status!==void 0&&!P(e.status));case`prompt`:return N(e.session)&&typeof e.session.id==`string`&&typeof e.messageID==`string`&&typeof e.ambiguous==`boolean`&&typeof e.error==`string`&&(!(`status`in e)||e.status===void 0||P(e.status));case`conflict`:return typeof e.error==`string`;case`unavailable`:return typeof e.error==`string`;case`internal`:return typeof e.error==`string`;default:return!1}},Vt=()=>({async createWithPrompt(e,t){let n;try{n=await d(`/api/yuri/conversations`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t})}catch{throw Error(`Conversation request failed`)}let r;try{r=await n.json()}catch{throw Error(`Unexpected server response: invalid JSON`)}if(!Bt(r))throw Error(`Unexpected server response: result shape mismatch`);return r}}),Ht=`https://yuri-updates.xiaobe.top/v1/mobile/update/check`,Ut=`https://yuri-origin.xiaobe.top/v1/mobile/update/check`,Wt=1e4,F=`com.yee94.yuri`,I=`yuri.mobile-ota.device-id.v1`,L=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,R=()=>{try{let e=v;return((typeof e.getConfig==`function`?e.getConfig():void 0)??e.config)?.YuriOTA??{}}catch{return{}}},z=e=>e===`beta`||e===`stable`?e:R().channel===`stable`?`stable`:`beta`,B=()=>{let e=R().shellApiVersion;return typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):1},V=()=>{let e=nt();if(e===`ios`||e===`android`)return e;try{let e=v.getPlatform();if(e===`ios`||e===`android`)return e}catch{}return`android`},Gt=()=>{if(typeof window>`u`)return null;try{return L(window.localStorage.getItem(I))}catch{return null}},H=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(I,e)}catch{}},U=async e=>{if(e)try{let t=L((await e.getDeviceId()).deviceId);if(t)return H(t),t}catch{}let t=Gt();if(t)return t;let n=f();return H(n),n},W=async()=>{let e=L(`0.1.2-beta.1`);if(m())try{let{App:t}=await y(async()=>{let{App:e}=await import(`./vendor-capacitor-app-B5H_XtmE.js`).then(e=>e.t);return{App:e}},__vite__mapDeps([0,1,2])),n=await t.getInfo(),r=L(n.version)??e??`0.0.0`,i=L(n.build),a=i?Number.parseInt(i,10):0;return{applicationId:L(n.id)??void 0,version:r,build:Number.isFinite(a)?a:0}}catch{}return{version:e??`0.0.0`,build:0}},G=(e,t,n)=>{let r=L(e?.version),i=L(t);if(n===`beta`&&i)return i;if(r&&r!==`builtin`)return i&&i!==r&&i.startsWith(`${r}-`)?i:r;let a=L(e?.id);return a&&a!==`builtin`?a:i??`builtin`},Kt=()=>L(`0.1.2-beta.1`),K=e=>{let t=e?.trim().match(/^v?(\d+)\.\d+\.\d+(?:-beta\.\d+)?$/i),n=t?Number(t[1]):void 0;return n!==void 0&&Number.isSafeInteger(n)?n:void 0},q=async(e,t)=>{let n=Kt();if(!e)return G(null,n,t);try{return G((await e.current()).bundle,n,t)}catch{return G(null,n,t)}},qt=()=>[Ht,Ut],Jt=(e,t,n)=>{let r=e-n();return r<=0||t<=0?null:Math.max(1,Math.ceil(r/t))};async function Yt(e,t,n,r){try{if(m())try{let{CapacitorHttp:r}=await y(async()=>{let{CapacitorHttp:e}=await import(`./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js`).then(e=>e.i);return{CapacitorHttp:e}},__vite__mapDeps([2,1])),i=Object.fromEntries(new Headers(t.headers).entries()),a;if(typeof t.body==`string`)try{a=JSON.parse(t.body)}catch{a=t.body}let o=await Promise.race([r.request({url:e,method:t.method||`GET`,headers:i,data:a,connectTimeout:n,readTimeout:n}),new Promise(e=>{window.setTimeout(()=>e(null),n)})]);return o?{ok:o.status>=200&&o.status<300,status:o.status,json:async()=>{if(typeof o.data==`string`)try{return JSON.parse(o.data)}catch{return o.data}return o.data}}:null}catch{}let i=await r(e,{...t,signal:AbortSignal.timeout(n)});return{ok:i.ok,status:i.status,json:()=>i.json()}}catch{return null}}var Xt=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return!(t.status!==`ok`||t.primaryAction!==`none`&&t.primaryAction!==`apply_ota`&&t.primaryAction!==`install_native_required`||!t.ota||typeof t.ota!=`object`||!t.native||typeof t.native!=`object`||typeof t.nextCheckInSec!=`number`||!Number.isFinite(t.nextCheckInSec))},Zt=e=>{let t=e;return t.isChannelRollback===!0||t.is_channel_rollback===!0?{...e,isChannelRollback:!0}:e};async function Qt(e,t,n,r){let i=await Yt(e,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(t)},n,r);if(!i?.ok)return null;let a;try{a=await i.json()}catch{return null}if(!Xt(a))return null;if(a.primaryAction===`apply_ota`&&t.applicationId!==F)throw Error(`Yuri OTA requires the Yuri native application`);if(a.primaryAction===`apply_ota`&&(t.releaseMajor===void 0||K(a.ota.bundle?.releaseVersion)!==t.releaseMajor))throw Error(`OTA release major mismatch`);return Zt(a)}async function $t(e={}){let t=e.updater===void 0?await S():e.updater;if(!t&&!m())throw new b;let n=e.fetchImpl??fetch,r=e.now??Date.now,i=z(e.channelOverride),[a,o,s]=await Promise.all([U(t),W(),q(t,i)]),c={channel:i,platform:V(),applicationId:o.applicationId,deviceId:a,nativeVersion:o.version,nativeBuild:o.build,shellApiVersion:B(),currentBundleId:s,releaseMajor:K(s)??K(o.version)},l=qt(),u=r()+Wt,d=null;for(let[e,t]of l.entries()){let i=Jt(u,l.length-e,r);if(i===null)break;try{let e=await Qt(t,c,i,n);if(e)return e;d=Error(`Mobile OTA check failed at ${t}`)}catch(e){d=e instanceof Error?e:Error(`Mobile OTA check failed`)}}throw d??Error(`Unable to check for mobile OTA updates`)}async function en(e){let t=await S();if(!t)return null;let n=await J({updater:t});if(n.applicationId!==F)throw Error(`Yuri OTA requires the Yuri native application`);if(n.releaseMajor===void 0||K(e.releaseVersion)!==n.releaseMajor)throw Error(`OTA release major mismatch`);try{let{bundles:n}=await t.list();return n.find(t=>t.checksum===e.checksum&&t.version===e.releaseVersion&&(t.status===`success`||t.status===`pending`))?.id??null}catch{return null}}async function tn(e){let t=await S();if(!t)throw new b;let n=await J({updater:t});if(n.applicationId!==F)throw Error(`Yuri OTA requires the Yuri native application`);if(n.releaseMajor===void 0||K(e.releaseVersion)!==n.releaseMajor)throw Error(`OTA release major mismatch`);return(await t.download({url:e.url,version:e.releaseVersion,checksum:e.checksum,...e.sessionKey?{sessionKey:e.sessionKey}:{}})).id}async function nn(){let e=await S();if(!e)throw new b;await e.reload()}async function rn(e){let t=await S();if(!t)throw new b;await t.next({id:e})}async function J(e={}){let t=e.updater===void 0?await S():e.updater,n=z(e.channelOverride),[r,i,a]=await Promise.all([U(t),W(),q(t,n)]);return{channel:n,platform:V(),applicationId:i.applicationId,deviceId:r,nativeVersion:i.version,nativeBuild:i.build,shellApiVersion:B(),currentBundleId:a,releaseMajor:K(a)??K(i.version)}}var Y=null,X=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,Z=async()=>{let e=X(`0.1.2-beta.1`);try{if(v.isNativePlatform()){let{App:t}=await y(async()=>{let{App:e}=await import(`./vendor-capacitor-app-B5H_XtmE.js`).then(e=>e.t);return{App:e}},__vite__mapDeps([0,1,2]));return X((await t.getInfo()).version)??e??`unknown`}}catch{}return e??`unknown`},an=()=>({async checkForOtaUpdate(e){if(!x()&&!v.isNativePlatform())throw new b;return $t(e?.channelOverride?{channelOverride:e.channelOverride}:{})},async downloadOtaUpdate(e){if(!x())throw new b;let t=await en(e);return t?(Y=t,{skipped:!0}):(Y=await tn(e),{skipped:!1})},async applyOtaUpdateNow(){if(!x())throw new b;await nn()},async queueOtaUpdateForNextLaunch(){if(!x())throw new b;let e=Y;if(!e)throw Error(`No downloaded OTA bundle to queue`);await rn(e)},async getOtaStatus(){if(!x())return{supported:!1,currentBundleId:`builtin`,nativeVersion:await Z()};let e=await S();if(!e)return{supported:!1,currentBundleId:`builtin`,nativeVersion:await Z()};try{let[t,n]=await Promise.all([e.current(),Z()]);return{supported:!0,currentBundleId:X(t.bundle?.id)||`builtin`,nativeVersion:n}}catch{return{supported:!0,currentBundleId:`builtin`,nativeVersion:await Z()}}}}),on=()=>({api:(...e)=>s().api(...e),authenticatedAsset:(...e)=>s().authenticatedAsset(...e),auth:(...e)=>s().auth(...e),health:(...e)=>s().health(...e),rawFile:(...e)=>s().rawFile(...e),sse:(...e)=>s().sse(...e),websocket:(...e)=>s().websocket(...e)}),sn=(e={})=>{let t=e.urls??o();c(t);let n=on();return{runtime:{platform:`web`,isDesktop:!1,isVSCode:!1,label:`web`},terminal:vt(),git:yt(),files:xt({urls:n,getDirectory:()=>ie.getState().currentDirectory}),settings:Ct(),permissions:wt(),notifications:Ft(),github:Rt({urls:n}),push:Lt(),mobileUpdates:an(),clientAuth:zt(),tools:It(),conversations:Vt()}},Q=(e,t)=>{if(!e||!t)return!1;try{return new URL(e).origin===new URL(t).origin}catch{return!1}},$=Promise.resolve(),cn=()=>$,ln=()=>{let o=typeof window.__YURI_API_BASE_URL__==`string`?window.__YURI_API_BASE_URL__.trim():``,s=typeof window.__YURI_CLIENT_TOKEN__==`string`?window.__YURI_CLIENT_TOKEN__.trim():``,c=typeof window.__YURI_LOCAL_ORIGIN__==`string`?window.__YURI_LOCAL_ORIGIN__.trim():``,d=l({apiBaseUrl:o||void 0,realtimeBaseUrl:o||void 0});a({apiBaseUrl:o,runtimeKey:Q(o,c)?`local`:null}),n(s||null),t(window.__YURI_RUNTIME_HEADERS__||null),i(o||void 0).catch(()=>{}),c&&!Q(o,c)&&Object.keys(r()).length>0&&e(c).catch(()=>{}),u();let f=window.__YURI_RELAY_HOST_ID__;return $=Promise.race([ee(typeof f==`string`&&f?f:void 0).catch(()=>{}),new Promise(e=>{window.setTimeout(e,1e4)})]),sn({urls:d})};export{cn as n,ln as t};
2
+ import{f as e,g as t,h as n,l as r,p as i}from"./runtime-auth-ef9W7A43.js";import{a,d as o,f as s,p as c,u as l}from"./runtime-switch-CAZiOV2G.js";import{l as u,u as d}from"./queryRuntime-DKGLQtb9.js";import{tt as f}from"./persistence-Dzooc9Xg.js";import{t as ee}from"./desktopRelayRestore-C_23nlKD.js";import{$ as te,A as ne,B as re,Ct as ie,D as ae,E as oe,F as se,H as ce,I as le,J as ue,L as de,M as fe,N as pe,P as me,Q as he,R as ge,S as _e,T as ve,U as ye,V as be,W as xe,X as Se,Y as p,Z as Ce,_ as we,_t as Te,a as Ee,at as De,b as Oe,bt as ke,c as Ae,ct as je,d as Me,dt as Ne,et as Pe,f as Fe,ft as Ie,g as Le,gt as Re,h as ze,ht as Be,i as Ve,j as He,k as Ue,l as We,lt as Ge,m as Ke,mt as qe,n as m,nt as Je,o as Ye,ot as Xe,p as Ze,pt as Qe,q as $e,s as et,st as tt,t as nt,tt as rt,u as it,ut as at,v as h,vt as ot,x as g,y as st,yt as _}from"./platform-7bX6qtBV.js";import"./brand-storage-bootstrap-D4BW3w-M.js";import{s as ct}from"./runtime-file-resource-C1k5nbWb.js";import{n as v,o as y}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{a as lt,c as ut,l as dt,n as ft,r as pt,s as mt,t as ht}from"./terminalApi-BHXvha-U.js";import{t as gt}from"./runtime-file-download-DAOam_oV.js";import{t as b}from"./types-BuiqMmh_.js";import{n as x,t as S}from"./capgoAdapter-KNLHDj7G.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var _t=e=>{let t=e?.retry;return{maxRetries:t?.maxRetries??3,initialRetryDelay:t?.initialDelayMs??1e3,maxRetryDelay:t?.maxDelayMs??8e3,connectionTimeout:e?.connectionTimeoutMs??1e4}},vt=()=>({async createSession(e){return pt(e)},connect(e,t,n){let r=ft(e,t.onEvent,t.onError,_t(n));return{close:()=>r()}},async sendInput(e,t){await dt(e,t)},async resize(e){await mt(e.sessionId,e.cols,e.rows)},async close(e){await ht(e)},async restartSession(e,t){return ut(e,{cwd:t.cwd??``,cols:t.cols,rows:t.rows})},async forceKill(e){await lt(e)}}),yt=()=>({checkIsGitRepository:Ae,getGitStatus:de,getGitDiff:pe,getGitFileDiff:me,revertGitFile:Xe,stageGitFile:Ge,stageGitFiles:at,unstageGitFile:Be,unstageGitFiles:Re,stageGitHunk:Ne,unstageGitHunk:Te,revertGitHunk:tt,isLinkedWorktree:$e,getGitBranches:fe,deleteGitBranch:st,deleteRemoteBranch:_e,removeRemote:Pe,generateCommitMessage:oe,generatePullRequestDescription:ae,listGitWorktrees:p,validateGitWorktree:_,createGitWorktree:h,deleteGitWorktree:g,validateWorktreeDirectory:ke,canonicalizeWorktreeState:et,createGitCommit(e,t,n){return Le(e,t,n)},gitPush:ye,gitPull:ce,gitFetch:be,listGitStashes:ue,countGitStashFiles:Ke,stashGitChanges:Qe,applyGitStash:Ye,popGitStash:Ce,dropGitStash:ve,checkoutBranch:We,createBranch:ze,renameBranch:rt,getGitLog(e,t){return le(e,t)},getCommitFiles:Ue,getCurrentGitIdentity:He,hasLocalIdentity:xe,setGitIdentity:je,getGitIdentities:se,createGitIdentity:we,updateGitIdentity:ot,deleteGitIdentity:Oe,getRemotes:re,rebase:te,abortRebase:Ee,continueRebase:Ze,merge:Se,abortMerge:Ve,continueMerge:Fe,checkoutCommit:it,cherryPick:Me,revertCommit:De,resetToCommit:Je,stash:Ie,stashPop:qe,getConflictDetails:ne,worktree:{list:p,validate:_,bootstrapStatus:ge,preview:he,create:h,remove:g}}),C=e=>e.replace(/\\/g,`/`),bt=(e,t)=>({directory:C(t?.directory||t?.path||e),entries:(Array.isArray(t?.entries)?t.entries:[]).filter(e=>!!(e&&typeof e.name==`string`&&typeof e.path==`string`)).map(e=>({name:e.name,path:C(e.path),isDirectory:!!e.isDirectory}))}),w=(e,t)=>{let n=t||e?.();return n?{"x-opencode-directory":n}:void 0},xt=({getDirectory:e})=>({async listDirectory(t,n){let r=C(t),i=new URLSearchParams;r&&i.set(`path`,r),n?.respectGitignore&&i.set(`respectGitignore`,`true`);let a=await d(`/api/fs/list`,{query:i,headers:w(e)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to list directory`)}return bt(r,await a.json())},async search(t){let n=new URLSearchParams,r=C(t.directory);r&&n.set(`directory`,r),n.set(`query`,t.query),n.set(`dirs`,`false`),n.set(`type`,`file`),typeof t.maxResults==`number`&&Number.isFinite(t.maxResults)&&n.set(`limit`,String(t.maxResults));let i=await d(`/api/find/file`,{query:n,headers:w(e)});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||`Failed to search files`)}let a=await i.json();return(Array.isArray(a)?a:[]).map(e=>({path:C(`${r}/${e}`),preview:[C(e)]}))},async createDirectory(t){let n=C(t),r=await d(`/api/fs/mkdir`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to create directory`)}let i=await r.json();return{success:!!i?.success,path:typeof i?.path==`string`?C(i.path):n}},async statFile(t,n){let r=C(t),i=new URLSearchParams({path:r});n?.fingerprint&&i.set(`fingerprint`,`true`),n?.allowOutsideWorkspace&&i.set(`allowOutsideWorkspace`,`true`),n?.outsideFileGrant&&i.set(`outsideFileGrant`,n.outsideFileGrant);let a=await d(`/api/fs/stat`,{query:i,headers:w(e,n?.directory)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to stat file`)}let o=await a.json().catch(()=>({}));return{path:typeof o.path==`string`?C(o.path):r,isFile:!!o.isFile,size:typeof o.size==`number`?o.size:0,mtimeMs:typeof o.mtimeMs==`number`?o.mtimeMs:void 0,sha256:typeof o.sha256==`string`?o.sha256:void 0,mimeType:typeof o.mimeType==`string`?o.mimeType:void 0,filename:typeof o.filename==`string`?o.filename:void 0,isBinary:typeof o.isBinary==`boolean`?o.isBinary:void 0}},async readFile(t,n){let r=C(t);if(!n?.optional)return{content:await(await ct({path:r,...n,directory:n?.directory??e?.()})).text(),path:r,exists:!0};let i=new URLSearchParams({path:r});n?.allowOutsideWorkspace&&i.set(`allowOutsideWorkspace`,`true`),n?.outsideFileGrant&&i.set(`outsideFileGrant`,n.outsideFileGrant),n?.optional&&i.set(`optional`,`true`);let a=await d(`/api/fs/read`,{query:i,cache:n?.optional?`no-store`:`default`,headers:w(e,n?.directory)});if(!a.ok){let e=await a.json().catch(()=>({error:a.statusText}));throw Error(e.error||`Failed to read file`)}let o=await a.text();if(n?.optional){let e=a.headers.get(`x-yuri-file-exists`);if(e!==`true`&&e!==`false`)throw Error(`Optional file read requires an existence response header`);return{content:o,path:r,exists:e===`true`}}return{content:o,path:r,exists:!0}},async writeFile(t,n){let r=C(t),i=await d(`/api/fs/write`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:r,content:n})});if(!i.ok){let e=await i.json().catch(()=>({error:i.statusText}));throw Error(e.error||`Failed to write file`)}let a=await i.json().catch(()=>({}));return{success:!!a.success,path:typeof a.path==`string`?C(a.path):r}},async delete(t){let n=C(t),r=await d(`/api/fs/delete`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to delete file`)}return{success:!!(await r.json().catch(()=>({}))).success}},async rename(t,n){let r=await d(`/api/fs/rename`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({oldPath:t,newPath:n})});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to rename file`)}let i=await r.json().catch(()=>({}));return{success:!!i.success,path:typeof i.path==`string`?C(i.path):n}},async revealPath(t){let n=await d(`/api/fs/reveal`,{method:`POST`,headers:{"Content-Type":`application/json`,...w(e)},body:JSON.stringify({path:C(t)})});if(!n.ok){let e=await n.json().catch(()=>({error:n.statusText}));throw Error(e.error||`Failed to reveal path`)}return{success:!!(await n.json().catch(()=>({}))).success}},async downloadFile(t){let n=C(t);await gt({path:n,directory:e?.()})}}),T=`/api/config/settings`,St=`/api/config/reload`,E=e=>!e||typeof e!=`object`?{}:e,Ct=()=>({async load(){let e=await d(T,{method:`GET`,headers:{Accept:`application/json`}});if(!e.ok)throw Error(`Failed to load settings: ${e.statusText}`);return{settings:E(await e.json().catch(()=>({}))),source:`web`}},async save(e){let t=await d(T,{method:`PUT`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>({error:t.statusText}));throw Error(e.error||`Failed to save settings`)}return E(await t.json().catch(()=>({})))},async restartOpenCode(){let e=await d(St,{method:`POST`});if(!e.ok){let t=await e.json().catch(()=>({error:e.statusText}));throw Error(t.error||`Failed to restart OpenCode`)}return{restarted:!0}}}),wt=()=>({async requestDirectoryAccess(e){return{success:!0,path:e.path}},async startAccessingDirectory(e){return{success:!0}},async stopAccessingDirectory(e){return{success:!0}}}),Tt=1500,D=5e3,Et=`yuri-notification-claim:`,O=new Map,Dt=()=>typeof document>`u`||document.visibilityState===`visible`&&document.hasFocus(),Ot=e=>(typeof e?.tag==`string`?e.tag.trim():``)||[e?.sessionId,e?.kind,e?.title,e?.body].filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim()).join(`|`),kt=e=>{for(let[t,n]of O)e-n>D&&O.delete(t)},At=e=>{let t=Ot(e);if(!t)return!0;let n=Date.now();if(kt(n),n-(O.get(t)??0)<D)return!1;try{if(typeof window<`u`&&window.localStorage){let e=`${Et}${t}`,r=Number(window.localStorage.getItem(e)??`0`);if(Number.isFinite(r)&&n-r<D)return O.set(t,r),!1;Number.isFinite(r)&&r>0&&window.localStorage.removeItem(e),window.localStorage.setItem(e,String(n))}}catch{}return O.set(t,n),!0},k=async()=>{if(typeof navigator>`u`||!(`serviceWorker`in navigator))return null;let e=null;try{e=await navigator.serviceWorker.getRegistration()??null}catch{e=null}if(e?.active)return e;if(!e)return null;try{return await Promise.race([navigator.serviceWorker.ready,new Promise(e=>{setTimeout(()=>e(null),Tt)})])??e}catch{return e}},jt=async e=>{let t=await k();if(!t||typeof t.showNotification!=`function`)return!1;try{return await t.showNotification(e?.title??`Yuri`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification via service worker`,e),!1}},Mt=async()=>{let e=await k();if(!e||!(`pushManager`in e)||!e.pushManager)return!1;try{return!!await e.pushManager.getSubscription()}catch{return!1}},Nt=async e=>{if(e?.requireHidden&&typeof document<`u`&&document.hasFocus())return!0;if(typeof Notification>`u`)return!1;if(Notification.permission==="default"&&await Notification.requestPermission()!==`granted`||Notification.permission!==`granted`)return console.warn(`Notification permission not granted`),!1;if(!Dt()&&await Mt()||!At(e))return!0;try{return await jt(e)||new Notification(e?.title??`Yuri`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification`,e),!1}},Pt=async e=>{if(typeof window>`u`)return!1;let t=window.__YURI_DESKTOP__;if(!t?.invoke)return!1;try{return await t.invoke(`desktop_notify`,{payload:{title:e?.title,body:e?.body,tag:e?.tag,kind:e?.kind,sessionId:e?.sessionId,directory:e?.directory,requireHidden:e?.requireHidden}}),!0}catch(e){return console.warn(`Failed to send native notification (desktop)`,e),!1}},Ft=()=>({async notifyAgentCompletion(e){return await Pt(e)||await Nt(e)},canNotify:()=>typeof window<`u`&&window.__YURI_DESKTOP__?.invoke?!0:typeof Notification<`u`&&Notification.permission===`granted`}),It=()=>({async getAvailableTools(){let e=await d(`/api/experimental/tool/ids`);if(!e.ok)throw Error(`Tools API returned ${e.status} ${e.statusText}`);let t=await e.json();if(!Array.isArray(t))throw Error(`Tools API returned invalid data format`);return t.filter(e=>typeof e==`string`&&e!==`invalid`).sort()}}),A=async(e,t)=>{try{let n=await d(e,{...t,credentials:`include`,headers:{Accept:`application/json`,...t?.headers??{}}});return n.ok?await n.json():null}catch{return null}},Lt=()=>({async getVapidPublicKey(){return A(`/api/push/vapid-public-key`)},async subscribe(e){return A(`/api/push/subscribe`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unsubscribe(e){return A(`/api/push/subscribe`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async setVisibility(e){return A(`/api/push/visibility`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),keepalive:!0})},async registerApnsToken(e){return A(`/api/push/apns-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unregisterApnsToken(e){return A(`/api/push/apns-token`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async registerLiveActivityToken(e){return A(`/api/push/live-activity-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})},async unregisterLiveActivityToken(e){return A(`/api/push/live-activity-token`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}}),j=async e=>await e.json().catch(()=>null),Rt=({urls:e})=>({async authStatus(){let e=await d(`/api/github/auth/status`,{method:`GET`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load GitHub status`);return t},async authStart(){let e=await d(`/api/github/auth/start`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({})}),t=await j(e);if(!e.ok||!t||!(`deviceCode`in t))throw Error(t?.error||e.statusText||`Failed to start GitHub auth`);return t},async authComplete(e){let t=await d(`/api/github/auth/complete`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({deviceCode:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to complete GitHub auth`);return n},async authDisconnect(){let e=await d(`/api/github/auth`,{method:`DELETE`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok)throw Error(t?.error||e.statusText||`Failed to disconnect GitHub`);return{removed:!!t?.removed}},async authActivate(e){let t=await d(`/api/github/auth/activate`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({accountId:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to activate GitHub account`);return n},async authSetGhCliDisabled(e){let t=await d(`/api/github/auth/gh-cli`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({disabled:e})}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to update gh CLI setting`);return{disabled:!!n.disabled}},async me(){let e=await d(`/api/github/me`,{method:`GET`,headers:{Accept:`application/json`}}),t=await j(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to fetch GitHub user`);return t},async prStatus(e,t,n,r){let i=new URLSearchParams({directory:e,branch:t,...n?{remote:n}:{},...r?.force?{force:`true`}:{}}),a=await d(`/api/github/pr/status?${i.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load PR status`);return o},async prCreate(e){let t=await d(`/api/github/pr/create`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to create PR`);return n},async prUpdate(e){let t=await d(`/api/github/pr/update`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to update PR`);return n},async prMerge(e){let t=await d(`/api/github/pr/merge`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to merge PR`);return n},async prReady(e){let t=await d(`/api/github/pr/ready`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify(e)}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to mark PR ready`);return n},async repoUpstream(e){let t=await d(`/api/github/repo/upstream?directory=${encodeURIComponent(e)}`,{method:`GET`,headers:{Accept:`application/json`}}),n=await j(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to detect upstream repo`);return n},async repoBranches(e,t){let n=await d(`/api/github/repo/branches?owner=${encodeURIComponent(e)}&repo=${encodeURIComponent(t)}`,{method:`GET`,headers:{Accept:`application/json`}}),r=await j(n);if(!n.ok||!r)throw Error(r?.error||n.statusText||`Failed to fetch repo branches`);return r.branches??[]},async prsList(e,t){let n=t?.page??1,r=new URLSearchParams({directory:e,page:String(n)});t?.query&&r.set(`query`,t.query);let i=await d(`/api/github/pulls/list?${r.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),a=await j(i);if(!i.ok||!a)throw Error(a?.error||i.statusText||`Failed to load pull requests`);return a},async prContext(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.includeDiff&&i.set(`diff`,`1`),r?.includeCheckDetails&&i.set(`checkDetails`,`1`),r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await d(e.api(`/api/github/pulls/context`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load pull request context`);return o},async issuesList(e,t){let n=t?.page??1,r=new URLSearchParams({directory:e,page:String(n)});t?.query&&r.set(`query`,t.query);let i=await d(`/api/github/issues/list?${r.toString()}`,{method:`GET`,headers:{Accept:`application/json`}}),a=await j(i);if(!i.ok||!a)throw Error(a?.error||i.statusText||`Failed to load issues`);return a},async issueGet(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await d(e.api(`/api/github/issues/get`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load issue`);return o},async issueComments(t,n,r){let i=new URLSearchParams({directory:t,number:String(n)});r?.sourceRepo?.owner&&r.sourceRepo.repo&&(i.set(`owner`,r.sourceRepo.owner),i.set(`repo`,r.sourceRepo.repo));let a=await d(e.api(`/api/github/issues/comments`,i),{method:`GET`,headers:{Accept:`application/json`}}),o=await j(a);if(!a.ok||!o)throw Error(o?.error||a.statusText||`Failed to load issue comments`);return o}}),M=async e=>await e.json().catch(()=>null),zt=()=>({async listClients(){let e=await d(`/api/client-auth/clients`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load remote clients`);return Array.isArray(t.clients)?t.clients:[]},async createClient(e={}){let t=await d(`/api/client-auth/clients`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:e.label??``})}),n=await M(t);if(!t.ok||!n?.client||typeof n.token!=`string`)throw Error(n?.error||t.statusText||`Failed to create remote client token`);return n},async createPairingSession(e={}){let t=await d(`/api/client-auth/pairing/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:e.label??``,...e.allowedClientKinds?{allowedClientKinds:e.allowedClientKinds}:{},...e.serverUrl?{serverUrl:e.serverUrl}:{},...typeof e.includeRelay==`boolean`?{includeRelay:e.includeRelay}:{},...typeof e.includeDirect==`boolean`?{includeDirect:e.includeDirect}:{},...e.relayUrl?{relayUrl:e.relayUrl}:{}})}),n=await M(t);if(!t.ok||typeof n?.pairing?.secret!=`string`||!n?.server)throw Error(n?.error||t.statusText||`Failed to create pairing session`);return n},async listPendingPairings(){let e=await d(`/api/client-auth/pairing/sessions`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load pending pairings`);return Array.isArray(t.pending)?t.pending:[]},async getPairingTransports(){let e=await d(`/api/client-auth/pairing/transports`,{method:`GET`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to load pairing transports`);return{...typeof t.serverName==`string`?{serverName:t.serverName}:{},local:t.local??null,lan:t.lan??null,relayAvailable:t.relayAvailable===!0,...typeof t.relayUrl==`string`?{relayUrl:t.relayUrl}:{},...typeof t.relayUrlLocked==`boolean`?{relayUrlLocked:t.relayUrlLocked}:{}}},async cancelPairing(e){let t=await d(`/api/client-auth/pairing/sessions/${encodeURIComponent(e)}`,{method:`DELETE`,headers:{Accept:`application/json`}}),n=await M(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to cancel pairing`);return{cancelled:n.cancelled===!0}},async renameClient(e,t){let n=await d(`/api/client-auth/clients/${encodeURIComponent(e)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({label:t})}),r=await M(n);if(!n.ok||!r?.client)throw Error(r?.error||n.statusText||`Failed to rename remote client`);return r.client},async revokeClient(e){let t=await d(`/api/client-auth/clients/${encodeURIComponent(e)}`,{method:`DELETE`,headers:{Accept:`application/json`}}),n=await M(t);if(!t.ok||!n)throw Error(n?.error||t.statusText||`Failed to revoke remote client`);return n},async purgeRevokedClients(){let e=await d(`/api/client-auth/clients`,{method:`DELETE`,headers:{Accept:`application/json`}}),t=await M(e);if(!e.ok||!t)throw Error(t?.error||e.statusText||`Failed to clear revoked clients`);return t}}),N=e=>typeof e==`object`&&!!e&&!Array.isArray(e),P=e=>typeof e==`number`&&Number.isFinite(e),Bt=e=>{if(!N(e)||typeof e.ok!=`boolean`)return!1;if(e.ok===!0)return N(e.session)&&typeof e.session.id==`string`&&typeof e.messageID==`string`;let t=e.phase;if(typeof t!=`string`)return!1;switch(t){case`validate`:return typeof e.error==`string`&&Array.isArray(e.errors)&&e.errors.every(e=>typeof e==`string`);case`create`:return!(typeof e.error!=`string`||`status`in e&&e.status!==void 0&&!P(e.status));case`prompt`:return N(e.session)&&typeof e.session.id==`string`&&typeof e.messageID==`string`&&typeof e.ambiguous==`boolean`&&typeof e.error==`string`&&(!(`status`in e)||e.status===void 0||P(e.status));case`conflict`:return typeof e.error==`string`;case`unavailable`:return typeof e.error==`string`;case`internal`:return typeof e.error==`string`;default:return!1}},Vt=()=>({async createWithPrompt(e,t){let n;try{n=await d(`/api/yuri/conversations`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e),signal:t})}catch{throw Error(`Conversation request failed`)}let r;try{r=await n.json()}catch{throw Error(`Unexpected server response: invalid JSON`)}if(!Bt(r))throw Error(`Unexpected server response: result shape mismatch`);return r}}),Ht=`https://yuri-updates.xiaobe.top/v1/mobile/update/check`,Ut=`https://yuri-origin.xiaobe.top/v1/mobile/update/check`,Wt=1e4,F=`com.yee94.yuri`,I=`yuri.mobile-ota.device-id.v1`,L=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,R=()=>{try{let e=v;return((typeof e.getConfig==`function`?e.getConfig():void 0)??e.config)?.YuriOTA??{}}catch{return{}}},z=e=>e===`beta`||e===`stable`?e:R().channel===`stable`?`stable`:`beta`,B=()=>{let e=R().shellApiVersion;return typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):1},V=()=>{let e=nt();if(e===`ios`||e===`android`)return e;try{let e=v.getPlatform();if(e===`ios`||e===`android`)return e}catch{}return`android`},Gt=()=>{if(typeof window>`u`)return null;try{return L(window.localStorage.getItem(I))}catch{return null}},H=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(I,e)}catch{}},U=async e=>{if(e)try{let t=L((await e.getDeviceId()).deviceId);if(t)return H(t),t}catch{}let t=Gt();if(t)return t;let n=f();return H(n),n},W=async()=>{let e=L(`0.1.2-beta.2`);if(m())try{let{App:t}=await y(async()=>{let{App:e}=await import(`./vendor-capacitor-app-B5H_XtmE.js`).then(e=>e.t);return{App:e}},__vite__mapDeps([0,1,2])),n=await t.getInfo(),r=L(n.version)??e??`0.0.0`,i=L(n.build),a=i?Number.parseInt(i,10):0;return{applicationId:L(n.id)??void 0,version:r,build:Number.isFinite(a)?a:0}}catch{}return{version:e??`0.0.0`,build:0}},G=(e,t,n)=>{let r=L(e?.version),i=L(t);if(n===`beta`&&i)return i;if(r&&r!==`builtin`)return i&&i!==r&&i.startsWith(`${r}-`)?i:r;let a=L(e?.id);return a&&a!==`builtin`?a:i??`builtin`},Kt=()=>L(`0.1.2-beta.2`),K=e=>{let t=e?.trim().match(/^v?(\d+)\.\d+\.\d+(?:-beta\.\d+)?$/i),n=t?Number(t[1]):void 0;return n!==void 0&&Number.isSafeInteger(n)?n:void 0},q=async(e,t)=>{let n=Kt();if(!e)return G(null,n,t);try{return G((await e.current()).bundle,n,t)}catch{return G(null,n,t)}},qt=()=>[Ht,Ut],Jt=(e,t,n)=>{let r=e-n();return r<=0||t<=0?null:Math.max(1,Math.ceil(r/t))};async function Yt(e,t,n,r){try{if(m())try{let{CapacitorHttp:r}=await y(async()=>{let{CapacitorHttp:e}=await import(`./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js`).then(e=>e.i);return{CapacitorHttp:e}},__vite__mapDeps([2,1])),i=Object.fromEntries(new Headers(t.headers).entries()),a;if(typeof t.body==`string`)try{a=JSON.parse(t.body)}catch{a=t.body}let o=await Promise.race([r.request({url:e,method:t.method||`GET`,headers:i,data:a,connectTimeout:n,readTimeout:n}),new Promise(e=>{window.setTimeout(()=>e(null),n)})]);return o?{ok:o.status>=200&&o.status<300,status:o.status,json:async()=>{if(typeof o.data==`string`)try{return JSON.parse(o.data)}catch{return o.data}return o.data}}:null}catch{}let i=await r(e,{...t,signal:AbortSignal.timeout(n)});return{ok:i.ok,status:i.status,json:()=>i.json()}}catch{return null}}var Xt=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return!(t.status!==`ok`||t.primaryAction!==`none`&&t.primaryAction!==`apply_ota`&&t.primaryAction!==`install_native_required`||!t.ota||typeof t.ota!=`object`||!t.native||typeof t.native!=`object`||typeof t.nextCheckInSec!=`number`||!Number.isFinite(t.nextCheckInSec))},Zt=e=>{let t=e;return t.isChannelRollback===!0||t.is_channel_rollback===!0?{...e,isChannelRollback:!0}:e};async function Qt(e,t,n,r){let i=await Yt(e,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(t)},n,r);if(!i?.ok)return null;let a;try{a=await i.json()}catch{return null}if(!Xt(a))return null;if(a.primaryAction===`apply_ota`&&t.applicationId!==F)throw Error(`Yuri OTA requires the Yuri native application`);if(a.primaryAction===`apply_ota`&&(t.releaseMajor===void 0||K(a.ota.bundle?.releaseVersion)!==t.releaseMajor))throw Error(`OTA release major mismatch`);return Zt(a)}async function $t(e={}){let t=e.updater===void 0?await S():e.updater;if(!t&&!m())throw new b;let n=e.fetchImpl??fetch,r=e.now??Date.now,i=z(e.channelOverride),[a,o,s]=await Promise.all([U(t),W(),q(t,i)]),c={channel:i,platform:V(),applicationId:o.applicationId,deviceId:a,nativeVersion:o.version,nativeBuild:o.build,shellApiVersion:B(),currentBundleId:s,releaseMajor:K(s)??K(o.version)},l=qt(),u=r()+Wt,d=null;for(let[e,t]of l.entries()){let i=Jt(u,l.length-e,r);if(i===null)break;try{let e=await Qt(t,c,i,n);if(e)return e;d=Error(`Mobile OTA check failed at ${t}`)}catch(e){d=e instanceof Error?e:Error(`Mobile OTA check failed`)}}throw d??Error(`Unable to check for mobile OTA updates`)}async function en(e){let t=await S();if(!t)return null;let n=await J({updater:t});if(n.applicationId!==F)throw Error(`Yuri OTA requires the Yuri native application`);if(n.releaseMajor===void 0||K(e.releaseVersion)!==n.releaseMajor)throw Error(`OTA release major mismatch`);try{let{bundles:n}=await t.list();return n.find(t=>t.checksum===e.checksum&&t.version===e.releaseVersion&&(t.status===`success`||t.status===`pending`))?.id??null}catch{return null}}async function tn(e){let t=await S();if(!t)throw new b;let n=await J({updater:t});if(n.applicationId!==F)throw Error(`Yuri OTA requires the Yuri native application`);if(n.releaseMajor===void 0||K(e.releaseVersion)!==n.releaseMajor)throw Error(`OTA release major mismatch`);return(await t.download({url:e.url,version:e.releaseVersion,checksum:e.checksum,...e.sessionKey?{sessionKey:e.sessionKey}:{}})).id}async function nn(){let e=await S();if(!e)throw new b;await e.reload()}async function rn(e){let t=await S();if(!t)throw new b;await t.next({id:e})}async function J(e={}){let t=e.updater===void 0?await S():e.updater,n=z(e.channelOverride),[r,i,a]=await Promise.all([U(t),W(),q(t,n)]);return{channel:n,platform:V(),applicationId:i.applicationId,deviceId:r,nativeVersion:i.version,nativeBuild:i.build,shellApiVersion:B(),currentBundleId:a,releaseMajor:K(a)??K(i.version)}}var Y=null,X=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,Z=async()=>{let e=X(`0.1.2-beta.2`);try{if(v.isNativePlatform()){let{App:t}=await y(async()=>{let{App:e}=await import(`./vendor-capacitor-app-B5H_XtmE.js`).then(e=>e.t);return{App:e}},__vite__mapDeps([0,1,2]));return X((await t.getInfo()).version)??e??`unknown`}}catch{}return e??`unknown`},an=()=>({async checkForOtaUpdate(e){if(!x()&&!v.isNativePlatform())throw new b;return $t(e?.channelOverride?{channelOverride:e.channelOverride}:{})},async downloadOtaUpdate(e){if(!x())throw new b;let t=await en(e);return t?(Y=t,{skipped:!0}):(Y=await tn(e),{skipped:!1})},async applyOtaUpdateNow(){if(!x())throw new b;await nn()},async queueOtaUpdateForNextLaunch(){if(!x())throw new b;let e=Y;if(!e)throw Error(`No downloaded OTA bundle to queue`);await rn(e)},async getOtaStatus(){if(!x())return{supported:!1,currentBundleId:`builtin`,nativeVersion:await Z()};let e=await S();if(!e)return{supported:!1,currentBundleId:`builtin`,nativeVersion:await Z()};try{let[t,n]=await Promise.all([e.current(),Z()]);return{supported:!0,currentBundleId:X(t.bundle?.id)||`builtin`,nativeVersion:n}}catch{return{supported:!0,currentBundleId:`builtin`,nativeVersion:await Z()}}}}),on=()=>({api:(...e)=>s().api(...e),authenticatedAsset:(...e)=>s().authenticatedAsset(...e),auth:(...e)=>s().auth(...e),health:(...e)=>s().health(...e),rawFile:(...e)=>s().rawFile(...e),sse:(...e)=>s().sse(...e),websocket:(...e)=>s().websocket(...e)}),sn=(e={})=>{let t=e.urls??o();c(t);let n=on();return{runtime:{platform:`web`,isDesktop:!1,isVSCode:!1,label:`web`},terminal:vt(),git:yt(),files:xt({urls:n,getDirectory:()=>ie.getState().currentDirectory}),settings:Ct(),permissions:wt(),notifications:Ft(),github:Rt({urls:n}),push:Lt(),mobileUpdates:an(),clientAuth:zt(),tools:It(),conversations:Vt()}},Q=(e,t)=>{if(!e||!t)return!1;try{return new URL(e).origin===new URL(t).origin}catch{return!1}},$=Promise.resolve(),cn=()=>$,ln=()=>{let o=typeof window.__YURI_API_BASE_URL__==`string`?window.__YURI_API_BASE_URL__.trim():``,s=typeof window.__YURI_CLIENT_TOKEN__==`string`?window.__YURI_CLIENT_TOKEN__.trim():``,c=typeof window.__YURI_LOCAL_ORIGIN__==`string`?window.__YURI_LOCAL_ORIGIN__.trim():``,d=l({apiBaseUrl:o||void 0,realtimeBaseUrl:o||void 0});a({apiBaseUrl:o,runtimeKey:Q(o,c)?`local`:null}),n(s||null),t(window.__YURI_RUNTIME_HEADERS__||null),i(o||void 0).catch(()=>{}),c&&!Q(o,c)&&Object.keys(r()).length>0&&e(c).catch(()=>{}),u();let f=window.__YURI_RELAY_HOST_ID__;return $=Promise.race([ee(typeof f==`string`&&f?f:void 0).catch(()=>{}),new Promise(e=>{window.setTimeout(e,1e4)})]),sn({urls:d})};export{cn as n,ln as t};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OnboardingScreen-DTr_WxYY.js","assets/rolldown-runtime-hePW80VL.js","assets/queryRuntime-DKGLQtb9.js","assets/runtime-auth-ef9W7A43.js","assets/runtime-switch-CAZiOV2G.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/persistence-Dzooc9Xg.js","assets/vendor-zustand-o69pgTEK.js","assets/vendor-base-ui-CdzJ6My_.js","assets/brand-storage-bootstrap-D4BW3w-M.js","assets/brand-storage-migration-Bhz6UOBJ.js","assets/useUIStore-NMQx_cnG.js","assets/vendor-react-BP2cRVqX.js","assets/vendor-pathe-vBmvQE8f.js","assets/desktopHosts-BDyl2P7W.js","assets/button-C3292Ee6.js","assets/store-CZu30-QE.js","assets/vendor-aparajita-capacitor-secure-storage-xol_6BsB.js","assets/vendor-class-variance-authority-BLUaYARZ.js","assets/vendor-tailwind-merge-BicNWLTg.js","assets/Icon-jsQQXouE.js","assets/dialog-DrgcVFLG.js","assets/input-DaOOTCQd.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,i as n,n as r,o as i,r as a,s as o}from"./runtime-switch-CAZiOV2G.js";import{a as s,o as c,u as l}from"./queryRuntime-DKGLQtb9.js";import{Mt as u,Rt as d,Sn as f,Zt as p,ct as m,dn as h,en as g,et as _,in as v,rn as y,wn as b}from"./persistence-Dzooc9Xg.js";import{a as x,i as S,o as C}from"./vendor-zustand-o69pgTEK.js";import{it as w,nt as T,o as E,rt as D,s as O}from"./vendor-base-ui-CdzJ6My_.js";import{Ct as k,Mt as A,Nt as j,dr as M,r as N}from"./platform-7bX6qtBV.js";import"./brand-storage-bootstrap-D4BW3w-M.js";import{n as P,t as F,x as I}from"./useUIStore-NMQx_cnG.js";import{n as L}from"./vendor-react-BP2cRVqX.js";import{l as ee,n as te,o as R,s as z,t as B}from"./vendor-tanstack-react-query-CdqCAt40.js";import{A as ne,S as re,k as V}from"./runtime-file-resource-C1k5nbWb.js";import{o as H}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{i as ie}from"./terminalApi-BHXvha-U.js";import{c as ae,d as U,f as W,l as oe,m as G,n as K,o as q,p as se,s as J,t as ce,u as le}from"./vendor-pierre-diffs-DPBtNDJ5.js";import{r as ue}from"./vendor-sonner-ZS8XIOVl.js";import{l as de,n as fe,p as pe,r as me}from"./vendor-reactuses-core-BpfIZ1tg.js";import{d as he,f as ge,i as _e,l as ve,p as ye,r as Y,t as X,u as be}from"./button-C3292Ee6.js";import{i as xe,t as Se}from"./store-CZu30-QE.js";import{A as Ce,M as we,O as Te,j as Ee,k as De,t as Oe}from"./MobileDetailNavigation-2b6HPGTA.js";import{$n as ke,$r as Ae,Ar as je,Br as Me,Bt as Ne,Cn as Pe,Cr as Fe,Er as Ie,Fa as Le,Ir as Re,Lr as ze,Mr as Be,Nr as Ve,Or as He,Pr as Ue,Qr as We,Rr as Ge,Sa as Ke,Sn as qe,So as Je,Sr as Ye,Tr as Xe,Un as Ze,Vi as Qe,Wt as $e,Yn as et,Zn as tt,bi as nt,bo as rt,br as it,cn as at,d as ot,da as st,fo as ct,hi as lt,jr as ut,kn as dt,mo as ft,o as pt,pi as mt,po as ht,ri as gt,wa as _t,wo as vt,xn as yt,xr as bt,zt as xt}from"./useMobileNavigationStore-CUEUhpAr.js";import{i as St,t as Ct}from"./useAssistantUIStore-D7JZlg_Q.js";import{t as wt}from"./AgentAvatar-1UO8KpCd.js";import{n as Tt,t as Et}from"./useThemeSystem-8jhE4Zyk.js";import{n as Z}from"./Icon-jsQQXouE.js";import{a as Dt,i as Ot,n as kt,o as At,r as jt,t as Mt}from"./dialog-DrgcVFLG.js";import{d as Nt}from"./gitApi-CfmVEFGC.js";import{B as Pt,C as Ft,Ft as It,H as Lt,Q as Rt,T as zt,V as Bt,X as Vt,a as Ht,at as Ut,bt as Wt,dt as Gt,et as Kt,gt as qt,ht as Jt,it as Yt,nt as Xt,ot as Zt,rt as Qt,tt as $t,vt as en,yt as tn}from"./useAppFontEffects-C17AVZt3.js";import{A as nn,_ as rn,a as an,b as on,d as sn,f as cn,h as ln,i as un,l as dn,m as fn,n as pn,p as mn,r as hn,s as gn,t as _n,x as vn}from"./projectMeta-Cr7d93X2.js";import{t as yn}from"./input-DaOOTCQd.js";import{i as bn,n as xn,t as Sn}from"./tooltip-DGUZtHif.js";import{Dt as Cn,Et as wn,J as Tn,Rt as En,Tt as Dn,_ as On,at as kn,ct as An,g as jn,gt as Mn,it as Nn,mt as Pn,q as Fn,rt as In,st as Ln,tt as Rn,ut as zn,wt as Bn}from"./speechSettingsQueries-D5iCuDPW.js";import{i as Vn,t as Hn}from"./OverlayScrollbar-C4VUlRzo.js";import{d as Un}from"./image-loading-CVq5GLEY.js";import{x as Wn}from"./dropdown-menu.styles-CeLR2UTs.js";import{T as Gn,a as Kn,g as qn,h as Jn,i as Yn,n as Xn,o as Zn,p as Qn,r as $n,t as er,x as tr,y as nr}from"./textarea-BcA4uouw.js";import{w as rr}from"./sessionChangeSummary-BfogRFFy.js";import{i as ir,t as ar}from"./vendor-framer-motion-D-oiwsxL.js";import{D as or,b as sr,h as cr,k as lr,r as ur,v as dr,w as fr,y as pr}from"./insertionBoundaries-M248KoHZ.js";import{n as mr,t as hr}from"./appThemeRegistry-DjalCSQY.js";import{o as gr}from"./MarkdownRenderer-DlWNCRax.js";import{_ as _r,c as vr,g as yr,i as br,l as xr,n as Sr,o as Cr,s as wr,t as Tr,v as Er,y as Dr}from"./vendor-dnd-kit-core-5pNnzVdw.js";import{a as Or,o as kr,s as Ar,t as jr}from"./vendor-dnd-kit-sortable-Dm50I0m7.js";import{f as Mr,l as Nr}from"./markdown-worker-CkO3sT4Y.js";import{n as Pr}from"./useEffectiveDirectory-Cd3-qnsE.js";import{t as Fr}from"./LoadingImage-DvtPqFRw.js";import{n as Ir}from"./useWorkerHighlightedLines-Dcrnd3fR.js";import{t as Lr}from"./vendor-tanstack-react-virtual-B_EO--9t.js";import{t as Rr}from"./vendor-motion-88WXBOBf.js";import{B as zr,t as Br,u as Vr,v as Hr,x as Ur}from"./MobileTabPageHeader-CAqHelvi.js";import{c as Wr,l as Gr}from"./mcpQueries-D0tZWuVO.js";import{a as Kr,c as qr,d as Jr,i as Yr,l as Xr,m as Zr,n as Qr,o as $r,r as ei,s as ti,t as ni}from"./scheduledTaskNavigation-C6UYwVbD.js";import{n as ri}from"./mobileBackNavigation-C42lt6Sc.js";import{n as ii,r as ai}from"./sessionLookup-BeTE-q-N.js";import{n as oi,r as si,t as ci}from"./collapsible-B0yvtXQR.js";import{t as li}from"./vendor-cron-parser-BmO80h0C.js";var Q=e(w(),1),ui=L(),$=D(),di=e(T(),1);function fi(){return new Worker(ce,{type:`module`})}var pi=[`typescript`,`javascript`,`tsx`,`jsx`,`json`,`markdown`],mi={unified:{poolSize:1,totalASTLRUCacheSize:24,lineDiffType:`none`},split:{poolSize:2,totalASTLRUCacheSize:56,lineDiffType:`word-alt`}},hi,gi,_i=e=>{let t=mi[e],n=new se({workerFactory:fi,poolSize:t.poolSize,totalASTLRUCacheSize:t.totalASTLRUCacheSize},{theme:{light:`pierre-light`,dark:`pierre-dark`},langs:pi,lineDiffType:t.lineDiffType,preferredHighlighter:`shiki-wasm`});return n.initialize(),n},vi=e=>{if(!(typeof window>`u`))return e===`split`?(gi??=_i(`split`),gi):(hi??=_i(`unified`),hi)},yi=e=>{let t=(0,ui.c)(7),{children:n,renderTheme:r}=e,i=xi(`unified`),a=xi(`split`),o,s;t[0]!==r||t[1]!==a||t[2]!==i?(o=()=>{i&&i.setRenderOptions({theme:r,lineDiffType:mi.unified.lineDiffType}),a&&a.setRenderOptions({theme:r,lineDiffType:mi.split.lineDiffType})},s=[r,a,i],t[0]=r,t[1]=a,t[2]=i,t[3]=o,t[4]=s):(o=t[3],s=t[4]),(0,Q.useEffect)(o,s);let c;return t[5]===n?c=t[6]:(c=(0,$.jsx)($.Fragment,{children:n}),t[5]=n,t[6]=c),c},bi=e=>{let t=(0,ui.c)(11),{children:n}=e,r=Et(),i,a;if(t[0]!==r?.availableThemes||t[1]!==r?.darkThemeId||t[2]!==r?.lightThemeId){let e=Un(!1),n=Un(!0),o=r?.lightThemeId??e.metadata.id,s=r?.darkThemeId??n.metadata.id;a=r?.availableThemes.find(e=>e.metadata.id===o)??e,i=r?.availableThemes.find(e=>e.metadata.id===s)??n,hr(a),hr(i),t[0]=r?.availableThemes,t[1]=r?.darkThemeId,t[2]=r?.lightThemeId,t[3]=i,t[4]=a}else i=t[3],a=t[4];let o;t[5]!==i.metadata.id||t[6]!==a.metadata.id?(o={light:a.metadata.id,dark:i.metadata.id},t[5]=i.metadata.id,t[6]=a.metadata.id,t[7]=o):o=t[7];let s=o,c;return t[8]!==n||t[9]!==s?(c=(0,$.jsx)(yi,{renderTheme:s,children:n}),t[8]=n,t[9]=s,t[10]=c):c=t[10],c},xi=e=>{let t=(0,ui.c)(2),n=e===void 0?`unified`:e,r;return t[0]===n?r=t[1]:(r=vi(n),t[0]=n,t[1]=r),r},Si=(e,t)=>{if(!e||typeof e!=`object`)return!1;let n=e;return(n.role===`user`||n.role===`assistant`)&&typeof n.sessionID==`string`&&n.sessionID.length>0&&typeof n.messageID==`string`&&n.messageID.length>0&&typeof n.snippet==`string`&&typeof n.createdAt==`number`&&Number.isFinite(n.createdAt)&&t.length>0},Ci=async e=>{let t=e.query.trim();if(!t)return[];let n=await(e.fetch??l)(`/api/yuri/content-search`,{query:{q:t,limit:String(e.limit??30)},signal:e.signal});if(!n.ok)throw Error(`session content search failed (${n.status})`);let r=await n.json();if(!Array.isArray(r?.hits))throw Error(`session content search returned no hits`);return r.hits.flatMap(e=>Si(e,typeof e?.directory==`string`?e.directory:``)?[e]:[])},wi=(e,t)=>{let i=e.trim(),a=t.scope,o=a?.transport??n(),s=a?.generation??r(),l=t.searchContent??Ci;return R({queryKey:c.sessionContentSearch.query(i,``,s,o),enabled:i.length>0&&a!==null,queryFn:({signal:e})=>a?l({scope:a,query:i,limit:30,signal:e}):[],staleTime:0,refetchInterval:3e3,retry:1})},Ti=(e=l)=>R({queryKey:[n(),`contentSearchStatus`,r()],queryFn:async({signal:t})=>{let n=await e(`/api/yuri/content-search`,{signal:t});if(n.status===404||n.status===501)return null;if(!n.ok)throw Error(`Content index unavailable (${n.status})`);let{index:r}=await n.json();if(!r||![`pending`,`indexing`,`ready`,`partial`,`error`].includes(r.phase)||![r.total,r.completed,r.failed,r.messages].every(e=>Number.isFinite(e)&&e>=0)||r.initializationRequired!==void 0&&typeof r.initializationRequired!=`boolean`||[r.indexStartedAt,r.indexCompletedAt,r.coveredSince,r.verifiedAt,r.updatedAt].some(e=>e!=null&&!Number.isFinite(e)))throw Error(`Invalid content index status`);return r},refetchInterval:3e3,staleTime:0}),Ei=gr(()=>H(()=>import(`./OnboardingScreen-DTr_WxYY.js`).then(e=>({default:e.OnboardingScreen})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])));function Di(){let e=(0,ui.c)(11),[t,n]=Q.useState(!1),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=Ti(),e[0]=r):r=e[0];let i=!t,a;e[1]===i?a=e[2]:(a={...r,enabled:i,refetchOnWindowFocus:!1,refetchInterval:Oi},e[1]=i,e[2]=a);let o=z(a),s=o.data,c=o.isFetchedAfterMount&&!o.isError&&(s===null||s&&(s.initializationRequired===void 0||s.initializationRequired===!1&&s.updatedAt!=null)),l,u;if(e[3]===c?(l=e[4],u=e[5]):(l=()=>{c&&n(!0)},u=[c],e[3]=c,e[4]=l,e[5]=u),Q.useEffect(l,u),t||!s?.initializationRequired)return null;let d;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>{e||n(!0)},e[6]=d):d=e[6];let f;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>n(!0),e[7]=f):f=e[7];let p;return e[8]!==s||e[9]!==o.isError?(p=(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(Mt,{open:!0,onOpenChange:d,children:(0,$.jsx)(kt,{showCloseButton:!1,className:`h-full max-w-none rounded-none border-0 p-0`,overlayClassName:`z-[9997]`,containerClassName:`z-[9997] items-stretch p-0`,children:(0,$.jsx)(Ei,{mode:`content-index`,indexStatus:s,indexStatusError:o.isError,onContinueInBackground:f})})})}),e[8]=s,e[9]=o.isError,e[10]=p):p=e[10],p}function Oi(e){let t=e.state.data;return t===null||t&&t.initializationRequired===void 0||t?.initializationRequired===!1&&t.updatedAt!=null?!1:3e3}function ki(){let e=(0,ui.c)(4);if(V())return null;let t,n;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)){let r=Ti().queryKey;t=Di,n=JSON.stringify(r),e[0]=t,e[1]=n}else t=e[0],n=e[1];let r;return e[2]===n?r=e[3]:(r=(0,$.jsx)(t,{},n),e[2]=n,e[3]=r),r}var Ai=Q.forwardRef((e,t)=>{let n=(0,ui.c)(11),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=Y(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-none transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[checked]:bg-primary data-[unchecked]:bg-[var(--interactive-border)]`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o={width:`36px`,height:`20px`,minWidth:`36px`,minHeight:`20px`},n[5]=o):o=n[5];let s;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(E,{className:Y(`pointer-events-none block rounded-full bg-background shadow-none ring-0 transition-transform data-[checked]:translate-x-4 data-[unchecked]:translate-x-0`),style:{width:`16px`,height:`16px`,minWidth:`16px`,minHeight:`16px`}}),n[6]=s):s=n[6];let c;return n[7]!==i||n[8]!==t||n[9]!==a?(c=(0,$.jsx)(O,{className:a,style:o,...i,ref:t,children:s}),n[7]=i,n[8]=t,n[9]=a,n[10]=c):c=n[10],c});Ai.displayName=`Switch`;var ji={},Mi=[],Ni=(e,t)=>{if(!e)return t(`mcpDropdown.status.unknown`);switch(e.status){case`connected`:return t(`mcpDropdown.status.connected`);case`failed`:return t(`mcpDropdown.status.failed`,{error:e.error||t(`mcpDropdown.status.unknownError`)});case`needs_auth`:return t(`mcpDropdown.status.needsAuth`);case`needs_client_registration`:return t(`mcpDropdown.status.needsRegistration`,{error:e.error||``});default:return e.status}},Pi=e=>{switch(e?.status){case`connected`:return`success`;case`failed`:return`error`;case`needs_auth`:case`needs_client_registration`:return`warning`;default:return`default`}},Fi=({active:e,className:t,headerAction:n,listClassName:r,hideHeader:i=!1,mobileListDensity:a=!1})=>{let{t:o}=ge(),s=k(e=>e.currentDirectory)??null,c=zr(e=>e.connect),l=zr(e=>e.disconnect),{data:u,refetch:d,isError:f,error:p}=Gr(s,{enabled:e}),{data:m}=Wr(s,{enabled:e}),h=u??ji,g=m??Mi,[_,v]=Q.useState(!1),[y,b]=Q.useState(null),x=Q.useMemo(()=>{let e=new Set(Object.keys(h));for(let t of g)t?.name&&e.add(t.name);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[g,h]),S=Q.useCallback(e=>{if(e?.preventDefault(),_)return;v(!0);let t=new Promise(e=>setTimeout(e,500));Promise.all([d(),t]).finally(()=>{v(!1)})},[_,d]);return(0,$.jsxs)(`div`,{className:Y(`w-full`,t),children:[i?null:(0,$.jsx)(`div`,{className:`border-b border-[var(--interactive-border)]`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-4 py-2.5`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex items-baseline gap-2`,children:[(0,$.jsx)(`div`,{className:`typography-ui-header font-semibold text-foreground`,children:o(`mcpDropdown.title`)}),s&&(0,$.jsx)(`div`,{className:`truncate typography-micro text-muted-foreground`,children:s.split(`/`).pop()||s})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[n,(0,$.jsx)(`button`,{type:`button`,className:`inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-foreground hover:bg-interactive-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,disabled:_,onClick:S,"aria-label":o(`mcpDropdown.actions.refreshAria`),children:(0,$.jsx)(Z,{name:`refresh`,className:Y(`h-4 w-4`,_&&`animate-spin`)})})]})]})}),(0,$.jsx)(`div`,{className:Y(`max-h-64 overflow-y-auto`,a?`space-y-1 py-3`:`px-3 py-2.5`,r),children:(0,$.jsxs)(`div`,{className:Y(!a&&x.length>0&&`rounded-xl bg-[var(--surface-muted)] p-1.5`),children:[x.map(e=>{let t=h[e]??(f&&!u&&g.some(t=>t.name===e)?{status:`failed`,error:p.message}:void 0),n=Pi(t),r=t?.status===`connected`,i=y===e,d=Ni(t,o);return(0,$.jsxs)(`div`,{className:Y(`flex items-center justify-between rounded-lg hover:bg-interactive-hover/50`,a?`gap-3 px-4 py-3`:`gap-2 px-2.5 py-2`),children:[(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,$.jsxs)(Sn,{children:[(0,$.jsx)(bn,{asChild:!0,children:(0,$.jsx)(`span`,{className:Y(`rounded-full flex-shrink-0`,a?`h-2.5 w-2.5`:`h-2 w-2`,n===`success`&&`bg-status-success`,n===`error`&&`bg-status-error`,n===`warning`&&`bg-status-warning`,n==="default"&&`bg-muted-foreground/40`),"aria-label":d})}),(0,$.jsx)(xn,{side:`left`,children:(0,$.jsx)(`p`,{children:d})})]}),(0,$.jsx)(`span`,{className:Y(`truncate`,a?`text-[17px] leading-6 font-medium`:`typography-ui-label`),children:e})]})}),(0,$.jsx)(Ai,{checked:r,disabled:i,className:`data-[checked]:bg-status-info`,onCheckedChange:async t=>{b(e);try{t?await c(e,s):await l(e,s)}finally{b(null)}}})]},e)}),x.length===0&&(0,$.jsx)(`div`,{className:`px-4 py-5 typography-ui-label text-muted-foreground text-center`,children:o(`mcpDropdown.empty.configureInConfig`)})]})})]})},Ii=e=>!(e.dismissed===`true`||e.sessionShown===`true`||e.hasActiveToast),Li=e=>!(!e.version||e.seenVersions.has(e.version)||e.dismissedVersion!==null&&e.dismissedVersion===e.version),Ri=e=>{if(typeof e!=`object`||!e)return``;let t=e.version;return typeof t==`string`?t.trim():``},zi=e=>{if(!e||e.available!==!0||e.canManage===!1)return``;let t=typeof e.latestVersion==`string`?e.latestVersion:typeof e.targetVersion==`string`?e.targetVersion:``;return t?t.trim():``},Bi=e=>{let t=e.trim().replace(/^v/i,``);return t?{target:t}:null},Vi=5e3,Hi={setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e)};function Ui(e,t,n=Hi){if(!e)return()=>void 0;let r=n.setTimeout(()=>{t().catch(()=>void 0)},Vi);return()=>n.clearTimeout(r)}var Wi=(e,t)=>({queryKey:[e,`opencode-update`,t],queryFn:async({signal:i})=>{let a=()=>e===n()&&t===r();if(!a())throw Error(`Stale OpenCode update check`);let o=await l(`/api/opencode/upgrade-status`,{headers:{Accept:`application/json`},signal:i});if(!o.ok)throw Error(`OpenCode update check failed`);let s=await o.json();if(i.aborted||!a())throw Error(`Stale OpenCode update check`);if(!s||typeof s!=`object`||Array.isArray(s))throw Error(`Invalid OpenCode update status`);return s},staleTime:3e4,refetchInterval:3e5,refetchOnWindowFocus:!0,refetchOnReconnect:!0,retry:1}),Gi=`opencode-update-available`,Ki=`opencode-upgrade-progress`,qi=`opencode-update-toast-dismissed-version`,Ji=()=>{let{t:e}=ge(),i=P(e=>e.showOpenCodeUpdateNotifications),a=Q.useRef(new Set),o=Q.useRef(!1),s=Q.useSyncExternalStore(t,n,n),c=Q.useSyncExternalStore(t,r,r),u=ee(),[d,f]=Q.useState(!1);Q.useEffect(()=>Ui(i,async()=>{f(!0)}),[i]);let p=z({...Wi(s,c),enabled:i&&d});me(`yuri:opencode-update-available`,e=>{i&&Ri(e.detail)&&p.refetch()});let m=`${qi}:${s}`;Q.useEffect(()=>{a.current.clear(),Ge.dismiss(Gi),Ge.dismiss(Ki)},[s,c]),Q.useEffect(()=>{i||Ge.dismiss(Gi)},[i]);let h=fe(async(t,i=!1)=>{if(o.current)return;o.current=!0;let a=()=>s===n()&&c===r();Ge.dismiss(Gi),Ge.message(e(`opencodeUpdate.toast.upgrading.title`),{id:Ki,description:e(`opencodeUpdate.toast.upgrading.description`),duration:1/0,icon:(0,$.jsx)(Z,{name:`refresh`,className:`h-4 w-4 animate-spin text-muted-foreground`})});try{let n=Bi(t);if(!n)throw Error(e(`opencodeUpdate.toast.failed.description`));let r=await l(`/api/opencode/upgrade`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({...n,confirmActiveTasks:i})}),o=await r.json().catch(()=>null);if(!a())return;if(o?.errorCode===`UPGRADE_ACTIVE_TASKS`){Ge.error(e(`opencodeUpdate.toast.failed.title`),{id:Ki,description:o.error,duration:1/0,action:{label:e(`opencodeUpdate.toast.actions.update`),onClick:()=>{a()&&h(t,!0)}}});return}if(!r.ok||o?.success!==!0)throw Error(o?.error||r.statusText||e(`opencodeUpdate.toast.failed.description`));Ge.success(e(`opencodeUpdate.toast.updated.title`),{id:Ki,description:o?.version?e(`opencodeUpdate.toast.updated.descriptionWithVersion`,{version:o.version}):e(`opencodeUpdate.toast.updated.description`),duration:1/0,icon:(0,$.jsx)(Z,{name:`check`,className:`h-4 w-4 text-[var(--status-success)]`})}),u.invalidateQueries({queryKey:[s,`opencode-update`,c]}),u.invalidateQueries({queryKey:[s,`about`,c]})}catch(n){if(!a())return;Ge.error(e(`opencodeUpdate.toast.failed.title`),{id:Ki,description:n instanceof Error?n.message:e(`opencodeUpdate.toast.failed.description`),duration:1/0,action:{label:e(`opencodeUpdate.toast.actions.update`),onClick:()=>{a()&&h(t)}}})}finally{o.current=!1}});return Q.useEffect(()=>{let t=t=>{if(!P.getState().showOpenCodeUpdateNotifications){Ge.dismiss(Gi);return}Li({version:t,dismissedVersion:I().getItem(m),seenVersions:a.current})&&(a.current.add(t),Ge.info(e(`opencodeUpdate.toast.available.title`),{id:Gi,description:e(`opencodeUpdate.toast.available.description`,{version:t}),duration:1/0,action:{label:e(`opencodeUpdate.toast.actions.update`),onClick:()=>{s===n()&&c===r()&&h(t)}},cancel:{label:e(`opencodeUpdate.toast.actions.dismiss`),onClick:()=>{I().setItem(m,t),Ge.dismiss(Gi)}}}))},i=zi(p.data);i?t(i):(p.data?.available===!1||p.data?.canManage===!1)&&Ge.dismiss(Gi)},[i,e,p.data,m,s,c,h]),null},Yi=()=>{let e=(0,ui.c)(3),[t,n]=Q.useState(Xi),{isUpdating:r}=t,i,a;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>ft(n),a=[],e[0]=i,e[1]=a):(i=e[0],a=e[1]),Q.useEffect(i,a),!r)return null;let o;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(`div`,{className:`fixed inset-0 z-[9999] flex items-center justify-center bg-background/90`,children:(0,$.jsx)(En,{width:80,height:80,isAnimated:!0})}),e[2]=o):o=e[2],o};function Xi(){return ht()}var Zi=`/assets/yuri-wordmark-DSJqXYVo.svg`;function Qi(e){let t=(0,ui.c)(5),{className:n,width:r}=e,i=n===void 0?``:n,a=r===void 0?112:r,o=`inline-block shrink-0 ${i}`,s;t[0]===a?s=t[1]:(s={width:a,aspectRatio:`626.723 / 280`,backgroundColor:`currentColor`,mask:`url("${Zi}") center / contain no-repeat`,WebkitMask:`url("${Zi}") center / contain no-repeat`},t[0]=a,t[1]=s);let c;return t[2]!==o||t[3]!==s?(c=(0,$.jsx)(`span`,{role:`img`,"aria-label":`Yuri`,className:o,style:s}),t[2]=o,t[3]=s,t[4]=c):c=t[4],c}var $i=5e3,ea=(e,t)=>{if(!e)return 1;let n=1;for(let r=0;r<e.length;r+=1)if(e.charCodeAt(r)===10&&(n+=1,n>t))return n;return n},ta=(e,t)=>Se(xe.getState().dictionary,e,t),na=e=>{let t=(e instanceof Error?e.message:String(e??``)).toLowerCase();return t.includes(`file not found`)||t.includes(`not found`)||t.includes(`enoent`)||t.includes(`no such file`)||t.includes(`does not exist`)?`missing`:`unreadable`},ra=async(e,t)=>{if(e.readFile){let n=await e.readFile(t,{optional:!0});if(typeof n.exists!=`boolean`)throw Error(`Optional file read requires an existence response header`);return{content:n.content??``,exists:n.exists}}let n=new URLSearchParams({path:t,optional:`true`}),r=await l(`/api/fs/read?${n.toString()}`,{cache:`no-store`});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to read file`)}let i=r.headers.get(`x-yuri-file-exists`);if(i!==`true`&&i!==`false`)throw Error(`Optional file read requires an existence response header`);return{content:await r.text(),exists:i===`true`}},ia=async(e,t)=>{try{let{content:n,exists:r}=await ra(e,t);return r?ea(n,5e3)>5e3?{ok:!1,reason:`too-large`}:{ok:!0}:{ok:!1,reason:`missing`}}catch(e){return{ok:!1,reason:na(e)}}},aa=e=>e===`too-large`?ta(`contextFileOpen.failure.tooLarge`,{count:$i.toLocaleString(ye())}):ta(e===`missing`?`contextFileOpen.failure.missing`:`contextFileOpen.failure.unreadable`),oa=(e,t)=>!e||t.length===0?``:JSON.stringify([e,t]),sa=(e,t,n,r)=>!n||r!==n||e.length===0?[]:Ze(e,t,e=>e.name,{limit:10,threshold:.4}),ca=(e,t={})=>{let r=e.trim(),i=t.transport??n(),a=t.searchSessions??(e=>j.searchSessionsByTitle(e));return R({queryKey:c.sessionTitleSearch.query(r,i),enabled:r.length>0,queryFn:({signal:e})=>a({search:r,limit:30,signal:e}),staleTime:5e3,retry:1})},la=e=>{let t=(0,ui.c)(13),{title:n,description:r,trailing:i}=e,a=r?`min-w-0 max-w-[58%] shrink-0 truncate typography-meta font-medium leading-4 text-foreground`:`min-w-0 flex-1 truncate typography-meta font-medium leading-4 text-foreground`,o;t[0]!==a||t[1]!==n?(o=(0,$.jsx)(`span`,{className:a,children:n}),t[0]=a,t[1]=n,t[2]=o):o=t[2];let s;t[3]===r?s=t[4]:(s=r?(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-micro leading-4 text-muted-foreground/65`,children:r}):null,t[3]=r,t[4]=s);let c;t[5]!==o||t[6]!==s?(c=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2.5`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7];let l;t[8]===i?l=t[9]:(l=i?(0,$.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center pl-2 text-muted-foreground/50`,children:i}):null,t[8]=i,t[9]=l);let u;return t[10]!==c||t[11]!==l?(u=(0,$.jsxs)($.Fragment,{children:[c,l]}),t[10]=c,t[11]=l,t[12]=u):u=t[12],u},ua=`min-h-9 gap-2 rounded-lg px-3 py-2 typography-meta`,da=`py-0 [&_[cmdk-group-heading]]:px-2.5 [&_[cmdk-group-heading]]:pb-2 [&_[cmdk-group-heading]]:pt-3 [&_[cmdk-group-heading]]:font-normal [&_[cmdk-group-heading]]:text-muted-foreground`,fa=`rounded-[3px] bg-[color-mix(in_srgb,var(--primary-base)_28%,transparent)] px-0.5 font-[inherit] text-foreground`;function pa(e,t){let n=t.trim().toLowerCase().split(/\s+/).filter(Boolean);if(!n.length||!e)return e;let r=n.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)),i=RegExp(`(${r.join(`|`)})`,`gi`);return e.split(i).map((e,t)=>n.includes(e.toLowerCase())?(0,$.jsx)(`mark`,{className:fa,children:e},t):(0,$.jsx)(`span`,{children:e},t))}var ma=e=>{if(!e)return``;let t=e.replace(/\\/g,`/`),n=t.startsWith(`//`),r=t.replace(/\/+/g,`/`);n&&!r.startsWith(`//`)&&(r=`/${r}`);let i=r===`/`,a=/^[A-Za-z]:\/$/.test(r);return!i&&!a&&(r=r.replace(/\/+$/,``)),r},ha=[],ga=Q.memo(function({presentation:e=`dialog`,onBack:t}){let{t:i}=ge(),a=rr(),o=P(e=>e.isCommandPaletteOpen),[s,c]=Q.useState(o),l=P(e=>e.setCommandPaletteOpen),u=P(e=>e.setActiveMainTab),f=P(e=>e.setSettingsDialogOpen),m=P(e=>e.setSettingsPage),h=P(e=>e.setSessionSwitcherOpen),_=P(e=>e.toggleSidebar),b=P(e=>e.toggleRightSidebar),x=P(e=>e.toggleBottomTerminal),S=P(e=>e.openContextOverview),C=P(e=>e.openContextFile),w=P(e=>e.shortcutOverrides),T=ot(e=>e.openNewSessionDraft),E=ot(e=>e.setCurrentSession),D=o||s,O=Ue(e=>D?e.activeSessions:ha),j=Ue(e=>D?e.status:`idle`),M=k(e=>e.currentDirectory),N=ct(e=>e.getActiveProject()),F=ct(e=>e.projects),I=Pr(),L=A(e=>e.searchFiles),{files:ee}=ne(),{isMobile:te}=Vn(),R=e===`page`||te,B=ve(),re=Q.useRef(null),V=Q.useRef(null),H=fe(()=>{if(!R||!o||!re.current)return;let e=window.visualViewport;re.current.style.setProperty(`--search-viewport-height`,`${e?.height??window.innerHeight}px`),re.current.style.setProperty(`--search-viewport-top`,`${e?.offsetTop??0}px`)});me(`resize`,H,()=>R&&o?window.visualViewport??window:null),me(`scroll`,H,()=>R&&o?window.visualViewport:null),Q.useEffect(()=>{H()},[R,o]),Q.useEffect(()=>{e===`page`&&o&&V.current?.focus({preventScroll:!0})},[e,o]);let ie=Q.useMemo(()=>I?ma(I):null,[I]),[ae,U]=Q.useState(``),[W,oe]=Q.useState({query:``,groups:[]}),G=lr(ae,200).trim(),K=ae.trim();Q.useEffect(()=>{o&&(U(``),oe({query:``,groups:[]}),c(!0))},[o]);let q=fe(()=>l(!1)),se=fe(e=>()=>{q(),e()}),J=Q.useMemo(()=>{let e=[{id:`new-session`,title:i(`commandPalette.item.newSession`),shortcutId:`new_chat`,searchText:i(`commandPalette.item.newSession`),onSelect:se(()=>{u(`chat`),h(!1),T()})},{id:`new-worktree`,title:i(`commandPalette.item.newWorktreeDraft`),shortcutId:`new_chat_worktree`,searchText:i(`commandPalette.item.newWorktreeDraft`),onSelect:se(()=>{Zt()})},{id:`add-project`,title:i(`commandPalette.item.addProject`),searchText:i(`commandPalette.item.addProject`),onSelect:se(()=>{nt.requestDirectoryDialog()})},{id:`toggle-sidebar`,title:i(R?`commandPalette.item.showSessionSwitcher`:`commandPalette.item.toggleSidebar`),shortcutId:`toggle_sidebar`,searchText:i(R?`commandPalette.item.showSessionSwitcher`:`commandPalette.item.toggleSidebar`),onSelect:se(()=>{if(R){let{isSessionSwitcherOpen:e}=P.getState();h(!e)}else _()})},{id:`toggle-right-sidebar`,title:i(`commandPalette.item.toggleRightSidebar`),shortcutId:`toggle_right_sidebar`,searchText:i(`commandPalette.item.toggleRightSidebar`),onSelect:se(()=>b())},{id:`toggle-terminal`,title:i(`commandPalette.item.toggleTerminal`),shortcutId:`toggle_terminal`,searchText:i(`commandPalette.item.toggleTerminal`),onSelect:se(()=>x())},{id:`new-terminal-tab`,title:i(`commandPalette.item.newTerminalTab`),shortcutId:`open_new_terminal`,searchText:i(`commandPalette.item.newTerminalTab`),onSelect:se(()=>{I&&Ht(I)})},{id:`context-usage`,title:i(`commandPalette.item.showContextUsage`),searchText:i(`commandPalette.item.showContextUsage`),onSelect:se(()=>{M&&S(M)})},{id:`open-settings`,title:i(`commandPalette.item.openSettings`),shortcutId:`open_settings`,searchText:i(`commandPalette.item.openSettings`),onSelect:se(()=>f(!0))}];return d()&&e.splice(1,0,{id:`new-mini-chat`,title:i(`commandPalette.item.newMiniChat`),shortcutId:`new_mini_chat`,searchText:i(`commandPalette.item.newMiniChat`),onSelect:se(()=>{p(`desktop_open_draft_mini_chat_window`,{directory:ma(M||N?.path||``),projectId:N?.id??null}).catch(e=>{console.warn(`[command-palette] failed to open draft mini chat window`,e)})})}),e},[i,se,R,u,h,T,_,b,x,M,I,S,f,N?.id,N?.path]),ce=Q.useMemo(()=>{let e=g();return{isVSCode:y(),isWeb:!e&&v(),isDesktop:e,isMobile:R}},[R]),le=Q.useMemo(()=>Jr.filter(e=>e.slug!==`home`).filter(e=>!e.isAvailable||e.isAvailable(ce)).map(e=>{let t=(e.keywords??[]).join(` `);return{id:`settings:${e.slug}`,title:e.title,searchText:`${e.title} ${e.group} ${t}`,onSelect:se(()=>{m(e.slug),f(!0)})}}),[ce,se,m,f]),ue=Q.useMemo(()=>{let e=e=>(typeof e.time?.updated==`number`?e.time.updated:0)||(typeof e.time?.created==`number`?e.time.created:0);return[...O].sort((t,n)=>e(n)-e(t))},[O]),de=ot(e=>e.worktreeMetadata),pe=ot(e=>e.availableWorktreesByProject),[he,_e]=Q.useState([]),[ye,Y]=Q.useState(``),[X,xe]=Q.useState(``),Se=oa(ie,G);Q.useEffect(()=>{if(!o){_e([]),Y(``),xe(``);return}if(!Se){_e([]),Y(``),xe(``);return}if(!ie){_e([]),Y(``),xe(``);return}let e=!1;return xe(``),L(ie,G,10,{type:`file`}).then(t=>{e||(_e(t.map(e=>({path:ma(e.path),name:e.name,relativePath:e.relativePath}))),Y(Se),xe(``))}).catch(()=>{e||(_e([]),Y(``),xe(Se))}),()=>{e=!0}},[o,ie,G,Se,L]);let Ce=K.length>0,we=Q.useMemo(()=>Ce?Ze(J,K,e=>e.searchText,{limit:7,noFuzzy:!0}):J.map(e=>({item:e,score:0})),[J,K,Ce]),Te=Q.useMemo(()=>Ce?Ze(le,K,e=>e.searchText,{limit:7,noFuzzy:!0}):[],[le,K,Ce]),Ee=z({...ca(G),enabled:(o||s)&&(G.length>0||e===`page`)}),De={transport:n(),generation:r(),directory:``},ke=JSON.stringify([De.transport,De.generation,ie,K,o]),[Ae,je]=Q.useState(null),Me=Ae?.key===ke?Ae:null;Ae&&!Me&&je(null);let Ne=z({...Ti(),enabled:o||s}),Pe=z({...wi(G,{scope:De}),enabled:(o||s)&&G.length>0&&De!==null}),Fe=Q.useMemo(()=>Me?.hits??Pe.data??[],[Me,Pe.data]),Ie=Ce&&K===G&&Pe.isError,Le=Ce&&K===G&&Ee.isSuccess,Re=(Ce||e===`page`)&&K===G&&Ee.isError,ze=Q.useMemo(()=>Re?Ze(ue,K,e=>e.title||``,{limit:30,threshold:.2}).map(({item:e})=>e):[],[Re,ue,K]),Be=Q.useMemo(()=>Me?Me.sessions:Ce?Le?Ee.data??[]:Re?ze:[]:e===`page`&&!G&&Ee.isSuccess?Ee.data:ue.slice(0,e===`page`?30:9),[Ce,ue,Le,Re,ze,Ee.data,Ee.isSuccess,e,G,Me]),Ve=Q.useMemo(()=>!o&&!s||K!==G||X===Se?[]:sa(he,G,Se,ye),[o,s,he,ye,Se,G,K,X]),He=(o||s)&&Se.length>0&&ye!==Se&&X!==Se,We=Q.useMemo(()=>{if(!Ce)return[];let e=F.map(e=>({...e,displayName:e.label||e.path.split(`/`).pop()||e.path,searchText:`${e.label||``} ${e.path}`}));return Ze(e,K,e=>e.searchText,{limit:7,threshold:.4})},[F,K,Ce]),Ke=JSON.stringify([ie,K]),qe=W.query===Ke?W.groups:[],Je=(e,t)=>Ce&&!qe.includes(e)?t.slice(0,5):t,Ye=Je(`commands`,we.map(e=>e.item)),Xe=Je(`settings`,Te.map(e=>e.item)),$e=Q.useMemo(()=>{let e=new Map;for(let t of Fe){let n=e.get(t.sessionID);(!n||t.createdAt>n.createdAt||t.createdAt===n.createdAt&&t.messageID>n.messageID)&&e.set(t.sessionID,t)}let t=[],n=new Map(O.map(e=>[e.id,e]));for(let n of Be)t.push({session:n,hit:e.get(n.id)}),e.delete(n.id);for(let r of e.values())t.push({session:n.get(r.sessionID)??{id:r.sessionID,title:r.title??``,directory:r.directory,location:{directory:r.directory}},hit:r});return t},[Be,Fe,O]),et=Je(`sessions`,$e),tt=Ce?Je(`files`,Ve.map(e=>e.item)):[],rt=Ce?Je(`projects`,We.map(e=>e.item)):[],it=(e,t,n)=>t>n?(0,$.jsx)(Yt,{value:`more:${e}`,onSelect:()=>oe({query:Ke,groups:[...qe,e]}),className:`${ua} text-muted-foreground`,children:i(`commandPalette.group.showMore`,{count:t-n})}):null,at=Q.useMemo(()=>{if(!Ce)return[`sessions`,`commands`];let e=e=>e.length?e[0].score:1/0,t=[{key:`commands`,score:e(we)},{key:`settings`,score:e(Te)},{key:`files`,score:e(Ve)},{key:`projects`,score:e(We)}];return t.sort((e,t)=>e.score-t.score),[`sessions`,...t.map(e=>e.key)]},[Ce,we,Te,Ve,We]),st=fe((e,t)=>{q(),u(`chat`),h(!1);let n=ut(e)||``;a?pt.getState().openSession({sessionId:e.id,directory:n}):E(e.id,n),t&&zt(t)}),lt=fe(e=>{let t=ue.find(t=>t.id===e.sessionID)??Be.find(t=>t.id===e.sessionID)??{id:e.sessionID,title:e.title??``,directory:e.directory,location:{directory:e.directory}};st(t,e.messageID)}),dt=fe(async e=>{if(!ie)return;let t=await ia(ee,e);if(!t.ok){Ge.error(aa(t.reason));return}a?a.openFile({path:e}):C(ie,e),q()}),ft=fe((e,t)=>{q();let n={selectedProjectId:e,directoryOverride:t};a?pt.getState().openDraft(n):T(n)}),mt=e=>Pn(Mn(e,w)),ht=e=>!St&&(e.key===`Enter`||e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),e.stopPropagation(),!0),gt=fe(e=>{if(ht(e)||(!Me&&!e.nativeEvent.isComposing&&[`ArrowDown`,`ArrowUp`,`Enter`].includes(e.key)&&je({key:ke,hits:Fe,sessions:Be}),R||e.nativeEvent.isComposing||e.altKey||e.shiftKey)||(B?!e.metaKey||e.ctrlKey:!e.ctrlKey||e.metaKey)||!/^[1-9]$/.test(e.key)||(e.preventDefault(),e.stopPropagation(),e.repeat||!St))return;let t=et[Number(e.key)-1];t?.hit?lt(t.hit):t&&st(t.session)}),_t=e=>{let t=ma(de.get(e.id)?.projectDirectory||ut(e)||``),n=Qe(F,pe,t);return n?.label||(n?.path||t).split(`/`).pop()||``},vt=Ce&&K===G&&!!Se&&X===Se,yt=Ce&&(K!==G||!!ie&&He||Ee.isFetching&&!Ee.isSuccess||De!==null&&Pe.isFetching&&!Pe.isSuccess),[bt,xt]=Q.useState(G);!yt&&bt!==G&&xt(G);let St=!Ce||bt===G&&!yt,Ct=(0,$.jsx)(Qt,{ref:V,variant:R?`mobileGlass`:`default`,className:`font-normal`,"aria-label":i(`commandPalette.title`),inputMode:`search`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,value:ae,onValueChange:e=>{je(null),U(e),oe({query:``,groups:[]})},placeholder:i(`commandPalette.input.placeholder`)}),wt=(0,$.jsxs)(Kt,{shouldFilter:!1,onKeyDownCapture:gt,onPointerDownCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&qn({currentTarget:t})},onPointerCancelCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&Jn({currentTarget:t,detail:1})},onClickCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&e.detail>0&&!Jn({currentTarget:t,detail:e.detail})&&(e.preventDefault(),e.stopPropagation())},className:`max-h-full min-h-0 rounded-[inherit] bg-transparent [&_[cmdk-group]]:px-0 [&_[cmdk-item][data-selected=true]]:!bg-[color-mix(in_srgb,var(--interactive-selection)_40%,transparent)] [&_[cmdk-item]:hover]:!bg-[color-mix(in_srgb,var(--interactive-selection)_40%,transparent)]`,children:[R?(0,$.jsx)(Oe,{title:Ct,backAriaLabel:i(`header.actions.backAria`),onBack:t??q}):Ct,(0,$.jsxs)(Ut,{"aria-label":i(`commandPalette.title`),className:`overscroll-contain p-1.5`,children:[(0,$.jsx)(`div`,{className:`px-3 py-2 typography-meta text-muted-foreground`,"aria-live":`polite`,children:Ne.isError||Ne.data?.phase===`error`||Ne.data?.phase===`partial`?i(`commandPalette.index.partial`):Ne.data?.phase===`ready`?i(`commandPalette.index.ready`,{count:Ne.data.messages}):i(`commandPalette.index.progress`,{completed:Ne.data?.completed??0,total:Ne.data?.total??0})}),St&&!vt&&!Re&&!Ie&&j!==`loading`&&j!==`error`?(0,$.jsx)($t,{className:`py-10 text-center typography-meta text-muted-foreground`,children:i(`commandPalette.empty.noResults`)}):null,St?at.map(e=>e===`commands`&&Ye.length>0?(0,$.jsxs)(Xt,{heading:i(`settings.page.commands.title`),className:da,children:[Ye.map(e=>(0,$.jsx)(Yt,{value:e.id,onSelect:e.onSelect,className:ua,children:(0,$.jsx)(la,{title:pa(e.title,K),trailing:!R&&e.shortcutId?(0,$.jsx)(Jt,{className:`h-3.5 min-w-0 shrink-0 rounded-full border-0 bg-[color-mix(in_srgb,var(--surface-foreground)_6%,transparent)] px-1.5 font-sans text-[10px] font-medium tracking-tight text-muted-foreground/65 shadow-none`,children:mt(e.shortcutId)}):void 0})},e.id)),it(`commands`,we.length,Ye.length)]},`commands`):e===`settings`&&Xe.length>0?(0,$.jsxs)(Xt,{heading:i(`settings.view.home.title`),className:da,children:[Xe.map(e=>(0,$.jsx)(Yt,{value:e.id,onSelect:e.onSelect,className:ua,children:(0,$.jsx)(la,{title:pa(e.title,K)})},e.id)),it(`settings`,Te.length,Xe.length)]},`settings`):e===`sessions`&&et.length>0?(0,$.jsxs)(Xt,{heading:i(`layout.mainTab.chat`),className:da,children:[et.map(({session:e,hit:t},n)=>{let r=t?.title||e.title||i(`commandPalette.session.untitled`),a=_t(e);return(0,$.jsxs)(Yt,{value:t?`message:${e.id}:${t.messageID}`:`session:${e.id}`,onSelect:()=>t?lt(t):st(e),className:`flex-col items-stretch gap-1 rounded-lg px-3 py-2`,"aria-keyshortcuts":!R&&n<9?`${B?`Meta`:`Control`}+${n+1}`:void 0,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-ui-label text-foreground`,title:r,children:pa(r,K)}),(0,$.jsx)(`span`,{className:`max-w-[28%] shrink-0 truncate typography-meta text-muted-foreground`,title:a,children:a}),!R&&n<9?(0,$.jsxs)(Jt,{className:`h-5 min-w-8 shrink-0 rounded-full border-0 bg-interactive-selection px-2 text-muted-foreground shadow-none`,children:[B?`⌘`:`Ctrl+`,n+1]}):null]}),t?(0,$.jsxs)(`span`,{className:`line-clamp-3 whitespace-pre-wrap break-words typography-ui-label text-muted-foreground`,children:[(0,$.jsxs)(`span`,{className:`font-medium`,children:[i(t.role===`user`?`commandPalette.message.user`:`commandPalette.message.assistant`),`: `]}),pa(t.snippet,K)]}):null]},t?`message:${e.id}:${t.messageID}`:`session:${e.id}`)}),it(`sessions`,$e.length,et.length)]},`sessions`):e===`files`&&tt.length>0?(0,$.jsxs)(Xt,{heading:i(`layout.mainTab.files`),className:da,children:[tt.map(e=>{let t=be(e.relativePath||e.name,{maxLength:80});return(0,$.jsx)(Yt,{value:`file:${e.path}`,onSelect:()=>{dt(e.path)},className:ua,children:(0,$.jsx)(la,{title:pa(e.name,K),description:t===e.name?void 0:pa(t,K)})},`file:${e.path}`)}),it(`files`,Ve.length,tt.length)]},`files`):e===`projects`&&rt.length>0?(0,$.jsxs)(Xt,{heading:i(`sessions.sidebar.projectsTitle`),className:da,children:[rt.map(e=>{let t=e.displayName;return(0,$.jsx)(Yt,{value:`project:${e.id}`,onSelect:()=>ft(e.id,e.path),className:ua,children:(0,$.jsx)(la,{title:pa(t,K)})},`project:${e.id}`)}),it(`projects`,We.length,rt.length)]},`projects`):null):(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-10 text-center typography-meta text-muted-foreground`,children:i(`common.loading`)}),St&&j===`loading`?(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-4 text-center typography-meta text-muted-foreground`,children:i(`common.loading`)}):null,St&&j===`error`?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.sessions`)}):null,St&&Re?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.sessions`)}):null,St&&Ie?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.messages`)}):null,St&&vt?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`mobile.files.error.listFailed`)}):null]})]});return e===`page`?(0,$.jsx)(`section`,{ref:re,"data-global-search":`true`,"data-page-scroll-lock":`true`,"aria-label":i(`commandPalette.title`),className:`yuri-global-search-page flex min-h-0 w-full flex-col bg-background text-foreground`,children:wt}):(0,$.jsx)(Mt,{open:o,onOpenChange:l,onOpenChangeComplete:e=>{e||c(!1)},children:(0,$.jsxs)(kt,{ref:re,initialFocus:V,"data-global-search":`true`,"data-mobile":R,"data-page-scroll-lock":`true`,className:R?`yuri-global-search-page yuri-global-search-mobile fixed inset-0 z-50 m-0 flex max-w-none translate-x-0 translate-y-0 flex-col gap-0 overflow-hidden rounded-none border-0 bg-background p-0`:`yuri-global-search yuri-mobile-overlay-surface yuri-mobile-overlay-surface--translucent yuri-composer-autocomplete-surface fixed left-1/2 top-[10vh] z-50 w-[min(56rem,calc(100vw-3rem))] max-w-none -translate-x-1/2 translate-y-0 gap-0 overflow-hidden rounded-3xl border-0 p-0`,containerClassName:`block p-0`,overlayClassName:`bg-transparent dark:bg-transparent`,showCloseButton:!1,children:[(0,$.jsxs)(Dt,{className:`sr-only`,children:[(0,$.jsx)(At,{children:i(`commandPalette.title`)}),(0,$.jsx)(jt,{children:i(`commandPalette.description`)})]}),wt]})})}),_a=class extends Q.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t})}handleReset=()=>{this.setState({hasError:!1,error:void 0,errorInfo:void 0})};render(){return this.state.hasError?(0,$.jsx)(`div`,{className:`flex items-center justify-center min-h-screen p-4`,children:(0,$.jsxs)(Bn,{className:`w-full max-w-md`,children:[(0,$.jsx)(wn,{className:`text-center`,children:(0,$.jsxs)(Cn,{className:`flex items-center justify-center gap-2 text-destructive`,children:[(0,$.jsx)(Z,{name:`chat-3`,className:`h-5 w-5`}),this.props.texts.title]})}),(0,$.jsxs)(Dn,{className:`space-y-4`,children:[(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground text-center`,children:this.props.texts.description}),this.props.sessionId&&(0,$.jsxs)(`div`,{className:`text-xs text-muted-foreground text-center`,children:[this.props.texts.sessionLabel,`: `,this.props.sessionId]}),this.state.error&&(0,$.jsxs)(`details`,{className:`text-xs font-mono bg-muted p-3 rounded`,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer hover:bg-interactive-hover/80`,children:this.props.texts.detailsSummary}),(0,$.jsx)(`pre`,{className:`mt-2 max-h-48 overflow-auto`,children:this.state.error.toString()})]}),(0,$.jsx)(`div`,{className:`flex gap-2`,children:(0,$.jsxs)(X,{onClick:this.handleReset,variant:`outline`,className:`flex-1`,children:[(0,$.jsx)(Z,{name:`restart`,className:`h-4 w-4 mr-2`}),this.props.texts.resetAction]})}),(0,$.jsx)(`div`,{className:`text-xs text-muted-foreground text-center`,children:this.props.texts.persistentHint})]})]})}):this.props.children}};function va(e){let t=(0,ui.c)(22),{t:n}=ge(),r;t[0]===n?r=t[1]:(r=n(`chat.errorBoundary.title`),t[0]=n,t[1]=r);let i;t[2]===n?i=t[3]:(i=n(`chat.errorBoundary.description`),t[2]=n,t[3]=i);let a;t[4]===n?a=t[5]:(a=n(`chat.errorBoundary.sessionLabel`),t[4]=n,t[5]=a);let o;t[6]===n?o=t[7]:(o=n(`chat.errorBoundary.detailsSummary`),t[6]=n,t[7]=o);let s;t[8]===n?s=t[9]:(s=n(`chat.errorBoundary.resetAction`),t[8]=n,t[9]=s);let c;t[10]===n?c=t[11]:(c=n(`chat.errorBoundary.persistentHint`),t[10]=n,t[11]=c);let l;t[12]!==r||t[13]!==i||t[14]!==a||t[15]!==o||t[16]!==s||t[17]!==c?(l={title:r,description:i,sessionLabel:a,detailsSummary:o,resetAction:s,persistentHint:c},t[12]=r,t[13]=i,t[14]=a,t[15]=o,t[16]=s,t[17]=c,t[18]=l):l=t[18];let u;return t[19]!==e||t[20]!==l?(u=(0,$.jsx)(_a,{...e,texts:l}),t[19]=e,t[20]=l,t[21]=u):u=t[21],u}var ya=1440,ba=e=>{let t=(0,ui.c)(8),{isMobile:n,isVSCode:r,directory:i}=e,a=de(`(min-width: ${ya}px)`),o;t[0]===i?o=t[1]:(o=i?F(i):``,t[0]=i,t[1]=o);let s=o,c;t[2]===s?c=t[3]:(c=e=>{let t=s?e.contextPanelByDirectory[s]:void 0;if(!t?.isOpen)return!1;let n=t.tabs.find(e=>e.id===t.activeTabId)??t.tabs[t.tabs.length-1]??null;return!!(n&&n.mode!==`chat`)},t[2]=s,t[3]=c);let l=P(c),u=P(xa),d=P(Sa),f=!n&&!r&&!l&&!d,p=f&&a,m=u&&p,h;return t[4]!==p||t[5]!==f||t[6]!==m?(h={visible:m,fits:p,layoutAllows:f},t[4]=p,t[5]=f,t[6]=m,t[7]=h):h=t[7],h};function xa(e){return e.workStatusPanelEnabled}function Sa(e){return e.isRightSidebarOpen}var Ca=async({directory:e,sessionID:t,signal:n})=>{let r=await j.getScopedSdkClient(e).session.list({directory:e,parentID:t,limit:200},{signal:n});if(!Array.isArray(r?.data))throw Error(`session.list children returned no data`);return r.data.flatMap(e=>{if(!e?.id)return[];let t=typeof e.title==`string`?e.title:void 0;return[{id:e.id,title:t}]})},wa=(e,t,n={})=>{let r=n.listChildren??Ca;return R({queryKey:c.workStatusChildren.list(e,t,n.transport),enabled:!!(e&&t),queryFn:({signal:n})=>r({directory:e,sessionID:t,signal:n}),staleTime:5e3,refetchInterval:1e4})},Ta=[],Ea=(...e)=>{let t=Lt(...e);return t?t.charAt(0).toUpperCase()+t.slice(1):``},Da=(...e)=>{for(let t of e){if(!t||typeof t!=`object`)continue;let e=t.description;if(typeof e!=`string`)continue;let n=e.trim();if(n)return n}return``},Oa=e=>e===`pending`||e===`running`,ka=e=>{let t=[],n=new Set;for(let r of e.messageOrder){let i=e.partsByMessageID[r];if(i)for(let e of i){if(!e?.id||n.has(e.id))continue;if(e.type===`tool`&&Pt(e.tool)){n.add(e.id);let r=e.state;t.push({id:e.id,sessionID:Bt(e),label:Ea(r?.input,r?.metadata,e.metadata),description:Da(r?.input,e.metadata,r?.metadata),running:Oa(r?.status)});continue}if(e.type!==`subtask`)continue;let r=e,i=typeof r.taskSessionID==`string`?r.taskSessionID.trim():``,a=typeof r.agent==`string`?r.agent.trim():``,o=typeof r.description==`string`?r.description.trim():``;n.add(e.id),t.push({id:e.id,sessionID:i||void 0,label:a?a.charAt(0).toUpperCase()+a.slice(1):``,description:o,running:Oa(r.status)})}}return t.length===0?Ta:t},Aa=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||r.sessionID!==i.sessionID||r.label!==i.label||r.description!==i.description||r.running!==i.running)return!1}return!0},ja=e=>e.childTitle||e.description||e.agent,Ma=e=>({key:e.key,sessionID:e.sessionID,seed:e.key,label:ja(e),phase:e.working?`working`:`done`}),Na=(e,t,n)=>{let r=new Map(t.map(e=>[e.id,e])),i=new Set,a=[],o=new Map,s=e=>{let t=e.sessionID;if(!t){a.push(e);return}i.add(t);let n=o.get(t);if(n===void 0){o.set(t,a.length),a.push({...e,key:t,sessionID:t});return}let r=a[n];r&&(a[n]={...r,description:r.description||e.description,agent:r.agent||e.agent,childTitle:e.childTitle||r.childTitle,working:r.working||e.working})};for(let t of e){let e=t.sessionID?r.get(t.sessionID):void 0;s({key:t.id,sessionID:t.sessionID,description:t.description,agent:t.label,childTitle:e?.title?.trim()||``,working:t.running||!!e?.busy||!!(t.sessionID&&n?.has(t.sessionID))})}for(let e of t)i.has(e.id)||s({key:e.id,sessionID:e.id,description:``,agent:``,childTitle:e.title?.trim()||``,working:e.busy});let c=a.map(Ma),l=c.filter(e=>e.phase===`working`),u=c.filter(e=>e.phase===`done`);return l.length===0?u:u.length===0?l:[...l,...u]},Pa=new Set,Fa=e=>{if(!e)return``;let t=[];for(let n of Object.keys(e)){let r=e[n]?.type;(r===`busy`||r===`retry`)&&t.push(n)}return t.sort(),t.join(`
2
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,i as n,n as r,o as i,r as a,s as o}from"./runtime-switch-CAZiOV2G.js";import{a as s,o as c,u as l}from"./queryRuntime-DKGLQtb9.js";import{Mt as u,Rt as d,Sn as f,Zt as p,ct as m,dn as h,en as g,et as _,in as v,rn as y,wn as b}from"./persistence-Dzooc9Xg.js";import{a as x,i as S,o as C}from"./vendor-zustand-o69pgTEK.js";import{it as w,nt as T,o as E,rt as D,s as O}from"./vendor-base-ui-CdzJ6My_.js";import{Ct as k,Mt as A,Nt as j,dr as M,r as N}from"./platform-7bX6qtBV.js";import"./brand-storage-bootstrap-D4BW3w-M.js";import{n as P,t as F,x as I}from"./useUIStore-NMQx_cnG.js";import{n as L}from"./vendor-react-BP2cRVqX.js";import{l as ee,n as te,o as R,s as z,t as B}from"./vendor-tanstack-react-query-CdqCAt40.js";import{A as ne,S as re,k as V}from"./runtime-file-resource-C1k5nbWb.js";import{o as H}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{i as ie}from"./terminalApi-BHXvha-U.js";import{c as ae,d as U,f as W,l as oe,m as G,n as K,o as q,p as se,s as J,t as ce,u as le}from"./vendor-pierre-diffs-DPBtNDJ5.js";import{r as ue}from"./vendor-sonner-ZS8XIOVl.js";import{l as de,n as fe,p as pe,r as me}from"./vendor-reactuses-core-BpfIZ1tg.js";import{d as he,f as ge,i as _e,l as ve,p as ye,r as Y,t as X,u as be}from"./button-C3292Ee6.js";import{i as xe,t as Se}from"./store-CZu30-QE.js";import{A as Ce,M as we,O as Te,j as Ee,k as De,t as Oe}from"./MobileDetailNavigation-nJl1j85R.js";import{$n as ke,$r as Ae,Ar as je,Br as Me,Bt as Ne,Cn as Pe,Cr as Fe,Er as Ie,Fa as Le,Ir as Re,Lr as ze,Mr as Be,Nr as Ve,Or as He,Pr as Ue,Qr as We,Rr as Ge,Sa as Ke,Sn as qe,So as Je,Sr as Ye,Tr as Xe,Un as Ze,Vi as Qe,Wt as $e,Yn as et,Zn as tt,bi as nt,bo as rt,br as it,cn as at,d as ot,da as st,fo as ct,hi as lt,jr as ut,kn as dt,mo as ft,o as pt,pi as mt,po as ht,ri as gt,wa as _t,wo as vt,xn as yt,xr as bt,zt as xt}from"./useMobileNavigationStore-DvSdigrK.js";import{i as St,t as Ct}from"./useAssistantUIStore-D7JZlg_Q.js";import{t as wt}from"./AgentAvatar-1UO8KpCd.js";import{n as Tt,t as Et}from"./useThemeSystem-8jhE4Zyk.js";import{n as Z}from"./Icon-jsQQXouE.js";import{a as Dt,i as Ot,n as kt,o as At,r as jt,t as Mt}from"./dialog-DrgcVFLG.js";import{d as Nt}from"./gitApi-D0t8KXsn.js";import{B as Pt,C as Ft,Ft as It,H as Lt,Q as Rt,T as zt,V as Bt,X as Vt,a as Ht,at as Ut,bt as Wt,dt as Gt,et as Kt,gt as qt,ht as Jt,it as Yt,nt as Xt,ot as Zt,rt as Qt,tt as $t,vt as en,yt as tn}from"./useAppFontEffects-CzYFu1JQ.js";import{A as nn,_ as rn,a as an,b as on,d as sn,f as cn,h as ln,i as un,l as dn,m as fn,n as pn,p as mn,r as hn,s as gn,t as _n,x as vn}from"./projectMeta---vfnScT.js";import{t as yn}from"./input-DaOOTCQd.js";import{i as bn,n as xn,t as Sn}from"./tooltip-DGUZtHif.js";import{Dt as Cn,Et as wn,J as Tn,Rt as En,Tt as Dn,_ as On,at as kn,ct as An,g as jn,gt as Mn,it as Nn,mt as Pn,q as Fn,rt as In,st as Ln,tt as Rn,ut as zn,wt as Bn}from"./speechSettingsQueries-Chq_vO6e.js";import{i as Vn,t as Hn}from"./OverlayScrollbar-C4VUlRzo.js";import{d as Un}from"./image-loading-CVq5GLEY.js";import{x as Wn}from"./dropdown-menu.styles-CeLR2UTs.js";import{T as Gn,a as Kn,g as qn,h as Jn,i as Yn,n as Xn,o as Zn,p as Qn,r as $n,t as er,x as tr,y as nr}from"./textarea-BcA4uouw.js";import{w as rr}from"./sessionChangeSummary-DTa1NhbK.js";import{i as ir,t as ar}from"./vendor-framer-motion-D-oiwsxL.js";import{D as or,b as sr,h as cr,k as lr,r as ur,v as dr,w as fr,y as pr}from"./insertionBoundaries-UMFkRmkG.js";import{n as mr,t as hr}from"./appThemeRegistry-Cxk6QddU.js";import{o as gr}from"./MarkdownRenderer-QKxUWu_S.js";import{_ as _r,c as vr,g as yr,i as br,l as xr,n as Sr,o as Cr,s as wr,t as Tr,v as Er,y as Dr}from"./vendor-dnd-kit-core-5pNnzVdw.js";import{a as Or,o as kr,s as Ar,t as jr}from"./vendor-dnd-kit-sortable-Dm50I0m7.js";import{f as Mr,l as Nr}from"./markdown-worker-CkO3sT4Y.js";import{n as Pr}from"./useEffectiveDirectory-CYhf9ITQ.js";import{t as Fr}from"./LoadingImage-DvtPqFRw.js";import{n as Ir}from"./useWorkerHighlightedLines-BThWzx-h.js";import{t as Lr}from"./vendor-tanstack-react-virtual-B_EO--9t.js";import{t as Rr}from"./vendor-motion-88WXBOBf.js";import{B as zr,t as Br,u as Vr,v as Hr,x as Ur}from"./MobileTabPageHeader-sOgdUSiO.js";import{c as Wr,l as Gr}from"./mcpQueries-CCU0buGG.js";import{a as Kr,c as qr,d as Jr,i as Yr,l as Xr,m as Zr,n as Qr,o as $r,r as ei,s as ti,t as ni}from"./scheduledTaskNavigation-C6UYwVbD.js";import{n as ri}from"./mobileBackNavigation-CBPY3q34.js";import{n as ii,r as ai}from"./sessionLookup-xGVDWmBL.js";import{n as oi,r as si,t as ci}from"./collapsible-B0yvtXQR.js";import{t as li}from"./vendor-cron-parser-BmO80h0C.js";var Q=e(w(),1),ui=L(),$=D(),di=e(T(),1);function fi(){return new Worker(ce,{type:`module`})}var pi=[`typescript`,`javascript`,`tsx`,`jsx`,`json`,`markdown`],mi={unified:{poolSize:1,totalASTLRUCacheSize:24,lineDiffType:`none`},split:{poolSize:2,totalASTLRUCacheSize:56,lineDiffType:`word-alt`}},hi,gi,_i=e=>{let t=mi[e],n=new se({workerFactory:fi,poolSize:t.poolSize,totalASTLRUCacheSize:t.totalASTLRUCacheSize},{theme:{light:`pierre-light`,dark:`pierre-dark`},langs:pi,lineDiffType:t.lineDiffType,preferredHighlighter:`shiki-wasm`});return n.initialize(),n},vi=e=>{if(!(typeof window>`u`))return e===`split`?(gi??=_i(`split`),gi):(hi??=_i(`unified`),hi)},yi=e=>{let t=(0,ui.c)(7),{children:n,renderTheme:r}=e,i=xi(`unified`),a=xi(`split`),o,s;t[0]!==r||t[1]!==a||t[2]!==i?(o=()=>{i&&i.setRenderOptions({theme:r,lineDiffType:mi.unified.lineDiffType}),a&&a.setRenderOptions({theme:r,lineDiffType:mi.split.lineDiffType})},s=[r,a,i],t[0]=r,t[1]=a,t[2]=i,t[3]=o,t[4]=s):(o=t[3],s=t[4]),(0,Q.useEffect)(o,s);let c;return t[5]===n?c=t[6]:(c=(0,$.jsx)($.Fragment,{children:n}),t[5]=n,t[6]=c),c},bi=e=>{let t=(0,ui.c)(11),{children:n}=e,r=Et(),i,a;if(t[0]!==r?.availableThemes||t[1]!==r?.darkThemeId||t[2]!==r?.lightThemeId){let e=Un(!1),n=Un(!0),o=r?.lightThemeId??e.metadata.id,s=r?.darkThemeId??n.metadata.id;a=r?.availableThemes.find(e=>e.metadata.id===o)??e,i=r?.availableThemes.find(e=>e.metadata.id===s)??n,hr(a),hr(i),t[0]=r?.availableThemes,t[1]=r?.darkThemeId,t[2]=r?.lightThemeId,t[3]=i,t[4]=a}else i=t[3],a=t[4];let o;t[5]!==i.metadata.id||t[6]!==a.metadata.id?(o={light:a.metadata.id,dark:i.metadata.id},t[5]=i.metadata.id,t[6]=a.metadata.id,t[7]=o):o=t[7];let s=o,c;return t[8]!==n||t[9]!==s?(c=(0,$.jsx)(yi,{renderTheme:s,children:n}),t[8]=n,t[9]=s,t[10]=c):c=t[10],c},xi=e=>{let t=(0,ui.c)(2),n=e===void 0?`unified`:e,r;return t[0]===n?r=t[1]:(r=vi(n),t[0]=n,t[1]=r),r},Si=(e,t)=>{if(!e||typeof e!=`object`)return!1;let n=e;return(n.role===`user`||n.role===`assistant`)&&typeof n.sessionID==`string`&&n.sessionID.length>0&&typeof n.messageID==`string`&&n.messageID.length>0&&typeof n.snippet==`string`&&typeof n.createdAt==`number`&&Number.isFinite(n.createdAt)&&t.length>0},Ci=async e=>{let t=e.query.trim();if(!t)return[];let n=await(e.fetch??l)(`/api/yuri/content-search`,{query:{q:t,limit:String(e.limit??30)},signal:e.signal});if(!n.ok)throw Error(`session content search failed (${n.status})`);let r=await n.json();if(!Array.isArray(r?.hits))throw Error(`session content search returned no hits`);return r.hits.flatMap(e=>Si(e,typeof e?.directory==`string`?e.directory:``)?[e]:[])},wi=(e,t)=>{let i=e.trim(),a=t.scope,o=a?.transport??n(),s=a?.generation??r(),l=t.searchContent??Ci;return R({queryKey:c.sessionContentSearch.query(i,``,s,o),enabled:i.length>0&&a!==null,queryFn:({signal:e})=>a?l({scope:a,query:i,limit:30,signal:e}):[],staleTime:0,refetchInterval:3e3,retry:1})},Ti=(e=l)=>R({queryKey:[n(),`contentSearchStatus`,r()],queryFn:async({signal:t})=>{let n=await e(`/api/yuri/content-search`,{signal:t});if(n.status===404||n.status===501)return null;if(!n.ok)throw Error(`Content index unavailable (${n.status})`);let{index:r}=await n.json();if(!r||![`pending`,`indexing`,`ready`,`partial`,`error`].includes(r.phase)||![r.total,r.completed,r.failed,r.messages].every(e=>Number.isFinite(e)&&e>=0)||r.initializationRequired!==void 0&&typeof r.initializationRequired!=`boolean`||[r.indexStartedAt,r.indexCompletedAt,r.coveredSince,r.verifiedAt,r.updatedAt].some(e=>e!=null&&!Number.isFinite(e)))throw Error(`Invalid content index status`);return r},refetchInterval:3e3,staleTime:0}),Ei=gr(()=>H(()=>import(`./OnboardingScreen-DTr_WxYY.js`).then(e=>({default:e.OnboardingScreen})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])));function Di(){let e=(0,ui.c)(11),[t,n]=Q.useState(!1),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=Ti(),e[0]=r):r=e[0];let i=!t,a;e[1]===i?a=e[2]:(a={...r,enabled:i,refetchOnWindowFocus:!1,refetchInterval:Oi},e[1]=i,e[2]=a);let o=z(a),s=o.data,c=o.isFetchedAfterMount&&!o.isError&&(s===null||s&&(s.initializationRequired===void 0||s.initializationRequired===!1&&s.updatedAt!=null)),l,u;if(e[3]===c?(l=e[4],u=e[5]):(l=()=>{c&&n(!0)},u=[c],e[3]=c,e[4]=l,e[5]=u),Q.useEffect(l,u),t||!s?.initializationRequired)return null;let d;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>{e||n(!0)},e[6]=d):d=e[6];let f;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>n(!0),e[7]=f):f=e[7];let p;return e[8]!==s||e[9]!==o.isError?(p=(0,$.jsx)(Q.Suspense,{fallback:null,children:(0,$.jsx)(Mt,{open:!0,onOpenChange:d,children:(0,$.jsx)(kt,{showCloseButton:!1,className:`h-full max-w-none rounded-none border-0 p-0`,overlayClassName:`z-[9997]`,containerClassName:`z-[9997] items-stretch p-0`,children:(0,$.jsx)(Ei,{mode:`content-index`,indexStatus:s,indexStatusError:o.isError,onContinueInBackground:f})})})}),e[8]=s,e[9]=o.isError,e[10]=p):p=e[10],p}function Oi(e){let t=e.state.data;return t===null||t&&t.initializationRequired===void 0||t?.initializationRequired===!1&&t.updatedAt!=null?!1:3e3}function ki(){let e=(0,ui.c)(4);if(V())return null;let t,n;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)){let r=Ti().queryKey;t=Di,n=JSON.stringify(r),e[0]=t,e[1]=n}else t=e[0],n=e[1];let r;return e[2]===n?r=e[3]:(r=(0,$.jsx)(t,{},n),e[2]=n,e[3]=r),r}var Ai=Q.forwardRef((e,t)=>{let n=(0,ui.c)(11),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=Y(`peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-none transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[checked]:bg-primary data-[unchecked]:bg-[var(--interactive-border)]`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o={width:`36px`,height:`20px`,minWidth:`36px`,minHeight:`20px`},n[5]=o):o=n[5];let s;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,$.jsx)(E,{className:Y(`pointer-events-none block rounded-full bg-background shadow-none ring-0 transition-transform data-[checked]:translate-x-4 data-[unchecked]:translate-x-0`),style:{width:`16px`,height:`16px`,minWidth:`16px`,minHeight:`16px`}}),n[6]=s):s=n[6];let c;return n[7]!==i||n[8]!==t||n[9]!==a?(c=(0,$.jsx)(O,{className:a,style:o,...i,ref:t,children:s}),n[7]=i,n[8]=t,n[9]=a,n[10]=c):c=n[10],c});Ai.displayName=`Switch`;var ji={},Mi=[],Ni=(e,t)=>{if(!e)return t(`mcpDropdown.status.unknown`);switch(e.status){case`connected`:return t(`mcpDropdown.status.connected`);case`failed`:return t(`mcpDropdown.status.failed`,{error:e.error||t(`mcpDropdown.status.unknownError`)});case`needs_auth`:return t(`mcpDropdown.status.needsAuth`);case`needs_client_registration`:return t(`mcpDropdown.status.needsRegistration`,{error:e.error||``});default:return e.status}},Pi=e=>{switch(e?.status){case`connected`:return`success`;case`failed`:return`error`;case`needs_auth`:case`needs_client_registration`:return`warning`;default:return`default`}},Fi=({active:e,className:t,headerAction:n,listClassName:r,hideHeader:i=!1,mobileListDensity:a=!1})=>{let{t:o}=ge(),s=k(e=>e.currentDirectory)??null,c=zr(e=>e.connect),l=zr(e=>e.disconnect),{data:u,refetch:d,isError:f,error:p}=Gr(s,{enabled:e}),{data:m}=Wr(s,{enabled:e}),h=u??ji,g=m??Mi,[_,v]=Q.useState(!1),[y,b]=Q.useState(null),x=Q.useMemo(()=>{let e=new Set(Object.keys(h));for(let t of g)t?.name&&e.add(t.name);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[g,h]),S=Q.useCallback(e=>{if(e?.preventDefault(),_)return;v(!0);let t=new Promise(e=>setTimeout(e,500));Promise.all([d(),t]).finally(()=>{v(!1)})},[_,d]);return(0,$.jsxs)(`div`,{className:Y(`w-full`,t),children:[i?null:(0,$.jsx)(`div`,{className:`border-b border-[var(--interactive-border)]`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-4 py-2.5`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex items-baseline gap-2`,children:[(0,$.jsx)(`div`,{className:`typography-ui-header font-semibold text-foreground`,children:o(`mcpDropdown.title`)}),s&&(0,$.jsx)(`div`,{className:`truncate typography-micro text-muted-foreground`,children:s.split(`/`).pop()||s})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[n,(0,$.jsx)(`button`,{type:`button`,className:`inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-foreground hover:bg-interactive-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,disabled:_,onClick:S,"aria-label":o(`mcpDropdown.actions.refreshAria`),children:(0,$.jsx)(Z,{name:`refresh`,className:Y(`h-4 w-4`,_&&`animate-spin`)})})]})]})}),(0,$.jsx)(`div`,{className:Y(`max-h-64 overflow-y-auto`,a?`space-y-1 py-3`:`px-3 py-2.5`,r),children:(0,$.jsxs)(`div`,{className:Y(!a&&x.length>0&&`rounded-xl bg-[var(--surface-muted)] p-1.5`),children:[x.map(e=>{let t=h[e]??(f&&!u&&g.some(t=>t.name===e)?{status:`failed`,error:p.message}:void 0),n=Pi(t),r=t?.status===`connected`,i=y===e,d=Ni(t,o);return(0,$.jsxs)(`div`,{className:Y(`flex items-center justify-between rounded-lg hover:bg-interactive-hover/50`,a?`gap-3 px-4 py-3`:`gap-2 px-2.5 py-2`),children:[(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,$.jsxs)(Sn,{children:[(0,$.jsx)(bn,{asChild:!0,children:(0,$.jsx)(`span`,{className:Y(`rounded-full flex-shrink-0`,a?`h-2.5 w-2.5`:`h-2 w-2`,n===`success`&&`bg-status-success`,n===`error`&&`bg-status-error`,n===`warning`&&`bg-status-warning`,n==="default"&&`bg-muted-foreground/40`),"aria-label":d})}),(0,$.jsx)(xn,{side:`left`,children:(0,$.jsx)(`p`,{children:d})})]}),(0,$.jsx)(`span`,{className:Y(`truncate`,a?`text-[17px] leading-6 font-medium`:`typography-ui-label`),children:e})]})}),(0,$.jsx)(Ai,{checked:r,disabled:i,className:`data-[checked]:bg-status-info`,onCheckedChange:async t=>{b(e);try{t?await c(e,s):await l(e,s)}finally{b(null)}}})]},e)}),x.length===0&&(0,$.jsx)(`div`,{className:`px-4 py-5 typography-ui-label text-muted-foreground text-center`,children:o(`mcpDropdown.empty.configureInConfig`)})]})})]})},Ii=e=>!(e.dismissed===`true`||e.sessionShown===`true`||e.hasActiveToast),Li=e=>!(!e.version||e.seenVersions.has(e.version)||e.dismissedVersion!==null&&e.dismissedVersion===e.version),Ri=e=>{if(typeof e!=`object`||!e)return``;let t=e.version;return typeof t==`string`?t.trim():``},zi=e=>{if(!e||e.available!==!0||e.canManage===!1)return``;let t=typeof e.latestVersion==`string`?e.latestVersion:typeof e.targetVersion==`string`?e.targetVersion:``;return t?t.trim():``},Bi=e=>{let t=e.trim().replace(/^v/i,``);return t?{target:t}:null},Vi=5e3,Hi={setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e)};function Ui(e,t,n=Hi){if(!e)return()=>void 0;let r=n.setTimeout(()=>{t().catch(()=>void 0)},Vi);return()=>n.clearTimeout(r)}var Wi=(e,t)=>({queryKey:[e,`opencode-update`,t],queryFn:async({signal:i})=>{let a=()=>e===n()&&t===r();if(!a())throw Error(`Stale OpenCode update check`);let o=await l(`/api/opencode/upgrade-status`,{headers:{Accept:`application/json`},signal:i});if(!o.ok)throw Error(`OpenCode update check failed`);let s=await o.json();if(i.aborted||!a())throw Error(`Stale OpenCode update check`);if(!s||typeof s!=`object`||Array.isArray(s))throw Error(`Invalid OpenCode update status`);return s},staleTime:3e4,refetchInterval:3e5,refetchOnWindowFocus:!0,refetchOnReconnect:!0,retry:1}),Gi=`opencode-update-available`,Ki=`opencode-upgrade-progress`,qi=`opencode-update-toast-dismissed-version`,Ji=()=>{let{t:e}=ge(),i=P(e=>e.showOpenCodeUpdateNotifications),a=Q.useRef(new Set),o=Q.useRef(!1),s=Q.useSyncExternalStore(t,n,n),c=Q.useSyncExternalStore(t,r,r),u=ee(),[d,f]=Q.useState(!1);Q.useEffect(()=>Ui(i,async()=>{f(!0)}),[i]);let p=z({...Wi(s,c),enabled:i&&d});me(`yuri:opencode-update-available`,e=>{i&&Ri(e.detail)&&p.refetch()});let m=`${qi}:${s}`;Q.useEffect(()=>{a.current.clear(),Ge.dismiss(Gi),Ge.dismiss(Ki)},[s,c]),Q.useEffect(()=>{i||Ge.dismiss(Gi)},[i]);let h=fe(async(t,i=!1)=>{if(o.current)return;o.current=!0;let a=()=>s===n()&&c===r();Ge.dismiss(Gi),Ge.message(e(`opencodeUpdate.toast.upgrading.title`),{id:Ki,description:e(`opencodeUpdate.toast.upgrading.description`),duration:1/0,icon:(0,$.jsx)(Z,{name:`refresh`,className:`h-4 w-4 animate-spin text-muted-foreground`})});try{let n=Bi(t);if(!n)throw Error(e(`opencodeUpdate.toast.failed.description`));let r=await l(`/api/opencode/upgrade`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json`},body:JSON.stringify({...n,confirmActiveTasks:i})}),o=await r.json().catch(()=>null);if(!a())return;if(o?.errorCode===`UPGRADE_ACTIVE_TASKS`){Ge.error(e(`opencodeUpdate.toast.failed.title`),{id:Ki,description:o.error,duration:1/0,action:{label:e(`opencodeUpdate.toast.actions.update`),onClick:()=>{a()&&h(t,!0)}}});return}if(!r.ok||o?.success!==!0)throw Error(o?.error||r.statusText||e(`opencodeUpdate.toast.failed.description`));Ge.success(e(`opencodeUpdate.toast.updated.title`),{id:Ki,description:o?.version?e(`opencodeUpdate.toast.updated.descriptionWithVersion`,{version:o.version}):e(`opencodeUpdate.toast.updated.description`),duration:1/0,icon:(0,$.jsx)(Z,{name:`check`,className:`h-4 w-4 text-[var(--status-success)]`})}),u.invalidateQueries({queryKey:[s,`opencode-update`,c]}),u.invalidateQueries({queryKey:[s,`about`,c]})}catch(n){if(!a())return;Ge.error(e(`opencodeUpdate.toast.failed.title`),{id:Ki,description:n instanceof Error?n.message:e(`opencodeUpdate.toast.failed.description`),duration:1/0,action:{label:e(`opencodeUpdate.toast.actions.update`),onClick:()=>{a()&&h(t)}}})}finally{o.current=!1}});return Q.useEffect(()=>{let t=t=>{if(!P.getState().showOpenCodeUpdateNotifications){Ge.dismiss(Gi);return}Li({version:t,dismissedVersion:I().getItem(m),seenVersions:a.current})&&(a.current.add(t),Ge.info(e(`opencodeUpdate.toast.available.title`),{id:Gi,description:e(`opencodeUpdate.toast.available.description`,{version:t}),duration:1/0,action:{label:e(`opencodeUpdate.toast.actions.update`),onClick:()=>{s===n()&&c===r()&&h(t)}},cancel:{label:e(`opencodeUpdate.toast.actions.dismiss`),onClick:()=>{I().setItem(m,t),Ge.dismiss(Gi)}}}))},i=zi(p.data);i?t(i):(p.data?.available===!1||p.data?.canManage===!1)&&Ge.dismiss(Gi)},[i,e,p.data,m,s,c,h]),null},Yi=()=>{let e=(0,ui.c)(3),[t,n]=Q.useState(Xi),{isUpdating:r}=t,i,a;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>ft(n),a=[],e[0]=i,e[1]=a):(i=e[0],a=e[1]),Q.useEffect(i,a),!r)return null;let o;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(`div`,{className:`fixed inset-0 z-[9999] flex items-center justify-center bg-background/90`,children:(0,$.jsx)(En,{width:80,height:80,isAnimated:!0})}),e[2]=o):o=e[2],o};function Xi(){return ht()}var Zi=`/assets/yuri-wordmark-DSJqXYVo.svg`;function Qi(e){let t=(0,ui.c)(5),{className:n,width:r}=e,i=n===void 0?``:n,a=r===void 0?112:r,o=`inline-block shrink-0 ${i}`,s;t[0]===a?s=t[1]:(s={width:a,aspectRatio:`626.723 / 280`,backgroundColor:`currentColor`,mask:`url("${Zi}") center / contain no-repeat`,WebkitMask:`url("${Zi}") center / contain no-repeat`},t[0]=a,t[1]=s);let c;return t[2]!==o||t[3]!==s?(c=(0,$.jsx)(`span`,{role:`img`,"aria-label":`Yuri`,className:o,style:s}),t[2]=o,t[3]=s,t[4]=c):c=t[4],c}var $i=5e3,ea=(e,t)=>{if(!e)return 1;let n=1;for(let r=0;r<e.length;r+=1)if(e.charCodeAt(r)===10&&(n+=1,n>t))return n;return n},ta=(e,t)=>Se(xe.getState().dictionary,e,t),na=e=>{let t=(e instanceof Error?e.message:String(e??``)).toLowerCase();return t.includes(`file not found`)||t.includes(`not found`)||t.includes(`enoent`)||t.includes(`no such file`)||t.includes(`does not exist`)?`missing`:`unreadable`},ra=async(e,t)=>{if(e.readFile){let n=await e.readFile(t,{optional:!0});if(typeof n.exists!=`boolean`)throw Error(`Optional file read requires an existence response header`);return{content:n.content??``,exists:n.exists}}let n=new URLSearchParams({path:t,optional:`true`}),r=await l(`/api/fs/read?${n.toString()}`,{cache:`no-store`});if(!r.ok){let e=await r.json().catch(()=>({error:r.statusText}));throw Error(e.error||`Failed to read file`)}let i=r.headers.get(`x-yuri-file-exists`);if(i!==`true`&&i!==`false`)throw Error(`Optional file read requires an existence response header`);return{content:await r.text(),exists:i===`true`}},ia=async(e,t)=>{try{let{content:n,exists:r}=await ra(e,t);return r?ea(n,5e3)>5e3?{ok:!1,reason:`too-large`}:{ok:!0}:{ok:!1,reason:`missing`}}catch(e){return{ok:!1,reason:na(e)}}},aa=e=>e===`too-large`?ta(`contextFileOpen.failure.tooLarge`,{count:$i.toLocaleString(ye())}):ta(e===`missing`?`contextFileOpen.failure.missing`:`contextFileOpen.failure.unreadable`),oa=(e,t)=>!e||t.length===0?``:JSON.stringify([e,t]),sa=(e,t,n,r)=>!n||r!==n||e.length===0?[]:Ze(e,t,e=>e.name,{limit:10,threshold:.4}),ca=(e,t={})=>{let r=e.trim(),i=t.transport??n(),a=t.searchSessions??(e=>j.searchSessionsByTitle(e));return R({queryKey:c.sessionTitleSearch.query(r,i),enabled:r.length>0,queryFn:({signal:e})=>a({search:r,limit:30,signal:e}),staleTime:5e3,retry:1})},la=e=>{let t=(0,ui.c)(13),{title:n,description:r,trailing:i}=e,a=r?`min-w-0 max-w-[58%] shrink-0 truncate typography-meta font-medium leading-4 text-foreground`:`min-w-0 flex-1 truncate typography-meta font-medium leading-4 text-foreground`,o;t[0]!==a||t[1]!==n?(o=(0,$.jsx)(`span`,{className:a,children:n}),t[0]=a,t[1]=n,t[2]=o):o=t[2];let s;t[3]===r?s=t[4]:(s=r?(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-micro leading-4 text-muted-foreground/65`,children:r}):null,t[3]=r,t[4]=s);let c;t[5]!==o||t[6]!==s?(c=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2.5`,children:[o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7];let l;t[8]===i?l=t[9]:(l=i?(0,$.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center pl-2 text-muted-foreground/50`,children:i}):null,t[8]=i,t[9]=l);let u;return t[10]!==c||t[11]!==l?(u=(0,$.jsxs)($.Fragment,{children:[c,l]}),t[10]=c,t[11]=l,t[12]=u):u=t[12],u},ua=`min-h-9 gap-2 rounded-lg px-3 py-2 typography-meta`,da=`py-0 [&_[cmdk-group-heading]]:px-2.5 [&_[cmdk-group-heading]]:pb-2 [&_[cmdk-group-heading]]:pt-3 [&_[cmdk-group-heading]]:font-normal [&_[cmdk-group-heading]]:text-muted-foreground`,fa=`rounded-[3px] bg-[color-mix(in_srgb,var(--primary-base)_28%,transparent)] px-0.5 font-[inherit] text-foreground`;function pa(e,t){let n=t.trim().toLowerCase().split(/\s+/).filter(Boolean);if(!n.length||!e)return e;let r=n.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)),i=RegExp(`(${r.join(`|`)})`,`gi`);return e.split(i).map((e,t)=>n.includes(e.toLowerCase())?(0,$.jsx)(`mark`,{className:fa,children:e},t):(0,$.jsx)(`span`,{children:e},t))}var ma=e=>{if(!e)return``;let t=e.replace(/\\/g,`/`),n=t.startsWith(`//`),r=t.replace(/\/+/g,`/`);n&&!r.startsWith(`//`)&&(r=`/${r}`);let i=r===`/`,a=/^[A-Za-z]:\/$/.test(r);return!i&&!a&&(r=r.replace(/\/+$/,``)),r},ha=[],ga=Q.memo(function({presentation:e=`dialog`,onBack:t}){let{t:i}=ge(),a=rr(),o=P(e=>e.isCommandPaletteOpen),[s,c]=Q.useState(o),l=P(e=>e.setCommandPaletteOpen),u=P(e=>e.setActiveMainTab),f=P(e=>e.setSettingsDialogOpen),m=P(e=>e.setSettingsPage),h=P(e=>e.setSessionSwitcherOpen),_=P(e=>e.toggleSidebar),b=P(e=>e.toggleRightSidebar),x=P(e=>e.toggleBottomTerminal),S=P(e=>e.openContextOverview),C=P(e=>e.openContextFile),w=P(e=>e.shortcutOverrides),T=ot(e=>e.openNewSessionDraft),E=ot(e=>e.setCurrentSession),D=o||s,O=Ue(e=>D?e.activeSessions:ha),j=Ue(e=>D?e.status:`idle`),M=k(e=>e.currentDirectory),N=ct(e=>e.getActiveProject()),F=ct(e=>e.projects),I=Pr(),L=A(e=>e.searchFiles),{files:ee}=ne(),{isMobile:te}=Vn(),R=e===`page`||te,B=ve(),re=Q.useRef(null),V=Q.useRef(null),H=fe(()=>{if(!R||!o||!re.current)return;let e=window.visualViewport;re.current.style.setProperty(`--search-viewport-height`,`${e?.height??window.innerHeight}px`),re.current.style.setProperty(`--search-viewport-top`,`${e?.offsetTop??0}px`)});me(`resize`,H,()=>R&&o?window.visualViewport??window:null),me(`scroll`,H,()=>R&&o?window.visualViewport:null),Q.useEffect(()=>{H()},[R,o]),Q.useEffect(()=>{e===`page`&&o&&V.current?.focus({preventScroll:!0})},[e,o]);let ie=Q.useMemo(()=>I?ma(I):null,[I]),[ae,U]=Q.useState(``),[W,oe]=Q.useState({query:``,groups:[]}),G=lr(ae,200).trim(),K=ae.trim();Q.useEffect(()=>{o&&(U(``),oe({query:``,groups:[]}),c(!0))},[o]);let q=fe(()=>l(!1)),se=fe(e=>()=>{q(),e()}),J=Q.useMemo(()=>{let e=[{id:`new-session`,title:i(`commandPalette.item.newSession`),shortcutId:`new_chat`,searchText:i(`commandPalette.item.newSession`),onSelect:se(()=>{u(`chat`),h(!1),T()})},{id:`new-worktree`,title:i(`commandPalette.item.newWorktreeDraft`),shortcutId:`new_chat_worktree`,searchText:i(`commandPalette.item.newWorktreeDraft`),onSelect:se(()=>{Zt()})},{id:`add-project`,title:i(`commandPalette.item.addProject`),searchText:i(`commandPalette.item.addProject`),onSelect:se(()=>{nt.requestDirectoryDialog()})},{id:`toggle-sidebar`,title:i(R?`commandPalette.item.showSessionSwitcher`:`commandPalette.item.toggleSidebar`),shortcutId:`toggle_sidebar`,searchText:i(R?`commandPalette.item.showSessionSwitcher`:`commandPalette.item.toggleSidebar`),onSelect:se(()=>{if(R){let{isSessionSwitcherOpen:e}=P.getState();h(!e)}else _()})},{id:`toggle-right-sidebar`,title:i(`commandPalette.item.toggleRightSidebar`),shortcutId:`toggle_right_sidebar`,searchText:i(`commandPalette.item.toggleRightSidebar`),onSelect:se(()=>b())},{id:`toggle-terminal`,title:i(`commandPalette.item.toggleTerminal`),shortcutId:`toggle_terminal`,searchText:i(`commandPalette.item.toggleTerminal`),onSelect:se(()=>x())},{id:`new-terminal-tab`,title:i(`commandPalette.item.newTerminalTab`),shortcutId:`open_new_terminal`,searchText:i(`commandPalette.item.newTerminalTab`),onSelect:se(()=>{I&&Ht(I)})},{id:`context-usage`,title:i(`commandPalette.item.showContextUsage`),searchText:i(`commandPalette.item.showContextUsage`),onSelect:se(()=>{M&&S(M)})},{id:`open-settings`,title:i(`commandPalette.item.openSettings`),shortcutId:`open_settings`,searchText:i(`commandPalette.item.openSettings`),onSelect:se(()=>f(!0))}];return d()&&e.splice(1,0,{id:`new-mini-chat`,title:i(`commandPalette.item.newMiniChat`),shortcutId:`new_mini_chat`,searchText:i(`commandPalette.item.newMiniChat`),onSelect:se(()=>{p(`desktop_open_draft_mini_chat_window`,{directory:ma(M||N?.path||``),projectId:N?.id??null}).catch(e=>{console.warn(`[command-palette] failed to open draft mini chat window`,e)})})}),e},[i,se,R,u,h,T,_,b,x,M,I,S,f,N?.id,N?.path]),ce=Q.useMemo(()=>{let e=g();return{isVSCode:y(),isWeb:!e&&v(),isDesktop:e,isMobile:R}},[R]),le=Q.useMemo(()=>Jr.filter(e=>e.slug!==`home`).filter(e=>!e.isAvailable||e.isAvailable(ce)).map(e=>{let t=(e.keywords??[]).join(` `);return{id:`settings:${e.slug}`,title:e.title,searchText:`${e.title} ${e.group} ${t}`,onSelect:se(()=>{m(e.slug),f(!0)})}}),[ce,se,m,f]),ue=Q.useMemo(()=>{let e=e=>(typeof e.time?.updated==`number`?e.time.updated:0)||(typeof e.time?.created==`number`?e.time.created:0);return[...O].sort((t,n)=>e(n)-e(t))},[O]),de=ot(e=>e.worktreeMetadata),pe=ot(e=>e.availableWorktreesByProject),[he,_e]=Q.useState([]),[ye,Y]=Q.useState(``),[X,xe]=Q.useState(``),Se=oa(ie,G);Q.useEffect(()=>{if(!o){_e([]),Y(``),xe(``);return}if(!Se){_e([]),Y(``),xe(``);return}if(!ie){_e([]),Y(``),xe(``);return}let e=!1;return xe(``),L(ie,G,10,{type:`file`}).then(t=>{e||(_e(t.map(e=>({path:ma(e.path),name:e.name,relativePath:e.relativePath}))),Y(Se),xe(``))}).catch(()=>{e||(_e([]),Y(``),xe(Se))}),()=>{e=!0}},[o,ie,G,Se,L]);let Ce=K.length>0,we=Q.useMemo(()=>Ce?Ze(J,K,e=>e.searchText,{limit:7,noFuzzy:!0}):J.map(e=>({item:e,score:0})),[J,K,Ce]),Te=Q.useMemo(()=>Ce?Ze(le,K,e=>e.searchText,{limit:7,noFuzzy:!0}):[],[le,K,Ce]),Ee=z({...ca(G),enabled:(o||s)&&(G.length>0||e===`page`)}),De={transport:n(),generation:r(),directory:``},ke=JSON.stringify([De.transport,De.generation,ie,K,o]),[Ae,je]=Q.useState(null),Me=Ae?.key===ke?Ae:null;Ae&&!Me&&je(null);let Ne=z({...Ti(),enabled:o||s}),Pe=z({...wi(G,{scope:De}),enabled:(o||s)&&G.length>0&&De!==null}),Fe=Q.useMemo(()=>Me?.hits??Pe.data??[],[Me,Pe.data]),Ie=Ce&&K===G&&Pe.isError,Le=Ce&&K===G&&Ee.isSuccess,Re=(Ce||e===`page`)&&K===G&&Ee.isError,ze=Q.useMemo(()=>Re?Ze(ue,K,e=>e.title||``,{limit:30,threshold:.2}).map(({item:e})=>e):[],[Re,ue,K]),Be=Q.useMemo(()=>Me?Me.sessions:Ce?Le?Ee.data??[]:Re?ze:[]:e===`page`&&!G&&Ee.isSuccess?Ee.data:ue.slice(0,e===`page`?30:9),[Ce,ue,Le,Re,ze,Ee.data,Ee.isSuccess,e,G,Me]),Ve=Q.useMemo(()=>!o&&!s||K!==G||X===Se?[]:sa(he,G,Se,ye),[o,s,he,ye,Se,G,K,X]),He=(o||s)&&Se.length>0&&ye!==Se&&X!==Se,We=Q.useMemo(()=>{if(!Ce)return[];let e=F.map(e=>({...e,displayName:e.label||e.path.split(`/`).pop()||e.path,searchText:`${e.label||``} ${e.path}`}));return Ze(e,K,e=>e.searchText,{limit:7,threshold:.4})},[F,K,Ce]),Ke=JSON.stringify([ie,K]),qe=W.query===Ke?W.groups:[],Je=(e,t)=>Ce&&!qe.includes(e)?t.slice(0,5):t,Ye=Je(`commands`,we.map(e=>e.item)),Xe=Je(`settings`,Te.map(e=>e.item)),$e=Q.useMemo(()=>{let e=new Map;for(let t of Fe){let n=e.get(t.sessionID);(!n||t.createdAt>n.createdAt||t.createdAt===n.createdAt&&t.messageID>n.messageID)&&e.set(t.sessionID,t)}let t=[],n=new Map(O.map(e=>[e.id,e]));for(let n of Be)t.push({session:n,hit:e.get(n.id)}),e.delete(n.id);for(let r of e.values())t.push({session:n.get(r.sessionID)??{id:r.sessionID,title:r.title??``,directory:r.directory,location:{directory:r.directory}},hit:r});return t},[Be,Fe,O]),et=Je(`sessions`,$e),tt=Ce?Je(`files`,Ve.map(e=>e.item)):[],rt=Ce?Je(`projects`,We.map(e=>e.item)):[],it=(e,t,n)=>t>n?(0,$.jsx)(Yt,{value:`more:${e}`,onSelect:()=>oe({query:Ke,groups:[...qe,e]}),className:`${ua} text-muted-foreground`,children:i(`commandPalette.group.showMore`,{count:t-n})}):null,at=Q.useMemo(()=>{if(!Ce)return[`sessions`,`commands`];let e=e=>e.length?e[0].score:1/0,t=[{key:`commands`,score:e(we)},{key:`settings`,score:e(Te)},{key:`files`,score:e(Ve)},{key:`projects`,score:e(We)}];return t.sort((e,t)=>e.score-t.score),[`sessions`,...t.map(e=>e.key)]},[Ce,we,Te,Ve,We]),st=fe((e,t)=>{q(),u(`chat`),h(!1);let n=ut(e)||``;a?pt.getState().openSession({sessionId:e.id,directory:n}):E(e.id,n),t&&zt(t)}),lt=fe(e=>{let t=ue.find(t=>t.id===e.sessionID)??Be.find(t=>t.id===e.sessionID)??{id:e.sessionID,title:e.title??``,directory:e.directory,location:{directory:e.directory}};st(t,e.messageID)}),dt=fe(async e=>{if(!ie)return;let t=await ia(ee,e);if(!t.ok){Ge.error(aa(t.reason));return}a?a.openFile({path:e}):C(ie,e),q()}),ft=fe((e,t)=>{q();let n={selectedProjectId:e,directoryOverride:t};a?pt.getState().openDraft(n):T(n)}),mt=e=>Pn(Mn(e,w)),ht=e=>!St&&(e.key===`Enter`||e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),e.stopPropagation(),!0),gt=fe(e=>{if(ht(e)||(!Me&&!e.nativeEvent.isComposing&&[`ArrowDown`,`ArrowUp`,`Enter`].includes(e.key)&&je({key:ke,hits:Fe,sessions:Be}),R||e.nativeEvent.isComposing||e.altKey||e.shiftKey)||(B?!e.metaKey||e.ctrlKey:!e.ctrlKey||e.metaKey)||!/^[1-9]$/.test(e.key)||(e.preventDefault(),e.stopPropagation(),e.repeat||!St))return;let t=et[Number(e.key)-1];t?.hit?lt(t.hit):t&&st(t.session)}),_t=e=>{let t=ma(de.get(e.id)?.projectDirectory||ut(e)||``),n=Qe(F,pe,t);return n?.label||(n?.path||t).split(`/`).pop()||``},vt=Ce&&K===G&&!!Se&&X===Se,yt=Ce&&(K!==G||!!ie&&He||Ee.isFetching&&!Ee.isSuccess||De!==null&&Pe.isFetching&&!Pe.isSuccess),[bt,xt]=Q.useState(G);!yt&&bt!==G&&xt(G);let St=!Ce||bt===G&&!yt,Ct=(0,$.jsx)(Qt,{ref:V,variant:R?`mobileGlass`:`default`,className:`font-normal`,"aria-label":i(`commandPalette.title`),inputMode:`search`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,value:ae,onValueChange:e=>{je(null),U(e),oe({query:``,groups:[]})},placeholder:i(`commandPalette.input.placeholder`)}),wt=(0,$.jsxs)(Kt,{shouldFilter:!1,onKeyDownCapture:gt,onPointerDownCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&qn({currentTarget:t})},onPointerCancelCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&Jn({currentTarget:t,detail:1})},onClickCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&e.detail>0&&!Jn({currentTarget:t,detail:e.detail})&&(e.preventDefault(),e.stopPropagation())},className:`max-h-full min-h-0 rounded-[inherit] bg-transparent [&_[cmdk-group]]:px-0 [&_[cmdk-item][data-selected=true]]:!bg-[color-mix(in_srgb,var(--interactive-selection)_40%,transparent)] [&_[cmdk-item]:hover]:!bg-[color-mix(in_srgb,var(--interactive-selection)_40%,transparent)]`,children:[R?(0,$.jsx)(Oe,{title:Ct,backAriaLabel:i(`header.actions.backAria`),onBack:t??q}):Ct,(0,$.jsxs)(Ut,{"aria-label":i(`commandPalette.title`),className:`overscroll-contain p-1.5`,children:[(0,$.jsx)(`div`,{className:`px-3 py-2 typography-meta text-muted-foreground`,"aria-live":`polite`,children:Ne.isError||Ne.data?.phase===`error`||Ne.data?.phase===`partial`?i(`commandPalette.index.partial`):Ne.data?.phase===`ready`?i(`commandPalette.index.ready`,{count:Ne.data.messages}):i(`commandPalette.index.progress`,{completed:Ne.data?.completed??0,total:Ne.data?.total??0})}),St&&!vt&&!Re&&!Ie&&j!==`loading`&&j!==`error`?(0,$.jsx)($t,{className:`py-10 text-center typography-meta text-muted-foreground`,children:i(`commandPalette.empty.noResults`)}):null,St?at.map(e=>e===`commands`&&Ye.length>0?(0,$.jsxs)(Xt,{heading:i(`settings.page.commands.title`),className:da,children:[Ye.map(e=>(0,$.jsx)(Yt,{value:e.id,onSelect:e.onSelect,className:ua,children:(0,$.jsx)(la,{title:pa(e.title,K),trailing:!R&&e.shortcutId?(0,$.jsx)(Jt,{className:`h-3.5 min-w-0 shrink-0 rounded-full border-0 bg-[color-mix(in_srgb,var(--surface-foreground)_6%,transparent)] px-1.5 font-sans text-[10px] font-medium tracking-tight text-muted-foreground/65 shadow-none`,children:mt(e.shortcutId)}):void 0})},e.id)),it(`commands`,we.length,Ye.length)]},`commands`):e===`settings`&&Xe.length>0?(0,$.jsxs)(Xt,{heading:i(`settings.view.home.title`),className:da,children:[Xe.map(e=>(0,$.jsx)(Yt,{value:e.id,onSelect:e.onSelect,className:ua,children:(0,$.jsx)(la,{title:pa(e.title,K)})},e.id)),it(`settings`,Te.length,Xe.length)]},`settings`):e===`sessions`&&et.length>0?(0,$.jsxs)(Xt,{heading:i(`layout.mainTab.chat`),className:da,children:[et.map(({session:e,hit:t},n)=>{let r=t?.title||e.title||i(`commandPalette.session.untitled`),a=_t(e);return(0,$.jsxs)(Yt,{value:t?`message:${e.id}:${t.messageID}`:`session:${e.id}`,onSelect:()=>t?lt(t):st(e),className:`flex-col items-stretch gap-1 rounded-lg px-3 py-2`,"aria-keyshortcuts":!R&&n<9?`${B?`Meta`:`Control`}+${n+1}`:void 0,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate typography-ui-label text-foreground`,title:r,children:pa(r,K)}),(0,$.jsx)(`span`,{className:`max-w-[28%] shrink-0 truncate typography-meta text-muted-foreground`,title:a,children:a}),!R&&n<9?(0,$.jsxs)(Jt,{className:`h-5 min-w-8 shrink-0 rounded-full border-0 bg-interactive-selection px-2 text-muted-foreground shadow-none`,children:[B?`⌘`:`Ctrl+`,n+1]}):null]}),t?(0,$.jsxs)(`span`,{className:`line-clamp-3 whitespace-pre-wrap break-words typography-ui-label text-muted-foreground`,children:[(0,$.jsxs)(`span`,{className:`font-medium`,children:[i(t.role===`user`?`commandPalette.message.user`:`commandPalette.message.assistant`),`: `]}),pa(t.snippet,K)]}):null]},t?`message:${e.id}:${t.messageID}`:`session:${e.id}`)}),it(`sessions`,$e.length,et.length)]},`sessions`):e===`files`&&tt.length>0?(0,$.jsxs)(Xt,{heading:i(`layout.mainTab.files`),className:da,children:[tt.map(e=>{let t=be(e.relativePath||e.name,{maxLength:80});return(0,$.jsx)(Yt,{value:`file:${e.path}`,onSelect:()=>{dt(e.path)},className:ua,children:(0,$.jsx)(la,{title:pa(e.name,K),description:t===e.name?void 0:pa(t,K)})},`file:${e.path}`)}),it(`files`,Ve.length,tt.length)]},`files`):e===`projects`&&rt.length>0?(0,$.jsxs)(Xt,{heading:i(`sessions.sidebar.projectsTitle`),className:da,children:[rt.map(e=>{let t=e.displayName;return(0,$.jsx)(Yt,{value:`project:${e.id}`,onSelect:()=>ft(e.id,e.path),className:ua,children:(0,$.jsx)(la,{title:pa(t,K)})},`project:${e.id}`)}),it(`projects`,We.length,rt.length)]},`projects`):null):(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-10 text-center typography-meta text-muted-foreground`,children:i(`common.loading`)}),St&&j===`loading`?(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-4 text-center typography-meta text-muted-foreground`,children:i(`common.loading`)}):null,St&&j===`error`?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.sessions`)}):null,St&&Re?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.sessions`)}):null,St&&Ie?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.messages`)}):null,St&&vt?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`mobile.files.error.listFailed`)}):null]})]});return e===`page`?(0,$.jsx)(`section`,{ref:re,"data-global-search":`true`,"data-page-scroll-lock":`true`,"aria-label":i(`commandPalette.title`),className:`yuri-global-search-page flex min-h-0 w-full flex-col bg-background text-foreground`,children:wt}):(0,$.jsx)(Mt,{open:o,onOpenChange:l,onOpenChangeComplete:e=>{e||c(!1)},children:(0,$.jsxs)(kt,{ref:re,initialFocus:V,"data-global-search":`true`,"data-mobile":R,"data-page-scroll-lock":`true`,className:R?`yuri-global-search-page yuri-global-search-mobile fixed inset-0 z-50 m-0 flex max-w-none translate-x-0 translate-y-0 flex-col gap-0 overflow-hidden rounded-none border-0 bg-background p-0`:`yuri-global-search yuri-mobile-overlay-surface yuri-mobile-overlay-surface--translucent yuri-composer-autocomplete-surface fixed left-1/2 top-[10vh] z-50 w-[min(56rem,calc(100vw-3rem))] max-w-none -translate-x-1/2 translate-y-0 gap-0 overflow-hidden rounded-3xl border-0 p-0`,containerClassName:`block p-0`,overlayClassName:`bg-transparent dark:bg-transparent`,showCloseButton:!1,children:[(0,$.jsxs)(Dt,{className:`sr-only`,children:[(0,$.jsx)(At,{children:i(`commandPalette.title`)}),(0,$.jsx)(jt,{children:i(`commandPalette.description`)})]}),wt]})})}),_a=class extends Q.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t})}handleReset=()=>{this.setState({hasError:!1,error:void 0,errorInfo:void 0})};render(){return this.state.hasError?(0,$.jsx)(`div`,{className:`flex items-center justify-center min-h-screen p-4`,children:(0,$.jsxs)(Bn,{className:`w-full max-w-md`,children:[(0,$.jsx)(wn,{className:`text-center`,children:(0,$.jsxs)(Cn,{className:`flex items-center justify-center gap-2 text-destructive`,children:[(0,$.jsx)(Z,{name:`chat-3`,className:`h-5 w-5`}),this.props.texts.title]})}),(0,$.jsxs)(Dn,{className:`space-y-4`,children:[(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground text-center`,children:this.props.texts.description}),this.props.sessionId&&(0,$.jsxs)(`div`,{className:`text-xs text-muted-foreground text-center`,children:[this.props.texts.sessionLabel,`: `,this.props.sessionId]}),this.state.error&&(0,$.jsxs)(`details`,{className:`text-xs font-mono bg-muted p-3 rounded`,children:[(0,$.jsx)(`summary`,{className:`cursor-pointer hover:bg-interactive-hover/80`,children:this.props.texts.detailsSummary}),(0,$.jsx)(`pre`,{className:`mt-2 max-h-48 overflow-auto`,children:this.state.error.toString()})]}),(0,$.jsx)(`div`,{className:`flex gap-2`,children:(0,$.jsxs)(X,{onClick:this.handleReset,variant:`outline`,className:`flex-1`,children:[(0,$.jsx)(Z,{name:`restart`,className:`h-4 w-4 mr-2`}),this.props.texts.resetAction]})}),(0,$.jsx)(`div`,{className:`text-xs text-muted-foreground text-center`,children:this.props.texts.persistentHint})]})]})}):this.props.children}};function va(e){let t=(0,ui.c)(22),{t:n}=ge(),r;t[0]===n?r=t[1]:(r=n(`chat.errorBoundary.title`),t[0]=n,t[1]=r);let i;t[2]===n?i=t[3]:(i=n(`chat.errorBoundary.description`),t[2]=n,t[3]=i);let a;t[4]===n?a=t[5]:(a=n(`chat.errorBoundary.sessionLabel`),t[4]=n,t[5]=a);let o;t[6]===n?o=t[7]:(o=n(`chat.errorBoundary.detailsSummary`),t[6]=n,t[7]=o);let s;t[8]===n?s=t[9]:(s=n(`chat.errorBoundary.resetAction`),t[8]=n,t[9]=s);let c;t[10]===n?c=t[11]:(c=n(`chat.errorBoundary.persistentHint`),t[10]=n,t[11]=c);let l;t[12]!==r||t[13]!==i||t[14]!==a||t[15]!==o||t[16]!==s||t[17]!==c?(l={title:r,description:i,sessionLabel:a,detailsSummary:o,resetAction:s,persistentHint:c},t[12]=r,t[13]=i,t[14]=a,t[15]=o,t[16]=s,t[17]=c,t[18]=l):l=t[18];let u;return t[19]!==e||t[20]!==l?(u=(0,$.jsx)(_a,{...e,texts:l}),t[19]=e,t[20]=l,t[21]=u):u=t[21],u}var ya=1440,ba=e=>{let t=(0,ui.c)(8),{isMobile:n,isVSCode:r,directory:i}=e,a=de(`(min-width: ${ya}px)`),o;t[0]===i?o=t[1]:(o=i?F(i):``,t[0]=i,t[1]=o);let s=o,c;t[2]===s?c=t[3]:(c=e=>{let t=s?e.contextPanelByDirectory[s]:void 0;if(!t?.isOpen)return!1;let n=t.tabs.find(e=>e.id===t.activeTabId)??t.tabs[t.tabs.length-1]??null;return!!(n&&n.mode!==`chat`)},t[2]=s,t[3]=c);let l=P(c),u=P(xa),d=P(Sa),f=!n&&!r&&!l&&!d,p=f&&a,m=u&&p,h;return t[4]!==p||t[5]!==f||t[6]!==m?(h={visible:m,fits:p,layoutAllows:f},t[4]=p,t[5]=f,t[6]=m,t[7]=h):h=t[7],h};function xa(e){return e.workStatusPanelEnabled}function Sa(e){return e.isRightSidebarOpen}var Ca=async({directory:e,sessionID:t,signal:n})=>{let r=await j.getScopedSdkClient(e).session.list({directory:e,parentID:t,limit:200},{signal:n});if(!Array.isArray(r?.data))throw Error(`session.list children returned no data`);return r.data.flatMap(e=>{if(!e?.id)return[];let t=typeof e.title==`string`?e.title:void 0;return[{id:e.id,title:t}]})},wa=(e,t,n={})=>{let r=n.listChildren??Ca;return R({queryKey:c.workStatusChildren.list(e,t,n.transport),enabled:!!(e&&t),queryFn:({signal:n})=>r({directory:e,sessionID:t,signal:n}),staleTime:5e3,refetchInterval:1e4})},Ta=[],Ea=(...e)=>{let t=Lt(...e);return t?t.charAt(0).toUpperCase()+t.slice(1):``},Da=(...e)=>{for(let t of e){if(!t||typeof t!=`object`)continue;let e=t.description;if(typeof e!=`string`)continue;let n=e.trim();if(n)return n}return``},Oa=e=>e===`pending`||e===`running`,ka=e=>{let t=[],n=new Set;for(let r of e.messageOrder){let i=e.partsByMessageID[r];if(i)for(let e of i){if(!e?.id||n.has(e.id))continue;if(e.type===`tool`&&Pt(e.tool)){n.add(e.id);let r=e.state;t.push({id:e.id,sessionID:Bt(e),label:Ea(r?.input,r?.metadata,e.metadata),description:Da(r?.input,e.metadata,r?.metadata),running:Oa(r?.status)});continue}if(e.type!==`subtask`)continue;let r=e,i=typeof r.taskSessionID==`string`?r.taskSessionID.trim():``,a=typeof r.agent==`string`?r.agent.trim():``,o=typeof r.description==`string`?r.description.trim():``;n.add(e.id),t.push({id:e.id,sessionID:i||void 0,label:a?a.charAt(0).toUpperCase()+a.slice(1):``,description:o,running:Oa(r.status)})}}return t.length===0?Ta:t},Aa=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(!r||!i||r.id!==i.id||r.sessionID!==i.sessionID||r.label!==i.label||r.description!==i.description||r.running!==i.running)return!1}return!0},ja=e=>e.childTitle||e.description||e.agent,Ma=e=>({key:e.key,sessionID:e.sessionID,seed:e.key,label:ja(e),phase:e.working?`working`:`done`}),Na=(e,t,n)=>{let r=new Map(t.map(e=>[e.id,e])),i=new Set,a=[],o=new Map,s=e=>{let t=e.sessionID;if(!t){a.push(e);return}i.add(t);let n=o.get(t);if(n===void 0){o.set(t,a.length),a.push({...e,key:t,sessionID:t});return}let r=a[n];r&&(a[n]={...r,description:r.description||e.description,agent:r.agent||e.agent,childTitle:e.childTitle||r.childTitle,working:r.working||e.working})};for(let t of e){let e=t.sessionID?r.get(t.sessionID):void 0;s({key:t.id,sessionID:t.sessionID,description:t.description,agent:t.label,childTitle:e?.title?.trim()||``,working:t.running||!!e?.busy||!!(t.sessionID&&n?.has(t.sessionID))})}for(let e of t)i.has(e.id)||s({key:e.id,sessionID:e.id,description:``,agent:``,childTitle:e.title?.trim()||``,working:e.busy});let c=a.map(Ma),l=c.filter(e=>e.phase===`working`),u=c.filter(e=>e.phase===`done`);return l.length===0?u:u.length===0?l:[...l,...u]},Pa=new Set,Fa=e=>{if(!e)return``;let t=[];for(let n of Object.keys(e)){let r=e[n]?.type;(r===`busy`||r===`retry`)&&t.push(n)}return t.sort(),t.join(`
3
3
  `)},Ia=(e,t)=>{let n=(0,ui.c)(4),r;n[0]===t?r=n[1]:(r=e=>t?Fa(e.session_status):``,n[0]=t,n[1]=r);let i=C(e,r),a;return n[2]===i?a=n[3]:(a=i?new Set(i.split(`
4
4
  `)):Pa,n[2]=i,n[3]=a),a},La=(e,t)=>{let n=[];for(let r of e)!r.id||r.parentID!==t||n.push(`${r.id}\u0001${r.title??``}`);return n.join(``)},Ra=e=>e?e.split(``).map(e=>{let t=e.indexOf(``);return{id:e.slice(0,t),title:e.slice(t+1)}}):[],za=(e,t,n)=>{let r=new Map;for(let t of e)t.id&&r.set(t.id,{id:t.id,title:t.title,busy:n.has(t.id)});for(let e of t??[]){if(!e.id)continue;let t=r.get(e.id),i=e.title?.trim()||t?.title;r.set(e.id,{id:e.id,title:i,busy:n.has(e.id)})}return[...r.values()]},Ba=(e,t)=>{let n=(0,ui.c)(18),r=!!(e&&t),i;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={bootstrap:!1},n[0]=i):i=n[0];let a=$e(t||void 0,i),o;n[1]!==r||n[2]!==e?(o=t=>r&&e?La(t.session,e):``,n[1]=r,n[2]=e,n[3]=o):o=n[3];let s=C(a,o),c=t??``,l=e??``,u;n[4]!==c||n[5]!==l?(u=wa(c,l),n[4]=c,n[5]=l,n[6]=u):u=n[6];let d;n[7]!==r||n[8]!==u?(d={...u,enabled:r},n[7]=r,n[8]=u,n[9]=d):d=n[9];let f=z(d),p;n[10]===r?p=n[11]:(p={enabled:r},n[10]=r,n[11]=p);let m=M(e??``,t??``,a,ka,Aa,p),h=Ia(a,r),g;bb0:{if(!e){let e;n[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],n[12]=e):e=n[12],g=e;break bb0}let t;n[13]!==h||n[14]!==s||n[15]!==f.data||n[16]!==m?(t=Na(m,za(Ra(s),f.data,h),h),n[13]=h,n[14]=s,n[15]=f.data,n[16]=m,n[17]=t):t=n[17],g=t}return g},Va=`flex w-full min-w-0 items-center justify-start gap-2 text-left text-[13px] font-normal leading-5 tracking-normal text-muted-foreground`,Ha=`size-3.5 shrink-0`,Ua=`yuri-work-status-action pointer-events-none shrink-0 text-muted-foreground opacity-0 transition-opacity group-hover/copy:pointer-events-auto group-hover/copy:opacity-100 focus-visible:pointer-events-auto focus-visible:opacity-100`,Wa=e=>e.split(/[\\/]/).filter(Boolean).pop()||e,Ga=({sessionId:e,directory:t})=>{let{t:n}=ge(),{git:r}=ne(),i=pr(e=>e.ensureStatus),a=dr(t),o=ct(e=>e.projects),s=ot(e=>e.availableWorktreesByProject),c=ot(t=>e?t.worktreeMetadata.get(e):void 0),{project:l,worktree:u}=Q.useMemo(()=>{let e=_(t),n=t=>{let n=_(t);return!!(e&&n&&(e===n||e.startsWith(`${n}/`)))},r=c&&n(c.path)?c:void 0,i=Qe(o,s,r?.projectDirectory||t),a=i?s.get(i.path):void 0;return{project:i,worktree:r??a?.filter(e=>n(e.path)).sort((e,t)=>t.path.length-e.path.length)[0]}},[s,t,o,c]),d=l?.path||u?.projectDirectory||t,f=l?.label?.trim()||(d?Wa(d):null),p=u&&_(u.path)!==_(d)?u.name?.trim()||Wa(u.path):null,m=Ba(e,t),h=[{phase:`working`,labelKey:`chat.workStatus.subagent.workingCount`,items:m.filter(e=>e.phase===`working`)},{phase:`done`,labelKey:`chat.workStatus.subagent.doneCount`,items:m.filter(e=>e.phase===`done`)}],g=h[0].items,v=(g.length>0?g:m).slice(0,3),[y,b]=Q.useState(!1),x=Q.useId(),S=P(e=>e.setRightSidebarOpen),C=P(e=>e.openContextPanelTab),w=P(e=>e.setRightSidebarTab),[T,E]=Q.useState(null),[,D]=pe(()=>E(null),1500,{immediate:!1}),O=fe(async(e,t)=>{try{let n=await he(t);if(!n.ok)throw Error(n.error);E(e),D()}catch{ue.error(n(`gitView.toast.copyFailed`))}});Q.useEffect(()=>{!t||!r||i(t,r)},[t,i,r]);let k=a?.current||null,A=u?.worktreeStatus===`pending`?0:a?.files.length??0,j=0,M=0;if(a?.diffStats)for(let e of Object.values(a.diffStats))j+=e?.insertions??0,M+=e?.deletions??0;let N=k?`branch:${k}`:``,F=u?.path?`worktree:${u.path}`:``,I=!!(N&&T===N),L=!!(F&&T===F),ee=fe(()=>{k&&O(N,k)}),te=fe(()=>{let e=u?.path;e&&O(F,e)}),R=fe(()=>{w(`git`),S(!0)});return(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[f?(0,$.jsxs)(`div`,{className:`${Va} h-8 px-2`,title:`${n(`chat.workStatus.section.project`)}: ${d}`,children:[(0,$.jsx)(Z,{name:`folder`,weight:`medium`,className:Ha}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:f})]}):null,k?(0,$.jsxs)(`div`,{className:`${Va} group/copy h-8 px-2`,title:`${n(`gitView.branch.currentBranchTooltip`)}: ${k}`,children:[(0,$.jsx)(Z,{name:`git-branch`,weight:`medium`,className:Ha}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:k}),(0,$.jsx)(X,{variant:`ghost`,size:`xs`,className:Ua,"aria-label":n(`chat.workStatus.action.copyBranch`),title:n(I?`contextSidebar.actions.copied`:`chat.workStatus.action.copyBranch`),onClick:ee,children:(0,$.jsx)(Z,{name:I?`check`:`file-copy`,className:Ha})})]}):null,p?(0,$.jsxs)(`div`,{className:`${Va} group/copy h-8 px-2`,title:`${n(`sessions.sidebar.sessionDialogs.worktree.label`)}: ${u?.path}`,children:[(0,$.jsx)(Z,{name:`node-tree`,weight:`medium`,className:Ha}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:p}),(0,$.jsx)(X,{variant:`ghost`,size:`xs`,className:Ua,"aria-label":n(`agentManager.detail.actions.copyWorktreePath`),title:n(L?`contextSidebar.actions.copied`:`agentManager.detail.actions.copyWorktreePath`),onClick:te,children:(0,$.jsx)(Z,{name:L?`check`:`file-copy`,className:Ha})})]}):null,A>0?(0,$.jsxs)(X,{variant:`ghost`,size:`sm`,className:`yuri-work-status-action ${Va}`,title:n(A===1?`chat.workStatus.git.changedFileSingle`:`chat.workStatus.git.changedFilePlural`,{count:A}),"aria-label":n(`chat.workStatus.action.openGit`),onClick:R,children:[(0,$.jsx)(Z,{name:`changes`,weight:`medium`,className:Ha}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:n(`chat.workStatus.compact.changes`)}),j>0||M>0?(0,$.jsxs)(`span`,{className:`ml-auto flex shrink-0 gap-1.5 text-[12px] tabular-nums`,children:[(0,$.jsx)(`span`,{className:`text-[var(--status-success)]`,children:`+${j}`}),(0,$.jsx)(`span`,{className:`text-[var(--status-error)]`,children:`−${M}`})]}):(0,$.jsx)(`span`,{className:`ml-auto tabular-nums`,children:A})]}):null,m.length>0?(0,$.jsxs)(`div`,{role:`group`,"aria-label":n(`chat.workStatus.section.subagents`),className:`flex min-w-0 flex-col`,children:[(0,$.jsxs)(X,{type:`button`,variant:`ghost`,size:`sm`,className:`yuri-work-status-action ${Va} gap-1.5`,"aria-expanded":y,"aria-controls":x,onClick:()=>b(e=>!e),children:[(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex shrink-0 items-center`,children:v.map((e,t)=>{let r=e.label.trim()||n(`chat.workStatus.subagent.untitled`);return(0,$.jsx)(wt,{name:e.seed,label:r,size:14,className:`relative bg-background ring-2 ring-background ${t>0?`-ml-1`:``}`},e.key)})}),(0,$.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center gap-x-1 whitespace-nowrap text-left text-[11px] leading-5 tabular-nums`,children:h.filter(e=>e.items.length>0).map((e,t)=>(0,$.jsxs)(Q.Fragment,{children:[t>0?(0,$.jsx)(`span`,{"aria-hidden":`true`,children:`·`}):null,(0,$.jsx)(`span`,{children:n(e.labelKey,{count:e.items.length})})]},e.phase))}),(0,$.jsx)(Z,{name:y?`arrow-down-s`:`arrow-right-s`,className:`size-3.5 shrink-0 text-muted-foreground opacity-70`})]}),(0,$.jsx)(`div`,{id:x,hidden:!y,className:y?`mt-1 mb-1 flex min-w-0 flex-col gap-1`:`hidden`,children:y?h.filter(e=>e.items.length>0).map(e=>(0,$.jsxs)(`section`,{"aria-label":n(e.labelKey,{count:e.items.length}),className:`flex min-w-0 flex-col gap-1 [&+section]:mt-2`,children:[(0,$.jsx)(`div`,{className:`px-2 py-1 text-[11px] leading-4 text-muted-foreground/70`,children:n(e.labelKey,{count:e.items.length})}),e.items.map(e=>{let r=e.label.trim()||n(`chat.workStatus.subagent.untitled`);return(0,$.jsxs)(X,{variant:`ghost`,size:`sm`,disabled:!e.sessionID||!t,className:`yuri-work-status-action flex w-full min-w-0 items-center justify-start gap-2 text-left text-[12px] font-normal leading-5 text-muted-foreground`,onClick:()=>{!e.sessionID||!t||C(t,{mode:`chat`,dedupeKey:`session:${e.sessionID}`,label:r,readOnly:!0})},children:[(0,$.jsx)(wt,{name:e.seed,label:r,size:14}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:r,children:r})]},e.key)})]},e.phase)):null})]}):null]})},Ka=200,qa=e=>{let t=(0,ui.c)(31),{sessionId:n,directory:r,visible:i,overlay:a}=e,o=a!==void 0&&a,{t:s}=ge(),c=P(Ja),l=Q.useRef(null),[u,d]=Q.useState(i),f,p;t[0]===i?(f=t[1],p=t[2]):(f=()=>{if(i){d(!0);return}let e=window.setTimeout(()=>d(!1),Ka);return()=>window.clearTimeout(e)},p=[i],t[0]=i,t[1]=f,t[2]=p),Q.useEffect(f,p);let m,h;t[3]!==o||t[4]!==c||t[5]!==i?(m=()=>{if(!o||!i)return;let e=e=>{let t=e.target instanceof Element?e.target:null;l.current?.contains(t)||t?.closest(`[data-work-status-toggle]`)||c(!1)},t=e=>{e.key===`Escape`&&c(!1)};return document.addEventListener(`pointerdown`,e,!0),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`pointerdown`,e,!0),document.removeEventListener(`keydown`,t)}},h=[o,c,i],t[3]=o,t[4]=c,t[5]=i,t[6]=m,t[7]=h):(m=t[6],h=t[7]),Q.useEffect(m,h);let g;t[8]===s?g=t[9]:(g=s(`chat.workStatus.ariaLabel`),t[8]=s,t[9]=g);let _=!i,v=!i,y=o?`top-3 z-30 max-h-[calc(100%-1.5rem)] rounded-lg bg-[var(--surface-elevated)]/95 px-1 backdrop-blur-md`:`top-2`,b;t[10]===y?b=t[11]:(b=Y(`absolute z-20 flex max-h-[calc(100%-1rem)] flex-col overflow-x-hidden overflow-y-auto scrollbar-hidden bg-transparent`,y),t[10]=y,t[11]=b);let x=o||i?196:0,S=+!!i,C=i?`none`:o?`translateY(-6px)`:`translateX(24px)`,w=o?`opacity, transform`:`none`,T=i?void 0:`none`,E;t[12]!==x||t[13]!==S||t[14]!==C||t[15]!==w||t[16]!==T?(E={right:14,width:x,opacity:S,transform:C,transitionProperty:w,transitionDuration:`${Ka}ms`,transitionTimingFunction:`cubic-bezier(0.22, 1, 0.36, 1)`,pointerEvents:T},t[12]=x,t[13]=S,t[14]=C,t[15]=w,t[16]=T,t[17]=E):E=t[17];let D;t[18]!==u||t[19]!==r||t[20]!==o||t[21]!==n||t[22]!==i?(D=i||o&&u?(0,$.jsx)(Ga,{sessionId:n,directory:r}):null,t[18]=u,t[19]=r,t[20]=o,t[21]=n,t[22]=i,t[23]=D):D=t[23];let O;return t[24]!==b||t[25]!==E||t[26]!==D||t[27]!==g||t[28]!==_||t[29]!==v?(O=(0,$.jsx)(`aside`,{ref:l,"aria-label":g,"aria-hidden":_,inert:v,className:b,style:E,children:D}),t[24]=b,t[25]=E,t[26]=D,t[27]=g,t[28]=_,t[29]=v,t[30]=O):O=t[30],O};function Ja(e){return e.setWorkStatusOverlayOpen}var Ya=e=>{let t=(0,ui.c)(10),{sessionId:n,directory:r,visible:i,overlay:a,publishVisible:o}=e,s=a!==void 0&&a,c=o!==void 0&&o,l=P(Za),u,d;t[0]!==c||t[1]!==l||t[2]!==i?(u=()=>{if(c)return l(i),()=>l(!1)},d=[c,l,i],t[0]=c,t[1]=l,t[2]=i,t[3]=u,t[4]=d):(u=t[3],d=t[4]),Q.useEffect(u,d);let f;return t[5]!==r||t[6]!==s||t[7]!==n||t[8]!==i?(f=(0,$.jsx)(qa,{overlay:s,visible:i,sessionId:n,directory:r}),t[5]=r,t[6]=s,t[7]=n,t[8]=i,t[9]=f):f=t[9],f},Xa=({readOnly:e=!1,active:t=!0,selectionOverride:n})=>{let r=ot(e=>e.currentSessionId),i=ot(e=>e.currentSessionDirectory),a=ot(e=>!!e.newSessionDraft?.open),o=ot(e=>!!(e.newSessionDraft?.open&&e.newSessionDraft.pendingUserMessage&&(e.newSessionDraft.draftEstablishing||e.newSessionDraft.draftSubmitting))),s=Pr(),c=P(e=>e.isMobile),l=P(e=>e.isExpandedInput),u=y(),d=P(e=>e.workStatusPanelEnabled),f=P(e=>e.workStatusOverlayOpen),p=P(e=>e.setWorkStatusPanelFits),m=n?.sessionId??r,h=n?.sessionId??r,g=n?.directory??i??s??null,{visible:_,fits:v,layoutAllows:b}=ba({isMobile:c,isVSCode:u,directory:g}),x=n?!!n.sessionId:a?o:!!h,S=t&&b&&!l&&x,C=S&&_,w=S&&d&&!v&&f;return Q.useEffect(()=>(p(S&&v),()=>p(!1)),[v,S,p]),(0,$.jsxs)(`div`,{className:Y(`relative h-full min-h-0 min-w-0`,C&&`yuri-chat-work-status-inline`),style:C?{"--yuri-work-status-reserve":`210px`}:void 0,children:[(0,$.jsx)(`div`,{className:`absolute inset-0 min-h-0 min-w-0`,children:(0,$.jsx)(va,{sessionId:m||void 0,children:(0,$.jsx)(Ft,{readOnly:e,active:t,explicitSession:n?{...n,active:t}:void 0})})}),S?(0,$.jsx)(Ya,{publishVisible:!0,visible:C,sessionId:h,directory:g}):null,S&&d&&!v?(0,$.jsx)(Ya,{overlay:!0,visible:w,sessionId:h,directory:g}):null]})};function Za(e){return e.setWorkStatusPanelVisible}function Qa(e){let t=(0,ui.c)(85),{draft:n,onEdit:r,onDelete:i,className:a,maxWidth:o}=e,{t:s}=ge(),c=Et()?.currentTheme,[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(!1),p=typeof n.text==`string`?n.text:``,m;t[0]===p?m=t[1]:(m=p.length>150||p.split(`
5
5
  `).length>3,t[0]=p,t[1]=m);let h=m,g;t[2]===a?g=t[3]:(g=Y(`rounded-lg border shadow-none w-full max-w-[min(100%,calc(var(--yuri-context-panel-width,100vw)-var(--yuri-editor-gutter-width,0px)))] overflow-hidden transition-all duration-200`,a),t[2]=a,t[3]=g);let _=c?.colors?.surface?.elevated,v=c?.colors?.interactive?.border,y=o?`${Math.max(200,Math.floor(o))}px`:void 0,b;t[4]!==_||t[5]!==v||t[6]!==y?(b={backgroundColor:_,borderColor:v,maxWidth:y},t[4]=_,t[5]=v,t[6]=y,t[7]=b):b=t[7];let x;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{e.preventDefault(),f(!0)},t[8]=x):x=t[8];let S;t[9]!==g||t[10]!==b?(S=(0,$.jsx)(`div`,{className:g,style:b,"data-comment-card":`true`,onContextMenu:x}),t[9]=g,t[10]=b,t[11]=S):S=t[11];let C;t[12]===n.fileLabel?C=t[13]:(C=(0,$.jsx)(`span`,{className:`truncate max-w-[200px]`,title:n.fileLabel,children:n.fileLabel}),t[12]=n.fileLabel,t[13]=C);let w;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(`span`,{children:`•`}),t[14]=w):w=t[14];let T;t[15]!==n.endLine||t[16]!==n.startLine||t[17]!==s?(T=s(`inlineComment.range.lines`,{start:n.startLine,end:n.endLine}),t[15]=n.endLine,t[16]=n.startLine,t[17]=s,t[18]=T):T=t[18];let E;t[19]===T?E=t[20]:(E=(0,$.jsx)(`span`,{children:T}),t[19]=T,t[20]=E);let D;t[21]===n.side?D=t[22]:(D=n.side&&(0,$.jsxs)(`span`,{children:[`(`,n.side,`)`]}),t[21]=n.side,t[22]=D);let O;t[23]!==E||t[24]!==D||t[25]!==C?(O=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-muted-foreground mb-1.5`,children:[C,w,E,D]}),t[23]=E,t[24]=D,t[25]=C,t[26]=O):O=t[26];let k=l||!h,A=!l&&h&&`line-clamp-3`,j;t[27]===A?j=t[28]:(j=Y(`text-sm whitespace-pre-wrap break-words leading-relaxed`,A),t[27]=A,t[28]=j);let M;t[29]!==p||t[30]!==j?(M=(0,$.jsx)(`div`,{className:j,children:p}),t[29]=p,t[30]=j,t[31]=M):M=t[31];let N;t[32]!==h||t[33]!==l||t[34]!==s?(N=h&&(0,$.jsx)(si,{asChild:!0,children:(0,$.jsx)(X,{variant:`ghost`,size:`sm`,className:`h-6 px-0 mt-1 text-xs text-muted-foreground hover:text-foreground w-full justify-start`,children:l?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Z,{name:`arrow-up-s`,className:`size-3 mr-1`}),s(`inlineComment.actions.showLess`)]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Z,{name:`arrow-down-s`,className:`size-3 mr-1`}),s(`inlineComment.actions.showMore`)]})})}),t[32]=h,t[33]=l,t[34]=s,t[35]=N):N=t[35];let P;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,$.jsx)(oi,{}),t[36]=P):P=t[36];let F;t[37]!==k||t[38]!==M||t[39]!==N?(F=(0,$.jsxs)(ci,{open:k,onOpenChange:u,children:[M,N,P]}),t[37]=k,t[38]=M,t[39]=N,t[40]=F):F=t[40];let I;t[41]!==O||t[42]!==F?(I=(0,$.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[O,F]}),t[41]=O,t[42]=F,t[43]=I):I=t[43];let L;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(zn,{asChild:!0,children:(0,$.jsx)(X,{variant:`ghost`,size:`icon`,className:`h-6 w-6 -mr-1 text-muted-foreground hover:text-foreground`,children:(0,$.jsx)(Z,{name:`more`,className:`size-4`})})}),t[44]=L):L=t[44];let ee;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,$.jsx)(Z,{name:`edit`,className:`size-4 mr-2`}),t[45]=ee):ee=t[45];let te;t[46]===s?te=t[47]:(te=s(`inlineComment.actions.editComment`),t[46]=s,t[47]=te);let R;t[48]!==r||t[49]!==te?(R=(0,$.jsxs)(kn,{onClick:r,children:[ee,te]}),t[48]=r,t[49]=te,t[50]=R):R=t[50];let z;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,$.jsx)(Z,{name:`delete-bin`,className:`size-4 mr-2`}),t[51]=z):z=t[51];let B;t[52]===s?B=t[53]:(B=s(`inlineComment.actions.deleteComment`),t[52]=s,t[53]=B);let ne;t[54]!==i||t[55]!==B?(ne=(0,$.jsxs)(kn,{onClick:i,className:`text-destructive`,children:[z,B]}),t[54]=i,t[55]=B,t[56]=ne):ne=t[56];let re;t[57]!==R||t[58]!==ne?(re=(0,$.jsxs)(In,{children:[L,(0,$.jsxs)(Nn,{align:`end`,children:[R,ne]})]}),t[57]=R,t[58]=ne,t[59]=re):re=t[59];let V;t[60]!==I||t[61]!==re?(V=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2 p-3`,children:[I,re]}),t[60]=I,t[61]=re,t[62]=V):V=t[62];let H;t[63]!==V||t[64]!==S?(H=(0,$.jsx)(Xr,{render:S,children:V}),t[63]=V,t[64]=S,t[65]=H):H=t[65];let ie;t[66]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,$.jsx)(Z,{name:`edit`,className:`size-4 mr-2`}),t[66]=ie):ie=t[66];let ae;t[67]===s?ae=t[68]:(ae=s(`inlineComment.actions.editComment`),t[67]=s,t[68]=ae);let U;t[69]!==r||t[70]!==ae?(U=(0,$.jsxs)(ti,{onClick:r,children:[ie,ae]}),t[69]=r,t[70]=ae,t[71]=U):U=t[71];let W;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,$.jsx)(Z,{name:`delete-bin`,className:`size-4 mr-2`}),t[72]=W):W=t[72];let oe;t[73]===s?oe=t[74]:(oe=s(`inlineComment.actions.deleteComment`),t[73]=s,t[74]=oe);let G;t[75]!==i||t[76]!==oe?(G=(0,$.jsxs)(ti,{onClick:i,className:`text-destructive focus:text-destructive`,children:[W,oe]}),t[75]=i,t[76]=oe,t[77]=G):G=t[77];let K;t[78]!==U||t[79]!==G?(K=(0,$.jsxs)($r,{children:[U,G]}),t[78]=U,t[79]=G,t[80]=K):K=t[80];let q;return t[81]!==d||t[82]!==H||t[83]!==K?(q=(0,$.jsxs)(Kr,{open:d,onOpenChange:f,children:[H,K]}),t[81]=d,t[82]=H,t[83]=K,t[84]=q):q=t[84],q}function $a(e){let t=(0,ui.c)(67),{initialText:n,onTextChange:r,onSave:i,onCancel:a,fileLabel:o,lineRange:s,isEditing:c,className:l,maxWidth:u,onAddToChat:d}=e,f=n===void 0?``:n,p=c!==void 0&&c,{t:m}=ge(),h=Et()?.currentTheme,{isMobile:g}=Vn(),[_,v]=Q.useState(f),y=(0,Q.useRef)(null),b;t[0]===r?b=t[1]:(b=e=>{v(e),r?.(e)},t[0]=r,t[1]=b);let x=b,S=(0,Q.useRef)(s),C,w;t[2]===s?(C=t[3],w=t[4]):(C=()=>{s&&(S.current=s)},w=[s],t[2]=s,t[3]=C,t[4]=w),(0,Q.useEffect)(C,w);let T=so,E=T(s),D,O;t[5]===g?(D=t[6],O=t[7]):(D=()=>{let e=y.current;if(!e)return;let t=e.closest(`.overlay-scrollbar-container`),n=t?.scrollTop??window.scrollY,r=t?.scrollLeft??window.scrollX;if(g){e.scrollIntoView({behavior:`auto`,block:`nearest`});try{e.focus({preventScroll:!0})}catch{e.focus()}return}try{e.focus({preventScroll:!0})}catch{e.focus()}let i=e.value.length;try{e.setSelectionRange(i,i)}catch{}requestAnimationFrame(()=>{t?(t.scrollTop=n,t.scrollLeft=r):window.scrollTo({top:n,left:r})})},O=[g],t[5]=g,t[6]=D,t[7]=O),(0,Q.useEffect)(D,O);let k;t[8]!==a||t[9]!==i||t[10]!==_?(k=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`?(e.preventDefault(),_.trim()&&i(_,T(S.current))):e.key===`Escape`&&(e.preventDefault(),a())},t[8]=a,t[9]=i,t[10]=_,t[11]=k):k=t[11];let A=k,j;t[12]!==i||t[13]!==_?(j=e=>{e.stopPropagation(),_.trim()&&i(_,T(S.current))},t[12]=i,t[13]=_,t[14]=j):j=t[14];let M=j,N;t[15]===l?N=t[16]:(N=Y(`rounded-lg border shadow-none w-full max-w-[min(100%,calc(var(--yuri-context-panel-width,100vw)-var(--yuri-editor-gutter-width,0px)))] overflow-hidden animate-in fade-in zoom-in-95 duration-200`,l),t[15]=l,t[16]=N);let P=h?.colors?.surface?.elevated,F=h?.colors?.interactive?.border,I=u?`${Math.max(200,Math.floor(u))}px`:void 0,L;t[17]!==P||t[18]!==F||t[19]!==I?(L={backgroundColor:P,borderColor:F,maxWidth:I},t[17]=P,t[18]=F,t[19]=I,t[20]=L):L=t[20];let ee=oo,te=ao,R=(o||s)&&(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-medium text-muted-foreground mb-2`,children:[o&&(0,$.jsx)(`span`,{className:`truncate max-w-[200px]`,children:o}),o&&s&&(0,$.jsx)(`span`,{children:`•`}),E&&(0,$.jsx)(`span`,{children:m(`inlineComment.range.lines`,{start:E.start,end:E.end})})]}),z;t[21]===x?z=t[22]:(z=e=>x(e.target.value),t[21]=x,t[22]=z);let B;t[23]!==g||t[24]!==m?(B=m(g?`inlineComment.input.placeholderShort`:`inlineComment.input.placeholder`),t[23]=g,t[24]=m,t[25]=B):B=t[25];let ne;t[26]!==A||t[27]!==z||t[28]!==B||t[29]!==_?(ne=(0,$.jsx)(er,{simple:!0,ref:y,value:_,onChange:z,onKeyDown:A,placeholder:B,outerClassName:`rounded-[var(--radius-xl)] bg-[var(--surface-subtle)] ring-1 ring-inset ring-border/60 focus-within:ring-2 focus-within:ring-[var(--interactive-focus-ring)]`,className:`min-h-[80px] px-3 py-2.5 text-sm resize-y`}),t[26]=A,t[27]=z,t[28]=B,t[29]=_,t[30]=ne):ne=t[30];let re;t[31]!==E||t[32]!==d||t[33]!==m?(re=E&&d?(0,$.jsxs)(X,{variant:`outline`,size:`sm`,onClick:()=>d(E),onPointerDown:io,className:`mr-auto h-8 gap-1.5`,children:[(0,$.jsx)(Z,{name:`add`,className:`size-4`}),m(`chat.textSelection.actions.addToChat`),(0,$.jsx)(qt,{shortcut:`⌘+I`})]}):null,t[31]=E,t[32]=d,t[33]=m,t[34]=re):re=t[34];let V;t[35]===m?V=t[36]:(V=m(`inlineComment.actions.cancel`),t[35]=m,t[36]=V);let H;t[37]!==a||t[38]!==V?(H=(0,$.jsx)(X,{variant:`ghost`,size:`sm`,onClick:a,onPointerDown:ro,onTouchStart:no,className:`h-8 text-muted-foreground hover:text-foreground`,children:V}),t[37]=a,t[38]=V,t[39]=H):H=t[39];let ie;t[40]===_?ie=t[41]:(ie=_.trim(),t[40]=_,t[41]=ie);let ae=!ie,U=h?.colors?.status?.success,W=h?.colors?.status?.successForeground,oe;t[42]!==U||t[43]!==W?(oe={backgroundColor:U,color:W},t[42]=U,t[43]=W,t[44]=oe):oe=t[44];let G;t[45]!==p||t[46]!==m?(G=m(p?`inlineComment.actions.save`:`inlineComment.actions.comment`),t[45]=p,t[46]=m,t[47]=G):G=t[47];let K;t[48]!==M||t[49]!==ae||t[50]!==oe||t[51]!==G?(K=(0,$.jsx)(X,{size:`sm`,onClick:M,onPointerDown:to,onTouchStart:eo,disabled:ae,className:`h-8 min-w-[80px]`,style:oe,children:G}),t[48]=M,t[49]=ae,t[50]=oe,t[51]=G,t[52]=K):K=t[52];let q;t[53]!==re||t[54]!==H||t[55]!==K?(q=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 mt-3`,children:[re,H,K]}),t[53]=re,t[54]=H,t[55]=K,t[56]=q):q=t[56];let se;t[57]!==R||t[58]!==ne||t[59]!==q?(se=(0,$.jsxs)(`div`,{className:`p-3`,children:[R,ne,q]}),t[57]=R,t[58]=ne,t[59]=q,t[60]=se):se=t[60];let J;return t[61]!==N||t[62]!==L||t[63]!==ee||t[64]!==te||t[65]!==se?(J=(0,$.jsx)(`div`,{className:N,style:L,"data-comment-input":`true`,onPointerDown:ee,onTouchStart:te,children:se}),t[61]=N,t[62]=L,t[63]=ee,t[64]=te,t[65]=se,t[66]=J):J=t[66],J}function eo(e){return e.stopPropagation()}function to(e){return e.stopPropagation()}function no(e){return e.stopPropagation()}function ro(e){return e.stopPropagation()}function io(e){return e.stopPropagation()}function ao(e){return e.stopPropagation()}function oo(e){return e.stopPropagation()}function so(e){if(!e)return;let t=Math.min(e.start,e.end),n=Math.max(e.start,e.end);return{...e,start:t,end:n}}var co=e=>{let t=Math.min(e.startLine,e.endLine),n=Math.max(e.startLine,e.endLine);return{...e,startLine:t,endLine:n}},lo=e=>{let t=Math.min(e.start,e.end),n=Math.max(e.start,e.end);return{...e,start:t,end:n}};function uo(e){let t=(0,ui.c)(40),{t:n}=ge(),{source:r,fileLabel:i,language:a,getCodeForRange:o,toStoreRange:s,fromDraftRange:c}=e,l=ot(_o),u=ot(go),d=Wt(ho),f=Wt(mo),p=Wt(po),m=Wt(fo),[h,g]=Q.useState(null),[_,v]=Q.useState(``),[y,b]=Q.useState(null),x=l??(u?`draft`:null),S;bb0:{if(!x||!i){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0],S=e;break bb0}let e;t[1]!==m||t[2]!==x?(e=m[x]??[],t[1]=m,t[2]=x,t[3]=e):e=t[3];let n=e,a;if(t[4]!==i||t[5]!==n||t[6]!==r){let e;t[8]!==i||t[9]!==r?(e=e=>e.source===r&&e.fileLabel===i,t[8]=i,t[9]=r,t[10]=e):e=t[10],a=n.filter(e),t[4]=i,t[5]=n,t[6]=r,t[7]=a}else a=t[7];S=a}let C=S,w;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{g(null),v(``),b(null)},t[11]=w):w=t[11];let T=w,E;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{T()},t[12]=E):E=t[12];let D=E,O;t[13]===c?O=t[14]:(O=e=>{let t=lo(c(e));g(t),v(e.text),b(e.id)},t[13]=c,t[14]=O);let k=O,A;t[15]!==y||t[16]!==p?(A=e=>{p(e.sessionKey,e.id),y===e.id&&T()},t[15]=y,t[16]=p,t[17]=A):A=t[17];let j=A,M;t[18]!==d||t[19]!==y||t[20]!==i||t[21]!==o||t[22]!==a||t[23]!==h||t[24]!==x||t[25]!==r||t[26]!==n||t[27]!==s||t[28]!==f?(M=(e,t)=>{let c=t??h,l=e.trim();if(!c||!l||!i)return;if(!x){Ge.error(n(`inlineComment.toast.selectSessionToSave`));return}let u=lo(c),p=co(s(u)),m=o(u);y?f(x,y,{fileLabel:i,startLine:p.startLine,endLine:p.endLine,side:p.side,code:m,language:a,text:l}):d({sessionKey:x,source:r,fileLabel:i,startLine:p.startLine,endLine:p.endLine,side:p.side,code:m,language:a,text:l}),T()},t[18]=d,t[19]=y,t[20]=i,t[21]=o,t[22]=a,t[23]=h,t[24]=x,t[25]=r,t[26]=n,t[27]=s,t[28]=f,t[29]=M):M=t[29];let N=M,P;return t[30]!==_||t[31]!==j||t[32]!==C||t[33]!==y||t[34]!==c||t[35]!==N||t[36]!==h||t[37]!==x||t[38]!==k?(P={sessionKey:x,drafts:C,selection:h,setSelection:g,commentText:_,setCommentText:v,editingDraftId:y,setEditingDraftId:b,reset:T,cancel:D,startEdit:k,deleteDraft:j,saveComment:N,fromDraftRange:c},t[30]=_,t[31]=j,t[32]=C,t[33]=y,t[34]=c,t[35]=N,t[36]=h,t[37]=x,t[38]=k,t[39]=P):P=t[39],P}function fo(e){return e.drafts}function po(e){return e.removeDraft}function mo(e){return e.updateDraft}function ho(e){return e.addDraft}function go(e){return e.newSessionDraft?.open}function _o(e){return e.currentSessionId}function vo(e){let{drafts:t,editingDraftId:n,commentText:r,onTextChange:i,selection:a,isDragging:o,fileLabel:s,newWidgetId:c,mapDraftToRange:l,onSave:u,onCancel:d,onEdit:f,onDelete:p,onAddToChat:m}=e,h=[];for(let e of t){let t=l(e);if(e.id===n){h.push({afterLine:t.end,id:`edit-${e.id}`,content:(0,$.jsx)($a,{initialText:r,onTextChange:i,fileLabel:s,lineRange:t,isEditing:!0,onSave:u,onCancel:d,onAddToChat:m},`edit-${e.id}`)});continue}h.push({afterLine:t.end,id:`card-${e.id}`,content:(0,$.jsx)(Qa,{draft:e,onEdit:()=>f(e),onDelete:()=>p(e)},`card-${e.id}`)})}if(a&&!n&&!o){let e={...a,start:Math.min(a.start,a.end),end:Math.max(a.start,a.end)};h.push({afterLine:e.end,id:c,content:(0,$.jsx)($a,{initialText:r,onTextChange:i,fileLabel:s,lineRange:e,isEditing:!1,onSave:u,onCancel:d,onAddToChat:m},c)})}return h}var yo=e=>{if(e.type===`new`){let t=Math.min(e.selection.start,e.selection.end),n=Math.max(e.selection.start,e.selection.end);return`new-comment-${e.selection.side??`additions`}-${t}-${n}`}return`draft-${e.draft.id}`},bo=e=>{let{drafts:t,editingDraftId:n,selection:r}=e,i=[];for(let e of t){if(!Number.isFinite(e.endLine))continue;let t=Math.max(1,Math.floor(e.endLine)),r=e.side===`original`?`deletions`:`additions`;i.push({lineNumber:t,side:r,metadata:{type:e.id===n?`edit`:`saved`,draft:e}})}return r&&!n&&i.push({lineNumber:Math.max(r.start,r.end),side:r.side??`additions`,metadata:{type:`new`,selection:r}}),i};function xo(e){let t=e.trim();if(!t)return null;if(/^-?\d+(\.\d+)?$/.test(t)){let e=Number.parseFloat(t);return Number.isFinite(e)?e:null}if(t.endsWith(`px`)){let e=Number.parseFloat(t.slice(0,-2));return Number.isFinite(e)?e:null}return null}function So(e){if(!(!e||e<=0))return Math.max(200,Math.floor(e))}function Co(e){let{diffRootRef:t,drafts:n,selection:r,editingDraftId:i,commentText:a,onTextChange:o,fileLabel:s,onSave:c,onCancel:l,onEdit:u,onDelete:d,onAddToChat:f}=e,[p,m]=Q.useState(0),[h,g]=Q.useState(null),_=Q.useMemo(()=>!r||i?null:yo({type:`new`,selection:r}),[i,r]),v=Q.useMemo(()=>{let e=n.map(e=>yo({type:e.id===i?`edit`:`saved`,draft:e}));return _&&e.push(_),e},[n,i,_]),y=Q.useCallback(e=>{let n=t.current;if(!n)return null;let r=n.querySelector(`diffs-container`);if(!(r instanceof HTMLElement))return null;let i=r.querySelector(`[data-annotation-id="${e}"]`);if(i instanceof HTMLElement)return i;let a=r.shadowRoot;return a?a.querySelector(`[data-annotation-id="${e}"]`):null},[t]);Q.useEffect(()=>{if(v.length===0)return;let e=!1,t=0,n=()=>{e||v.every(e=>!!y(e))||t>=12||(t+=1,requestAnimationFrame(()=>{e||(m(e=>e+1),n())}))};return n(),()=>{e=!0}},[v,y]),Q.useEffect(()=>{let e=t.current;if(!e)return;let n=()=>{let t=xo(getComputedStyle(e).getPropertyValue(`--yuri-context-panel-width`)),n=e.getBoundingClientRect(),r=t??n.width;g(r>0?r:null)};n();let r=new ResizeObserver(()=>{n()});return r.observe(e),window.addEventListener(`resize`,n),()=>{r.disconnect(),window.removeEventListener(`resize`,n)}},[t]);let b=Q.useCallback(e=>{let n=t.current?.getBoundingClientRect(),r=e.closest(`[data-annotation-content]`),i=r instanceof HTMLElement?r.getBoundingClientRect():e.getBoundingClientRect(),a=[i.width];n&&a.push(n.right-i.left);let o=a.filter(e=>Number.isFinite(e)&&e>0);return o.length>0?So(Math.min(...o)):So(h)},[t,h]);return(0,$.jsxs)($.Fragment,{children:[n.map(e=>{let t=yo({type:e.id===i?`edit`:`saved`,draft:e}),n=y(t);if(!n)return null;let r=b(n);return e.id===i?(0,di.createPortal)((0,$.jsx)($a,{initialText:a,onTextChange:o,fileLabel:s,lineRange:{start:e.startLine,end:e.endLine,side:e.side===`original`?`deletions`:`additions`},isEditing:!0,onSave:c,onCancel:l,onAddToChat:f,maxWidth:r}),n,`draft-edit-${e.id}`):(0,di.createPortal)((0,$.jsx)(Qa,{draft:e,onEdit:()=>u(e),onDelete:()=>d(e),maxWidth:r}),n,`draft-card-${e.id}`)}),r&&!i&&_&&(()=>{let e=y(_);if(!e)return null;let t=b(e);return(0,di.createPortal)((0,$.jsx)($a,{initialText:a,onTextChange:o,fileLabel:s,lineRange:r,isEditing:!1,onSave:c,onCancel:l,onAddToChat:f,maxWidth:t}),e,_)})()]})}function wo(e){let t=(0,ui.c)(16),{position:n,onAddToChat:r,onDismiss:i}=e,{t:a}=ge(),o=Q.useRef(null),s,c;t[0]===i?(s=t[1],c=t[2]):(s=()=>{if(!i)return;let e=e=>{o.current&&e.target instanceof Node&&o.current.contains(e.target)||i()};return window.addEventListener(`scroll`,e,{capture:!0,passive:!0}),()=>{window.removeEventListener(`scroll`,e,!0)}},c=[i],t[0]=i,t[1]=s,t[2]=c),Q.useEffect(s,c);let l;t[3]!==n.x||t[4]!==n.y?(l={left:n.x,top:n.y},t[3]=n.x,t[4]=n.y,t[5]=l):l=t[5];let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(Z,{name:`add`,className:`size-4`}),t[6]=u):u=t[6];let d;t[7]===a?d=t[8]:(d=a(`chat.textSelection.actions.addToChat`),t[7]=a,t[8]=d);let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(qt,{shortcut:`⌘+I`}),t[9]=f):f=t[9];let p;t[10]!==r||t[11]!==d?(p=(0,$.jsxs)(X,{variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 px-2`,onClick:r,children:[u,d,f]}),t[10]=r,t[11]=d,t[12]=p):p=t[12];let m;return t[13]!==l||t[14]!==p?(m=(0,di.createPortal)((0,$.jsx)(`div`,{ref:o,"data-code-selection-action":`true`,className:`fixed z-[100] -translate-y-full rounded-lg border border-[var(--interactive-border)] bg-[var(--surface-elevated)] p-1 shadow-lg`,style:l,onPointerDown:To,children:p}),document.body),t[13]=l,t[14]=p,t[15]=m):m=t[15],m}function To(e){return e.preventDefault()}var Eo=`[data-code-selection-action]`;function Do(e){return e instanceof Element&&!!e.closest(Eo)}function Oo(e,t=[]){return Do(e)?!0:t.some(e=>e instanceof Element&&e.matches(`[data-column-number]`))}function ko(e,t){return e&&!!t?.trim()}function Ao(e,t,n,r){let i=r.side===`deletions`,a=Math.min(r.start,r.end),o=Math.max(r.start,r.end);if(!n){let n=(i?e:t).split(`