@openchambery/web 2.1.8-beta.4 → 2.1.8-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AssistantView-Dx-mzVKK.js → AssistantView-DkBZnKTg.js} +3 -3
- package/dist/assets/{DiagramView-CDmixuZQ.js → DiagramView-BRZo734k.js} +1 -1
- package/dist/assets/{MarkdownRenderer-CggK1I6D.js → MarkdownRenderer-DDqE2UK9.js} +2 -2
- package/dist/assets/{MarkdownRendererImpl-Cms-VuSl.js → MarkdownRendererImpl-bng3kEQL.js} +1 -1
- package/dist/assets/{MarkstreamRendererImpl-CrC7_3Y7.js → MarkstreamRendererImpl-BFmqgj-J.js} +1 -1
- package/dist/assets/{MobileDetailNavigation-CunQ1OIb.js → MobileDetailNavigation-CK7C09Q-.js} +1 -1
- package/dist/assets/{MobileShareBridge-CoRbF_fc.js → MobileShareBridge-tKpVD0C_.js} +1 -1
- package/dist/assets/{MobileTabPageHeader-Bj_Lu8tt.js → MobileTabPageHeader-DyILETej.js} +1 -1
- package/dist/assets/{MultiRunWindow-BgNee8Nh.js → MultiRunWindow-C5Z7HQxI.js} +1 -1
- package/dist/assets/{SettingsView-D0Rk6ERT.js → SettingsView-C1kqMaPC.js} +1 -1
- package/dist/assets/{SettingsWindow-8i92GNln.js → SettingsWindow-ZMIn5k6r.js} +1 -1
- package/dist/assets/{TerminalView-mLwQ0UU9.js → TerminalView-BWBJDK_M.js} +1 -1
- package/dist/assets/{ToolOutputDialog-DH6ASkUk.js → ToolOutputDialog-DP1UbrUO.js} +1 -1
- package/dist/assets/{appThemeRegistry-CHeMJdPY.js → appThemeRegistry-CFUjnNsk.js} +1 -1
- package/dist/assets/{fileMentionTouchSelection-CSelAE3Z.js → fileMentionTouchSelection-4QMgvjMz.js} +1 -1
- package/dist/assets/{gitApi-B123oHQk.js → gitApi-CU2FOcfV.js} +1 -1
- package/dist/assets/{insertionBoundaries-cfka-ff_.js → insertionBoundaries-d15008qA.js} +1 -1
- package/dist/assets/{main-IO37JIWf.js → main-BJ18z3BH.js} +2 -2
- package/dist/assets/{main-DJhLxkOQ.js → main-CtgP4TQO.js} +4 -4
- package/dist/assets/{mcpQueries-Digedyij.js → mcpQueries-XyOWHETV.js} +1 -1
- package/dist/assets/{miniChat-mE8pRELI.js → miniChat-Cd2w89kB.js} +2 -2
- package/dist/assets/{mobile-Cia2889g.js → mobile-CF_zxU1q.js} +2 -2
- package/dist/assets/{multirun-C1I9Attc.js → multirun-F1wVEoca.js} +1 -1
- package/dist/assets/{projectMeta-C2WeOasQ.js → projectMeta-GUcIt3IO.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-FpoAJUKI.js → renderElectronMiniChatApp-DXtaZEcs.js} +2 -2
- package/dist/assets/{renderMobileApp-DrT0ZwHw.js → renderMobileApp-DJ4DB0g_.js} +4 -4
- package/dist/assets/{runtimeConfig-yW48patn.js → runtimeConfig-GQzSTrhB.js} +1 -1
- package/dist/assets/{runtimeEndpointReset-CMmN7tH1.js → runtimeEndpointReset-CkSOnEwz.js} +1 -1
- package/dist/assets/{sessionChangeSummary-D1YrkHbB.js → sessionChangeSummary-Bh6u5Aff.js} +1 -1
- package/dist/assets/{sessionLookup-DrKLmlMv.js → sessionLookup-Cbk5VY_o.js} +1 -1
- package/dist/assets/{speechSettingsQueries-BNPsqHp5.js → speechSettingsQueries-Zydyn2ef.js} +1 -1
- package/dist/assets/{useAppFontEffects-BUJapti0.js → useAppFontEffects-CnKbngkX.js} +6 -6
- package/dist/assets/{useDesktopWindowControlsLayout-Dlh9xNoE.js → useDesktopWindowControlsLayout-DKFQlS7E.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-2dkaAaxr.js → useEffectiveDirectory-DBVgmClb.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-BRQBoMI1.js → useMobileNavigationStore-D6F8KKwN.js} +3 -3
- package/dist/assets/{useWorkerHighlightedLines-BRAfFOVn.js → useWorkerHighlightedLines-BsXRz5Z3.js} +1 -1
- package/dist/index.html +2 -2
- package/dist/mini-chat.html +2 -2
- package/dist/mobile.html +2 -2
- package/package.json +1 -1
- package/server/lib/opencode/DOCUMENTATION.md +1 -0
- package/server/lib/opencode/config-entities-layering.test.js +2 -1
- package/server/lib/opencode/plugin-routes.test.js +1 -1
- package/server/lib/opencode/plugins.js +31 -21
- package/server/lib/opencode/plugins.test.js +55 -10
|
@@ -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-C8w0nlKy.js";import{a,d as o,f as s,p as c,u as l}from"./runtime-switch-3ad3yzM7.js";import{n as u,t as d}from"./runtime-fetch-QCWYlAx0.js";import{st as f}from"./persistence-B7ORJ371.js";import{t as ee}from"./desktopRelayRestore-DK8TzHRx.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-CiBU2bCp.js";import{n as v,o as y}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{a as ct,c as lt,l as ut,n as dt,r as ft,s as pt,t as mt}from"./terminalApi-bN5IYQau.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 ht=e=>{let t=e?.retry;return{maxRetries:t?.maxRetries??3,initialRetryDelay:t?.initialDelayMs??1e3,maxRetryDelay:t?.maxDelayMs??8e3,connectionTimeout:e?.connectionTimeoutMs??1e4}},gt=()=>({async createSession(e){return ft(e)},connect(e,t,n){let r=dt(e,t.onEvent,t.onError,ht(n));return{close:()=>r()}},async sendInput(e,t){await ut(e,t)},async resize(e){await pt(e.sessionId,e.cols,e.rows)},async close(e){await mt(e)},async restartSession(e,t){return lt(e,{cwd:t.cwd??``,cols:t.cols,rows:t.rows})},async forceKill(e){await ct(e)}}),_t=()=>({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,`/`),vt=(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},yt=({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 u(`/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 vt(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 u(`/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 u(`/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?.allowOutsideWorkspace&&i.set(`allowOutsideWorkspace`,`true`),n?.outsideFileGrant&&i.set(`outsideFileGrant`,n.outsideFileGrant);let a=await u(`/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,isBinary:typeof o.isBinary==`boolean`?o.isBinary:void 0}},async readFile(t,n){let r=C(t),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 u(`/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-openchamber-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 u(`/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 u(`/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 u(`/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 u(`/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),r=await u(`/api/fs/raw`,{query:{path:n,download:!0},headers:w(e)});if(!r.ok)throw Error(`Download failed (${r.status})`);let i=await r.blob(),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=n.split(`/`).pop()||`file`,document.body.appendChild(o),o.click(),document.body.removeChild(o),setTimeout(()=>URL.revokeObjectURL(a),100)}}),T=`/api/config/settings`,bt=`/api/config/reload`,E=e=>!e||typeof e!=`object`?{}:e,xt=()=>({async load(){let e=await u(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 u(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 u(bt,{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}}}),St=()=>({async requestDirectoryAccess(e){return{success:!0,path:e.path}},async startAccessingDirectory(e){return{success:!0}},async stopAccessingDirectory(e){return{success:!0}}}),Ct=1500,D=5e3,wt=`openchamber-notification-claim:`,O=new Map,Tt=()=>typeof document>`u`||document.visibilityState===`visible`&&document.hasFocus(),Et=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(`|`),Dt=e=>{for(let[t,n]of O)e-n>D&&O.delete(t)},Ot=e=>{let t=Et(e);if(!t)return!0;let n=Date.now();if(Dt(n),n-(O.get(t)??0)<D)return!1;try{if(typeof window<`u`&&window.localStorage){let e=`${wt}${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),Ct)})])??e}catch{return e}},kt=async e=>{let t=await k();if(!t||typeof t.showNotification!=`function`)return!1;try{return await t.showNotification(e?.title??`OpenChamberY`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification via service worker`,e),!1}},At=async()=>{let e=await k();if(!e||!(`pushManager`in e)||!e.pushManager)return!1;try{return!!await e.pushManager.getSubscription()}catch{return!1}},jt=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(!Tt()&&await At()||!Ot(e))return!0;try{return await kt(e)||new Notification(e?.title??`OpenChamberY`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification`,e),!1}},Mt=async e=>{if(typeof window>`u`)return!1;let t=window.__OPENCHAMBER_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}},Nt=()=>({async notifyAgentCompletion(e){return await Mt(e)||await jt(e)},canNotify:()=>typeof window<`u`&&window.__OPENCHAMBER_DESKTOP__?.invoke?!0:typeof Notification<`u`&&Notification.permission===`granted`}),Pt=()=>({async getAvailableTools(){let e=await u(`/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 u(e,{...t,credentials:`include`,headers:{Accept:`application/json`,...t?.headers??{}}});return n.ok?await n.json():null}catch{return null}},Ft=()=>({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),It=({urls:e})=>({async authStatus(){let e=await u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(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 u(`/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 u(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 u(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),Lt=()=>({async listClients(){let e=await u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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),Rt=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}},zt=()=>({async createWithPrompt(e,t){let n;try{n=await u(`/api/openchamber/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(!Rt(r))throw Error(`Unexpected server response: result shape mismatch`);return r}}),Bt=`https://openchamber.xiaobe.top/v1/mobile/update/check`,Vt=`https://openchamber-update.vercel.app/v1/mobile/update/check`,Ht=1e4,F=`openchamber.mobile-ota.device-id.v1`,I=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,L=()=>{try{let e=v;return((typeof e.getConfig==`function`?e.getConfig():void 0)??e.config)?.OpenChamberOTA??{}}catch{return{}}},R=e=>e===`beta`||e===`stable`?e:L().channel===`stable`?`stable`:`beta`,z=()=>{let e=L().shellApiVersion;return typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):1},B=()=>{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`},Ut=()=>{if(typeof window>`u`)return null;try{return I(window.localStorage.getItem(F))}catch{return null}},V=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(F,e)}catch{}},H=async e=>{if(e)try{let t=I((await e.getDeviceId()).deviceId);if(t)return V(t),t}catch{}let t=Ut();if(t)return t;let n=f();return V(n),n},U=async()=>{let e=I(`2.1.8-beta.4`);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=I(n.version)??e??`0.0.0`,i=I(n.build),a=i?Number.parseInt(i,10):0;return{version:r,build:Number.isFinite(a)?a:0}}catch{}return{version:e??`0.0.0`,build:0}},W=(e,t,n)=>{let r=I(e?.version),i=I(t);if(n===`beta`&&i)return i;if(r&&r!==`builtin`)return i&&i!==r&&i.startsWith(`${r}-`)?i:r;let a=I(e?.id);return a&&a!==`builtin`?a:i??`builtin`},Wt=()=>I(`2.1.8-beta.4`),G=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},K=async(e,t)=>{let n=Wt();if(!e)return W(null,n,t);try{return W((await e.current()).bundle,n,t)}catch{return W(null,n,t)}},Gt=()=>[Bt,Vt],Kt=(e,t,n)=>{let r=e-n();return r<=0||t<=0?null:Math.max(1,Math.ceil(r/t))};async function qt(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 Jt=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))},Yt=e=>{let t=e;return t.isChannelRollback===!0||t.is_channel_rollback===!0?{...e,isChannelRollback:!0}:e};async function Xt(e,t,n,r){let i=await qt(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(!Jt(a))return null;if(a.primaryAction===`apply_ota`&&(t.releaseMajor===void 0||G(a.ota.bundle?.releaseVersion)!==t.releaseMajor))throw Error(`OTA release major mismatch`);return Yt(a)}async function Zt(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=R(e.channelOverride),[a,o,s]=await Promise.all([H(t),U(),K(t,i)]),c={channel:i,platform:B(),deviceId:a,nativeVersion:o.version,nativeBuild:o.build,shellApiVersion:z(),currentBundleId:s,releaseMajor:G(s)??G(o.version)},l=Gt(),u=r()+Ht,d=null;for(let[e,t]of l.entries()){let i=Kt(u,l.length-e,r);if(i===null)break;try{let e=await Xt(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 Qt(e){let t=await S();if(!t)return null;let n=await J({updater:t});if(n.releaseMajor===void 0||G(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 $t(e){let t=await S();if(!t)throw new b;let n=await J({updater:t});if(n.releaseMajor===void 0||G(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 q(){let e=await S();if(!e)throw new b;await e.reload()}async function en(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=R(e.channelOverride),[r,i,a]=await Promise.all([H(t),U(),K(t,n)]);return{channel:n,platform:B(),deviceId:r,nativeVersion:i.version,nativeBuild:i.build,shellApiVersion:z(),currentBundleId:a,releaseMajor:G(a)??G(i.version)}}var Y=null,X=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,Z=async()=>{let e=X(`2.1.8-beta.4`);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`},tn=()=>({async checkForOtaUpdate(e){if(!x()&&!v.isNativePlatform())throw new b;return Zt(e?.channelOverride?{channelOverride:e.channelOverride}:{})},async downloadOtaUpdate(e){if(!x())throw new b;let t=await Qt(e);return t?(Y=t,{skipped:!0}):(Y=await $t(e),{skipped:!1})},async applyOtaUpdateNow(){if(!x())throw new b;await q()},async queueOtaUpdateForNextLaunch(){if(!x())throw new b;let e=Y;if(!e)throw Error(`No downloaded OTA bundle to queue`);await en(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()}}}}),nn=()=>({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)}),rn=(e={})=>{let t=e.urls??o();c(t);let n=nn();return{runtime:{platform:`web`,isDesktop:!1,isVSCode:!1,label:`web`},terminal:gt(),git:_t(),files:yt({urls:n,getDirectory:()=>ie.getState().currentDirectory}),settings:xt(),permissions:St(),notifications:Nt(),github:It({urls:n}),push:Ft(),mobileUpdates:tn(),clientAuth:Lt(),tools:Pt(),conversations:zt()}},Q=(e,t)=>{if(!e||!t)return!1;try{return new URL(e).origin===new URL(t).origin}catch{return!1}},$=Promise.resolve(),an=()=>$,on=()=>{let o=typeof window.__OPENCHAMBER_API_BASE_URL__==`string`?window.__OPENCHAMBER_API_BASE_URL__.trim():``,s=typeof window.__OPENCHAMBER_CLIENT_TOKEN__==`string`?window.__OPENCHAMBER_CLIENT_TOKEN__.trim():``,c=typeof window.__OPENCHAMBER_LOCAL_ORIGIN__==`string`?window.__OPENCHAMBER_LOCAL_ORIGIN__.trim():``,u=l({apiBaseUrl:o||void 0,realtimeBaseUrl:o||void 0});a({apiBaseUrl:o,runtimeKey:Q(o,c)?`local`:null}),n(s||null),t(window.__OPENCHAMBER_RUNTIME_HEADERS__||null),i(o||void 0).catch(()=>{}),c&&!Q(o,c)&&Object.keys(r()).length>0&&e(c).catch(()=>{}),d();let f=window.__OPENCHAMBER_RELAY_HOST_ID__;return $=Promise.race([ee(typeof f==`string`&&f?f:void 0).catch(()=>{}),new Promise(e=>{window.setTimeout(e,1e4)})]),rn({urls:u})};export{an as n,on as t};
|
|
2
|
+
import{f as e,g as t,h as n,l as r,p as i}from"./runtime-auth-C8w0nlKy.js";import{a,d as o,f as s,p as c,u as l}from"./runtime-switch-3ad3yzM7.js";import{n as u,t as d}from"./runtime-fetch-QCWYlAx0.js";import{st as f}from"./persistence-B7ORJ371.js";import{t as ee}from"./desktopRelayRestore-DK8TzHRx.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-CiBU2bCp.js";import{n as v,o as y}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{a as ct,c as lt,l as ut,n as dt,r as ft,s as pt,t as mt}from"./terminalApi-bN5IYQau.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 ht=e=>{let t=e?.retry;return{maxRetries:t?.maxRetries??3,initialRetryDelay:t?.initialDelayMs??1e3,maxRetryDelay:t?.maxDelayMs??8e3,connectionTimeout:e?.connectionTimeoutMs??1e4}},gt=()=>({async createSession(e){return ft(e)},connect(e,t,n){let r=dt(e,t.onEvent,t.onError,ht(n));return{close:()=>r()}},async sendInput(e,t){await ut(e,t)},async resize(e){await pt(e.sessionId,e.cols,e.rows)},async close(e){await mt(e)},async restartSession(e,t){return lt(e,{cwd:t.cwd??``,cols:t.cols,rows:t.rows})},async forceKill(e){await ct(e)}}),_t=()=>({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,`/`),vt=(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},yt=({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 u(`/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 vt(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 u(`/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 u(`/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?.allowOutsideWorkspace&&i.set(`allowOutsideWorkspace`,`true`),n?.outsideFileGrant&&i.set(`outsideFileGrant`,n.outsideFileGrant);let a=await u(`/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,isBinary:typeof o.isBinary==`boolean`?o.isBinary:void 0}},async readFile(t,n){let r=C(t),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 u(`/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-openchamber-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 u(`/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 u(`/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 u(`/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 u(`/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),r=await u(`/api/fs/raw`,{query:{path:n,download:!0},headers:w(e)});if(!r.ok)throw Error(`Download failed (${r.status})`);let i=await r.blob(),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=n.split(`/`).pop()||`file`,document.body.appendChild(o),o.click(),document.body.removeChild(o),setTimeout(()=>URL.revokeObjectURL(a),100)}}),T=`/api/config/settings`,bt=`/api/config/reload`,E=e=>!e||typeof e!=`object`?{}:e,xt=()=>({async load(){let e=await u(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 u(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 u(bt,{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}}}),St=()=>({async requestDirectoryAccess(e){return{success:!0,path:e.path}},async startAccessingDirectory(e){return{success:!0}},async stopAccessingDirectory(e){return{success:!0}}}),Ct=1500,D=5e3,wt=`openchamber-notification-claim:`,O=new Map,Tt=()=>typeof document>`u`||document.visibilityState===`visible`&&document.hasFocus(),Et=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(`|`),Dt=e=>{for(let[t,n]of O)e-n>D&&O.delete(t)},Ot=e=>{let t=Et(e);if(!t)return!0;let n=Date.now();if(Dt(n),n-(O.get(t)??0)<D)return!1;try{if(typeof window<`u`&&window.localStorage){let e=`${wt}${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),Ct)})])??e}catch{return e}},kt=async e=>{let t=await k();if(!t||typeof t.showNotification!=`function`)return!1;try{return await t.showNotification(e?.title??`OpenChamberY`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification via service worker`,e),!1}},At=async()=>{let e=await k();if(!e||!(`pushManager`in e)||!e.pushManager)return!1;try{return!!await e.pushManager.getSubscription()}catch{return!1}},jt=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(!Tt()&&await At()||!Ot(e))return!0;try{return await kt(e)||new Notification(e?.title??`OpenChamberY`,{body:e?.body,tag:e?.tag}),!0}catch(e){return console.warn(`Failed to send notification`,e),!1}},Mt=async e=>{if(typeof window>`u`)return!1;let t=window.__OPENCHAMBER_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}},Nt=()=>({async notifyAgentCompletion(e){return await Mt(e)||await jt(e)},canNotify:()=>typeof window<`u`&&window.__OPENCHAMBER_DESKTOP__?.invoke?!0:typeof Notification<`u`&&Notification.permission===`granted`}),Pt=()=>({async getAvailableTools(){let e=await u(`/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 u(e,{...t,credentials:`include`,headers:{Accept:`application/json`,...t?.headers??{}}});return n.ok?await n.json():null}catch{return null}},Ft=()=>({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),It=({urls:e})=>({async authStatus(){let e=await u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(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 u(`/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 u(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 u(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),Lt=()=>({async listClients(){let e=await u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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 u(`/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),Rt=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}},zt=()=>({async createWithPrompt(e,t){let n;try{n=await u(`/api/openchamber/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(!Rt(r))throw Error(`Unexpected server response: result shape mismatch`);return r}}),Bt=`https://openchamber.xiaobe.top/v1/mobile/update/check`,Vt=`https://openchamber-update.vercel.app/v1/mobile/update/check`,Ht=1e4,F=`openchamber.mobile-ota.device-id.v1`,I=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,L=()=>{try{let e=v;return((typeof e.getConfig==`function`?e.getConfig():void 0)??e.config)?.OpenChamberOTA??{}}catch{return{}}},R=e=>e===`beta`||e===`stable`?e:L().channel===`stable`?`stable`:`beta`,z=()=>{let e=L().shellApiVersion;return typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):1},B=()=>{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`},Ut=()=>{if(typeof window>`u`)return null;try{return I(window.localStorage.getItem(F))}catch{return null}},V=e=>{if(!(typeof window>`u`))try{window.localStorage.setItem(F,e)}catch{}},H=async e=>{if(e)try{let t=I((await e.getDeviceId()).deviceId);if(t)return V(t),t}catch{}let t=Ut();if(t)return t;let n=f();return V(n),n},U=async()=>{let e=I(`2.1.8-beta.6`);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=I(n.version)??e??`0.0.0`,i=I(n.build),a=i?Number.parseInt(i,10):0;return{version:r,build:Number.isFinite(a)?a:0}}catch{}return{version:e??`0.0.0`,build:0}},W=(e,t,n)=>{let r=I(e?.version),i=I(t);if(n===`beta`&&i)return i;if(r&&r!==`builtin`)return i&&i!==r&&i.startsWith(`${r}-`)?i:r;let a=I(e?.id);return a&&a!==`builtin`?a:i??`builtin`},Wt=()=>I(`2.1.8-beta.6`),G=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},K=async(e,t)=>{let n=Wt();if(!e)return W(null,n,t);try{return W((await e.current()).bundle,n,t)}catch{return W(null,n,t)}},Gt=()=>[Bt,Vt],Kt=(e,t,n)=>{let r=e-n();return r<=0||t<=0?null:Math.max(1,Math.ceil(r/t))};async function qt(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 Jt=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))},Yt=e=>{let t=e;return t.isChannelRollback===!0||t.is_channel_rollback===!0?{...e,isChannelRollback:!0}:e};async function Xt(e,t,n,r){let i=await qt(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(!Jt(a))return null;if(a.primaryAction===`apply_ota`&&(t.releaseMajor===void 0||G(a.ota.bundle?.releaseVersion)!==t.releaseMajor))throw Error(`OTA release major mismatch`);return Yt(a)}async function Zt(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=R(e.channelOverride),[a,o,s]=await Promise.all([H(t),U(),K(t,i)]),c={channel:i,platform:B(),deviceId:a,nativeVersion:o.version,nativeBuild:o.build,shellApiVersion:z(),currentBundleId:s,releaseMajor:G(s)??G(o.version)},l=Gt(),u=r()+Ht,d=null;for(let[e,t]of l.entries()){let i=Kt(u,l.length-e,r);if(i===null)break;try{let e=await Xt(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 Qt(e){let t=await S();if(!t)return null;let n=await J({updater:t});if(n.releaseMajor===void 0||G(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 $t(e){let t=await S();if(!t)throw new b;let n=await J({updater:t});if(n.releaseMajor===void 0||G(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 q(){let e=await S();if(!e)throw new b;await e.reload()}async function en(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=R(e.channelOverride),[r,i,a]=await Promise.all([H(t),U(),K(t,n)]);return{channel:n,platform:B(),deviceId:r,nativeVersion:i.version,nativeBuild:i.build,shellApiVersion:z(),currentBundleId:a,releaseMajor:G(a)??G(i.version)}}var Y=null,X=e=>typeof e==`string`&&e.trim().length>0?e.trim():null,Z=async()=>{let e=X(`2.1.8-beta.6`);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`},tn=()=>({async checkForOtaUpdate(e){if(!x()&&!v.isNativePlatform())throw new b;return Zt(e?.channelOverride?{channelOverride:e.channelOverride}:{})},async downloadOtaUpdate(e){if(!x())throw new b;let t=await Qt(e);return t?(Y=t,{skipped:!0}):(Y=await $t(e),{skipped:!1})},async applyOtaUpdateNow(){if(!x())throw new b;await q()},async queueOtaUpdateForNextLaunch(){if(!x())throw new b;let e=Y;if(!e)throw Error(`No downloaded OTA bundle to queue`);await en(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()}}}}),nn=()=>({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)}),rn=(e={})=>{let t=e.urls??o();c(t);let n=nn();return{runtime:{platform:`web`,isDesktop:!1,isVSCode:!1,label:`web`},terminal:gt(),git:_t(),files:yt({urls:n,getDirectory:()=>ie.getState().currentDirectory}),settings:xt(),permissions:St(),notifications:Nt(),github:It({urls:n}),push:Ft(),mobileUpdates:tn(),clientAuth:Lt(),tools:Pt(),conversations:zt()}},Q=(e,t)=>{if(!e||!t)return!1;try{return new URL(e).origin===new URL(t).origin}catch{return!1}},$=Promise.resolve(),an=()=>$,on=()=>{let o=typeof window.__OPENCHAMBER_API_BASE_URL__==`string`?window.__OPENCHAMBER_API_BASE_URL__.trim():``,s=typeof window.__OPENCHAMBER_CLIENT_TOKEN__==`string`?window.__OPENCHAMBER_CLIENT_TOKEN__.trim():``,c=typeof window.__OPENCHAMBER_LOCAL_ORIGIN__==`string`?window.__OPENCHAMBER_LOCAL_ORIGIN__.trim():``,u=l({apiBaseUrl:o||void 0,realtimeBaseUrl:o||void 0});a({apiBaseUrl:o,runtimeKey:Q(o,c)?`local`:null}),n(s||null),t(window.__OPENCHAMBER_RUNTIME_HEADERS__||null),i(o||void 0).catch(()=>{}),c&&!Q(o,c)&&Object.keys(r()).length>0&&e(c).catch(()=>{}),d();let f=window.__OPENCHAMBER_RELAY_HOST_ID__;return $=Promise.race([ee(typeof f==`string`&&f?f:void 0).catch(()=>{}),new Promise(e=>{window.setTimeout(e,1e4)})]),rn({urls:u})};export{an as n,on as t};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OnboardingScreen-CHa767GT.js","assets/rolldown-runtime-hePW80VL.js","assets/runtime-fetch-QCWYlAx0.js","assets/runtime-auth-C8w0nlKy.js","assets/runtime-switch-3ad3yzM7.js","assets/persistence-B7ORJ371.js","assets/vendor-zustand-o69pgTEK.js","assets/vendor-base-ui-CdzJ6My_.js","assets/useUIStore-CDMI_Yzu.js","assets/vendor-react-BP2cRVqX.js","assets/vendor-pathe-vBmvQE8f.js","assets/vendor-tanstack-query-core-BWz0ose6.js","assets/desktopHosts-DSBZ-9-L.js","assets/button-DOrwfkre.js","assets/store-COtDAfPx.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-QASb6r3F.js","assets/dialog-FSXwOR2i.js","assets/input-Ctgb06ot.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-3ad3yzM7.js";import{n as s}from"./runtime-fetch-QCWYlAx0.js";import{An as c,On as l,Rt as u,Wt as d,_n as f,h as p,ln as m,m as h,mt as g,on as _,ot as v,rn as y,un as b}from"./persistence-B7ORJ371.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-CiBU2bCp.js";import{n as P,t as F,x as I}from"./useUIStore-CDMI_Yzu.js";import{n as L}from"./vendor-react-BP2cRVqX.js";import{o as ee}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{l as R,n as z,o as B,s as V,t as te}from"./vendor-tanstack-react-query-CdqCAt40.js";import{i as ne}from"./terminalApi-bN5IYQau.js";import{c as H,d as re,f as ie,l as ae,m as U,n as W,o as G,p as oe,s as K,t as q,u as J}from"./vendor-pierre-diffs-DPBtNDJ5.js";import{r as se}from"./vendor-sonner-ZS8XIOVl.js";import{l as ce,n as le,p as ue,r as de}from"./vendor-reactuses-core-BpfIZ1tg.js";import{d as fe,f as pe,i as me,l as he,p as ge,r as Y,t as X,u as _e}from"./button-DOrwfkre.js";import{i as ve,t as ye}from"./store-COtDAfPx.js";import{A as be,M as xe,O as Se,j as Ce,k as we,t as Te}from"./MobileDetailNavigation-CunQ1OIb.js";import{$r as Ee,An as De,Ar as Oe,Bt as ke,Cn as Ae,Dr as je,Er as Me,Gt as Ne,Jr as Pe,Li as Fe,Mr as Ie,Nr as Le,Or as Re,Pr as ze,Sn as Be,Sr as Ve,Vt as He,Wn as Ue,Xn as We,Yr as Ge,ba as Ke,bo as qe,co as Je,d as Ye,di as Xe,gi as Ze,go as Qe,ja as $e,kr as et,li as tt,ln as nt,lo as rt,o as it,sa as at,uo as ot,va as st,vo as ct,vr as lt,wn as ut,wr as dt,xr as ft}from"./useMobileNavigationStore-BRQBoMI1.js";import{i as pt,t as mt}from"./useAssistantUIStore-Dlvb7P0q.js";import{t as ht}from"./AgentAvatar-qSjSZvIG.js";import{n as gt,t as _t}from"./useThemeSystem-8jhE4Zyk.js";import{n as Z}from"./Icon-QASb6r3F.js";import{a as vt,i as yt,n as bt,o as xt,r as St,t as Ct}from"./dialog-FSXwOR2i.js";import{d as wt}from"./gitApi-B123oHQk.js";import{$ as Tt,Ct as Et,E as Dt,G as Ot,O as kt,Rt as At,St as jt,U as Mt,W as Nt,at as Pt,c as Ft,ct as It,it as Lt,lt as Rt,mt as zt,o as Bt,ot as Vt,rt as Ht,s as Ut,st as Wt,tt as Gt,vt as Kt,xt as qt,yt as Jt}from"./useAppFontEffects-BUJapti0.js";import{A as Yt,_ as Xt,a as Zt,b as Qt,d as $t,f as en,h as tn,i as nn,l as rn,m as an,n as on,p as sn,r as cn,s as ln,t as un,x as dn}from"./projectMeta-C2WeOasQ.js";import{t as fn}from"./input-Ctgb06ot.js";import{i as pn,n as mn,t as hn}from"./tooltip-JgW0lJaV.js";import{Dt as gn,Et as _n,J as vn,Ot as yn,Tt as bn,Y as xn,_ as Sn,_t as Cn,at as wn,ct as Tn,dt as En,ht as Dn,it as On,lt as kn,nt as An,ot as jn,v as Mn,zt as Nn}from"./speechSettingsQueries-BNPsqHp5.js";import{i as Pn,t as Fn}from"./OverlayScrollbar-C7Ls30Hy.js";import{h as In,v as Ln}from"./image-loading-qNtUCy69.js";import{x as Rn}from"./dropdown-menu.styles-CfTQwJHe.js";import{n as zn,t as Bn}from"./useRuntimeAPIs-Cx8S1HLz.js";import{T as Vn,a as Hn,g as Un,h as Wn,i as Gn,n as Kn,o as qn,p as Jn,r as Yn,t as Xn,x as Zn,y as Qn}from"./textarea-DJ52TDJj.js";import{T as $n}from"./sessionChangeSummary-D1YrkHbB.js";import{i as er,t as tr}from"./vendor-framer-motion-D-oiwsxL.js";import{D as nr,b as rr,h as ir,k as ar,r as or,v as sr,w as cr,y as lr}from"./insertionBoundaries-cfka-ff_.js";import{i as ur,n as dr,t as fr}from"./appThemeRegistry-CHeMJdPY.js";import{o as pr}from"./MarkdownRenderer-CggK1I6D.js";import{_ as mr,i as hr,l as gr,s as _r,t as vr,v as yr,y as br}from"./vendor-dnd-kit-core-5pNnzVdw.js";import{a as xr,o as Sr,s as Cr,t as wr}from"./vendor-dnd-kit-sortable-Dm50I0m7.js";import{f as Tr,l as Er}from"./markdown-worker-DFNZ3KJ_.js";import{n as Dr}from"./useEffectiveDirectory-2dkaAaxr.js";import{u as Or}from"./FadeInOnReveal-CD5d1k_u.js";import{t as kr}from"./LoadingImage-FRySi1BM.js";import{n as Ar}from"./useWorkerHighlightedLines-BRAfFOVn.js";import{t as jr}from"./vendor-tanstack-react-virtual-B_EO--9t.js";import{t as Mr}from"./vendor-motion-88WXBOBf.js";import{B as Nr,t as Pr,u as Fr,v as Ir,x as Lr}from"./MobileTabPageHeader-Bj_Lu8tt.js";import{c as Rr,l as zr}from"./mcpQueries-Digedyij.js";import{a as Br,c as Vr,d as Hr,i as Ur,l as Wr,m as Gr,n as Kr,o as qr,r as Jr,s as Yr,t as Xr}from"./scheduledTaskNavigation-DEMPeoot.js";import{n as Zr,r as Qr}from"./sessionLookup-DrKLmlMv.js";import{n as $r,r as ei,t as ti}from"./collapsible-BJwPZMpo.js";import{t as ni}from"./vendor-cron-parser-BmO80h0C.js";var Q=e(w(),1),ri=L(),$=D(),ii=e(T(),1);function ai(){return new Worker(q,{type:`module`})}var oi=[`typescript`,`javascript`,`tsx`,`jsx`,`json`,`markdown`],si={unified:{poolSize:1,totalASTLRUCacheSize:24,lineDiffType:`none`},split:{poolSize:2,totalASTLRUCacheSize:56,lineDiffType:`word-alt`}},ci,li,ui=e=>{let t=si[e],n=new oe({workerFactory:ai,poolSize:t.poolSize,totalASTLRUCacheSize:t.totalASTLRUCacheSize},{theme:{light:`pierre-light`,dark:`pierre-dark`},langs:oi,lineDiffType:t.lineDiffType,preferredHighlighter:`shiki-wasm`});return n.initialize(),n},di=e=>{if(!(typeof window>`u`))return e===`split`?(li??=ui(`split`),li):(ci??=ui(`unified`),ci)},fi=e=>{let t=(0,ri.c)(7),{children:n,renderTheme:r}=e,i=mi(`unified`),a=mi(`split`),o,s;t[0]!==r||t[1]!==a||t[2]!==i?(o=()=>{i&&i.setRenderOptions({theme:r,lineDiffType:si.unified.lineDiffType}),a&&a.setRenderOptions({theme:r,lineDiffType:si.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},pi=e=>{let t=(0,ri.c)(11),{children:n}=e,r=_t(),i,a;if(t[0]!==r?.availableThemes||t[1]!==r?.darkThemeId||t[2]!==r?.lightThemeId){let e=Ln(!1),n=Ln(!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,fr(a),fr(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)(fi,{renderTheme:s,children:n}),t[8]=n,t[9]=s,t[10]=c):c=t[10],c},mi=e=>{let t=(0,ri.c)(2),n=e===void 0?`unified`:e,r;return t[0]===n?r=t[1]:(r=di(n),t[0]=n,t[1]=r),r},hi=(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},gi=async e=>{let t=e.query.trim();if(!t)return[];let n=await(e.fetch??s)(`/api/openchamber/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=>hi(e,typeof e?.directory==`string`?e.directory:``)?[e]:[])},_i=(e,t)=>{let i=e.trim(),a=t.scope,o=a?.transport??n(),s=a?.generation??r(),c=t.searchContent??gi;return B({queryKey:p.sessionContentSearch.query(i,``,s,o),enabled:i.length>0&&a!==null,queryFn:({signal:e})=>a?c({scope:a,query:i,limit:30,signal:e}):[],staleTime:0,refetchInterval:3e3,retry:1})},vi=(e=s)=>B({queryKey:[n(),`contentSearchStatus`,r()],queryFn:async({signal:t})=>{let n=await e(`/api/openchamber/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}),yi=pr(()=>ee(()=>import(`./OnboardingScreen-CHa767GT.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])));function bi(){let e=(0,ri.c)(11),[t,n]=Q.useState(!1),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=vi(),e[0]=r):r=e[0];let i=!t,a;e[1]===i?a=e[2]:(a={...r,enabled:i,refetchOnWindowFocus:!1,refetchInterval:xi},e[1]=i,e[2]=a);let o=V(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)(Ct,{open:!0,onOpenChange:d,children:(0,$.jsx)(bt,{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)(yi,{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 xi(e){let t=e.state.data;return t===null||t&&t.initializationRequired===void 0||t?.initializationRequired===!1&&t.updatedAt!=null?!1:3e3}function Si(){let e=(0,ri.c)(4);if(Bn())return null;let t,n;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)){let r=vi().queryKey;t=bi,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 Ci=Q.forwardRef((e,t)=>{let n=(0,ri.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});Ci.displayName=`Switch`;var wi={},Ti=[],Ei=(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}},Di=e=>{switch(e?.status){case`connected`:return`success`;case`failed`:return`error`;case`needs_auth`:case`needs_client_registration`:return`warning`;default:return`default`}},Oi=({active:e,className:t,headerAction:n,listClassName:r,hideHeader:i=!1,mobileListDensity:a=!1})=>{let{t:o}=pe(),s=k(e=>e.currentDirectory)??null,c=Nr(e=>e.connect),l=Nr(e=>e.disconnect),{data:u,refetch:d,isError:f,error:p}=zr(s,{enabled:e}),{data:m}=Rr(s,{enabled:e}),h=u??wi,g=m??Ti,[_,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=Di(t),r=t?.status===`connected`,i=y===e,d=Ei(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)(hn,{children:[(0,$.jsx)(pn,{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)(mn,{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)(Ci,{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`)})]})})]})},ki=e=>!(e.dismissed===`true`||e.sessionShown===`true`||e.hasActiveToast),Ai=e=>!(!e.version||e.seenVersions.has(e.version)||e.dismissedVersion!==null&&e.dismissedVersion===e.version),ji=e=>{if(typeof e!=`object`||!e)return``;let t=e.version;return typeof t==`string`?t.trim():``},Mi=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():``},Ni=e=>{let t=e.trim().replace(/^v/i,``);return t?{target:t}:null},Pi=5e3,Fi={setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e)};function Ii(e,t,n=Fi){if(!e)return()=>void 0;let r=n.setTimeout(()=>{t().catch(()=>void 0)},Pi);return()=>n.clearTimeout(r)}var Li=(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 s(`/api/opencode/upgrade-status`,{headers:{Accept:`application/json`},signal:i});if(!o.ok)throw Error(`OpenCode update check failed`);let c=await o.json();if(i.aborted||!a())throw Error(`Stale OpenCode update check`);if(!c||typeof c!=`object`||Array.isArray(c))throw Error(`Invalid OpenCode update status`);return c},staleTime:3e4,refetchInterval:3e5,refetchOnWindowFocus:!0,refetchOnReconnect:!0,retry:1}),Ri=`opencode-update-available`,zi=`opencode-upgrade-progress`,Bi=`opencode-update-toast-dismissed-version`,Vi=()=>{let{t:e}=pe(),i=P(e=>e.showOpenCodeUpdateNotifications),a=Q.useRef(new Set),o=Q.useRef(!1),c=Q.useSyncExternalStore(t,n,n),l=Q.useSyncExternalStore(t,r,r),u=R(),[d,f]=Q.useState(!1);Q.useEffect(()=>Ii(i,async()=>{f(!0)}),[i]);let p=V({...Li(c,l),enabled:i&&d});de(`openchamber:opencode-update-available`,e=>{i&&ji(e.detail)&&p.refetch()});let m=`${Bi}:${c}`;Q.useEffect(()=>{a.current.clear(),ze.dismiss(Ri),ze.dismiss(zi)},[c,l]),Q.useEffect(()=>{i||ze.dismiss(Ri)},[i]);let h=le(async(t,i=!1)=>{if(o.current)return;o.current=!0;let a=()=>c===n()&&l===r();ze.dismiss(Ri),ze.message(e(`opencodeUpdate.toast.upgrading.title`),{id:zi,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=Ni(t);if(!n)throw Error(e(`opencodeUpdate.toast.failed.description`));let r=await s(`/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`){ze.error(e(`opencodeUpdate.toast.failed.title`),{id:zi,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`));ze.success(e(`opencodeUpdate.toast.updated.title`),{id:zi,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:[c,`opencode-update`,l]}),u.invalidateQueries({queryKey:[c,`about`,l]})}catch(n){if(!a())return;ze.error(e(`opencodeUpdate.toast.failed.title`),{id:zi,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){ze.dismiss(Ri);return}Ai({version:t,dismissedVersion:I().getItem(m),seenVersions:a.current})&&(a.current.add(t),ze.info(e(`opencodeUpdate.toast.available.title`),{id:Ri,description:e(`opencodeUpdate.toast.available.description`,{version:t}),duration:1/0,action:{label:e(`opencodeUpdate.toast.actions.update`),onClick:()=>{c===n()&&l===r()&&h(t)}},cancel:{label:e(`opencodeUpdate.toast.actions.dismiss`),onClick:()=>{I().setItem(m,t),ze.dismiss(Ri)}}}))},i=Mi(p.data);i?t(i):(p.data?.available===!1||p.data?.canManage===!1)&&ze.dismiss(Ri)},[i,e,p.data,m,c,l,h]),null},Hi=()=>{let e=(0,ri.c)(3),[t,n]=Q.useState(Ui),{isUpdating:r}=t,i,a;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>ot(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)(Nn,{width:80,height:80,isAnimated:!0})}),e[2]=o):o=e[2],o};function Ui(){return rt()}var Wi=5e3,Gi=(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},Ki=(e,t)=>ye(ve.getState().dictionary,e,t),qi=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`},Ji=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 s(`/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-openchamber-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`}},Yi=async(e,t)=>{try{let{content:n,exists:r}=await Ji(e,t);return r?Gi(n,5e3)>5e3?{ok:!1,reason:`too-large`}:{ok:!0}:{ok:!1,reason:`missing`}}catch(e){return{ok:!1,reason:qi(e)}}},Xi=e=>e===`too-large`?Ki(`contextFileOpen.failure.tooLarge`,{count:Wi.toLocaleString(ge())}):Ki(e===`missing`?`contextFileOpen.failure.missing`:`contextFileOpen.failure.unreadable`),Zi=(e,t)=>!e||t.length===0?``:JSON.stringify([e,t]),Qi=(e,t,n,r)=>!n||r!==n||e.length===0?[]:Ue(e,t,e=>e.name,{limit:10,threshold:.4}),$i=(e,t={})=>{let r=e.trim(),i=t.transport??n(),a=t.searchSessions??(e=>j.searchSessionsByTitle(e));return B({queryKey:p.sessionTitleSearch.query(r,i),enabled:r.length>0,queryFn:({signal:e})=>a({search:r,limit:30,signal:e}),staleTime:5e3,retry:1})},ea=e=>{let t=(0,ri.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},ta=`min-h-9 gap-2 rounded-lg px-3 py-2 typography-meta`,na=`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`,ra=`rounded-[3px] bg-[color-mix(in_srgb,var(--primary-base)_28%,transparent)] px-0.5 font-[inherit] text-foreground`;function ia(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:ra,children:e},t):(0,$.jsx)(`span`,{children:e},t))}var aa=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},oa=({presentation:e=`dialog`,onBack:t})=>{let{t:i}=pe(),a=$n(),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),p=P(e=>e.setSettingsPage),h=P(e=>e.setSessionSwitcherOpen),g=P(e=>e.toggleSidebar),v=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=Ye(e=>e.openNewSessionDraft),E=Ye(e=>e.setCurrentSession),D=Oe(e=>e.activeSessions),O=Oe(e=>e.status),j=k(e=>e.currentDirectory),M=Je(e=>e.getActiveProject()),N=Je(e=>e.projects),F=Dr(),I=A(e=>e.searchFiles),{files:L}=zn(),{isMobile:ee}=Pn(),R=e===`page`||ee,z=he(),B=Q.useRef(null),te=Q.useRef(null),ne=le(()=>{if(!R||!o||!B.current)return;let e=window.visualViewport;B.current.style.setProperty(`--search-viewport-height`,`${e?.height??window.innerHeight}px`),B.current.style.setProperty(`--search-viewport-top`,`${e?.offsetTop??0}px`)});de(`resize`,ne,()=>R&&o?window.visualViewport??window:null),de(`scroll`,ne,()=>R&&o?window.visualViewport:null),Q.useEffect(()=>{ne()},[R,o]),Q.useEffect(()=>{e===`page`&&o&&te.current?.focus({preventScroll:!0})},[e,o]);let H=Q.useMemo(()=>F?aa(F):null,[F]),[re,ie]=Q.useState(``),[ae,U]=Q.useState({query:``,groups:[]}),W=ar(re,200).trim(),G=re.trim();Q.useEffect(()=>{o&&(ie(``),U({query:``,groups:[]}),c(!0))},[o]);let oe=le(()=>l(!1)),K=le(e=>()=>{oe(),e()}),q=Q.useMemo(()=>{let e=[{id:`new-session`,title:i(`commandPalette.item.newSession`),shortcutId:`new_chat`,searchText:i(`commandPalette.item.newSession`),onSelect:K(()=>{u(`chat`),h(!1),T()})},{id:`new-worktree`,title:i(`commandPalette.item.newWorktreeDraft`),shortcutId:`new_chat_worktree`,searchText:i(`commandPalette.item.newWorktreeDraft`),onSelect:K(()=>{Rt()})},{id:`add-project`,title:i(`commandPalette.item.addProject`),searchText:i(`commandPalette.item.addProject`),onSelect:K(()=>{Ze.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:K(()=>{if(R){let{isSessionSwitcherOpen:e}=P.getState();h(!e)}else g()})},{id:`toggle-right-sidebar`,title:i(`commandPalette.item.toggleRightSidebar`),shortcutId:`toggle_right_sidebar`,searchText:i(`commandPalette.item.toggleRightSidebar`),onSelect:K(()=>v())},{id:`toggle-terminal`,title:i(`commandPalette.item.toggleTerminal`),shortcutId:`toggle_terminal`,searchText:i(`commandPalette.item.toggleTerminal`),onSelect:K(()=>x())},{id:`new-terminal-tab`,title:i(`commandPalette.item.newTerminalTab`),shortcutId:`open_new_terminal`,searchText:i(`commandPalette.item.newTerminalTab`),onSelect:K(()=>{F&&Ft(F)})},{id:`context-usage`,title:i(`commandPalette.item.showContextUsage`),searchText:i(`commandPalette.item.showContextUsage`),onSelect:K(()=>{j&&S(j)})},{id:`open-settings`,title:i(`commandPalette.item.openSettings`),shortcutId:`open_settings`,searchText:i(`commandPalette.item.openSettings`),onSelect:K(()=>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:K(()=>{y(`desktop_open_draft_mini_chat_window`,{directory:aa(j||M?.path||``),projectId:M?.id??null}).catch(e=>{console.warn(`[command-palette] failed to open draft mini chat window`,e)})})}),e},[i,K,R,u,h,T,g,v,x,j,F,S,f,M?.id,M?.path]),J=Q.useMemo(()=>{let e=_();return{isVSCode:m(),isWeb:!e&&b(),isDesktop:e,isMobile:R}},[R]),se=Q.useMemo(()=>Hr.filter(e=>e.slug!==`home`).filter(e=>!e.isAvailable||e.isAvailable(J)).map(e=>{let t=(e.keywords??[]).join(` `);return{id:`settings:${e.slug}`,title:e.title,searchText:`${e.title} ${e.group} ${t}`,onSelect:K(()=>{p(e.slug),f(!0)})}}),[J,K,p,f]),ce=Q.useMemo(()=>{let e=e=>(typeof e.time?.updated==`number`?e.time.updated:0)||(typeof e.time?.created==`number`?e.time.created:0);return[...D].sort((t,n)=>e(n)-e(t))},[D]),ue=Ye(e=>e.worktreeMetadata),fe=Ye(e=>e.availableWorktreesByProject),[me,ge]=Q.useState([]),[Y,X]=Q.useState(``),[ve,ye]=Q.useState(``),be=Zi(H,W);Q.useEffect(()=>{if(!o){ge([]),X(``),ye(``);return}if(!be){ge([]),X(``),ye(``);return}if(!H){ge([]),X(``),ye(``);return}let e=!1;return ye(``),I(H,W,10,{type:`file`}).then(t=>{e||(ge(t.map(e=>({path:aa(e.path),name:e.name,relativePath:e.relativePath}))),X(be),ye(``))}).catch(()=>{e||(ge([]),X(``),ye(be))}),()=>{e=!0}},[o,H,W,be,I]);let xe=G.length>0,Se=Q.useMemo(()=>xe?Ue(q,G,e=>e.searchText,{limit:7,noFuzzy:!0}):q.map(e=>({item:e,score:0})),[q,G,xe]),Ce=Q.useMemo(()=>xe?Ue(se,G,e=>e.searchText,{limit:7,noFuzzy:!0}):[],[se,G,xe]),we=V({...$i(W),enabled:(o||s)&&(W.length>0||e===`page`)}),Ee={transport:n(),generation:r(),directory:``},De=JSON.stringify([Ee.transport,Ee.generation,H,G,o]),[ke,Ae]=Q.useState(null),Me=ke?.key===De?ke:null;ke&&!Me&&Ae(null);let Ne=V({...vi(),enabled:o||s}),Pe=V({..._i(W,{scope:Ee}),enabled:(o||s)&&W.length>0&&Ee!==null}),Ie=Q.useMemo(()=>Me?.hits??Pe.data??[],[Me,Pe.data]),Le=xe&&G===W&&Pe.isError,Re=xe&&G===W&&we.isSuccess,Be=(xe||e===`page`)&&G===W&&we.isError,Ve=Q.useMemo(()=>Be?Ue(ce,G,e=>e.title||``,{limit:30,threshold:.2}).map(({item:e})=>e):[],[Be,ce,G]),He=Q.useMemo(()=>Me?Me.sessions:xe?Re?we.data??[]:Be?Ve:[]:e===`page`&&!W&&we.isSuccess?we.data:ce.slice(0,e===`page`?30:9),[xe,ce,Re,Be,Ve,we.data,we.isSuccess,e,W,Me]),We=Q.useMemo(()=>!o&&!s||G!==W||ve===be?[]:Qi(me,W,be,Y),[o,s,me,Y,be,W,G,ve]),Ge=(o||s)&&be.length>0&&Y!==be&&ve!==be,Ke=Q.useMemo(()=>{if(!xe)return[];let e=N.map(e=>({...e,displayName:e.label||e.path.split(`/`).pop()||e.path,searchText:`${e.label||``} ${e.path}`}));return Ue(e,G,e=>e.searchText,{limit:7,threshold:.4})},[N,G,xe]),qe=JSON.stringify([H,G]),Xe=ae.query===qe?ae.groups:[],Qe=(e,t)=>xe&&!Xe.includes(e)?t.slice(0,5):t,$e=Qe(`commands`,Se.map(e=>e.item)),et=Qe(`settings`,Ce.map(e=>e.item)),tt=Q.useMemo(()=>{let e=new Map;for(let t of Ie){let n=e.get(t.sessionID)??[];n.push(t),e.set(t.sessionID,n)}let t=[],n=new Map(D.map(e=>[e.id,e]));for(let n of He){let r=e.get(n.id);if(r){for(let e of r)t.push({session:n,hit:e});e.delete(n.id)}else t.push({session:n})}for(let r of e.values())for(let e of r)t.push({session:n.get(e.sessionID)??{id:e.sessionID,title:e.title??``,directory:e.directory,location:{directory:e.directory}},hit:e});return t},[He,Ie,D]),nt=Qe(`sessions`,tt),rt=xe?Qe(`files`,We.map(e=>e.item)):[],at=xe?Qe(`projects`,Ke.map(e=>e.item)):[],ot=(e,t,n)=>t>n?(0,$.jsx)(Wt,{value:`more:${e}`,onSelect:()=>U({query:qe,groups:[...Xe,e]}),className:`${ta} text-muted-foreground`,children:i(`commandPalette.group.showMore`,{count:t-n})}):null,st=Q.useMemo(()=>{if(!xe)return[`sessions`,`commands`];let e=e=>e.length?e[0].score:1/0,t=[{key:`commands`,score:e(Se)},{key:`settings`,score:e(Ce)},{key:`files`,score:e(We)},{key:`projects`,score:e(Ke)}];return t.sort((e,t)=>e.score-t.score),[`sessions`,...t.map(e=>e.key)]},[xe,Se,Ce,We,Ke]),ct=le((e,t)=>{oe(),u(`chat`),h(!1);let n=je(e)||``;a?it.getState().openSession({sessionId:e.id,directory:n}):E(e.id,n),t&&kt(t)}),lt=le(e=>{let t=ce.find(t=>t.id===e.sessionID)??He.find(t=>t.id===e.sessionID)??{id:e.sessionID,title:e.title??``,directory:e.directory,location:{directory:e.directory}};ct(t,e.messageID)}),ut=le(async e=>{if(!H)return;let t=await Yi(L,e);if(!t.ok){ze.error(Xi(t.reason));return}a?a.openFile({path:e}):C(H,e),oe()}),dt=le((e,t)=>{oe();let n={selectedProjectId:e,directoryOverride:t};a?it.getState().openDraft(n):T(n)}),ft=e=>Dn(Cn(e,w)),pt=e=>!wt&&(e.key===`Enter`||e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),e.stopPropagation(),!0),mt=le(e=>{if(pt(e)||(!Me&&!e.nativeEvent.isComposing&&[`ArrowDown`,`ArrowUp`,`Enter`].includes(e.key)&&Ae({key:De,hits:Ie,sessions:He}),R||e.nativeEvent.isComposing||e.altKey||e.shiftKey)||(z?!e.metaKey||e.ctrlKey:!e.ctrlKey||e.metaKey)||!/^[1-9]$/.test(e.key)||(e.preventDefault(),e.stopPropagation(),e.repeat||!wt))return;let t=nt[Number(e.key)-1];t?.hit?lt(t.hit):t&&ct(t.session)}),ht=e=>{let t=aa(ue.get(e.id)?.projectDirectory||je(e)||``),n=Fe(N,fe,t);return n?.label||(n?.path||t).split(`/`).pop()||``},gt=xe&&G===W&&!!be&&ve===be,_t=xe&&(G!==W||!!H&&Ge||we.isFetching&&!we.isSuccess||Ee!==null&&Pe.isFetching&&!Pe.isSuccess),[Z,yt]=Q.useState(W);!_t&&Z!==W&&yt(W);let wt=!xe||Z===W&&!_t,Tt=(0,$.jsx)(Vt,{ref:te,variant:R?`mobileGlass`:`default`,className:`font-normal`,"aria-label":i(`commandPalette.title`),inputMode:`search`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,value:re,onValueChange:e=>{Ae(null),ie(e),U({query:``,groups:[]})},placeholder:i(`commandPalette.input.placeholder`)}),Et=(0,$.jsxs)(Ht,{shouldFilter:!1,onKeyDownCapture:mt,onPointerDownCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&Un({currentTarget:t})},onPointerCancelCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&Wn({currentTarget:t,detail:1})},onClickCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&e.detail>0&&!Wn({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)(Te,{title:Tt,backAriaLabel:i(`header.actions.backAria`),onBack:t??oe}):Tt,(0,$.jsxs)(It,{"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})}),wt&&!gt&&!Be&&!Le&&O!==`loading`&&O!==`error`?(0,$.jsx)(Lt,{className:`py-10 text-center typography-meta text-muted-foreground`,children:i(`commandPalette.empty.noResults`)}):null,wt?st.map(e=>e===`commands`&&$e.length>0?(0,$.jsxs)(Pt,{heading:i(`settings.page.commands.title`),className:na,children:[$e.map(e=>(0,$.jsx)(Wt,{value:e.id,onSelect:e.onSelect,className:ta,children:(0,$.jsx)(ea,{title:ia(e.title,G),trailing:!R&&e.shortcutId?(0,$.jsx)(Kt,{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:ft(e.shortcutId)}):void 0})},e.id)),ot(`commands`,Se.length,$e.length)]},`commands`):e===`settings`&&et.length>0?(0,$.jsxs)(Pt,{heading:i(`settings.view.home.title`),className:na,children:[et.map(e=>(0,$.jsx)(Wt,{value:e.id,onSelect:e.onSelect,className:ta,children:(0,$.jsx)(ea,{title:ia(e.title,G)})},e.id)),ot(`settings`,Ce.length,et.length)]},`settings`):e===`sessions`&&nt.length>0?(0,$.jsxs)(Pt,{heading:i(`layout.mainTab.chat`),className:na,children:[nt.map(({session:e,hit:t},n)=>{let r=t?.title||e.title||i(`commandPalette.session.untitled`),a=ht(e);return(0,$.jsxs)(Wt,{value:t?`message:${e.id}:${t.messageID}`:`session:${e.id}`,onSelect:()=>t?lt(t):ct(e),className:`flex-col items-stretch gap-1 rounded-lg px-3 py-2`,"aria-keyshortcuts":!R&&n<9?`${z?`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:ia(r,G)}),(0,$.jsx)(`span`,{className:`max-w-[28%] shrink-0 truncate typography-meta text-muted-foreground`,title:a,children:a}),!R&&n<9?(0,$.jsxs)(Kt,{className:`h-5 min-w-8 shrink-0 rounded-full border-0 bg-interactive-selection px-2 text-muted-foreground shadow-none`,children:[z?`⌘`:`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`),`: `]}),ia(t.snippet,G)]}):null]},t?`message:${e.id}:${t.messageID}`:`session:${e.id}`)}),ot(`sessions`,tt.length,nt.length)]},`sessions`):e===`files`&&rt.length>0?(0,$.jsxs)(Pt,{heading:i(`layout.mainTab.files`),className:na,children:[rt.map(e=>{let t=_e(e.relativePath||e.name,{maxLength:80});return(0,$.jsx)(Wt,{value:`file:${e.path}`,onSelect:()=>{ut(e.path)},className:ta,children:(0,$.jsx)(ea,{title:ia(e.name,G),description:t===e.name?void 0:ia(t,G)})},`file:${e.path}`)}),ot(`files`,We.length,rt.length)]},`files`):e===`projects`&&at.length>0?(0,$.jsxs)(Pt,{heading:i(`sessions.sidebar.projectsTitle`),className:na,children:[at.map(e=>{let t=e.displayName;return(0,$.jsx)(Wt,{value:`project:${e.id}`,onSelect:()=>dt(e.id,e.path),className:ta,children:(0,$.jsx)(ea,{title:ia(t,G)})},`project:${e.id}`)}),ot(`projects`,Ke.length,at.length)]},`projects`):null):(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-10 text-center typography-meta text-muted-foreground`,children:i(`common.loading`)}),wt&&O===`loading`?(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-4 text-center typography-meta text-muted-foreground`,children:i(`common.loading`)}):null,wt&&O===`error`?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.sessions`)}):null,wt&&Be?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.sessions`)}):null,wt&&Le?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.messages`)}):null,wt&>?(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:B,"data-global-search":`true`,"data-page-scroll-lock":`true`,"aria-label":i(`commandPalette.title`),className:`oc-global-search-page flex min-h-0 w-full flex-col bg-background text-foreground`,children:Et}):(0,$.jsx)(Ct,{open:o,onOpenChange:l,onOpenChangeComplete:e=>{e||c(!1)},children:(0,$.jsxs)(bt,{ref:B,initialFocus:te,"data-global-search":`true`,"data-mobile":R,"data-page-scroll-lock":`true`,className:R?`oc-global-search-page oc-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`:`oc-global-search oc-mobile-overlay-surface oc-mobile-overlay-surface--translucent oc-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)(vt,{className:`sr-only`,children:[(0,$.jsx)(xt,{children:i(`commandPalette.title`)}),(0,$.jsx)(St,{children:i(`commandPalette.description`)})]}),Et]})})},sa=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)(gn,{className:`text-center`,children:(0,$.jsxs)(yn,{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)(_n,{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 ca(e){let t=(0,ri.c)(22),{t:n}=pe(),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)(sa,{...e,texts:l}),t[19]=e,t[20]=l,t[21]=u):u=t[21],u}var la=1440,ua=e=>{let t=(0,ri.c)(8),{isMobile:n,isVSCode:r,directory:i}=e,a=ce(`(min-width: ${la}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(da),d=P(fa),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 da(e){return e.workStatusPanelEnabled}function fa(e){return e.isRightSidebarOpen}var pa=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}]})},ma=(e,t,n={})=>{let r=n.listChildren??pa;return B({queryKey:p.workStatusChildren.list(e,t,n.transport),enabled:!!(e&&t),queryFn:({signal:n})=>r({directory:e,sessionID:t,signal:n}),staleTime:5e3,refetchInterval:1e4})},ha=[],ga=(...e)=>{let t=Ot(...e);return t?t.charAt(0).toUpperCase()+t.slice(1):``},_a=(...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``},va=e=>e===`pending`||e===`running`,ya=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`&&Mt(e.tool)){n.add(e.id);let r=e.state;t.push({id:e.id,sessionID:Nt(e),label:ga(r?.input,r?.metadata,e.metadata),description:_a(r?.input,e.metadata,r?.metadata),running:va(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:va(r.status)})}}return t.length===0?ha:t},ba=(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},xa=e=>e.childTitle||e.description||e.agent,Sa=e=>({key:e.key,sessionID:e.sessionID,seed:e.key,label:xa(e),phase:e.working?`working`:`done`}),Ca=(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(Sa),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]},wa=new Set,Ta=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-3ad3yzM7.js";import{n as s}from"./runtime-fetch-QCWYlAx0.js";import{An as c,On as l,Rt as u,Wt as d,_n as f,h as p,ln as m,m as h,mt as g,on as _,ot as v,rn as y,un as b}from"./persistence-B7ORJ371.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-CiBU2bCp.js";import{n as P,t as F,x as I}from"./useUIStore-CDMI_Yzu.js";import{n as L}from"./vendor-react-BP2cRVqX.js";import{o as ee}from"./vendor-aparajita-capacitor-secure-storage-xol_6BsB.js";import{l as R,n as z,o as B,s as V,t as te}from"./vendor-tanstack-react-query-CdqCAt40.js";import{i as ne}from"./terminalApi-bN5IYQau.js";import{c as H,d as re,f as ie,l as ae,m as U,n as W,o as G,p as oe,s as K,t as q,u as J}from"./vendor-pierre-diffs-DPBtNDJ5.js";import{r as se}from"./vendor-sonner-ZS8XIOVl.js";import{l as ce,n as le,p as ue,r as de}from"./vendor-reactuses-core-BpfIZ1tg.js";import{d as fe,f as pe,i as me,l as he,p as ge,r as Y,t as X,u as _e}from"./button-DOrwfkre.js";import{i as ve,t as ye}from"./store-COtDAfPx.js";import{A as be,M as xe,O as Se,j as Ce,k as we,t as Te}from"./MobileDetailNavigation-CK7C09Q-.js";import{$r as Ee,An as De,Ar as Oe,Bt as ke,Cn as Ae,Dr as je,Er as Me,Gt as Ne,Jr as Pe,Li as Fe,Mr as Ie,Nr as Le,Or as Re,Pr as ze,Sn as Be,Sr as Ve,Vt as He,Wn as Ue,Xn as We,Yr as Ge,ba as Ke,bo as qe,co as Je,d as Ye,di as Xe,gi as Ze,go as Qe,ja as $e,kr as et,li as tt,ln as nt,lo as rt,o as it,sa as at,uo as ot,va as st,vo as ct,vr as lt,wn as ut,wr as dt,xr as ft}from"./useMobileNavigationStore-D6F8KKwN.js";import{i as pt,t as mt}from"./useAssistantUIStore-Dlvb7P0q.js";import{t as ht}from"./AgentAvatar-qSjSZvIG.js";import{n as gt,t as _t}from"./useThemeSystem-8jhE4Zyk.js";import{n as Z}from"./Icon-QASb6r3F.js";import{a as vt,i as yt,n as bt,o as xt,r as St,t as Ct}from"./dialog-FSXwOR2i.js";import{d as wt}from"./gitApi-CU2FOcfV.js";import{$ as Tt,Ct as Et,E as Dt,G as Ot,O as kt,Rt as At,St as jt,U as Mt,W as Nt,at as Pt,c as Ft,ct as It,it as Lt,lt as Rt,mt as zt,o as Bt,ot as Vt,rt as Ht,s as Ut,st as Wt,tt as Gt,vt as Kt,xt as qt,yt as Jt}from"./useAppFontEffects-CnKbngkX.js";import{A as Yt,_ as Xt,a as Zt,b as Qt,d as $t,f as en,h as tn,i as nn,l as rn,m as an,n as on,p as sn,r as cn,s as ln,t as un,x as dn}from"./projectMeta-GUcIt3IO.js";import{t as fn}from"./input-Ctgb06ot.js";import{i as pn,n as mn,t as hn}from"./tooltip-JgW0lJaV.js";import{Dt as gn,Et as _n,J as vn,Ot as yn,Tt as bn,Y as xn,_ as Sn,_t as Cn,at as wn,ct as Tn,dt as En,ht as Dn,it as On,lt as kn,nt as An,ot as jn,v as Mn,zt as Nn}from"./speechSettingsQueries-Zydyn2ef.js";import{i as Pn,t as Fn}from"./OverlayScrollbar-C7Ls30Hy.js";import{h as In,v as Ln}from"./image-loading-qNtUCy69.js";import{x as Rn}from"./dropdown-menu.styles-CfTQwJHe.js";import{n as zn,t as Bn}from"./useRuntimeAPIs-Cx8S1HLz.js";import{T as Vn,a as Hn,g as Un,h as Wn,i as Gn,n as Kn,o as qn,p as Jn,r as Yn,t as Xn,x as Zn,y as Qn}from"./textarea-DJ52TDJj.js";import{T as $n}from"./sessionChangeSummary-Bh6u5Aff.js";import{i as er,t as tr}from"./vendor-framer-motion-D-oiwsxL.js";import{D as nr,b as rr,h as ir,k as ar,r as or,v as sr,w as cr,y as lr}from"./insertionBoundaries-d15008qA.js";import{i as ur,n as dr,t as fr}from"./appThemeRegistry-CFUjnNsk.js";import{o as pr}from"./MarkdownRenderer-DDqE2UK9.js";import{_ as mr,i as hr,l as gr,s as _r,t as vr,v as yr,y as br}from"./vendor-dnd-kit-core-5pNnzVdw.js";import{a as xr,o as Sr,s as Cr,t as wr}from"./vendor-dnd-kit-sortable-Dm50I0m7.js";import{f as Tr,l as Er}from"./markdown-worker-DFNZ3KJ_.js";import{n as Dr}from"./useEffectiveDirectory-DBVgmClb.js";import{u as Or}from"./FadeInOnReveal-CD5d1k_u.js";import{t as kr}from"./LoadingImage-FRySi1BM.js";import{n as Ar}from"./useWorkerHighlightedLines-BsXRz5Z3.js";import{t as jr}from"./vendor-tanstack-react-virtual-B_EO--9t.js";import{t as Mr}from"./vendor-motion-88WXBOBf.js";import{B as Nr,t as Pr,u as Fr,v as Ir,x as Lr}from"./MobileTabPageHeader-DyILETej.js";import{c as Rr,l as zr}from"./mcpQueries-XyOWHETV.js";import{a as Br,c as Vr,d as Hr,i as Ur,l as Wr,m as Gr,n as Kr,o as qr,r as Jr,s as Yr,t as Xr}from"./scheduledTaskNavigation-DEMPeoot.js";import{n as Zr,r as Qr}from"./sessionLookup-Cbk5VY_o.js";import{n as $r,r as ei,t as ti}from"./collapsible-BJwPZMpo.js";import{t as ni}from"./vendor-cron-parser-BmO80h0C.js";var Q=e(w(),1),ri=L(),$=D(),ii=e(T(),1);function ai(){return new Worker(q,{type:`module`})}var oi=[`typescript`,`javascript`,`tsx`,`jsx`,`json`,`markdown`],si={unified:{poolSize:1,totalASTLRUCacheSize:24,lineDiffType:`none`},split:{poolSize:2,totalASTLRUCacheSize:56,lineDiffType:`word-alt`}},ci,li,ui=e=>{let t=si[e],n=new oe({workerFactory:ai,poolSize:t.poolSize,totalASTLRUCacheSize:t.totalASTLRUCacheSize},{theme:{light:`pierre-light`,dark:`pierre-dark`},langs:oi,lineDiffType:t.lineDiffType,preferredHighlighter:`shiki-wasm`});return n.initialize(),n},di=e=>{if(!(typeof window>`u`))return e===`split`?(li??=ui(`split`),li):(ci??=ui(`unified`),ci)},fi=e=>{let t=(0,ri.c)(7),{children:n,renderTheme:r}=e,i=mi(`unified`),a=mi(`split`),o,s;t[0]!==r||t[1]!==a||t[2]!==i?(o=()=>{i&&i.setRenderOptions({theme:r,lineDiffType:si.unified.lineDiffType}),a&&a.setRenderOptions({theme:r,lineDiffType:si.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},pi=e=>{let t=(0,ri.c)(11),{children:n}=e,r=_t(),i,a;if(t[0]!==r?.availableThemes||t[1]!==r?.darkThemeId||t[2]!==r?.lightThemeId){let e=Ln(!1),n=Ln(!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,fr(a),fr(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)(fi,{renderTheme:s,children:n}),t[8]=n,t[9]=s,t[10]=c):c=t[10],c},mi=e=>{let t=(0,ri.c)(2),n=e===void 0?`unified`:e,r;return t[0]===n?r=t[1]:(r=di(n),t[0]=n,t[1]=r),r},hi=(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},gi=async e=>{let t=e.query.trim();if(!t)return[];let n=await(e.fetch??s)(`/api/openchamber/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=>hi(e,typeof e?.directory==`string`?e.directory:``)?[e]:[])},_i=(e,t)=>{let i=e.trim(),a=t.scope,o=a?.transport??n(),s=a?.generation??r(),c=t.searchContent??gi;return B({queryKey:p.sessionContentSearch.query(i,``,s,o),enabled:i.length>0&&a!==null,queryFn:({signal:e})=>a?c({scope:a,query:i,limit:30,signal:e}):[],staleTime:0,refetchInterval:3e3,retry:1})},vi=(e=s)=>B({queryKey:[n(),`contentSearchStatus`,r()],queryFn:async({signal:t})=>{let n=await e(`/api/openchamber/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}),yi=pr(()=>ee(()=>import(`./OnboardingScreen-CHa767GT.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])));function bi(){let e=(0,ri.c)(11),[t,n]=Q.useState(!1),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=vi(),e[0]=r):r=e[0];let i=!t,a;e[1]===i?a=e[2]:(a={...r,enabled:i,refetchOnWindowFocus:!1,refetchInterval:xi},e[1]=i,e[2]=a);let o=V(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)(Ct,{open:!0,onOpenChange:d,children:(0,$.jsx)(bt,{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)(yi,{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 xi(e){let t=e.state.data;return t===null||t&&t.initializationRequired===void 0||t?.initializationRequired===!1&&t.updatedAt!=null?!1:3e3}function Si(){let e=(0,ri.c)(4);if(Bn())return null;let t,n;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)){let r=vi().queryKey;t=bi,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 Ci=Q.forwardRef((e,t)=>{let n=(0,ri.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});Ci.displayName=`Switch`;var wi={},Ti=[],Ei=(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}},Di=e=>{switch(e?.status){case`connected`:return`success`;case`failed`:return`error`;case`needs_auth`:case`needs_client_registration`:return`warning`;default:return`default`}},Oi=({active:e,className:t,headerAction:n,listClassName:r,hideHeader:i=!1,mobileListDensity:a=!1})=>{let{t:o}=pe(),s=k(e=>e.currentDirectory)??null,c=Nr(e=>e.connect),l=Nr(e=>e.disconnect),{data:u,refetch:d,isError:f,error:p}=zr(s,{enabled:e}),{data:m}=Rr(s,{enabled:e}),h=u??wi,g=m??Ti,[_,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=Di(t),r=t?.status===`connected`,i=y===e,d=Ei(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)(hn,{children:[(0,$.jsx)(pn,{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)(mn,{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)(Ci,{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`)})]})})]})},ki=e=>!(e.dismissed===`true`||e.sessionShown===`true`||e.hasActiveToast),Ai=e=>!(!e.version||e.seenVersions.has(e.version)||e.dismissedVersion!==null&&e.dismissedVersion===e.version),ji=e=>{if(typeof e!=`object`||!e)return``;let t=e.version;return typeof t==`string`?t.trim():``},Mi=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():``},Ni=e=>{let t=e.trim().replace(/^v/i,``);return t?{target:t}:null},Pi=5e3,Fi={setTimeout:(e,t)=>globalThis.setTimeout(e,t),clearTimeout:e=>globalThis.clearTimeout(e)};function Ii(e,t,n=Fi){if(!e)return()=>void 0;let r=n.setTimeout(()=>{t().catch(()=>void 0)},Pi);return()=>n.clearTimeout(r)}var Li=(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 s(`/api/opencode/upgrade-status`,{headers:{Accept:`application/json`},signal:i});if(!o.ok)throw Error(`OpenCode update check failed`);let c=await o.json();if(i.aborted||!a())throw Error(`Stale OpenCode update check`);if(!c||typeof c!=`object`||Array.isArray(c))throw Error(`Invalid OpenCode update status`);return c},staleTime:3e4,refetchInterval:3e5,refetchOnWindowFocus:!0,refetchOnReconnect:!0,retry:1}),Ri=`opencode-update-available`,zi=`opencode-upgrade-progress`,Bi=`opencode-update-toast-dismissed-version`,Vi=()=>{let{t:e}=pe(),i=P(e=>e.showOpenCodeUpdateNotifications),a=Q.useRef(new Set),o=Q.useRef(!1),c=Q.useSyncExternalStore(t,n,n),l=Q.useSyncExternalStore(t,r,r),u=R(),[d,f]=Q.useState(!1);Q.useEffect(()=>Ii(i,async()=>{f(!0)}),[i]);let p=V({...Li(c,l),enabled:i&&d});de(`openchamber:opencode-update-available`,e=>{i&&ji(e.detail)&&p.refetch()});let m=`${Bi}:${c}`;Q.useEffect(()=>{a.current.clear(),ze.dismiss(Ri),ze.dismiss(zi)},[c,l]),Q.useEffect(()=>{i||ze.dismiss(Ri)},[i]);let h=le(async(t,i=!1)=>{if(o.current)return;o.current=!0;let a=()=>c===n()&&l===r();ze.dismiss(Ri),ze.message(e(`opencodeUpdate.toast.upgrading.title`),{id:zi,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=Ni(t);if(!n)throw Error(e(`opencodeUpdate.toast.failed.description`));let r=await s(`/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`){ze.error(e(`opencodeUpdate.toast.failed.title`),{id:zi,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`));ze.success(e(`opencodeUpdate.toast.updated.title`),{id:zi,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:[c,`opencode-update`,l]}),u.invalidateQueries({queryKey:[c,`about`,l]})}catch(n){if(!a())return;ze.error(e(`opencodeUpdate.toast.failed.title`),{id:zi,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){ze.dismiss(Ri);return}Ai({version:t,dismissedVersion:I().getItem(m),seenVersions:a.current})&&(a.current.add(t),ze.info(e(`opencodeUpdate.toast.available.title`),{id:Ri,description:e(`opencodeUpdate.toast.available.description`,{version:t}),duration:1/0,action:{label:e(`opencodeUpdate.toast.actions.update`),onClick:()=>{c===n()&&l===r()&&h(t)}},cancel:{label:e(`opencodeUpdate.toast.actions.dismiss`),onClick:()=>{I().setItem(m,t),ze.dismiss(Ri)}}}))},i=Mi(p.data);i?t(i):(p.data?.available===!1||p.data?.canManage===!1)&&ze.dismiss(Ri)},[i,e,p.data,m,c,l,h]),null},Hi=()=>{let e=(0,ri.c)(3),[t,n]=Q.useState(Ui),{isUpdating:r}=t,i,a;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>ot(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)(Nn,{width:80,height:80,isAnimated:!0})}),e[2]=o):o=e[2],o};function Ui(){return rt()}var Wi=5e3,Gi=(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},Ki=(e,t)=>ye(ve.getState().dictionary,e,t),qi=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`},Ji=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 s(`/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-openchamber-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`}},Yi=async(e,t)=>{try{let{content:n,exists:r}=await Ji(e,t);return r?Gi(n,5e3)>5e3?{ok:!1,reason:`too-large`}:{ok:!0}:{ok:!1,reason:`missing`}}catch(e){return{ok:!1,reason:qi(e)}}},Xi=e=>e===`too-large`?Ki(`contextFileOpen.failure.tooLarge`,{count:Wi.toLocaleString(ge())}):Ki(e===`missing`?`contextFileOpen.failure.missing`:`contextFileOpen.failure.unreadable`),Zi=(e,t)=>!e||t.length===0?``:JSON.stringify([e,t]),Qi=(e,t,n,r)=>!n||r!==n||e.length===0?[]:Ue(e,t,e=>e.name,{limit:10,threshold:.4}),$i=(e,t={})=>{let r=e.trim(),i=t.transport??n(),a=t.searchSessions??(e=>j.searchSessionsByTitle(e));return B({queryKey:p.sessionTitleSearch.query(r,i),enabled:r.length>0,queryFn:({signal:e})=>a({search:r,limit:30,signal:e}),staleTime:5e3,retry:1})},ea=e=>{let t=(0,ri.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},ta=`min-h-9 gap-2 rounded-lg px-3 py-2 typography-meta`,na=`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`,ra=`rounded-[3px] bg-[color-mix(in_srgb,var(--primary-base)_28%,transparent)] px-0.5 font-[inherit] text-foreground`;function ia(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:ra,children:e},t):(0,$.jsx)(`span`,{children:e},t))}var aa=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},oa=({presentation:e=`dialog`,onBack:t})=>{let{t:i}=pe(),a=$n(),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),p=P(e=>e.setSettingsPage),h=P(e=>e.setSessionSwitcherOpen),g=P(e=>e.toggleSidebar),v=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=Ye(e=>e.openNewSessionDraft),E=Ye(e=>e.setCurrentSession),D=Oe(e=>e.activeSessions),O=Oe(e=>e.status),j=k(e=>e.currentDirectory),M=Je(e=>e.getActiveProject()),N=Je(e=>e.projects),F=Dr(),I=A(e=>e.searchFiles),{files:L}=zn(),{isMobile:ee}=Pn(),R=e===`page`||ee,z=he(),B=Q.useRef(null),te=Q.useRef(null),ne=le(()=>{if(!R||!o||!B.current)return;let e=window.visualViewport;B.current.style.setProperty(`--search-viewport-height`,`${e?.height??window.innerHeight}px`),B.current.style.setProperty(`--search-viewport-top`,`${e?.offsetTop??0}px`)});de(`resize`,ne,()=>R&&o?window.visualViewport??window:null),de(`scroll`,ne,()=>R&&o?window.visualViewport:null),Q.useEffect(()=>{ne()},[R,o]),Q.useEffect(()=>{e===`page`&&o&&te.current?.focus({preventScroll:!0})},[e,o]);let H=Q.useMemo(()=>F?aa(F):null,[F]),[re,ie]=Q.useState(``),[ae,U]=Q.useState({query:``,groups:[]}),W=ar(re,200).trim(),G=re.trim();Q.useEffect(()=>{o&&(ie(``),U({query:``,groups:[]}),c(!0))},[o]);let oe=le(()=>l(!1)),K=le(e=>()=>{oe(),e()}),q=Q.useMemo(()=>{let e=[{id:`new-session`,title:i(`commandPalette.item.newSession`),shortcutId:`new_chat`,searchText:i(`commandPalette.item.newSession`),onSelect:K(()=>{u(`chat`),h(!1),T()})},{id:`new-worktree`,title:i(`commandPalette.item.newWorktreeDraft`),shortcutId:`new_chat_worktree`,searchText:i(`commandPalette.item.newWorktreeDraft`),onSelect:K(()=>{Rt()})},{id:`add-project`,title:i(`commandPalette.item.addProject`),searchText:i(`commandPalette.item.addProject`),onSelect:K(()=>{Ze.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:K(()=>{if(R){let{isSessionSwitcherOpen:e}=P.getState();h(!e)}else g()})},{id:`toggle-right-sidebar`,title:i(`commandPalette.item.toggleRightSidebar`),shortcutId:`toggle_right_sidebar`,searchText:i(`commandPalette.item.toggleRightSidebar`),onSelect:K(()=>v())},{id:`toggle-terminal`,title:i(`commandPalette.item.toggleTerminal`),shortcutId:`toggle_terminal`,searchText:i(`commandPalette.item.toggleTerminal`),onSelect:K(()=>x())},{id:`new-terminal-tab`,title:i(`commandPalette.item.newTerminalTab`),shortcutId:`open_new_terminal`,searchText:i(`commandPalette.item.newTerminalTab`),onSelect:K(()=>{F&&Ft(F)})},{id:`context-usage`,title:i(`commandPalette.item.showContextUsage`),searchText:i(`commandPalette.item.showContextUsage`),onSelect:K(()=>{j&&S(j)})},{id:`open-settings`,title:i(`commandPalette.item.openSettings`),shortcutId:`open_settings`,searchText:i(`commandPalette.item.openSettings`),onSelect:K(()=>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:K(()=>{y(`desktop_open_draft_mini_chat_window`,{directory:aa(j||M?.path||``),projectId:M?.id??null}).catch(e=>{console.warn(`[command-palette] failed to open draft mini chat window`,e)})})}),e},[i,K,R,u,h,T,g,v,x,j,F,S,f,M?.id,M?.path]),J=Q.useMemo(()=>{let e=_();return{isVSCode:m(),isWeb:!e&&b(),isDesktop:e,isMobile:R}},[R]),se=Q.useMemo(()=>Hr.filter(e=>e.slug!==`home`).filter(e=>!e.isAvailable||e.isAvailable(J)).map(e=>{let t=(e.keywords??[]).join(` `);return{id:`settings:${e.slug}`,title:e.title,searchText:`${e.title} ${e.group} ${t}`,onSelect:K(()=>{p(e.slug),f(!0)})}}),[J,K,p,f]),ce=Q.useMemo(()=>{let e=e=>(typeof e.time?.updated==`number`?e.time.updated:0)||(typeof e.time?.created==`number`?e.time.created:0);return[...D].sort((t,n)=>e(n)-e(t))},[D]),ue=Ye(e=>e.worktreeMetadata),fe=Ye(e=>e.availableWorktreesByProject),[me,ge]=Q.useState([]),[Y,X]=Q.useState(``),[ve,ye]=Q.useState(``),be=Zi(H,W);Q.useEffect(()=>{if(!o){ge([]),X(``),ye(``);return}if(!be){ge([]),X(``),ye(``);return}if(!H){ge([]),X(``),ye(``);return}let e=!1;return ye(``),I(H,W,10,{type:`file`}).then(t=>{e||(ge(t.map(e=>({path:aa(e.path),name:e.name,relativePath:e.relativePath}))),X(be),ye(``))}).catch(()=>{e||(ge([]),X(``),ye(be))}),()=>{e=!0}},[o,H,W,be,I]);let xe=G.length>0,Se=Q.useMemo(()=>xe?Ue(q,G,e=>e.searchText,{limit:7,noFuzzy:!0}):q.map(e=>({item:e,score:0})),[q,G,xe]),Ce=Q.useMemo(()=>xe?Ue(se,G,e=>e.searchText,{limit:7,noFuzzy:!0}):[],[se,G,xe]),we=V({...$i(W),enabled:(o||s)&&(W.length>0||e===`page`)}),Ee={transport:n(),generation:r(),directory:``},De=JSON.stringify([Ee.transport,Ee.generation,H,G,o]),[ke,Ae]=Q.useState(null),Me=ke?.key===De?ke:null;ke&&!Me&&Ae(null);let Ne=V({...vi(),enabled:o||s}),Pe=V({..._i(W,{scope:Ee}),enabled:(o||s)&&W.length>0&&Ee!==null}),Ie=Q.useMemo(()=>Me?.hits??Pe.data??[],[Me,Pe.data]),Le=xe&&G===W&&Pe.isError,Re=xe&&G===W&&we.isSuccess,Be=(xe||e===`page`)&&G===W&&we.isError,Ve=Q.useMemo(()=>Be?Ue(ce,G,e=>e.title||``,{limit:30,threshold:.2}).map(({item:e})=>e):[],[Be,ce,G]),He=Q.useMemo(()=>Me?Me.sessions:xe?Re?we.data??[]:Be?Ve:[]:e===`page`&&!W&&we.isSuccess?we.data:ce.slice(0,e===`page`?30:9),[xe,ce,Re,Be,Ve,we.data,we.isSuccess,e,W,Me]),We=Q.useMemo(()=>!o&&!s||G!==W||ve===be?[]:Qi(me,W,be,Y),[o,s,me,Y,be,W,G,ve]),Ge=(o||s)&&be.length>0&&Y!==be&&ve!==be,Ke=Q.useMemo(()=>{if(!xe)return[];let e=N.map(e=>({...e,displayName:e.label||e.path.split(`/`).pop()||e.path,searchText:`${e.label||``} ${e.path}`}));return Ue(e,G,e=>e.searchText,{limit:7,threshold:.4})},[N,G,xe]),qe=JSON.stringify([H,G]),Xe=ae.query===qe?ae.groups:[],Qe=(e,t)=>xe&&!Xe.includes(e)?t.slice(0,5):t,$e=Qe(`commands`,Se.map(e=>e.item)),et=Qe(`settings`,Ce.map(e=>e.item)),tt=Q.useMemo(()=>{let e=new Map;for(let t of Ie){let n=e.get(t.sessionID)??[];n.push(t),e.set(t.sessionID,n)}let t=[],n=new Map(D.map(e=>[e.id,e]));for(let n of He){let r=e.get(n.id);if(r){for(let e of r)t.push({session:n,hit:e});e.delete(n.id)}else t.push({session:n})}for(let r of e.values())for(let e of r)t.push({session:n.get(e.sessionID)??{id:e.sessionID,title:e.title??``,directory:e.directory,location:{directory:e.directory}},hit:e});return t},[He,Ie,D]),nt=Qe(`sessions`,tt),rt=xe?Qe(`files`,We.map(e=>e.item)):[],at=xe?Qe(`projects`,Ke.map(e=>e.item)):[],ot=(e,t,n)=>t>n?(0,$.jsx)(Wt,{value:`more:${e}`,onSelect:()=>U({query:qe,groups:[...Xe,e]}),className:`${ta} text-muted-foreground`,children:i(`commandPalette.group.showMore`,{count:t-n})}):null,st=Q.useMemo(()=>{if(!xe)return[`sessions`,`commands`];let e=e=>e.length?e[0].score:1/0,t=[{key:`commands`,score:e(Se)},{key:`settings`,score:e(Ce)},{key:`files`,score:e(We)},{key:`projects`,score:e(Ke)}];return t.sort((e,t)=>e.score-t.score),[`sessions`,...t.map(e=>e.key)]},[xe,Se,Ce,We,Ke]),ct=le((e,t)=>{oe(),u(`chat`),h(!1);let n=je(e)||``;a?it.getState().openSession({sessionId:e.id,directory:n}):E(e.id,n),t&&kt(t)}),lt=le(e=>{let t=ce.find(t=>t.id===e.sessionID)??He.find(t=>t.id===e.sessionID)??{id:e.sessionID,title:e.title??``,directory:e.directory,location:{directory:e.directory}};ct(t,e.messageID)}),ut=le(async e=>{if(!H)return;let t=await Yi(L,e);if(!t.ok){ze.error(Xi(t.reason));return}a?a.openFile({path:e}):C(H,e),oe()}),dt=le((e,t)=>{oe();let n={selectedProjectId:e,directoryOverride:t};a?it.getState().openDraft(n):T(n)}),ft=e=>Dn(Cn(e,w)),pt=e=>!wt&&(e.key===`Enter`||e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),e.stopPropagation(),!0),mt=le(e=>{if(pt(e)||(!Me&&!e.nativeEvent.isComposing&&[`ArrowDown`,`ArrowUp`,`Enter`].includes(e.key)&&Ae({key:De,hits:Ie,sessions:He}),R||e.nativeEvent.isComposing||e.altKey||e.shiftKey)||(z?!e.metaKey||e.ctrlKey:!e.ctrlKey||e.metaKey)||!/^[1-9]$/.test(e.key)||(e.preventDefault(),e.stopPropagation(),e.repeat||!wt))return;let t=nt[Number(e.key)-1];t?.hit?lt(t.hit):t&&ct(t.session)}),ht=e=>{let t=aa(ue.get(e.id)?.projectDirectory||je(e)||``),n=Fe(N,fe,t);return n?.label||(n?.path||t).split(`/`).pop()||``},gt=xe&&G===W&&!!be&&ve===be,_t=xe&&(G!==W||!!H&&Ge||we.isFetching&&!we.isSuccess||Ee!==null&&Pe.isFetching&&!Pe.isSuccess),[Z,yt]=Q.useState(W);!_t&&Z!==W&&yt(W);let wt=!xe||Z===W&&!_t,Tt=(0,$.jsx)(Vt,{ref:te,variant:R?`mobileGlass`:`default`,className:`font-normal`,"aria-label":i(`commandPalette.title`),inputMode:`search`,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,value:re,onValueChange:e=>{Ae(null),ie(e),U({query:``,groups:[]})},placeholder:i(`commandPalette.input.placeholder`)}),Et=(0,$.jsxs)(Ht,{shouldFilter:!1,onKeyDownCapture:mt,onPointerDownCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&Un({currentTarget:t})},onPointerCancelCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&Wn({currentTarget:t,detail:1})},onClickCapture:e=>{let t=e.target.closest(`[cmdk-item]`);R&&t&&e.detail>0&&!Wn({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)(Te,{title:Tt,backAriaLabel:i(`header.actions.backAria`),onBack:t??oe}):Tt,(0,$.jsxs)(It,{"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})}),wt&&!gt&&!Be&&!Le&&O!==`loading`&&O!==`error`?(0,$.jsx)(Lt,{className:`py-10 text-center typography-meta text-muted-foreground`,children:i(`commandPalette.empty.noResults`)}):null,wt?st.map(e=>e===`commands`&&$e.length>0?(0,$.jsxs)(Pt,{heading:i(`settings.page.commands.title`),className:na,children:[$e.map(e=>(0,$.jsx)(Wt,{value:e.id,onSelect:e.onSelect,className:ta,children:(0,$.jsx)(ea,{title:ia(e.title,G),trailing:!R&&e.shortcutId?(0,$.jsx)(Kt,{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:ft(e.shortcutId)}):void 0})},e.id)),ot(`commands`,Se.length,$e.length)]},`commands`):e===`settings`&&et.length>0?(0,$.jsxs)(Pt,{heading:i(`settings.view.home.title`),className:na,children:[et.map(e=>(0,$.jsx)(Wt,{value:e.id,onSelect:e.onSelect,className:ta,children:(0,$.jsx)(ea,{title:ia(e.title,G)})},e.id)),ot(`settings`,Ce.length,et.length)]},`settings`):e===`sessions`&&nt.length>0?(0,$.jsxs)(Pt,{heading:i(`layout.mainTab.chat`),className:na,children:[nt.map(({session:e,hit:t},n)=>{let r=t?.title||e.title||i(`commandPalette.session.untitled`),a=ht(e);return(0,$.jsxs)(Wt,{value:t?`message:${e.id}:${t.messageID}`:`session:${e.id}`,onSelect:()=>t?lt(t):ct(e),className:`flex-col items-stretch gap-1 rounded-lg px-3 py-2`,"aria-keyshortcuts":!R&&n<9?`${z?`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:ia(r,G)}),(0,$.jsx)(`span`,{className:`max-w-[28%] shrink-0 truncate typography-meta text-muted-foreground`,title:a,children:a}),!R&&n<9?(0,$.jsxs)(Kt,{className:`h-5 min-w-8 shrink-0 rounded-full border-0 bg-interactive-selection px-2 text-muted-foreground shadow-none`,children:[z?`⌘`:`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`),`: `]}),ia(t.snippet,G)]}):null]},t?`message:${e.id}:${t.messageID}`:`session:${e.id}`)}),ot(`sessions`,tt.length,nt.length)]},`sessions`):e===`files`&&rt.length>0?(0,$.jsxs)(Pt,{heading:i(`layout.mainTab.files`),className:na,children:[rt.map(e=>{let t=_e(e.relativePath||e.name,{maxLength:80});return(0,$.jsx)(Wt,{value:`file:${e.path}`,onSelect:()=>{ut(e.path)},className:ta,children:(0,$.jsx)(ea,{title:ia(e.name,G),description:t===e.name?void 0:ia(t,G)})},`file:${e.path}`)}),ot(`files`,We.length,rt.length)]},`files`):e===`projects`&&at.length>0?(0,$.jsxs)(Pt,{heading:i(`sessions.sidebar.projectsTitle`),className:na,children:[at.map(e=>{let t=e.displayName;return(0,$.jsx)(Wt,{value:`project:${e.id}`,onSelect:()=>dt(e.id,e.path),className:ta,children:(0,$.jsx)(ea,{title:ia(t,G)})},`project:${e.id}`)}),ot(`projects`,Ke.length,at.length)]},`projects`):null):(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-10 text-center typography-meta text-muted-foreground`,children:i(`common.loading`)}),wt&&O===`loading`?(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-4 text-center typography-meta text-muted-foreground`,children:i(`common.loading`)}):null,wt&&O===`error`?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.sessions`)}):null,wt&&Be?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.sessions`)}):null,wt&&Le?(0,$.jsx)(`div`,{role:`alert`,className:`px-3 py-4 typography-meta text-[var(--status-error)]`,children:i(`commandPalette.error.messages`)}):null,wt&>?(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:B,"data-global-search":`true`,"data-page-scroll-lock":`true`,"aria-label":i(`commandPalette.title`),className:`oc-global-search-page flex min-h-0 w-full flex-col bg-background text-foreground`,children:Et}):(0,$.jsx)(Ct,{open:o,onOpenChange:l,onOpenChangeComplete:e=>{e||c(!1)},children:(0,$.jsxs)(bt,{ref:B,initialFocus:te,"data-global-search":`true`,"data-mobile":R,"data-page-scroll-lock":`true`,className:R?`oc-global-search-page oc-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`:`oc-global-search oc-mobile-overlay-surface oc-mobile-overlay-surface--translucent oc-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)(vt,{className:`sr-only`,children:[(0,$.jsx)(xt,{children:i(`commandPalette.title`)}),(0,$.jsx)(St,{children:i(`commandPalette.description`)})]}),Et]})})},sa=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)(gn,{className:`text-center`,children:(0,$.jsxs)(yn,{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)(_n,{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 ca(e){let t=(0,ri.c)(22),{t:n}=pe(),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)(sa,{...e,texts:l}),t[19]=e,t[20]=l,t[21]=u):u=t[21],u}var la=1440,ua=e=>{let t=(0,ri.c)(8),{isMobile:n,isVSCode:r,directory:i}=e,a=ce(`(min-width: ${la}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(da),d=P(fa),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 da(e){return e.workStatusPanelEnabled}function fa(e){return e.isRightSidebarOpen}var pa=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}]})},ma=(e,t,n={})=>{let r=n.listChildren??pa;return B({queryKey:p.workStatusChildren.list(e,t,n.transport),enabled:!!(e&&t),queryFn:({signal:n})=>r({directory:e,sessionID:t,signal:n}),staleTime:5e3,refetchInterval:1e4})},ha=[],ga=(...e)=>{let t=Ot(...e);return t?t.charAt(0).toUpperCase()+t.slice(1):``},_a=(...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``},va=e=>e===`pending`||e===`running`,ya=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`&&Mt(e.tool)){n.add(e.id);let r=e.state;t.push({id:e.id,sessionID:Nt(e),label:ga(r?.input,r?.metadata,e.metadata),description:_a(r?.input,e.metadata,r?.metadata),running:va(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:va(r.status)})}}return t.length===0?ha:t},ba=(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},xa=e=>e.childTitle||e.description||e.agent,Sa=e=>({key:e.key,sessionID:e.sessionID,seed:e.key,label:xa(e),phase:e.working?`working`:`done`}),Ca=(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(Sa),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]},wa=new Set,Ta=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
|
`)},Ea=(e,t)=>{let n=(0,ri.c)(4),r;n[0]===t?r=n[1]:(r=e=>t?Ta(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
|
`)):wa,n[2]=i,n[3]=a),a},Da=(e,t)=>{let n=[];for(let r of e)!r.id||r.parentID!==t||n.push(`${r.id}\u0001${r.title??``}`);return n.join(``)},Oa=e=>e?e.split(``).map(e=>{let t=e.indexOf(``);return{id:e.slice(0,t),title:e.slice(t+1)}}):[],ka=(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()]},Aa=(e,t)=>{let n=(0,ri.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=Ne(t||void 0,i),o;n[1]!==r||n[2]!==e?(o=t=>r&&e?Da(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=ma(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=V(d),p;n[10]===r?p=n[11]:(p={enabled:r},n[10]=r,n[11]=p);let m=M(e??``,t??``,a,ya,ba,p),h=Ea(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=Ca(m,ka(Oa(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},ja=`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`,Ma=`size-3.5 shrink-0`,Na=`oc-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`,Pa=e=>e.split(/[\\/]/).filter(Boolean).pop()||e,Fa=({sessionId:e,directory:t})=>{let{t:n}=pe(),{git:r}=zn(),i=lr(e=>e.ensureStatus),a=sr(t),o=Je(e=>e.projects),s=Ye(e=>e.availableWorktreesByProject),c=Ye(t=>e?t.worktreeMetadata.get(e):void 0),{project:l,worktree:u}=Q.useMemo(()=>{let e=v(t),n=t=>{let n=v(t);return!!(e&&n&&(e===n||e.startsWith(`${n}/`)))},r=c&&n(c.path)?c:void 0,i=Fe(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?Pa(d):null),p=u&&v(u.path)!==v(d)?u.name?.trim()||Pa(u.path):null,m=Aa(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,_=(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]=ue(()=>E(null),1500,{immediate:!1}),O=le(async(e,t)=>{try{let n=await fe(t);if(!n.ok)throw Error(n.error);E(e),D()}catch{se.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=le(()=>{k&&O(N,k)}),R=le(()=>{let e=u?.path;e&&O(F,e)}),z=le(()=>{w(`git`),S(!0)});return(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[f?(0,$.jsxs)(`div`,{className:`${ja} h-8 px-2`,title:`${n(`chat.workStatus.section.project`)}: ${d}`,children:[(0,$.jsx)(Z,{name:`folder`,weight:`medium`,className:Ma}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:f})]}):null,k?(0,$.jsxs)(`div`,{className:`${ja} group/copy h-8 px-2`,title:`${n(`gitView.branch.currentBranchTooltip`)}: ${k}`,children:[(0,$.jsx)(Z,{name:`git-branch`,weight:`medium`,className:Ma}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:k}),(0,$.jsx)(X,{variant:`ghost`,size:`xs`,className:Na,"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:Ma})})]}):null,p?(0,$.jsxs)(`div`,{className:`${ja} 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:Ma}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:p}),(0,$.jsx)(X,{variant:`ghost`,size:`xs`,className:Na,"aria-label":n(`agentManager.detail.actions.copyWorktreePath`),title:n(L?`contextSidebar.actions.copied`:`agentManager.detail.actions.copyWorktreePath`),onClick:R,children:(0,$.jsx)(Z,{name:L?`check`:`file-copy`,className:Ma})})]}):null,A>0?(0,$.jsxs)(X,{variant:`ghost`,size:`sm`,className:`oc-work-status-action ${ja}`,title:n(A===1?`chat.workStatus.git.changedFileSingle`:`chat.workStatus.git.changedFilePlural`,{count:A}),"aria-label":n(`chat.workStatus.action.openGit`),onClick:z,children:[(0,$.jsx)(Z,{name:`changes`,weight:`medium`,className:Ma}),(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:`oc-work-status-action ${ja} 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:_.map((e,t)=>{let r=e.label.trim()||n(`chat.workStatus.subagent.untitled`);return(0,$.jsx)(ht,{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:`oc-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)(ht,{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]})},Ia=200,La=e=>{let t=(0,ri.c)(31),{sessionId:n,directory:r,visible:i,overlay:a}=e,o=a!==void 0&&a,{t:s}=pe(),c=P(Ra),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),Ia);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:`${Ia}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)(Fa,{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 Ra(e){return e.setWorkStatusOverlayOpen}var za=e=>{let t=(0,ri.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(Va),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)(La,{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},Ba=({readOnly:e=!1,active:t=!0,selectionOverride:n})=>{let r=Ye(e=>e.currentSessionId),i=Ye(e=>e.currentSessionDirectory),a=Ye(e=>!!e.newSessionDraft?.open),o=Ye(e=>!!(e.newSessionDraft?.open&&e.newSessionDraft.pendingUserMessage&&(e.newSessionDraft.draftEstablishing||e.newSessionDraft.draftSubmitting))),s=Dr(),c=P(e=>e.isMobile),l=P(e=>e.isExpandedInput),u=m(),d=P(e=>e.workStatusPanelEnabled),f=P(e=>e.workStatusOverlayOpen),p=P(e=>e.setWorkStatusPanelFits),h=n?.sessionId??r,g=n?.sessionId??r,_=n?.directory??i??s??null,{visible:v,fits:y,layoutAllows:b}=ua({isMobile:c,isVSCode:u,directory:_}),x=n?!!n.sessionId:a?o:!!g,S=t&&b&&!l&&x,C=S&&v,w=S&&d&&!y&&f;return Q.useEffect(()=>(p(S&&y),()=>p(!1)),[y,S,p]),(0,$.jsxs)(`div`,{className:Y(`relative h-full min-h-0 min-w-0`,C&&`oc-chat-work-status-inline`),style:C?{"--oc-work-status-reserve":`210px`}:void 0,children:[(0,$.jsx)(`div`,{className:`absolute inset-0 min-h-0 min-w-0`,children:(0,$.jsx)(ca,{sessionId:h||void 0,children:(0,$.jsx)(Dt,{readOnly:e,active:t,explicitSession:n?{...n,active:t}:void 0})})}),S?(0,$.jsx)(za,{publishVisible:!0,visible:C,sessionId:g,directory:_}):null,S&&d&&!y?(0,$.jsx)(za,{overlay:!0,visible:w,sessionId:g,directory:_}):null]})};function Va(e){return e.setWorkStatusPanelVisible}function Ha(e){let t=(0,ri.c)(85),{draft:n,onEdit:r,onDelete:i,className:a,maxWidth:o}=e,{t:s}=pe(),c=_t()?.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(--oc-context-panel-width,100vw)-var(--oc-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)(ei,{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)($r,{}),t[36]=P):P=t[36];let F;t[37]!==k||t[38]!==M||t[39]!==N?(F=(0,$.jsxs)(ti,{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)(En,{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 R;t[46]===s?R=t[47]:(R=s(`inlineComment.actions.editComment`),t[46]=s,t[47]=R);let z;t[48]!==r||t[49]!==R?(z=(0,$.jsxs)(jn,{onClick:r,children:[ee,R]}),t[48]=r,t[49]=R,t[50]=z):z=t[50];let B;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(Z,{name:`delete-bin`,className:`size-4 mr-2`}),t[51]=B):B=t[51];let V;t[52]===s?V=t[53]:(V=s(`inlineComment.actions.deleteComment`),t[52]=s,t[53]=V);let te;t[54]!==i||t[55]!==V?(te=(0,$.jsxs)(jn,{onClick:i,className:`text-destructive`,children:[B,V]}),t[54]=i,t[55]=V,t[56]=te):te=t[56];let ne;t[57]!==z||t[58]!==te?(ne=(0,$.jsxs)(On,{children:[L,(0,$.jsxs)(wn,{align:`end`,children:[z,te]})]}),t[57]=z,t[58]=te,t[59]=ne):ne=t[59];let H;t[60]!==I||t[61]!==ne?(H=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2 p-3`,children:[I,ne]}),t[60]=I,t[61]=ne,t[62]=H):H=t[62];let re;t[63]!==H||t[64]!==S?(re=(0,$.jsx)(Wr,{render:S,children:H}),t[63]=H,t[64]=S,t[65]=re):re=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)(Yr,{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 G;t[73]===s?G=t[74]:(G=s(`inlineComment.actions.deleteComment`),t[73]=s,t[74]=G);let oe;t[75]!==i||t[76]!==G?(oe=(0,$.jsxs)(Yr,{onClick:i,className:`text-destructive focus:text-destructive`,children:[W,G]}),t[75]=i,t[76]=G,t[77]=oe):oe=t[77];let K;t[78]!==U||t[79]!==oe?(K=(0,$.jsxs)(qr,{children:[U,oe]}),t[78]=U,t[79]=oe,t[80]=K):K=t[80];let q;return t[81]!==d||t[82]!==re||t[83]!==K?(q=(0,$.jsxs)(Br,{open:d,onOpenChange:f,children:[re,K]}),t[81]=d,t[82]=re,t[83]=K,t[84]=q):q=t[84],q}function Ua(e){let t=(0,ri.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}=pe(),h=_t()?.currentTheme,{isMobile:g}=Pn(),[_,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=Za,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(--oc-context-panel-width,100vw)-var(--oc-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=Xa,R=Ya,z=(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})})]}),B;t[21]===x?B=t[22]:(B=e=>x(e.target.value),t[21]=x,t[22]=B);let V;t[23]!==g||t[24]!==m?(V=m(g?`inlineComment.input.placeholderShort`:`inlineComment.input.placeholder`),t[23]=g,t[24]=m,t[25]=V):V=t[25];let te;t[26]!==A||t[27]!==B||t[28]!==V||t[29]!==_?(te=(0,$.jsx)(Xn,{simple:!0,ref:y,value:_,onChange:B,onKeyDown:A,placeholder:V,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]=B,t[28]=V,t[29]=_,t[30]=te):te=t[30];let ne;t[31]!==E||t[32]!==d||t[33]!==m?(ne=E&&d?(0,$.jsxs)(X,{variant:`outline`,size:`sm`,onClick:()=>d(E),onPointerDown:Ja,className:`mr-auto h-8 gap-1.5`,children:[(0,$.jsx)(Z,{name:`add`,className:`size-4`}),m(`chat.textSelection.actions.addToChat`),(0,$.jsx)(Jt,{shortcut:`⌘+I`})]}):null,t[31]=E,t[32]=d,t[33]=m,t[34]=ne):ne=t[34];let H;t[35]===m?H=t[36]:(H=m(`inlineComment.actions.cancel`),t[35]=m,t[36]=H);let re;t[37]!==a||t[38]!==H?(re=(0,$.jsx)(X,{variant:`ghost`,size:`sm`,onClick:a,onPointerDown:qa,onTouchStart:Ka,className:`h-8 text-muted-foreground hover:text-foreground`,children:H}),t[37]=a,t[38]=H,t[39]=re):re=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,G;t[42]!==U||t[43]!==W?(G={backgroundColor:U,color:W},t[42]=U,t[43]=W,t[44]=G):G=t[44];let oe;t[45]!==p||t[46]!==m?(oe=m(p?`inlineComment.actions.save`:`inlineComment.actions.comment`),t[45]=p,t[46]=m,t[47]=oe):oe=t[47];let K;t[48]!==M||t[49]!==ae||t[50]!==G||t[51]!==oe?(K=(0,$.jsx)(X,{size:`sm`,onClick:M,onPointerDown:Ga,onTouchStart:Wa,disabled:ae,className:`h-8 min-w-[80px]`,style:G,children:oe}),t[48]=M,t[49]=ae,t[50]=G,t[51]=oe,t[52]=K):K=t[52];let q;t[53]!==ne||t[54]!==re||t[55]!==K?(q=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 mt-3`,children:[ne,re,K]}),t[53]=ne,t[54]=re,t[55]=K,t[56]=q):q=t[56];let J;t[57]!==z||t[58]!==te||t[59]!==q?(J=(0,$.jsxs)(`div`,{className:`p-3`,children:[z,te,q]}),t[57]=z,t[58]=te,t[59]=q,t[60]=J):J=t[60];let se;return t[61]!==N||t[62]!==L||t[63]!==ee||t[64]!==R||t[65]!==J?(se=(0,$.jsx)(`div`,{className:N,style:L,"data-comment-input":`true`,onPointerDown:ee,onTouchStart:R,children:J}),t[61]=N,t[62]=L,t[63]=ee,t[64]=R,t[65]=J,t[66]=se):se=t[66],se}function Wa(e){return e.stopPropagation()}function Ga(e){return e.stopPropagation()}function Ka(e){return e.stopPropagation()}function qa(e){return e.stopPropagation()}function Ja(e){return e.stopPropagation()}function Ya(e){return e.stopPropagation()}function Xa(e){return e.stopPropagation()}function Za(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 Qa=e=>{let t=Math.min(e.startLine,e.endLine),n=Math.max(e.startLine,e.endLine);return{...e,startLine:t,endLine:n}},$a=e=>{let t=Math.min(e.start,e.end),n=Math.max(e.start,e.end);return{...e,start:t,end:n}};function eo(e){let t=(0,ri.c)(40),{t:n}=pe(),{source:r,fileLabel:i,language:a,getCodeForRange:o,toStoreRange:s,fromDraftRange:c}=e,l=Ye(oo),u=Ye(ao),d=Et(io),f=Et(ro),p=Et(no),m=Et(to),[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=$a(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){ze.error(n(`inlineComment.toast.selectSessionToSave`));return}let u=$a(c),p=Qa(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 to(e){return e.drafts}function no(e){return e.removeDraft}function ro(e){return e.updateDraft}function io(e){return e.addDraft}function ao(e){return e.newSessionDraft?.open}function oo(e){return e.currentSessionId}function so(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)(Ua,{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)(Ha,{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)(Ua,{initialText:r,onTextChange:i,fileLabel:s,lineRange:e,isEditing:!1,onSave:u,onCancel:d,onAddToChat:m},c)})}return h}var co=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}`},lo=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 uo(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 fo(e){if(!(!e||e<=0))return Math.max(200,Math.floor(e))}function po(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:co({type:`new`,selection:r}),[i,r]),v=Q.useMemo(()=>{let e=n.map(e=>co({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=uo(getComputedStyle(e).getPropertyValue(`--oc-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?fo(Math.min(...o)):fo(h)},[t,h]);return(0,$.jsxs)($.Fragment,{children:[n.map(e=>{let t=co({type:e.id===i?`edit`:`saved`,draft:e}),n=y(t);if(!n)return null;let r=b(n);return e.id===i?(0,ii.createPortal)((0,$.jsx)(Ua,{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,ii.createPortal)((0,$.jsx)(Ha,{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,ii.createPortal)((0,$.jsx)(Ua,{initialText:a,onTextChange:o,fileLabel:s,lineRange:r,isEditing:!1,onSave:c,onCancel:l,onAddToChat:f,maxWidth:t}),e,_)})()]})}function mo(e){let t=(0,ri.c)(16),{position:n,onAddToChat:r,onDismiss:i}=e,{t:a}=pe(),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)(Jt,{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,ii.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:ho,children:p}),document.body),t[13]=l,t[14]=p,t[15]=m):m=t[15],m}function ho(e){return e.preventDefault()}var go=`[data-code-selection-action]`;function _o(e){return e instanceof Element&&!!e.closest(go)}function vo(e,t=[]){return _o(e)?!0:t.some(e=>e instanceof Element&&e.matches(`[data-column-number]`))}function yo(e,t){return e&&!!t?.trim()}function bo(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(`
|