@sma1lboy/kobe 0.8.147 → 0.8.149

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/cli/index.js CHANGED
@@ -303,7 +303,7 @@ ${G}
303
303
  `)}let z=tY0();for(let G of wT()){if(X&&G.vendor==="claude")continue;let W=G.globalSettingsPath();if(!W)continue;await G.installActivityHooks(W,{toolEvents:z}),await G.installWorktreeWatchHook(W)}await zh()}catch{}}function tY0(){try{for(let $ of o4().plugins){if(!$.enabled)continue;try{if(Q6($.root).manifest.events.some((Z)=>Z.on.startsWith("tool.")))return!0}catch{}}}catch{}return!1}async function zh(){let $=rY0();if($.length===0)return;let Z=x5(tm),J=new Set([Qh()]),X=sY0(Z);if(X)J.add(X);for(let z of $)for(let G of J)await z.removeWorktreeSyncHook(G);if(Z!=="off")X6(tm,"off")}async function eY0(){let $=wT().find((J)=>J.vendor==="claude"),Z=$?.globalSettingsPath();if(!$||!Z){process.stdout.write(`rove hook cleanup: no Claude hook adapter \u2014 nothing to do.
304
304
  `);return}await $.removeActivityHooks(Z),await $.removeWorktreeWatchHook(Z),process.stdout.write([`rove hook cleanup: removed Rove's settings-managed hooks from ${Z}.`,"Only Rove's own entries were touched; your other hooks are intact.","The Claude Code plugin's hooks.json now carries these events (if the plugin","is not installed, the next Rove launch reinstalls the settings-managed set).",""].join(`
305
305
  `))}async function $G0($){await zh(),process.stdout.write(["rove hook setup is deprecated and now a no-op (cleanup only).","","The old external-worktree sync used a global WorktreeCreate hook, which is","a VCS provider hook \u2014 its presence broke `claude --worktree` / EnterWorktree","in every repo. Any hook Rove previously installed has been removed.","","Sync is now automatic: a `claude --worktree` (or any session) started in a","worktree under a repo Rove already tracks is adopted as a task on launch.","To adopt existing worktrees on demand, use the New Task dialog or `rove adopt`.",""].join(`
306
- `))}var lY0=500,pY0="worktree-created",tm="externalWorktreeSync";var fT=d(()=>{I2();mJ();NZ();ST();ET();C4();P7();u4()});var Pj;var Gh=d(()=>{Pj={$schema:"https://json.schemastore.org/package.json",name:"@sma1lboy/rove",version:"0.8.147",description:"Rove \u2014 the agent multiplexer for your terminal. Run coding agents on parallel tasks with isolated worktrees and persistent sessions.",type:"module",packageManager:"bun@1.3.13",bin:{kobe:"dist/cli/kobe.js",rove:"dist/cli/rove.js"},files:["dist/cli","dist/web-ui","dist/skills","dist/*.wav","README.md","LICENSE"],publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/Sma1lboy/rove.git"},homepage:"https://github.com/Sma1lboy/rove#readme",bugs:{url:"https://github.com/Sma1lboy/rove/issues"},engines:{bun:">=1.3.11"},scripts:{dev:"ROVE_DEV=1 bun --conditions=browser ./src/cli/rove.ts","dev:kobe":"KOBE_DEV=1 bun --conditions=browser ./src/cli/kobe.ts","dev:mock":"KOBE_DEV=1 bun ./src/tui-react/mock/host.tsx","dev:mock-react":"KOBE_DEV=1 bun ./src/tui-react/mock/host.tsx","dev:mock-react-task-dialogs":"KOBE_DEV=1 bun ./src/tui-react/component/mock-dialogs-host.tsx","dev:mock-react-filetree":"KOBE_DEV=1 bun ./src/tui-react/panes/filetree/mock-host.tsx","dev:mock-react-sidebar":"KOBE_DEV=1 bun ./src/tui-react/panes/sidebar/mock-host.tsx","dev:mock-react-terminal":"KOBE_DEV=1 bun ./src/tui-react/panes/terminal/mock-host.tsx","dev:mock-react-dialogs":"KOBE_DEV=1 bun ./src/tui-react/mock/dialogs-host.tsx","dev:mock-react-workspace":"KOBE_DEV=1 bun ./src/tui-react/workspace/mock-host.tsx","dev:sandbox":"bun run scripts/dev-sandbox.ts run","dev:sandbox:reset":"bun run scripts/dev-sandbox.ts reset",build:"bun run scripts/build.ts","build:with-web":"bun run build",compile:"bun run scripts/compile.ts",typecheck:"tsc --noEmit","check-i18n":"bun run scripts/check-i18n.ts",test:"bun run test:fast && bun run test:socket","perf:golden":"bun scripts/perf-golden.ts","pty:soak":"bun scripts/pty-soak.ts","test:fast":"vitest run --passWithNoTests --minWorkers=1 --maxWorkers=8","test:socket":"KOBE_INCLUDE_SOCKET=1 vitest run test/daemon --pool forks --minWorkers=1 --maxWorkers=4 --passWithNoTests","test:socket:coverage":"KOBE_INCLUDE_SOCKET=1 KOBE_COVERAGE_DAEMON=1 vitest run test/daemon --coverage --pool forks --minWorkers=1 --maxWorkers=4 --passWithNoTests","test:behavior":"KOBE_INCLUDE_BEHAVIOR=1 vitest run test/behavior --pool forks --minWorkers=1 --maxWorkers=1 --retry=2 --passWithNoTests","test:render":"bun test test/render --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage-render",coverage:"vitest run --coverage --passWithNoTests",bench:"vitest bench --run",lint:"biome check .",knip:"knip-bun",postinstall:"bun run scripts/check-preview-deps.ts || true",prepublishOnly:"bun run typecheck && bun run build"},"//":"biome.json + bunfig.toml live at the monorepo root since they apply repo-wide; bun.lock also lives at root (workspace-shared).",dependencies:{"@ansi-tools/parser":"^1.0.15","@opentui/core":"0.4.3","@opentui/react":"0.4.3","@xterm/addon-serialize":"^0.14.0","@xterm/addon-unicode11":"^0.9.0","@xterm/headless":"^6.0.0","node-pty":"^1.1.0",react:"^19.2.8",ws:"^8.18.0"},devDependencies:{"@biomejs/biome":"1.9.4","@sma1lboy/kobe-daemon":"0.7.14","@tsconfig/bun":"1.0.10","@types/bun":"1.3.14","@types/node":"25.6.2","@types/react":"^19.2.0","@vitest/coverage-v8":"2.1.9",knip:"^6.14.2","kobe-web":"workspace:*","react-devtools-core":"^7.0.1",typescript:"5.8.2",vitest:"2.1.9"},trustedDependencies:[]}});var Hh={};A$(Hh,{repoSlug:()=>gY,releasePageUrl:()=>mT,recommendedGlobalInstallCommand:()=>bT,isNewerSemver:()=>yT,fetchReleaseSummaries:()=>WF,fetchReleaseNotesRange:()=>kT,fetchReleaseNotes:()=>vT,compareSemver:()=>V3,checkLatestVersion:()=>bY,breakingVersionsCrossed:()=>GF,UPDATE_SCRIPT_URL:()=>Rj,UPDATE_COMMAND:()=>VZ,PACKAGE_NAME:()=>gT,CURRENT_VERSION:()=>R$,BREAKING_VERSIONS:()=>lJ});function gY(){let $=Pj.repository?.url;if(!$)return null;let Z=$.match(/github\.com[:/]([^/]+)\/([^/.]+)/);if(!Z||!Z[1]||!Z[2])return null;return`${Z[1]}/${Z[2]}`}function bT(){return`npm install -g ${gT}@latest`}function GF($,Z,J=lJ){let[X,z]=V3($,Z)<=0?[$,Z]:[Z,$];return J.filter((G)=>V3(G,X)>0&&V3(G,z)<=0)}async function JG0($){let Z=new AbortController,J=setTimeout(()=>Z.abort(),Tj);try{let X=$.replace("/","%2F"),z=await fetch(`https://registry.npmjs.org/${X}/latest`,{signal:Z.signal,headers:{accept:"application/json"}});if(!z.ok)return null;let G=await z.json();if(typeof G.version!=="string")return null;return G.version}catch{return null}finally{clearTimeout(J)}}function yT($,Z){return V3($,Z)>0}function V3($,Z){let J=(G)=>G.split("-")[0]??G,X=J($).split(".").map((G)=>Number.parseInt(G,10)),z=J(Z).split(".").map((G)=>Number.parseInt(G,10));for(let G=0;G<3;G++){let W=X[G]??0,H=z[G]??0;if(Number.isNaN(W)||Number.isNaN(H))return 0;if(W>H)return 1;if(W<H)return-1}return 0}async function bY($={}){let Z=process.env.KOBE_FAKE_UPDATE;if(Z)return{current:R$,latest:Z,hasUpdate:yT(Z,R$)};if(TH()&&!$.force)return null;let J=await JG0(gT);if(!J)return null;return{current:R$,latest:J,hasUpdate:yT(J,R$)}}function Wh($){if(typeof $!=="string")return null;return $.match(/^v(\d+\.\d+\.\d+)$/)?.[1]??null}async function vT($){let Z=gY();if(!Z)return null;let J=`v${$}`,X=new AbortController,z=setTimeout(()=>X.abort(),Tj);try{let G=await fetch(`https://api.github.com/repos/${Z}/releases/tags/${J}`,{signal:X.signal,headers:{accept:"application/vnd.github+json","x-github-api-version":"2022-11-28"}});if(!G.ok)return null;let W=await G.json();if(typeof W.body!=="string"||typeof W.html_url!=="string")return null;return{body:W.body,url:W.html_url,version:$}}catch{return null}finally{clearTimeout(z)}}async function kT($){let Z=gY();if(!Z)return[];let J=$.limit??100,X=new AbortController,z=setTimeout(()=>X.abort(),Tj);try{let G=await fetch(`https://api.github.com/repos/${Z}/releases?per_page=${J}`,{signal:X.signal,headers:{accept:"application/vnd.github+json","x-github-api-version":"2022-11-28"}});if(!G.ok)return[];let W=await G.json();if(!Array.isArray(W))return[];return W.map((H)=>{let U=Wh(H.tag_name);if(!U||typeof H.html_url!=="string"||typeof H.body!=="string")return null;if(V3(U,$.current)<=0)return null;if(V3(U,$.latest)>0)return null;return{version:U,url:H.html_url,body:H.body}}).filter((H)=>H!==null)}catch{return[]}finally{clearTimeout(z)}}async function WF($=12){let Z=gY();if(!Z)return[];let J=new AbortController,X=setTimeout(()=>J.abort(),Tj);try{let z=await fetch(`https://api.github.com/repos/${Z}/releases?per_page=${$}`,{signal:J.signal,headers:{accept:"application/vnd.github+json","x-github-api-version":"2022-11-28"}});if(!z.ok)return[];let G=await z.json();if(!Array.isArray(G))return[];return G.map((W)=>{let H=Wh(W.tag_name);if(!H||typeof W.html_url!=="string")return null;return{version:H,url:W.html_url}}).filter((W)=>W!==null)}catch{return[]}finally{clearTimeout(X)}}function mT($){let Z=gY();if(!Z)return null;return`https://github.com/${Z}/releases/tag/v${$}`}var R$,gT,Rj="https://raw.githubusercontent.com/Sma1lboy/rove/main/scripts/update.sh",VZ,lJ,Tj=3000;var d8=d(()=>{Gh();V5();R$=Pj.version,gT=Pj.name;VZ=`curl -fsSL ${Rj} | sh`;lJ=[]});var Uh={};A$(Uh,{stampResetGate:()=>Sj,resetGateBlockers:()=>qh,enforceResetGate:()=>uT,LAST_RUN_VERSION_KEY:()=>hT});function qh($,Z=R$,J=lJ){if(typeof $!=="string"||$.length===0)return[];let[X,z]=V3($,Z)<=0?[$,Z]:[Z,$];return J.filter((G)=>V3(G,X)>0&&V3(G,z)<=0)}function uT(){let $=$$(),Z=L4()[hT],J=qh(Z);if(J.length>0){let X=typeof Z==="string"?Z:"unknown";console.error([`${$} ${R$}: cannot start \u2014 version ${J.join(", ")} introduced breaking changes`,`(last run: ${X}). Your daemon/session state may be incompatible.`,"","Run:",` ${$} reset # stop daemon + PTY host + sessions (tasks kept)`,` ${$} reset --hard # additionally wipe the task index + UI state`,"","Then relaunch Rove. Worktrees are never touched."].join(`
306
+ `))}var lY0=500,pY0="worktree-created",tm="externalWorktreeSync";var fT=d(()=>{I2();mJ();NZ();ST();ET();C4();P7();u4()});var Pj;var Gh=d(()=>{Pj={$schema:"https://json.schemastore.org/package.json",name:"@sma1lboy/rove",version:"0.8.149",description:"Rove \u2014 the agent multiplexer for your terminal. Run coding agents on parallel tasks with isolated worktrees and persistent sessions.",type:"module",packageManager:"bun@1.3.13",bin:{kobe:"dist/cli/kobe.js",rove:"dist/cli/rove.js"},files:["dist/cli","dist/web-ui","dist/skills","dist/*.wav","README.md","LICENSE"],publishConfig:{access:"public"},repository:{type:"git",url:"git+https://github.com/Sma1lboy/rove.git"},homepage:"https://github.com/Sma1lboy/rove#readme",bugs:{url:"https://github.com/Sma1lboy/rove/issues"},engines:{bun:">=1.3.11"},scripts:{dev:"ROVE_DEV=1 bun --conditions=browser ./src/cli/rove.ts","dev:kobe":"KOBE_DEV=1 bun --conditions=browser ./src/cli/kobe.ts","dev:mock":"KOBE_DEV=1 bun ./src/tui-react/mock/host.tsx","dev:mock-react":"KOBE_DEV=1 bun ./src/tui-react/mock/host.tsx","dev:mock-react-task-dialogs":"KOBE_DEV=1 bun ./src/tui-react/component/mock-dialogs-host.tsx","dev:mock-react-filetree":"KOBE_DEV=1 bun ./src/tui-react/panes/filetree/mock-host.tsx","dev:mock-react-sidebar":"KOBE_DEV=1 bun ./src/tui-react/panes/sidebar/mock-host.tsx","dev:mock-react-terminal":"KOBE_DEV=1 bun ./src/tui-react/panes/terminal/mock-host.tsx","dev:mock-react-dialogs":"KOBE_DEV=1 bun ./src/tui-react/mock/dialogs-host.tsx","dev:mock-react-workspace":"KOBE_DEV=1 bun ./src/tui-react/workspace/mock-host.tsx","dev:sandbox":"bun run scripts/dev-sandbox.ts run","dev:sandbox:reset":"bun run scripts/dev-sandbox.ts reset",build:"bun run scripts/build.ts","build:with-web":"bun run build",compile:"bun run scripts/compile.ts",typecheck:"tsc --noEmit","check-i18n":"bun run scripts/check-i18n.ts",test:"bun run test:fast && bun run test:socket","perf:golden":"bun scripts/perf-golden.ts","pty:soak":"bun scripts/pty-soak.ts","test:fast":"vitest run --passWithNoTests --minWorkers=1 --maxWorkers=8","test:socket":"KOBE_INCLUDE_SOCKET=1 vitest run test/daemon --pool forks --minWorkers=1 --maxWorkers=4 --passWithNoTests","test:socket:coverage":"KOBE_INCLUDE_SOCKET=1 KOBE_COVERAGE_DAEMON=1 vitest run test/daemon --coverage --pool forks --minWorkers=1 --maxWorkers=4 --passWithNoTests","test:behavior":"KOBE_INCLUDE_BEHAVIOR=1 vitest run test/behavior --pool forks --minWorkers=1 --maxWorkers=1 --retry=2 --passWithNoTests","test:render":"bun test test/render --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage-render",coverage:"vitest run --coverage --passWithNoTests",bench:"vitest bench --run",lint:"biome check .",knip:"knip-bun",postinstall:"bun run scripts/check-preview-deps.ts || true",prepublishOnly:"bun run typecheck && bun run build"},"//":"biome.json + bunfig.toml live at the monorepo root since they apply repo-wide; bun.lock also lives at root (workspace-shared).",dependencies:{"@ansi-tools/parser":"^1.0.15","@opentui/core":"0.4.3","@opentui/react":"0.4.3","@xterm/addon-serialize":"^0.14.0","@xterm/addon-unicode11":"^0.9.0","@xterm/headless":"^6.0.0","node-pty":"^1.1.0",react:"^19.2.8",ws:"^8.18.0"},devDependencies:{"@biomejs/biome":"1.9.4","@sma1lboy/kobe-daemon":"0.7.14","@tsconfig/bun":"1.0.10","@types/bun":"1.3.14","@types/node":"25.6.2","@types/react":"^19.2.0","@vitest/coverage-v8":"2.1.9",knip:"^6.14.2","kobe-web":"workspace:*","react-devtools-core":"^7.0.1",typescript:"5.8.2",vitest:"2.1.9"},trustedDependencies:[]}});var Hh={};A$(Hh,{repoSlug:()=>gY,releasePageUrl:()=>mT,recommendedGlobalInstallCommand:()=>bT,isNewerSemver:()=>yT,fetchReleaseSummaries:()=>WF,fetchReleaseNotesRange:()=>kT,fetchReleaseNotes:()=>vT,compareSemver:()=>V3,checkLatestVersion:()=>bY,breakingVersionsCrossed:()=>GF,UPDATE_SCRIPT_URL:()=>Rj,UPDATE_COMMAND:()=>VZ,PACKAGE_NAME:()=>gT,CURRENT_VERSION:()=>R$,BREAKING_VERSIONS:()=>lJ});function gY(){let $=Pj.repository?.url;if(!$)return null;let Z=$.match(/github\.com[:/]([^/]+)\/([^/.]+)/);if(!Z||!Z[1]||!Z[2])return null;return`${Z[1]}/${Z[2]}`}function bT(){return`npm install -g ${gT}@latest`}function GF($,Z,J=lJ){let[X,z]=V3($,Z)<=0?[$,Z]:[Z,$];return J.filter((G)=>V3(G,X)>0&&V3(G,z)<=0)}async function JG0($){let Z=new AbortController,J=setTimeout(()=>Z.abort(),Tj);try{let X=$.replace("/","%2F"),z=await fetch(`https://registry.npmjs.org/${X}/latest`,{signal:Z.signal,headers:{accept:"application/json"}});if(!z.ok)return null;let G=await z.json();if(typeof G.version!=="string")return null;return G.version}catch{return null}finally{clearTimeout(J)}}function yT($,Z){return V3($,Z)>0}function V3($,Z){let J=(G)=>G.split("-")[0]??G,X=J($).split(".").map((G)=>Number.parseInt(G,10)),z=J(Z).split(".").map((G)=>Number.parseInt(G,10));for(let G=0;G<3;G++){let W=X[G]??0,H=z[G]??0;if(Number.isNaN(W)||Number.isNaN(H))return 0;if(W>H)return 1;if(W<H)return-1}return 0}async function bY($={}){let Z=process.env.KOBE_FAKE_UPDATE;if(Z)return{current:R$,latest:Z,hasUpdate:yT(Z,R$)};if(TH()&&!$.force)return null;let J=await JG0(gT);if(!J)return null;return{current:R$,latest:J,hasUpdate:yT(J,R$)}}function Wh($){if(typeof $!=="string")return null;return $.match(/^v(\d+\.\d+\.\d+)$/)?.[1]??null}async function vT($){let Z=gY();if(!Z)return null;let J=`v${$}`,X=new AbortController,z=setTimeout(()=>X.abort(),Tj);try{let G=await fetch(`https://api.github.com/repos/${Z}/releases/tags/${J}`,{signal:X.signal,headers:{accept:"application/vnd.github+json","x-github-api-version":"2022-11-28"}});if(!G.ok)return null;let W=await G.json();if(typeof W.body!=="string"||typeof W.html_url!=="string")return null;return{body:W.body,url:W.html_url,version:$}}catch{return null}finally{clearTimeout(z)}}async function kT($){let Z=gY();if(!Z)return[];let J=$.limit??100,X=new AbortController,z=setTimeout(()=>X.abort(),Tj);try{let G=await fetch(`https://api.github.com/repos/${Z}/releases?per_page=${J}`,{signal:X.signal,headers:{accept:"application/vnd.github+json","x-github-api-version":"2022-11-28"}});if(!G.ok)return[];let W=await G.json();if(!Array.isArray(W))return[];return W.map((H)=>{let U=Wh(H.tag_name);if(!U||typeof H.html_url!=="string"||typeof H.body!=="string")return null;if(V3(U,$.current)<=0)return null;if(V3(U,$.latest)>0)return null;return{version:U,url:H.html_url,body:H.body}}).filter((H)=>H!==null)}catch{return[]}finally{clearTimeout(z)}}async function WF($=12){let Z=gY();if(!Z)return[];let J=new AbortController,X=setTimeout(()=>J.abort(),Tj);try{let z=await fetch(`https://api.github.com/repos/${Z}/releases?per_page=${$}`,{signal:J.signal,headers:{accept:"application/vnd.github+json","x-github-api-version":"2022-11-28"}});if(!z.ok)return[];let G=await z.json();if(!Array.isArray(G))return[];return G.map((W)=>{let H=Wh(W.tag_name);if(!H||typeof W.html_url!=="string")return null;return{version:H,url:W.html_url}}).filter((W)=>W!==null)}catch{return[]}finally{clearTimeout(X)}}function mT($){let Z=gY();if(!Z)return null;return`https://github.com/${Z}/releases/tag/v${$}`}var R$,gT,Rj="https://raw.githubusercontent.com/Sma1lboy/rove/main/scripts/update.sh",VZ,lJ,Tj=3000;var d8=d(()=>{Gh();V5();R$=Pj.version,gT=Pj.name;VZ=`curl -fsSL ${Rj} | sh`;lJ=[]});var Uh={};A$(Uh,{stampResetGate:()=>Sj,resetGateBlockers:()=>qh,enforceResetGate:()=>uT,LAST_RUN_VERSION_KEY:()=>hT});function qh($,Z=R$,J=lJ){if(typeof $!=="string"||$.length===0)return[];let[X,z]=V3($,Z)<=0?[$,Z]:[Z,$];return J.filter((G)=>V3(G,X)>0&&V3(G,z)<=0)}function uT(){let $=$$(),Z=L4()[hT],J=qh(Z);if(J.length>0){let X=typeof Z==="string"?Z:"unknown";console.error([`${$} ${R$}: cannot start \u2014 version ${J.join(", ")} introduced breaking changes`,`(last run: ${X}). Your daemon/session state may be incompatible.`,"","Run:",` ${$} reset # stop daemon + PTY host + sessions (tasks kept)`,` ${$} reset --hard # additionally wipe the task index + UI state`,"","Then relaunch Rove. Worktrees are never touched."].join(`
307
307
  `)),process.exit(1)}if(Z!==R$)Sj()}function Sj(){try{E2({[hT]:R$})}catch{}}var hT="app.lastRunVersion";var Ij=d(()=>{w2();d8();u4()});import{existsSync as Kh,readFileSync as XG0}from"fs";import{homedir as QG0}from"os";import{join as Fh,resolve as Bh}from"path";import{fileURLToPath as zG0}from"url";function lT($=process.env){return`${$$($)} skill install`}function Ej(){let $=zG0(import.meta.url);return[Bh($,"../../../../../.agents/skills/kobe"),Bh($,"../../skills/rove")].find((J)=>Kh(Fh(J,"SKILL.md")))??null}function wj($={}){let Z=$.source!==void 0?$.source:Ej(),J=$.agent===void 0?[]:typeof $.agent==="string"?[$.agent]:$.agent;return["skills","add",Z??GG0,"--skill",e3,...$.global===!1?[]:["--global"],...J.flatMap((X)=>["--agent",X])]}function vY($={}){return`npx ${wj($).join(" ")}`}async function pT($,Z){return await Bun.spawn(["npx",...wj({...$===void 0?{}:{agent:$},global:Z})],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited}function xj($={}){let Z=$.home??QG0(),J=$.cwd??process.cwd();return[Z,J].flatMap((X)=>YG0.map((z)=>Fh(X,z)))}function WG0($){let Z=$.match(/(?:rove|kobe)-skill-version:\s*(\d+)/);return Z?Number.parseInt(Z[1],10):null}function HF($){let Z=xj($).find((z)=>Kh(z));if(!Z)return{installed:!1,installedVersion:null,currentVersion:cT,stale:!1};let J=null;try{J=WG0(XG0(Z,"utf8"))}catch{J=null}let X=J===null||J<cT;return{installed:!0,installedVersion:J,currentVersion:cT,stale:X}}function HG0(){return new Promise(($)=>{process.stdin.resume(),process.stdin.once("data",(Z)=>{process.stdin.pause(),$(String(Z))})})}async function Mh($={}){let{isRovePluginEnabled:Z}=await Promise.resolve().then(() => (Aj(),Dj));if(Z())return;let J=$$(),X=lT(),z=HF();if(!z.installed){if(x5(dT)==="1")return;X6(dT,"1"),process.stderr.write(`
308
308
  ${J}: the Rove agent skill isn't installed \u2014 install it so your coding agent can drive Rove via \`${J} api\`:
309
309
  ${X}
@@ -317,7 +317,7 @@ ${J}: your Rove agent skill is out of date (${W}; this Rove wants v${z.currentVe
317
317
  ${J}: a new version of the Rove agent skill is available (${W} \u2192 v${z.currentVersion}).
318
318
  Update now? [y]es / [n]o / [d]on't notify for this version: `);let U=(await($.ask??HG0)()).trim().toLowerCase();if(U==="y"||U==="yes"){let B=await($.install??pT)();if(B===0)process.stderr.write(`${J}: skill updated.
319
319
  `);else process.stderr.write(`${J}: skill update failed (exit ${B}) \u2014 run \`${X}\` manually.
320
- `)}else if(U.startsWith("d"))X6(G,"1")}var cT=30,YG0,GG0="Sma1lboy/rove",dT="skillHintSeen";var qF=d(()=>{u4();CQ();C4();YG0=[".agents/skills/rove/SKILL.md",".claude/skills/rove/SKILL.md",".agents/skills/kobe/SKILL.md",".claude/skills/kobe/SKILL.md"]});var Lh={};A$(Lh,{loadPluginEngines:()=>qG0});function qG0(){let $=[];try{for(let Z of o4().plugins){if(!Z.enabled)continue;try{let{manifest:J}=Q6(Z.root);for(let X of J.engines)if(bv(X.id,{displayName:X.name,defaultCommand:X.command,...X.processNames?{processNames:X.processNames}:{},screenManifest:{rules:X.rules}}))$.push(X.id)}catch{}}}catch{}return $}var Nh=d(()=>{mJ();NZ();iO()});var fj=()=>{};var q1=jY((UG0,yj)=>{(function(){function $(J0,S0){Object.defineProperty(X.prototype,J0,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",S0[0],S0[1])}})}function Z(J0){if(J0===null||typeof J0!=="object")return null;return J0=D0&&J0[D0]||J0["@@iterator"],typeof J0==="function"?J0:null}function J(J0,S0){J0=(J0=J0.constructor)&&(J0.displayName||J0.name)||"ReactClass";var Z1=J0+"."+S0;u0[Z1]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",S0,J0),u0[Z1]=!0)}function X(J0,S0,Z1){this.props=J0,this.context=S0,this.refs=W1,this.updater=Z1||j0}function z(){}function G(J0,S0,Z1){this.props=J0,this.context=S0,this.refs=W1,this.updater=Z1||j0}function W(){}function H(J0){return""+J0}function U(J0){try{H(J0);var S0=!1}catch(n1){S0=!0}if(S0){S0=console;var Z1=S0.error,U1=typeof Symbol==="function"&&Symbol.toStringTag&&J0[Symbol.toStringTag]||J0.constructor.name||"Object";return Z1.call(S0,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",U1),H(J0)}}function B(J0){if(J0==null)return null;if(typeof J0==="function")return J0.$$typeof===c0?null:J0.displayName||J0.name||null;if(typeof J0==="string")return J0;switch(J0){case i:return"Fragment";case n:return"Profiler";case l:return"StrictMode";case $0:return"Suspense";case O0:return"SuspenseList";case b0:return"Activity"}if(typeof J0==="object")switch(typeof J0.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),J0.$$typeof){case k:return"Portal";case Z0:return J0.displayName||"Context";case Y0:return(J0._context.displayName||"Context")+".Consumer";case a:var S0=J0.render;return J0=J0.displayName,J0||(J0=S0.displayName||S0.name||"",J0=J0!==""?"ForwardRef("+J0+")":"ForwardRef"),J0;case Q0:return S0=J0.displayName||null,S0!==null?S0:B(J0.type)||"Memo";case w0:S0=J0._payload,J0=J0._init;try{return B(J0(S0))}catch(Z1){}}return null}function M(J0){if(J0===i)return"<>";if(typeof J0==="object"&&J0!==null&&J0.$$typeof===w0)return"<...>";try{var S0=B(J0);return S0?"<"+S0+">":"<...>"}catch(Z1){return"<...>"}}function O(){var J0=X1.A;return J0===null?null:J0.getOwner()}function L(){return Error("react-stack-top-frame")}function j(J0){if(u1.call(J0,"key")){var S0=Object.getOwnPropertyDescriptor(J0,"key").get;if(S0&&S0.isReactWarning)return!1}return J0.key!==void 0}function A(J0,S0){function Z1(){B$||(B$=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",S0))}Z1.isReactWarning=!0,Object.defineProperty(J0,"key",{get:Z1,configurable:!0})}function C(){var J0=B(this.type);return s5[J0]||(s5[J0]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),J0=this.props.ref,J0!==void 0?J0:null}function _(J0,S0,Z1,U1,n1,x$){var P$=Z1.ref;return J0={$$typeof:W0,type:J0,key:S0,props:Z1,_owner:U1},(P$!==void 0?P$:null)!==null?Object.defineProperty(J0,"ref",{enumerable:!1,get:C}):Object.defineProperty(J0,"ref",{enumerable:!1,value:null}),J0._store={},Object.defineProperty(J0._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(J0,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(J0,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:n1}),Object.defineProperty(J0,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:x$}),Object.freeze&&(Object.freeze(J0.props),Object.freeze(J0)),J0}function b(J0,S0){return S0=_(J0.type,S0,J0.props,J0._owner,J0._debugStack,J0._debugTask),J0._store&&(S0._store.validated=J0._store.validated),S0}function E(J0){I(J0)?J0._store&&(J0._store.validated=1):typeof J0==="object"&&J0!==null&&J0.$$typeof===w0&&(J0._payload.status==="fulfilled"?I(J0._payload.value)&&J0._payload.value._store&&(J0._payload.value._store.validated=1):J0._store&&(J0._store.validated=1))}function I(J0){return typeof J0==="object"&&J0!==null&&J0.$$typeof===W0}function T(J0){var S0={"=":"=0",":":"=2"};return"$"+J0.replace(/[=:]/g,function(Z1){return S0[Z1]})}function w(J0,S0){return typeof J0==="object"&&J0!==null&&J0.key!=null?(U(J0.key),T(""+J0.key)):S0.toString(36)}function y(J0){switch(J0.status){case"fulfilled":return J0.value;case"rejected":throw J0.reason;default:switch(typeof J0.status==="string"?J0.then(W,W):(J0.status="pending",J0.then(function(S0){J0.status==="pending"&&(J0.status="fulfilled",J0.value=S0)},function(S0){J0.status==="pending"&&(J0.status="rejected",J0.reason=S0)})),J0.status){case"fulfilled":return J0.value;case"rejected":throw J0.reason}}throw J0}function f(J0,S0,Z1,U1,n1){var x$=typeof J0;if(x$==="undefined"||x$==="boolean")J0=null;var P$=!1;if(J0===null)P$=!0;else switch(x$){case"bigint":case"string":case"number":P$=!0;break;case"object":switch(J0.$$typeof){case W0:case k:P$=!0;break;case w0:return P$=J0._init,f(P$(J0._payload),S0,Z1,U1,n1)}}if(P$){P$=J0,n1=n1(P$);var K4=U1===""?"."+w(P$,0):U1;return L0(n1)?(Z1="",K4!=null&&(Z1=K4.replace(PX,"$&/")+"/"),f(n1,S0,Z1,"",function(y7){return y7})):n1!=null&&(I(n1)&&(n1.key!=null&&(P$&&P$.key===n1.key||U(n1.key)),Z1=b(n1,Z1+(n1.key==null||P$&&P$.key===n1.key?"":(""+n1.key).replace(PX,"$&/")+"/")+K4),U1!==""&&P$!=null&&I(P$)&&P$.key==null&&P$._store&&!P$._store.validated&&(Z1._store.validated=2),n1=Z1),S0.push(n1)),1}if(P$=0,K4=U1===""?".":U1+":",L0(J0))for(var g$=0;g$<J0.length;g$++)U1=J0[g$],x$=K4+w(U1,g$),P$+=f(U1,S0,Z1,x$,n1);else if(g$=Z(J0),typeof g$==="function")for(g$===J0.entries&&(t8||console.warn("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),t8=!0),J0=g$.call(J0),g$=0;!(U1=J0.next()).done;)U1=U1.value,x$=K4+w(U1,g$++),P$+=f(U1,S0,Z1,x$,n1);else if(x$==="object"){if(typeof J0.then==="function")return f(y(J0),S0,Z1,U1,n1);throw S0=String(J0),Error("Objects are not valid as a React child (found: "+(S0==="[object Object]"?"object with keys {"+Object.keys(J0).join(", ")+"}":S0)+"). If you meant to render a collection of children, use an array instead.")}return P$}function h(J0,S0,Z1){if(J0==null)return J0;var U1=[],n1=0;return f(J0,U1,"","",function(x$){return S0.call(Z1,x$,n1++)}),U1}function p(J0){if(J0._status===-1){var S0=J0._ioInfo;S0!=null&&(S0.start=S0.end=performance.now()),S0=J0._result;var Z1=S0();if(Z1.then(function(n1){if(J0._status===0||J0._status===-1){J0._status=1,J0._result=n1;var x$=J0._ioInfo;x$!=null&&(x$.end=performance.now()),Z1.status===void 0&&(Z1.status="fulfilled",Z1.value=n1)}},function(n1){if(J0._status===0||J0._status===-1){J0._status=2,J0._result=n1;var x$=J0._ioInfo;x$!=null&&(x$.end=performance.now()),Z1.status===void 0&&(Z1.status="rejected",Z1.reason=n1)}}),S0=J0._ioInfo,S0!=null){S0.value=Z1;var U1=Z1.displayName;typeof U1==="string"&&(S0.name=U1)}J0._status===-1&&(J0._status=0,J0._result=Z1)}if(J0._status===1)return S0=J0._result,S0===void 0&&console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
320
+ `)}else if(U.startsWith("d"))X6(G,"1")}var cT=31,YG0,GG0="Sma1lboy/rove",dT="skillHintSeen";var qF=d(()=>{u4();CQ();C4();YG0=[".agents/skills/rove/SKILL.md",".claude/skills/rove/SKILL.md",".agents/skills/kobe/SKILL.md",".claude/skills/kobe/SKILL.md"]});var Lh={};A$(Lh,{loadPluginEngines:()=>qG0});function qG0(){let $=[];try{for(let Z of o4().plugins){if(!Z.enabled)continue;try{let{manifest:J}=Q6(Z.root);for(let X of J.engines)if(bv(X.id,{displayName:X.name,defaultCommand:X.command,...X.processNames?{processNames:X.processNames}:{},screenManifest:{rules:X.rules}}))$.push(X.id)}catch{}}}catch{}return $}var Nh=d(()=>{mJ();NZ();iO()});var fj=()=>{};var q1=jY((UG0,yj)=>{(function(){function $(J0,S0){Object.defineProperty(X.prototype,J0,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",S0[0],S0[1])}})}function Z(J0){if(J0===null||typeof J0!=="object")return null;return J0=D0&&J0[D0]||J0["@@iterator"],typeof J0==="function"?J0:null}function J(J0,S0){J0=(J0=J0.constructor)&&(J0.displayName||J0.name)||"ReactClass";var Z1=J0+"."+S0;u0[Z1]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",S0,J0),u0[Z1]=!0)}function X(J0,S0,Z1){this.props=J0,this.context=S0,this.refs=W1,this.updater=Z1||j0}function z(){}function G(J0,S0,Z1){this.props=J0,this.context=S0,this.refs=W1,this.updater=Z1||j0}function W(){}function H(J0){return""+J0}function U(J0){try{H(J0);var S0=!1}catch(n1){S0=!0}if(S0){S0=console;var Z1=S0.error,U1=typeof Symbol==="function"&&Symbol.toStringTag&&J0[Symbol.toStringTag]||J0.constructor.name||"Object";return Z1.call(S0,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",U1),H(J0)}}function B(J0){if(J0==null)return null;if(typeof J0==="function")return J0.$$typeof===c0?null:J0.displayName||J0.name||null;if(typeof J0==="string")return J0;switch(J0){case i:return"Fragment";case n:return"Profiler";case l:return"StrictMode";case $0:return"Suspense";case O0:return"SuspenseList";case b0:return"Activity"}if(typeof J0==="object")switch(typeof J0.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),J0.$$typeof){case k:return"Portal";case Z0:return J0.displayName||"Context";case Y0:return(J0._context.displayName||"Context")+".Consumer";case a:var S0=J0.render;return J0=J0.displayName,J0||(J0=S0.displayName||S0.name||"",J0=J0!==""?"ForwardRef("+J0+")":"ForwardRef"),J0;case Q0:return S0=J0.displayName||null,S0!==null?S0:B(J0.type)||"Memo";case w0:S0=J0._payload,J0=J0._init;try{return B(J0(S0))}catch(Z1){}}return null}function M(J0){if(J0===i)return"<>";if(typeof J0==="object"&&J0!==null&&J0.$$typeof===w0)return"<...>";try{var S0=B(J0);return S0?"<"+S0+">":"<...>"}catch(Z1){return"<...>"}}function O(){var J0=X1.A;return J0===null?null:J0.getOwner()}function L(){return Error("react-stack-top-frame")}function j(J0){if(u1.call(J0,"key")){var S0=Object.getOwnPropertyDescriptor(J0,"key").get;if(S0&&S0.isReactWarning)return!1}return J0.key!==void 0}function A(J0,S0){function Z1(){B$||(B$=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",S0))}Z1.isReactWarning=!0,Object.defineProperty(J0,"key",{get:Z1,configurable:!0})}function C(){var J0=B(this.type);return s5[J0]||(s5[J0]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),J0=this.props.ref,J0!==void 0?J0:null}function _(J0,S0,Z1,U1,n1,x$){var P$=Z1.ref;return J0={$$typeof:W0,type:J0,key:S0,props:Z1,_owner:U1},(P$!==void 0?P$:null)!==null?Object.defineProperty(J0,"ref",{enumerable:!1,get:C}):Object.defineProperty(J0,"ref",{enumerable:!1,value:null}),J0._store={},Object.defineProperty(J0._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(J0,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(J0,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:n1}),Object.defineProperty(J0,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:x$}),Object.freeze&&(Object.freeze(J0.props),Object.freeze(J0)),J0}function b(J0,S0){return S0=_(J0.type,S0,J0.props,J0._owner,J0._debugStack,J0._debugTask),J0._store&&(S0._store.validated=J0._store.validated),S0}function E(J0){I(J0)?J0._store&&(J0._store.validated=1):typeof J0==="object"&&J0!==null&&J0.$$typeof===w0&&(J0._payload.status==="fulfilled"?I(J0._payload.value)&&J0._payload.value._store&&(J0._payload.value._store.validated=1):J0._store&&(J0._store.validated=1))}function I(J0){return typeof J0==="object"&&J0!==null&&J0.$$typeof===W0}function T(J0){var S0={"=":"=0",":":"=2"};return"$"+J0.replace(/[=:]/g,function(Z1){return S0[Z1]})}function w(J0,S0){return typeof J0==="object"&&J0!==null&&J0.key!=null?(U(J0.key),T(""+J0.key)):S0.toString(36)}function y(J0){switch(J0.status){case"fulfilled":return J0.value;case"rejected":throw J0.reason;default:switch(typeof J0.status==="string"?J0.then(W,W):(J0.status="pending",J0.then(function(S0){J0.status==="pending"&&(J0.status="fulfilled",J0.value=S0)},function(S0){J0.status==="pending"&&(J0.status="rejected",J0.reason=S0)})),J0.status){case"fulfilled":return J0.value;case"rejected":throw J0.reason}}throw J0}function f(J0,S0,Z1,U1,n1){var x$=typeof J0;if(x$==="undefined"||x$==="boolean")J0=null;var P$=!1;if(J0===null)P$=!0;else switch(x$){case"bigint":case"string":case"number":P$=!0;break;case"object":switch(J0.$$typeof){case W0:case k:P$=!0;break;case w0:return P$=J0._init,f(P$(J0._payload),S0,Z1,U1,n1)}}if(P$){P$=J0,n1=n1(P$);var K4=U1===""?"."+w(P$,0):U1;return L0(n1)?(Z1="",K4!=null&&(Z1=K4.replace(PX,"$&/")+"/"),f(n1,S0,Z1,"",function(y7){return y7})):n1!=null&&(I(n1)&&(n1.key!=null&&(P$&&P$.key===n1.key||U(n1.key)),Z1=b(n1,Z1+(n1.key==null||P$&&P$.key===n1.key?"":(""+n1.key).replace(PX,"$&/")+"/")+K4),U1!==""&&P$!=null&&I(P$)&&P$.key==null&&P$._store&&!P$._store.validated&&(Z1._store.validated=2),n1=Z1),S0.push(n1)),1}if(P$=0,K4=U1===""?".":U1+":",L0(J0))for(var g$=0;g$<J0.length;g$++)U1=J0[g$],x$=K4+w(U1,g$),P$+=f(U1,S0,Z1,x$,n1);else if(g$=Z(J0),typeof g$==="function")for(g$===J0.entries&&(t8||console.warn("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),t8=!0),J0=g$.call(J0),g$=0;!(U1=J0.next()).done;)U1=U1.value,x$=K4+w(U1,g$++),P$+=f(U1,S0,Z1,x$,n1);else if(x$==="object"){if(typeof J0.then==="function")return f(y(J0),S0,Z1,U1,n1);throw S0=String(J0),Error("Objects are not valid as a React child (found: "+(S0==="[object Object]"?"object with keys {"+Object.keys(J0).join(", ")+"}":S0)+"). If you meant to render a collection of children, use an array instead.")}return P$}function h(J0,S0,Z1){if(J0==null)return J0;var U1=[],n1=0;return f(J0,U1,"","",function(x$){return S0.call(Z1,x$,n1++)}),U1}function p(J0){if(J0._status===-1){var S0=J0._ioInfo;S0!=null&&(S0.start=S0.end=performance.now()),S0=J0._result;var Z1=S0();if(Z1.then(function(n1){if(J0._status===0||J0._status===-1){J0._status=1,J0._result=n1;var x$=J0._ioInfo;x$!=null&&(x$.end=performance.now()),Z1.status===void 0&&(Z1.status="fulfilled",Z1.value=n1)}},function(n1){if(J0._status===0||J0._status===-1){J0._status=2,J0._result=n1;var x$=J0._ioInfo;x$!=null&&(x$.end=performance.now()),Z1.status===void 0&&(Z1.status="rejected",Z1.reason=n1)}}),S0=J0._ioInfo,S0!=null){S0.value=Z1;var U1=Z1.displayName;typeof U1==="string"&&(S0.name=U1)}J0._status===-1&&(J0._status=0,J0._result=Z1)}if(J0._status===1)return S0=J0._result,S0===void 0&&console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
321
321
 
322
322
  Your code should look like:
323
323
  const MyComponent = lazy(() => import('./MyComponent'))
@@ -718,7 +718,7 @@ mutation($repositoryId: ID!, $categoryId: ID!, $title: String!, $body: String!)
718
718
  `:"")}function on($,Z){for(let J of o4(Z).plugins){if(!J.enabled)continue;let X;try{X=Q6(J.root).manifest}catch{continue}for(let z of X.fileHandlers)try{if(new RegExp(z.pattern,"i").test($))return{qualifiedAction:dO(J.id,z.action)}}catch{}}return null}var JE=d(()=>{mJ();MZ();NZ()});import{closeSync as yU0,openSync as gU0,readFileSync as bU0,readSync as vU0,statSync as kU0}from"fs";function mU0($){if(!$)return null;let Z=$.trimEnd().split(`
719
719
  `);for(let J=Z.length-1;J>=0;J--){let X=Z[J]?.trim();if(!X)continue;let z;try{z=JSON.parse(X)}catch{continue}if(typeof z.at!=="number")continue;let G=typeof z.exitCode==="number"?z.exitCode:null,W=typeof z.spawnError==="string"?z.spawnError:void 0;return{at:z.at,label:typeof z.label==="string"?z.label:typeof z.kind==="string"?z.kind:"run",exitCode:G,ok:W===void 0&&G===0,...W?{spawnError:W}:{}}}return null}function hU0($,Z,J,X,z={}){let G=null,W=[];if(J!==null)try{let{manifest:H}=tK(J);G={actions:H.actions.length,events:H.events.length,panes:H.panes.length},W=vn(H.settings,z)}catch{G=null}return{id:Z.id,version:Z.version,enabled:Z.enabled,linked:Z.source.kind==="link",source:Z.source.kind==="link"?Z.root:Z.source.spec,declares:G,lastRun:mU0(X),settings:W,updateAvailable:$.has(Z.id)}}function an($){let Z=Math.max(0,Math.floor($/1000));if(Z<60)return`${Z}s`;if(Z<3600)return`${Math.floor(Z/60)}m`;if(Z<86400)return`${Math.floor(Z/3600)}h`;return`${Math.floor(Z/86400)}d`}function cU0($){let Z;try{let J=kU0($).size,X=Math.min(J,uU0),z=Buffer.alloc(X);return Z=gU0($,"r"),vU0(Z,z,0,X,J-X),z.toString("utf8")}catch{return null}finally{if(Z!==void 0)yU0(Z)}}function dU0($){if(!$)return null;try{return bU0($,"utf8")}catch{return null}}function oV($){let Z=new Set(cn($));return o4($).plugins.map((J)=>hU0(Z,J,dU0(lH(J.root)),cU0(iH(J.id,$)),pn(J.id,$)))}function rn($,Z,J,X){nn($,{[Z]:J},X)}function sn($,Z,J){let X=o4(J);LZ({plugins:X.plugins.map((z)=>z.id===$?{...z,enabled:Z}:z)},J)}var uU0=65536;var XE=d(()=>{mJ();ZE();MZ();NZ();JE()});import{TextAttributes as tn}from"@opentui/core";function lU0($){let Z=[],J=0;for(let X of $)Z.push(J),J+=1+X.settings.length;return Z}function pU0($){let{theme:Z}=d0(),J=e0(),{setting:X}=$,z=X.type==="boolean"?iV(X.value)?J("settings.general.on"):J("settings.general.off"):X.value||J("settings.plugins.settingUnset");return R.jsxDEV("box",{flexDirection:"row",gap:1,paddingLeft:5,paddingRight:1,backgroundColor:$.cursor?Z.primary:void 0,onMouseUp:$.onActivate,children:[R.jsxDEV("text",{fg:$.cursor?Z.selectedListItemText:Z.text,wrapMode:"none",children:X.label},void 0,!1,void 0,this),R.jsxDEV("text",{fg:$.cursor?Z.selectedListItemText:X.defaulted?Z.textMuted:Z.accent,wrapMode:"none",children:z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function en($){let{theme:Z}=d0(),J=e0(),X=Date.now(),z=(W)=>$.level==="body"&&$.bodyRow===W,G=lU0($.plugins);return R.jsxDEV("box",{flexDirection:"column",gap:1,children:[R.jsxDEV("text",{fg:Z.text,attributes:tn.BOLD,children:J("settings.plugins.title")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:J("settings.plugins.hint")},void 0,!1,void 0,this),$.plugins.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:J("settings.plugins.empty")},void 0,!1,void 0,this):R.jsxDEV("box",{flexDirection:"column",gap:0,children:$.plugins.map((W,H)=>{let U=G[H]??0,B=z(U);return R.jsxDEV("box",{flexDirection:"column",gap:0,children:[R.jsxDEV("box",{flexDirection:"row",gap:1,paddingLeft:1,paddingRight:1,backgroundColor:B?Z.primary:void 0,onMouseUp:()=>{$.setLevel("body"),$.setBodyRow(U),$.toggle(W.id)},children:[R.jsxDEV("text",{fg:B?Z.selectedListItemText:W.enabled?Z.accent:Z.textMuted,attributes:tn.BOLD,wrapMode:"none",children:`${W.enabled?"[x]":"[ ]"} ${W.id}`},void 0,!1,void 0,this),R.jsxDEV("text",{fg:B?Z.selectedListItemText:Z.textMuted,wrapMode:"none",children:`v${W.version} ${W.linked?J("settings.plugins.sourceLink",{path:W.source}):J("settings.plugins.sourceGithub",{spec:W.source})}`},void 0,!1,void 0,this),W.updateAvailable?R.jsxDEV("text",{fg:Z.warning,wrapMode:"none",children:J("settings.plugins.updateAvailable")},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",gap:1,paddingLeft:5,paddingRight:1,children:[R.jsxDEV("text",{fg:W.declares?Z.textMuted:Z.warning,wrapMode:"none",children:W.declares?J("settings.plugins.declares",{actions:String(W.declares.actions),events:String(W.declares.events),panes:String(W.declares.panes)}):J("settings.plugins.manifestUnreadable")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:W.lastRun?.ok===!1?Z.error:Z.textMuted,wrapMode:"none",children:W.lastRun?J("settings.plugins.lastRun",{label:W.lastRun.label,status:W.lastRun.ok?J("settings.plugins.runOk"):W.lastRun.spawnError?J("settings.plugins.runFailed"):J("settings.plugins.runExit",{code:String(W.lastRun.exitCode)}),ago:an(X-W.lastRun.at)}):J("settings.plugins.neverRun")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W.settings.map((M,O)=>R.jsxDEV(pU0,{setting:M,cursor:z(U+1+O),onActivate:()=>{$.setLevel("body"),$.setBodyRow(U+1+O),$.editSetting(W.id,M.key)}},M.key,!1,void 0,this))]},W.id,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var $i=d(async()=>{X$();XE();a0();await Z$()});function sV($){return`engineProtocol.${$}`}function aV($){if(p5($))return $;let Z=x5(sV($))?.trim();return Z&&rV.includes(Z)?Z:void 0}function QE($){return p5($)||x2().includes($)}function nU0(){return[...Z9,...x2()]}function iU0($){let J=x5(H8($))?.trim()||oQ($).join(" ");return{id:$,name:y5($),command:J,protocol:aV($)??WG,builtin:p5($)}}function Zi(){return nU0().map(iU0)}function eQ($){let Z=$?.trim();if(!Z)return WG;if(QE(Z))return aV(Z)??WG;let J=aj(Z);if(J)return J;let X=Sq(Z)[0];if(X)for(let z of x2()){let G=x5(H8(z))?.trim();if(G&&Sq(G)[0]===X)return aV(z)??WG}return WG}function F2($){let Z=$.command?.trim();if(!Z)return Iq($.vendor,$.effort);let J=(QE(Z)?aV(Z):void 0)??eQ(Z),X=QE(Z)?oU0(Z):(()=>{let z=Sq(Z);return z.length>0?z:null})();if(!X)return Iq($.vendor,$.effort);return vI(kI(X,J,$.effort),J)}function oU0($){let Z=x5(H8($))?.trim();if(Z){let J=Sq(Z);if(J.length>0)return J}return oQ($)}var WG="generic",rV;var N9=d(()=>{C4();P7();DZ();L7();rV=Z9});import{TextAttributes as aU0}from"@opentui/core";function rU0($){let Z=o$(),{theme:J}=d0(),X=e0(),z=M7(),[G,W]=Ji.useState($.currentTitle);function H(){let U=G.trim();if(vF(U)&&!$.allowEmpty)return;$.onSubmit(U),Z.clear()}return R.jsxDEV("box",{paddingLeft:z,paddingRight:z,gap:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{attributes:aU0.BOLD,fg:J.text,children:$.dialogTitle??X("common.rename.defaultTitle")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:J.textMuted,onMouseUp:()=>$.onCancel(),children:"esc"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{fg:J.accent,children:$.fieldLabel??X("common.rename.defaultFieldLabel")},void 0,!1,void 0,this),R.jsxDEV("input",{value:G,placeholder:$.placeholder??$.currentTitle,focused:!0,onInput:(U)=>W(r5(U)),onSubmit:()=>H()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,children:X("common.rename.footerHint",{submitLabel:$.submitLabel??X("common.rename.defaultSubmitLabel")})},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function sU0($,Z,J={}){return k2($,(X)=>R.jsxDEV(rU0,{currentTitle:Z,dialogTitle:J.dialogTitle,fieldLabel:J.fieldLabel,submitLabel:J.submitLabel,placeholder:J.placeholder,allowEmpty:J.allowEmpty,onSubmit:(z)=>X(z),onCancel:()=>X(void 0)},void 0,!1,void 0,this))}var Ji,g5;var QX=d(async()=>{p8();X$();a0();await J$([Z$(),C5()]);Ji=z1(q1(),1);g5={show:sU0}});function Qi($,Z,J){function X(){let E=$.get("customEngineIds",[]);return Array.isArray(E)?E.filter((I)=>typeof I==="string"&&I.trim().length>0):[]}function z(){return[...m8,...X()]}function G(E){let I=$.get(H8(E),"");return typeof I==="string"?I.trim():""}function W(E){return G(E)||oQ(E).join(" ")}function H(E){return p5(E)&&G(E).length===0&&!B(E)}function U(E){let I=$.get(F9(E),"");return typeof I==="string"?I.trim():""}function B(E){return U(E).length>0}function M(E){return U(E)||F$(E).displayName}let[O,L]=Xi.useState(()=>IO()??b4);function j(E){BR(E),$.set("defaultVendor",E),L(E)}async function A(E){let I=await g5.show(Z,W(E),{dialogTitle:`${M(E)} launch command`,fieldLabel:"command",submitLabel:"save",allowEmpty:!0});if(I===void 0)return;$.set(H8(E),I.trim())}async function C(E){let I=await g5.show(Z,M(E),{dialogTitle:`${M(E)} display name (blank = default)`,fieldLabel:"name",submitLabel:"save",allowEmpty:!0});if(I===void 0)return;$.set(F9(E),I.trim())}function _(E){if($.set(H8(E),""),$.set(F9(E),""),!p5(E))$.set(sV(E),""),$.set("customEngineIds",X().filter((I)=>I!==E)),J(z().length)}async function b(){let E=await g5.show(Z,"",{dialogTitle:"Add engine",fieldLabel:"id",submitLabel:"next",placeholder:"lowercase slug, e.g. aider"});if(E===void 0)return;let I=E.trim().toLowerCase();if(!I||p5(I)||X().includes(I))return;let T=await g5.show(Z,"",{dialogTitle:`Add engine \xB7 ${I}`,fieldLabel:"command",submitLabel:"next",placeholder:"e.g. aider --model sonnet"});if(T===void 0)return;let w=await g5.show(Z,"",{dialogTitle:`Add engine \xB7 ${I} \u2014 protocol (blank = none)`,fieldLabel:"protocol",submitLabel:"next",allowEmpty:!0,placeholder:rV.join(" / ")}),y=await g5.show(Z,I,{dialogTitle:`Add engine \xB7 ${I}`,fieldLabel:"name",submitLabel:"add",allowEmpty:!0});if($.set("customEngineIds",[...X(),I]),T.trim())$.set(H8(I),T.trim());let f=w?.trim().toLowerCase()??"";if(f&&rV.includes(f))$.set(sV(I),f);let h=y?.trim()??"";$.set(F9(I),h&&h!==I?h:Pp(I))}return{engineList:z,engineName:M,engineCommandText:W,engineIsDefault:H,defaultEngine:O,setEngineDefault:j,editEngine:A,renameEngine:C,resetEngine:_,addEngineFlow:b}}var Xi;var zi=d(async()=>{N9();L7();F7();yJ();EF();U2();P7();await QX();Xi=z1(q1(),1)});function Yi($){let[Z,J]=O9.useState(null),[X,z]=O9.useState(null),[G,W]=O9.useState(null),[H,U]=O9.useState(null),B=O9.useRef(!1);return O9.useEffect(()=>{if($!=="accounts"||B.current)return;B.current=!0,aH().then(J),rH().then(z),sH().then(W),$j().then(U)},[$]),{claude:Z,codex:X,copilot:G,kimi:H}}function Gi($,Z){let[J,X]=O9.useState([]),z=e0();O9.useEffect(()=>{if($!=="plugins")return;X(oV())},[$]);function G(W,H,U){try{rn(W,H,U)}catch{}X(oV())}return{rows:J,toggle:(W)=>{let H=J.find((U)=>U.id===W);if(!H)return;try{sn(W,!H.enabled)}catch{}X(oV())},editSetting:async(W,H)=>{let U=J.find((O)=>O.id===W)?.settings.find((O)=>O.key===H);if(!U)return;if(U.type==="enum"){G(W,H,kn(U.options,U.value));return}if(U.type==="boolean"){G(W,H,mn(U));return}let B=await g5.show(Z,U.value,{dialogTitle:U.label,fieldLabel:H,submitLabel:"save",allowEmpty:!0,placeholder:U.defaultValue});if(B===void 0)return;if(U.type!=="number"){G(W,H,B.trim());return}let M=hn(B);if(M===null){await O4.show(Z,z("settings.plugins.settingInvalidTitle"),z("settings.plugins.settingInvalidBody",{label:U.label}),"cancel");return}G(W,H,M)}}}var O9;var Wi=d(async()=>{cJ();X$();XE();await J$([TZ(),QX()]);O9=z1(q1(),1)});var zE="experimental.archivedHistoryPreview";var Hi=d(()=>{w2()});function eV($,Z){if(typeof $==="string"&&hF.includes($))return $;if(Z===!0)return"multipleOnly";if(Z===!1)return"always";return"never"}function qi($,Z){if($==="never")return!1;if($==="multipleOnly")return Z>=2;return!0}var mF="chat.tabStrip.mode",hF,tV="chat.tabStrip.hideSingle";var YE=d(()=>{hF=["always","multipleOnly","never"]});var GE="zen.keepTasks",xq="zen.active";var WE=d(()=>{w2()});function fq($){return HG.includes($)?$:"auto"}var HG,Ui,zX="editor.kind",$z="editor.customCommand",$_="auto";var Z_=d(()=>{HG=["auto","vim","nvim","nano","emacs","custom"],Ui=["nvim","vim","emacs","nano"]});import{accessSync as tU0,constants as eU0,mkdirSync as $B0}from"fs";function Bi($,Z){let J=e0();function X(){return $.get("notifications.toast.enabled",!0)!==!1}function z(){return $.get("notifications.sound.enabled",!0)!==!1}function G(){$.set("notifications.toast.enabled",!X())}function W(){$.set("notifications.sound.enabled",!z())}function H(){return $.get("notifications.crossTask.enabled",!0)!==!1}function U(){$.set("notifications.crossTask.enabled",!H())}function B(){return DV($.get(SF))}function M(n){$.set(SF,n)}function O(){return $.get(xq,!1)===!0}function L(){$.set(xq,!O())}function j(){return $.get(GE,!0)!==!1}function A(){$.set(GE,!j())}function C(){return eV($.get(mF,void 0),$.get(tV,void 0))}function _(){let n=hF[(hF.indexOf(C())+1)%hF.length];$.set(mF,n)}function b(){return $.get("experimental.remoteProjects",!1)===!0}function E(){$.set("experimental.remoteProjects",!b())}function I(){return $.get(XG,!1)===!0}function T(){$.set(XG,!I())}function w(){return $.get(QG,!1)===!0}function y(){$.set(QG,!w())}function f(){return $.get(zE,!1)===!0}function h(){$.set(zE,!f())}function p(){return fq($.get(zX,$_))}function m(){let n=HG.indexOf(p()),Y0=HG[(n+1)%HG.length];if(Y0)$.set(zX,Y0)}function t(){let n=$.get($z,"");return typeof n==="string"?n:""}async function s(){let n=await g5.show(Z,t(),{dialogTitle:"Custom editor command (use {file} for the path)",fieldLabel:"command",submitLabel:"save",allowEmpty:!0});if(n===void 0)return;let Y0=n.trim();if($.set($z,Y0),Y0)$.set(zX,"custom")}function G0(){return WV($.get(YV,GV))}async function U0(){let n=await g5.show(Z,String(G0()),{dialogTitle:J("settings.general.scrollbackTitle"),fieldLabel:J("settings.general.scrollbackField"),submitLabel:"save",placeholder:String(GV)});if(n===void 0)return;let Y0=Number.parseInt(n.trim(),10);if(!Number.isFinite(Y0)){await O4.show(Z,J("settings.general.scrollbackInvalidTitle"),J("settings.general.scrollbackInvalidBody"),"cancel");return}$.set(YV,WV(Y0))}function F0(){let n=$.get(SQ,"");return typeof n==="string"?n:""}let B0=()=>wb(F0());function W0(){let n=B0();if(n==="default")return J("settings.general.worktreeKindDefault");if(n==="nextToProject")return J("settings.general.worktreeKindNext");return J("settings.general.worktreeKindCustom")}function k(){let n=$.get(PO,"");return(typeof n==="string"?n.trim():"")||(B0()==="custom"?F0().trim():"")}function i(){let n=B0();if(n==="default")$.set(SQ,eP);else if(n==="nextToProject")$.set(SQ,k());else $.set(PO,F0().trim()),$.set(SQ,"")}async function l(){let n=await g5.show(Z,k(),{dialogTitle:J("settings.general.worktreeBaseTitle"),fieldLabel:J("settings.general.worktreeBaseField"),submitLabel:"save",placeholder:`${wJ}/../worktrees`,allowEmpty:!0});if(n===void 0)return;let Y0=n.trim();if(Y0.includes(wJ)){if(!$R(Y0)){await O4.show(Z,"Can't use that worktree location",`${wJ} only expands as the leading path segment (e.g. ${wJ}/../kobe-worktrees). Keeping the previous setting.`,"cancel");return}}else if(Y0){let Z0=ZR(Y0)??Y0;try{$B0(Z0,{recursive:!0}),tU0(Z0,eU0.W_OK)}catch(a){await O4.show(Z,"Can't use that worktree location",`${Z0} isn't usable (${M1(a)}). Keeping the previous setting \u2014 pick a writable directory.`,"cancel");return}}if($.set(PO,Y0),Y0)$.set(SQ,Y0);else if(B0()==="custom")$.set(SQ,"")}return{toastEnabled:X,toggleToast:G,soundEnabled:z,toggleSound:W,crossTaskEnabled:H,toggleCrossTask:U,splitStyle:B,selectSplitStyle:M,zenDefaultOn:O,toggleZenDefaultOn:L,zenKeepsTasks:j,toggleZenKeepsTasks:A,remoteProjectsEnabled:b,toggleRemoteProjects:E,autoStatusOn:I,toggleAutoStatus:T,dispatcherOn:w,toggleDispatcher:y,archivedHistoryOn:f,toggleArchivedHistory:h,editorKind:p,cycleEditorKind:m,editorCustomCommand:t,editEditorCustom:s,scrollbackRows:G0,editScrollbackRows:U0,tabStripMode:C,cycleTabStripMode:_,worktreeKind:B0,worktreeKindLabel:W0,worktreeCustomPath:k,cycleWorktreeBase:i,editWorktreeCustom:l}}var Ki=d(async()=>{Hi();bF();kV();mS();IF();YE();JR();WE();Z_();X$();await J$([TZ(),QX()])});import{TextAttributes as ZB0}from"@opentui/core";function J_($){let Z=o$(),J=d0(),X=N4(),{theme:z}=J,G=e0(),W=M7(),[H,U]=n8.useState("sidebar"),[B,M]=n8.useState("general"),[O,L]=n8.useState(0),[j,A]=n8.useState(0),[C,_]=n8.useState(""),[b,E]=n8.useState(""),[I,T]=n8.useState(""),w=n8.useMemo(()=>J.all().slice().sort(),[J]),y=yF($.orchestrator),f=Bi($.kv,Z),h=Qi($.kv,Z,(j0)=>A((l0)=>Math.max(0,Math.min(l0,j0)))),p=$.orchestrator instanceof iJ?$.orchestrator:null,m=J4(p?p.usageSnapshotSignal():JB0),t=Yi(B),s=Gi(B,Z);function G0(){return Ap(B,{themeNames:w,focusAccentSlots:lQ,engineList:h.engineList(),plugins:s.rows.map((j0)=>({id:j0.id,settingKeys:j0.settings.map((l0)=>l0.key)})),hasDaemon:y})}function U0(){return G0().length}function F0(j0){if(J.selected===j0)return;if(!J.set(j0))return;$.kv.set("activeTheme",j0),$.onVisualPrefsChange?.()}function B0(j0){if(_V()===j0)return;Aq(j0),$.kv.set(IV,j0),$.onVisualPrefsChange?.()}function W0(){let j0=!J.transparentBackground;J.setTransparentBackground(j0),$.kv.set("transparentBackground",j0),$.onVisualPrefsChange?.()}function k(j0){if(J.focusAccent===j0)return;J.setFocusAccent(j0),$.kv.set("focusAccent",j0),$.onVisualPrefsChange?.()}function i(){if(B!=="engines"||H!=="body")return null;let j0=TI(G0(),j);return j0?.kind==="engine"?j0.vendor:null}async function l(){T("submitting...");try{let j0=Pq({title:C,body:b});T(`sent: ${j0.url}`),_(""),E(""),A(0)}catch(j0){T(`error: ${M1(j0)}`)}}let n=B==="feedback"&&H==="body";function Y0(j0){let l0=j+j0;if(l0<0||l0>2){U("sidebar");return}A(l0)}function Z0(){if(H!=="sidebar"||U0()===0)return;U("body"),A(0)}function a(j0){if(H==="sidebar"){let W1=(O+j0+ZG.length)%ZG.length;L(W1);let R1=ZG[W1];if(R1)M(R1.id),A(0);return}let l0=U0();if(l0===0)return;A((j+j0+l0)%l0)}function $0(j0){M(j0),L(ZG.findIndex((l0)=>l0.id===j0)),A(0),U("sidebar")}let O0={theme:(j0)=>F0(j0.name),language:(j0)=>B0(j0.locale),transparent:()=>W0(),focusAccent:(j0)=>k(j0.slot),toast:()=>f.toggleToast(),sound:()=>f.toggleSound(),crossTask:()=>f.toggleCrossTask(),keyHints:()=>SV($.kv),splitStyle:(j0)=>f.selectSplitStyle(j0.style),zenDefaultOn:()=>f.toggleZenDefaultOn(),zenKeepTasks:()=>f.toggleZenKeepsTasks(),editorKind:()=>f.cycleEditorKind(),editorCustom:()=>void f.editEditorCustom(),worktreeBase:()=>f.cycleWorktreeBase(),worktreeCustom:()=>void f.editWorktreeCustom(),scrollbackRows:()=>void f.editScrollbackRows(),tabStripHideSingle:()=>f.cycleTabStripMode(),engine:(j0)=>void h.editEngine(j0.vendor),engineAdd:()=>void h.addEngineFlow(),pluginToggle:(j0)=>s.toggle(j0.pluginId),pluginSetting:(j0)=>void s.editSetting(j0.pluginId,j0.key),feedbackTitle:()=>A(0),feedbackBody:()=>A(1),feedbackSend:()=>void l(),devReset:()=>void yI(Z,$.kv,X),devRestartDaemon:()=>void gI(Z,$.orchestrator,X),devRemoteProjects:()=>f.toggleRemoteProjects(),devAutoStatus:()=>f.toggleAutoStatus(),devDispatcher:()=>f.toggleDispatcher(),devArchivedHistory:()=>f.toggleArchivedHistory()};function Q0(){let j0=TI(G0(),j);if(!j0)return;O0[j0.kind](j0)}b1(()=>({enabled:(!$.standalone||Z.stack.length===0)&&!n,bindings:[{key:"down",cmd:()=>a(1)},{key:"up",cmd:()=>a(-1)},{key:"j",cmd:()=>a(1)},{key:"k",cmd:()=>a(-1)},{key:"tab",cmd:()=>a(1)},{key:"right",cmd:Z0},{key:"l",cmd:Z0},{key:"left",cmd:()=>U("sidebar")},{key:"h",cmd:()=>U("sidebar")},{key:"return",cmd:()=>{if(H==="sidebar"){Z0();return}Q0()}},{key:"t",cmd:W0},{key:"r",cmd:()=>{let j0=i();if(j0)h.renameEngine(j0)}},{key:"x",cmd:()=>{let j0=i();if(j0)h.resetEngine(j0)}},{key:"d",cmd:()=>{let j0=i();if(j0)h.setEngineDefault(j0)}}]})),b1(()=>({enabled:n,bindings:[{key:"tab",cmd:()=>Y0(1)},{key:"shift+tab",cmd:()=>Y0(-1)}]})),b1(()=>({enabled:n&&j===2,bindings:[{key:"return",cmd:()=>void l()}]}));let w0=n8.useRef(null),b0=n8.useCallback((j0)=>{let l0=w0.current;if(!l0||!j0||l0.viewport.height<=0)return;l0.scrollChildIntoView(j0.id)},[]),D0={level:H,bodyRow:j,setLevel:U,setBodyRow:A},u0=R.jsxDEV("box",{paddingLeft:W,paddingRight:W,paddingBottom:1,gap:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{attributes:ZB0.BOLD,fg:z.text,children:G("settings.title")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:z.textMuted,onMouseUp:()=>$.onClose(),children:G("settings.esc")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",gap:2,children:[R.jsxDEV(Wn,{level:H,cursor:O,switchSection:$0},void 0,!1,void 0,this),R.jsxDEV("box",{flexGrow:1,flexShrink:1,flexDirection:"column",gap:1,children:[B==="general"?R.jsxDEV(Hn,{...D0,prefs:f,themeNames:w,selectTheme:F0,currentLocale:_V(),selectLanguage:B0,toggleTransparent:W0,selectFocusAccent:k,usage:m},void 0,!1,void 0,this):null,B==="engines"?R.jsxDEV(np,{...D0,vendors:h.engineList(),isCustom:(j0)=>!p5(j0),displayName:h.engineName,commandText:h.engineCommandText,isDefault:h.engineIsDefault,isDefaultEngine:(j0)=>h.defaultEngine===j0,editEngine:(j0)=>void h.editEngine(j0),onAddEngine:()=>void h.addEngineFlow()},void 0,!1,void 0,this):null,B==="accounts"?R.jsxDEV(ip,{claudeStatus:t.claude,codexStatus:t.codex,copilotStatus:t.copilot,kimiStatus:t.kimi},void 0,!1,void 0,this):null,B==="plugins"?R.jsxDEV(en,{...D0,plugins:s.rows,toggle:s.toggle,editSetting:(j0,l0)=>void s.editSetting(j0,l0)},void 0,!1,void 0,this):null,B==="keys"?R.jsxDEV(gn,{},void 0,!1,void 0,this):null,B==="feedback"?R.jsxDEV(fn,{...D0,title:C,setTitle:(j0)=>{_(j0),T("")},body:b,setBody:(j0)=>{E(j0),T("")},status:I,onTitleSubmit:()=>A(1),submit:()=>void l()},void 0,!1,void 0,this):null,B==="dev"?R.jsxDEV(yn,{...D0,prefs:f,hasDaemon:y,confirmReset:()=>void yI(Z,$.kv,X),confirmRestartDaemon:()=>void gI(Z,$.orchestrator,X)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{paddingTop:0,children:R.jsxDEV("text",{fg:z.textMuted,children:n?G("settings.nav.feedback"):G("settings.nav.default")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(!$.standalone)return R.jsxDEV(yV.Provider,{value:b0,children:u0},void 0,!1,void 0,this);return R.jsxDEV(yV.Provider,{value:b0,children:R.jsxDEV("scrollbox",{ref:(j0)=>{w0.current=j0},flexGrow:1,verticalScrollbarOptions:{trackOptions:{foregroundColor:"transparent"}},children:u0},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var n8,JB0;var Fi=d(async()=>{LF();UZ();TF();EF();fF();SI();P7();X$();U9();a0();await J$([v4(),Z$(),D4(),C5(),lp(),gV(),op(),qn(),bn(),$i(),zi(),Wi(),Ki()]);n8=z1(q1(),1),JB0=n$(null);J_.show=($,Z,J)=>{let X=!1;return new Promise((z)=>{$.replace(()=>R.jsxDEV(J_,{kv:Z,orchestrator:J,onVisualPrefsChange:()=>{X=!0},onClose:()=>z({visualPrefsChanged:X})},void 0,!1,void 0,this),()=>z({visualPrefsChanged:X}))})}});function Li($,Z){return`${$}:${Z}`}function Ni($,Z){let J=Li(Z.taskId,Z.tabId),X=$.get(J);if(X==="needs_input"||X==="error")return $;let z=new Map($);return z.set(J,Z.kind),z}function Oi($,Z,J){let X=Li(Z,J);if(!$.has(X))return $;let z=new Map($);return z.delete(X),z}function ji($,Z){return $==="error"||Z}function Vi($){if($==="permission_needed")return"needs_input";if($==="error"||$==="rate_limited")return"error";if($==="turn_complete")return"done";return null}function _i($){if($==="done")return"done";if($==="error")return"error";if($==="needs_input")return"needs_input";return null}function X_($,Z,J,X){if($===null)return[];let z=[];for(let[G,W]of Z){if(G===J)continue;if($.get(G)===W)continue;let H=X(W);if(H)z.push({key:G,kind:H})}return z}function XB0($){let Z="",J=0;for(let X=0;X<$.length;X++){let z=$.charCodeAt(X);if(z>31&&(z<127||z>159))continue;Z+=`${$.slice(J,X)} `,J=X+1}return J===0?$:Z+$.slice(J)}function Ci($){return`\x1B]9;${XB0($)}\x07`}var Mi=4500;var Q_="../pulse-n3cq1btw.wav";var Di=()=>{};import{existsSync as zB0,mkdirSync as YB0}from"fs";import{tmpdir as GB0}from"os";import{basename as WB0,delimiter as HB0,isAbsolute as qB0,join as HE,resolve as UB0}from"path";function KB0($,Z,J){if($==="ffplay")return[$,"-autoexit","-nodisp","-af",`volume=${J}`,Z];if($==="mpv")return[$,"--no-video","--audio-display=no","--volume",String(Math.round(J*100)),Z];if($==="mpg123"||$==="mpg321")return[$,"-g",String(Math.round(J*100)),Z];if($==="mplayer")return[$,"-vo","null","-volume",String(Math.round(J*100)),Z];if($==="afplay"||$==="omxplayer"||$==="aplay"||$==="cmdmp3")return[$,Z];if($==="play")return[$,"-v",String(J),Z];if($==="cvlc")return[$,`--gain=${J}`,"--play-and-exit",Z];return[$,"-c",`(New-Object Media.SoundPlayer '${Z.replace(/'/g,"''")}').PlaySync()`]}function FB0($,Z=HB0){return $.split(Z).filter(Boolean)}function MB0(){if(z_!==void 0)return z_;let $=FB0(process.env.PATH??"");return z_=BB0.find((Z)=>$.some((J)=>zB0(HE(J,Z))))??null,z_}async function LB0(){return Ri??=(async()=>{YB0(Pi,{recursive:!0});let $=HE(Pi,WB0(Ai)),Z=Bun.file($);if(await Z.exists())return $;return await Bun.write(Z,Bun.file(Ai)),$})(),Ri}function Ti($=0.4){let Z=MB0();if(!Z)return;LB0().then((J)=>{try{Bun.spawn(KB0(Z,J,$),{stdin:"ignore",stdout:"ignore",stderr:"ignore"}).unref?.()}catch{}}).catch(()=>{return})}var Ai,Pi,BB0,z_,Ri;var Si=d(()=>{Di();Ai=qB0(Q_)?Q_:UB0(import.meta.dir,Q_),Pi=HE(GB0(),"kobe-sfx"),BB0=["ffplay","mpv","mpg123","mpg321","mplayer","afplay","play","omxplayer","aplay","cmdmp3","cvlc","powershell.exe"]});function Ei($){let[Z,J]=x7.useState([]),[X,z]=x7.useState(new Map),G=x7.useMemo(()=>L4(),[]),W=x7.useRef(0),H=x7.useRef(new Set);x7.useEffect(()=>()=>{for(let L of H.current)clearTimeout(L);H.current.clear()},[]);let U=x7.useCallback((L)=>{J((j)=>j.filter((A)=>A.id!==L))},[]),B=x7.useCallback((L)=>{if(z((A)=>Ni(A,L)),G["notifications.sound.enabled"]!==!1){try{process.stdout.write(`\x07${Ci(`Rove \u2014 ${L.title}`)}`)}catch{}Ti()}let j=G["notifications.toast.enabled"]!==!1;if(ji(L.kind,j)){let A=++W.current;J((_)=>[..._,{id:A,...L}]);let C=setTimeout(()=>{H.current.delete(C),U(A)},Mi);H.current.add(C)}},[G,U]),M=x7.useCallback((L,j)=>{z((A)=>Oi(A,L,j))},[]),O=x7.useMemo(()=>({toasts:Z,unread:X,notify:B,dismiss:U,markRead:M}),[Z,X,B,U,M]);return R.jsxDEV(Ii.Provider,{value:O,children:$.children},void 0,!1,void 0,this)}function Zz(){let $=x7.useContext(Ii);if(!$)throw Error("useNotifications must be used within a NotificationsProvider");return $}var x7,Ii;var yq=d(()=>{w2();Si();a0();x7=z1(q1(),1),Ii=x7.createContext(null)});import{TextAttributes as wi}from"@opentui/core";function VB0($){return($.body?2:1)+1}function fi(){let{theme:$}=d0(),Z=f5(),J=Zz();if(J.toasts.length===0)return null;let X=J.toasts.slice(-NB0),z=X.reduce((H,U)=>H+VB0(U),0),G=Math.max(0,Z.width-xi-OB0),W=Math.max(0,Z.height-jB0-z);return R.jsxDEV("box",{position:"absolute",zIndex:2500,left:G,top:W,width:xi,flexDirection:"column",gap:1,children:X.map((H)=>{let U=H.kind==="needs_input"?$.warning:H.kind==="error"?$.error:$.success,B=H.kind==="needs_input"?"?":H.kind==="error"?"\u2715":"\u2713";return R.jsxDEV("box",{flexDirection:"row",backgroundColor:$.backgroundElement,onMouseUp:()=>J.dismiss(H.id),children:[R.jsxDEV("box",{flexDirection:"column",flexShrink:0,children:[R.jsxDEV("text",{fg:U,wrapMode:"none",children:"\u258C"},void 0,!1,void 0,this),H.body?R.jsxDEV("text",{fg:U,wrapMode:"none",children:"\u258C"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"column",flexBasis:0,flexGrow:1,flexShrink:1,paddingLeft:1,paddingRight:1,children:[R.jsxDEV("box",{flexDirection:"row",children:[R.jsxDEV("text",{fg:U,attributes:wi.BOLD,wrapMode:"none",flexShrink:0,children:`${B} `},void 0,!1,void 0,this),R.jsxDEV("text",{fg:$.text,attributes:wi.BOLD,wrapMode:"none",flexBasis:0,flexGrow:1,flexShrink:1,children:H.title},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H.body?R.jsxDEV("box",{flexDirection:"row",paddingLeft:2,children:R.jsxDEV("text",{fg:$.textMuted,wrapMode:"none",flexBasis:0,flexGrow:1,flexShrink:1,children:H.body},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},H.id,!0,void 0,this)})},void 0,!1,void 0,this)}var NB0=3,xi=44,OB0=2,jB0=2;var yi=d(async()=>{yq();a0();await J$([v4(),Z$()])});function gi($){let[Z,J]=H6.useState($.initial??"sidebar"),X=N4(),z=V1(Z),G=H6.useCallback((U)=>{if(z.current===U)return;let B=X?.currentFocusedRenderable;if(B&&!B.isDestroyed)try{B.blur()}catch{}J(U)},[X]),W=H6.useCallback((U)=>{let M=(Y_.indexOf(z.current)+U+Y_.length)%Y_.length;G(Y_[M])},[G]),H=H6.useMemo(()=>({focused:Z,is:(U)=>Z===U,setFocused:G,cycle:W}),[Z,G,W]);return R.jsxDEV(qE.Provider,{value:H,children:$.children},void 0,!1,void 0,this)}function G_(){let $=H6.useContext(qE);if(!$)throw Error("useFocus: must be called inside <FocusProvider>. See src/tui-react/context/focus.tsx.");return $}function bi(){return H6.useContext(qE)}var H6,Y_,qE;var uF=d(async()=>{w7();a0();await v4();H6=z1(q1(),1),Y_=["sidebar","workspace","files","terminal"],qE=H6.createContext(null)});async function vi($={}){let Z=$.logTag??"orch-connect",J=$.connect??RQ,X=null;try{let z=await J();if(!z)return TJ(Z,"no daemon running \u2014 caller degrades"),null;return X=new iJ(z,{...$.orchestratorOptions,channels:$.channels}),await X.init(),X}catch(z){return M4(Z,z),X?.dispose(),null}}var ki=d(()=>{SJ();I2();LF()});function W_($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function H_($){if(!W_($))return{ok:!1,reason:"theme must be a JSON object at the top level"};let Z=$;if(!("theme"in Z))return{ok:!1,reason:"missing required key `theme`"};let J=Z.theme;if(!W_(J))return{ok:!1,reason:"`theme` must be an object map"};if("defs"in Z&&Z.defs!==void 0){if(!W_(Z.defs))return{ok:!1,reason:"`defs` must be an object map"};for(let[X,z]of Object.entries(Z.defs))if(typeof z!=="string")return{ok:!1,reason:`defs.${X} must be a string (hex like "#abc" or a ref name)`}}for(let[X,z]of Object.entries(J)){if(typeof z==="string")continue;if(!W_(z))return{ok:!1,reason:`theme.${X} must be a string or a { dark, light } object (got ${z===null?"null":Array.isArray(z)?"array":typeof z})`};let G=z;if(typeof G.dark!=="string")return{ok:!1,reason:`theme.${X}.dark must be a string`};if(typeof G.light!=="string")return{ok:!1,reason:`theme.${X}.light must be a string`}}if("$schema"in Z&&Z.$schema!==void 0&&typeof Z.$schema!=="string")return{ok:!1,reason:"`$schema` must be a string when present"};return{ok:!0,theme:Z}}var UE=()=>{};import{readFileSync as _B0,readdirSync as CB0}from"fs";import{join as mi}from"path";function gq(){return mi(K7(),"themes")}function BE(){let $=gq(),Z;try{Z=CB0($)}catch{return[]}let J=[];for(let X of Z){if(!X.endsWith(".json"))continue;let z=mi($,X),G;try{let U=_B0(z,"utf8");G=JSON.parse(U)}catch(U){let B=M1(U);console.warn(`[rove] skipping user theme ${z}: invalid JSON \u2014 ${B}`);continue}let W=H_(G);if(!W.ok){console.warn(`[rove] skipping user theme ${z}: ${W.reason}`);continue}let H=X.slice(0,-5);J.push({name:H,theme:W.theme})}return J}var KE=d(()=>{V5();UE()});function FE($,Z){if(typeof Z.theme==="string"&&Z.theme.length>0&&Z.theme!==$.selectedTheme()){if(!$.hasTheme(Z.theme))$.reloadUserThemes();if($.hasTheme(Z.theme))$.setTheme(Z.theme)}if(typeof Z.transparentBackground==="boolean"&&Z.transparentBackground!==$.transparentBackground())$.setTransparentBackground(Z.transparentBackground);if(Z.focusAccent===null||typeof Z.focusAccent==="string"){let J=AB0(Z.focusAccent);if(J&&J!==$.focusAccent())$.setFocusAccent(J)}}function AB0($){if($===null)return"primary";return DB0.includes($)?$:null}var DB0;var hi=d(()=>{DB0=["primary","success","info"]});function RB0($,Z,J=ui,X=PB0){let z=$-J;if(z<X)return null;let G=(W)=>Math.round(W/1048576);return`event loop stalled ~${z}ms \u2014 rss=${G(Z.rss)}MB heapUsed=${G(Z.heapUsed)}MB`}function ci(){let $=Date.now(),Z=setInterval(()=>{let J=Date.now(),X=J-$;$=J;let z=RB0(X,process.memoryUsage());if(z)TJ("stall",z)},ui);return Z.unref?.(),()=>clearInterval(Z)}var ui=1000,PB0=2000;var di=d(()=>{SJ()});function li($){let Z={backgroundColor:"transparent",externalOutputMode:"passthrough",exitOnCtrlC:!1,screenMode:"alternate-screen",useKittyKeyboard:{}};return $?{...Z,onDestroy:$}:Z}function pi($,Z){let J={backgroundColor:"transparent",exitOnCtrlC:!1,screenMode:"split-footer",footerHeight:$,useKittyKeyboard:{}};return Z?{...J,onDestroy:Z}:J}function ni($){process.on("exit",()=>$.destroy())}function ii(){let $=!1,Z=()=>{if($)return;$=!0,setTimeout(()=>process.exit(0),5000)};for(let J of["SIGHUP","SIGTERM","SIGINT"])process.on(J,Z)}function oi($=5000){let Z=setInterval(()=>{if(process.ppid===1)process.exit(0)},$);return Z.unref?.(),()=>clearInterval(Z)}class ri{owner=null;anchor=null;claim($,Z){this.owner=$,this.anchor={x:Math.max(0,Math.trunc(Z.x)),y:Math.max(0,Math.trunc(Z.y))}}release($){if(this.owner!==$)return!1;return this.owner=null,this.anchor=null,!0}current(){return this.anchor}}class si{controller;pending=Buffer.alloc(0);frame=Buffer.alloc(0);constructor($){this.controller=$}push($){let Z=this.pending.length>0?Buffer.concat([this.pending,$]):$;this.pending=Buffer.alloc(0);let J=[],X=0;while(X<Z.length){if(this.frame.length===0){let B=Z.indexOf(Jz,X);if(B<0){let M=Z.subarray(X),O=ai(M,[Jz]),L=M.length-O;if(L>0)J.push(M.subarray(0,L));if(O>0)this.pending=Buffer.from(M.subarray(L));break}if(B>X)J.push(Z.subarray(X,B));this.frame=Buffer.from(Jz),X=B+Jz.length;continue}let z=Z.indexOf(q_,X),G=Z.indexOf(Jz,X);if(G>=0&&(z<0||G<z)){this.frame=Buffer.from(Jz),X=G+Jz.length;continue}if(z>=0){if(z>X)this.frame=Buffer.concat([this.frame,Z.subarray(X,z)]);J.push(this.frame);let B=this.controller.current();if(B)J.push(Buffer.from(`\x1B[${B.y+1};${B.x+1}H\x1B[?25l`));J.push(q_),this.frame=Buffer.alloc(0),X=z+q_.length;continue}let W=Z.subarray(X),H=ai(W,[Jz,q_]),U=W.length-H;if(U>0)this.frame=Buffer.concat([this.frame,W.subarray(0,U)]);if(H>0)this.pending=Buffer.from(W.subarray(U));break}return J.length>0?Buffer.concat(J):Buffer.alloc(0)}flush(){if(this.frame.length>0)return this.frame=Buffer.alloc(0),this.pending=Buffer.alloc(0),Buffer.alloc(0);let $=this.pending;return this.pending=Buffer.alloc(0),$}}function ai($,Z){let J=Math.min($.length,Math.max(...Z.map((X)=>X.length-1)));for(let X=J;X>0;X-=1){let z=$.subarray($.length-X);if(Z.some((G)=>X<G.length&&z.equals(G.subarray(0,X))))return X}return 0}function TB0($,Z){if(typeof $!=="string")return Buffer.from($);let J=typeof Z==="string"?Z:void 0;return Buffer.from($,J)}function SB0($,Z){return typeof $==="function"?$:Z}function IB0($,Z=bq){let J=new si(Z),z=(W,H,U)=>{let B=J.push(TB0(W,H)),M=SB0(H,U);if(B.length===0){if(M)queueMicrotask(()=>M(null));return!0}return M?$.write(B,M):$.write(B)};return{stdout:new Proxy($,{get(W,H){if(H==="write")return z;let U=Reflect.get(W,H,W);return typeof U==="function"?U.bind(W):U},set(W,H,U){if(H==="write")return z=U,!0;return Reflect.set(W,H,U,W)}}),flush(){let W=J.flush();if(W.length>0)$.write(W)}}}function ti($){if($.platform!=="darwin"||!$.fullscreen)return{active:!1,rendererOptions:{},attach:()=>()=>{},flush:()=>{}};let Z=IB0($.stdout,$.controller);return{active:!0,rendererOptions:{stdout:Z.stdout,remote:!1},attach:(J)=>EB0(J,$.stdout),flush:()=>Z.flush()}}function EB0($,Z,J=process){let X=()=>{let{columns:z,rows:G}=Z;if(!z||!G)return;$.resize(z,G)};return J.on("SIGWINCH",X),()=>J.removeListener("SIGWINCH",X)}var Jz,q_,bq;var ME=d(()=>{Jz=Buffer.from("\x1B[?2026h"),q_=Buffer.from("\x1B[?2026l");bq=new ri});import{createCliRenderer as wB0}from"@opentui/core";function fB0(){return cF.useEffect(()=>{let $=!1,Z=null,J=[];return(async()=>{let X=await vi({logTag:"ui-prefs",channels:["ui-prefs","keybindings"]});if(!X)return;if($){X.dispose();return}Z=X;let z=(U)=>{if(!U)return;if(FE(ei,U),Dq(U.locale))Aq(U.locale)},G=X.uiPrefsStore();z(G.get()),J.push(G.subscribe(()=>z(G.get())));let W=X.keybindingsRevStore(),H=W.get();J.push(W.subscribe(()=>{let U=W.get();if(U==null||U===H)return;let B=H===null;if(H=U,!B)wn()}))})(),()=>{$=!0;for(let X of J)X();Z?.dispose()}},[]),null}function yB0($){let{theme:Z}=d0();return cF.useEffect(()=>{M4("pane-crash",$.error)},[$.error]),R.jsxDEV("box",{flexDirection:"column",flexGrow:1,backgroundColor:Z.background,paddingLeft:1,paddingTop:1,gap:1,children:[R.jsxDEV("text",{fg:Z.error,children:W$("common.paneCrash.title")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,children:W$("common.paneCrash.hint")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}async function qG($){if($.logContext)ug($.logContext);lg(),lV();for(let{name:C,theme:_}of BE())OI(C,_);let Z=wp(xB0,_q);FE(ei,{theme:Z.theme,transparentBackground:Z.transparent,focusAccent:Z.focusAccent}),Aq(Z.locale);let J=$.providers?.kv??!1,X=$.providers?.focus??!0,z=$.providers?.notifications??!1,G=await $.setup(Z),W=ti({platform:process.platform,fullscreen:$.inlineRows===void 0,stdout:process.stdout}),H=()=>{},U=()=>{H(),W.flush(),G.onDestroy?.()},B=await wB0({...$.inlineRows!==void 0?pi($.inlineRows,U):li(U),...W.rendererOptions});H=W.attach(B);let M=R.jsxDEV(R.Fragment,{children:[R.jsxDEV(fB0,{},void 0,!1,void 0,this),R.jsxDEV($o,{children:G.root()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),L=R.jsxDEV(mp,{children:z?R.jsxDEV(Ei,{children:M},void 0,!1,void 0,this):M},void 0,!1,void 0,this),j=X?R.jsxDEV(gi,{initial:"sidebar",children:L},void 0,!1,void 0,this):L,A=J?R.jsxDEV(Zn,{children:j},void 0,!1,void 0,this):j;GS(B).render(R.jsxDEV(Hl,{mode:"dark",theme:Z.theme,children:A},void 0,!1,void 0,this)),ni(B),ii(),oi(),ci()}var cF,xB0="claude",ei,$o;var dF=d(async()=>{SJ();I2();ki();pV();KE();hi();di();ME();SI();A3();yq();X$();a0();await J$([v4(),uF(),Z$(),Z$(),C5()]);cF=z1(q1(),1),ei={selectedTheme:Jl,hasTheme:_q,setTheme:Xl,reloadUserThemes:()=>{for(let{name:$,theme:Z}of BE())OI($,Z)},transparentBackground:Ql,setTransparentBackground:zl,focusAccent:Yl,setFocusAccent:Gl};$o=class $o extends cF.Component{state={error:null};static getDerivedStateFromError($){return{error:$}}render(){if(this.state.error!==null)return R.jsxDEV(yB0,{error:this.state.error},void 0,!1,void 0,this);return this.props.children}}});import*as Zo from"fs";import*as U_ from"os";function B_($){return $.slice($.lastIndexOf("/")+1)}function IZ($){if($==="~")return U_.homedir();if($.startsWith("~/"))return U_.homedir()+$.slice(1);return $}function Jo($){if(!$)return{base:"",filter:""};let J=IZ($==="~"?"~/":$);if(J.endsWith("/"))return{base:J,filter:""};let X=J.lastIndexOf("/");if(X===-1)return{base:"",filter:J};return{base:J.slice(0,X+1),filter:J.slice(X+1)}}function Xo($){if(!$)return[];try{let Z=Zo.readdirSync($,{withFileTypes:!0}),J=[];for(let X of Z)if(X.isDirectory())J.push(X.name);return J.sort((X,z)=>X.localeCompare(z))}catch{return[]}}function Qo($,Z){let J=Z.toLowerCase(),z=J.startsWith(".")?$:$.filter((G)=>!G.startsWith("."));if(!J)return z;return z.filter((G)=>G.toLowerCase().startsWith(J))}function vq($,Z,J){let X=Z+J;if($.startsWith("~")){let z=U_.homedir();if(X===z)return"~";if(X.startsWith(`${z}/`))return`~${X.slice(z.length)}`}return X}var UG=()=>{};function zo($){return $.kind==="leaf"?0:1+Math.max(...$.children.map(zo))}function gB0($,Z,J){let X=(z)=>{if(z.kind==="leaf")return null;if(z.orientation===J&&z.children.some((G)=>G.kind==="leaf"&&G.id===Z))return z.children.length;for(let G of z.children){let W=X(G);if(W!==null)return W}return null};return X($)??1}function bB0($,Z,J){let X=Z==="row"?J.cols:J.rows,z=Z==="row"?20:6,G=gB0($.root,$.activeLeafId,Z);return Math.floor(X*G/(G+1))-1>=z}function K_($){return{root:{kind:"leaf",id:"leaf-1",content:$},activeLeafId:"leaf-1",nextOrdinal:2}}function t7($){return $.kind==="leaf"?[$]:$.children.flatMap(t7)}function lF($,Z,J,X){if(X&&!bB0($,Z,X))return $;let z={kind:"leaf",id:`leaf-${$.nextOrdinal}`,content:J},G=(H)=>{if(H.kind==="leaf"){if(H.id!==$.activeLeafId)return H;return{kind:"group",orientation:Z,children:[H,z]}}if(H.orientation===Z){let U=H.children.findIndex((B)=>B.kind==="leaf"&&B.id===$.activeLeafId);if(U>=0){let B=[...H.children.slice(0,U+1),z,...H.children.slice(U+1)];return{...H,children:B}}}return{...H,children:H.children.map(G)}},W=G($.root);if(!X&&zo(W)>4)return $;return{root:W,activeLeafId:z.id,nextOrdinal:$.nextOrdinal+1}}function F_($,Z){let J=t7($.root);if(J.length<=1)return null;let X=(B)=>{if(B.kind==="leaf")return B.id===Z?null:B;let M=B.children.map(X).filter((O)=>O!==null);if(M.length===0)return null;if(M.length===1)return M[0];return{...B,children:M}},z=X($.root);if(z===null)return null;if(t7(z).length===J.length)return $;let G=J.map((B)=>B.id),W=G.indexOf(Z),H=G[W>0?W-1:W+1],U=$.activeLeafId===Z?H:$.activeLeafId;return{...$,root:z,activeLeafId:U}}function M_($,Z,J){let X=J.trim(),z=X.length>0?X:null,G=(W)=>W.kind==="leaf"?W.id===Z?{...W,title:z}:W:{...W,children:W.children.map(G)};if(!t7($.root).some((W)=>W.id===Z))return $;return{...$,root:G($.root)}}function Yo($,Z){let J=t7($.root).map((G)=>G.id);if(J.length<=1)return $;let X=J.indexOf($.activeLeafId),z=J[(X+Z+J.length)%J.length];return{...$,activeLeafId:z}}function LE($){return!$||t7($.root).some((Z)=>Z.id==="leaf-1")}function nF($){return $?t7($.root).length>1:!1}function kq($){let Z=t7($.root);return Z.length===1&&Z[0]?.id==="leaf-1"?null:$}function P3($,Z){return Z==="leaf-1"?$:`${$}::${Z}`}function NE($,Z,J,X){let z=(H)=>{let U=(H??Z)[0]??"",B=B_(U);return B.length>0?B:"?"},G=new Map,W=new Map;for(let H of $){if(H.title){W.set(H.id,H.title);continue}let U=H.content===null?J||X?.get(H.id)||z(H.content):X?.get(H.id)||pF,B=(G.get(U)??0)+1;G.set(U,B),W.set(H.id,B===1?U:`${U} ${B}`)}return W}function vB0($){let Z=($??"").trim();if(Z.length<3)return null;if(/^[\d\s\p{P}\p{S}]+$/u.test(Z))return null;return Z}function kB0($,Z){let J=$?.trim();if(!J)return null;let X=mQ(J,Z);if(X===J&&mB0(J,Z))return null;if(Vj(X,Z))return null;return X||null}function mB0($,Z){let J=new Set(TT(Z));return[...$].every((X)=>X.trim().length===0||J.has(X))}function BG($,Z,J,X){if(J===null&&$.kind==="engine")return j9({...$,kind:"command",lastTitle:null},Z);let z=J??$.liveVendor??($.kind==="engine"?$.vendor??Z:void 0)??void 0,G=X?.trim()||$.lastTitle,W=z?kB0(G,z):G??null;if(!z||F$(z).terminalTitle?.ownsStatus!==!0)return j9({...$,lastTitle:W},Z);return j9({...$,kind:"engine",vendor:z,lastTitle:W},Z)}function hB0($,Z){return $.liveVendor??($.kind==="engine"?$.vendor:void 0)??Z}function j9($,Z,J){if($.title)return $.title;let X=$.splitTree?t7($.splitTree.root):[];if(X.length>1)return W$("terminal.tab.groupTitle",{n:$.ordinal});let z=X.length===1?X[0]:void 0;if(z&&z.id!=="leaf-1")return z.title??`${J??pF} ${$.ordinal}`;let G=hB0($,Z);if(J&&!Vj(J,G))return`${J} ${$.ordinal}`;if($.lastTitle&&!Vj($.lastTitle,G))return`${$.lastTitle} ${$.ordinal}`;let W=vB0($.autoTitle);if(W)return W;return`${$.kind==="engine"?F$($.vendor??Z).defaultCommand[0]??pF:pF} ${$.ordinal}`}function OE($,Z,J,X){if(!J||!X)return!1;if(F$(J).terminalTitle?.ownsStatus!==!0)return!1;return j9($,Z,X)===`${X} ${$.ordinal}`}var pF="shell";var jE=d(()=>{F7();RZ();UG()});import{readFileSync as uB0,realpathSync as cB0}from"fs";import{join as dB0}from"path";function pB0(){return dB0(K7(),"notes.json")}function Go($){try{return cB0($)}catch{return $}}function Wo($,Z=pB0()){if(!$)return[];let J;try{J=JSON.parse(uB0(Z,"utf8"))}catch{return[]}let X=J?.repos;if(!X||typeof X!=="object")return[];let z=Go($);for(let G of Object.values(X)){if(!G||typeof G!=="object")continue;let W=G;if(typeof W.repoRoot!=="string"||Go(W.repoRoot)!==z)continue;if(!Array.isArray(W.notes))return[];return W.notes.filter((H)=>!!H&&typeof H==="object"&&typeof H.text==="string").slice(0,lB0)}return[]}var lB0=15;var Ho=d(()=>{V5()});import{existsSync as Uo,readFileSync as nB0}from"fs";import{join as mq}from"path";function iB0($,Z=D3(),J){let X=`PS: this task's git branch name is an auto-generated placeholder. Once you understand the work, rename it to a short descriptive name following this repo's branch-naming convention: \`${Z} set-branch --task-id ${$} --branch <descriptive-slug>\``;if(!J||J===$)return X;return`${X}
720
720
 
721
- You were spawned by Rove task ${J}. When the work is finished, send your outcome back to it \u2014 include the final branch name: \`${Z} send --task-id ${J} --prompt "<succeeded|failed>: <one-line summary> (branch <final-branch>)"\``}function aB0($){for(let[Z,J]of[[qo[0],"sh .rove/init.sh"],[qo[1],"sh .kobe/init.sh"]])if(Uo(mq($,Z)))return J;return}function rB0($){for(let Z of oB0){let J=mq($,Z);if(!Uo(J))continue;try{let X=nB0(J,"utf8");if(X.trim().length>0)return X}catch{}}return}function sB0($,Z){let J=$?uP($):{},X=aB0(Z)??J.initScript,z=rB0(Z)??J.initPrompt;return{initScript:X&&X.trim().length>0?X:void 0,initPrompt:z&&z.trim().length>0?z:void 0}}function tB0($,Z,J){if($.kind==="none")return;if($.kind==="explicit")return{source:"explicit",text:$.prompt};if($.kind==="new-task")return{source:"explicit",text:`${$.prompt}
721
+ You were spawned by Rove task ${J}. When the work is finished, send your outcome back \u2014 include the final branch name: \`${Z} send --prompt "<succeeded|failed>: <one-line summary> (branch <final-branch>)"\` (bare send, no --task-id: it routes to the exact tab that dispatched you)`}function aB0($){for(let[Z,J]of[[qo[0],"sh .rove/init.sh"],[qo[1],"sh .kobe/init.sh"]])if(Uo(mq($,Z)))return J;return}function rB0($){for(let Z of oB0){let J=mq($,Z);if(!Uo(J))continue;try{let X=nB0(J,"utf8");if(X.trim().length>0)return X}catch{}}return}function sB0($,Z){let J=$?uP($):{},X=aB0(Z)??J.initScript,z=rB0(Z)??J.initPrompt;return{initScript:X&&X.trim().length>0?X:void 0,initPrompt:z&&z.trim().length>0?z:void 0}}function tB0($,Z,J){if($.kind==="none")return;if($.kind==="explicit")return{source:"explicit",text:$.prompt};if($.kind==="new-task")return{source:"explicit",text:`${$.prompt}
722
722
 
723
723
  ${iB0(J??'"$ROVE_TASK_ID"',void 0,$.spawnerTaskId)}`};let X=Z.initPrompt?.trim();return X?{source:"repo-init",text:X}:void 0}function Bo($,Z,J={kind:"repo-init"},X){let z=sB0($,Z);return{initScript:z.initScript,firstMessage:tB0(J,z,X)}}var qo,oB0;var Ko=d(()=>{L7();C4();qo=[mq(".rove","init.sh"),mq(".kobe","init.sh")],oB0=[mq(".rove","init-prompt.md"),mq(".kobe","init-prompt.md")]});function eB0($){return`${$}; __rc=$?; [ "$__rc" -ne 0 ] && printf '${"\\n \u26A0 Engine exited (code %s). Check Settings \u2192 Engines and fix the launch command.\\n\\n"}' "$__rc"; exec "\${SHELL:-/bin/sh}"`}function XK0($){let Z=typeof $==="number"?$:$==null?Number.NaN:Number.parseInt($,10);if(!Number.isFinite(Z))return $K0;return Math.max(ZK0,Math.min(JK0,Math.round(Z)))}function QK0($,Z){let J=String(Z),X="\\n \u26A0 Repo init script timed out after %ss and was killed; continuing to the engine.\\n\\n",z="\\n \u26A0 Repo init script failed (code %s); continuing to the engine.\\n\\n";return['__kobe_init_env="${TMPDIR:-/tmp}/kobe-init-env.$$"','__kobe_init_to="${TMPDIR:-/tmp}/kobe-init-timeout.$$"','rm -f "$__kobe_init_env" "$__kobe_init_to" 2>/dev/null',"(",$,"__kobe_init_ec=$?",'export -p > "$__kobe_init_env" 2>/dev/null',"exit $__kobe_init_ec",") </dev/null &","__kobe_init_pid=$!",`( sleep ${J}; : > "$__kobe_init_to"; kill -TERM "$__kobe_init_pid" 2>/dev/null; sleep 2; kill -KILL "$__kobe_init_pid" 2>/dev/null ) &`,"__kobe_init_wd=$!",'wait "$__kobe_init_pid" 2>/dev/null; __kobe_init_rc=$?','kill "$__kobe_init_wd" 2>/dev/null; wait "$__kobe_init_wd" 2>/dev/null',`if [ -f "$__kobe_init_to" ]; then __kobe_init_rc=124; printf '${"\\n \u26A0 Repo init script timed out after %ss and was killed; continuing to the engine.\\n\\n"}' '${J}';`,'elif [ "$__kobe_init_rc" -eq 0 ]; then [ -f "$__kobe_init_env" ] && . "$__kobe_init_env" 2>/dev/null;',`else printf '${"\\n \u26A0 Repo init script failed (code %s); continuing to the engine.\\n\\n"}' "$__kobe_init_rc"; fi`,'rm -f "$__kobe_init_env" "$__kobe_init_to" 2>/dev/null'].join(`
724
724
  `)}function zK0($){let Z=$.lastIndexOf("/");return Z<=0?".":$.slice(0,Z)}function YK0($,Z){let J=eB0($),X=Z?.initScript?.trim();if(!X)return J;let z=QK0(X,XK0(Z?.timeoutSeconds)),G=Z?.markerPath&&Tc(Z.markerPath,Z.platform);if(!G)return Fo+[z,J].join(`
@@ -736,7 +736,7 @@ ${iB0(J??'"$ROVE_TASK_ID"',void 0,$.spawnerTaskId)}`};let X=Z.initPrompt?.trim()
736
736
  ${J}`}async function jr($){try{let Z=Bun.spawn($,{stdin:"ignore",stdout:"pipe",stderr:"ignore"}),J=await new Response(Z.stdout).text();return await Z.exited===0?J:null}catch{return null}}async function h_(){if(process.platform==="darwin"){let $=await jr(["osascript","-e","get POSIX path of (the clipboard as \xABclass furl\xBB)"]),Z=$?Cr($):null;if(Z)return Z;let J=Vr();return await jr(["osascript","-e","set png_data to (the clipboard as \xABclass PNGf\xBB)","-e",`set fp to open for access POSIX file "${J}" with write permission`,"-e","write png_data to fp","-e","close access fp"])!==null&&Zw(J)?J:null}if(process.platform==="linux"){for(let $ of[["wl-paste","--type","image/png"],["xclip","-selection","clipboard","-t","image/png","-o"]])try{let Z=Bun.spawn($,{stdin:"ignore",stdout:"pipe",stderr:"ignore"}),J=new Uint8Array(await new Response(Z.stdout).arrayBuffer());if(await Z.exited===0&&J.length>0){let X=Vr();return zF0(X,J),X}}catch{}return null}return null}function Vr(){let $=Og();QF0($,{recursive:!0});let Z=new Date().toISOString().slice(0,10).replaceAll("-","");return GF0($,`paste-${Z}-${_r(4).toString("hex")}.png`)}var WF0,HF0;var QU=d(()=>{V5();WF0=/\.(png|jpe?g|gif|webp|pdf)$/i,HF0=/\.pdf$/i});function Pr($,Z,J,X=$){return{repoLabel:U6($),engines:Z,defaultVendor:J,defaultBaseRef:Eq(X)??Eq($)??l8,engineLabel:y5}}function Jw($,Z){let J=BZ($);if(Z.length===0||Z.includes(J))return J;return Z[0]??J}async function BF0($,Z,J,X){return fJ(Z,X),SY(Z),$.createTask({repo:Z,baseRef:J,vendor:X})}async function KF0($,Z,J,X){try{let z=await BF0($,Z,J.baseRef,J.vendor);return X.selectTask(z.id),await X.enterTask(z.id),z.id}catch(z){console.error("[rove workspace] quick-fork task.create failed:",z),X.notifyError(`Couldn't fork task: ${M1(z)}`);return}}function Rr($,Z){let[J,X]=Ar.useState(null);async function z(W,H){let U=await KF0($,W,H,Z);if(U)X({taskId:U,prompt:Dr(H.prompt,H.attachments)})}function G(W){return W&&J?.taskId===W?J.prompt:void 0}return{onQuickFork:(W,H)=>void z(W,H),initialPromptFor:G}}var Ar;var u_=d(()=>{L7();C4();yJ();QU();sQ();i8();Ar=z1(q1(),1)});function FF0($){let Z=$.match(/^(?:images|pdf)\[\d+\]:/gm);return Z?Z.length:0}function Tr($,Z){let J=$.replace(/\s+$/,""),X=FF0($);for(let z of Z){let G=`${JM(z,X)}: ${z}`;J=J.length>0?`${J}
737
737
  ${G}`:G,X+=1}return J}function Xw($){return`#${$.id} ${$.title}`}function Sr($){let Z=[`Work on user story #${$.id}: ${$.title}`,""],J=$.body.trim();if(J)Z.push(J,"");return Z}function Ir($,Z="rove api"){return[...Sr($),"Treat this as the story's dedicated Rove task session: work only in this task worktree, and preserve any repo init instructions already delivered to the session.","Before finishing, verify the acceptance criteria implied by the story and summarize what changed plus any verification still needed.","Then merge the task branch back into the current project's main branch after the worktree is clean and checks pass.",`When the work lands, run: ${Z} issue-set-status --repo . --id ${$.id} --status done`].join(`
738
738
  `)}function Er($,Z="rove api"){return[...Sr($),"You are working directly in the project checkout \u2014 no dedicated worktree or branch was created. Keep changes reviewable and do not switch branches unless asked.","Before finishing, verify the acceptance criteria implied by the story and summarize what changed plus any verification still needed.",`When the work lands, run: ${Z} issue-set-status --repo . --id ${$.id} --status done`].join(`
739
- `)}var LG;var c_=d(()=>{QU();LG=["worktree","projectWorktree","project"]});function NG($,Z=Date.now()){let J=Math.max(0,Math.floor((Z-$)/1000));if(J<60)return`${J}s`;let X=Math.floor(J/60);if(X<60)return`${X}m`;let z=Math.floor(X/60);if(z<24)return`${z}h`;return`${Math.floor(z/24)}d`}var d_=()=>{};function XM($){return typeof $==="string"?$:""}function LF0($){let Z=$.detail;if(!Z)return"";let{tool:J,compact:X,subagent:z}=Z,G=XM(J?.name)||XM(X?.trigger)||XM(z?.type)||XM(Z.note);return CZ(G,MF0)}function wr($,Z,J=Qw){return $.slice(-J).reverse().map((X,z)=>{let G=[LF0(X),XM(X.vendor)].filter((W)=>W.length>0);return{key:`${X.at}:${z}`,age:NG(X.at,Z),kind:X.kind,tail:G.join(" \xB7 ")}})}var Qw=12,MF0=40;var xr=d(()=>{d_()});import{TextAttributes as zw}from"@opentui/core";function Yw($){let{theme:Z}=d0();return R.jsxDEV("box",{flexDirection:"row",gap:2,children:[R.jsxDEV("text",{fg:$.focused?Z.primary:Z.textMuted,attributes:$.focused?zw.BOLD|zw.UNDERLINE:zw.BOLD,wrapMode:"none",children:$.label},void 0,!1,void 0,this),$.hint?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:$.hint},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function fr($){let{theme:Z}=d0(),J=e0(),[X,z]=l_.useState(null);return l_.useEffect(()=>{let G=$.orchestrator;if(!G){z([]);return}let W=!0;return G.recentTaskEvents($.taskId).then((H)=>{if(W)z(wr(H.events,Date.now(),Qw))}).catch(()=>{if(W)z([])}),()=>{W=!1}},[$.orchestrator,$.taskId]),R.jsxDEV("box",{gap:0,children:[R.jsxDEV(Yw,{label:J("kanban.detail.eventsLabel"),focused:!1},void 0,!1,void 0,this),X===null?R.jsxDEV("text",{fg:Z.textMuted,children:J("kanban.detail.eventsLoading")},void 0,!1,void 0,this):X.length===0?R.jsxDEV("text",{fg:Z.textMuted,children:J("kanban.detail.eventsNone")},void 0,!1,void 0,this):X.map((G)=>R.jsxDEV("box",{flexDirection:"row",gap:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:G.age.padStart(NF0)},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,wrapMode:"none",children:G.kind},void 0,!1,void 0,this),G.tail?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:["\xB7 ",G.tail]},void 0,!0,void 0,this):null]},G.key,!0,void 0,this))]},void 0,!0,void 0,this)}var l_,NF0=4;var yr=d(async()=>{X$();xr();a0();await Z$();l_=z1(q1(),1)});import{TextAttributes as OG}from"@opentui/core";function jF0($){let Z=o$(),{theme:J}=d0(),X=e0(),z=M7(),G=$.issue,W=$.mode==="create",H=!W&&G.taskId&&G.taskId!==""?G.taskId:null,U=W||!H&&G.status!=="done",[B,M]=BX.useState($.defaultVendor),[O,L]=BX.useState(LG[0]??"worktree"),[j,A]=BX.useState(!1),[C,_]=BX.useState(G.title),[b,E]=BX.useState(G.body),[I,T]=BX.useState(W?"title":U?"workspace":H?"open":"title"),w=BX.useRef(null),y=U?["title","description","engine","workspace","jump"]:H?["title","description","open"]:["title","description"];function f(l){if(l.length===0)return;let n=Tr(w.current?.plainText??b,l);w.current?.setText(n),E(n)}hj((l)=>{let n=XU(new TextDecoder().decode(l.bytes));if(!n)return;l.preventDefault(),f(n)});function h(){h_().then((l)=>{if(l)f([l])})}function p(l){T((n)=>{let Y0=Math.max(0,y.indexOf(n));return y[(Y0+l+y.length)%y.length]??"title"})}function m(l){let n=$.engines;if(n.length===0)return;M((Y0)=>{let Z0=Math.max(0,n.indexOf(Y0));return n[(Z0+l+n.length)%n.length]??Y0})}function t(l){L((n)=>{let Y0=LG.indexOf(n);return LG[(Y0+l+LG.length)%LG.length]??n})}function s(){return{title:C.trim()||G.title,body:w.current?.plainText??b}}function G0(){if(C.trim().length>0)return!0;return T("title"),!1}function U0(){if(W){if(!G0())return;$.onSubmit({kind:"create",start:{vendor:B,placement:O,jump:j},...s()})}else if(U)$.onSubmit({kind:"start",vendor:B,placement:O,jump:j,...s()});else if(H)$.onSubmit({kind:"open",taskId:H,...s()});else return;Z.clear()}function F0(){if(!W||!G0())return;$.onSubmit({kind:"create",start:null,...s()}),Z.clear()}function B0(){if(W)$.onCancel();else $.onSubmit({kind:"close",...s()});Z.clear()}b1(()=>({bindings:[{key:"escape",cmd:()=>B0()},{key:"tab",cmd:()=>p(1)},{key:"shift+tab",cmd:()=>p(-1)},{key:"ctrl+return",cmd:()=>U0()},...W?[{key:"ctrl+s",cmd:()=>F0()}]:[],{key:"ctrl+v",cmd:()=>h()},...I==="engine"?[{key:"left",cmd:()=>m(-1)},{key:"right",cmd:()=>m(1)},{key:"return",cmd:()=>U0()}]:[],...I==="workspace"?[{key:"up",cmd:()=>t(-1)},{key:"down",cmd:()=>t(1)},{key:"return",cmd:()=>U0()}]:[],...I==="jump"?[{key:"left",cmd:()=>A((l)=>!l)},{key:"right",cmd:()=>A((l)=>!l)},{key:"return",cmd:()=>U0()}]:[],...I==="open"?[{key:"return",cmd:()=>U0()}]:[]]}));let W0=G.status==="done"?J.success:G.status==="hold"?J.warning:G.status==="doing"?J.accent:J.textMuted,k=(l,n,Y0)=>R.jsxDEV(Yw,{label:l,hint:Y0,focused:n!==null&&I===n},void 0,!1,void 0,this),i=(l)=>I===l?J.primary:J.borderSubtle;return R.jsxDEV("box",{paddingLeft:z,paddingRight:z,gap:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[W?R.jsxDEV("text",{fg:J.text,attributes:OG.BOLD,wrapMode:"none",children:X("kanban.detail.newStory")},void 0,!1,void 0,this):R.jsxDEV("box",{flexDirection:"row",gap:2,children:[R.jsxDEV("text",{fg:J.textMuted,attributes:OG.BOLD,wrapMode:"none",children:["#",G.id]},void 0,!0,void 0,this),R.jsxDEV("text",{fg:W0,attributes:OG.BOLD,wrapMode:"none",children:X(`kanban.detail.status.${G.status}`)},void 0,!1,void 0,this),R.jsxDEV("text",{fg:J.textMuted,wrapMode:"none",children:X("kanban.detail.created",{date:G.created})},void 0,!1,void 0,this),H?R.jsxDEV("text",{fg:J.accent,wrapMode:"none",children:X("kanban.detail.linked")},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("text",{fg:J.textMuted,wrapMode:"none",onMouseUp:()=>B0(),children:"esc"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,children:[k(X("kanban.detail.titleLabel"),"title"),R.jsxDEV("box",{border:!0,borderColor:i("title"),backgroundColor:J.backgroundElement,paddingLeft:1,paddingRight:1,children:R.jsxDEV("input",{value:C,focused:I==="title",onMouseUp:()=>T("title"),onInput:(l)=>_(r5(l)),onSubmit:()=>T("description")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,children:[k(X("kanban.detail.description"),"description",X("kanban.detail.attachHint")),R.jsxDEV("box",{border:!0,borderColor:i("description"),backgroundColor:J.backgroundElement,paddingLeft:1,paddingRight:1,children:R.jsxDEV("textarea",{ref:(l)=>{w.current=l},initialValue:G.body,placeholder:X("kanban.detail.noDescription"),focused:I==="description",height:OF0,wrapMode:"word",onMouseUp:()=>T("description"),onContentChange:()=>E(w.current?.plainText??"")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U?R.jsxDEV("box",{gap:0,children:[R.jsxDEV("box",{gap:0,children:[k(X("kanban.detail.engine"),"engine","\u2190/\u2192"),R.jsxDEV("box",{flexDirection:"row",gap:1,children:$.engines.map((l)=>{let n=l===B;return R.jsxDEV("box",{border:!0,borderColor:n?J.primary:J.borderSubtle,paddingLeft:2,paddingRight:2,paddingBottom:1,onMouseUp:()=>{T("engine"),M(l)},children:R.jsxDEV("text",{fg:n?J.primary:J.textMuted,attributes:n?OG.BOLD:void 0,wrapMode:"none",children:$.engineLabel(l)},void 0,!1,void 0,this)},l,!1,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,paddingBottom:1,children:[k(X("kanban.detail.workspace"),"workspace","\u2191/\u2193"),R.jsxDEV("box",{border:!0,borderColor:i("workspace"),backgroundColor:J.backgroundElement,paddingLeft:1,paddingRight:1,children:LG.map((l)=>{let n=l===O;return R.jsxDEV("text",{fg:n?J.primary:J.textMuted,attributes:n?OG.BOLD:void 0,onMouseUp:()=>{T("workspace"),L(l)},children:[n?"\u25B8 ":" ",X(`kanban.detail.placement.${l}`)]},l,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,paddingBottom:1,children:[k(X("kanban.detail.jumpLabel"),"jump","\u2190/\u2192"),R.jsxDEV("box",{flexDirection:"row",gap:1,children:[!1,!0].map((l)=>{let n=l===j;return R.jsxDEV("box",{border:!0,borderColor:n?J.primary:J.borderSubtle,paddingLeft:2,paddingRight:2,onMouseUp:()=>{T("jump"),A(l)},children:R.jsxDEV("text",{fg:n?J.primary:J.textMuted,attributes:n?OG.BOLD:void 0,wrapMode:"none",children:X(l?"kanban.detail.jump.follow":"kanban.detail.jump.stay")},void 0,!1,void 0,this)},String(l),!1,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,children:W?X("kanban.detail.createLegend"):X("kanban.detail.startLegend")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):H?R.jsxDEV("box",{gap:1,children:[R.jsxDEV("box",{gap:0,children:[k(X("kanban.detail.sessionLabel"),"open"),R.jsxDEV("box",{flexDirection:"row",children:R.jsxDEV("box",{border:!0,borderColor:I==="open"?J.primary:J.borderSubtle,paddingLeft:2,paddingRight:2,onMouseUp:()=>{T("open"),U0()},children:R.jsxDEV("text",{fg:I==="open"?J.primary:J.text,attributes:I==="open"?OG.BOLD:void 0,wrapMode:"none",children:X("kanban.detail.openAction")},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV(fr,{taskId:H,orchestrator:$.orchestrator??null},void 0,!1,void 0,this),R.jsxDEV("box",{paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,children:X("kanban.detail.openLegend")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):R.jsxDEV("box",{paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,children:X("kanban.detail.doneNote")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function VF0($,Z){return k2($,(J)=>R.jsxDEV(jF0,{...Z,onSubmit:(X)=>J(X),onCancel:()=>J(void 0)},void 0,!1,void 0,this),{size:"large"})}var BX,OF0=8,Gw;var gr=d(async()=>{c_();p8();QU();X$();a0();await J$([v4(),Z$(),D4(),C5(),yr()]);BX=z1(q1(),1);Gw={show:VF0}});import{TextAttributes as _F0}from"@opentui/core";function br($){let{theme:Z,transparentBackground:J}=d0(),X=e0(),{issue:z,column:G,selected:W}=$,H=J?Z.border:Z.borderSubtle,U=G==="done"?Z.textMuted:Z.text,B=z.body.trim(),M=$.activity?CF0[$.activity]:void 0,O=eE($.activity),L={accent:Z.accent,warning:Z.warning,error:Z.error,success:Z.success};return R.jsxDEV("box",{border:!0,borderColor:W?Z.primary:O?Z.warning:H,backgroundColor:Z.backgroundElement,paddingLeft:1,paddingRight:1,onMouseUp:()=>W?$.onOpen():$.onSelect(),children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{fg:U,attributes:_F0.BOLD,wrapMode:"word",flexShrink:1,children:z.title},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:["#",z.id]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{height:2,overflow:"hidden",children:B?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:B},void 0,!1,void 0,this):null},void 0,!1,void 0,this),R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:z.created},void 0,!1,void 0,this),M?R.jsxDEV("text",{fg:L[M.tone],wrapMode:"none",children:X(M.labelKey)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var CF0;var vr=d(async()=>{$w();X$();a0();await Z$();CF0={running:{labelKey:"tasks.status.working",tone:"accent"},turn_complete:{labelKey:"kanban.turnComplete",tone:"success"},rate_limited:{labelKey:"tasks.activity.rateLimited",tone:"warning"},permission_needed:{labelKey:"tasks.activity.permissionNeeded",tone:"warning"},error:{labelKey:"tasks.activity.error",tone:"error"}}});import{TextAttributes as p_}from"@opentui/core";function kr($){let{theme:Z,transparentBackground:J}=d0(),X=J?Z.border:Z.borderSubtle,z=e0(),G=o$(),[W,H]=KX.useState(null),[U,B]=KX.useState([]);KX.useEffect(()=>{let k=!1;return jZ().then((i)=>{if(!k)B(i)}),()=>{k=!0}},[]);let[M,O]=KX.useState(0),[L,j]=KX.useState(null);KX.useEffect(()=>{let k=!1,i=$.orchestrator;if(!i){H([]);return}let l=[...new Set(i.listTasks().map((Y0)=>Y0.repo))];Promise.all(l.map((Y0)=>i.listIssues(Y0).catch(()=>null))).then((Y0)=>{if(k)return;let Z0=Y0.filter((D0)=>D0!==null);Z0.sort((D0,u0)=>D0.repoRoot.localeCompare(u0.repoRoot)),H(Z0);let a=(D0)=>D0.replace(/^\/private\//,"/").replace(/\/+$/,""),$0=i.activeTaskSignal().get(),O0=$.focusTask?.repo??i.listTasks().find((D0)=>D0.id===$0)?.repo,Q0=O0?Z0.find((D0)=>a(D0.repoRoot)===a(O0)):void 0;j((D0)=>D0??Q0?.repoRoot??null);let w0=$.focusTask?.id,b0=w0?Q0?.issues.find((D0)=>D0.taskId===w0):void 0;if(b0)w((D0)=>D0??b0.id)});let n=setInterval(()=>O((Y0)=>Y0+1),DF0);return()=>{k=!0,clearInterval(n)}},[$.orchestrator,M]);let A=W??[],C=Math.max(0,A.findIndex((k)=>k.repoRoot===L)),_=A[C],b=A.map((k)=>k.repoRoot),{columns:E,attentionCount:I}=Nr(_?Or(_.issues):[],(k)=>$.engineStates?.get(k)?.state),[T,w]=KX.useState(null);function y(k){if(A.length===0)return;let i=(C+k+A.length)%A.length;j(A[i]?.repoRoot??null),w(null)}function f(k){let i=Lr(E,T,k);if(i!=null)w(i)}function h(k){if(E.some((i)=>i.issues.length>0))f(k);else y(k==="left"?-1:1)}function p(k){let i=_;if(!i)return;w(k.id),Gw.show(G,{issue:k,engines:U,defaultVendor:Jw(i.repoRoot,U),engineLabel:y5,orchestrator:$.orchestrator}).then(async(l)=>{if(!l)return;let n={title:l.title,body:l.body};if(n.title!==k.title||n.body!==k.body)await $.orchestrator?.mutateIssue(i.repoRoot,{type:"update",id:k.id,...n}).catch((Y0)=>console.error("[rove kanban] issue update failed:",Y0)),O((Y0)=>Y0+1);if(l.kind==="open"){$.onOpenTask(l.taskId);return}if(l.kind!=="start")return;$.onStartChat({repoRoot:i.repoRoot,issue:{...k,...n},vendor:l.vendor,placement:l.placement,jump:l.jump})})}function m(){let k=_?.issues.find((i)=>i.id===T);if(k)p(k)}function t(){let k=_;if(!k)return;let i={id:k.nextId,title:"",status:"open",created:new Date().toISOString().slice(0,10),body:""};Gw.show(G,{issue:i,mode:"create",engines:U,defaultVendor:Jw(k.repoRoot,U),engineLabel:y5}).then(async(l)=>{if(!l||l.kind!=="create")return;let n=$.orchestrator;if(!n)return;try{let Y0=await n.mutateIssue(k.repoRoot,{type:"create",title:l.title,body:l.body});if(O((a)=>a+1),!l.start)return;let Z0=Y0.issues.find((a)=>a.id===k.nextId)??Y0.issues.reduce((a,$0)=>a&&a.id>$0.id?a:$0,null);if(!Z0)return;$.onStartChat({repoRoot:k.repoRoot,issue:Z0,vendor:l.start.vendor,placement:l.start.placement,jump:l.start.jump})}catch(Y0){console.error("[rove kanban] issue create failed:",Y0)}})}function s(){let k=_,i=k?.issues.find((l)=>l.id===T);if(!k||!i)return;O4.show(G,z("kanban.confirmDelete.title",{id:String(i.id)}),z("kanban.confirmDelete.body",{title:i.title})).then((l)=>{if(!l)return;$.orchestrator?.mutateIssue(k.repoRoot,{type:"delete",id:i.id}).then(()=>{w(null),O((n)=>n+1)}).catch((n)=>console.error("[rove kanban] issue delete failed:",n))})}b1(()=>({enabled:G.stack.length===0&&$.focused!==!1,bindings:[...s7($.onClose),{key:"r",cmd:()=>O((k)=>k+1)},{key:"tab",cmd:()=>y(1)},{key:"up",cmd:()=>f("up")},{key:"down",cmd:()=>f("down")},{key:"right",cmd:()=>h("right")},{key:"left",cmd:()=>h("left")},{key:"return",cmd:()=>m()},{key:"n",cmd:()=>t()},{key:"d",cmd:()=>s()}]}));let G0={backlog:Z.textMuted,in_progress:Z.accent,parked:Z.warning,done:Z.success};function U0(k,i){let n=(i==="in_progress"||i==="parked")&&k.taskId?$.engineStates?.get(k.taskId)?.state:void 0;return R.jsxDEV(br,{issue:k,column:i,selected:k.id===T,activity:n,onSelect:()=>w(k.id),onOpen:()=>p(k)},k.id,!1,void 0,this)}function F0(k){return R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",paddingTop:1,paddingLeft:3,paddingRight:3,children:[R.jsxDEV("box",{flexDirection:"row",onMouseUp:()=>y(1),children:[R.jsxDEV("text",{fg:Z.primary,attributes:p_.BOLD,wrapMode:"none",children:_9(k.repoRoot,b)},void 0,!1,void 0,this),A.length>1?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:[" ",C+1,"/",A.length]},void 0,!0,void 0,this):null,R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",flexShrink:1,children:[" ",k.repoRoot]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),k.issues.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:z("kanban.empty")},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function B0(){return R.jsxDEV("box",{flexDirection:"row",gap:1,flexGrow:1,paddingTop:1,paddingLeft:1,paddingRight:1,children:E.map((k)=>R.jsxDEV("box",{flexGrow:1,flexBasis:0,border:!0,borderColor:X,paddingLeft:1,paddingRight:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{fg:G0[k.key],attributes:p_.BOLD,wrapMode:"none",children:[z(AF0[k.key])," (",k.issues.length+k.hiddenCount,")"]},void 0,!0,void 0,this),k.key==="in_progress"&&I>0?R.jsxDEV("text",{fg:Z.warning,attributes:p_.BOLD,wrapMode:"none",children:z("kanban.attention",{count:String(I)})},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("scrollbox",{flexGrow:1,gap:1,paddingTop:1,verticalScrollbarOptions:{trackOptions:{foregroundColor:"transparent"}},children:[k.issues.map((i)=>U0(i,k.key)),k.hiddenCount>0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:z("kanban.more",{count:String(k.hiddenCount)})},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},k.key,!0,void 0,this))},void 0,!1,void 0,this)}let W0=W===null;return R.jsxDEV("box",{flexGrow:1,backgroundColor:Z.background,paddingTop:1,paddingBottom:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",paddingLeft:3,paddingRight:3,children:[R.jsxDEV("text",{attributes:p_.BOLD,fg:Z.text,children:z("kanban.title")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,children:z("kanban.hint")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W0?R.jsxDEV("text",{fg:Z.textMuted,paddingLeft:3,children:z("kanban.loading")},void 0,!1,void 0,this):A.length===0||!_?R.jsxDEV("text",{fg:Z.textMuted,paddingLeft:3,children:z("kanban.noRepos")},void 0,!1,void 0,this):R.jsxDEV(R.Fragment,{children:[F0(_),B0()]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var KX,DF0=5000,AF0;var mr=d(async()=>{cJ();L7();$w();i8();X$();u_();a0();await J$([Z$(),D4(),C5(),TZ(),gr(),vr()]);KX=z1(q1(),1),AF0={backlog:"kanban.column.backlog",in_progress:"kanban.column.inProgress",parked:"kanban.column.parked",done:"kanban.column.done"}});import{spawnSync as PF0}from"child_process";function RF0(){if(!process.stdin.isTTY)return Promise.resolve();return new Promise(($)=>{let Z=process.stdin,J=()=>{Z.off("data",J),Z.setRawMode?.(!1),Z.pause(),$()};Z.setRawMode?.(!0),Z.resume(),Z.once("data",J)})}async function n_($){$.renderer?.destroy(),process.stdout.write(`
739
+ `)}var LG;var c_=d(()=>{QU();LG=["worktree","projectWorktree","project"]});function NG($,Z=Date.now()){let J=Math.max(0,Math.floor((Z-$)/1000));if(J<60)return`${J}s`;let X=Math.floor(J/60);if(X<60)return`${X}m`;let z=Math.floor(X/60);if(z<24)return`${z}h`;return`${Math.floor(z/24)}d`}var d_=()=>{};function XM($){return typeof $==="string"?$:""}function LF0($){let Z=$.detail;if(!Z)return"";let{tool:J,compact:X,subagent:z}=Z,G=XM(J?.name)||XM(X?.trigger)||XM(z?.type)||XM(Z.note);return CZ(G,MF0)}function wr($,Z,J=Qw){return $.slice(-J).reverse().map((X,z)=>{let G=[LF0(X),XM(X.vendor)].filter((W)=>W.length>0);return{key:`${X.at}:${z}`,age:NG(X.at,Z),kind:X.kind,tail:G.join(" \xB7 ")}})}var Qw=12,MF0=40;var xr=d(()=>{d_()});import{TextAttributes as zw}from"@opentui/core";function Yw($){let{theme:Z}=d0();return R.jsxDEV("box",{flexDirection:"row",gap:2,children:[R.jsxDEV("text",{fg:$.focused?Z.primary:Z.textMuted,attributes:$.focused?zw.BOLD|zw.UNDERLINE:zw.BOLD,wrapMode:"none",children:$.label},void 0,!1,void 0,this),$.hint?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:$.hint},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function fr($){let{theme:Z}=d0(),J=e0(),[X,z]=l_.useState(null);return l_.useEffect(()=>{let G=$.orchestrator;if(!G){z([]);return}let W=!0;return G.recentTaskEvents($.taskId).then((H)=>{if(W)z(wr(H.events,Date.now(),Qw))}).catch(()=>{if(W)z([])}),()=>{W=!1}},[$.orchestrator,$.taskId]),R.jsxDEV("box",{gap:0,children:[R.jsxDEV(Yw,{label:J("kanban.detail.eventsLabel"),focused:!1},void 0,!1,void 0,this),X===null?R.jsxDEV("text",{fg:Z.textMuted,children:J("kanban.detail.eventsLoading")},void 0,!1,void 0,this):X.length===0?R.jsxDEV("text",{fg:Z.textMuted,children:J("kanban.detail.eventsNone")},void 0,!1,void 0,this):X.map((G)=>R.jsxDEV("box",{flexDirection:"row",gap:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:G.age.padStart(NF0)},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,wrapMode:"none",children:G.kind},void 0,!1,void 0,this),G.tail?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:["\xB7 ",G.tail]},void 0,!0,void 0,this):null]},G.key,!0,void 0,this))]},void 0,!0,void 0,this)}var l_,NF0=4;var yr=d(async()=>{X$();xr();a0();await Z$();l_=z1(q1(),1)});import{TextAttributes as OG}from"@opentui/core";function jF0($){let Z=o$(),{theme:J}=d0(),X=e0(),z=M7(),G=$.issue,W=$.mode==="create",H=!W&&G.taskId&&G.taskId!==""?G.taskId:null,U=W||!H&&G.status!=="done",[B,M]=BX.useState($.defaultVendor),[O,L]=BX.useState(LG[0]??"worktree"),[j,A]=BX.useState(!1),[C,_]=BX.useState(G.title),[b,E]=BX.useState(G.body),[I,T]=BX.useState(W?"title":U?"workspace":H?"open":"title"),w=BX.useRef(null),y=U?["title","description","engine","workspace","jump"]:H?["title","description","open"]:["title","description"];function f(l){if(l.length===0)return;let n=Tr(w.current?.plainText??b,l);w.current?.setText(n),E(n)}hj((l)=>{let n=XU(new TextDecoder().decode(l.bytes));if(!n)return;l.preventDefault(),f(n)});function h(){h_().then((l)=>{if(l)f([l])})}function p(l){T((n)=>{let Y0=Math.max(0,y.indexOf(n));return y[(Y0+l+y.length)%y.length]??"title"})}function m(l){let n=$.engines;if(n.length===0)return;M((Y0)=>{let Z0=Math.max(0,n.indexOf(Y0));return n[(Z0+l+n.length)%n.length]??Y0})}function t(l){L((n)=>{let Y0=LG.indexOf(n);return LG[(Y0+l+LG.length)%LG.length]??n})}function s(){return{title:C.trim()||G.title,body:w.current?.plainText??b}}function G0(){if(C.trim().length>0)return!0;return T("title"),!1}function U0(){if(W){if(!G0())return;$.onSubmit({kind:"create",start:{vendor:B,placement:O,jump:j},...s()})}else if(U)$.onSubmit({kind:"start",vendor:B,placement:O,jump:j,...s()});else if(H)$.onSubmit({kind:"open",taskId:H,...s()});else return;Z.clear()}function F0(){if(!W||!G0())return;$.onSubmit({kind:"create",start:null,...s()}),Z.clear()}function B0(){if(W)$.onCancel();else $.onSubmit({kind:"close",...s()});Z.clear()}b1(()=>({bindings:[{key:"escape",cmd:()=>B0()},{key:"tab",cmd:()=>p(1)},{key:"shift+tab",cmd:()=>p(-1)},{key:"ctrl+return",cmd:()=>U0()},...W?[{key:"ctrl+s",cmd:()=>F0()}]:[],{key:"ctrl+v",cmd:()=>h()},...I==="engine"?[{key:"left",cmd:()=>m(-1)},{key:"right",cmd:()=>m(1)},{key:"return",cmd:()=>U0()}]:[],...I==="workspace"?[{key:"up",cmd:()=>t(-1)},{key:"down",cmd:()=>t(1)},{key:"return",cmd:()=>U0()}]:[],...I==="jump"?[{key:"left",cmd:()=>A((l)=>!l)},{key:"right",cmd:()=>A((l)=>!l)},{key:"return",cmd:()=>U0()}]:[],...I==="open"?[{key:"return",cmd:()=>U0()}]:[]]}));let W0=G.status==="done"?J.success:G.status==="hold"?J.warning:G.status==="doing"?J.accent:J.textMuted,k=(l,n,Y0)=>R.jsxDEV(Yw,{label:l,hint:Y0,focused:n!==null&&I===n},void 0,!1,void 0,this),i=(l)=>I===l?J.primary:J.borderSubtle;return R.jsxDEV("box",{paddingLeft:z,paddingRight:z,gap:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[W?R.jsxDEV("text",{fg:J.text,attributes:OG.BOLD,wrapMode:"none",children:X("kanban.detail.newStory")},void 0,!1,void 0,this):R.jsxDEV("box",{flexDirection:"row",gap:2,children:[R.jsxDEV("text",{fg:J.textMuted,attributes:OG.BOLD,wrapMode:"none",children:["#",G.id]},void 0,!0,void 0,this),R.jsxDEV("text",{fg:W0,attributes:OG.BOLD,wrapMode:"none",children:X(`kanban.detail.status.${G.status}`)},void 0,!1,void 0,this),R.jsxDEV("text",{fg:J.textMuted,wrapMode:"none",children:X("kanban.detail.created",{date:G.created})},void 0,!1,void 0,this),H?R.jsxDEV("text",{fg:J.accent,wrapMode:"none",children:X("kanban.detail.linked")},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("text",{fg:J.textMuted,wrapMode:"none",onMouseUp:()=>B0(),children:"esc"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,children:[k(X("kanban.detail.titleLabel"),"title"),R.jsxDEV("box",{border:!0,borderColor:i("title"),backgroundColor:J.backgroundElement,paddingLeft:1,paddingRight:1,children:R.jsxDEV("input",{value:C,focused:I==="title",onMouseUp:()=>T("title"),onInput:(l)=>_(r5(l)),onSubmit:()=>T("description")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,children:[k(X("kanban.detail.description"),"description",X("kanban.detail.attachHint")),R.jsxDEV("box",{border:!0,borderColor:i("description"),backgroundColor:J.backgroundElement,paddingLeft:1,paddingRight:1,children:R.jsxDEV("textarea",{ref:(l)=>{w.current=l},initialValue:G.body,placeholder:X("kanban.detail.noDescription"),focused:I==="description",height:OF0,wrapMode:"word",onMouseUp:()=>T("description"),onContentChange:()=>E(w.current?.plainText??"")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),U?R.jsxDEV("box",{gap:0,children:[R.jsxDEV("box",{gap:0,children:[k(X("kanban.detail.engine"),"engine","\u2190/\u2192"),R.jsxDEV("box",{flexDirection:"row",gap:1,children:$.engines.map((l)=>{let n=l===B;return R.jsxDEV("box",{border:!0,borderColor:n?J.primary:J.borderSubtle,paddingLeft:2,paddingRight:2,paddingBottom:1,onMouseUp:()=>{T("engine"),M(l)},children:R.jsxDEV("text",{fg:n?J.primary:J.textMuted,attributes:n?OG.BOLD:void 0,wrapMode:"none",children:$.engineLabel(l)},void 0,!1,void 0,this)},l,!1,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,paddingBottom:1,children:[k(X("kanban.detail.workspace"),"workspace","\u2191/\u2193"),R.jsxDEV("box",{border:!0,borderColor:i("workspace"),backgroundColor:J.backgroundElement,paddingLeft:1,paddingRight:1,children:LG.map((l)=>{let n=l===O;return R.jsxDEV("text",{fg:n?J.primary:J.textMuted,attributes:n?OG.BOLD:void 0,onMouseUp:()=>{T("workspace"),L(l)},children:[n?"\u25B8 ":" ",X(`kanban.detail.placement.${l}`)]},l,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,paddingBottom:1,children:[k(X("kanban.detail.jumpLabel"),"jump","\u2190/\u2192"),R.jsxDEV("box",{flexDirection:"row",gap:1,children:[!1,!0].map((l)=>{let n=l===j;return R.jsxDEV("box",{border:!0,borderColor:n?J.primary:J.borderSubtle,paddingLeft:2,paddingRight:2,onMouseUp:()=>{T("jump"),A(l)},children:R.jsxDEV("text",{fg:n?J.primary:J.textMuted,attributes:n?OG.BOLD:void 0,wrapMode:"none",children:X(l?"kanban.detail.jump.follow":"kanban.detail.jump.stay")},void 0,!1,void 0,this)},String(l),!1,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,children:W?X("kanban.detail.createLegend"):X("kanban.detail.startLegend")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):H?R.jsxDEV("box",{gap:1,children:[R.jsxDEV("box",{gap:0,children:[k(X("kanban.detail.sessionLabel"),"open"),R.jsxDEV("box",{flexDirection:"row",children:R.jsxDEV("box",{border:!0,borderColor:I==="open"?J.primary:J.borderSubtle,paddingLeft:2,paddingRight:2,onMouseUp:()=>{T("open"),U0()},children:R.jsxDEV("text",{fg:I==="open"?J.primary:J.text,attributes:I==="open"?OG.BOLD:void 0,wrapMode:"none",children:X("kanban.detail.openAction")},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV(fr,{taskId:H,orchestrator:$.orchestrator??null},void 0,!1,void 0,this),R.jsxDEV("box",{paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,children:X("kanban.detail.openLegend")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):R.jsxDEV("box",{paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,children:X("kanban.detail.doneNote")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function VF0($,Z){return k2($,(J)=>R.jsxDEV(jF0,{...Z,onSubmit:(X)=>J(X),onCancel:()=>J(void 0)},void 0,!1,void 0,this),{size:"large"})}var BX,OF0=8,Gw;var gr=d(async()=>{c_();p8();QU();X$();a0();await J$([v4(),Z$(),D4(),C5(),yr()]);BX=z1(q1(),1);Gw={show:VF0}});import{TextAttributes as _F0}from"@opentui/core";function br($){let{theme:Z,transparentBackground:J}=d0(),X=e0(),{issue:z,column:G,selected:W}=$,H=J?Z.border:Z.borderSubtle,U=G==="done"?Z.textMuted:Z.text,B=z.body.trim(),M=$.activity?CF0[$.activity]:void 0,O=eE($.activity),L={accent:Z.accent,warning:Z.warning,error:Z.error,success:Z.success};return R.jsxDEV("box",{border:!0,borderColor:W?Z.primary:O?Z.warning:H,backgroundColor:Z.backgroundElement,padding:1,onMouseUp:()=>W?$.onOpen():$.onSelect(),children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{fg:U,attributes:_F0.BOLD,wrapMode:"word",flexShrink:1,children:z.title},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:["#",z.id]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{height:2,overflow:"hidden",children:B?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:B},void 0,!1,void 0,this):null},void 0,!1,void 0,this),R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:z.created},void 0,!1,void 0,this),M?R.jsxDEV("text",{fg:L[M.tone],wrapMode:"none",children:X(M.labelKey)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var CF0;var vr=d(async()=>{$w();X$();a0();await Z$();CF0={running:{labelKey:"tasks.status.working",tone:"accent"},turn_complete:{labelKey:"kanban.turnComplete",tone:"success"},rate_limited:{labelKey:"tasks.activity.rateLimited",tone:"warning"},permission_needed:{labelKey:"tasks.activity.permissionNeeded",tone:"warning"},error:{labelKey:"tasks.activity.error",tone:"error"}}});import{TextAttributes as p_}from"@opentui/core";function kr($){let{theme:Z,transparentBackground:J}=d0(),X=J?Z.border:Z.borderSubtle,z=e0(),G=o$(),[W,H]=KX.useState(null),[U,B]=KX.useState([]);KX.useEffect(()=>{let k=!1;return jZ().then((i)=>{if(!k)B(i)}),()=>{k=!0}},[]);let[M,O]=KX.useState(0),[L,j]=KX.useState(null);KX.useEffect(()=>{let k=!1,i=$.orchestrator;if(!i){H([]);return}let l=[...new Set(i.listTasks().map((Y0)=>Y0.repo))];Promise.all(l.map((Y0)=>i.listIssues(Y0).catch(()=>null))).then((Y0)=>{if(k)return;let Z0=Y0.filter((D0)=>D0!==null);Z0.sort((D0,u0)=>D0.repoRoot.localeCompare(u0.repoRoot)),H(Z0);let a=(D0)=>D0.replace(/^\/private\//,"/").replace(/\/+$/,""),$0=i.activeTaskSignal().get(),O0=$.focusTask?.repo??i.listTasks().find((D0)=>D0.id===$0)?.repo,Q0=O0?Z0.find((D0)=>a(D0.repoRoot)===a(O0)):void 0;j((D0)=>D0??Q0?.repoRoot??null);let w0=$.focusTask?.id,b0=w0?Q0?.issues.find((D0)=>D0.taskId===w0):void 0;if(b0)w((D0)=>D0??b0.id)});let n=setInterval(()=>O((Y0)=>Y0+1),DF0);return()=>{k=!0,clearInterval(n)}},[$.orchestrator,M]);let A=W??[],C=Math.max(0,A.findIndex((k)=>k.repoRoot===L)),_=A[C],b=A.map((k)=>k.repoRoot),{columns:E,attentionCount:I}=Nr(_?Or(_.issues):[],(k)=>$.engineStates?.get(k)?.state),[T,w]=KX.useState(null);function y(k){if(A.length===0)return;let i=(C+k+A.length)%A.length;j(A[i]?.repoRoot??null),w(null)}function f(k){let i=Lr(E,T,k);if(i!=null)w(i)}function h(k){if(E.some((i)=>i.issues.length>0))f(k);else y(k==="left"?-1:1)}function p(k){let i=_;if(!i)return;w(k.id),Gw.show(G,{issue:k,engines:U,defaultVendor:Jw(i.repoRoot,U),engineLabel:y5,orchestrator:$.orchestrator}).then(async(l)=>{if(!l)return;let n={title:l.title,body:l.body};if(n.title!==k.title||n.body!==k.body)await $.orchestrator?.mutateIssue(i.repoRoot,{type:"update",id:k.id,...n}).catch((Y0)=>console.error("[rove kanban] issue update failed:",Y0)),O((Y0)=>Y0+1);if(l.kind==="open"){$.onOpenTask(l.taskId);return}if(l.kind!=="start")return;$.onStartChat({repoRoot:i.repoRoot,issue:{...k,...n},vendor:l.vendor,placement:l.placement,jump:l.jump})})}function m(){let k=_?.issues.find((i)=>i.id===T);if(k)p(k)}function t(){let k=_;if(!k)return;let i={id:k.nextId,title:"",status:"open",created:new Date().toISOString().slice(0,10),body:""};Gw.show(G,{issue:i,mode:"create",engines:U,defaultVendor:Jw(k.repoRoot,U),engineLabel:y5}).then(async(l)=>{if(!l||l.kind!=="create")return;let n=$.orchestrator;if(!n)return;try{let Y0=await n.mutateIssue(k.repoRoot,{type:"create",title:l.title,body:l.body});if(O((a)=>a+1),!l.start)return;let Z0=Y0.issues.find((a)=>a.id===k.nextId)??Y0.issues.reduce((a,$0)=>a&&a.id>$0.id?a:$0,null);if(!Z0)return;$.onStartChat({repoRoot:k.repoRoot,issue:Z0,vendor:l.start.vendor,placement:l.start.placement,jump:l.start.jump})}catch(Y0){console.error("[rove kanban] issue create failed:",Y0)}})}function s(){let k=_,i=k?.issues.find((l)=>l.id===T);if(!k||!i)return;O4.show(G,z("kanban.confirmDelete.title",{id:String(i.id)}),z("kanban.confirmDelete.body",{title:i.title})).then((l)=>{if(!l)return;$.orchestrator?.mutateIssue(k.repoRoot,{type:"delete",id:i.id}).then(()=>{w(null),O((n)=>n+1)}).catch((n)=>console.error("[rove kanban] issue delete failed:",n))})}b1(()=>({enabled:G.stack.length===0&&$.focused!==!1,bindings:[...s7($.onClose),{key:"r",cmd:()=>O((k)=>k+1)},{key:"tab",cmd:()=>y(1)},{key:"up",cmd:()=>f("up")},{key:"down",cmd:()=>f("down")},{key:"right",cmd:()=>h("right")},{key:"left",cmd:()=>h("left")},{key:"return",cmd:()=>m()},{key:"n",cmd:()=>t()},{key:"d",cmd:()=>s()}]}));let G0={backlog:Z.textMuted,in_progress:Z.accent,parked:Z.warning,done:Z.success};function U0(k,i){let n=(i==="in_progress"||i==="parked")&&k.taskId?$.engineStates?.get(k.taskId)?.state:void 0;return R.jsxDEV(br,{issue:k,column:i,selected:k.id===T,activity:n,onSelect:()=>w(k.id),onOpen:()=>p(k)},k.id,!1,void 0,this)}function F0(k){return R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",paddingTop:1,paddingLeft:3,paddingRight:3,children:[R.jsxDEV("box",{flexDirection:"row",onMouseUp:()=>y(1),children:[R.jsxDEV("text",{fg:Z.primary,attributes:p_.BOLD,wrapMode:"none",children:_9(k.repoRoot,b)},void 0,!1,void 0,this),A.length>1?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:[" ",C+1,"/",A.length]},void 0,!0,void 0,this):null,R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",flexShrink:1,children:[" ",k.repoRoot]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),k.issues.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:z("kanban.empty")},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function B0(){return R.jsxDEV("box",{flexDirection:"row",gap:1,flexGrow:1,paddingTop:1,paddingLeft:1,paddingRight:1,children:E.map((k)=>R.jsxDEV("box",{flexGrow:1,flexBasis:0,border:!0,borderColor:X,paddingLeft:1,paddingRight:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{fg:G0[k.key],attributes:p_.BOLD,wrapMode:"none",children:[z(AF0[k.key])," (",k.issues.length+k.hiddenCount,")"]},void 0,!0,void 0,this),k.key==="in_progress"&&I>0?R.jsxDEV("text",{fg:Z.warning,attributes:p_.BOLD,wrapMode:"none",children:z("kanban.attention",{count:String(I)})},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("scrollbox",{flexGrow:1,paddingTop:1,verticalScrollbarOptions:{trackOptions:{foregroundColor:"transparent"}},children:[k.issues.map((i)=>U0(i,k.key)),k.hiddenCount>0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:z("kanban.more",{count:String(k.hiddenCount)})},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},k.key,!0,void 0,this))},void 0,!1,void 0,this)}let W0=W===null;return R.jsxDEV("box",{flexGrow:1,backgroundColor:Z.background,paddingTop:1,paddingBottom:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",paddingLeft:3,paddingRight:3,children:[R.jsxDEV("text",{attributes:p_.BOLD,fg:Z.text,children:z("kanban.title")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,children:z("kanban.hint")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W0?R.jsxDEV("text",{fg:Z.textMuted,paddingLeft:3,children:z("kanban.loading")},void 0,!1,void 0,this):A.length===0||!_?R.jsxDEV("text",{fg:Z.textMuted,paddingLeft:3,children:z("kanban.noRepos")},void 0,!1,void 0,this):R.jsxDEV(R.Fragment,{children:[F0(_),B0()]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var KX,DF0=5000,AF0;var mr=d(async()=>{cJ();L7();$w();i8();X$();u_();a0();await J$([Z$(),D4(),C5(),TZ(),gr(),vr()]);KX=z1(q1(),1),AF0={backlog:"kanban.column.backlog",in_progress:"kanban.column.inProgress",parked:"kanban.column.parked",done:"kanban.column.done"}});import{spawnSync as PF0}from"child_process";function RF0(){if(!process.stdin.isTTY)return Promise.resolve();return new Promise(($)=>{let Z=process.stdin,J=()=>{Z.off("data",J),Z.setRawMode?.(!1),Z.pause(),$()};Z.setRawMode?.(!0),Z.resume(),Z.once("data",J)})}async function n_($){$.renderer?.destroy(),process.stdout.write(`
740
740
  rove ${R$} -> ${$.targetLabel}
741
741
  `),process.stdout.write(`running: ${$.command}
742
742
 
@@ -748,7 +748,7 @@ ${$.t("update.updateComplete")}
748
748
  ${$.t("update.updateFailed",{code:String(J)})}
749
749
  `),process.stdout.write($.t("update.pressAnyKey")),await RF0(),process.exit(J)}var Ww=d(()=>{d8()});import{spawn as TF0}from"child_process";import{TextAttributes as zU}from"@opentui/core";function SF0($){if(!$)return!1;let Z=process.platform,[J,X]=Z==="darwin"?["open",[$]]:Z==="win32"?["cmd",["/c","start","",$]]:["xdg-open",[$]];try{return TF0(J,X,{stdio:"ignore",detached:!0}).unref(),!0}catch{return!1}}function Hw($){return $.replace(/\r\n/g,`
750
750
  `).split(`
751
- `).map((Z)=>Z.trim()).filter(Boolean)}function hr($){let{theme:Z}=d0(),J=e0(),X=N4(),[z,G]=Qz.useState(null),[W,H]=Qz.useState([]),[U,B]=Qz.useState(!0),[M,O]=Qz.useState("update"),[L,j]=Qz.useState(null),A=z?.latest??R$,C=W[0]?.url??mT(A),_=[{id:"update",key:"U",label:J("update.actions.updateNow"),detail:VZ},{id:"release",key:"R",label:J("update.actions.openRelease"),detail:C??J("update.releaseUrlUnavailable")},{id:"close",key:"Q",label:J("update.actions.close"),detail:J("update.actions.closeDetail")}];Qz.useEffect(()=>{b()},[]);async function b(){let w=await bY({force:!0});G(w);let y=w?.latest??R$,f=await kT({current:R$,latest:y});H(f),B(!1)}function E(w){let y=_.map((p)=>p.id),h=(y.indexOf(M)+w+y.length)%y.length;O(y[h]??"update")}function I(w=M){if(w==="close"){$.onClose();return}if(w==="release"){j(SF0(C)?J("update.statusReleaseOpened"):J("update.statusReleaseError"));return}T()}async function T(){j(J("update.statusRunningUpdater")),await new Promise((w)=>setTimeout(w,30)),await n_({renderer:X,t:J,targetLabel:A,command:VZ})}return b1(()=>({bindings:[{key:"up",cmd:()=>E(-1)},{key:"down",cmd:()=>E(1)},{key:"k",cmd:()=>E(-1)},{key:"j",cmd:()=>E(1)},{key:"return",cmd:()=>I()},{key:"u",cmd:()=>I("update")},{key:"r",cmd:()=>I("release")},...s7(()=>I("close"))]})),R.jsxDEV("box",{flexDirection:"column",flexGrow:1,backgroundColor:Z.background,paddingTop:1,paddingLeft:2,paddingRight:2,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",flexShrink:0,children:[R.jsxDEV("text",{fg:Z.text,attributes:zU.BOLD,wrapMode:"none",children:J("update.pageTitle")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",onMouseUp:()=>I("close"),children:"q / esc"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",gap:2,flexShrink:0,paddingTop:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:J("update.current")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,attributes:zU.BOLD,wrapMode:"none",children:["v",R$]},void 0,!0,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:J("update.latest")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:z?.hasUpdate?Z.warning:Z.success,attributes:zU.BOLD,wrapMode:"none",children:["v",A]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"column",flexShrink:0,paddingTop:1,gap:0,children:_.map((w)=>R.jsxDEV("box",{flexDirection:"row",gap:1,paddingLeft:1,paddingRight:1,backgroundColor:M===w.id?Z.primary:void 0,onMouseUp:()=>I(w.id),children:[R.jsxDEV("box",{width:4,flexShrink:0,children:R.jsxDEV("text",{fg:M===w.id?Z.selectedListItemText:Z.accent,attributes:zU.BOLD,wrapMode:"none",children:["[",w.key,"]"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),R.jsxDEV("box",{width:14,flexShrink:0,children:R.jsxDEV("text",{fg:M===w.id?Z.selectedListItemText:Z.text,wrapMode:"none",children:w.label},void 0,!1,void 0,this)},void 0,!1,void 0,this),R.jsxDEV("text",{fg:M===w.id?Z.selectedListItemText:Z.textMuted,wrapMode:"word",children:w.detail},void 0,!1,void 0,this)]},w.id,!0,void 0,this))},void 0,!1,void 0,this),L?R.jsxDEV("text",{fg:Z.info,wrapMode:"word",children:L},void 0,!1,void 0,this):null,R.jsxDEV("box",{flexShrink:0,paddingTop:1,children:R.jsxDEV("text",{fg:Z.textMuted,attributes:zU.DIM,wrapMode:"none",children:J("update.changesSectionHeader",{from:R$,to:A})},void 0,!1,void 0,this)},void 0,!1,void 0,this),R.jsxDEV("scrollbox",{flexGrow:1,flexShrink:1,stickyScroll:!1,verticalScrollbarOptions:{trackOptions:{backgroundColor:Z.background,foregroundColor:Z.borderActive}},children:R.jsxDEV("box",{flexDirection:"column",paddingRight:1,paddingBottom:1,gap:0,children:[U?R.jsxDEV("text",{fg:Z.textMuted,children:J("update.loadingNotes")},void 0,!1,void 0,this):null,!U&&W.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:J("update.notesUnavailable")},void 0,!1,void 0,this):null,W.map((w)=>R.jsxDEV("box",{flexDirection:"column",paddingBottom:1,gap:0,children:[R.jsxDEV("text",{fg:Z.text,attributes:zU.BOLD,wrapMode:"none",children:["v",w.version]},void 0,!0,void 0,this),Hw(w.body).map((y,f)=>R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:y},`${f}:${y}`,!1,void 0,this))]},w.version,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Qz;var qw=d(async()=>{d8();X$();Ww();a0();await J$([v4(),Z$(),D4()]);Qz=z1(q1(),1)});import{TextAttributes as ur}from"@opentui/core";function IF0($){if(!$)return[];let Z=[];for(let J of $.listTasks())if(J.repo&&!Z.includes(J.repo))Z.push(J.repo);return Z}function EF0($,Z){let J=Date.parse($);if(!Number.isFinite(J))return"";let X=Math.round((Z-J)/60000);if(X<60)return`${Math.max(X,0)}m`;let z=Math.round(X/60);if(z<24)return`${z}h`;return`${Math.round(z/24)}d`}function cr($){let{theme:Z}=d0(),J=e0(),X=IF0($.orchestrator),[z,G]=F6.useState(()=>{let h=$.focusRepo?X.indexOf($.focusRepo):-1;return h>=0?h:0}),W=X[z],[H,U]=F6.useState(null),[B,M]=F6.useState(null),[O,L]=F6.useState(0),[j,A]=F6.useState(!1),[C,_]=F6.useState(!1),[b,E]=F6.useState(null);F6.useEffect(()=>{let h=!1,p=$.orchestrator;if(!p||!W){U([]);return}return M(null),p.listWorkItems({repo:W,limit:30,...j?{assignee:"@me"}:{},...O>0?{refresh:!0}:{}}).then((m)=>{if(!h)U(m.items)}).catch((m)=>{if(h)return;M(m instanceof Error?m.message:String(m)),U([])}),()=>{h=!0}},[$.orchestrator,W,j,O]);let I=H??[],[T,w]=F6.useState(0);F6.useEffect(()=>{w((h)=>w4(h,I.length))},[I.length]);async function y(){let h=$.orchestrator,p=I[T];if(!h||!p||!W||C)return;_(!0),E(J("workItems.starting",{number:p.number}));try{let m=await h.startWorkItem({repo:W,number:p.number});if(m.started)$.onOpenTask?.(m.taskId);else E(J("workItems.startedNoEngine",{title:m.title}))}catch(m){E(m instanceof Error?m.message:String(m))}finally{_(!1)}}b1(()=>({enabled:$.focused!==!1,bindings:[...s7($.onClose),{key:"j",cmd:()=>w((h)=>w4(h+1,I.length))},{key:"down",cmd:()=>w((h)=>w4(h+1,I.length))},{key:"k",cmd:()=>w((h)=>w4(h-1,I.length))},{key:"up",cmd:()=>w((h)=>w4(h-1,I.length))},{key:"tab",cmd:()=>G((h)=>X.length?(h+1)%X.length:0)},{key:"a",cmd:()=>A((h)=>!h)},{key:"r",cmd:()=>L((h)=>h+1)},{key:"return",cmd:()=>void y()}]}));let f=Date.now();return R.jsxDEV("box",{flexDirection:"column",flexGrow:1,padding:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{attributes:ur.BOLD,fg:Z.accent,children:J("workItems.title")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,children:[W?_9(W,X):J("workItems.noRepo"),j?` ${J("workItems.assignedFilter")}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),B?R.jsxDEV("box",{flexDirection:"column",marginTop:1,children:R.jsxDEV("text",{fg:Z.error,children:B},void 0,!1,void 0,this)},void 0,!1,void 0,this):H===null?R.jsxDEV("text",{fg:Z.textMuted,children:J("common.loading")},void 0,!1,void 0,this):I.length===0?R.jsxDEV("text",{fg:Z.textMuted,children:J("workItems.empty")},void 0,!1,void 0,this):R.jsxDEV("box",{flexDirection:"column",marginTop:1,flexGrow:1,children:I.map((h,p)=>{let m=HX(Z,{cursor:p===T,selected:!1});return R.jsxDEV("box",{flexDirection:"column",flexShrink:0,...m.backgroundColor?{backgroundColor:m.backgroundColor}:{},children:[R.jsxDEV("box",{flexDirection:"row",gap:0,children:[R.jsxDEV("text",{fg:m.markerColor,wrapMode:"none",children:m.marker},void 0,!1,void 0,this),R.jsxDEV("box",{flexDirection:"row",flexGrow:1,paddingLeft:1,paddingRight:1,gap:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:`#${h.number}`},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,attributes:p===T?ur.BOLD:void 0,wrapMode:"none",flexGrow:1,children:h.title},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",gap:0,children:[R.jsxDEV("text",{fg:m.markerColor,wrapMode:"none",children:m.marker},void 0,!1,void 0,this),R.jsxDEV("box",{flexDirection:"row",flexGrow:1,paddingLeft:2,paddingRight:1,gap:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",flexGrow:1,children:[h.author,...h.labels.slice(0,2)].filter(Boolean).join(" \xB7 ")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:EF0(h.updatedAt,f)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},`${h.number}`,!0,void 0,this)})},void 0,!1,void 0,this),b?R.jsxDEV("text",{fg:Z.textMuted,children:b},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var F6;var dr=d(async()=>{p8();i8();X$();a0();await J$([Z$(),D4()]);F6=z1(q1(),1)});import{TextAttributes as lr}from"@opentui/core";function pr($){return $.flatMap((Z)=>Z.worktrees)}function yF0($,Z){let J=(z)=>z.replace(/^\/private\//,"/").replace(/\/+$/,""),X=J(Z);return $.listTasks().find((z)=>z.worktreePath&&J(z.worktreePath)===X)?.id}function nr($){let{theme:Z}=d0(),J=o$(),X=e0(),[z,G]=FX.useState(null),[W,H]=FX.useState(0),U=()=>H((h)=>h+1);FX.useEffect(()=>{let h=!1,p=!1,m=$.orchestrator;if(!m){G([]);return}return m.listWorktrees({network:!1}).then((t)=>{if(!h&&!p)G(t)}).catch(()=>{}),m.listWorktrees().then((t)=>{if(p=!0,h)return;G(t);let s=new Set(pr(t).map((G0)=>G0.path));M((G0)=>G0.filter((U0)=>s.has(U0)))}).catch(()=>{}),()=>{h=!0}},[$.orchestrator,W]);let[B,M]=FX.useState([]),O=(z??[]).map((h)=>({...h,worktrees:h.worktrees.filter((p)=>!B.includes(p.path))})),L=pr(O),[j,A]=FX.useState(0);FX.useEffect(()=>{A((h)=>w4(h,L.length))},[L.length]);let[C,_]=FX.useState(null);async function b(h,p){let m=$.orchestrator;if(!m)return;M((t)=>[...t,h.path]);try{await m.removeWorktree(h.path,p),U()}catch(t){if(M((s)=>s.filter((G0)=>G0!==h.path)),!p&&t instanceof Error&&wF0.test(t.message)){if(await O4.show(J,X("worktrees.delete.forceTitle"),X("worktrees.delete.forceBody",{branch:h.branch||h.path}),X("common.cancel"),X("worktrees.delete.button"))===!0)await b(h,!0);return}console.error(`[rove worktrees] ${X("worktrees.delete.failed",{error:String(t)})}`)}}async function E(h){if(!$.orchestrator||C||B.includes(h.path))return;if(await O4.show(J,X("worktrees.delete.confirmTitle"),X("worktrees.delete.confirmBody",{branch:h.branch||h.path}),X("common.cancel"),X("worktrees.delete.button"))!==!0)return;b(h,!1)}async function I(h){let p=$.orchestrator;if(!p||C)return;let m=yF0(p,h.path);if(!m){console.error(`[rove worktrees] ${X("worktrees.land.noTask")}`);return}if(await O4.show(J,X("worktrees.land.confirmTitle"),X("worktrees.land.confirmBody",{branch:h.branch||h.path}),X("common.cancel"),X("worktrees.land.button"))!==!0)return;_(h.path);try{let s=await p.landTask(m);console.error(`[rove worktrees] ${X("worktrees.land.done",{branch:s.branch,landedOn:s.landedOn,commit:s.commit})}`),U()}catch(s){let G0=s instanceof Error?s.message:String(s);if(xF0.test(G0))console.error(`[rove worktrees] ${X("worktrees.land.conflict",{files:G0})}`);else if(fF0.test(G0))console.error(`[rove worktrees] ${X("worktrees.land.dirtyBase")}`);else console.error(`[rove worktrees] ${X("worktrees.land.failed",{error:G0})}`)}finally{_(null)}}b1(()=>({enabled:J.stack.length===0,bindings:[...s7($.onClose),{key:"up",cmd:()=>A((h)=>w4(h-1,L.length))},{key:"down",cmd:()=>A((h)=>w4(h+1,L.length))},{key:"d",cmd:()=>{let h=L[j];if(h)E(h)}},{key:"l",cmd:()=>{let h=L[j];if(h)I(h)}}]}));function T(h){if(h===!0)return R.jsxDEV("text",{fg:Z.success,children:[" ",X("worktrees.badge.remoteOn")]},void 0,!0,void 0,this);if(h===!1)return R.jsxDEV("text",{fg:Z.warning,children:[" ",X("worktrees.badge.remoteOff")]},void 0,!0,void 0,this);return R.jsxDEV("text",{fg:Z.textMuted,children:[" ",X("worktrees.badge.remoteUnknown")]},void 0,!0,void 0,this)}function w(h){if(h.verdictReason==="dirty"||h.verdictReason==="fresh")return null;let p=h.verdict==="merged"?Z.success:h.verdict==="stale"?Z.warning:Z.accent;return R.jsxDEV("text",{fg:p,children:[" ",X(`worktrees.verdict.${h.verdictReason}`)]},void 0,!0,void 0,this)}let y=z===null,f=0;return R.jsxDEV("scrollbox",{flexGrow:1,backgroundColor:Z.background,paddingTop:1,paddingLeft:2,paddingRight:2,paddingBottom:1,verticalScrollbarOptions:{trackOptions:{foregroundColor:"transparent"}},children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:R.jsxDEV("text",{attributes:lr.BOLD,fg:Z.text,children:X("worktrees.title")},void 0,!1,void 0,this)},void 0,!1,void 0,this),y?R.jsxDEV("text",{fg:Z.textMuted,children:X("worktrees.loading")},void 0,!1,void 0,this):O.length===0?R.jsxDEV("text",{fg:Z.textMuted,children:X("worktrees.noProjects")},void 0,!1,void 0,this):O.map((h)=>{let p=f;return f+=h.worktrees.length,R.jsxDEV("box",{gap:0,paddingTop:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:h.repo},void 0,!1,void 0,this),h.worktrees.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:X("worktrees.noWorktrees")},void 0,!1,void 0,this):h.worktrees.map((m,t)=>{let s=p+t,G0=s===j;return R.jsxDEV("box",{gap:0,onMouseUp:()=>A(s),children:[R.jsxDEV("box",{flexDirection:"row",children:[R.jsxDEV("text",{fg:G0?Z.primary:Z.text,attributes:G0?lr.BOLD:void 0,wrapMode:"none",children:[G0?"\u25B8 ":" ",m.branch||X("worktrees.row.detached")]},void 0,!0,void 0,this),m.kobeManaged?R.jsxDEV("text",{fg:Z.textMuted,children:[" ",X("worktrees.badge.kobeManaged")]},void 0,!0,void 0,this):null,m.dirty?R.jsxDEV("text",{fg:Z.warning,children:[" ",X("worktrees.badge.dirty")]},void 0,!0,void 0,this):null,T(m.branchOnRemote),w(m),C===m.path?R.jsxDEV("text",{fg:Z.textMuted,children:" \u2026"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",paddingLeft:2,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:m.path},void 0,!1,void 0,this),m.createdAtMs>0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:X("worktrees.row.created",{age:NG(m.createdAtMs)})},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},m.path,!0,void 0,this)})]},h.repo,!0,void 0,this)})]},void 0,!0,void 0,this)}var FX,wF0,xF0,fF0;var ir=d(async()=>{p8();d_();X$();a0();await J$([Z$(),D4(),C5(),TZ()]);FX=z1(q1(),1);wF0=/refusing to remove dirty worktree/,xF0=/LAND_CONFLICT/,fF0=/MAIN_CHECKOUT_DIRTY/});function or($){let[Z,J]=QM.useState(!1),[X,z]=QM.useState(!1),[G,W]=QM.useState(!1),[H,U]=QM.useState("terminal"),B=(M)=>{U(M),$.setFocused(aa(M))};return{nav:H,setNav:U,goToNav:B,settingsOpen:Z,openSettings:()=>J(!0),closeSettings:()=>J(!1),worktreesOpen:X,openWorktrees:()=>z(!0),closeWorktrees:()=>z(!1),updateOpen:G,openUpdate:()=>W(!0),closeUpdate:()=>W(!1),kanbanOpen:H==="kanban",openKanban:()=>B("kanban"),closeKanban:()=>B("terminal"),automationsOpen:H==="automations",openAutomations:()=>B("automations"),closeAutomations:()=>B("terminal"),workItemsOpen:H==="issues",openWorkItems:()=>B("issues"),closeWorkItems:()=>B("terminal")}}function ar($){if($.worktreesOpen)return R.jsxDEV(nr,{orchestrator:$.orchestrator,onClose:$.closeWorktrees},void 0,!1,void 0,this);if($.updateOpen)return R.jsxDEV(hr,{onClose:$.closeUpdate},void 0,!1,void 0,this);return null}function rr($){let Z=$.orchestrator;if($.automationsOpen)return R.jsxDEV(Br,{orchestrator:Z,focused:$.contentFocused,...$.selectedTask?{focusRepo:$.selectedTask.repo}:{},onClose:$.closeAutomations,onOpenTask:(J)=>{$.closeAutomations(),$.activateTask(J)}},void 0,!1,void 0,this);if($.workItemsOpen)return R.jsxDEV(cr,{orchestrator:Z,focused:$.contentFocused,onClose:$.closeWorkItems,...$.selectedTask?{focusRepo:$.selectedTask.repo}:{},onOpenTask:(J)=>{$.closeWorkItems(),$.activateTask(J)}},void 0,!1,void 0,this);if($.kanbanOpen)return R.jsxDEV(kr,{orchestrator:Z,focused:$.contentFocused,onClose:$.closeKanban,onStartChat:$.startIssueChat,engineStates:$.engineStates,focusTask:$.selectedTask?{id:$.selectedTask.id,repo:$.selectedTask.repo}:void 0,onOpenTask:(J)=>{$.closeKanban(),$.activateTask(J)}},void 0,!1,void 0,this);return null}var QM;var sr=d(async()=>{dE();a0();await J$([Kr(),mr(),qw(),dr(),ir()]);QM=z1(q1(),1)});function tr($){let Z=$.scheduleTimeout??((U,B)=>{let M=setTimeout(U,B);return()=>clearTimeout(M)}),J=!1,X=null,z=()=>{J=!0,X?.(),X=Z(()=>{J=!1,X=null},700)},G=()=>{J=!1,X?.(),X=null},W=(U)=>{let B=$.getFlatIds();if(B.length===0)return;let M=$.getCursor(),O=M<0?0:M,L=Math.min(B.length-1,Math.max(0,O+U));$.setCursor(L)},H=(U)=>{let B=$.getFlatIds();if(B.length===0)return;$.setCursor(Math.min(B.length-1,Math.max(0,U)))};return{moveDown(){G(),W(1)},moveUp(){G(),W(-1)},selectCurrent(){G();let U=$.getFlatIds(),B=$.getCursor();if(B<0||B>=U.length)return;let M=U[B];if(M!==void 0)$.onSelect(M)},pressG(){if(J)G(),H(0);else z()},pressShiftG(){G(),H($.getFlatIds().length-1)},isChordArmed(){return J},disarmChord(){G()}}}import{homedir as gF0}from"os";function $s($,Z){if(!Z)return[...$];return[{kind:"recent",id:YU,task:Z,depth:1},...$]}function jG($,Z){return`${$}${Uw}${Z}`}function zz($){let Z=$.indexOf(Uw);if(Z<0)return{taskId:$,tabId:null};return{taskId:$.slice(0,Z),tabId:$.slice(Z+Uw.length)}}function Zs($,Z={}){let J=(Z.liveBranch??$.branch)||$.branch;if(J)return J;if($.kind!=="dir"&&$.title)return $.title;let X=$.worktreePath||$.repo;if(X){let z=Z.home??gF0(),G=z&&(X===z||X.startsWith(`${z}/`))?`~${X.slice(z.length)}`:X;return lj(G,bF0)}return $.title||"scratch"}function Js($){let{tasks:Z,tabsByTask:J}=$,X=new Map,z=Z.filter((U)=>U.kind==="dir"&&U.scratch===!0);for(let U of Z){if(U.kind==="dir"&&U.scratch===!0)continue;let B=MG(U.repo),M=X.get(B)??{repo:U.repo,tasks:[]};if(U.kind==="main")M.repo=U.repo,M.tasks.unshift(U);else M.tasks.push(U);X.set(B,M)}let G=[],W=new Set;for(let U of Z){if(U.kind!=="main")continue;let B=MG(U.repo);if(!W.has(B))W.add(B),G.push(B)}for(let U of X.keys())if(!W.has(U))W.add(U),G.push(U);let H=[];if(z.length>0){H.push({kind:"project",id:i_,repo:"",label:"Scratch",depth:0});for(let U of z){let B=J.get(U.id)??[];if(B.length===0){H.push({kind:"worktree",id:U.id,task:U,depth:1});continue}for(let M of B)H.push({kind:"tab",id:jG(U.id,M.id),task:U,tab:M,depth:2})}}for(let U of G){let B=X.get(U);if(!B)continue;H.push({kind:"project",id:U,repo:B.repo,label:U6(B.repo),depth:0});for(let M of B.tasks)vF0(H,M,J)}return H}function vF0($,Z,J){$.push({kind:"worktree",id:Z.id,task:Z,depth:1});for(let X of J.get(Z.id)??[])$.push({kind:"tab",id:jG(Z.id,X.id),task:Z,tab:X,depth:2})}function Bw($){let Z=[];for(let J of $)if(J.kind!=="project")Z.push(J.id);return Z}function er($){if($.kind==="dir"&&$.scratch===!0)return i_;return MG($.repo)}function kF0($){if($.kind==="project")return $.label;if($.kind==="tab")return $.tab.label;return`${$.task.title} ${$.task.branch??""} ${U6($.task.repo)}`}function Xs($,Z){let J=Z.trim();if(J==="")return[...$];let X=new Set,z=new Set;for(let W of $){if(!sE(J,kF0(W)))continue;if(X.add(W.id),z.add(W.id),W.kind==="project")continue;if(W.kind==="tab")z.add(W.task.id);let H=er(W.task);if(H!==null)z.add(H)}let G=[];for(let W of $){if(W.kind==="project"){if(z.has(W.id))G.push(W);continue}let H=er(W.task),U=H!==null&&X.has(H);if(W.kind==="worktree"){if(U||z.has(W.id))G.push(W);continue}if(U||X.has(W.task.id)||z.has(W.id))G.push(W)}return G}function Qs($,Z){for(let J of $){if(J.kind!=="main")continue;if(MG(J.repo)===Z)return String(J.id)}return null}function zs($){if($.tabActivity!==void 0)return $.tabActivity;if(!$.active||$.reportedTabCount>0)return;return $.taskActivity}var Uw="::",YU="~recent",i_="~scratch",bF0=24;var GU=d(()=>{i8()});function Gs($){let Z=$.maxWidth??mF0,J=Math.max(1,...$.lines.map((W)=>zc(W.text))),X=Math.min(Z-4,J),z=X+4,G=$.lines.length+2;return{innerWidth:X,boxWidth:z,boxHeight:G,left:Math.max(0,Math.min($.hoverX+2,$.screenWidth-z-1)),top:Math.max(0,Math.min($.hoverY+1,$.screenHeight-G-1))}}var Ys=2750,mF0=72;var Ws=d(()=>{i8()});function Hs($,Z){return CZ($,Z)}var Kw=()=>{};import{TextAttributes as hF0}from"@opentui/core";function qs($){let{theme:Z}=d0();if($.entries.length===0)return null;let J=Gs({hoverX:$.x,hoverY:$.y,screenWidth:$.dims.width,screenHeight:$.dims.height,lines:$.entries.map((X)=>({text:X.label}))});return R.jsxDEV("box",{position:"absolute",zIndex:uF0,left:J.left,top:J.top,width:J.boxWidth,flexDirection:"column",border:!0,borderColor:Z.focusAccent,backgroundColor:Z.backgroundElement,paddingLeft:1,paddingRight:1,onMouseDown:(X)=>X.stopPropagation(),children:$.entries.map((X,z)=>{let G=z===$.cursor;return R.jsxDEV("box",{flexShrink:0,backgroundColor:G?Z.focusAccent:void 0,onMouseUp:()=>$.onPick(X.id),children:R.jsxDEV("text",{fg:G?Z.backgroundElement:X.danger?Z.error:Z.text,attributes:G?hF0.BOLD:void 0,wrapMode:"none",flexGrow:1,children:Hs(X.label,J.innerWidth)},void 0,!1,void 0,this)},X.id,!1,void 0,this)})},void 0,!1,void 0,this)}var uF0;var Us=d(async()=>{Ws();Kw();a0();await Z$();uF0=Ys+10});function Bs($=process.platform){return $==="darwin"?"\u262F":"\u25D0"}import{MouseButton as cF0,TextAttributes as D9}from"@opentui/core";function Ks($){let{theme:Z,transparentBackground:J}=d0(),X=J?Z.border:Z.borderSubtle;return R.jsxDEV("box",{flexDirection:"column",flexShrink:0,children:[$.topPad?R.jsxDEV("box",{flexShrink:0,children:R.jsxDEV("text",{wrapMode:"none",children:" "},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,R.jsxDEV("box",{flexDirection:"row",flexShrink:0,gap:1,paddingLeft:1,paddingRight:1,onMouseUp:$.onPress||$.onContextMenu?(z)=>{if(z.button===cF0.RIGHT&&$.onContextMenu){$.onContextMenu(z.x,z.y);return}$.onPress?.()}:void 0,children:[$.prefix?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",flexShrink:0,children:$.prefix},void 0,!1,void 0,this):null,R.jsxDEV("text",{fg:Z.textMuted,attributes:D9.BOLD,wrapMode:"none",flexShrink:0,children:$.label},void 0,!1,void 0,this),R.jsxDEV("text",{fg:X,wrapMode:"none",flexBasis:0,flexGrow:1,flexShrink:1,children:"\u2500".repeat(240)},void 0,!1,void 0,this),$.suffix?R.jsxDEV("text",{fg:Z.info,attributes:D9.BOLD,wrapMode:"none",flexShrink:0,children:$.suffix},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Fs($){let{theme:Z}=d0(),J=e0();return R.jsxDEV("box",{flexDirection:"row",gap:0,flexShrink:0,paddingBottom:1,paddingLeft:1,children:[R.jsxDEV("text",{fg:Z.info,wrapMode:"none",children:"/"},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,wrapMode:"none",children:$.query},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.info,attributes:D9.BLINK,wrapMode:"none",children:"\u2588"},void 0,!1,void 0,this),$.query.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:[" ",J("tasks.search.placeholder")]},void 0,!0,void 0,this):R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:[" ",$.matchCount,"/",$.totalCount]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Ms($){let{theme:Z}=d0();return R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",gap:1,flexShrink:0,paddingLeft:1,paddingRight:1,children:R.jsxDEV("box",{flexDirection:"row",gap:1,children:[R.jsxDEV("text",{fg:$.focused?Z.focusAccent:Z.textMuted,attributes:D9.BOLD,wrapMode:"none",children:"ROVE"},void 0,!1,void 0,this),$.status?R.jsxDEV("text",{fg:$.status.emphasize?Z.warning:Z.textMuted,attributes:$.status.emphasize?D9.BOLD:D9.DIM,wrapMode:"none",onMouseUp:()=>$.onStatusClick?.(),children:$.status.label},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function Ls($){let{theme:Z,transparentBackground:J}=d0(),X=e0(),z=K9("task.new");if(!$.onAddTask)return null;return R.jsxDEV("box",{flexShrink:0,paddingTop:1,paddingBottom:1,paddingLeft:1,paddingRight:1,children:R.jsxDEV("box",{flexDirection:"row",flexShrink:0,gap:1,paddingLeft:1,paddingRight:1,backgroundColor:J?void 0:Z.backgroundElement,onMouseUp:()=>$.onAddTask?.(),children:[R.jsxDEV("text",{fg:Z.primary,attributes:D9.BOLD,wrapMode:"none",flexShrink:0,children:"+"},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,attributes:D9.BOLD,wrapMode:"none",flexGrow:1,children:X("tasks.menu.newTask")},void 0,!1,void 0,this),z?R.jsxDEV("text",{fg:Z.textMuted,attributes:D9.DIM,wrapMode:"none",flexShrink:0,children:z},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function Ns($){let{theme:Z}=d0(),J=e0();return R.jsxDEV("box",{flexDirection:"column",flexShrink:0,paddingBottom:1,children:oa.map((X)=>{let z=$.nav===X.nav;return R.jsxDEV("box",{flexDirection:"row",flexShrink:0,paddingLeft:1,paddingRight:1,backgroundColor:z?Z.focusAccent:void 0,onMouseUp:(G)=>{G.stopPropagation(),$.setNav(X.nav)},children:R.jsxDEV("text",{fg:z?Z.backgroundElement:Z.textMuted,attributes:z?D9.BOLD:void 0,wrapMode:"none",flexGrow:1,children:J(X.labelKey)},void 0,!1,void 0,this)},X.nav,!1,void 0,this)})},void 0,!1,void 0,this)}function Os($){let{theme:Z}=d0();return R.jsxDEV("box",{flexShrink:0,paddingLeft:1,paddingRight:1,paddingTop:1,children:R.jsxDEV("text",{fg:Z.accent,attributes:D9.BOLD,wrapMode:"none",onMouseUp:(J)=>{J.stopPropagation(),$.onZenClick?.()},children:`${Bs()} ZEN`},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var Fw=d(async()=>{RV();dE();X$();a0();await Z$()});function o_($){let Z=new Map,J=$.equals??((z,G)=>z===G);function X(z){let G=Z.get(z);if(!G){let W=$.initial;G={read:()=>W,write:(H)=>{if(!J(W,H))W=H},inFlight:!1,nextAllowedAt:0},Z.set(z,G)}return G}return{read(z){if(!z)return $.initial;return X(z).read()},poll(z){if(!z)return;let G=X(z);zv(G,$,(W)=>$.run(z,W),(W)=>G.write(W))},reset(){Z.clear()}}}var zM=d(()=>{uH();uH()});import{stat as dF0}from"fs/promises";import{join as lF0}from"path";async function oF0($){try{let Z=await dF0(lF0($,".git","HEAD"));return`${Z.mtimeMs}:${Z.size}`}catch{return null}}async function aF0($,Z,J=G9){let X=await oF0($);if(X!==null){let U=js.get($);if(U&&U.fingerprint===X)return U.value}let z="",G=!1,W=await J("git",["symbolic-ref","--short","HEAD"],{cwd:$,env:Q8(),signal:Z}),H=W.status===0?W.stdout.trim():"";if(H&&H!=="HEAD")z=H,G=!0;else if((await J("git",["rev-parse","--verify","HEAD"],{cwd:$,env:Q8(),signal:Z})).status===0)z="(detached)",G=!0;if(G&&X!==null)js.set($,{fingerprint:X,value:z});return z}function Mw($){return Vs.read($)}function Lw($){Vs.poll($)}var pF0=2000,nF0=30000,iF0=1500,js,Vs;var Nw=d(()=>{pJ();zM();js=new Map;Vs=o_({initial:"",timeoutMs:pF0,slowRetryMs:nF0,minIntervalMs:iF0,run:($,Z)=>aF0($,Z)})});var a_;var Ow=d(()=>{a_=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function rF0($){switch($){case"rate_limited":return{text:W$("tasks.activity.rateLimited"),tone:"warning"};case"permission_needed":return{text:W$("tasks.activity.permissionNeeded"),tone:"warning"};case"error":return{text:W$("tasks.activity.error"),tone:"error"};default:return null}}function jw($){switch($.prStatus?.checkState){case"passing":return{glyph:"\u2713",tone:"success"};case"failing":return{glyph:"\u2717",tone:"error"};case"pending":return{glyph:"\u2022",tone:"warning"};default:return null}}function sF0(){return W$("tasks.subtitle.noTracking")}function tF0(){return W$("tasks.subtitle.materializing")}function eF0($){return $?W$("tasks.subtitle.deleteFailed"):W$("tasks.subtitle.deleting")}function As($){if($.kind==="main")return!1;return $.vendor!==void 0&&!p5($.vendor)}function Ps($,Z){if($?.state!=="turn_complete"||!Z)return!1;if(!$.at||!Z.mtimeMs)return!1;return Z.mtimeMs>$.at+$M0}function ZM0($){let{task:Z}=$,J=$.activity?.state,X=J!==void 0,z=As(Z)&&!X,G=$.job!==void 0,W=Z.deletion?.phase==="queued"||Z.deletion?.phase==="running",H=J==="running"||Ps($.activity,$.transcript);return W||G||!z&&H}function _w($){let{task:Z}=$,J=Z.kind==="main",X=J?$.mainBranch??"":Z.branch,z=$.activity?.state,G=z!==void 0,H=Ps($.activity,$.transcript)?null:JM0(z,$.completionSeen===!0),U=rF0(z),B=As(Z)&&!G,M=$.job!==void 0,O=Z.deletion?.phase==="queued"||Z.deletion?.phase==="running",L=Z.deletion?.phase==="error",j=ZM0({task:Z,activity:$.activity,job:$.job,transcript:$.transcript}),A=a_,C=A[$.spinnerFrame%A.length]??A[0],_=L?"error":O||M?"primary":B?"textMuted":U?.tone??(j?"primary":H?.tone??"textMuted"),b=B?sF0():"\u2014",E=j?$.lifecycle?.subagents??0:0,I=E>0&&X.length>0?`\u25C7${E} ${X}`:X,T=O||L?$.truncateBranch(eF0(L),$.subtitleBudget):M?$.truncateBranch(tF0(),$.subtitleBudget):U?$.truncateBranch(U.text,$.subtitleBudget):I.length>0?$.truncateBranch(I,$.subtitleBudget):$.truncateBranch(b,$.subtitleBudget),w=L?Ds:B?Vw:H?.glyph??"\u25CB";return{isMain:J,titleText:J?U6(Z.repo):Z.title,subtitleText:T,loading:j,stateGlyph:j?C:w,tone:_,spinnerFrames:A,materializing:M}}function Cw($,Z){if(!$.loading)return $;let J=$.spinnerFrames,X=J[Z()%J.length]??J[0]??"\u280B";if(X===$.stateGlyph)return $;return{...$,stateGlyph:X}}function JM0($,Z){switch($){case"rate_limited":return{glyph:"\u25F7",tone:"warning"};case"permission_needed":return{glyph:"?",tone:"warning"};case"error":return{glyph:Ds,tone:"error"};case"turn_complete":return Z?null:{glyph:"\u25CF",tone:"primary"};default:return null}}var _s=100,Cs=600,Vw="\xB7",Ds="\xD7",$M0=2000;var r_=d(()=>{Ow();RZ();P7();i8()});function XM0(){t_=(t_+1)%Cs;for(let $ of s_)try{$()}catch{}}function e_(){return t_}function $C($){if(s_.add($),WU===null)WU=setInterval(XM0,_s),WU.unref?.();return()=>{if(s_.delete($),s_.size===0&&WU!==null)clearInterval(WU),WU=null,t_=0}}var s_,t_=0,WU=null;var Dw=d(()=>{r_();s_=new Set});function Ts($){return Rs.read($)}function Ss($){Rs.poll($)}var QM0=4000,zM0=60000,YM0=1500,GM0,Rs;var Is=d(()=>{pJ();zM();Wq();zM();GM0={added:0,deleted:0},Rs=o_({initial:GM0,equals:MF,timeoutMs:QM0,slowRetryMs:zM0,minIntervalMs:YM0,run:async($,Z)=>{let J=await G9("git",["status","--porcelain=v1"],{cwd:$,env:Q8(),signal:Z});if(J.status!==0)throw Error("git status failed");return Gq(J.stdout)}})});function Aw($,Z){return Z===void 0?$:`${$}\x00${Z}`}function WM0($){if(typeof $!=="object"||$===null||Array.isArray($))return{};let Z={};for(let[J,X]of Object.entries($))if(typeof X==="number"&&Number.isFinite(X))Z[J]=X;return Z}function HM0($,Z,J,X=200){let z=$[Z];if(z!==void 0&&z>=J)return $;let G={...$,[Z]:J},W=Object.keys(G);if(W.length<=X)return G;let H={};for(let U of W.sort((B,M)=>G[M]-G[B]).slice(0,X))H[U]=G[U];return H}function Es($,Z,J){if(!$||J===void 0)return!1;let X=$.get("completionSeen");if(typeof X!=="object"||X===null||Array.isArray(X))return!1;let z=X[Z];return typeof z==="number"&&z>=J}function ws($,Z,J){let X=WM0($.get("completionSeen")),z=HM0(X,Z,J);if(z!==X)$.set("completionSeen",z)}import{TextAttributes as k01}from"@opentui/core";function xs($){return HU.useSyncExternalStore($?$C:qM0,$?e_:UM0)}function fs($,Z){let J=HS($.worktreeChanges,Z.worktreePath),X=J!==null;return HU.useEffect(()=>{if($.branchTick,X||Z.archived)return;Ss(Z.worktreePath)},[X,Z.archived,Z.worktreePath,$.branchTick]),J??Ts(Z.worktreePath)}function ys($){let{theme:Z}=d0();if($.changes.added<=0&&$.changes.deleted<=0)return null;return R.jsxDEV("box",{flexDirection:"row",gap:1,flexShrink:0,children:[$.changes.added>0?R.jsxDEV("text",{fg:Z.success,wrapMode:"none",flexShrink:0,children:["+",$.changes.added]},void 0,!0,void 0,this):null,$.changes.deleted>0?R.jsxDEV("text",{fg:Z.error,wrapMode:"none",flexShrink:0,children:["\u2212",$.changes.deleted]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}function gs($,Z,J,X,z=!1){let G=Aw($,X);if(Z==="turn_complete"){if(J)Pw.add(G)}else Pw.delete(G);return Pw.has(G)||z}function bs($){return $?.state==="turn_complete"?$.at:void 0}function vs($,Z,J,X){let z=rQ(),G=Aw($,Z),W=Es(z,G,J);return HU.useEffect(()=>{if(!z||!X||J===void 0||W)return;ws(z,G,J)},[z,G,J,X,W]),W}function Rw($){return null}var HU,qM0=()=>()=>{},UM0=()=>0,Pw;var ks=d(async()=>{hI();Dw();Nw();Kw();r_();hQ();Wq();Is();A3();X$();a0();await Z$();HU=z1(q1(),1);Pw=new Set});import{MouseButton as BM0}from"@opentui/core";function hs($){let{theme:Z}=d0(),J=e0();if($.shared.movingRowId!==$.rowId)return null;return R.jsxDEV("text",{fg:Z.info,wrapMode:"none",flexShrink:0,children:J("tasks.moveChip").trim()},void 0,!1,void 0,this)}function Tw($){let{theme:Z}=d0(),J=$.shared,X=HX(Z,{cursor:J.cursorIndex===$.flatIndex,selected:J.activeRowId===$.rowId});return R.jsxDEV("box",{ref:(z)=>{if(!z)return;return J.rowEls.set($.flatIndex,z),()=>{if(J.rowEls.get($.flatIndex)===z)J.rowEls.delete($.flatIndex)}},width:"100%",flexDirection:"row",gap:0,backgroundColor:X.backgroundColor,onMouseUp:(z)=>{if(z.stopPropagation(),z.button===BM0.RIGHT&&J.onContextMenu){J.onContextMenu($.flatIndex,$.rowId,z.x,z.y);return}J.onPress($.flatIndex,$.rowId)},children:[R.jsxDEV("text",{fg:X.markerColor,wrapMode:"none",children:X.marker},void 0,!1,void 0,this),R.jsxDEV("text",{wrapMode:"none",flexShrink:0,children:" ".repeat($.depth*KM0)},void 0,!1,void 0,this),$.children]},void 0,!0,void 0,this)}function us($){let{theme:Z}=d0(),J=$.shared,X=$.task,z=J.cursorIndex===$.flatIndex,G=fs(J,X),W=jw(X),H=X.kind==="main";ms.useEffect(()=>{if(J.branchTick,H)Lw(X.repo)},[H,X.repo,J.branchTick]);let U=Zs(X,H?{liveBranch:Mw(X.repo)}:{});return R.jsxDEV(Tw,{rowId:$.rowId,flatIndex:$.flatIndex,depth:1,shared:J,children:R.jsxDEV("box",{flexDirection:"row",flexGrow:1,paddingRight:1,gap:1,children:[R.jsxDEV("text",{fg:Z.text,wrapMode:"none",flexBasis:0,flexGrow:1,flexShrink:1,children:U},void 0,!1,void 0,this),X.pinned===!0?R.jsxDEV("text",{fg:Z.warning,wrapMode:"none",flexShrink:0,children:"\u25B4"},void 0,!1,void 0,this):null,W?R.jsxDEV("text",{fg:pj(Z,W.tone),wrapMode:"none",flexShrink:0,children:W.glyph},void 0,!1,void 0,this):null,R.jsxDEV(ys,{changes:G},void 0,!1,void 0,this),R.jsxDEV(hs,{rowId:$.rowId,shared:J},void 0,!1,void 0,this),R.jsxDEV(Rw,{flatIndex:$.flatIndex,dim:!z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function cs($){let{theme:Z}=d0(),J=$.shared,X=J.cursorIndex===$.flatIndex,z=$.tab.engine===!0,G=z?J.engineTabState?.get($.task.id):void 0,W=z?zs({tabActivity:G?.get($.tab.id),reportedTabCount:G?.size??0,taskActivity:J.engineState?.get($.task.id),active:$.tab.active===!0}):void 0,H=W!==void 0,U=J.selectedTaskId===$.task.id&&$.tab.active===!0,B=vs($.task.id,$.tab.id,H?bs(W):void 0,U),M=H?gs($.task.id,W?.state,U,$.tab.id,B):!1,O=_w({task:$.task,activity:W,lifecycle:H?J.engineLifecycle?.get($.task.id):void 0,job:H?J.taskJobs?.get($.task.id):void 0,spinnerFrame:0,subtitleBudget:0,truncateBranch:OS,completionSeen:M}),L=xs(H&&O.loading),j=Cw(O,()=>L),A=z&&H?j.stateGlyph:Vw;return R.jsxDEV(Tw,{rowId:$.rowId,flatIndex:$.flatIndex,depth:1,shared:$.shared,children:[R.jsxDEV("text",{fg:H?pj(Z,j.tone):Z.textMuted,wrapMode:"none",width:2,flexShrink:0,children:`${A} `},void 0,!1,void 0,this),R.jsxDEV("box",{flexDirection:"row",flexGrow:1,paddingRight:1,gap:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",flexBasis:0,flexGrow:1,flexShrink:1,children:$.tab.label},void 0,!1,void 0,this),R.jsxDEV(hs,{rowId:$.rowId,shared:J},void 0,!1,void 0,this),R.jsxDEV(Rw,{flatIndex:$.flatIndex,dim:!X},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function ds($){let{theme:Z}=d0(),J=e0();return R.jsxDEV(Tw,{rowId:$.rowId,flatIndex:$.flatIndex,depth:1,shared:$.shared,children:[R.jsxDEV("text",{fg:Z.accent,wrapMode:"none",width:2,flexShrink:0,children:"\u21A9 "},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,wrapMode:"none",flexShrink:1,children:J("tasks.recentJump",{title:$.task.title})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var ms,KM0=1;var ls=d(async()=>{Nw();r_();GU();hQ();X$();a0();await J$([Z$(),ks()]);ms=z1(q1(),1)});function ps($){let{theme:Z}=d0(),J=e0();return R.jsxDEV("scrollbox",{ref:$.setScrollRef,flexGrow:1,minHeight:0,stickyScroll:!1,verticalScrollbarOptions:{visible:!1},children:R.jsxDEV("box",{flexShrink:0,gap:0,children:[$.rows.map((X,z)=>{if(X.kind==="project"){let G=X.id===i_;return R.jsxDEV(Ks,{label:G?J("tasks.header.scratch"):X.label,suffix:$.movingProjectId===X.id?J("tasks.moveChip"):void 0,topPad:z>0,onContextMenu:$.onProjectContextMenu&&!G?(W,H)=>$.onProjectContextMenu?.(X.id,W,H):void 0},X.id,!1,void 0,this)}if(X.kind==="recent")return R.jsxDEV(ds,{rowId:X.id,flatIndex:$.flatIndexOf.get(X.id)??-1,task:X.task,shared:$.shared},X.id,!1,void 0,this);if(X.kind==="worktree")return R.jsxDEV(us,{rowId:X.id,flatIndex:$.flatIndexOf.get(X.id)??-1,task:X.task,shared:$.shared},X.id,!1,void 0,this);return R.jsxDEV(cs,{rowId:X.id,flatIndex:$.flatIndexOf.get(X.id)??-1,task:X.task,tab:X.tab,shared:$.shared},X.id,!1,void 0,this)}),$.rows.length===0?R.jsxDEV("box",{paddingTop:1,paddingLeft:1,children:R.jsxDEV("text",{fg:Z.textMuted,children:J(Gc({searching:$.searching,projectFilter:!1}))},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var ns=d(async()=>{GU();hQ();X$();a0();await J$([Z$(),Fw(),ls()])});function is(){return[{action:"newChat",labelKey:"tasks.menu.newChat"},{action:"newShell",labelKey:"tasks.menu.newShell"}]}function os($){return[{action:"rename",labelKey:"tasks.menu.rename"},{action:"pin",labelKey:$?"tasks.menu.unpin":"tasks.menu.pin"},{action:"localMerge",labelKey:"tasks.menu.localMerge"},{action:"archive",labelKey:"tasks.menu.archive"},{action:"delete",labelKey:"tasks.menu.delete",danger:!0}]}function as($,Z={}){if($.kind==="project")return[{action:"newTask",labelKey:"tasks.menu.newTask"}];if($.kind==="worktree")return[{action:"open",labelKey:"tasks.menu.open"},...is(),...os($.task.pinned===!0)];let J=[{action:"open",labelKey:"tasks.menu.openTab"}];if((Z.tabCount??0)>1)J.push({action:"closeTab",labelKey:"tasks.menu.closeTab"});return[...J,...is(),...os($.task.pinned===!0)]}function FM0($){for(let Z of[...ZC])Z($)}function rs($,Z){if(ZC.add(Z),VG!==$){if(VG)VG.onMouseDown=void 0;VG=$,$.onMouseDown=FM0}return()=>{if(ZC.delete(Z),ZC.size===0&&VG)VG.onMouseDown=void 0,VG=null}}var ZC,VG=null;var ss=d(()=>{ZC=new Set});function es($,Z){let J=N4(),X=V1(Z);ts.useEffect(()=>{let z=J?.root;if(!$||!z)return;return rs(z,()=>X.current())},[$,J])}var ts;var $t=d(async()=>{ss();w7();await v4();ts=z1(q1(),1)});function Zt($){let Z=e0(),{tree:J,activateRow:X,setCursorIndex:z,actions:G}=$,[W,H]=M6.useState(null),[U,B]=M6.useState(0),M=M6.useCallback((E,I,T,w)=>{let y=as(E,I);H({row:E,actions:y.map((f)=>f.action),entries:y.map((f)=>({id:f.action,label:Z(f.labelKey),danger:f.danger})),x:T,y:w}),B(0)},[Z]),O=M6.useCallback((E,I,T,w)=>{let y=J.rows.find((f)=>f.id===I);if(!y||y.kind==="project"||y.kind==="recent")return;z(E),M(y,{tabCount:J.tabCount(y.task.id)},T,w)},[J.rows,J.tabCount,M,z]),L=M6.useCallback((E,I,T)=>{let w=J.rows.find((y)=>y.kind==="project"&&y.id===E);if(!w)return;M(w,{},I,T)},[J.rows,M]),j=M6.useCallback(()=>H(null),[]);es(W!==null,j);let A=M6.useCallback((E)=>{let I=W?.entries.length??0;if(I===0)return;B((T)=>(T+E+I)%I)},[W]),C=M6.useCallback((E)=>{if(!W||E===void 0)return;let I=W.row;if(H(null),I.kind==="project"){if(E==="newTask")$.onAddTask?.();return}let T=I.task.id;switch(E){case"open":X(I.id);break;case"closeTab":if(I.kind==="tab")$.onCloseTab?.(T,I.tab.id);break;case"newChat":$.onNewTab?.(T,"chat");break;case"newShell":$.onNewTab?.(T,"shell");break;case"rename":G.onRenameRequest?.(T);break;case"pin":G.onPinRequest?.(T);break;case"localMerge":G.onLocalMergeRequest?.(T);break;case"archive":G.onArchiveRequest?.(T);break;case"delete":G.onDeleteRequest?.(T);break;default:break}},[W,X,G,$.onAddTask,$.onCloseTab,$.onNewTab]),_=M6.useCallback(()=>C(W?.actions[U]),[C,W,U]),b=M6.useCallback((E)=>C(W?.actions.find((I)=>I===E)),[C,W]);return{open:W!==null,entries:W?.entries??[],cursor:U,x:W?.x??0,y:W?.y??0,close:j,moveCursor:A,pickCurrent:_,pick:b,openForRow:O,openForProject:L}}var M6;var Jt=d(async()=>{X$();await $t();M6=z1(q1(),1)});function Xt($){let[Z,J]=Yz.useState(!1),[X,z]=Yz.useState(""),G=V1($.focused),W=$.onActiveChange,H=Yz.useCallback(()=>{z(""),J(!0),W?.(!0)},[W]),U=Yz.useCallback(()=>{J(!1),z(""),W?.(!1)},[W]),B=N4();return Yz.useEffect(()=>{if(!Z||!B)return;let M=(O)=>{if(!G.current||JG())return;z((L)=>Wc(L,O)??L)};return B.keyInput.on("keypress",M),()=>{B.keyInput.off("keypress",M)}},[Z,B]),{active:Z,query:X,enter:H,exit:U}}var Yz;var Qt=d(async()=>{hQ();w7();await J$([v4(),D4()]);Yz=z1(q1(),1)});function zt($){return $.split("::").slice(0,2).join("::")}function JC($,Z=Date.now()){Sw.set(zt($),Z)}function Yt($,Z=Date.now()){let J=zt($),X=Sw.get(J);if(X===void 0)return!1;if(Z-X>15000)return Sw.delete(J),!1;return!0}var Sw;var XC=d(()=>{Sw=new Map});function MM0($={}){let Z=$.entries??(()=>i$().entries()),J=$.snapshot??Y6,X=Math.max(1,$.releaseAfterMisses??2),z=new Map,G=new Map,W=new Set,H=new Map,U=new Set,B=!1,M=()=>{for(let j of U)j()},O={async probe(){if(B)return;let j=new Map,A=new Set;for(let[_,b]of H)A.add(_),j.set(_,b);for(let[_,b]of Z()){A.add(_);let E=b.shellPid??null;if(E!==null)j.set(_,E)}let C=!1;for(let _ of[...z.keys()]){if(A.has(_)&&j.has(_))continue;z.delete(_),G.delete(_),C=!0}for(let _ of[...W]){if(A.has(_)&&j.has(_))continue;W.delete(_)}if(j.size>0){let _;try{_=z6(await J())}catch{if(C)M();return}if(B)return;for(let[b,E]of j){let I=sJ(_,E)?.vendor??null;W.add(b);let T=z.get(b)??null;if(I){if(G.delete(b),T===I)continue;z.set(b,I),C=!0;continue}if(T===null)continue;let w=(G.get(b)??0)+1;if(w<X){G.set(b,w);continue}G.delete(b),z.delete(b),C=!0}}if(C)M()},get(j){return z.get(j)??null},resolve(j){let A=z.get(j);if(A)return A;return W.has(j)?null:void 0},setAuxPids(j){H=j},subscribe(j){return U.add(j),()=>{U.delete(j)}},dispose(){B=!0,U.clear(),z.clear(),G.clear(),W.clear(),clearInterval(L)}},L=setInterval(()=>{O.probe()},$.intervalMs??2000);return L.unref?.(),O}function MX(){if(!Iw)Iw=MM0();return Iw}var Iw=null;var YM=d(()=>{DZ();G8()});function LM0($,Z){let J=/^tab-(\d+)$/.exec($);return J?Number(J[1]):Z}function QC($,Z){let J=new Set($.tabs.map((U)=>U.id)),X=[];for(let U of Z){if(J.has(U))continue;J.add(U),X.push(U)}if(X.length===0)return $;let z=$.nextOrdinal,G=X.map((U)=>({kind:"engine",id:U,title:null,ordinal:LM0(U,z++),spawned:!0}));G.sort((U,B)=>U.ordinal-B.ordinal);let W=[...$.tabs,...G],H=W.reduce((U,B)=>Math.max(U,B.ordinal),0);return{tabs:W,activeId:$.activeId,nextOrdinal:Math.max($.nextOrdinal,H+1)}}function zC($,Z,J){if(J.length===0)return!1;if(lo(Z,J),!no())return!1;let z=$.store[v5(Z)],G=e7.get(Z)??(z&&Array.isArray(z.tabs)?z:null),W={tabs:[],activeId:J[0],nextOrdinal:1},H=QC(G??W,J);if(G&&H===G)return!1;return e7.set(Z,H),$.set(v5(Z),H),!0}var Ew=d(()=>{M2()});function Gt($,Z){let J=new Map;for(let X of $){if(X.alive===!1)continue;let{taskId:z,tabId:G}=zz(X.key);if(!G)continue;let W=G.split("::")[0];if(Z.has(jG(z,W)))continue;let H=J.get(z)??[];if(H.some((U)=>U.id===W))continue;H.push({id:W,label:`\u26A0 ${mQ(X.title?.trim()??"",null).trim()||W}`,active:H.length===0,engine:!0}),J.set(z,H)}return J}var Wt=d(()=>{F7();GU()});function OM0($,Z){if($.length!==Z.length)return!1;return $.every((J,X)=>{let z=Z[X];return J.key===z.key&&J.alive===z.alive&&J.title===z.title})}function jM0(){return process.env.BUN_TEST!=="1"&&process.env.VITEST!=="true"}function qt($=jM0()){let[Z,J]=YC.useState(Ht);return YC.useEffect(()=>{if(!$)return;let X=!1,z=async()=>{try{let W=await rY(),{sessions:H=[]}=await W.request("pty.list",{});if(!X)J((U)=>OM0(U,H)?U:H)}catch{if(!X)J((W)=>W.length===0?W:Ht)}};z();let G=setInterval(()=>void z(),NM0);return()=>{X=!0,clearInterval(G)}},[$]),Z}var YC,NM0=2000,Ht;var Ut=d(()=>{Mq();YC=z1(q1(),1),Ht=[]});function Bt($){let{tasks:Z,kv:J,selectedTaskId:X,selectedTabId:z}=$,G=$.query??"",W=G.trim()!=="",H=MX(),[U,B]=$2.useState(0);$2.useEffect(()=>H.subscribe(()=>B((f)=>f+1)),[H]);let M=qt();$2.useEffect(()=>{let f=new Map;for(let h of M)if(h.alive!==!1&&typeof h.pid==="number"&&h.pid>0)f.set(h.key,h.pid);return H.setAuxPids(f),()=>H.setAuxPids(new Map)},[M,H]);let O=$2.useMemo(()=>{let f=new Map;for(let h of M){let p=h.title?.trim();if(p)f.set(h.key,p)}return f},[M]),L=$2.useMemo(()=>{let f=new Map;for(let h of Z){let p=iq(J,h.id);if(!p)continue;let m=h.vendor??b4;f.set(h.id,p.tabs.map((t)=>{let s=q8(h.id,t),G0=H.resolve(s),U0=G0===void 0?t.liveVendor:G0;return{id:t.id,label:BG(t,m,U0,O.get(s)),active:t.id===p.activeId,engine:t.kind==="engine"||(U0??null)!==null}}))}return f},[Z,J,H,U,O]),j=$2.useMemo(()=>{let f=new Set;for(let[m,t]of L)for(let s of t)f.add(jG(m,s.id));let h=new Map,p=M.filter((m)=>!Yt(m.key));for(let[m,t]of Gt(p,f))if(Z.some((s)=>s.id===m))h.set(m,t);return h},[L,M,Z]);$2.useEffect(()=>{if(!J)return;for(let[f,h]of j)zC(J,f,h.map((p)=>p.id))},[j,J]);let A=$2.useMemo(()=>{if(j.size===0)return L;let f=new Map(L);for(let[h,p]of j){let m=f.get(h);f.set(h,m?[...m,...p.map((t)=>({...t,active:!1}))]:p)}return f},[L,j]),C=$.recentTask??null,{rows:_,totalCount:b}=$2.useMemo(()=>{let f=Js({tasks:Z,tabsByTask:A}),h=Bw(f).length;return{rows:W?Xs(f,G):$s(f,C),totalCount:h}},[Z,A,W,G,C]),E=$2.useMemo(()=>Bw(_),[_]),I=$2.useMemo(()=>{if(X===null)return null;if(z!==null)return jG(X,z);return X},[X,z]),T=$2.useCallback((f)=>A.get(f)?.length??0,[A]),w=$2.useCallback((f)=>Qs(Z,f),[Z]),y=$2.useCallback((f)=>{let h=Z.find((p)=>p.id===f);if(!h||h.kind==="dir")return null;return MG(h.repo)},[Z]);return{rows:_,flatIds:E,totalCount:b,tabCount:T,activeRowId:I,projectIdOfTask:y,mainTaskIdOfProject:w}}var $2;var Kt=d(()=>{U2();i8();GU();XC();YM();jE();b5();Ew();M2();Wt();Ut();$2=z1(q1(),1)});function Ft($){let{theme:Z}=d0(),J=rQ(),X=$.focused??!0,z=f5(),G=r4.useMemo(()=>Gr($.tasks,"active"),[$.tasks]),[W,H]=r4.useState(0);r4.useEffect(()=>{let n=setInterval(()=>H((Y0)=>Y0+1),Yc);return()=>clearInterval(n)},[]);let U=Xt({focused:X,onActiveChange:$.onSearchActiveChange}),B=Bt({tasks:G,kv:J,selectedTaskId:$.selectedId,selectedTabId:$.selectedTabId??null,query:U.active?U.query:"",recentTask:$.recentTask??null}),M=r4.useMemo(()=>{let n=new Map;return B.flatIds.forEach((Y0,Z0)=>n.set(Y0,Z0)),n},[B.flatIds]),[O,L]=r4.useState(-1),j=r4.useRef(O),A=r4.useCallback((n)=>{j.current=n,L(n)},[]),C=V1(B.flatIds),_=r4.useRef(null),b=r4.useRef(null),E=$.moveMode===!0;r4.useEffect(()=>{let n=B.flatIds;if(E){let $0=b.current,O0=$0===null?-1:n.indexOf($0);if(O0>=0){if(O0!==j.current)A(O0);return}}let Y0=B.activeRowId,Z0=Y0!==_.current;_.current=Y0;let a=Y0===null?-1:n.indexOf(Y0);if(Z0&&a>=0){if(a!==j.current)A(a);return}if(j.current>=n.length)A(Math.max(0,n.length-1));else if(j.current<0&&n.length>0)A(a>=0?a:0)},[B.flatIds,B.activeRowId,E,A]),r4.useEffect(()=>{b.current=B.flatIds[j.current]??null}),r4.useEffect(()=>{if(U.query,!U.active)return;A(0)},[U.active,U.query,A]);let I=V1($.recentTask??null),T=r4.useCallback((n)=>{let Y0=n===YU?I.current:null,{taskId:Z0,tabId:a}=Y0?{taskId:Y0.id,tabId:null}:zz(n);if($.onSelect(Z0),a===null){$.onActivate?.(Z0);return}$.onSelectTab?.(Z0,a),$.onActivate?.(Z0)},[$.onSelect,$.onActivate,$.onSelectTab]),w=V1(T),y=r4.useRef(null);if(y.current===null)y.current=tr({getCursor:()=>j.current,setCursor:A,getFlatIds:()=>C.current,onSelect:(n)=>w.current(n)});let f=y.current,h=V1($.tasks),p=r4.useCallback((n)=>{let Y0=C.current[j.current];if(Y0===void 0||Y0===YU)return;let{taskId:Z0,tabId:a}=zz(Y0);if(a!==null){$.onMoveTabRequest?.(Z0,a,n);return}let $0=h.current.find((w0)=>w0.id===Z0);if(!$0)return;if($0.kind!=="main"){$.onMoveRequest?.(Z0,n);return}let O0=B.projectIdOfTask(Z0);if(O0===null)return;let Q0=B.mainTaskIdOfProject(O0);if(Q0===null)return;$.onMoveRequest?.(Q0,n)},[B.projectIdOfTask,B.mainTaskIdOfProject,$.onMoveRequest,$.onMoveTabRequest]),m=B.flatIds[O],t=r4.useMemo(()=>{if(m===void 0||m===YU)return{projectId:null,rowId:null};let{taskId:n,tabId:Y0}=zz(m);if(Y0===null){if($.tasks.find((a)=>a.id===n)?.kind==="main")return{projectId:B.projectIdOfTask(n),rowId:null}}return{projectId:null,rowId:m}},[m,$.tasks,B.projectIdOfTask]),s=Zt({tree:B,activateRow:T,setCursorIndex:A,onAddTask:$.onAddTask,onCloseTab:$.onCloseTab,onNewTab:$.onNewTab,actions:$}),G0=y_("sidebar");b1(()=>({enabled:X&&!U.active&&!s.open,bindings:_5({"sidebar.nav":(n,Y0)=>{G0();let Z0=(Y0??0)%2===0;if(E){p(Z0?1:-1);return}if(Z0)f.moveDown();else f.moveUp()},"sidebar.select":()=>{if(G0(),E){$.onMoveModeExit?.();return}f.selectCurrent()},"sidebar.goto":(n,Y0)=>{if(E)return;if((Y0??0)%2===1)f.pressShiftG();else f.pressG()},"sidebar.tree.open":()=>{if(E)return;f.selectCurrent()},"sidebar.search.enter":()=>{if(E)return;U.enter()},"sidebar.delete":()=>{if(E)return;U0($.onDeleteRequest)},"sidebar.archive":()=>{if(E)return;U0($.onArchiveRequest)},"sidebar.rename":()=>{if(E)return;U0($.onRenameRequest)},"sidebar.localMerge":()=>U0($.onLocalMergeRequest),"sidebar.pin":()=>{if(E)return;U0($.onPinRequest)}})})),b1(()=>({enabled:X&&E,bindings:[{key:"escape",cmd:()=>$.onMoveModeExit?.()}]})),b1(()=>({enabled:X&&U.active,bindings:_5({"sidebar.search.nav":(n,Y0)=>{if((Y0??0)%2===0)f.moveDown();else f.moveUp()},"sidebar.search.submit":()=>{f.selectCurrent(),U.exit()},"sidebar.search.cancel":()=>U.exit()})})),b1(()=>({enabled:X&&s.open,bindings:_5({"sidebar.nav":(n,Y0)=>s.moveCursor((Y0??0)%2===0?1:-1),"sidebar.select":()=>s.pickCurrent()})})),b1(()=>({enabled:X&&s.open,bindings:[{key:"escape",cmd:()=>s.close()}]}));function U0(n){let Y0=C.current[j.current];if(Y0===void 0||!n)return;if(Y0===YU)return;n(zz(Y0).taskId)}b1(()=>({enabled:!0,bindings:_5({"tasks.jump":(n,Y0)=>{let Z0=C.current[Y0??0];if(Z0===void 0)return;A(Y0??0),w.current(Z0)}})}));let F0=r4.useRef(null),B0=r4.useRef(null);if(B0.current===null)B0.current=new Map;let W0=B0.current;r4.useEffect(()=>{let n=F0.current;if(!n||O<0||n.viewport.height<=0)return;let Y0=W0.get(O);if(Y0)n.scrollChildIntoView(Y0.id)},[O,W0]);let k=r4.useRef(null),i=$.width??dY;r4.useEffect(()=>{let n=k.current;if(!n)return;n.width=i,n.flexShrink=1,n.minHeight=0},[i]);let l={cursorIndex:O,activeRowId:B.activeRowId,selectedTaskId:$.selectedId,movingRowId:E?t.rowId:null,rowEls:W0,onPress:(n,Y0)=>{s.close(),A(n),T(Y0)},onContextMenu:s.openForRow,branchTick:W,engineState:$.engineState,engineTabState:$.engineTabState,engineLifecycle:$.engineLifecycle,taskJobs:$.taskJobs,worktreeChanges:$.worktreeChanges};return R.jsxDEV("box",{ref:k,flexGrow:1,minHeight:0,flexDirection:"column",backgroundColor:Z.backgroundPanel,paddingTop:1,paddingBottom:1,children:[R.jsxDEV(Ms,{focused:X,status:$.headerStatus??null,onStatusClick:$.onHeaderStatusClick},void 0,!1,void 0,this),R.jsxDEV(Ls,{onAddTask:$.onAddTask},void 0,!1,void 0,this),U.active?R.jsxDEV(Fs,{query:U.query,matchCount:B.flatIds.length,totalCount:B.totalCount},void 0,!1,void 0,this):null,R.jsxDEV(Ns,{nav:$.nav??"terminal",setNav:(n)=>$.onNavChange?.(n)},void 0,!1,void 0,this),R.jsxDEV(ps,{rows:B.rows,flatIndexOf:M,searching:U.active&&U.query.trim().length>0,shared:l,onProjectContextMenu:s.openForProject,movingProjectId:E?t.projectId:null,setScrollRef:(n)=>{F0.current=n}},void 0,!1,void 0,this),$.zenActive?R.jsxDEV(Os,{onZenClick:$.onZenClick},void 0,!1,void 0,this):null,s.open?R.jsxDEV(qs,{entries:s.entries,cursor:s.cursor,x:s.x,y:s.y,dims:{width:i,height:z.height},onPick:s.pick},void 0,!1,void 0,this):null,z.height<0?R.jsxDEV("text",{children:""},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var r4;var Mt=d(async()=>{i8();GU();hQ();SZ();A3();w7();Kt();a0();await J$([v4(),tF(),Z$(),D4(),Us(),Fw(),ns(),Jt(),Qt()]);r4=z1(q1(),1)});class ww{ptyIdentity=null;coordinate=null;update($,Z){if($!==this.ptyIdentity)this.ptyIdentity=$,this.coordinate=null;if($===null)return this.coordinate=null,null;if(Z)this.coordinate={x:Z.x,y:Z.y};return this.coordinate}current(){return this.coordinate}}var xw,fw;var Lt=d(()=>{xw=class xw extends ww{};fw=class fw extends ww{}});import{RGBA as VM0}from"@opentui/core";function Nt($){if(!$)return;return VM0.fromInts($[0],$[1],$[2])}function _M0($){return{__isChunk:!0,text:$.text,...$.fg?{fg:Nt($.fg)}:{},...$.bg?{bg:Nt($.bg)}:{},...$.attributes!==void 0?{attributes:$.attributes}:{}}}function Ot($){let Z=[];for(let J=0;J<$.length;J++){if(J>0)Z.push({__isChunk:!0,text:`
751
+ `).map((Z)=>Z.trim()).filter(Boolean)}function hr($){let{theme:Z}=d0(),J=e0(),X=N4(),[z,G]=Qz.useState(null),[W,H]=Qz.useState([]),[U,B]=Qz.useState(!0),[M,O]=Qz.useState("update"),[L,j]=Qz.useState(null),A=z?.latest??R$,C=W[0]?.url??mT(A),_=[{id:"update",key:"U",label:J("update.actions.updateNow"),detail:VZ},{id:"release",key:"R",label:J("update.actions.openRelease"),detail:C??J("update.releaseUrlUnavailable")},{id:"close",key:"Q",label:J("update.actions.close"),detail:J("update.actions.closeDetail")}];Qz.useEffect(()=>{b()},[]);async function b(){let w=await bY({force:!0});G(w);let y=w?.latest??R$,f=await kT({current:R$,latest:y});H(f),B(!1)}function E(w){let y=_.map((p)=>p.id),h=(y.indexOf(M)+w+y.length)%y.length;O(y[h]??"update")}function I(w=M){if(w==="close"){$.onClose();return}if(w==="release"){j(SF0(C)?J("update.statusReleaseOpened"):J("update.statusReleaseError"));return}T()}async function T(){j(J("update.statusRunningUpdater")),await new Promise((w)=>setTimeout(w,30)),await n_({renderer:X,t:J,targetLabel:A,command:VZ})}return b1(()=>({bindings:[{key:"up",cmd:()=>E(-1)},{key:"down",cmd:()=>E(1)},{key:"k",cmd:()=>E(-1)},{key:"j",cmd:()=>E(1)},{key:"return",cmd:()=>I()},{key:"u",cmd:()=>I("update")},{key:"r",cmd:()=>I("release")},...s7(()=>I("close"))]})),R.jsxDEV("box",{flexDirection:"column",flexGrow:1,backgroundColor:Z.background,paddingTop:1,paddingLeft:2,paddingRight:2,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",flexShrink:0,children:[R.jsxDEV("text",{fg:Z.text,attributes:zU.BOLD,wrapMode:"none",children:J("update.pageTitle")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",onMouseUp:()=>I("close"),children:"q / esc"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",gap:2,flexShrink:0,paddingTop:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:J("update.current")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,attributes:zU.BOLD,wrapMode:"none",children:["v",R$]},void 0,!0,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:J("update.latest")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:z?.hasUpdate?Z.warning:Z.success,attributes:zU.BOLD,wrapMode:"none",children:["v",A]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"column",flexShrink:0,paddingTop:1,gap:0,children:_.map((w)=>R.jsxDEV("box",{flexDirection:"row",gap:1,paddingLeft:1,paddingRight:1,backgroundColor:M===w.id?Z.primary:void 0,onMouseUp:()=>I(w.id),children:[R.jsxDEV("box",{width:4,flexShrink:0,children:R.jsxDEV("text",{fg:M===w.id?Z.selectedListItemText:Z.accent,attributes:zU.BOLD,wrapMode:"none",children:["[",w.key,"]"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),R.jsxDEV("box",{width:14,flexShrink:0,children:R.jsxDEV("text",{fg:M===w.id?Z.selectedListItemText:Z.text,wrapMode:"none",children:w.label},void 0,!1,void 0,this)},void 0,!1,void 0,this),R.jsxDEV("text",{fg:M===w.id?Z.selectedListItemText:Z.textMuted,wrapMode:"word",children:w.detail},void 0,!1,void 0,this)]},w.id,!0,void 0,this))},void 0,!1,void 0,this),L?R.jsxDEV("text",{fg:Z.info,wrapMode:"word",children:L},void 0,!1,void 0,this):null,R.jsxDEV("box",{flexShrink:0,paddingTop:1,children:R.jsxDEV("text",{fg:Z.textMuted,attributes:zU.DIM,wrapMode:"none",children:J("update.changesSectionHeader",{from:R$,to:A})},void 0,!1,void 0,this)},void 0,!1,void 0,this),R.jsxDEV("scrollbox",{flexGrow:1,flexShrink:1,stickyScroll:!1,verticalScrollbarOptions:{trackOptions:{backgroundColor:Z.background,foregroundColor:Z.borderActive}},children:R.jsxDEV("box",{flexDirection:"column",paddingRight:1,paddingBottom:1,gap:0,children:[U?R.jsxDEV("text",{fg:Z.textMuted,children:J("update.loadingNotes")},void 0,!1,void 0,this):null,!U&&W.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:J("update.notesUnavailable")},void 0,!1,void 0,this):null,W.map((w)=>R.jsxDEV("box",{flexDirection:"column",paddingBottom:1,gap:0,children:[R.jsxDEV("text",{fg:Z.text,attributes:zU.BOLD,wrapMode:"none",children:["v",w.version]},void 0,!0,void 0,this),Hw(w.body).map((y,f)=>R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:y},`${f}:${y}`,!1,void 0,this))]},w.version,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var Qz;var qw=d(async()=>{d8();X$();Ww();a0();await J$([v4(),Z$(),D4()]);Qz=z1(q1(),1)});import{TextAttributes as ur}from"@opentui/core";function IF0($){if(!$)return[];let Z=[];for(let J of $.listTasks())if(J.repo&&!Z.includes(J.repo))Z.push(J.repo);return Z}function EF0($,Z){let J=Date.parse($);if(!Number.isFinite(J))return"";let X=Math.round((Z-J)/60000);if(X<60)return`${Math.max(X,0)}m`;let z=Math.round(X/60);if(z<24)return`${z}h`;return`${Math.round(z/24)}d`}function cr($){let{theme:Z}=d0(),J=e0(),X=IF0($.orchestrator),[z,G]=F6.useState(()=>{let h=$.focusRepo?X.indexOf($.focusRepo):-1;return h>=0?h:0}),W=X[z],[H,U]=F6.useState(null),[B,M]=F6.useState(null),[O,L]=F6.useState(0),[j,A]=F6.useState(!1),[C,_]=F6.useState(!1),[b,E]=F6.useState(null);F6.useEffect(()=>{let h=!1,p=$.orchestrator;if(!p||!W){U([]);return}return M(null),p.listWorkItems({repo:W,limit:30,...j?{assignee:"@me"}:{},...O>0?{refresh:!0}:{}}).then((m)=>{if(!h)U(m.items)}).catch((m)=>{if(h)return;M(m instanceof Error?m.message:String(m)),U([])}),()=>{h=!0}},[$.orchestrator,W,j,O]);let I=H??[],[T,w]=F6.useState(0);F6.useEffect(()=>{w((h)=>w4(h,I.length))},[I.length]);async function y(){let h=$.orchestrator,p=I[T];if(!h||!p||!W||C)return;_(!0),E(J("workItems.starting",{number:p.number}));try{let m=await h.startWorkItem({repo:W,number:p.number});if(m.started)$.onOpenTask?.(m.taskId);else E(J("workItems.startedNoEngine",{title:m.title}))}catch(m){E(m instanceof Error?m.message:String(m))}finally{_(!1)}}b1(()=>({enabled:$.focused!==!1,bindings:[...s7($.onClose),{key:"j",cmd:()=>w((h)=>w4(h+1,I.length))},{key:"down",cmd:()=>w((h)=>w4(h+1,I.length))},{key:"k",cmd:()=>w((h)=>w4(h-1,I.length))},{key:"up",cmd:()=>w((h)=>w4(h-1,I.length))},{key:"tab",cmd:()=>G((h)=>X.length?(h+1)%X.length:0)},{key:"a",cmd:()=>A((h)=>!h)},{key:"r",cmd:()=>L((h)=>h+1)},{key:"return",cmd:()=>void y()}]}));let f=Date.now();return R.jsxDEV("box",{flexDirection:"column",flexGrow:1,padding:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{attributes:ur.BOLD,fg:Z.accent,children:J("workItems.title")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,children:[W?_9(W,X):J("workItems.noRepo"),j?` ${J("workItems.assignedFilter")}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),B?R.jsxDEV("box",{flexDirection:"column",marginTop:1,children:R.jsxDEV("text",{fg:Z.error,children:B},void 0,!1,void 0,this)},void 0,!1,void 0,this):H===null?R.jsxDEV("text",{fg:Z.textMuted,children:J("common.loading")},void 0,!1,void 0,this):I.length===0?R.jsxDEV("text",{fg:Z.textMuted,children:J("workItems.empty")},void 0,!1,void 0,this):R.jsxDEV("box",{flexDirection:"column",marginTop:1,flexGrow:1,children:I.map((h,p)=>{let m=HX(Z,{cursor:p===T,selected:!1});return R.jsxDEV("box",{flexDirection:"column",flexShrink:0,...m.backgroundColor?{backgroundColor:m.backgroundColor}:{},children:[R.jsxDEV("box",{flexDirection:"row",gap:0,children:[R.jsxDEV("text",{fg:m.markerColor,wrapMode:"none",children:m.marker},void 0,!1,void 0,this),R.jsxDEV("box",{flexDirection:"row",flexGrow:1,paddingLeft:1,paddingRight:1,gap:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:`#${h.number}`},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,attributes:p===T?ur.BOLD:void 0,wrapMode:"none",flexGrow:1,children:h.title},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",gap:0,children:[R.jsxDEV("text",{fg:m.markerColor,wrapMode:"none",children:m.marker},void 0,!1,void 0,this),R.jsxDEV("box",{flexDirection:"row",flexGrow:1,paddingLeft:2,paddingRight:1,gap:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",flexGrow:1,children:[h.author,...h.labels.slice(0,2)].filter(Boolean).join(" \xB7 ")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:EF0(h.updatedAt,f)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},`${h.number}`,!0,void 0,this)})},void 0,!1,void 0,this),b?R.jsxDEV("text",{fg:Z.textMuted,children:b},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var F6;var dr=d(async()=>{p8();i8();X$();a0();await J$([Z$(),D4()]);F6=z1(q1(),1)});import{TextAttributes as lr}from"@opentui/core";function pr($){return $.flatMap((Z)=>Z.worktrees)}function yF0($,Z){let J=(z)=>z.replace(/^\/private\//,"/").replace(/\/+$/,""),X=J(Z);return $.listTasks().find((z)=>z.worktreePath&&J(z.worktreePath)===X)?.id}function nr($){let{theme:Z}=d0(),J=o$(),X=e0(),[z,G]=FX.useState(null),[W,H]=FX.useState(0),U=()=>H((h)=>h+1);FX.useEffect(()=>{let h=!1,p=!1,m=$.orchestrator;if(!m){G([]);return}return m.listWorktrees({network:!1}).then((t)=>{if(!h&&!p)G(t)}).catch(()=>{}),m.listWorktrees().then((t)=>{if(p=!0,h)return;G(t);let s=new Set(pr(t).map((G0)=>G0.path));M((G0)=>G0.filter((U0)=>s.has(U0)))}).catch(()=>{}),()=>{h=!0}},[$.orchestrator,W]);let[B,M]=FX.useState([]),O=(z??[]).map((h)=>({...h,worktrees:h.worktrees.filter((p)=>!B.includes(p.path))})),L=pr(O),[j,A]=FX.useState(0);FX.useEffect(()=>{A((h)=>w4(h,L.length))},[L.length]);let[C,_]=FX.useState(null);async function b(h,p){let m=$.orchestrator;if(!m)return;M((t)=>[...t,h.path]);try{await m.removeWorktree(h.path,p),U()}catch(t){if(M((s)=>s.filter((G0)=>G0!==h.path)),!p&&t instanceof Error&&wF0.test(t.message)){if(await O4.show(J,X("worktrees.delete.forceTitle"),X("worktrees.delete.forceBody",{branch:h.branch||h.path}),X("common.cancel"),X("worktrees.delete.button"))===!0)await b(h,!0);return}console.error(`[rove worktrees] ${X("worktrees.delete.failed",{error:String(t)})}`)}}async function E(h){if(!$.orchestrator||C||B.includes(h.path))return;if(await O4.show(J,X("worktrees.delete.confirmTitle"),X("worktrees.delete.confirmBody",{branch:h.branch||h.path}),X("common.cancel"),X("worktrees.delete.button"))!==!0)return;b(h,!1)}async function I(h){let p=$.orchestrator;if(!p||C)return;let m=yF0(p,h.path);if(!m){console.error(`[rove worktrees] ${X("worktrees.land.noTask")}`);return}if(await O4.show(J,X("worktrees.land.confirmTitle"),X("worktrees.land.confirmBody",{branch:h.branch||h.path}),X("common.cancel"),X("worktrees.land.button"))!==!0)return;_(h.path);try{let s=await p.landTask(m);console.error(`[rove worktrees] ${X("worktrees.land.done",{branch:s.branch,landedOn:s.landedOn,commit:s.commit})}`),U()}catch(s){let G0=s instanceof Error?s.message:String(s);if(xF0.test(G0))console.error(`[rove worktrees] ${X("worktrees.land.conflict",{files:G0})}`);else if(fF0.test(G0))console.error(`[rove worktrees] ${X("worktrees.land.dirtyBase")}`);else console.error(`[rove worktrees] ${X("worktrees.land.failed",{error:G0})}`)}finally{_(null)}}b1(()=>({enabled:J.stack.length===0,bindings:[...s7($.onClose),{key:"up",cmd:()=>A((h)=>w4(h-1,L.length))},{key:"down",cmd:()=>A((h)=>w4(h+1,L.length))},{key:"d",cmd:()=>{let h=L[j];if(h)E(h)}},{key:"l",cmd:()=>{let h=L[j];if(h)I(h)}}]}));function T(h){if(h===!0)return R.jsxDEV("text",{fg:Z.success,children:[" ",X("worktrees.badge.remoteOn")]},void 0,!0,void 0,this);if(h===!1)return R.jsxDEV("text",{fg:Z.warning,children:[" ",X("worktrees.badge.remoteOff")]},void 0,!0,void 0,this);return R.jsxDEV("text",{fg:Z.textMuted,children:[" ",X("worktrees.badge.remoteUnknown")]},void 0,!0,void 0,this)}function w(h){if(h.verdictReason==="dirty"||h.verdictReason==="fresh")return null;let p=h.verdict==="merged"?Z.success:h.verdict==="stale"?Z.warning:Z.accent;return R.jsxDEV("text",{fg:p,children:[" ",X(`worktrees.verdict.${h.verdictReason}`)]},void 0,!0,void 0,this)}let y=z===null,f=0;return R.jsxDEV("scrollbox",{flexGrow:1,backgroundColor:Z.background,paddingTop:1,paddingLeft:2,paddingRight:2,paddingBottom:1,verticalScrollbarOptions:{trackOptions:{foregroundColor:"transparent"}},children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:R.jsxDEV("text",{attributes:lr.BOLD,fg:Z.text,children:X("worktrees.title")},void 0,!1,void 0,this)},void 0,!1,void 0,this),y?R.jsxDEV("text",{fg:Z.textMuted,children:X("worktrees.loading")},void 0,!1,void 0,this):O.length===0?R.jsxDEV("text",{fg:Z.textMuted,children:X("worktrees.noProjects")},void 0,!1,void 0,this):O.map((h)=>{let p=f;return f+=h.worktrees.length,R.jsxDEV("box",{gap:0,paddingTop:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:h.repo},void 0,!1,void 0,this),h.worktrees.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:X("worktrees.noWorktrees")},void 0,!1,void 0,this):h.worktrees.map((m,t)=>{let s=p+t,G0=s===j;return R.jsxDEV("box",{gap:0,onMouseUp:()=>A(s),children:[R.jsxDEV("box",{flexDirection:"row",children:[R.jsxDEV("text",{fg:G0?Z.primary:Z.text,attributes:G0?lr.BOLD:void 0,wrapMode:"none",children:[G0?"\u25B8 ":" ",m.branch||X("worktrees.row.detached")]},void 0,!0,void 0,this),m.kobeManaged?R.jsxDEV("text",{fg:Z.textMuted,children:[" ",X("worktrees.badge.kobeManaged")]},void 0,!0,void 0,this):null,m.dirty?R.jsxDEV("text",{fg:Z.warning,children:[" ",X("worktrees.badge.dirty")]},void 0,!0,void 0,this):null,T(m.branchOnRemote),w(m),C===m.path?R.jsxDEV("text",{fg:Z.textMuted,children:" \u2026"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",paddingLeft:2,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:m.path},void 0,!1,void 0,this),m.createdAtMs>0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:X("worktrees.row.created",{age:NG(m.createdAtMs)})},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},m.path,!0,void 0,this)})]},h.repo,!0,void 0,this)})]},void 0,!0,void 0,this)}var FX,wF0,xF0,fF0;var ir=d(async()=>{p8();d_();X$();a0();await J$([Z$(),D4(),C5(),TZ()]);FX=z1(q1(),1);wF0=/refusing to remove dirty worktree/,xF0=/LAND_CONFLICT/,fF0=/MAIN_CHECKOUT_DIRTY/});function or($){let[Z,J]=QM.useState(!1),[X,z]=QM.useState(!1),[G,W]=QM.useState(!1),[H,U]=QM.useState("terminal"),B=(M)=>{U(M),$.setFocused(aa(M))};return{nav:H,setNav:U,goToNav:B,settingsOpen:Z,openSettings:()=>J(!0),closeSettings:()=>J(!1),worktreesOpen:X,openWorktrees:()=>z(!0),closeWorktrees:()=>z(!1),updateOpen:G,openUpdate:()=>W(!0),closeUpdate:()=>W(!1),kanbanOpen:H==="kanban",openKanban:()=>B("kanban"),closeKanban:()=>B("terminal"),automationsOpen:H==="automations",openAutomations:()=>B("automations"),closeAutomations:()=>B("terminal"),workItemsOpen:H==="issues",openWorkItems:()=>B("issues"),closeWorkItems:()=>B("terminal")}}function ar($){if($.worktreesOpen)return R.jsxDEV(nr,{orchestrator:$.orchestrator,onClose:$.closeWorktrees},void 0,!1,void 0,this);if($.updateOpen)return R.jsxDEV(hr,{onClose:$.closeUpdate},void 0,!1,void 0,this);return null}function rr($){let Z=$.orchestrator;if($.automationsOpen)return R.jsxDEV(Br,{orchestrator:Z,focused:$.contentFocused,...$.selectedTask?{focusRepo:$.selectedTask.repo}:{},onClose:$.closeAutomations,onOpenTask:(J)=>{$.closeAutomations(),$.activateTask(J)}},void 0,!1,void 0,this);if($.workItemsOpen)return R.jsxDEV(cr,{orchestrator:Z,focused:$.contentFocused,onClose:$.closeWorkItems,...$.selectedTask?{focusRepo:$.selectedTask.repo}:{},onOpenTask:(J)=>{$.closeWorkItems(),$.activateTask(J)}},void 0,!1,void 0,this);if($.kanbanOpen)return R.jsxDEV(kr,{orchestrator:Z,focused:$.contentFocused,onClose:$.closeKanban,onStartChat:$.startIssueChat,engineStates:$.engineStates,focusTask:$.selectedTask?{id:$.selectedTask.id,repo:$.selectedTask.repo}:void 0,onOpenTask:(J)=>{$.closeKanban(),$.activateTask(J)}},void 0,!1,void 0,this);return null}var QM;var sr=d(async()=>{dE();a0();await J$([Kr(),mr(),qw(),dr(),ir()]);QM=z1(q1(),1)});function tr($){let Z=$.scheduleTimeout??((U,B)=>{let M=setTimeout(U,B);return()=>clearTimeout(M)}),J=!1,X=null,z=()=>{J=!0,X?.(),X=Z(()=>{J=!1,X=null},700)},G=()=>{J=!1,X?.(),X=null},W=(U)=>{let B=$.getFlatIds();if(B.length===0)return;let M=$.getCursor(),O=M<0?0:M,L=Math.min(B.length-1,Math.max(0,O+U));$.setCursor(L)},H=(U)=>{let B=$.getFlatIds();if(B.length===0)return;$.setCursor(Math.min(B.length-1,Math.max(0,U)))};return{moveDown(){G(),W(1)},moveUp(){G(),W(-1)},selectCurrent(){G();let U=$.getFlatIds(),B=$.getCursor();if(B<0||B>=U.length)return;let M=U[B];if(M!==void 0)$.onSelect(M)},pressG(){if(J)G(),H(0);else z()},pressShiftG(){G(),H($.getFlatIds().length-1)},isChordArmed(){return J},disarmChord(){G()}}}import{homedir as gF0}from"os";function $s($,Z){if(!Z)return[...$];return[{kind:"recent",id:YU,task:Z,depth:1},...$]}function jG($,Z){return`${$}${Uw}${Z}`}function zz($){let Z=$.indexOf(Uw);if(Z<0)return{taskId:$,tabId:null};return{taskId:$.slice(0,Z),tabId:$.slice(Z+Uw.length)}}function Zs($,Z={}){let J=(Z.liveBranch??$.branch)||$.branch;if(J)return J;if($.kind!=="dir"&&$.title)return $.title;let X=$.worktreePath||$.repo;if(X){let z=Z.home??gF0(),G=z&&(X===z||X.startsWith(`${z}/`))?`~${X.slice(z.length)}`:X;return lj(G,bF0)}return $.title||"scratch"}function Js($){let{tasks:Z,tabsByTask:J}=$,X=new Map,z=Z.filter((U)=>U.kind==="dir"&&U.scratch===!0);for(let U of Z){if(U.kind==="dir"&&U.scratch===!0)continue;let B=MG(U.repo),M=X.get(B)??{repo:U.repo,tasks:[]};if(U.kind==="main")M.repo=U.repo,M.tasks.unshift(U);else M.tasks.push(U);X.set(B,M)}let G=[],W=new Set;for(let U of Z){if(U.kind!=="main")continue;let B=MG(U.repo);if(!W.has(B))W.add(B),G.push(B)}for(let U of X.keys())if(!W.has(U))W.add(U),G.push(U);let H=[];if(z.length>0){H.push({kind:"project",id:i_,repo:"",label:"Scratch",depth:0});for(let U of z){let B=J.get(U.id)??[];if(B.length===0){H.push({kind:"worktree",id:U.id,task:U,depth:1});continue}for(let M of B)H.push({kind:"tab",id:jG(U.id,M.id),task:U,tab:M,depth:2})}}for(let U of G){let B=X.get(U);if(!B)continue;H.push({kind:"project",id:U,repo:B.repo,label:U6(B.repo),depth:0});for(let M of B.tasks)vF0(H,M,J)}return H}function vF0($,Z,J){$.push({kind:"worktree",id:Z.id,task:Z,depth:1});for(let X of J.get(Z.id)??[])$.push({kind:"tab",id:jG(Z.id,X.id),task:Z,tab:X,depth:2})}function Bw($){let Z=[];for(let J of $)if(J.kind!=="project")Z.push(J.id);return Z}function er($){if($.kind==="dir"&&$.scratch===!0)return i_;return MG($.repo)}function kF0($){if($.kind==="project")return $.label;if($.kind==="tab")return $.tab.label;return`${$.task.title} ${$.task.branch??""} ${U6($.task.repo)}`}function Xs($,Z){let J=Z.trim();if(J==="")return[...$];let X=new Set,z=new Set;for(let W of $){if(!sE(J,kF0(W)))continue;if(X.add(W.id),z.add(W.id),W.kind==="project")continue;if(W.kind==="tab")z.add(W.task.id);let H=er(W.task);if(H!==null)z.add(H)}let G=[];for(let W of $){if(W.kind==="project"){if(z.has(W.id))G.push(W);continue}let H=er(W.task),U=H!==null&&X.has(H);if(W.kind==="worktree"){if(U||z.has(W.id))G.push(W);continue}if(U||X.has(W.task.id)||z.has(W.id))G.push(W)}return G}function Qs($,Z){for(let J of $){if(J.kind!=="main")continue;if(MG(J.repo)===Z)return String(J.id)}return null}function zs($){if($.tabActivity!==void 0)return $.tabActivity;if(!$.active||$.reportedTabCount>0)return;return $.taskActivity}var Uw="::",YU="~recent",i_="~scratch",bF0=24;var GU=d(()=>{i8()});function Gs($){let Z=$.maxWidth??mF0,J=Math.max(1,...$.lines.map((W)=>zc(W.text))),X=Math.min(Z-4,J),z=X+4,G=$.lines.length+2;return{innerWidth:X,boxWidth:z,boxHeight:G,left:Math.max(0,Math.min($.hoverX+2,$.screenWidth-z-1)),top:Math.max(0,Math.min($.hoverY+1,$.screenHeight-G-1))}}var Ys=2750,mF0=72;var Ws=d(()=>{i8()});function Hs($,Z){return CZ($,Z)}var Kw=()=>{};import{TextAttributes as hF0}from"@opentui/core";function qs($){let{theme:Z}=d0();if($.entries.length===0)return null;let J=Gs({hoverX:$.x,hoverY:$.y,screenWidth:$.dims.width,screenHeight:$.dims.height,lines:$.entries.map((X)=>({text:X.label}))});return R.jsxDEV("box",{position:"absolute",zIndex:uF0,left:J.left,top:J.top,width:J.boxWidth,flexDirection:"column",border:!0,borderColor:Z.focusAccent,backgroundColor:Z.backgroundElement,paddingLeft:1,paddingRight:1,onMouseDown:(X)=>X.stopPropagation(),children:$.entries.map((X,z)=>{let G=z===$.cursor;return R.jsxDEV("box",{flexShrink:0,backgroundColor:G?Z.focusAccent:void 0,onMouseUp:()=>$.onPick(X.id),children:R.jsxDEV("text",{fg:G?Z.backgroundElement:X.danger?Z.error:Z.text,attributes:G?hF0.BOLD:void 0,wrapMode:"none",flexGrow:1,children:Hs(X.label,J.innerWidth)},void 0,!1,void 0,this)},X.id,!1,void 0,this)})},void 0,!1,void 0,this)}var uF0;var Us=d(async()=>{Ws();Kw();a0();await Z$();uF0=Ys+10});function Bs($=process.platform){return $==="darwin"?"\u262F":"\u25D0"}import{MouseButton as cF0,TextAttributes as D9}from"@opentui/core";function Ks($){let{theme:Z,transparentBackground:J}=d0(),X=J?Z.border:Z.borderSubtle;return R.jsxDEV("box",{flexDirection:"column",flexShrink:0,children:[$.topPad?R.jsxDEV("box",{flexShrink:0,children:R.jsxDEV("text",{wrapMode:"none",children:" "},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,R.jsxDEV("box",{flexDirection:"row",flexShrink:0,gap:1,paddingLeft:1,paddingRight:1,onMouseUp:$.onPress||$.onContextMenu?(z)=>{if(z.button===cF0.RIGHT&&$.onContextMenu){$.onContextMenu(z.x,z.y);return}$.onPress?.()}:void 0,children:[$.prefix?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",flexShrink:0,children:$.prefix},void 0,!1,void 0,this):null,R.jsxDEV("text",{fg:Z.textMuted,attributes:D9.BOLD,wrapMode:"none",flexShrink:0,children:$.label},void 0,!1,void 0,this),R.jsxDEV("text",{fg:X,wrapMode:"none",flexBasis:0,flexGrow:1,flexShrink:1,children:"\u2500".repeat(240)},void 0,!1,void 0,this),$.suffix?R.jsxDEV("text",{fg:Z.info,attributes:D9.BOLD,wrapMode:"none",flexShrink:0,children:$.suffix},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Fs($){let{theme:Z}=d0(),J=e0();return R.jsxDEV("box",{flexDirection:"row",gap:0,flexShrink:0,paddingBottom:1,paddingLeft:1,children:[R.jsxDEV("text",{fg:Z.info,wrapMode:"none",children:"/"},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,wrapMode:"none",children:$.query},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.info,attributes:D9.BLINK,wrapMode:"none",children:"\u2588"},void 0,!1,void 0,this),$.query.length===0?R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:[" ",J("tasks.search.placeholder")]},void 0,!0,void 0,this):R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:[" ",$.matchCount,"/",$.totalCount]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Ms($){let{theme:Z}=d0();return R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",gap:1,flexShrink:0,paddingLeft:1,paddingRight:1,children:R.jsxDEV("box",{flexDirection:"row",gap:1,children:[R.jsxDEV("text",{fg:$.focused?Z.focusAccent:Z.textMuted,attributes:D9.BOLD,wrapMode:"none",children:"ROVE"},void 0,!1,void 0,this),$.status?R.jsxDEV("text",{fg:$.status.emphasize?Z.warning:Z.textMuted,attributes:$.status.emphasize?D9.BOLD:D9.DIM,wrapMode:"none",onMouseUp:()=>$.onStatusClick?.(),children:$.status.label},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function Ls($){let{theme:Z,transparentBackground:J}=d0(),X=e0(),z=K9("task.new");if(!$.onAddTask)return null;return R.jsxDEV("box",{flexShrink:0,paddingTop:1,paddingBottom:1,paddingLeft:1,paddingRight:1,children:R.jsxDEV("box",{flexDirection:"row",flexShrink:0,gap:1,paddingLeft:1,paddingRight:1,backgroundColor:J?void 0:Z.backgroundElement,onMouseUp:()=>$.onAddTask?.(),children:[R.jsxDEV("text",{fg:Z.text,attributes:D9.BOLD,wrapMode:"none",flexGrow:1,children:X("tasks.menu.newTask")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.primary,attributes:D9.BOLD,wrapMode:"none",flexShrink:0,children:"+"},void 0,!1,void 0,this),z?R.jsxDEV("text",{fg:Z.textMuted,attributes:D9.DIM,wrapMode:"none",flexShrink:0,children:z},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function Ns($){let{theme:Z}=d0(),J=e0();return R.jsxDEV("box",{flexDirection:"column",flexShrink:0,paddingBottom:1,children:oa.map((X)=>{let z=$.nav===X.nav;return R.jsxDEV("box",{flexDirection:"row",flexShrink:0,paddingLeft:1,paddingRight:1,backgroundColor:z?Z.focusAccent:void 0,onMouseUp:(G)=>{G.stopPropagation(),$.setNav(X.nav)},children:R.jsxDEV("text",{fg:z?Z.backgroundElement:Z.textMuted,attributes:z?D9.BOLD:void 0,wrapMode:"none",flexGrow:1,children:J(X.labelKey)},void 0,!1,void 0,this)},X.nav,!1,void 0,this)})},void 0,!1,void 0,this)}function Os($){let{theme:Z}=d0();return R.jsxDEV("box",{flexShrink:0,paddingLeft:1,paddingRight:1,paddingTop:1,children:R.jsxDEV("text",{fg:Z.accent,attributes:D9.BOLD,wrapMode:"none",onMouseUp:(J)=>{J.stopPropagation(),$.onZenClick?.()},children:`${Bs()} ZEN`},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var Fw=d(async()=>{RV();dE();X$();a0();await Z$()});function o_($){let Z=new Map,J=$.equals??((z,G)=>z===G);function X(z){let G=Z.get(z);if(!G){let W=$.initial;G={read:()=>W,write:(H)=>{if(!J(W,H))W=H},inFlight:!1,nextAllowedAt:0},Z.set(z,G)}return G}return{read(z){if(!z)return $.initial;return X(z).read()},poll(z){if(!z)return;let G=X(z);zv(G,$,(W)=>$.run(z,W),(W)=>G.write(W))},reset(){Z.clear()}}}var zM=d(()=>{uH();uH()});import{stat as dF0}from"fs/promises";import{join as lF0}from"path";async function oF0($){try{let Z=await dF0(lF0($,".git","HEAD"));return`${Z.mtimeMs}:${Z.size}`}catch{return null}}async function aF0($,Z,J=G9){let X=await oF0($);if(X!==null){let U=js.get($);if(U&&U.fingerprint===X)return U.value}let z="",G=!1,W=await J("git",["symbolic-ref","--short","HEAD"],{cwd:$,env:Q8(),signal:Z}),H=W.status===0?W.stdout.trim():"";if(H&&H!=="HEAD")z=H,G=!0;else if((await J("git",["rev-parse","--verify","HEAD"],{cwd:$,env:Q8(),signal:Z})).status===0)z="(detached)",G=!0;if(G&&X!==null)js.set($,{fingerprint:X,value:z});return z}function Mw($){return Vs.read($)}function Lw($){Vs.poll($)}var pF0=2000,nF0=30000,iF0=1500,js,Vs;var Nw=d(()=>{pJ();zM();js=new Map;Vs=o_({initial:"",timeoutMs:pF0,slowRetryMs:nF0,minIntervalMs:iF0,run:($,Z)=>aF0($,Z)})});var a_;var Ow=d(()=>{a_=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function rF0($){switch($){case"rate_limited":return{text:W$("tasks.activity.rateLimited"),tone:"warning"};case"permission_needed":return{text:W$("tasks.activity.permissionNeeded"),tone:"warning"};case"error":return{text:W$("tasks.activity.error"),tone:"error"};default:return null}}function jw($){switch($.prStatus?.checkState){case"passing":return{glyph:"\u2713",tone:"success"};case"failing":return{glyph:"\u2717",tone:"error"};case"pending":return{glyph:"\u2022",tone:"warning"};default:return null}}function sF0(){return W$("tasks.subtitle.noTracking")}function tF0(){return W$("tasks.subtitle.materializing")}function eF0($){return $?W$("tasks.subtitle.deleteFailed"):W$("tasks.subtitle.deleting")}function As($){if($.kind==="main")return!1;return $.vendor!==void 0&&!p5($.vendor)}function Ps($,Z){if($?.state!=="turn_complete"||!Z)return!1;if(!$.at||!Z.mtimeMs)return!1;return Z.mtimeMs>$.at+$M0}function ZM0($){let{task:Z}=$,J=$.activity?.state,X=J!==void 0,z=As(Z)&&!X,G=$.job!==void 0,W=Z.deletion?.phase==="queued"||Z.deletion?.phase==="running",H=J==="running"||Ps($.activity,$.transcript);return W||G||!z&&H}function _w($){let{task:Z}=$,J=Z.kind==="main",X=J?$.mainBranch??"":Z.branch,z=$.activity?.state,G=z!==void 0,H=Ps($.activity,$.transcript)?null:JM0(z,$.completionSeen===!0),U=rF0(z),B=As(Z)&&!G,M=$.job!==void 0,O=Z.deletion?.phase==="queued"||Z.deletion?.phase==="running",L=Z.deletion?.phase==="error",j=ZM0({task:Z,activity:$.activity,job:$.job,transcript:$.transcript}),A=a_,C=A[$.spinnerFrame%A.length]??A[0],_=L?"error":O||M?"primary":B?"textMuted":U?.tone??(j?"primary":H?.tone??"textMuted"),b=B?sF0():"\u2014",E=j?$.lifecycle?.subagents??0:0,I=E>0&&X.length>0?`\u25C7${E} ${X}`:X,T=O||L?$.truncateBranch(eF0(L),$.subtitleBudget):M?$.truncateBranch(tF0(),$.subtitleBudget):U?$.truncateBranch(U.text,$.subtitleBudget):I.length>0?$.truncateBranch(I,$.subtitleBudget):$.truncateBranch(b,$.subtitleBudget),w=L?Ds:B?Vw:H?.glyph??"\u25CB";return{isMain:J,titleText:J?U6(Z.repo):Z.title,subtitleText:T,loading:j,stateGlyph:j?C:w,tone:_,spinnerFrames:A,materializing:M}}function Cw($,Z){if(!$.loading)return $;let J=$.spinnerFrames,X=J[Z()%J.length]??J[0]??"\u280B";if(X===$.stateGlyph)return $;return{...$,stateGlyph:X}}function JM0($,Z){switch($){case"rate_limited":return{glyph:"\u25F7",tone:"warning"};case"permission_needed":return{glyph:"?",tone:"warning"};case"error":return{glyph:Ds,tone:"error"};case"turn_complete":return Z?null:{glyph:"\u25CF",tone:"primary"};default:return null}}var _s=100,Cs=600,Vw="\xB7",Ds="\xD7",$M0=2000;var r_=d(()=>{Ow();RZ();P7();i8()});function XM0(){t_=(t_+1)%Cs;for(let $ of s_)try{$()}catch{}}function e_(){return t_}function $C($){if(s_.add($),WU===null)WU=setInterval(XM0,_s),WU.unref?.();return()=>{if(s_.delete($),s_.size===0&&WU!==null)clearInterval(WU),WU=null,t_=0}}var s_,t_=0,WU=null;var Dw=d(()=>{r_();s_=new Set});function Ts($){return Rs.read($)}function Ss($){Rs.poll($)}var QM0=4000,zM0=60000,YM0=1500,GM0,Rs;var Is=d(()=>{pJ();zM();Wq();zM();GM0={added:0,deleted:0},Rs=o_({initial:GM0,equals:MF,timeoutMs:QM0,slowRetryMs:zM0,minIntervalMs:YM0,run:async($,Z)=>{let J=await G9("git",["status","--porcelain=v1"],{cwd:$,env:Q8(),signal:Z});if(J.status!==0)throw Error("git status failed");return Gq(J.stdout)}})});function Aw($,Z){return Z===void 0?$:`${$}\x00${Z}`}function WM0($){if(typeof $!=="object"||$===null||Array.isArray($))return{};let Z={};for(let[J,X]of Object.entries($))if(typeof X==="number"&&Number.isFinite(X))Z[J]=X;return Z}function HM0($,Z,J,X=200){let z=$[Z];if(z!==void 0&&z>=J)return $;let G={...$,[Z]:J},W=Object.keys(G);if(W.length<=X)return G;let H={};for(let U of W.sort((B,M)=>G[M]-G[B]).slice(0,X))H[U]=G[U];return H}function Es($,Z,J){if(!$||J===void 0)return!1;let X=$.get("completionSeen");if(typeof X!=="object"||X===null||Array.isArray(X))return!1;let z=X[Z];return typeof z==="number"&&z>=J}function ws($,Z,J){let X=WM0($.get("completionSeen")),z=HM0(X,Z,J);if(z!==X)$.set("completionSeen",z)}import{TextAttributes as k01}from"@opentui/core";function xs($){return HU.useSyncExternalStore($?$C:qM0,$?e_:UM0)}function fs($,Z){let J=HS($.worktreeChanges,Z.worktreePath),X=J!==null;return HU.useEffect(()=>{if($.branchTick,X||Z.archived)return;Ss(Z.worktreePath)},[X,Z.archived,Z.worktreePath,$.branchTick]),J??Ts(Z.worktreePath)}function ys($){let{theme:Z}=d0();if($.changes.added<=0&&$.changes.deleted<=0)return null;return R.jsxDEV("box",{flexDirection:"row",gap:1,flexShrink:0,children:[$.changes.added>0?R.jsxDEV("text",{fg:Z.success,wrapMode:"none",flexShrink:0,children:["+",$.changes.added]},void 0,!0,void 0,this):null,$.changes.deleted>0?R.jsxDEV("text",{fg:Z.error,wrapMode:"none",flexShrink:0,children:["\u2212",$.changes.deleted]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}function gs($,Z,J,X,z=!1){let G=Aw($,X);if(Z==="turn_complete"){if(J)Pw.add(G)}else Pw.delete(G);return Pw.has(G)||z}function bs($){return $?.state==="turn_complete"?$.at:void 0}function vs($,Z,J,X){let z=rQ(),G=Aw($,Z),W=Es(z,G,J);return HU.useEffect(()=>{if(!z||!X||J===void 0||W)return;ws(z,G,J)},[z,G,J,X,W]),W}function Rw($){return null}var HU,qM0=()=>()=>{},UM0=()=>0,Pw;var ks=d(async()=>{hI();Dw();Nw();Kw();r_();hQ();Wq();Is();A3();X$();a0();await Z$();HU=z1(q1(),1);Pw=new Set});import{MouseButton as BM0}from"@opentui/core";function hs($){let{theme:Z}=d0(),J=e0();if($.shared.movingRowId!==$.rowId)return null;return R.jsxDEV("text",{fg:Z.info,wrapMode:"none",flexShrink:0,children:J("tasks.moveChip").trim()},void 0,!1,void 0,this)}function Tw($){let{theme:Z}=d0(),J=$.shared,X=HX(Z,{cursor:J.cursorIndex===$.flatIndex,selected:J.activeRowId===$.rowId});return R.jsxDEV("box",{ref:(z)=>{if(!z)return;return J.rowEls.set($.flatIndex,z),()=>{if(J.rowEls.get($.flatIndex)===z)J.rowEls.delete($.flatIndex)}},width:"100%",flexDirection:"row",gap:0,backgroundColor:X.backgroundColor,onMouseUp:(z)=>{if(z.stopPropagation(),z.button===BM0.RIGHT&&J.onContextMenu){J.onContextMenu($.flatIndex,$.rowId,z.x,z.y);return}J.onPress($.flatIndex,$.rowId)},children:[R.jsxDEV("text",{fg:X.markerColor,wrapMode:"none",children:X.marker},void 0,!1,void 0,this),R.jsxDEV("text",{wrapMode:"none",flexShrink:0,children:" ".repeat($.depth*KM0)},void 0,!1,void 0,this),$.children]},void 0,!0,void 0,this)}function us($){let{theme:Z}=d0(),J=$.shared,X=$.task,z=J.cursorIndex===$.flatIndex,G=fs(J,X),W=jw(X),H=X.kind==="main";ms.useEffect(()=>{if(J.branchTick,H)Lw(X.repo)},[H,X.repo,J.branchTick]);let U=Zs(X,H?{liveBranch:Mw(X.repo)}:{});return R.jsxDEV(Tw,{rowId:$.rowId,flatIndex:$.flatIndex,depth:1,shared:J,children:R.jsxDEV("box",{flexDirection:"row",flexGrow:1,paddingRight:1,gap:1,children:[R.jsxDEV("text",{fg:Z.text,wrapMode:"none",flexBasis:0,flexGrow:1,flexShrink:1,children:U},void 0,!1,void 0,this),X.pinned===!0?R.jsxDEV("text",{fg:Z.warning,wrapMode:"none",flexShrink:0,children:"\u25B4"},void 0,!1,void 0,this):null,W?R.jsxDEV("text",{fg:pj(Z,W.tone),wrapMode:"none",flexShrink:0,children:W.glyph},void 0,!1,void 0,this):null,R.jsxDEV(ys,{changes:G},void 0,!1,void 0,this),R.jsxDEV(hs,{rowId:$.rowId,shared:J},void 0,!1,void 0,this),R.jsxDEV(Rw,{flatIndex:$.flatIndex,dim:!z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function cs($){let{theme:Z}=d0(),J=$.shared,X=J.cursorIndex===$.flatIndex,z=$.tab.engine===!0,G=z?J.engineTabState?.get($.task.id):void 0,W=z?zs({tabActivity:G?.get($.tab.id),reportedTabCount:G?.size??0,taskActivity:J.engineState?.get($.task.id),active:$.tab.active===!0}):void 0,H=W!==void 0,U=J.selectedTaskId===$.task.id&&$.tab.active===!0,B=vs($.task.id,$.tab.id,H?bs(W):void 0,U),M=H?gs($.task.id,W?.state,U,$.tab.id,B):!1,O=_w({task:$.task,activity:W,lifecycle:H?J.engineLifecycle?.get($.task.id):void 0,job:H?J.taskJobs?.get($.task.id):void 0,spinnerFrame:0,subtitleBudget:0,truncateBranch:OS,completionSeen:M}),L=xs(H&&O.loading),j=Cw(O,()=>L),A=z&&H?j.stateGlyph:Vw;return R.jsxDEV(Tw,{rowId:$.rowId,flatIndex:$.flatIndex,depth:1,shared:$.shared,children:[R.jsxDEV("text",{fg:H?pj(Z,j.tone):Z.textMuted,wrapMode:"none",width:2,flexShrink:0,children:`${A} `},void 0,!1,void 0,this),R.jsxDEV("box",{flexDirection:"row",flexGrow:1,paddingRight:1,gap:1,children:[R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",flexBasis:0,flexGrow:1,flexShrink:1,children:$.tab.label},void 0,!1,void 0,this),R.jsxDEV(hs,{rowId:$.rowId,shared:J},void 0,!1,void 0,this),R.jsxDEV(Rw,{flatIndex:$.flatIndex,dim:!X},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function ds($){let{theme:Z}=d0(),J=e0();return R.jsxDEV(Tw,{rowId:$.rowId,flatIndex:$.flatIndex,depth:1,shared:$.shared,children:[R.jsxDEV("text",{fg:Z.accent,wrapMode:"none",width:2,flexShrink:0,children:"\u21A9 "},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.text,wrapMode:"none",flexShrink:1,children:J("tasks.recentJump",{title:$.task.title})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var ms,KM0=1;var ls=d(async()=>{Nw();r_();GU();hQ();X$();a0();await J$([Z$(),ks()]);ms=z1(q1(),1)});function ps($){let{theme:Z}=d0(),J=e0();return R.jsxDEV("scrollbox",{ref:$.setScrollRef,flexGrow:1,minHeight:0,stickyScroll:!1,verticalScrollbarOptions:{visible:!1},children:R.jsxDEV("box",{flexShrink:0,gap:0,children:[$.rows.map((X,z)=>{if(X.kind==="project"){let G=X.id===i_;return R.jsxDEV(Ks,{label:G?J("tasks.header.scratch"):X.label,suffix:$.movingProjectId===X.id?J("tasks.moveChip"):void 0,topPad:z>0,onContextMenu:$.onProjectContextMenu&&!G?(W,H)=>$.onProjectContextMenu?.(X.id,W,H):void 0},X.id,!1,void 0,this)}if(X.kind==="recent")return R.jsxDEV(ds,{rowId:X.id,flatIndex:$.flatIndexOf.get(X.id)??-1,task:X.task,shared:$.shared},X.id,!1,void 0,this);if(X.kind==="worktree")return R.jsxDEV(us,{rowId:X.id,flatIndex:$.flatIndexOf.get(X.id)??-1,task:X.task,shared:$.shared},X.id,!1,void 0,this);return R.jsxDEV(cs,{rowId:X.id,flatIndex:$.flatIndexOf.get(X.id)??-1,task:X.task,tab:X.tab,shared:$.shared},X.id,!1,void 0,this)}),$.rows.length===0?R.jsxDEV("box",{paddingTop:1,paddingLeft:1,children:R.jsxDEV("text",{fg:Z.textMuted,children:J(Gc({searching:$.searching,projectFilter:!1}))},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var ns=d(async()=>{GU();hQ();X$();a0();await J$([Z$(),Fw(),ls()])});function is(){return[{action:"newChat",labelKey:"tasks.menu.newChat"},{action:"newShell",labelKey:"tasks.menu.newShell"}]}function os($){return[{action:"rename",labelKey:"tasks.menu.rename"},{action:"pin",labelKey:$?"tasks.menu.unpin":"tasks.menu.pin"},{action:"localMerge",labelKey:"tasks.menu.localMerge"},{action:"archive",labelKey:"tasks.menu.archive"},{action:"delete",labelKey:"tasks.menu.delete",danger:!0}]}function as($,Z={}){if($.kind==="project")return[{action:"newTask",labelKey:"tasks.menu.newTask"}];if($.kind==="worktree")return[{action:"open",labelKey:"tasks.menu.open"},...is(),...os($.task.pinned===!0)];let J=[{action:"open",labelKey:"tasks.menu.openTab"}];if((Z.tabCount??0)>1)J.push({action:"closeTab",labelKey:"tasks.menu.closeTab"});return[...J,...is(),...os($.task.pinned===!0)]}function FM0($){for(let Z of[...ZC])Z($)}function rs($,Z){if(ZC.add(Z),VG!==$){if(VG)VG.onMouseDown=void 0;VG=$,$.onMouseDown=FM0}return()=>{if(ZC.delete(Z),ZC.size===0&&VG)VG.onMouseDown=void 0,VG=null}}var ZC,VG=null;var ss=d(()=>{ZC=new Set});function es($,Z){let J=N4(),X=V1(Z);ts.useEffect(()=>{let z=J?.root;if(!$||!z)return;return rs(z,()=>X.current())},[$,J])}var ts;var $t=d(async()=>{ss();w7();await v4();ts=z1(q1(),1)});function Zt($){let Z=e0(),{tree:J,activateRow:X,setCursorIndex:z,actions:G}=$,[W,H]=M6.useState(null),[U,B]=M6.useState(0),M=M6.useCallback((E,I,T,w)=>{let y=as(E,I);H({row:E,actions:y.map((f)=>f.action),entries:y.map((f)=>({id:f.action,label:Z(f.labelKey),danger:f.danger})),x:T,y:w}),B(0)},[Z]),O=M6.useCallback((E,I,T,w)=>{let y=J.rows.find((f)=>f.id===I);if(!y||y.kind==="project"||y.kind==="recent")return;z(E),M(y,{tabCount:J.tabCount(y.task.id)},T,w)},[J.rows,J.tabCount,M,z]),L=M6.useCallback((E,I,T)=>{let w=J.rows.find((y)=>y.kind==="project"&&y.id===E);if(!w)return;M(w,{},I,T)},[J.rows,M]),j=M6.useCallback(()=>H(null),[]);es(W!==null,j);let A=M6.useCallback((E)=>{let I=W?.entries.length??0;if(I===0)return;B((T)=>(T+E+I)%I)},[W]),C=M6.useCallback((E)=>{if(!W||E===void 0)return;let I=W.row;if(H(null),I.kind==="project"){if(E==="newTask")$.onAddTask?.();return}let T=I.task.id;switch(E){case"open":X(I.id);break;case"closeTab":if(I.kind==="tab")$.onCloseTab?.(T,I.tab.id);break;case"newChat":$.onNewTab?.(T,"chat");break;case"newShell":$.onNewTab?.(T,"shell");break;case"rename":G.onRenameRequest?.(T);break;case"pin":G.onPinRequest?.(T);break;case"localMerge":G.onLocalMergeRequest?.(T);break;case"archive":G.onArchiveRequest?.(T);break;case"delete":G.onDeleteRequest?.(T);break;default:break}},[W,X,G,$.onAddTask,$.onCloseTab,$.onNewTab]),_=M6.useCallback(()=>C(W?.actions[U]),[C,W,U]),b=M6.useCallback((E)=>C(W?.actions.find((I)=>I===E)),[C,W]);return{open:W!==null,entries:W?.entries??[],cursor:U,x:W?.x??0,y:W?.y??0,close:j,moveCursor:A,pickCurrent:_,pick:b,openForRow:O,openForProject:L}}var M6;var Jt=d(async()=>{X$();await $t();M6=z1(q1(),1)});function Xt($){let[Z,J]=Yz.useState(!1),[X,z]=Yz.useState(""),G=V1($.focused),W=$.onActiveChange,H=Yz.useCallback(()=>{z(""),J(!0),W?.(!0)},[W]),U=Yz.useCallback(()=>{J(!1),z(""),W?.(!1)},[W]),B=N4();return Yz.useEffect(()=>{if(!Z||!B)return;let M=(O)=>{if(!G.current||JG())return;z((L)=>Wc(L,O)??L)};return B.keyInput.on("keypress",M),()=>{B.keyInput.off("keypress",M)}},[Z,B]),{active:Z,query:X,enter:H,exit:U}}var Yz;var Qt=d(async()=>{hQ();w7();await J$([v4(),D4()]);Yz=z1(q1(),1)});function zt($){return $.split("::").slice(0,2).join("::")}function JC($,Z=Date.now()){Sw.set(zt($),Z)}function Yt($,Z=Date.now()){let J=zt($),X=Sw.get(J);if(X===void 0)return!1;if(Z-X>15000)return Sw.delete(J),!1;return!0}var Sw;var XC=d(()=>{Sw=new Map});function MM0($={}){let Z=$.entries??(()=>i$().entries()),J=$.snapshot??Y6,X=Math.max(1,$.releaseAfterMisses??2),z=new Map,G=new Map,W=new Set,H=new Map,U=new Set,B=!1,M=()=>{for(let j of U)j()},O={async probe(){if(B)return;let j=new Map,A=new Set;for(let[_,b]of H)A.add(_),j.set(_,b);for(let[_,b]of Z()){A.add(_);let E=b.shellPid??null;if(E!==null)j.set(_,E)}let C=!1;for(let _ of[...z.keys()]){if(A.has(_)&&j.has(_))continue;z.delete(_),G.delete(_),C=!0}for(let _ of[...W]){if(A.has(_)&&j.has(_))continue;W.delete(_)}if(j.size>0){let _;try{_=z6(await J())}catch{if(C)M();return}if(B)return;for(let[b,E]of j){let I=sJ(_,E)?.vendor??null;W.add(b);let T=z.get(b)??null;if(I){if(G.delete(b),T===I)continue;z.set(b,I),C=!0;continue}if(T===null)continue;let w=(G.get(b)??0)+1;if(w<X){G.set(b,w);continue}G.delete(b),z.delete(b),C=!0}}if(C)M()},get(j){return z.get(j)??null},resolve(j){let A=z.get(j);if(A)return A;return W.has(j)?null:void 0},setAuxPids(j){H=j},subscribe(j){return U.add(j),()=>{U.delete(j)}},dispose(){B=!0,U.clear(),z.clear(),G.clear(),W.clear(),clearInterval(L)}},L=setInterval(()=>{O.probe()},$.intervalMs??2000);return L.unref?.(),O}function MX(){if(!Iw)Iw=MM0();return Iw}var Iw=null;var YM=d(()=>{DZ();G8()});function LM0($,Z){let J=/^tab-(\d+)$/.exec($);return J?Number(J[1]):Z}function QC($,Z){let J=new Set($.tabs.map((U)=>U.id)),X=[];for(let U of Z){if(J.has(U))continue;J.add(U),X.push(U)}if(X.length===0)return $;let z=$.nextOrdinal,G=X.map((U)=>({kind:"engine",id:U,title:null,ordinal:LM0(U,z++),spawned:!0}));G.sort((U,B)=>U.ordinal-B.ordinal);let W=[...$.tabs,...G],H=W.reduce((U,B)=>Math.max(U,B.ordinal),0);return{tabs:W,activeId:$.activeId,nextOrdinal:Math.max($.nextOrdinal,H+1)}}function zC($,Z,J){if(J.length===0)return!1;if(lo(Z,J),!no())return!1;let z=$.store[v5(Z)],G=e7.get(Z)??(z&&Array.isArray(z.tabs)?z:null),W={tabs:[],activeId:J[0],nextOrdinal:1},H=QC(G??W,J);if(G&&H===G)return!1;return e7.set(Z,H),$.set(v5(Z),H),!0}var Ew=d(()=>{M2()});function Gt($,Z){let J=new Map;for(let X of $){if(X.alive===!1)continue;let{taskId:z,tabId:G}=zz(X.key);if(!G)continue;let W=G.split("::")[0];if(Z.has(jG(z,W)))continue;let H=J.get(z)??[];if(H.some((U)=>U.id===W))continue;H.push({id:W,label:`\u26A0 ${mQ(X.title?.trim()??"",null).trim()||W}`,active:H.length===0,engine:!0}),J.set(z,H)}return J}var Wt=d(()=>{F7();GU()});function OM0($,Z){if($.length!==Z.length)return!1;return $.every((J,X)=>{let z=Z[X];return J.key===z.key&&J.alive===z.alive&&J.title===z.title})}function jM0(){return process.env.BUN_TEST!=="1"&&process.env.VITEST!=="true"}function qt($=jM0()){let[Z,J]=YC.useState(Ht);return YC.useEffect(()=>{if(!$)return;let X=!1,z=async()=>{try{let W=await rY(),{sessions:H=[]}=await W.request("pty.list",{});if(!X)J((U)=>OM0(U,H)?U:H)}catch{if(!X)J((W)=>W.length===0?W:Ht)}};z();let G=setInterval(()=>void z(),NM0);return()=>{X=!0,clearInterval(G)}},[$]),Z}var YC,NM0=2000,Ht;var Ut=d(()=>{Mq();YC=z1(q1(),1),Ht=[]});function Bt($){let{tasks:Z,kv:J,selectedTaskId:X,selectedTabId:z}=$,G=$.query??"",W=G.trim()!=="",H=MX(),[U,B]=$2.useState(0);$2.useEffect(()=>H.subscribe(()=>B((f)=>f+1)),[H]);let M=qt();$2.useEffect(()=>{let f=new Map;for(let h of M)if(h.alive!==!1&&typeof h.pid==="number"&&h.pid>0)f.set(h.key,h.pid);return H.setAuxPids(f),()=>H.setAuxPids(new Map)},[M,H]);let O=$2.useMemo(()=>{let f=new Map;for(let h of M){let p=h.title?.trim();if(p)f.set(h.key,p)}return f},[M]),L=$2.useMemo(()=>{let f=new Map;for(let h of Z){let p=iq(J,h.id);if(!p)continue;let m=h.vendor??b4;f.set(h.id,p.tabs.map((t)=>{let s=q8(h.id,t),G0=H.resolve(s),U0=G0===void 0?t.liveVendor:G0;return{id:t.id,label:BG(t,m,U0,O.get(s)),active:t.id===p.activeId,engine:t.kind==="engine"||(U0??null)!==null}}))}return f},[Z,J,H,U,O]),j=$2.useMemo(()=>{let f=new Set;for(let[m,t]of L)for(let s of t)f.add(jG(m,s.id));let h=new Map,p=M.filter((m)=>!Yt(m.key));for(let[m,t]of Gt(p,f))if(Z.some((s)=>s.id===m))h.set(m,t);return h},[L,M,Z]);$2.useEffect(()=>{if(!J)return;for(let[f,h]of j)zC(J,f,h.map((p)=>p.id))},[j,J]);let A=$2.useMemo(()=>{if(j.size===0)return L;let f=new Map(L);for(let[h,p]of j){let m=f.get(h);f.set(h,m?[...m,...p.map((t)=>({...t,active:!1}))]:p)}return f},[L,j]),C=$.recentTask??null,{rows:_,totalCount:b}=$2.useMemo(()=>{let f=Js({tasks:Z,tabsByTask:A}),h=Bw(f).length;return{rows:W?Xs(f,G):$s(f,C),totalCount:h}},[Z,A,W,G,C]),E=$2.useMemo(()=>Bw(_),[_]),I=$2.useMemo(()=>{if(X===null)return null;if(z!==null)return jG(X,z);return X},[X,z]),T=$2.useCallback((f)=>A.get(f)?.length??0,[A]),w=$2.useCallback((f)=>Qs(Z,f),[Z]),y=$2.useCallback((f)=>{let h=Z.find((p)=>p.id===f);if(!h||h.kind==="dir")return null;return MG(h.repo)},[Z]);return{rows:_,flatIds:E,totalCount:b,tabCount:T,activeRowId:I,projectIdOfTask:y,mainTaskIdOfProject:w}}var $2;var Kt=d(()=>{U2();i8();GU();XC();YM();jE();b5();Ew();M2();Wt();Ut();$2=z1(q1(),1)});function Ft($){let{theme:Z}=d0(),J=rQ(),X=$.focused??!0,z=f5(),G=r4.useMemo(()=>Gr($.tasks,"active"),[$.tasks]),[W,H]=r4.useState(0);r4.useEffect(()=>{let n=setInterval(()=>H((Y0)=>Y0+1),Yc);return()=>clearInterval(n)},[]);let U=Xt({focused:X,onActiveChange:$.onSearchActiveChange}),B=Bt({tasks:G,kv:J,selectedTaskId:$.selectedId,selectedTabId:$.selectedTabId??null,query:U.active?U.query:"",recentTask:$.recentTask??null}),M=r4.useMemo(()=>{let n=new Map;return B.flatIds.forEach((Y0,Z0)=>n.set(Y0,Z0)),n},[B.flatIds]),[O,L]=r4.useState(-1),j=r4.useRef(O),A=r4.useCallback((n)=>{j.current=n,L(n)},[]),C=V1(B.flatIds),_=r4.useRef(null),b=r4.useRef(null),E=$.moveMode===!0;r4.useEffect(()=>{let n=B.flatIds;if(E){let $0=b.current,O0=$0===null?-1:n.indexOf($0);if(O0>=0){if(O0!==j.current)A(O0);return}}let Y0=B.activeRowId,Z0=Y0!==_.current;_.current=Y0;let a=Y0===null?-1:n.indexOf(Y0);if(Z0&&a>=0){if(a!==j.current)A(a);return}if(j.current>=n.length)A(Math.max(0,n.length-1));else if(j.current<0&&n.length>0)A(a>=0?a:0)},[B.flatIds,B.activeRowId,E,A]),r4.useEffect(()=>{b.current=B.flatIds[j.current]??null}),r4.useEffect(()=>{if(U.query,!U.active)return;A(0)},[U.active,U.query,A]);let I=V1($.recentTask??null),T=r4.useCallback((n)=>{let Y0=n===YU?I.current:null,{taskId:Z0,tabId:a}=Y0?{taskId:Y0.id,tabId:null}:zz(n);if($.onSelect(Z0),a===null){$.onActivate?.(Z0);return}$.onSelectTab?.(Z0,a),$.onActivate?.(Z0)},[$.onSelect,$.onActivate,$.onSelectTab]),w=V1(T),y=r4.useRef(null);if(y.current===null)y.current=tr({getCursor:()=>j.current,setCursor:A,getFlatIds:()=>C.current,onSelect:(n)=>w.current(n)});let f=y.current,h=V1($.tasks),p=r4.useCallback((n)=>{let Y0=C.current[j.current];if(Y0===void 0||Y0===YU)return;let{taskId:Z0,tabId:a}=zz(Y0);if(a!==null){$.onMoveTabRequest?.(Z0,a,n);return}let $0=h.current.find((w0)=>w0.id===Z0);if(!$0)return;if($0.kind!=="main"){$.onMoveRequest?.(Z0,n);return}let O0=B.projectIdOfTask(Z0);if(O0===null)return;let Q0=B.mainTaskIdOfProject(O0);if(Q0===null)return;$.onMoveRequest?.(Q0,n)},[B.projectIdOfTask,B.mainTaskIdOfProject,$.onMoveRequest,$.onMoveTabRequest]),m=B.flatIds[O],t=r4.useMemo(()=>{if(m===void 0||m===YU)return{projectId:null,rowId:null};let{taskId:n,tabId:Y0}=zz(m);if(Y0===null){if($.tasks.find((a)=>a.id===n)?.kind==="main")return{projectId:B.projectIdOfTask(n),rowId:null}}return{projectId:null,rowId:m}},[m,$.tasks,B.projectIdOfTask]),s=Zt({tree:B,activateRow:T,setCursorIndex:A,onAddTask:$.onAddTask,onCloseTab:$.onCloseTab,onNewTab:$.onNewTab,actions:$}),G0=y_("sidebar");b1(()=>({enabled:X&&!U.active&&!s.open,bindings:_5({"sidebar.nav":(n,Y0)=>{G0();let Z0=(Y0??0)%2===0;if(E){p(Z0?1:-1);return}if(Z0)f.moveDown();else f.moveUp()},"sidebar.select":()=>{if(G0(),E){$.onMoveModeExit?.();return}f.selectCurrent()},"sidebar.goto":(n,Y0)=>{if(E)return;if((Y0??0)%2===1)f.pressShiftG();else f.pressG()},"sidebar.tree.open":()=>{if(E)return;f.selectCurrent()},"sidebar.search.enter":()=>{if(E)return;U.enter()},"sidebar.delete":()=>{if(E)return;U0($.onDeleteRequest)},"sidebar.archive":()=>{if(E)return;U0($.onArchiveRequest)},"sidebar.rename":()=>{if(E)return;U0($.onRenameRequest)},"sidebar.localMerge":()=>U0($.onLocalMergeRequest),"sidebar.pin":()=>{if(E)return;U0($.onPinRequest)}})})),b1(()=>({enabled:X&&E,bindings:[{key:"escape",cmd:()=>$.onMoveModeExit?.()}]})),b1(()=>({enabled:X&&U.active,bindings:_5({"sidebar.search.nav":(n,Y0)=>{if((Y0??0)%2===0)f.moveDown();else f.moveUp()},"sidebar.search.submit":()=>{f.selectCurrent(),U.exit()},"sidebar.search.cancel":()=>U.exit()})})),b1(()=>({enabled:X&&s.open,bindings:_5({"sidebar.nav":(n,Y0)=>s.moveCursor((Y0??0)%2===0?1:-1),"sidebar.select":()=>s.pickCurrent()})})),b1(()=>({enabled:X&&s.open,bindings:[{key:"escape",cmd:()=>s.close()}]}));function U0(n){let Y0=C.current[j.current];if(Y0===void 0||!n)return;if(Y0===YU)return;n(zz(Y0).taskId)}b1(()=>({enabled:!0,bindings:_5({"tasks.jump":(n,Y0)=>{let Z0=C.current[Y0??0];if(Z0===void 0)return;A(Y0??0),w.current(Z0)}})}));let F0=r4.useRef(null),B0=r4.useRef(null);if(B0.current===null)B0.current=new Map;let W0=B0.current;r4.useEffect(()=>{let n=F0.current;if(!n||O<0||n.viewport.height<=0)return;let Y0=W0.get(O);if(Y0)n.scrollChildIntoView(Y0.id)},[O,W0]);let k=r4.useRef(null),i=$.width??dY;r4.useEffect(()=>{let n=k.current;if(!n)return;n.width=i,n.flexShrink=1,n.minHeight=0},[i]);let l={cursorIndex:O,activeRowId:B.activeRowId,selectedTaskId:$.selectedId,movingRowId:E?t.rowId:null,rowEls:W0,onPress:(n,Y0)=>{s.close(),A(n),T(Y0)},onContextMenu:s.openForRow,branchTick:W,engineState:$.engineState,engineTabState:$.engineTabState,engineLifecycle:$.engineLifecycle,taskJobs:$.taskJobs,worktreeChanges:$.worktreeChanges};return R.jsxDEV("box",{ref:k,flexGrow:1,minHeight:0,flexDirection:"column",backgroundColor:Z.backgroundPanel,paddingTop:1,paddingBottom:1,children:[R.jsxDEV(Ms,{focused:X,status:$.headerStatus??null,onStatusClick:$.onHeaderStatusClick},void 0,!1,void 0,this),R.jsxDEV(Ls,{onAddTask:$.onAddTask},void 0,!1,void 0,this),U.active?R.jsxDEV(Fs,{query:U.query,matchCount:B.flatIds.length,totalCount:B.totalCount},void 0,!1,void 0,this):null,R.jsxDEV(Ns,{nav:$.nav??"terminal",setNav:(n)=>$.onNavChange?.(n)},void 0,!1,void 0,this),R.jsxDEV(ps,{rows:B.rows,flatIndexOf:M,searching:U.active&&U.query.trim().length>0,shared:l,onProjectContextMenu:s.openForProject,movingProjectId:E?t.projectId:null,setScrollRef:(n)=>{F0.current=n}},void 0,!1,void 0,this),$.zenActive?R.jsxDEV(Os,{onZenClick:$.onZenClick},void 0,!1,void 0,this):null,s.open?R.jsxDEV(qs,{entries:s.entries,cursor:s.cursor,x:s.x,y:s.y,dims:{width:i,height:z.height},onPick:s.pick},void 0,!1,void 0,this):null,z.height<0?R.jsxDEV("text",{children:""},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var r4;var Mt=d(async()=>{i8();GU();hQ();SZ();A3();w7();Kt();a0();await J$([v4(),tF(),Z$(),D4(),Us(),Fw(),ns(),Jt(),Qt()]);r4=z1(q1(),1)});class ww{ptyIdentity=null;coordinate=null;update($,Z){if($!==this.ptyIdentity)this.ptyIdentity=$,this.coordinate=null;if($===null)return this.coordinate=null,null;if(Z)this.coordinate={x:Z.x,y:Z.y};return this.coordinate}current(){return this.coordinate}}var xw,fw;var Lt=d(()=>{xw=class xw extends ww{};fw=class fw extends ww{}});import{RGBA as VM0}from"@opentui/core";function Nt($){if(!$)return;return VM0.fromInts($[0],$[1],$[2])}function _M0($){return{__isChunk:!0,text:$.text,...$.fg?{fg:Nt($.fg)}:{},...$.bg?{bg:Nt($.bg)}:{},...$.attributes!==void 0?{attributes:$.attributes}:{}}}function Ot($){let Z=[];for(let J=0;J<$.length;J++){if(J>0)Z.push({__isChunk:!0,text:`
752
752
  `});let X=$[J];if(!X)continue;for(let z of X)Z.push(_M0(z))}return Z}var jt=()=>{};function Vt($){let Z=$.toLowerCase();return Z.includes("enoent")||Z.includes("not found")}function GM($,Z,J=$.attributes??0){return{text:Z,...$.fg?{fg:$.fg}:{},...$.bg?{bg:$.bg}:{},...J!==0?{attributes:J}:{}}}function CM0($){let Z=0;for(let J of $)Z+=oJ(J.codePointAt(0))||1;return Z}function DM0($,Z){let J=[],X=0,z=!1;for(let G of $){if(z){J.push(G);continue}let W=Array.from(G.text),H=X,U=-1;for(let B=0;B<W.length;B++){let M=oJ(W[B].codePointAt(0))||1;if(Z>=H&&Z<H+M){U=B;break}H+=M}if(U>=0){let B=W.slice(0,U).join(""),M=W.slice(U+1).join("");if(B)J.push(GM(G,B));if(J.push(GM(G,W[U]||" ",(G.attributes??0)|G4.INVERSE)),M)J.push(GM(G,M));z=!0}else J.push(G),X+=CM0(W)}if(!z){if(Z>X)J.push({text:" ".repeat(Z-X)});J.push({text:" ",attributes:G4.INVERSE})}return J}function _t($,Z){if(!Z)return $;return $.map((J,X)=>X===Z.y?DM0(J,Z.x):J)}function Ct($,Z,J,X){if(Z<=0)return $;let z=Z-1;return $.map((G)=>{let W=0;for(let H=0;H<G.length;H++){let U=G[H],B=Array.from(U.text);for(let M=0;M<B.length;M++){let O=B[M],L=oJ(O.codePointAt(0))||1;if(W+L<=z){W+=L;continue}let j=U.attributes??0;if(j===0)return G;let A=U.fg??J,C=U.bg??X,_=(j&G4.INVERSE)!==0?{text:O,fg:C,bg:A}:{text:O,fg:A,bg:C},b=B.slice(0,M).join(""),E=B.slice(M+1).join(""),I=G.slice(0,H);if(b)I.push(GM(U,b));if(I.push(_),E)I.push(GM(U,E));return[...I,...G.slice(H+1)]}}return G})}var Dt=d(()=>{Oq()});function At($){let{anchor:Z,head:J}=$;return J.row<Z.row||J.row===Z.row&&J.col<Z.col?{start:J,end:Z}:{start:Z,end:J}}function Pt($,Z,J){let{start:X,end:z}=At($);if(Z<X.row||Z>z.row)return null;let G=Z===X.row?X.col:0,W=Z===z.row?z.col+1:J;return G<W?[G,W]:null}function AM0($){let Z="";for(let J of $)Z+=J.text;return Z}function Rt($){let Z=0;for(let J of $)Z+=oJ(J.codePointAt(0));return Z}function Tt($,Z,J){let X="",z="",G="",W=0,H="before";for(let U of $){let B=oJ(U.codePointAt(0));if(B===0){if(H==="selected")z+=U;else if(H==="after")G+=U;else X+=U;continue}let M=W+B;if(M<=Z)X+=U,H="before";else if(W>=J)G+=U,H="after";else z+=U,H="selected";W=M}return{before:X,selected:z,after:G}}function St($,Z){let{start:J,end:X}=At(Z),z=[];for(let G=Math.max(0,J.row);G<=Math.min($.length-1,X.row);G++){let W=AM0($[G]??[]),H=Pt(Z,G,Math.max(Rt(W),1));z.push(H?Tt(W,H[0],H[1]).selected.trimEnd():"")}return z.join(`
753
753
  `)}function PM0($,Z,J){let X=[],z=0;for(let G of $){let W=z,H=W+Rt(G.text);if(z=H,H<=Z||W>=J){X.push(G);continue}let{before:U,selected:B,after:M}=Tt(G.text,Z-W,J-W);if(U)X.push({...G,text:U});if(X.push({...G,text:B,attributes:(G.attributes??0)|G4.INVERSE}),M)X.push({...G,text:M})}if(z<J)X.push({text:" ".repeat(J-Math.max(z,Z)),attributes:G4.INVERSE});return X}function It($,Z,J,X){if(!Z)return $;return $.map((z,G)=>{let W=Pt(Z,J+G,X);return W?PM0(z,W[0],W[1]):z})}var yw=d(()=>{Oq()});function gw($,Z,J){let X=Math.max(1,Z),z=Math.max(0,$-Math.max(0,J));return{start:Math.max(0,z-X),end:z}}function bw($,Z,J,X){let z=Math.max(0,$-Math.max(1,Z)),G=Math.min(z,Math.max(0,J.fallbackOffset));if(!J.anchor||!X||J.anchor.epoch!==X.epoch)return G;let W=J.anchor.topLine-X.startLine;if(W<=0)return z;return Math.min(z,Math.max(0,$-(W+Math.max(1,Z))))}function Et($,Z,J,X,z){let G=bw(Z,J,$,z),W=Math.max(0,Z-Math.max(1,J)),H=Math.min(W,Math.max(0,G-X));if(H===0)return GC;let U=gw(Z,J,H),B=z?{epoch:z.epoch,topLine:z.startLine+U.start}:null;return{fallbackOffset:H,anchor:B}}function vw($,Z,J){if(!$||Z!==0)return null;if($.y<J.start||$.y>=J.end)return null;return{x:$.x,y:$.y-J.start}}var GC;var wt=d(()=>{GC={fallbackOffset:0,anchor:null}});import{decodePasteBytes as RM0}from"@opentui/core";function xt($){let Z=$.pageSize??Fd,J=V1($),X=V1(Z),z=WC.useMemo(()=>{let W=[];W.push(..._5({"terminal.scroll-up":()=>J.current.scroll(-X.current),"terminal.scroll-down":()=>J.current.scroll(X.current),"terminal.reset":()=>J.current.reset()}));let H=(U)=>{let B=nS(U);if(B!=null)J.current.write(B)};for(let U of Md)W.push({key:U,cmd:H,passthrough:!0});return W},[]);b1(()=>({enabled:J.current.focused,bindings:z}));let G=N4();WC.useEffect(()=>{if(!G)return;let W=(U)=>{if(!J.current.focused||U.defaultPrevented||JG())return;let B=nS(U);if(B==null)return;J.current.write(B),U.preventDefault()},H=(U)=>{if(U.defaultPrevented||JG())return;let B=RM0(U.bytes);if(B.length===0)return;if(!J.current.focused&&(!J.current.unfocusedAttachmentTarget||!XU(B)))return;J.current.paste(B),U.preventDefault()};return G.keyInput.on("keypress",W),G.keyInput.on("paste",H),()=>{G.keyInput.off("keypress",W),G.keyInput.off("paste",H)}},[G])}var WC;var ft=d(async()=>{QU();iS();SZ();w7();await J$([v4(),D4()]);WC=z1(q1(),1)});function yt(){let[$,Z]=LX.useState(null),[J,X]=LX.useState(4),[z,G]=LX.useState(null),W=f5(),[H,U]=LX.useState(0),B=LX.useCallback(()=>{U((M)=>M+1&255)},[]);return LX.useEffect(()=>{if(!$)return;if($.width<=0||$.height<=0)return;let M=Math.max(20,$.width),O=Math.max(4,$.height);X(O),G((L)=>L&&L.cols===M&&L.rows===O?L:{cols:M,rows:O})},[$,W,H]),{bodyEl:$,setBodyEl:Z,bodyRows:J,bodyGeometry:z,bumpGeomTick:B,dims:W,geomTick:H}}var LX;var gt=d(async()=>{await v4();LX=z1(q1(),1)});function bt($){let[Z,J]=U8.useState(null),[X,z]=U8.useState(null),[G,W]=U8.useState([]),H=U8.useRef(null),[U,B]=U8.useState(null),[M,O]=U8.useState(!1),L=V1($.command),j=V1($.initialInput),A=V1($.firstMessage),C=V1($.engineBin),_=V1($.bodyGeometry),b=V1($.registry),E=V1($.onExit),I=V1($.onFreshPty),T=V1($.cwd),w=V1($.taskId),y=$.bodyGeometry!==null,f=$.cwd,h=$.taskId;U8.useEffect(()=>{if(!f||!h||!y){J(null),W([]),H.current=null,B(null),z(null);return}let t=_.current;if(!t)return;let s;try{s=b.current.acquire(h,f,{...t,command:L.current,initialInput:j.current,firstMessage:A.current,engineBin:C.current})}catch(G0){let U0=M1(G0);z(U0),J(null),W([]),H.current=null,B(null);return}z(null),W([]),H.current=null,B(null),O(s.killed),J(s),I.current()},[f,h,y]),U8.useEffect(()=>{let t=Z?Z.killed:!1;if(O(t),!Z)return;if(t){E.current?.({deadOnAttach:Z.deadOnAttach===!0});return}let s=Z.onExit(()=>{O(!0),E.current?.({deadOnAttach:Z.deadOnAttach===!0})}),G0=Z.onData((U0,F0,B0)=>{H.current=B0,W(U0),B(F0)});try{let U0=Z.capture();if(H.current=Z.captureWindow(),U0.length>0)W(U0);B(Z.captureCursor())}catch{}return()=>{s(),G0()}},[Z]);let p=U8.useCallback((t,s,G0,U0)=>{try{let F0={...G0,command:L.current,initialInput:j.current,firstMessage:A.current,engineBin:C.current},B0=U0?b.current.resetIfCurrent(s,U0,t,F0):b.current.reset(s,t,F0);if(!B0)return;J(B0),W([]),H.current=null,B(null),I.current()}catch(F0){let B0=M1(F0);z(B0),J(null),W([]),H.current=null,B(null)}},[]),m=U8.useRef(!1);return U8.useEffect(()=>{if($.resetToken,!m.current){m.current=!0;return}let t=T.current,s=w.current,G0=_.current;if(t&&s&&G0)p(t,s,G0)},[$.resetToken,p]),{pty:Z,snapshot:G,snapshotWindow:H.current,cursor:U,exited:M,acquireError:X,forceReacquire:p}}var U8;var vt=d(()=>{w7();U8=z1(q1(),1)});import{spawnSync as TM0}from"child_process";function kt($,Z){if($==="darwin")return"pbcopy";if($==="linux"){for(let J of SM0)if(Z(J.binary))return J.command}return null}var SM0,mt=($)=>{try{let Z=process.platform==="win32"?"where":"which";return TM0(Z,[$],{encoding:"utf8"}).status===0}catch{return!1}};var ht=d(()=>{SM0=[{binary:"wl-copy",command:"wl-copy"},{binary:"xclip",command:"xclip -selection clipboard -in"},{binary:"xsel",command:"xsel --clipboard --input"}]});function IM0(){if(kw===void 0)kw=kt(process.platform,mt);return kw}function ut($,Z){let J=IM0();if(J)try{let X=Bun.spawn(["sh","-c",J],{stdin:"pipe",stdout:"ignore",stderr:"ignore"});X.stdin.write($),X.stdin.end()}catch{}try{Z($)}catch{}}var kw;var ct=d(()=>{ht()});function dt($){let[Z,J]=_G.useState(null),[X,z]=_G.useState(null),G=_G.useRef(!1),W=N4(),H=_G.useMemo(()=>{if(!Z||!X)return null;if(Z.row===X.row&&Z.col===X.col)return null;return{anchor:Z,head:X}},[Z,X]);return{selection:H,cellFromEvent:(L)=>{let{bodyEl:j,bodyGeometry:A,bodyRows:C,visibleRangeStart:_}=$;if(!j||!A)return null;let b=Math.min(A.cols-1,Math.max(0,(L.x??0)-j.screenX)),E=Math.min(C-1,Math.max(0,(L.y??0)-j.screenY));return{row:_+E,col:b}},beginSelection:(L)=>{G.current=!0,J(L),z(L)},updateSelectionHead:(L)=>{if(!G.current)return;z(L)},isDragging:()=>G.current,endDragging:()=>{G.current=!1},clearSelection:()=>{J(null),z(null)},copySelection:()=>{if(!H)return;let L=St($.snapshot,H);if(L.trim().length>0)ut(L,(j)=>W?.copyToClipboardOSC52(j))}}}var _G;var lt=d(async()=>{ct();yw();await v4();_G=z1(q1(),1)});import{StyledText as EM0}from"@opentui/core";function mw($){let{theme:Z}=d0(),J=e0(),X=$.registry??i$(),[z,G]=D5.useState(!1),W=$.focused??z,[H,U]=D5.useState(GC),{bodyEl:B,setBodyEl:M,bodyRows:O,bodyGeometry:L,bumpGeomTick:j,dims:A,geomTick:C}=yt(),{pty:_,snapshot:b,snapshotWindow:E,cursor:I,exited:T,acquireError:w,forceReacquire:y}=bt({cwd:$.cwd,taskId:$.taskId,command:$.command,initialInput:$.initialInput,firstMessage:$.firstMessage,engineBin:$.engineBin,resetToken:$.resetToken,onExit:$.onExit,registry:X,bodyGeometry:L,onFreshPty:()=>U(GC)}),f=bw(b.length,O,H,E),h=(u0)=>{U((j0)=>Et(j0,b.length,O,u0,E))},p=D5.useMemo(()=>gw(b.length,O,f),[b.length,O,f]),m=D5.useMemo(()=>b.slice(p.start,p.end),[b,p]),t=D5.useMemo(()=>vw(I,f,p),[I,f,p]),[s]=D5.useState(()=>new xw),G0=s.update(_,I),U0=D5.useMemo(()=>vw(G0,f,p),[G0,f,p]),F0=dt({bodyEl:B,bodyGeometry:L,bodyRows:O,visibleRangeStart:p.start,snapshot:b}),B0=D5.useMemo(()=>{let u0=It(m,F0.selection,p.start,L?.cols??80),j0=W&&!F0.selection?t:null;return _t(u0,j0)},[m,F0.selection,p.start,L,W,t]),W0=D5.useMemo(()=>{let u0=Z.text.toInts(),j0=Z.background.toInts(),l0=Ct(B0,L?.cols??80,[u0[0],u0[1],u0[2]],[j0[0],j0[1],j0[2]]);return new EM0(Ot(l0))},[B0,L,Z]),[k,i]=D5.useState(null);D5.useEffect(()=>{if(k&&!k.isDestroyed)k.content=W0},[k,W0]);let l=o$(),n=($.imeAnchorActive??!0)&&l.stack.length===0,Y0=$.imeAnchorActive===!0&&l.stack.length===0,Z0=V1($.taskId),a=V1($.cwd),$0=D5.useRef(!0);D5.useLayoutEffect(()=>{return $0.current=!0,()=>{$0.current=!1}},[]),xt({focused:W,unfocusedAttachmentTarget:Y0,write:(u0)=>{if(!_||_.killed)return;_.write(u0),$.onUserInput?.(u0)},paste:(u0)=>{if(!_||_.killed)return;_.paste(u0)},scroll:h,reset:()=>{if(!_)return;let u0=_,j0=$.cwd,l0=$.taskId,W1=L;if(!j0||!l0||!W1)return;O4.show(l,J("terminal.reset.title"),J("terminal.reset.body"),"cancel").then((R1)=>{if(R1!==!0||!$0.current)return;if(Z0.current!==l0||a.current!==j0)return;y(j0,l0,W1,u0)})}});let Q0=N4(),w0=D5.useRef(Symbol("terminal-ime-anchor")).current,[b0]=D5.useState(()=>new fw),D0=D5.useRef(null);return D5.useEffect(()=>{if(!_||!L)return;let{cols:u0,rows:j0}=L,l0=D0.current;if(l0?.pty===_&&l0.cols===u0&&l0.rows===j0)return;D0.current={pty:_,cols:u0,rows:j0};try{_.resize(u0,j0)}catch{}},[_,L]),D5.useEffect(()=>{if(!Q0)return;if(!n){if(b0.update(null,null),bq.release(w0))Q0.setCursorPosition(0,0,!1);return}let u0=null;if(B&&U0&&B.width>0)u0={x:B.screenX+U0.x,y:B.screenY+U0.y};let j0=b0.update(_,u0);if(j0){bq.claim(w0,j0),Q0.setCursorPosition(j0.x,j0.y,!1);return}bq.claim(w0,{x:0,y:0}),Q0.setCursorPosition(0,0,!1)},[Q0,n,B,U0,A,C,w0,b0,_]),D5.useEffect(()=>{return()=>{try{if(bq.release(w0))Q0?.setCursorPosition(0,0,!1)}catch{}}},[Q0,w0]),R.jsxDEV("box",{flexDirection:"column",flexGrow:1,overflow:"hidden",backgroundColor:Z.background,onMouseDown:(u0)=>{if(u0.button!==0)return;if(!W)$.onRequestFocus?.();let j0=F0.cellFromEvent(u0);if(!j0)return;F0.beginSelection(j0)},onMouseDrag:(u0)=>{let j0=F0.cellFromEvent(u0);if(j0)F0.updateSelectionHead(j0)},onMouseUp:()=>{if(G(!0),!F0.isDragging())return;if(F0.endDragging(),F0.selection)F0.copySelection();else F0.clearSelection()},onMouseScroll:(u0)=>{let j0=u0.scroll;if(!j0||j0.direction!=="up"&&j0.direction!=="down")return;if(_&&!_.killed&&B){let W1=Math.max(1,u0.x-B.screenX+1),R1=Math.max(1,u0.y-B.screenY+1);if(_.wheel(j0.direction,W1,R1))return}let l0=Math.max(1,j0.delta||1);h(j0.direction==="up"?-l0:l0)},children:[T?R.jsxDEV("box",{flexDirection:"row",flexShrink:0,paddingLeft:1,paddingRight:1,children:R.jsxDEV("text",{fg:Z.error,wrapMode:"none",children:J("terminal.exited")},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,f>0?R.jsxDEV("box",{position:"absolute",zIndex:10,left:0,right:0,bottom:0,flexDirection:"row",paddingLeft:1,paddingRight:1,backgroundColor:Z.backgroundPanel,children:R.jsxDEV("text",{fg:Z.warning,wrapMode:"none",children:J("terminal.scrolledBack",{lines:f})},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,R.jsxDEV("box",{ref:(u0)=>M(u0),onSizeChange:j,flexGrow:1,overflow:"hidden",children:_?R.jsxDEV("text",{fg:Z.text,wrapMode:"none",ref:(u0)=>i(u0)},void 0,!1,void 0,this):R.jsxDEV("box",{paddingLeft:1,paddingTop:1,flexDirection:"column",gap:0,children:w?R.jsxDEV(R.Fragment,{children:[R.jsxDEV("text",{fg:Z.error,wrapMode:"word",children:Vt(w)?J("terminal.unavailable.shellMissing"):J("terminal.unavailable.spawnFailed")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"word",children:w},void 0,!1,void 0,this)]},void 0,!0,void 0,this):R.jsxDEV("text",{fg:Z.textMuted,children:J("terminal.noTask")},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var D5;var pt=d(async()=>{ME();Lt();G8();jt();Dt();yw();wt();X$();w7();vt();a0();await J$([v4(),Z$(),C5(),TZ(),ft(),gt(),lt()]);D5=z1(q1(),1)});function hw($=i$().get.bind(i$())){let Z=new Map,J=new Set,X=()=>{for(let z of J)z()};return{reconcile(z){let G=new Set(z),W=!1;for(let[H,U]of Z){if((G.has(H)?$(H):null)===U.pty)continue;U.unsub(),Z.delete(H),W=!0}for(let H of G){if(Z.has(H))continue;let U=$(H);if(!U)continue;let B={pty:U,unsub:()=>{},title:void 0};B.unsub=U.onTitleChange((M)=>{if(B.title===M)return;B.title=M,X()}),Z.set(H,B),W=!0}return W},get(z){return Z.get(z)?.title},subscribe(z){return J.add(z),()=>{J.delete(z)}},dispose(){for(let z of Z.values())z.unsub();Z.clear(),J.clear()}}}function nt($){let Z=A9.useRef(null);if(Z.current===null)Z.current=hw();let J=Z.current,[X,z]=A9.useState(new Map),G=V1($),W=A9.useCallback(()=>{let H=G.current;J.reconcile(H.values());let U=MX();z((B)=>{let M=new Map;for(let[O,L]of H){let j=J.get(L);if(j===void 0)continue;M.set(O,mQ(j,U.resolve(L)))}if(M.size===B.size&&[...M].every(([O,L])=>B.get(O)===L))return B;return M})},[J]);return A9.useEffect(()=>{let H=setInterval(W,wM0);return()=>clearInterval(H)},[W]),A9.useEffect(()=>{W()},[$,W]),A9.useEffect(()=>{let H=!0,U=!1,B=J.subscribe(()=>{if(U)return;U=!0,queueMicrotask(()=>{if(U=!1,H)W()})});return()=>{H=!1,B()}},[J,W]),A9.useEffect(()=>()=>J.dispose(),[J]),X}var A9,wM0=2000;var uw=d(()=>{F7();G8();YM();w7();A9=z1(q1(),1)});import{TextAttributes as it}from"@opentui/core";function CG($,Z){if(!Z)return;for(let J of t7(Z.root))if(J.id!=="leaf-1")i$().release(P3($,J.id))}function at($){let{theme:Z,transparentBackground:J}=d0(),X=J?Z.border:Z.borderSubtle,z=e0(),G=m2(),W=$.splitTree??ot,[H,U]=qU.useState(W.activeLeafId);qU.useEffect(()=>{U(($.splitTree??ot).activeLeafId)},[$.splitTree]);let B=()=>({...W,activeLeafId:H}),M=(p)=>{if(p===W)return;$.onSplitChange(kq(p))},O=nF(W),L=DV(G.get(SF))==="box"&&O,j=kq(W)!==null;function A(p){let m=B(),t=F_(m,p);if(t===null)return!1;if(t!==m)M(t),i$().release(P3($.tabKey,p));return!0}function C(p){if(A(p))return;CG($.tabKey,W),$.onSplitChange(null),$.onExit?.()}let _=()=>i$().get(P3($.tabKey,H))?.size??null;b1(()=>({enabled:$.focused,bindings:_5({"workspace.split.right":()=>M(lF(B(),"row",[H5()],_())),"workspace.split.down":()=>M(lF(B(),"column",[H5()],_())),"workspace.split.focus-next":()=>U(Yo(B(),1).activeLeafId)})}));let b=o$();b1(()=>({enabled:$.focused&&O,bindings:_5({"workspace.split.close":()=>A(H),"workspace.split.rename":()=>{let p=H;g5.show(b,w.get(p)??"",{dialogTitle:z("terminal.split.renameTitle"),fieldLabel:z("terminal.split.renameField"),submitLabel:z("terminal.tab.renameSubmit"),allowEmpty:!0}).then((m)=>{if(m===void 0)return;M(M_(B(),p,m))})}})}));let E=(p)=>$.focused&&H===p,I=qU.useMemo(()=>{let p=new Map;for(let m of t7(W.root))p.set(m.id,P3($.tabKey,m.id));return p},[$.tabKey,W]),T=nt(I),w=NE(t7(W.root),$.command,$.engineTitle,T),y=(p,m)=>p?{border:[p],borderColor:m}:{border:!1},f=(p,m)=>{let t=()=>U(p.id),s=H===p.id,G0=E(p.id),U0=R.jsxDEV(R.Fragment,{children:[R.jsxDEV(mw,{cwd:$.cwd,taskId:P3($.tabKey,p.id),command:p.content??$.command,initialInput:p.content===null?$.initialInput:void 0,firstMessage:p.content===null?$.firstMessage:void 0,engineBin:p.content===null?$.engineBin:void 0,onUserInput:p.content===null?$.onUserInput:void 0,onExit:()=>C(p.id),resetToken:p.id==="leaf-1"?$.resetToken:void 0,focused:G0,imeAnchorActive:s,onRequestFocus:()=>{$.onRequestFocus?.(),t()}},void 0,!1,void 0,this),O?R.jsxDEV("box",{position:"absolute",right:0,top:0,zIndex:10,backgroundColor:Z.backgroundElement,children:R.jsxDEV("text",{fg:G0?Z.focusAccent:Z.textMuted,attributes:G0?it.BOLD:it.DIM,wrapMode:"none",children:` ${w.get(p.id)??""} `},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this);if(L)return R.jsxDEV("box",{flexGrow:1,flexShrink:1,flexBasis:0,border:!0,borderColor:G0?Z.focusAccent:X,onMouseUp:t,children:U0},p.id,!1,void 0,this);return m?R.jsxDEV("box",{flexGrow:1,flexShrink:1,flexBasis:0,border:[m],borderColor:G0?Z.focusAccent:X,onMouseUp:t,children:U0},p.id,!1,void 0,this):R.jsxDEV("box",{flexGrow:1,flexShrink:1,flexBasis:0,border:!1,onMouseUp:t,children:U0},p.id,!1,void 0,this)},h=(p,m,t)=>p.kind==="leaf"?f(p,t):R.jsxDEV("box",{flexDirection:p.orientation,flexGrow:1,flexShrink:1,flexBasis:0,...y(L?void 0:t,X),children:p.children.map((s,G0)=>h(s,s.kind==="leaf"?s.id:`${m}.${G0}`,G0>0?p.orientation==="row"?"left":"top":void 0))},m,!1,void 0,this);if(j)return R.jsxDEV("box",{flexDirection:"column",flexGrow:1,overflow:"hidden",children:h(W.root,"root")},void 0,!1,void 0,this);return R.jsxDEV(mw,{cwd:$.cwd,taskId:$.tabKey,command:$.command,initialInput:$.initialInput,firstMessage:$.firstMessage,engineBin:$.engineBin,onUserInput:$.onUserInput,onExit:$.onExit,resetToken:$.resetToken,focused:$.focused,imeAnchorActive:!0,onRequestFocus:$.onRequestFocus},void 0,!1,void 0,this)}var qU,ot;var WM=d(async()=>{IF();_3();G8();b5();SZ();A3();X$();uw();a0();await J$([QX(),Z$(),D4(),pt(),C5()]);qU=z1(q1(),1),ot=K_(null)});function HM($,Z,J){let X=Z?q8($,Z):Y7($,J);if(CG(X,Z?.splitTree??null),Z?.kind==="engine"&&Z.ptyTask)return;JC(X);let z=i$(),G=z.get(X);if(z.release(X),!G)xM0(X)}function xM0($){let Z=xc();if(!Z)return;Z.then((J)=>J.request("pty.kill",{key:$})).catch(()=>{})}function fM0($,Z){let J=e7.get(Z);if(J)return J;let X=$.store[v5(Z)];return X&&Array.isArray(X.tabs)?X:null}function rt($,Z,J){if(ho(Z,J),!co())return!0;let z=fM0($,Z);if(!z)return!1;let G=z.tabs.find((U)=>U.id===J),{state:W,closedId:H}=dq(z,J);if(!H)return!1;return e7.set(Z,W),$.set(v5(Z),W),HM(Z,G,H),!0}var cw=d(async()=>{Mq();G8();XC();b5();M2();await WM()});function st($,Z,J,X){if(io(Z,J,X),!ao())return!0;let G=$.store[v5(Z)],W=e7.get(Z)??(G&&Array.isArray(G.tabs)?G:null);if(!W)return!1;let H=V_(W,J,X);if(H===W)return!1;return e7.set(Z,H),$.set(v5(Z),H),!0}var tt=d(()=>{b5();M2()});function et($){let{theme:Z}=d0(),J=m2(),X=Zz(),z=e0(),G=HC.useCallback((B,M)=>{if(!rt(J,B,M))X.notify({kind:"error",taskId:B,tabId:M,title:z("terminal.tab.cannotCloseLast")})},[J,X,z]),W=HC.useCallback((B,M,O)=>{st(J,B,M,O)},[J]),H=HC.useCallback((B,M)=>{$.onActivate(B),bo(B,M)},[$.onActivate]),U={width:$.width,nav:$.nav,onNavChange:$.onNavChange,tasks:$.tasks,selectedId:$.selectedId,onSelect:$.onSelect,onActivate:$.onActivate,engineState:$.engineState,engineTabState:$.engineTabState,engineLifecycle:$.engineLifecycle,taskJobs:$.taskJobs,worktreeChanges:$.worktreeChanges,transcriptActivity:$.transcriptActivity,focused:$.focused,onDeleteRequest:$.onDeleteRequest,onArchiveRequest:$.onArchiveRequest,onRenameRequest:$.onRenameRequest,onPinRequest:$.onPinRequest,onLocalMergeRequest:$.onLocalMergeRequest,moveMode:$.moveMode,onMoveRequest:$.onMoveRequest,onMoveModeExit:$.onMoveModeExit,onSearchActiveChange:$.onSearchActiveChange,onAddTask:$.onAddTask,headerStatus:$.headerStatus,onHeaderStatusClick:$.onHeaderStatusClick,zenActive:$.zenActive,onZenClick:$.onZenClick};return R.jsxDEV("box",{width:$.width,flexShrink:0,flexDirection:"column",backgroundColor:Z.backgroundPanel,onMouseUp:$.onFocusRequest,children:[R.jsxDEV(Ft,{...U,selectedTabId:$.selectedTabId,onSelectTab:$.onSelectTab,onCloseTab:G,onNewTab:H,onMoveTabRequest:W,recentTask:$.recentTask??null},void 0,!1,void 0,this),R.jsxDEV("box",{flexShrink:0,paddingLeft:1,paddingBottom:0,children:R.jsxDEV(g_,{pane:"sidebar"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var HC;var $e=d(async()=>{A3();yq();X$();tt();M2();a0();await J$([tF(),Z$(),Mt(),cw()]);HC=z1(q1(),1)});function Ze($,Z){return $.find((J)=>J.id!==Z&&!J.archived)}async function Je($,Z,J){let X=await pY();if(!X)return;try{await Bq(X.rpc,Uq(await nY(X.rpc),$))}catch(z){Z.error(`${J} kill hosted session failed:`,z)}finally{X.close()}}function Xe($,Z){let J=$.activeTaskSignal;if(typeof J!=="function")return!0;return J.call($)()===Z}async function yM0($){let Z=$.tasks.find((z)=>z.id===$.taskId);if(!Z)return null;let J=!Z.archived;try{await $.orch.setArchived($.taskId,J)}catch(z){return $.logger.error(`${$.logPrefix} archive failed:`,z),null}if(!J)return{archived:J};let X=Ze($.tasks,$.taskId);if($.updateActiveTask&&Xe($.orch,$.taskId))await $.orch.setActiveTask(X?.id??null).catch(()=>{});return await Je($.taskId,$.logger,$.logPrefix),{archived:J,nextTask:X}}async function dw($){let Z=Ze($.tasks,$.taskId);if($.updateActiveTask&&$.orch&&Xe($.orch,$.taskId))await $.orch.setActiveTask(Z?.id??null).catch(()=>{});return await Je($.taskId,$.logger,$.logPrefix),{nextTask:Z}}async function Qe($,Z){if(!$.orch)return;let J=$.tasks().find((z)=>z.id===Z);if(!J)return;if(!J.archived){if(!await $.confirm({title:`Archive "${J.title}"?`,body:"Moves it to Archives and stops its running session. The worktree, branch, and chat history stay \u2014 unarchive to bring it back.",cancelLabel:"cancel",confirmLabel:"archive"}))return}if(!await yM0({orch:$.orch,tasks:$.tasks(),taskId:Z,logger:$.logger,logPrefix:$.logPrefix,updateActiveTask:$.updateActiveTask}))return;await $.reload?.()}async function ze($,Z){if(!$.orch)return;let J=$.tasks().find((W)=>W.id===Z);if(!J)return;if(J.kind==="main"){if(!await $.confirm({title:`Remove project "${J.title}"?`,body:"Forgets it from the projects list. The repo, its branches, worktrees, and any tasks under it stay on disk \u2014 re-add it with `rove add`.",cancelLabel:"cancel",confirmLabel:"remove"}))return;try{await $.orch.forgetProject(J.repo)}catch(H){$.logger.error(`${$.logPrefix} forget project failed:`,H),$.notifyError?.(`Couldn't remove: ${M1(H)}`);return}await $.reload?.();return}if(!await $.confirm({title:`Delete "${J.title}"?`,body:J.kind==="dir"?"Removes the task entry. The directory itself stays on disk. Its hosted sessions are stopped.":"Removes the task entry and its worktree. The git branch stays. Its hosted sessions are stopped.",cancelLabel:"cancel",confirmLabel:"delete"}))return;let z=!1;try{await $.orch.deleteTask(Z),z=!0}catch(W){if(M1(W).includes(LR)){if(await $.confirm({title:`"${J.title}" has uncommitted changes`,body:"Its worktree has uncommitted or untracked work that will be permanently deleted. Force delete anyway?",cancelLabel:"cancel",confirmLabel:"force delete"}))try{await $.orch.deleteTask(Z,{force:!0}),z=!0}catch(B){$.logger.error(`${$.logPrefix} force delete failed:`,B),$.notifyError?.(`Couldn't delete: ${M1(B)}`)}}else $.logger.error(`${$.logPrefix} delete failed:`,W),$.notifyError?.(`Couldn't delete: ${M1(W)}`)}if(!z)return;let{nextTask:G}=await dw({orch:$.orch,tasks:$.tasks(),taskId:Z,logger:$.logger,logPrefix:$.logPrefix,updateActiveTask:$.updateActiveTask});await $.reload?.(),$.onTaskDeleted?.(Z,G)}async function Ye($,Z){let J=$.tasks().find((z)=>z.id===Z);if(!J)return;let X=await $.promptText(J.title);if(!X||!$.orch)return;try{await $.orch.setTitle(Z,X)}catch(z){$.logger.error(`${$.logPrefix} task.rename failed:`,z),$.notifyError?.(`Couldn't rename task: ${M1(z)}`);return}await $.reload?.()}async function Ge($,Z){let J=$.tasks().find((G)=>G.id===Z);if(!J||!$.orch)return;let X=await jZ(),z=IH(X,J.vendor??b4);try{await $.orch.setVendor(Z,z)}catch(G){$.logger.error(`${$.logPrefix} task.setVendor failed:`,G),$.notifyError?.(`Couldn't switch engine: ${M1(G)}`);return}$.notifyInfo?.(`Engine \u2192 ${y5(z)} (applies on reopen)`),await $.reload?.()}var lw=d(()=>{cJ();VF();L7();bJ();U2();P7()});async function We($){let Z=J6(),J=$.cursorRepo()??Z[0]??process.cwd(),X=$.lastVendor(J)??b4,z=await jZ();if(z.length===0)$.notifyInfo?.("No engine CLI detected \u2014 install claude or codex, or add one in Settings \u2192 Engines");let G=$.orch,W=await $.promptNewTask(J,Z,{defaultVendor:X,availableVendors:z,discoverAdoptable:G?(U)=>G.discoverAdoptableWorktrees(U):void 0});if(!W)return;if($.rememberVendor(W.repo,W.vendor),SY(W.repo),$.onRepoSaved?.(),!G){$.logger.error(`${$.logPrefix} no daemon; cannot create task`);return}$.notifyInfo?.("Creating task\u2026");let H;if(W.mode==="adopt"){let U=W.adopt.length,B=0,M;for(let O of W.adopt)try{H=(await G.adoptWorktree({repo:W.repo,worktreePath:O.worktreePath,branch:O.branch,vendor:W.vendor})).id,B++}catch(L){if(M===void 0)M=M1(L);$.logger.error(`${$.logPrefix} adoptWorktree failed for ${O.worktreePath}:`,L)}if(B===0){$.notifyError?.(W$("newTask.adopt.summaryNone",{error:M??""}));return}if(B<U)$.notifyInfo?.(W$("newTask.adopt.summaryPartial",{done:B,total:U}));else $.notifyInfo?.(W$("newTask.adopt.summaryAll",{count:B}))}else try{H=(await G.createTask({repo:W.repo,baseRef:W.baseRef,vendor:W.vendor})).id}catch(U){$.logger.error(`${$.logPrefix} task.create failed:`,U),$.notifyError?.(`Couldn't create task: ${M1(U)}`);return}if(await $.reload?.(),H)$.selectTask?.(H),await $.enterTask?.(H)}var He=d(()=>{cJ();C4();RZ();U2()});import{TextAttributes as gM0}from"@opentui/core";function bM0($){let Z=o$(),{theme:J}=d0(),X=e0(),z=M7(),[G,W]=UU.useState($.currentBranch),[H,U]=UU.useState(0),B=UU.useMemo(()=>mV($.repo),[$.repo]),M=UU.useMemo(()=>hV(B,G),[B,G]),O=L9(M,H);function L(C){if(M.length===0)return;U((_)=>w4(_+C,M.length))}function j(C){let _=C.trim();if(!_)return;$.onSubmit(_),Z.clear()}let A=O.items.map((C,_)=>({key:`${O.start+_}:${C}`,body:C,accent:G.trim()===C}));return b1(()=>({bindings:[{key:"up",cmd:()=>L(-1)},{key:"down",cmd:()=>L(1)}]})),R.jsxDEV("box",{paddingLeft:z,paddingRight:z,gap:1,children:[R.jsxDEV("box",{flexDirection:"row",justifyContent:"space-between",children:[R.jsxDEV("text",{attributes:gM0.BOLD,fg:J.text,children:X("tasks.reBranch.title")},void 0,!1,void 0,this),R.jsxDEV("text",{fg:J.textMuted,onMouseUp:()=>$.onCancel(),children:"esc"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{fg:J.accent,children:X("tasks.reBranch.fieldLabel")},void 0,!1,void 0,this),R.jsxDEV("input",{value:G,placeholder:$.currentBranch,focused:!0,onInput:(C)=>{W(r5(C)),U(0)},onSubmit:()=>j(uV(G,M,H))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M.length===0?R.jsxDEV("box",{gap:0,paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,wrapMode:"none",children:B.length===0?X("tasks.reBranch.hintNoBranches"):X("tasks.reBranch.hintNoMatch")},void 0,!1,void 0,this)},void 0,!1,void 0,this):R.jsxDEV(C9,{window:O,cursor:H,rows:A,onPick:(C)=>j(M[C]??G),paddingBottom:1},void 0,!1,void 0,this),R.jsxDEV("box",{paddingBottom:1,children:R.jsxDEV("text",{fg:J.textMuted,children:X("tasks.reBranch.footer")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function vM0($,Z){return k2($,(J)=>R.jsxDEV(bM0,{currentBranch:Z.currentBranch,repo:Z.repo,onSubmit:(X)=>J(X),onCancel:()=>J(void 0)},void 0,!1,void 0,this))}var UU,qe;var Ue=d(async()=>{p8();sQ();X$();a0();await J$([Z$(),D4(),C5(),UX()]);UU=z1(q1(),1);qe={show:vM0}});function Be({vm:$}){let{theme:Z}=d0(),J=e0(),X=$.adoptVisible.map((z)=>{let G=[z.dirty?"dirty":"",z.kobeManaged?"":"external"].filter(Boolean).join(",");return{key:z.path,body:`${$.adoptSelected.has(z.path)?"[x] ":"[ ] "}${z.branch}${G?` (${G})`:""}`,accent:$.adoptSelected.has(z.path)}});return R.jsxDEV(R.Fragment,{children:[R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{...B6(Z,$.field,"adoptFilter"),children:J("newTask.field.adoptFilter")},void 0,!1,void 0,this),R.jsxDEV("input",{value:$.adoptFilter,placeholder:J("newTask.placeholder.adoptFilter"),focused:$.field==="adoptFilter",onMouseUp:()=>$.setField("adoptFilter"),onInput:(z)=>$.setAdoptFilterText(z),onSubmit:()=>$.toggleAdoptCursor()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{paddingLeft:2,children:R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:J("newTask.adopt.repoLine",{path:$.expandedRepo||J("newTask.adopt.repoNone")})},void 0,!1,void 0,this)},void 0,!1,void 0,this),$.adoptLoading?R.jsxDEV("box",{paddingLeft:2,children:R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:J("newTask.hint.scanningWorktrees")},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,!$.adoptLoading&&$.adoptList.length===0?R.jsxDEV("box",{paddingLeft:2,children:R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:$.adoptDiscoveredCount===0?J("newTask.adopt.noUnlinked"):J("newTask.adopt.noMatch")},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,$.adoptList.length>0?R.jsxDEV(C9,{window:$.adoptWindow,cursor:$.adoptCursor,rows:X,onPick:$.pickAdoptAt,footer:R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:$.adoptSelected.size>0?J("newTask.adopt.hintSelected",{count:$.adoptSelected.size}):J("newTask.adopt.hintDefault")},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var Ke=d(async()=>{X$();a0();await J$([Z$(),UX()])});function Fe({vm:$}){let{theme:Z}=d0(),J=e0(),X=$.cloneParentWindow.items.map((z,G)=>({key:`${$.cloneParentWindow.start+G}:${z}`,body:`${z}/`}));return R.jsxDEV(R.Fragment,{children:[R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{...B6(Z,$.field,"cloneUrl"),children:J("newTask.field.gitUrl")},void 0,!1,void 0,this),R.jsxDEV("input",{value:$.cloneUrl,placeholder:"https://github.com/user/repo.git",focused:$.field==="cloneUrl",onMouseUp:()=>$.setField("cloneUrl"),onInput:(z)=>$.setCloneUrlText(z),onSubmit:()=>{if(!$.cloneUrl.trim())return;$.setField("cloneParent")}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{...B6(Z,$.field,"cloneParent"),children:J("newTask.field.parentDir")},void 0,!1,void 0,this),R.jsxDEV("input",{value:$.cloneParent,placeholder:"~/",focused:$.field==="cloneParent",onMouseUp:()=>$.setField("cloneParent"),onInput:(z)=>$.setCloneParentText(z),onSubmit:()=>$.onCloneParentSubmit()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.field==="cloneParent"?R.jsxDEV("box",{paddingLeft:2,children:R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:J("newTask.hint.remembered")},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,$.field==="cloneParent"&&$.cloneParentFiltered.length>0&&!$.cloneParentPicked?R.jsxDEV(C9,{window:$.cloneParentWindow,cursor:$.cloneParentCursor,rows:X,onPick:$.selectCloneParentAt},void 0,!1,void 0,this):null,R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{...B6(Z,$.field,"cloneFolder"),children:J("newTask.field.folderName")},void 0,!1,void 0,this),R.jsxDEV("input",{value:$.cloneFolder,placeholder:J("newTask.placeholder.folderName"),focused:$.field==="cloneFolder",onMouseUp:()=>$.setField("cloneFolder"),onInput:(z)=>$.setCloneFolderText(z),onSubmit:()=>$.setField("cloneBaseRef")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{...B6(Z,$.field,"cloneBaseRef"),children:J("newTask.field.baseBranch")},void 0,!1,void 0,this),R.jsxDEV("input",{value:$.cloneBaseRef,placeholder:l8,focused:$.field==="cloneBaseRef",onMouseUp:()=>$.setField("cloneBaseRef"),onInput:(z)=>$.setCloneBaseRefText(z),onSubmit:()=>void $.commitClone()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.cloneInFlight?R.jsxDEV("box",{gap:0,paddingLeft:2,children:R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:$.cloneProgress||J("newTask.clone.progressFallback")},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var Me=d(async()=>{sQ();X$();a0();await J$([Z$(),UX()])});function Le({vm:$}){let{theme:Z}=d0(),J=e0(),X=$.activeWindow.items.map((G,W)=>{let H=$.mode==="saved"&&G===$.defaultRepo,U=$.mode==="browse"?"/":"",B=H?` ${J("newTask.hint.currentDir")}`:"";return{key:`${$.activeWindow.start+W}:${G}`,body:`${G}${U}${B}`,accent:$.mode==="saved"&&$.repo.trim()===G}}),z=$.branchWindow.items.map((G,W)=>({key:`${$.branchWindow.start+W}:${G}`,body:G,accent:$.baseRef.trim()===G}));return R.jsxDEV(R.Fragment,{children:[R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{...B6(Z,$.field,"repo"),children:J("newTask.field.repo")},void 0,!1,void 0,this),R.jsxDEV("input",{value:$.repo,placeholder:$.defaultRepo,focused:$.field==="repo",onMouseUp:()=>$.setField("repo"),onInput:(G)=>$.setRepoText(G),onSubmit:()=>$.onRepoSubmit()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.field==="repo"&&$.activeList.length>0&&!$.repoPicked?R.jsxDEV(C9,{window:$.activeWindow,cursor:$.repoCursor,rows:X,onPick:$.selectRepoAt},void 0,!1,void 0,this):null,R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{...B6(Z,$.field,"baseRef"),children:J("newTask.field.fromBranch")},void 0,!1,void 0,this),R.jsxDEV("input",{value:$.baseRef,placeholder:l8,focused:$.field==="baseRef",onMouseUp:()=>$.setField("baseRef"),onInput:(G)=>$.setBaseRefText(G),onSubmit:()=>$.onBaseRefSubmit()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$.field==="baseRef"&&$.branchFiltered.length===0&&$.submitError==null?R.jsxDEV("box",{gap:0,paddingLeft:2,paddingBottom:1,children:R.jsxDEV("text",{fg:Z.textMuted,wrapMode:"none",children:$.branches.length===0?J("newTask.hint.noBranchesFound"):J("newTask.hint.noMatchBranch")},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,$.field==="baseRef"&&$.branchFiltered.length>0?R.jsxDEV(C9,{window:$.branchWindow,cursor:$.branchCursor,rows:z,onPick:$.pickBranchAt,paddingBottom:1},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var Ne=d(async()=>{sQ();X$();a0();await J$([Z$(),UX()])});function pw($){return $&&$.length>0?$:m8}function Oe($,Z){let J=Z??"claude";return $.includes(J)?J:$[0]??"claude"}function je($,Z){let J=new Set($);if(J.has(Z))J.delete(Z);else J.add(Z);return J}function Ve($,Z){if(Z.length===0)return $;return Z.every((X)=>$.has(X))?new Set:new Set(Z)}var nw=d(()=>{P7()});function _e($){let[Z,J]=o8.useState(""),[X,z]=o8.useState(0),[G,W]=o8.useState(new Set),[H,U]=o8.useState(void 0),[B,M]=o8.useState(!1),O=o8.useMemo(()=>Mn(H??[],Z),[H,Z]),L=L9(O.map((m)=>m.path),X),j=O.slice(L.start,L.start+L.items.length),A=(H??[]).length,{active:C,expandedRepo:_,discoverAdoptable:b}=$;o8.useEffect(()=>{if(!C)return;let m=!1;return M(!0),(async()=>{let t=[];try{t=b?await b(_):[]}catch{t=[]}if(m)return;U(t),M(!1)})(),()=>{m=!0}},[C,_,b]),o8.useEffect(()=>{z((m)=>w4(m,O.length))},[O]);let E=o8.useRef(void 0);o8.useEffect(()=>{if(E.current!==void 0&&E.current!==_)W(new Set),z(0);E.current=_},[_]);function I(m){J(r5(m))}function T(m){W((t)=>je(t,m))}function w(){let m=O[X];if(m)T(m.path)}function y(m){let t=O[m];if(!t)return;z(m),T(t.path)}function f(){W((m)=>Ve(m,O.map((t)=>t.path)))}function h(m){if(O.length===0)return;z((t)=>w4(t+m,O.length))}function p(){if(O.length===0){$.setSubmitError(W$("newTask.error.noAdoptable"));return}let m=G.size>0?O.filter((t)=>G.has(t.path)):O.slice(X,X+1);if(m.length===0)return;$.onSubmit({mode:"adopt",repo:_,vendor:$.vendor,adopt:m.map((t)=>({worktreePath:t.path,branch:t.branch}))}),$.clearDialog()}return{adoptFilter:Z,adoptLoading:B,adoptDiscoveredCount:A,adoptList:O,adoptWindow:L,adoptVisible:j,adoptCursor:X,adoptSelected:G,setAdoptFilterText:I,toggleAdoptCursor:w,pickAdoptAt:y,adoptSelectAll:f,moveAdoptCursor:h,commitAdopt:p}}var o8;var Ce=d(()=>{p8();X$();nw();o8=z1(q1(),1)});import{spawn as kM0}from"child_process";import*as DG from"fs";import*as qM from"path";function De($){let Z=$.trim().replace(/\/+$/,"");if(!Z)return"";let J=Z.lastIndexOf("/"),X=Z.lastIndexOf(":"),z=Math.max(J,X);return(z>=0?Z.slice(z+1):Z).replace(/\.git$/i,"")}function Ae($){let Z=$.trim();if(!Z)return W$("newTask.error.gitUrlRequired");let J=Z.includes("://"),X=Z.includes("@")&&Z.includes(":"),z=Z.includes("/");if(!J&&!X&&!z)return W$("newTask.error.gitUrlInvalid",{url:Z});return null}function iw($,Z){let J=Z.trim();if(!J)return W$("newTask.error.folderRequired");if(J.includes("/")||J.includes("\\"))return W$("newTask.error.folderHasSeparator");let X=$.trim();if(!X)return W$("newTask.error.parentRequired");let z=IZ(X),G;try{G=DG.statSync(z)}catch{return W$("newTask.error.parentNotFound",{path:z})}if(!G.isDirectory())return W$("newTask.error.parentNotDir",{path:z});let W=qM.join(z,J);if(DG.existsSync(W))return W$("newTask.error.targetExists",{path:W});return null}function Pe($,Z){return qM.join(IZ($.trim()),Z.trim())}function Re($,Z){let J=Z.trim();if(!J)return Z;let X=IZ($.trim());if(!X)return Z;try{if(!DG.statSync(X).isDirectory())return Z}catch{return Z}if(!DG.existsSync(qM.join(X,J)))return J;for(let z=2;z<1000;z++){let G=`${J}-${z}`;if(!DG.existsSync(qM.join(X,G)))return G}return J}function Te($,Z,J){return new Promise((X)=>{let z="";try{let G=kM0("git",["clone","--progress",$,Z],{stdio:["ignore","ignore","pipe"],env:{...process.env,GIT_TERMINAL_PROMPT:"0",GIT_ASKPASS:""}});G.stderr?.setEncoding("utf-8"),G.stderr?.on("data",(W)=>{if(z+=W,J){let H=W.split(/[\r\n]+/).filter((B)=>B.trim().length>0),U=H[H.length-1];if(U)J(U)}}),G.on("error",(W)=>{X({ok:!1,error:W.message})}),G.on("close",(W)=>{if(W===0){X({ok:!0,path:Z});return}let H=z.split(/[\r\n]+/).filter((U)=>U.trim().length>0).pop()??`git clone exited with ${W}`;X({ok:!1,error:H})})}catch(G){X({ok:!1,error:M1(G)})}})}var Se=d(()=>{RZ();UG()});function qC($){let Z=ow.useMemo(()=>Jo($),[$]),J=ow.useMemo(()=>Qo(Xo(Z.base),Z.filter),[Z]);return{split:Z,filtered:J}}var ow;var aw=d(()=>{UG();ow=z1(q1(),1)});function Ie($){let[Z,J]=L6.useState(""),[X,z]=L6.useState($.defaultCloneParent?.trim()?$.defaultCloneParent:"~/"),[G,W]=L6.useState(""),[H,U]=L6.useState(!1),[B,M]=L6.useState(l8),[O,L]=L6.useState(!1),[j,A]=L6.useState(""),[C,_]=L6.useState(0),[b,E]=L6.useState(!1),{split:I,filtered:T}=qC(X),w=L9(T,C);L6.useEffect(()=>{if(H)return;W(Re(X,De(Z)))},[Z,X,H]);function y(U0){J(r5(U0))}function f(U0){E(!1),z(r5(U0)),_(0)}function h(U0){U(!0),W(r5(U0))}function p(U0){M(r5(U0))}function m(){let U0=T[C];if(U0)z(vq(X,I.base,U0)),_(0),E(!0);$.setField("cloneFolder")}function t(U0){let F0=T[U0];if(!F0)return;z(vq(X,I.base,F0)),_(U0),E(!0),$.setField("cloneFolder")}function s(U0){if(T.length===0)return;_((F0)=>w4(F0+U0,T.length))}async function G0(){if(O)return;let U0=Ae(Z);if(U0){$.setSubmitError(U0),$.setField("cloneUrl");return}let F0=iw(X,G);if(F0){$.setSubmitError(F0);let i=G.trim(),n=!(!i||i.includes("/")||i.includes("\\"))&&iw(X,"__kobe_probe__")!=null;$.setField(n?"cloneParent":"cloneFolder");return}let B0=Pe(X,G);L(!0),A(W$("newTask.clone.progressInto",{target:B0}));let W0=await Te(Z.trim(),B0,(i)=>A(i));if(L(!1),!W0.ok){$.setSubmitError(W$("newTask.error.cloneFailed",{error:W0.error})),$.setField("cloneUrl");return}let k=B.trim()||l8;$.onSubmit({repo:W0.path,baseRef:k,vendor:$.vendor,cloned:{parentDir:IZ(X.trim())}}),$.clearDialog()}return{cloneUrl:Z,cloneParent:X,cloneFolder:G,cloneBaseRef:B,cloneInFlight:O,cloneProgress:j,cloneParentFiltered:T,cloneParentWindow:w,cloneParentCursor:C,cloneParentPicked:b,setCloneUrlText:y,setCloneParentText:f,setCloneFolderText:h,setCloneBaseRefText:p,onCloneParentSubmit:m,selectCloneParentAt:t,moveParentCursor:s,commitClone:G0}}var L6;var Ee=d(()=>{Se();p8();sQ();UG();X$();aw();L6=z1(q1(),1)});function we($){let Z=o$(),[J,X]=f7.useState("existing"),z=pw($.availableVendors),[G,W]=f7.useState(()=>Oe(pw($.availableVendors),$.defaultVendor)),[H,U]=f7.useState("tabs"),[B,M]=f7.useState($.defaultRepo),[O,L]=f7.useState(()=>Eq(IZ($.defaultRepo.trim()))??l8),[j,A]=f7.useState(!1),[C,_]=f7.useState(0),[b,E]=f7.useState(!1),[I,T]=f7.useState(0),[w,y]=f7.useState(null),f=f7.useMemo(()=>Ln($.defaultRepo,$.savedRepos),[$.defaultRepo,$.savedRepos]),h=Fn(B,f),{split:p,filtered:m}=qC(B),t=f7.useMemo(()=>Nn(f,B),[f,B]),s=h==="browse"?m:t,G0=L9(s,C),U0=IZ(B.trim()),F0=f7.useMemo(()=>mV(U0),[U0]),B0=f7.useMemo(()=>hV(F0,O),[F0,O]),W0=L9(B0,I),k=Ie({defaultCloneParent:$.defaultCloneParent,vendor:G,onSubmit:$.onSubmit,clearDialog:()=>Z.clear(),setField:U,setSubmitError:y}),i=_e({active:J==="adopt",expandedRepo:U0,vendor:G,discoverAdoptable:$.discoverAdoptable,onSubmit:$.onSubmit,clearDialog:()=>Z.clear(),setSubmitError:y});f7.useEffect(()=>{if(!U0||j)return;let j0=Eq(U0);if(j0)L(j0)},[U0,j]),f7.useEffect(()=>{y(null)},[B,k.cloneUrl,k.cloneParent,k.cloneFolder,i.adoptFilter]);function l(j0){E(!1),M(r5(j0)),_(0),T(0)}function n(j0){A(!0),L(r5(j0)),T(0)}function Y0(){let j0=U0;if(!j0)return;let l0=Kn(j0);if(l0){y(l0),U("repo");return}let W1=O.trim()||l8;$.onSubmit({repo:j0,baseRef:W1,vendor:G}),Z.clear()}function Z0(){if(J==="clone"){k.commitClone();return}if(J==="adopt"){i.commitAdopt();return}Y0()}function a(j0){if(k.cloneInFlight||j0===J)return;X(j0),U(aI(j0)),y(null)}function $0(j0){if(k.cloneInFlight)return;let l0=j0===1?nI(J):iI(J);if(l0===J)return;X(l0),y(null),U("tabs")}function O0(j0){W((l0)=>j0===1?IH(z,l0):Vg(z,l0))}function Q0(){if(!B.trim()&&h==="saved"){let l0=s[0];if(l0){M(l0),U("baseRef");return}}if(h==="browse"){let l0=m[C];if(l0)M(vq(B,p.base,l0)),_(0),E(!0);U("baseRef");return}let j0=s[C];if(j0)M(j0);U("baseRef")}function w0(j0){let l0=s[j0];if(!l0)return;if(h==="browse")M(vq(B,p.base,l0)),E(!0);else M(l0);_(j0),U("baseRef")}function b0(j0){let l0=B0[j0];if(!l0)return;L(l0),A(!0),T(j0),U("confirm")}function D0(){L(uV(O,B0,I)),A(!0),Y0()}function u0(j0){if(k.cloneInFlight)return;if(J==="existing"&&H==="repo"&&s.length>0){_((l0)=>w4(l0+j0,s.length));return}if(J==="existing"&&H==="baseRef"&&B0.length>0){T((l0)=>w4(l0+j0,B0.length));return}if(J==="clone"&&H==="cloneParent"){k.moveParentCursor(j0);return}if(J==="adopt")i.moveAdoptCursor(j0)}return b1(()=>({bindings:[{key:"tab",cmd:()=>U((j0)=>oI(j0,J))},{key:"ctrl+]",cmd:()=>a(nI(J))},{key:"ctrl+[",cmd:()=>a(iI(J))},{key:"ctrl+e",cmd:()=>O0(1)},{key:"up",cmd:()=>u0(-1)},{key:"down",cmd:()=>u0(1)},...H==="tabs"||H==="engine"?[{key:"left",cmd:()=>H==="tabs"?$0(-1):O0(-1)},{key:"right",cmd:()=>H==="tabs"?$0(1):O0(1)},{key:"return",cmd:()=>U((j0)=>oI(j0,J))}]:[],...J==="adopt"?[{key:"ctrl+a",cmd:i.adoptSelectAll}]:[]]})),b1(()=>({enabled:H==="confirm"&&!k.cloneInFlight,bindings:[{key:"return",cmd:()=>Z0()}]})),{...k,...i,defaultRepo:$.defaultRepo,tab:J,vendors:z,vendor:G,setVendor:W,field:H,setField:U,repo:B,mode:h,activeList:s,activeWindow:G0,repoCursor:C,repoPicked:b,expandedRepo:U0,baseRef:O,branches:F0,branchFiltered:B0,branchWindow:W0,branchCursor:I,submitError:w,setRepoText:l,setBaseRefText:n,onRepoSubmit:Q0,selectRepoAt:w0,pickBranchAt:b0,onBaseRefSubmit:D0,switchToTab:a,commit:Z0,commitExisting:Y0}}var f7;var xe=d(async()=>{P7();p8();sQ();UG();nw();Ce();Ee();aw();await J$([D4(),C5()]);f7=z1(q1(),1)});import{TextAttributes as UM}from"@opentui/core";function fe($){let{theme:Z}=d0(),J=e0(),X=M7(),z=we($),G={existing:J("newTask.tabs.existing"),clone:J("newTask.tabs.clone"),adopt:J("newTask.tabs.adopt")},W=z.field==="tabs",H=(U,B)=>U?B?UM.BOLD|UM.UNDERLINE:UM.BOLD:void 0;return R.jsxDEV("box",{paddingLeft:X,paddingRight:X,gap:0,children:[R.jsxDEV("box",{flexDirection:"row",children:R.jsxDEV("text",{attributes:UM.BOLD,fg:Z.text,children:J("newTask.title")},void 0,!1,void 0,this)},void 0,!1,void 0,this),R.jsxDEV("box",{gap:1,paddingTop:1,paddingBottom:1,children:[R.jsxDEV("box",{flexDirection:"row",gap:2,children:mM0.map((U)=>{let B=z.tab===U;return R.jsxDEV("text",{fg:B?Z.primary:Z.textMuted,attributes:H(B,W),onMouseUp:()=>z.switchToTab(U),children:B?`\u25B8 ${G[U]}`:` ${G[U]}`},U,!1,void 0,this)})},void 0,!1,void 0,this),R.jsxDEV("box",{gap:0,children:[R.jsxDEV("text",{...B6(Z,z.field,"engine"),children:J("newTask.field.engine")},void 0,!1,void 0,this),R.jsxDEV($U,{choices:z.vendors,selected:z.vendor,onPick:(U)=>{z.setVendor(U),z.setField("engine")},children:[R.jsxDEV("box",{flexGrow:1},void 0,!1,void 0,this),R.jsxDEV("text",{fg:Z.textMuted,children:J("newTask.hint.engineCycle")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),z.tab==="existing"?R.jsxDEV(Le,{vm:z},void 0,!1,void 0,this):null,z.tab==="clone"?R.jsxDEV(Fe,{vm:z},void 0,!1,void 0,this):null,z.tab==="adopt"?R.jsxDEV(Be,{vm:z},void 0,!1,void 0,this):null,z.submitError?R.jsxDEV("text",{fg:Z.error,wrapMode:"word",children:["\u203B ",z.submitError]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),R.jsxDEV("box",{flexDirection:"row",justifyContent:"flex-end",alignItems:"center",paddingTop:1,paddingBottom:1,children:R.jsxDEV("text",{fg:z.field==="confirm"?Z.primary:Z.text,attributes:z.field==="confirm"?UM.BOLD:void 0,onMouseUp:()=>z.commit(),children:z.cloneInFlight?J("newTask.button.cloning"):z.field==="confirm"?J("newTask.button.createFocused"):J("newTask.button.create")},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var mM0;var ye=d(async()=>{X$();a0();await J$([Z$(),C5(),UX(),Ke(),Me(),Ne(),xe()]);mM0=["existing","clone","adopt"]});function hM0($,Z,J,X){return k2($,(z)=>R.jsxDEV(fe,{defaultRepo:Z,savedRepos:J,defaultCloneParent:X?.defaultCloneParent,defaultVendor:X?.defaultVendor,availableVendors:X?.availableVendors,discoverAdoptable:X?.discoverAdoptable,onSubmit:(G)=>z(G),onCancel:()=>z(void 0)},void 0,!1,void 0,this),{size:"medium"})}var ge;var be=d(async()=>{p8();a0();await J$([C5(),ye()]);ge={show:hM0}});function uM0($){return{confirm:async(Z)=>await O4.show($,Z.title,Z.body,Z.cancelLabel,Z.confirmLabel)===!0,promptText:(Z,J)=>g5.show($,Z,J),promptNewTask:(Z,J,X)=>ge.show($,Z,J,X)}}function rw($){return(Z,J)=>{if($.selectedId()!==Z)return;let X=$.tasks();$.setSelectedId(J?.id??(X.find((z)=>!z.archived)??X[0])?.id??null)}}function ve($){return{orch:$.orch,tasks:()=>$.tasks(),...uM0($.dialog),...cM0,logger:console,logPrefix:$.logPrefix,notifyError:$.notifyError,notifyInfo:$.notifyInfo,updateActiveTask:!0,onTaskDeleted:rw($),cursorRepo:()=>{let Z=$.tasks();return(Z.find((J)=>J.id===$.selectedId())??Z[0])?.repo},selectTask:(Z)=>$.setSelectedId(Z),enterTask:(Z)=>$.enterTask(Z)}}var cM0;var ke=d(async()=>{yJ();await J$([be(),QX(),TZ()]);cM0={lastVendor:($)=>BZ($),rememberVendor:($,Z)=>fJ($,Z)}});function me($){let{orchestrator:Z,tasks:J,dialog:X,notifyError:z}=$,G={...ve({orch:Z,tasks:J,dialog:X,notifyError:z,notifyInfo:$.notifyInfo,selectedId:$.selectedId,setSelectedId:$.setSelectedId,logPrefix:"[rove workspace]",enterTask:$.activateTask}),onTaskDeleted:(()=>{let B=rw({tasks:J,selectedId:$.selectedId,setSelectedId:$.setSelectedId});return(M,O)=>{$.forgetTaskTabs(M),B(M,O)}})()};async function W(B){let M=J().find((O)=>O.id===B);if(!M)return;await Z.setPinned(B,!M.pinned).catch((O)=>{z(`Couldn't pin: ${M1(O)}`)})}async function H(B,M){await Z.moveTask(B,M).catch((O)=>{z(`Couldn't move: ${M1(O)}`)})}async function U(B){let M=J().find((L)=>L.id===B);if(!M||M.kind==="main")return;let O=await qe.show(X,{currentBranch:M.branch,repo:M.repo});if(!O)return;await Z.setBranch(B,O).catch((L)=>{z(`Couldn't rename branch: ${M1(L)}`)})}return{createTask:()=>We(G),archiveTask:(B)=>Qe(G,B),deleteTask:(B)=>ze(G,B),renameTask:(B)=>Ye(G,B),renameBranch:U,cycleVendor:(B)=>Ge(G,B),togglePin:W,moveTask:H}}var he=d(async()=>{lw();He();await J$([Ue(),ke()])});import{spawn as dM0}from"child_process";import{existsSync as lM0}from"fs";import{basename as pM0,delimiter as nM0,isAbsolute as iM0,join as oM0}from"path";function sw($,Z,J){if(iM0($))return J($);let X=Z.PATH??"";for(let z of X.split(nM0)){if(!z)continue;if(J(oM0(z,$)))return!0}return!1}function sM0($){let Z=pM0($);if(Z==="code")return"VS Code";if(Z==="cursor")return"Cursor";if(Z==="windsurf")return"Windsurf";if(Z==="zed")return"Zed";return Z||$}function ue($={}){let Z=$.env??process.env,J=$.platform??process.platform,X=$.exists??lM0,z=O$("OPEN_EDITOR",Z)?.trim();if(z)return{id:"env",label:sM0(z),command:z,args:[]};for(let G of aM0)if(sw(G.command,Z,X))return{id:G.id,label:G.label,command:G.command,args:[]};if(J==="darwin"&&sw("open",Z,X)){for(let G of rM0)if(G.paths.some((W)=>X(W)))return{id:G.id,label:G.label,command:"open",args:["-a",G.appName]};return{id:"mac-open",label:"Finder",command:"open",args:[]}}if(J==="linux"&&sw("xdg-open",Z,X))return{id:"xdg-open",label:"Open",command:"xdg-open",args:[]};return null}function tM0($,Z){return[Z.command,[...Z.args,$]]}function ce($,Z,J={}){if(!$)return!1;let X=J.spawn??dM0,[z,G]=tM0($,Z);try{let W=X(z,G,{detached:!0,stdio:"ignore"});if(W.pid===void 0)return!1;return W.unref(),!0}catch{return!1}}var aM0,rM0;var de=d(()=>{aM0=[{id:"code",label:"VS Code",command:"code"},{id:"cursor",label:"Cursor",command:"cursor"},{id:"windsurf",label:"Windsurf",command:"windsurf"},{id:"zed",label:"Zed",command:"zed"}],rM0=[{id:"vscode.app",label:"VS Code",appName:"Visual Studio Code",paths:["/Applications/Visual Studio Code.app"]},{id:"cursor.app",label:"Cursor",appName:"Cursor",paths:["/Applications/Cursor.app","/System/Applications/Cursor.app"]},{id:"windsurf.app",label:"Windsurf",appName:"Windsurf",paths:["/Applications/Windsurf.app"]},{id:"zed.app",label:"Zed",appName:"Zed",paths:["/Applications/Zed.app"]}]});import{existsSync as le}from"fs";async function eM0($,Z){let J=Z.taskPath;if(!J||!le(J))try{J=await Z.ensureWorktree($)}catch(z){let G=z instanceof Error?z.message:String(z);Z.notifyError(`Couldn't create worktree: ${G}`);return}if(!J||!le(J))return;let X=ue();if(!X){Z.notifyError(Z.noEditorMessage);return}if(!ce(J,X))Z.notifyError(Z.openFailedMessage(X.label))}function pe($,Z){eM0($,{taskPath:Z.tasks.find((J)=>J.id===$)?.worktreePath,ensureWorktree:Z.ensureWorktree,notifyError:Z.notifyError,noEditorMessage:W$("tasks.toast.noEditor"),openFailedMessage:(J)=>W$("tasks.toast.openWorktreeFailed",{label:J})})}var ne=d(()=>{RZ();de()});import{randomUUID as $L0}from"crypto";function ZL0($){let Z=$.body.replace(/\\/g,"\\\\").replace(/"/g,"\\\"").replace(/\r/g,"\\r").replace(/\n/g,"\\n"),J=$.startLine!==void 0&&$.startLine!==$.line?`Lines: ${$.startLine}-${$.line}`:`Line: ${$.line}`;return[`File: ${$.filePath}`,J,`User comment: "${Z}"`].join(`
754
754
  `)}function JL0($){return $.map(ZL0).join(`