@hydra-acp/cli 0.1.173 → 0.1.174
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.js +3 -3
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -230,7 +230,7 @@ failed to spawn ${e.command}: ${a.message}
|
|
|
230
230
|
`,this.buffer.splice(this.row-1,1),this.row-=1}killToEnd(){let e=this.currentLine();if(this.col<e.length){this.killBuffer=e.slice(this.col),this.setCurrentLine(e.slice(0,this.col));return}if(this.row>=this.buffer.length-1)return;if(e.length===0){this.killBuffer=`
|
|
231
231
|
`,this.buffer.splice(this.row,1);return}let t=this.buffer[this.row+1]??"";this.killBuffer=`
|
|
232
232
|
`+t,this.buffer.splice(this.row+1,1)}killWord(){let e=this.currentLine();if(this.col===0){this.backspace();return}let r=e.slice(0,this.col).match(nu);if(r!==null){this.killBuffer=r[0];let o=this.col-r[0].length;this.setCurrentLine(e.slice(0,o)+e.slice(this.col)),this.col=o;return}let s=this.col;for(;s>0&&/\s/.test(e[s-1]??"");)s-=1;for(;s>0&&!/\s/.test(e[s-1]??"");)s-=1;let i=e.slice(s,this.col);i.length>0&&(this.killBuffer=i),this.setCurrentLine(e.slice(0,s)+e.slice(this.col)),this.col=s}killWordAlpha(){let e=this.currentLine();if(this.col===0){this.backspace();return}let r=e.slice(0,this.col).match(nu);if(r!==null){this.killBuffer=r[0];let a=this.col-r[0].length;this.setCurrentLine(e.slice(0,a)+e.slice(this.col)),this.col=a;return}let s=/[A-Za-z0-9_]/,i=this.col;for(;i>0&&!s.test(e[i-1]??"");)i-=1;for(;i>0&&s.test(e[i-1]??"");)i-=1;let o=e.slice(i,this.col);o.length>0&&(this.killBuffer=o),this.setCurrentLine(e.slice(0,i)+e.slice(this.col)),this.col=i}yank(){this.killBuffer.length!==0&&this.insertText(this.killBuffer)}moveLeft(){if(this.col>0){let t=this.currentLine().slice(0,this.col).match(nu);if(t!==null){this.col-=t[0].length;return}this.col-=1;return}this.row>0&&(this.row-=1,this.col=this.currentLine().length)}moveRight(){let e=this.currentLine();if(this.col<e.length){let r=e.slice(this.col).match(zb);if(r!==null){this.col+=r[0].length;return}this.col+=1;return}this.row<this.buffer.length-1&&(this.row+=1,this.col=0)}moveWordBackward(){if(this.col===0){if(this.row===0)return;this.row-=1,this.col=this.currentLine().length;return}let e=this.currentLine(),t=this.col;for(;t>0&&/\s/.test(e[t-1]??"");)t-=1;let s=e.slice(0,t).match(nu);if(s!==null){this.col=t-s[0].length;return}for(;t>0&&!/\s/.test(e[t-1]??"");)t-=1;this.col=t}moveWordForward(){let e=this.currentLine();if(this.col>=e.length){if(this.row>=this.buffer.length-1)return;this.row+=1,this.col=0;return}let t=this.col;for(;t<e.length&&/\s/.test(e[t]??"");)t+=1;let s=e.slice(t).match(zb);if(s!==null){this.col=t+s[0].length;return}for(;t<e.length&&!/\s/.test(e[t]??"");)t+=1;this.col=t}handleUp(){return this.row>0?(this.row-=1,this.col=Math.min(this.col,this.currentLine().length),[]):this.queueIndex===-1&&this.historyIndex===-1?this.queue.length===0&&this.history.length===0?[]:(this.savedDraft={buffer:[...this.buffer],row:this.row,col:this.col},this.savedAttachments=[...this.attachments],this.attachments=[],this.queue.length>0?(this.queueIndex=this.queue.length-1,this.loadEntry(this.queue[this.queueIndex]??"")):(this.historyIndex=this.history.length-1,this.loadEntry(this.history[this.historyIndex]??"")),[]):this.queueIndex>=0?this.queueIndex>0?(this.queueIndex-=1,this.loadEntry(this.queue[this.queueIndex]??""),[]):this.history.length===0?[]:(this.queueIndex=-1,this.historyIndex=this.history.length-1,this.loadEntry(this.history[this.historyIndex]??""),[]):(this.historyIndex>0&&(this.historyIndex-=1,this.loadEntry(this.history[this.historyIndex]??"")),[])}handleDown(){return this.row<this.buffer.length-1&&this.historyIndex===-1&&this.queueIndex===-1?(this.row+=1,this.col=Math.min(this.col,this.currentLine().length),[]):this.historyIndex>=0?this.historyIndex<this.history.length-1?(this.historyIndex+=1,this.loadEntry(this.history[this.historyIndex]??""),[]):(this.historyIndex=-1,this.queue.length>0?(this.queueIndex=0,this.loadEntry(this.queue[this.queueIndex]??""),[]):(this.restoreDraft(),[])):this.queueIndex>=0?this.queueIndex<this.queue.length-1?(this.queueIndex+=1,this.loadEntry(this.queue[this.queueIndex]??""),[]):(this.queueIndex=-1,this.restoreDraft(),[]):[]}restoreDraft(){this.savedDraft?(this.buffer=[...this.savedDraft.buffer],this.row=this.savedDraft.row,this.col=this.savedDraft.col,this.savedDraft=null,this.attachments=this.savedAttachments??[],this.savedAttachments=null):this.clearBuffer()}startHistorySearch(){let e=this.bufferText().toLowerCase();if(e.length===0)return this.historySearch={query:"",matchIndices:[],cursor:0,savedDraft:{buffer:[...this.buffer],row:this.row,col:this.col}},[];let t=this.findHistoryMatches(e);return t.length===0?[{type:"escalate-search",query:e}]:(this.historySearch={query:e,matchIndices:t,cursor:0,savedDraft:{buffer:[...this.buffer],row:this.row,col:this.col}},this.loadEntry(this.history[t[0]]??""),[])}advanceHistorySearch(){if(this.historySearch===null)return[];let e=this.historySearch;if(e.cursor>=e.matchIndices.length-1){if(e.query.length===0)return[];let s=e.query,i=e.savedDraft;return this.historySearch=null,this.buffer=[...i.buffer],this.row=i.row,this.col=i.col,[{type:"escalate-search",query:s}]}e.cursor+=1;let r=e.matchIndices[e.cursor];return this.loadEntry(this.history[r]??""),[]}retreatHistorySearch(){if(this.historySearch===null||this.historySearch.cursor===0)return;this.historySearch.cursor-=1;let e=this.historySearch.matchIndices[this.historySearch.cursor];this.loadEntry(this.history[e]??"")}mutateHistorySearchQuery(e){if(this.historySearch===null)return[];if(e.length===0){this.historySearch.query="",this.historySearch.matchIndices=[],this.historySearch.cursor=0;let r=this.historySearch.savedDraft;return this.buffer=[...r.buffer],this.row=r.row,this.col=r.col,[]}let t=this.findHistoryMatches(e);if(t.length===0){let r=this.historySearch.savedDraft;return this.historySearch=null,this.buffer=[...r.buffer],this.row=r.row,this.col=r.col,[{type:"escalate-search",query:e}]}return this.historySearch.query=e,this.historySearch.matchIndices=t,this.historySearch.cursor=0,this.loadEntry(this.history[t[0]]??""),[]}findHistoryMatches(e){let t=[];for(let r=this.history.length-1;r>=0;r--){let s=this.history[r]??"";(e.length===0||s.toLowerCase().includes(e))&&t.push(r)}return t}cancelHistorySearch(){if(this.historySearch===null)return;let e=this.historySearch.savedDraft;this.historySearch=null,this.buffer=[...e.buffer],this.row=e.row,this.col=e.col}loadEntry(e){this.buffer=e.split(`
|
|
233
|
-
`),this.buffer.length===0&&(this.buffer=[""]),this.row=this.buffer.length-1,this.col=(this.buffer[this.row]??"").length}send(){let e=this.bufferText(),t=this.expandPastes(e);if(this.queueIndex>=0&&this.queueIndex<this.queue.length){let i=this.queueIndex,o=[...this.attachments];return this.clearBuffer(),t.trim().length===0?[{type:"queue-remove",index:i}]:[{type:"queue-edit",index:i,text:t,displayText:e,attachments:o}]}if(t.trim().length===0&&this.attachments.length===0)return[];let r=this.planMode,s=[...this.attachments];return this.clearBuffer(),[{type:"send",text:t,displayText:e,planMode:r,attachments:s}]}amend(){let e=this.bufferText(),t=this.expandPastes(e);if(this.queueIndex>=0&&this.queueIndex<this.queue.length){let i=this.queueIndex,o=this.planMode,a=[...this.attachments],d=t.trim().length===0&&a.length===0;return this.clearBuffer(),d?[{type:"queue-remove",index:i}]:[{type:"queue-remove",index:i},{type:"amend",text:t,displayText:e,planMode:o,attachments:a}]}if(t.trim().length===0&&this.attachments.length===0)return[];let r=this.planMode,s=[...this.attachments];return this.clearBuffer(),[{type:"amend",text:t,displayText:e,planMode:r,attachments:s}]}handleHome(){return this.row!==0||this.col!==0?(this.row=0,this.col=0,[]):[{type:"scroll-to-top"}]}handleEnd(){let e=this.buffer.length-1,t=(this.buffer[e]??"").length;return this.row!==e||this.col!==t?(this.row=e,this.col=t,[]):[{type:"scroll-to-bottom"}]}handleCtrlC(){if(this.queueIndex>=0){let e=this.queueIndex;return this.queueIndex=-1,this.restoreDraft(),[{type:"queue-remove",index:e}]}return!this.bufferIsEmpty()||this.attachments.length>0?(this.recordEdit(),this.buffer=[""],this.row=0,this.col=0,this.attachments=[],this.historyIndex=-1,this.savedDraft=null,this.savedAttachments=null,[]):this.turnRunning?[{type:"cancel"}]:[{type:"exit"}]}}});function fj(){let n=uj.map(e=>{let t=process.listeners(e);for(let s of t)process.off(e,s);let r=()=>{};return process.on(e,r),{signal:e,listeners:t,noop:r}});return()=>{for(let{signal:e,listeners:t,noop:r}of n){process.off(e,r);for(let s of t)process.on(e,s)}}}async function Fh(n,e){let t=e.write??(i=>{process.stdout.write(i)}),r=fj();e.suspend(),t(TT),n.banner!==void 0&&t(n.banner);let s=e.spawn??(await import("child_process")).spawn;return await new Promise(i=>{let o=!1,a=d=>{if(!o){o=!0;try{e.resume()}finally{r()}d.error?e.notify?.(`${n.program} failed: ${d.error.message}`):d.exitCode!==null&&d.exitCode!==0&&e.notify?.(`${n.program} exited ${d.exitCode}`),i(d)}};try{let d=s(n.program,n.args,{stdio:"inherit",cwd:n.cwd});d.on("exit",c=>a({exitCode:c})),d.on("error",c=>a({exitCode:null,error:c}))}catch(d){a({exitCode:null,error:d})}})}var uj,Gb=q(()=>{"use strict";aa();uj=process.platform==="win32"?["SIGINT"]:["SIGINT","SIGQUIT"]});import{mkdtempSync as pj,readFileSync as hj,rmSync as mj,writeFileSync as gj}from"fs";import{tmpdir as yj}from"os";import{join as lE}from"path";function wj(n=process.env){let e=[n.VISUAL,n.EDITOR].find(r=>r!==void 0&&r.trim()!=="");if(e===void 0)return null;let t=e.split(/\s+/).filter(r=>r.length>0);return t.length>0?t:null}async function Lh(n,e){let t=wj(e.env);if(t===null)return e.notify?.("no $VISUAL or $EDITOR set \u2014 nothing to edit with"),null;let[r,...s]=t,i=pj(lE(yj(),"hydra-acp-edit-")),o=lE(i,"prompt.md");gj(o,n,"utf8");try{let a={program:r,args:[...s,o],banner:`\u2500 ${r} \u2014 save and quit to return to hydra \u2500
|
|
233
|
+
`),this.buffer.length===0&&(this.buffer=[""]),this.row=this.buffer.length-1,this.col=(this.buffer[this.row]??"").length}send(){let e=this.bufferText(),t=this.expandPastes(e);if(this.queueIndex>=0&&this.queueIndex<this.queue.length){let i=this.queueIndex,o=[...this.attachments];return this.clearBuffer(),t.trim().length===0?[{type:"queue-remove",index:i}]:[{type:"queue-edit",index:i,text:t,displayText:e,attachments:o}]}if(t.trim().length===0&&this.attachments.length===0)return[];let r=this.planMode,s=[...this.attachments];return this.clearBuffer(),[{type:"send",text:t,displayText:e,planMode:r,attachments:s}]}amend(){let e=this.bufferText(),t=this.expandPastes(e);if(this.queueIndex>=0&&this.queueIndex<this.queue.length){let i=this.queueIndex,o=this.planMode,a=[...this.attachments],d=t.trim().length===0&&a.length===0;return this.clearBuffer(),d?[{type:"queue-remove",index:i}]:[{type:"queue-remove",index:i},{type:"amend",text:t,displayText:e,planMode:o,attachments:a}]}if(t.trim().length===0&&this.attachments.length===0)return[];let r=this.planMode,s=[...this.attachments];return this.clearBuffer(),[{type:"amend",text:t,displayText:e,planMode:r,attachments:s}]}handleHome(){return this.row!==0||this.col!==0?(this.row=0,this.col=0,[]):[{type:"scroll-to-top"}]}handleEnd(){let e=this.buffer.length-1,t=(this.buffer[e]??"").length;return this.row!==e||this.col!==t?(this.row=e,this.col=t,[]):[{type:"scroll-to-bottom"}]}handleCtrlC(){if(this.queueIndex>=0){let e=this.queueIndex;return this.queueIndex=-1,this.restoreDraft(),[{type:"queue-remove",index:e}]}return!this.bufferIsEmpty()||this.attachments.length>0?(this.recordEdit(),this.buffer=[""],this.row=0,this.col=0,this.attachments=[],this.historyIndex=-1,this.savedDraft=null,this.savedAttachments=null,[]):this.turnRunning?[{type:"cancel"}]:[{type:"exit"}]}}});function fj(){let n=uj.map(e=>{let t=process.listeners(e);for(let s of t)process.off(e,s);let r=()=>{};return process.on(e,r),{signal:e,listeners:t,noop:r}});return()=>{for(let{signal:e,listeners:t,noop:r}of n){process.off(e,r);for(let s of t)process.on(e,s)}}}async function Fh(n,e){let t=e.write??(i=>{process.stdout.write(i)}),r=fj();e.suspend(),t(TT),n.banner!==void 0&&t(n.banner);let s=e.spawn??(await import("child_process")).spawn;return await new Promise(i=>{let o=!1,a=d=>{if(!o){o=!0;try{e.resume()}finally{r()}d.error?e.notify?.(`${n.program} failed: ${d.error.message}`):d.exitCode!==null&&d.exitCode!==0&&e.notify?.(`${n.program} exited ${d.exitCode}`),i(d)}};try{let d=s(n.program,n.args,{stdio:"inherit",cwd:n.cwd});d.on("exit",c=>a({exitCode:c})),d.on("error",c=>a({exitCode:null,error:c}))}catch(d){a({exitCode:null,error:d})}})}var uj,Gb=q(()=>{"use strict";aa();uj=process.platform==="win32"?["SIGINT"]:["SIGINT","SIGQUIT"]});import{mkdtempSync as pj,readFileSync as hj,rmSync as mj,writeFileSync as gj}from"fs";import{tmpdir as yj}from"os";import{join as lE}from"path";function wj(n=process.env){let e=[n.HYDRA_EDITOR,n.VISUAL,n.EDITOR].find(r=>r!==void 0&&r.trim()!=="");if(e===void 0)return null;let t=e.split(/\s+/).filter(r=>r.length>0);return t.length>0?t:null}async function Lh(n,e){let t=wj(e.env);if(t===null)return e.notify?.("no $HYDRA_EDITOR, $VISUAL or $EDITOR set \u2014 nothing to edit with"),null;let[r,...s]=t,i=pj(lE(yj(),"hydra-acp-edit-")),o=lE(i,"prompt.md");gj(o,n,"utf8");try{let a={program:r,args:[...s,o],banner:`\u2500 ${r} \u2014 save and quit to return to hydra \u2500
|
|
234
234
|
`},c=await(e.runForeground??Fh)(a,e);if(c.error||c.exitCode!==null&&c.exitCode!==0)return null;let l=hj(o,"utf8");return l.endsWith(`
|
|
235
235
|
`)?l.slice(0,-1):l}finally{mj(i,{recursive:!0,force:!0})}}var Vb=q(()=>{"use strict";Gb()});var fc,Nh,Jb=q(()=>{"use strict";fc=class{constructor(e){this.term=e}term;lastFrameRows=new Map;lastFrameW=0;lastFrameH=0;clearCache(){this.lastFrameRows.clear(),this.lastFrameW=0,this.lastFrameH=0}ensureSize(e,t){return e!==this.lastFrameW||t!==this.lastFrameH?(this.lastFrameRows.clear(),this.lastFrameW=e,this.lastFrameH=t,!0):!1}invalidate(e,t){this.lastFrameRows.delete(e===void 0?String(t):`${e}:${t}`)}paintRow(e,t,r,s){if(e<1||e>this.term.height)return!1;let i=s?.region,o=i===void 0?String(e):`${i}:${e}`;return this.lastFrameRows.get(o)===t?!1:(this.lastFrameRows.set(o,t),this.term.moveTo(s?.column??1,e),r(),this.term.styleReset(),s?.erase!==!1&&this.term.eraseLineAfter(),!0)}},Nh=class{constructor(e){this.deps=e}deps;lastRepaintAt=0;timer=null;get pendingTimer(){return this.timer}schedule(){if(!this.deps.isStarted())return;if(this.deps.isRepaintPaused()){this.deps.markRepaintPending();return}let e=this.deps.throttleMs();if(e<=0){this.deps.doRepaint();return}let r=Date.now()-this.lastRepaintAt;if(r>=e){this.cancel(),this.deps.doRepaint();return}this.timer===null&&(this.timer=setTimeout(()=>{this.timer=null,this.deps.doRepaint()},e-r))}noteRepaintStart(){this.lastRepaintAt=Date.now(),this.cancel()}cancel(){this.timer!==null&&(clearTimeout(this.timer),this.timer=null)}}});var uE,fE=q(()=>{"use strict";uE=["toggle-mode","switch-session","show-help","detach","toggle-options","rename-session","choose-model","choose-agent","choose-mode","copy","open","open-session","none"]});import bj from"ansi-regex";import Qr from"string-width";function Yr(n){let e=0;for(let t of n)e+=Qr(t.text);return e}function Dh(n,e){let t=[];for(let r of n){if(t.length>0){let s=r.separator??e.separator;s.length>0&&t.push({text:s,token:e.separatorToken})}t.push(...r.chunks)}return t}function hE(n,e){let t=Yr(n)-e;if(t<=0)return n;let r=n.map(i=>({...i})),s=r.map((i,o)=>({c:i,i:o})).filter(({c:i})=>i.flex===!0&&i.truncatable!==!1).map(({i})=>i);for(;t>0&&s.length>0;){let i=-1,o=0;for(let l of s){let u=r[l];if(u===void 0)continue;let f=Qr(u.text)-(u.minWidth??0);f>o&&(o=f,i=l)}if(i<0)break;let a=r[i];if(a===void 0)break;let d=Math.min(t,o),c=Qr(a.text)-d;a.text=Bh(a.text,c),t-=d}return r}function kj(n){let e=[];pE.lastIndex=0;let t=0,r;for(;(r=pE.exec(n))!==null;)r.index>t&&e.push({text:n.slice(t,r.index),ansi:!1}),e.push({text:r[0],ansi:!0}),t=r.index+r[0].length;return t<n.length&&e.push({text:n.slice(t),ansi:!1}),e}function Bh(n,e){if(e<=0)return"";if(Qr(n)<=e)return n;if(e===1)return"\u2026";let t="",r=0;e:for(let s of kj(n)){if(s.ansi){t+=s.text;continue}for(let i of s.text){let o=Qr(i);if(r+o>e-1)break e;t+=i,r+=o}}return t+"\u2026"}function mE(n,e){let t=[],r=0;for(let s of n){let i=e-r;if(i<=0)break;let o=Qr(s.text);if(o<=i)t.push(s),r+=o;else{if(s.truncatable===!1)break;t.push({...s,text:Bh(s.text,i)});break}}return t}function Yb(n,e,t,r){let s=Qr(r.prefix)+Qr(r.suffix),i=Qr(r.pad),o=[...e],a=[...t],d=T=>{let F=0;for(let M of T){let E=Qr(M.text);F+=M.flex===!0?Math.min(E,M.minWidth??0):E}return F},c=()=>{let T=Dh(o,r),F=Dh(a,r);return s+(T.length>0?d(T)+i*2:0)+(F.length>0?d(F)+i*2:0)+r.minGap};for(;c()>n;){let T=null,F=-1,M=1/0;if(o.forEach((E,O)=>{E.priority<M&&(M=E.priority,T="l",F=O)}),a.forEach((E,O)=>{E.priority<M&&(M=E.priority,T="r",F=O)}),T===null||M===1/0)break;T==="l"?o=o.filter((E,O)=>O!==F):a=a.filter((E,O)=>O!==F)}let l=Dh(o,r),u=Dh(a,r),f=s+(l.length>0?i*2:0)+(u.length>0?i*2:0)+r.minGap,p=Math.max(0,n-f),h=Yr(u);Yr(l)+h>p&&(l=hE(l,Math.max(0,p-h))),Yr(l)+Yr(u)>p&&(u=hE(u,Math.max(0,p-Yr(l)))),Yr(l)+Yr(u)>p&&(u=mE(u,p),l=mE(l,Math.max(0,p-Yr(u))));let m=[],y=[],w=1,k=(T,F,M)=>{if(T.length===0)return;let E=Qr(T),O={...M??{},text:T,token:F,start:w,width:E};if(m.push(O),O.id!==void 0){let j=y.find(J=>J.id===O.id);j!==void 0?j.end=w+E-1:y.push({id:O.id,start:w,end:w+E-1,action:O.action??"none",doubleAction:O.doubleAction??"none",value:O.value??O.text})}w+=E};if(k(r.prefix,r.ruleToken),l.length>0){k(r.pad,r.padToken);for(let T of l)k(T.text,T.token,T);k(r.pad,r.padToken)}let b=s+(l.length>0?Yr(l)+i*2:0)+(u.length>0?Yr(u)+i*2:0),S=Math.max(r.minGap,n-b);S>0&&r.fill.length>0&&k(r.fill.repeat(S),r.ruleToken);let R=null;if(u.length>0){R=w,k(r.pad,r.padToken);for(let T of u)k(T.text,T.token,T);k(r.pad,r.padToken)}k(r.suffix,r.ruleToken);let I=m.map(T=>`${T.token}${T.text}`).join("\0");return{chunks:m,signature:I,hits:y,rightStart:R}}var pE,gE,Hh=q(()=>{"use strict";fE();pE=bj(),gE=uE});function Qb(n){return n.banner.status==="ready"&&n.banner.armedSince!==void 0}function vj(n){let e=n.banner.status,t=e==="busy"&&n.banner.stalled===!0,r;n.statusLabel!==void 0?r=n.statusLabel:t?r="Stalled":e==="busy"?r="Thinking":Qb(n)?r="Waiting":r=e.charAt(0).toUpperCase()+e.slice(1);let s;return t||e==="disconnected"?s="status-alert":e==="busy"||Qb(n)?s="status-active":e==="cold"?s="status-cold":s="status-ready",{label:r,token:s}}function Os(n){return n>=1e6?`${(n/1e6).toFixed(1)}M`:n>=1e3?`${(n/1e3).toFixed(1)}k`:String(n)}function Sj(n){if(!n)return null;let e=[];return typeof n.used=="number"?typeof n.size=="number"&&n.size>0?e.push(`${Os(n.used)}/${Os(n.size)}`):e.push(Os(n.used)):typeof n.size=="number"&&e.push(`/${Os(n.size)}`),typeof n.costAmount=="number"&&e.push(jp(n.costAmount,n.costCurrency)),e.length===0?null:e.join(" \xB7 ")}function Ij(n){if(n.banner.hintsExhausted===!0&&!n.hintsRevealed)return null;let e=n.banner.hint;return e.length===0?null:e.map((t,r)=>{let i={text:t.id==="mode"&&(n.banner.currentMode??"")!==""?`${t.label}: ${n.banner.currentMode}`:t.label,token:"modal-hint",action:t.action};return{id:t.id,chunks:[i],priority:20+(e.length-r)}})}function yE(n){if(n.transient===null)return null;let e=n.transient.kind==="search"?"bar-indicator":"modal-note";return{id:"transient",chunks:[{text:n.transient.text,token:e}],priority:1/0}}var Xb,_7,Uh=q(()=>{"use strict";$w();ve();br();ai();Xb={status:{priority:1/0,resolve:n=>{let{label:e,token:t}=vj(n);return[{text:e,token:t}]}},elapsed:{priority:60,resolve:n=>{if(Qb(n)){let r=Date.now()-n.banner.armedSince;return r<1e3?null:[{text:xr(r),token:"status-active"}]}if(n.banner.status!=="busy"||n.banner.elapsedMs===void 0||n.banner.elapsedMs<1e3)return null;let t=n.banner.stalled===!0?"status-alert":"status-active";return[{text:xr(n.banner.elapsedMs),token:t}]}},sessionId:{priority:40,resolve:n=>{let e=Ye(n.session.sessionId);if(!e)return null;let t={text:e,token:"rule-meta",doubleAction:"copy",value:e};return n.scope==="btw"&&(t.action="open-session"),[t]}},sessionIdFull:{priority:40,resolve:n=>n.session.sessionId?[{text:n.session.sessionId,token:"rule-meta",doubleAction:"copy"}]:null},queued:{priority:50,resolve:n=>n.banner.queued>0?[{text:`${n.banner.queued} queued`,token:"status-queued"}]:null},scroll:{priority:30,resolve:n=>n.scrollOffset>0?[{text:`\u2191 ${n.scrollOffset}`,token:"bar-indicator"}]:null},usage:{priority:45,resolve:n=>{let e=Sj(n.session.usage);return e?[{text:e,token:"content",doubleAction:"copy"}]:null}},tokens:{priority:45,resolve:n=>{let e=n.session.usage;return!e||typeof e.used!="number"?null:[{text:typeof e.size=="number"&&e.size>0?`${Os(e.used)}/${Os(e.size)}`:Os(e.used),token:"content",doubleAction:"copy"}]}},cost:{priority:45,resolve:n=>{let e=n.session.usage;return!e||typeof e.costAmount!="number"?null:[{text:jp(e.costAmount,e.costCurrency),token:"content",doubleAction:"copy"}]}},cwd:{priority:70,resolve:()=>null,resolveGroups:n=>{let e=n.session.workspace;if(e===void 0){let r=K(n.session.cwd);return r?[{id:"cwd",priority:70,chunks:[{text:r,token:"bar-text",flex:!0,minWidth:8,doubleAction:"open",value:n.session.cwd}]}]:null}let t=K(e.sourceCwd);return t?[{id:"cwd",priority:70,chunks:[{text:t,token:"bar-text",flex:!0,minWidth:8,doubleAction:"open",value:e.sourceCwd}]},{id:"cwdWorkspace",priority:69,separator:" ",chunks:[{text:`[${e.label}]`,token:"bar-text",doubleAction:"open",value:e.path}]}]:null}},cwdFull:{priority:70,resolve:n=>n.session.cwd?[{text:n.session.cwd,token:"bar-text",flex:!0,minWidth:8,doubleAction:"open"}]:null},title:{priority:75,resolve:n=>{let e=n.session.title?.trim();return e?[{text:e,token:"bar-text",flex:!0,minWidth:8,doubleAction:"rename-session",value:e}]:null}},agent:{priority:80,resolve:n=>n.session.agent?[{text:n.session.agent,token:"content",doubleAction:"choose-agent"}]:null},model:{priority:65,resolve:n=>n.session.model?[{text:n.session.model,token:"content",doubleAction:"choose-model"}]:null},agentModel:{priority:80,resolve:n=>{let e=fA(n.session.agent,n.session.model);return e?[{text:e,token:"content",flex:!0,minWidth:6,doubleAction:"choose-model",value:e}]:null}},mode:{priority:55,resolve:n=>n.banner.currentMode?[{text:n.banner.currentMode,token:"rule-meta",doubleAction:"choose-mode",value:"mode"}]:null},helpHint:{priority:20,resolve:()=>null,resolveGroups:Ij}},_7=Object.keys(Xb)});function wE(n){return typeof n=="string"?n===Zb?null:n:n.field??null}function bE(n,e,t){if(!t.some(a=>a===Zb))return t;let r=new Set;for(let a of t){let d=wE(a);d!==null&&r.add(d)}let s=xj[n][e].filter(a=>{let d=wE(a);return d===null||!r.has(d)}),i=[],o=!1;for(let a of t){if(a===Zb){o||(i.push(...s),o=!0);continue}i.push(a)}return i}function Rj(n){if(typeof n!="string")return n;let t=Cj.exec(n)?.[1];return t!==void 0?{script:t}:{field:n}}function kE(n){if(n!==void 0)return gE.includes(n)?n:"none"}function Aj(n,e){let t=`${n}:${e.id}`;return{...e,chunks:e.chunks.map(r=>({...r,id:t}))}}function Tj(n,e){let t=n;if(e.style!==void 0){let r=e.style;t=t.map(s=>({...s,token:r}))}if(e.minWidth!==void 0&&(t=t.map(r=>({...r,flex:!0,minWidth:e.minWidth}))),e.maxWidth!==void 0){let r=e.maxWidth;if(t=t.map(s=>({...s,text:Bh(s.text,r)})).filter(s=>s.text.length>0),t.length===0)return null}return e.truncate===!1&&(t=t.map(r=>({...r,truncatable:!1}))),t}function Ej(n,e){let t=n.map(i=>({...i,chunks:[...i.chunks]})),r=t[0];if(e.prefix!==void 0&&e.prefix.length>0&&r!==void 0){let i=r.chunks[0];i!==void 0&&r.chunks.unshift({text:e.prefix,token:i.token})}let s=t[t.length-1];if(e.suffix!==void 0&&e.suffix.length>0&&s!==void 0){let i=s.chunks[s.chunks.length-1];i!==void 0&&s.chunks.push({text:e.suffix,token:i.token})}return t}function ru(n,e,t){let r=[];for(let s of e){let i=Rj(s),o;if(i.text!==void 0){if(i.text.length===0)continue;o=[{id:`text:${i.text}`,priority:10,chunks:[{text:i.text,token:"rule-meta"}]}]}else if(i.script!==void 0){let u=t.scriptOutputs.get(i.script);if(u===void 0||u.length===0)continue;o=[{id:`script:${i.script}`,priority:10,chunks:[{text:u,token:"rule-meta"}]}]}else{let u=i.field??"",f=Xb[u];if(f===void 0)continue;if(f.resolveGroups!==void 0){let p=f.resolveGroups(t);if(p===null)continue;o=p}else{let p=f.resolve(t);if(p===null||p.length===0)continue;o=[{id:u,priority:f.priority,chunks:p}]}}let a=[];for(let u of o){let f=Tj(u.chunks,i);f!==null&&a.push({...u,priority:i.priority??u.priority,chunks:f})}if(a.length===0)continue;a=Ej(a,i);let d=kE(i.onClick),c=kE(i.onDoubleClick);(d!==void 0||c!==void 0)&&(a=a.map(u=>({...u,chunks:u.chunks.map(f=>({...f,...d!==void 0?{action:d}:{},...c!==void 0?{doubleAction:c}:{}}))})));let l=a[0];i.separator!==void 0&&l!==void 0&&(l.separator=i.separator);for(let u of a)r.push(Aj(n,u))}return r}function su(n){let e=(t,r)=>({left:bE(t,"left",r.left),right:bE(t,"right",r.right)});return{composer:{top:e("composerTop",n.composer.top),bottom:e("composerBottom",n.composer.bottom)},sessionbar:e("sessionbar",n.sessionbar)}}var ek,Zb,xj,Cj,tk=q(()=>{"use strict";st();Uh();Hh();Hh();ek={composerTop:{prefix:"\u2500\u2500",suffix:"\u2500\u2500",fill:"\u2500",pad:" ",separator:" \xB7 ",separatorToken:"rule-meta",ruleToken:"rule",padToken:"rule-pad",minGap:0},composerBottom:{prefix:"",suffix:"\u2500\u2500",fill:"\u2500",pad:" ",separator:" \xB7 ",separatorToken:"rule-meta",ruleToken:"rule",padToken:"rule-pad",minGap:0},btw:{prefix:"\u2500\u2500",suffix:"\u2500\u2500",fill:"\u2500",pad:" ",separator:" \xB7 ",separatorToken:"rule-meta",ruleToken:"rule",padToken:"rule-pad",minGap:0},sessionbar:{prefix:"",suffix:"",fill:" ",pad:"",separator:" \xB7 ",separatorToken:"content",ruleToken:"content",padToken:"content",minGap:1}},Zb="...",xj={composerTop:{left:Io,right:xo},btw:{left:Io,right:xo},composerBottom:{left:Ka,right:Ga},sessionbar:{left:Va,right:Ja}};Cj=/^\$\((.+)\)\s*$/});var nk,vE=q(()=>{"use strict";nk=[{id:"mode",label:"\u21E7\u21E5 mode",action:"toggle-mode"},{id:"options",label:"\u2303O options",action:"toggle-options"},{id:"pick",label:"\u2303P pick",action:"switch-session"},{id:"guide",label:"\u2303G guide",action:"show-help"},{id:"detach",label:"\u2303D detach",action:"detach"}]});import{resolve as Pj}from"path";function _j(n){return!Mj.has(n)}function $j(n){return n.replace(/\s+/gu," ").trim()}function Oj(n,e,t){let r=n.trim();for(let s of[e,t]){if(s===void 0||s==="")continue;let i=r.toLowerCase(),o=s.toLowerCase();if(i===o)return"";i.startsWith(`${o} `)&&(r=r.slice(s.length).trimStart())}return r}function Fj(n){let e=n.trim();return e===""?!0:!/[\s/.]/u.test(e)}function Lj(n){switch(n){case"read":return"read";case"edit":return"edit";case"delete":return"delete";case"move":return"move";case"search":return"search";case"execute":return"run";case"fetch":return"fetch";case"think":return"think";default:return SE}}function Nj(n,e){if(!_j(n.status))return null;let t=Lj(n.rawKind),r=c=>c===void 0?"":Oj($j(c),t,n.rawKind),s=n.editDiff?.path??Af(n.locations),i=s===void 0||s===""?void 0:e===null?s:Pj(e,s),o=r(n.latestTitle),a=t!==SE&&Fj(o)?"":o,d=r(n.detail)||Dj(i)||a;return{verb:t,detail:d===""?void 0:d,startedAt:n.startedAt,path:i}}function Dj(n){return n===void 0?"":n.split("/").filter(t=>t!=="").at(-1)??""}function IE(n,e,t){let r=[];for(let s of n){let i=e.get(s);if(i===void 0)continue;let o=Nj(i,t);o!==null&&r.push(o)}return r}var rk,Mj,SE,sk=q(()=>{"use strict";tl();rk=4,Mj=new Set(["completed","succeeded","ok","failed","error","rejected","cancelled","canceled"]);SE="tool"});function iu(n){let e=Math.max(0,Math.floor(n/1e3));if(e<60)return`${e}s`;let t=Math.floor(e/60),r=e%60;return t<60?`${t}m ${String(r).padStart(2,"0")}s`:`${Math.floor(t/60)}h ${String(t%60).padStart(2,"0")}m`}function xE(n,e){return e<=0?n:Math.floor(Math.max(0,n)/e)*e}function ik(n){if(n<1e3)return String(n);if(n<1e6){let e=n/1e3;return`${e<10?e.toFixed(1):Math.round(e)}K`}return`${(n/1e6).toFixed(1)}M`}function Bj(n,e){if(e<=0)return"";let t=Math.max(0,Math.min(1,n)),r=Math.round(t*e*8),s=Math.floor(r/8),i=r%8,o=i===0?"":"\u258F\u258E\u258D\u258C\u258B\u258A\u2589"[i-1];return"\u2588".repeat(Math.min(e,s))+(s<e?o:"")+"\xB7".repeat(Math.max(0,e-s-(o?1:0)))}function Rr(n,e){return{body:n,bodyStyle:e}}function Wh(n,e,t){let{cellWidth:r,truncate:s}=t.metrics,i=t.width-r(n)-r(e);return i<1?{body:s(`${n} ${e}`,t.width),bodyStyle:"muted"}:{prefix:`${n}${" ".repeat(i)}`,prefixStyle:"muted",body:e,bodyStyle:"sidebar-value"}}function PE(n,e,t,r){let s={body:n,bodyStyle:t,openPath:e,item:!0};if(r!==void 0&&r.length>0){let i=n.indexOf(r);i!==-1&&(s.openSpan={start:i,end:i+r.length})}return s}function Xr(n,e,t){let{cellWidth:r,truncate:s}=t.metrics,i=t.width-r(n)-r(e);return i<1?s(`${n} ${e}`,t.width):`${n}${" ".repeat(i)}${e}`}function RE(n){return n==="in_progress"?0:n==="completed"?2:1}function zj(n){return[...n].sort((e,t)=>RE(e.status)-RE(t.status))}function ME(n){let e=n.map(r=>r.split("/").pop()??r),t=new Map;for(let r of e)t.set(r,(t.get(r)??0)+1);return n.map((r,s)=>{let i=e[s];return(t.get(i)??0)<=1?i:r.split("/").slice(-2).join("/")})}function Jj(n,e,t){let{cellWidth:r,truncate:s}=t.metrics;if(e<=0)return"";if(r(n)<=e)return n;let i=n.slice(n.lastIndexOf("/")+1);if(i!==n&&r(i)<=e)return i;let o=i.length<n.length?i:n;for(let a=1;a<o.length;a++){let d=`\u2026${o.slice(a)}`;if(r(d)<=e)return d}return s(o,e)}function AE(n){if(n<1024)return`${Math.max(0,Math.round(n))}B`;let e=n/(1024*1024);return e<1?`${Math.round(n/1024)}K`:e<1024?e<10?`${e.toFixed(1)}M`:`${Math.round(e)}M`:`${(e/1024).toFixed(1)}G`}function EE(n){if(n===void 0)return"\u2013".padStart(TE);let e=n*100;return(e<100?`${e.toFixed(1)}%`:`${Math.round(e)}%`).padStart(TE)}var Qi,CE,Hj,Uj,Wj,jj,qj,Kj,Gj,Vj,Yj,TE,Qj,Xj,Zj,e2,t2,n2,_E,$E=q(()=>{"use strict";sk();Qi=5;CE=5e3,Hj={id:"activity",relevant:()=>!0,versionKey:n=>n.busySince!==null?`busy:${Math.floor((n.now-n.busySince)/1e3)}`:n.armedSince!==null?`running:${Math.floor((n.now-n.armedSince)/1e3)}`:n.lastTurnEndedAt!==null?`idle:${xE(n.now-n.lastTurnEndedAt,CE)}`:"fresh",render:(n,e)=>n.busySince!==null?[Rr(Xr("\u25CF thinking",iu(n.now-n.busySince),e),"status-active")]:n.armedSince!==null?[Rr(Xr("\u25D0 waiting",iu(n.now-n.armedSince),e),"status-active")]:n.lastTurnEndedAt!==null?[Rr(Xr("\u25CB idle",iu(xE(n.now-n.lastTurnEndedAt,CE)),e),"status-idle")]:[Rr("\u25CB ready","status-idle")]},Uj={id:"tasks",title:"tasks",relevant:n=>n.armedTasks.length>0,versionKey:(n,e)=>{let t=n.armedTasks.slice(0,Qi);return`${e.width}|${n.armedTasks.length}|`+t.map(r=>{let s=Math.floor(Math.max(0,n.now-r.since)/1e3);return`${r.taskId??r.label}:${s}`}).join("\0")},render:(n,e)=>{let{truncate:t,cellWidth:r}=e.metrics,s=[];for(let i of n.armedTasks.slice(0,Qi)){let o=iu(Math.max(0,n.now-i.since)),a="\u25D0 ",d=e.width-r(a)-r(o)-1,c=i.label.length>0?i.label:i.taskType??"background task",l=d<4?a.trim():`${a}${t(c,d)}`;s.push(Rr(Xr(l,o,e),"status-active"))}return n.armedTasks.length>Qi&&s.push(Rr(` +${n.armedTasks.length-Qi} more`,"muted")),s}},Wj={id:"tools",title:"tools",relevant:n=>n.running.length>0,versionKey:(n,e)=>{let t=n.running.slice(0,rk);return`${e.width}|${n.running.length}|`+t.map(r=>{let s=r.startedAt===void 0?"":Math.floor(Math.max(0,n.now-r.startedAt)/1e3);return`${r.verb}:${r.detail??""}:${s}`}).join("\0")},render:(n,e)=>{let{truncate:t,cellWidth:r}=e.metrics,s=[],i=n.running.slice(0,rk);for(let o of i){let a=o.startedAt===void 0?"":iu(Math.max(0,n.now-o.startedAt)),d=`\u25B8 ${o.verb}`,c=e.width-r(d)-(a===""?0:r(a)+1)-1,l=o.detail===void 0||c<4?"":` ${t(o.detail,c)}`,u=`${d}${l}`,f=a===""?u:Xr(u,a,e),p={body:f,bodyStyle:"tool-status-running",openPath:o.path};if(o.path!==void 0){let h=o.path.slice(o.path.lastIndexOf("/")+1),m=h.length>0?f.indexOf(h):-1;m!==-1&&(p.openSpan={start:m,end:m+h.length})}s.push(p)}return n.running.length>i.length&&s.push(Rr(` +${n.running.length-i.length} more`,"muted")),s}},jj={id:"context",title:"context",relevant:n=>n.usage.used!==void 0||n.usage.costAmount!==void 0,versionKey:(n,e)=>`${n.usage.used??""}/${n.usage.size??""}/${n.usage.costAmount??""}/${e.width}`,render:(n,e)=>{let t=[],{used:r,size:s,costAmount:i,costCurrency:o}=n.usage;if(r!==void 0&&s!==void 0&&s>0){let a=r/s;t.push(Rr(Xr(`${ik(r)}/${ik(s)}`,`${Math.round(a*100)}%`,e),a>=.9?"meter-warn":"metric")),t.push(Rr(Bj(a,e.width),a>=.9?"meter-warn":"meter-fill"))}else r!==void 0&&t.push(Rr(Xr("tokens",ik(r),e),"metric"));if(i!==void 0){let a=o==="USD"||o===void 0?"$":`${o} `;t.push(Rr(Xr("cost",`${a}${i.toFixed(2)}`,e),"muted"))}return t}},qj={id:"queue",relevant:n=>n.queued>0,versionKey:(n,e)=>`${n.queued}/${e.width}`,render:(n,e)=>[Rr(Xr("queued",String(n.queued),e),"status-queued")]};Kj={id:"todo",title:"todo",pageSize:Qi,relevant:n=>n.plan.length>0,titleNote:n=>`${n.plan.filter(e=>e.status==="completed").length}/${n.plan.length}`,versionKey:(n,e)=>`${e.width}|`+n.plan.map(t=>`${t.status}:${t.content}`).join("\0"),render:(n,e)=>{let{truncate:t}=e.metrics,r=[];for(let s of zj(n.plan)){let i=s.status==="completed"?"\u2713":s.status==="in_progress"?"\u25B8":"\xB7",o=s.status==="completed"?"plan-done":s.status==="in_progress"?"plan":"plan-pending";r.push({body:t(`${i} ${s.content}`,e.width),bodyStyle:o,item:!0})}return r}};Gj={id:"files",title:"edited",pageSize:Qi,relevant:n=>n.editedFiles.length>0,titleNote:n=>n.editedFiles.length>1?`${n.editedFiles.length} files`:void 0,versionKey:(n,e)=>`${e.width}|`+n.editedFiles.map(t=>`${t.path}:${t.added??""}:${t.removed??""}`).join("\0"),render:(n,e)=>{let{truncate:t,cellWidth:r}=e.metrics,s=[...n.editedFiles].reverse(),i=[],o=ME(s.map(a=>a.path));return s.forEach((a,d)=>{let c=a.added!==void 0||a.removed!==void 0?`+${a.added??0} -${a.removed??0}`:"",l=e.width-(c?r(c)+1:0),u=t(o[d],Math.max(1,l));i.push(PE(c?Xr(u,c,e):u,a.path,"file-path",u))}),i}},Vj={id:"git",title:"git",pageSize:Qi,relevant:n=>n.git!==null&&(n.git.staged>0||n.git.unstaged>0||n.git.untracked>0||n.git.ahead>0||n.git.behind>0),titleNote:n=>n.git!==null&&n.git.files.length>1?`${n.git.files.length} files`:void 0,versionKey:(n,e)=>{let t=n.git;if(t===null)return"none";let r=t.files.map(s=>`${s.state}:${s.path}`).join("\0");return`${e.width}|${t.branch}|${t.staged}|${t.unstaged}|${t.untracked}|${t.ahead}|${t.behind}|${r}`},render:(n,e)=>{let t=n.git;if(t===null)return[];let{truncate:r,cellWidth:s}=e.metrics,i=[];if(t.branch!==null){let d=(t.ahead>0?`\u2191${t.ahead}`:"")+(t.behind>0?`\u2193${t.behind}`:"");i.push(d?Wh(r(t.branch,e.width-d.length-1),d,e):{body:r(t.branch,e.width)})}let o=t.files,a=ME(o.map(d=>d.path));return o.forEach((d,c)=>{let l=d.state==="staged"?"git-staged":d.state==="dirty"?"git-dirty":"git-untracked",u=e.width-s(d.state)-1,f=r(a[c],Math.max(1,u));i.push(PE(Xr(f,d.state,e),d.path,l,f))}),i}};Yj={id:"info",title:"info",relevant:n=>n.agent!==null||n.model!==null||n.sessionId!==null||n.workspace!==null,versionKey:(n,e)=>`${e.width}|${n.agent}|${n.model}|${n.mode}|${n.sessionId}|${n.workspace?.label??""}`,render:(n,e)=>{let{cellWidth:t}=e.metrics,r=[],s=(i,o,a)=>{let d=e.width-t(i)-1,c=Wh(i,Jj(o,d,e),e);r.push(a===void 0?c:{...c,doubleAction:a})};if(n.agent!==null&&s("agent",n.agent,{action:"choose-agent",value:"agent"}),n.model!==null&&s("model",n.model,{action:"choose-model",value:"model"}),n.mode!==null&&s("mode",n.mode,{action:"choose-mode",value:"mode"}),n.sessionId!==null&&s("id",n.sessionId,{action:"copy",value:n.sessionId}),n.workspace!==null){let i=Wh("workspace",n.workspace.label,e);r.push({...i,openPath:n.workspace.path})}return r}};TE=5;Qj="\u25CF",Xj="\u25D0",Zj="\u25CB",e2="\u25E6",t2={id:"sessions",title:"sessions",pageSize:Qi,relevant:n=>n.liveSessions.length>0,titleNote:(n,e,t)=>{if(!t)return;let r=n.liveSessions.filter(s=>s.blocked).length;return r>0?`${r} blocked`:`${n.liveSessions.length} live`},versionKey:(n,e)=>`${e.width}|`+n.liveSessions.map(t=>`${t.blocked?"w":""}${t.busy?"b":""}${t.armed?"r":""}:${t.sessionId}:${t.label}`).join("\0"),render:(n,e)=>{let{truncate:t,cellWidth:r}=e.metrics,s=o=>(o.blocked?0:3)+(o.busy?0:o.armed?1:2);return[...n.liveSessions].sort((o,a)=>s(o)-s(a)).map(o=>{let a=o.busy||o.armed,d=`${o.blocked?e2:" "}${o.busy?Qj:o.armed?Xj:Zj}`,c=r(d),l=t(o.label,Math.max(1,e.width-c-1)),u=Math.max(1,e.width-r(l)-c);return{prefix:`${l}${" ".repeat(u)}`,prefixStyle:a?"status-active":"sidebar-value",body:d,bodyStyle:a?"status-active":o.blocked?"status-blocked":"status-idle",doubleAction:{action:"open-session",value:o.sessionId},item:!0}})}},n2={id:"resources",title:"resources",relevant:n=>n.resources.length>0,versionKey:(n,e)=>`${e.width}|`+n.resources.map(t=>`${t.label}:${AE(t.rssBytes)}:${EE(t.cpuFraction)}:${t.processes}`).join("\0"),render:(n,e)=>{let{cellWidth:t,truncate:r}=e.metrics;return n.resources.map(s=>{let i=`${AE(s.rssBytes)} ${EE(s.cpuFraction)}`,o=s.processes>1?`${s.label} \xD7${s.processes}`:s.label,a=e.width-t(i)-1;return Wh(r(o,Math.max(1,a)),i,e)})}},_E=[Hj,Uj,jj,qj,Kj,Gj,Vj,t2,n2,Yj,Wj]});function s2(n){let e="",t=[],r=0;for(;r<n.length;){let s=n[r];if(s==="["){let i=n.indexOf("]",r+1);if(i!==-1&&n[i+1]==="("&&i>r+1){let o=-1,a=1,d=i+2;for(;d<n.length;){let c=n[d];if(c==="\\"&&d+1<n.length){d+=2;continue}if(c==="(")a+=1;else if(c===")"&&(a-=1,a===0)){o=d;break}d+=1}if(o!==-1&&o>i+2){let c=n.slice(r+1,i),l=n.slice(i+2,o),u=e.length;e+=c,t.push({start:u,end:e.length,url:l}),r=o+1;continue}}}e+=s,r+=1}return{body:e,links:t}}function OE(n){let e=Bt(n).trim();return e.length===0?null:e}function i2(n){return typeof n!="string"}function jh(n){return typeof n=="string"?n:n.id}function qh(n){return n.filter(i2)}function ok(n,e){let t=new Map;for(let r of qh(n)){let s=r.refreshMs??e,i=t.get(r.script);t.set(r.script,i===void 0?s:Math.min(i,s))}return t}function FE(n){return{id:n.id,title:n.title??n.id,relevant:e=>e.processOutputs.has(n.script),versionKey:(e,t)=>`${t.width}:${e.processOutputs.get(n.script)??""}`,render:(e,t)=>{let r=e.processOutputs.get(n.script);if(r===void 0)return[];let{truncate:s}=t.metrics,i=r.split(`
|
|
236
236
|
`).filter(d=>d.length>0),o=n.cap??r2,a=i.slice(0,o).map(d=>{let{body:c,links:l}=s2(d),u=s(c,t.width),f=l.filter(p=>p.start<u.length).map(p=>({...p,end:Math.min(p.end,u.length)}));return f.length>0?{body:u,links:f}:{body:u}});return i.length>o&&a.push({body:` +${i.length-o} more`,bodyStyle:"muted"}),a}}}var r2,zh=q(()=>{"use strict";ri();r2=6});function ak(n){return n==="frame"}function LE(n=0){return{now:n,busySince:null,lastTurnEndedAt:null,armedSince:null,armedTasks:[],queued:0,usage:{},plan:[],editedFiles:[],running:[],git:null,liveSessions:[],resources:[],sessionId:null,agent:null,model:null,mode:null,workspace:null,processOutputs:new Map}}var dk=q(()=>{"use strict"});function a2(n){let e=o2[n]??n;return _E.find(t=>t.id===e)}function fk(n){if(!n.some(i=>i===ck))return n;let e=new Set;for(let i of n)i!==ck&&e.add(jh(i));let t=uk.filter(i=>!e.has(i)),r=[],s=!1;for(let i of n){if(i===ck){s||(r.push(...t),s=!0);continue}r.push(i)}return r}function lk(n,e){return{body:"\u2500".repeat(Math.max(0,n)),bodyStyle:"sidebar-rule",gutter:e}}function f2(n,e,t,r){if(r<=0||!Number.isFinite(r))return e;let s=Kh(e);if(s<=r)return e;let i=Math.ceil(s/r),o=t.pages?.[n.id]??0,a=Math.max(0,Math.min(i-1,o)),d=a*r,c=d+r,l=[],u=0;for(let T of e){if(T.item!==!0){l.push(T);continue}let F=u++;F>=d&&F<c&&l.push(T)}if(n.title===void 0||l.length===0)return l;let{cellWidth:f,truncate:p}=t.metrics,h=`${l2} ${a+1}/${i} ${u2}`,m=f(h),y=t.width-m-1;if(y<1)return l;let w=p(n.title,y),k=t.width-f(w)-m,b=`${w}${" ".repeat(Math.max(1,k))}${h}`,S=f(b)-m+1,R=f(b),I=[];for(let T of l[0].actions??[])"collapse"in T&&S>2&&I.push({...T,start:1,end:S-2});return a>0&&I.push({start:S,end:S,page:{gadget:n.id,index:a-1}}),a<i-1&&I.push({start:R,end:R,page:{gadget:n.id,index:a+1}}),l[0]={...l[0],body:b,actions:I},l}function Kh(n){return n.reduce((e,t)=>e+(t.item===!0?1:0),0)}function DE(n,e,t,r){let s=n.title??"",i=n.titleNote?.(e,t,r),o=r?i===void 0||i.length===0?NE:`${i} ${NE}`:i,a={start:1,end:t.width,collapse:{gadget:n.id}};if(o===void 0||o.length===0)return{body:s,bodyStyle:"sidebar-title",actions:[a]};let{cellWidth:d,truncate:c}=t.metrics,l=d(o),u=t.width-l-1;if(u<1)return{body:c(s,t.width),bodyStyle:"sidebar-title",actions:[a]};let f=c(s,u),p=t.width-d(f)-l;return{body:`${f}${" ".repeat(Math.max(1,p))}${o}`,bodyStyle:"sidebar-title",actions:[a]}}function p2(n,e,t,r){let s=n.map((c,l)=>e[l]?Kh(c):0),i=n.reduce((c,l,u)=>c+(e[u]?0:Kh(l)),0),o=c=>t+i+s.reduce((l,u)=>l+Math.min(u,c),0),a=Math.max(0,...s);if(o(a)<=r)return Number.POSITIVE_INFINITY;let d=1;for(let c=1;c<=a&&o(c)<=r;c++)d=c;return d}var uk,o2,ck,d2,c2,NE,l2,u2,Gh,pk=q(()=>{"use strict";$E();zh();dk();uk=["activity","sessions","tasks","context","queue","todo","files","git","resources","info","tools"],o2={session:"info"};ck="...";d2=Object.freeze({body:""}),c2=Object.freeze({body:"",gutter:"\u2502"});NE="+",l2="\u2039",u2="\u203A";Gh=class{cache=new Map;extraGadgets=new Map;rules=null;gadgets=[];configuredGadgetIds=uk;constructor(e=uk){this.setGadgets(e)}setGadgets(e){this.configuredGadgetIds=e;let t=e.map(s=>this.extraGadgets.get(s)??a2(s)).filter(s=>s!==void 0);(t.length!==this.gadgets.length||t.some((s,i)=>s!==this.gadgets[i]))&&(this.gadgets=t,this.cache.clear())}setProcessGadgets(e){this.extraGadgets=new Map(e.map(t=>[t.id,t])),this.setGadgets(this.configuredGadgetIds)}configuredIds(){return this.gadgets.map(e=>e.id)}isConfigured(e){return this.gadgets.some(t=>t.id===e)}invalidate(){this.cache.clear()}render(e,t){if(t.width<=0)return[];let r=[],s=[];for(let f of this.gadgets){if(!f.relevant(e))continue;let p=f.title!==void 0&&t.collapsed?.has(f.id)===!0,h=`${t.border}|${p?"c":"e"}|${f.versionKey(e,t)}`,m=this.cache.get(f.id),y;if(m!==void 0&&m.key===h)y=m.lines;else if(p){let w=DE(f,e,t,!0);y=[t.border==="none"?w:{...w,gutter:"\u2502"}],this.cache.set(f.id,{key:h,lines:y})}else{let w=f.render(e,t),k=f.title===void 0?w:[DE(f,e,t,!1),...w];y=w.length===0?[]:t.border==="none"?k:k.map(b=>({...b,gutter:"\u2502"})),this.cache.set(f.id,{key:h,lines:y})}y.length!==0&&(r.push(y),s.push(p?null:f))}if(r.length===0)return[];let i=ak(t.border)?r.length+1:Math.max(0,r.length-1),o=s.map(f=>f!==null&&f.pageSize!==void 0&&f.pageSize>0),a=i+r.reduce((f,p)=>f+p.length-Kh(p),0),d;t.maxRows===void 0?d=Number.NaN:d=p2(r,o,a,t.maxRows);let c=r.map((f,p)=>{let h=s[p],m=h?.pageSize;if(h==null||m===void 0)return f;let y=Number.isNaN(d)?m:d;return f2(h,f,t,y)});r.length=0,r.push(...c);let l=[];if(ak(t.border)){this.rules?.width!==t.width&&(this.rules={width:t.width,lines:{"\u250C":lk(t.width,"\u250C"),"\u251C":lk(t.width,"\u251C"),"\u2514":lk(t.width,"\u2514")}});let f=this.rules.lines;return l.push(f["\u250C"]),r.forEach((p,h)=>{h>0&&l.push(f["\u251C"]),l.push(...p)}),l.push(f["\u2514"]),l}let u=t.border==="rule"?c2:d2;return r.forEach((f,p)=>{p>0&&l.push(u),l.push(...f)}),l}}});import*as HE from"path";function m2(n){n==="unknown"||ma!==null||(Vh=n,ma=setTimeout(()=>{ma=null,Vh=null,ou()},h2),ma.unref?.())}function UE(){ma!==null&&(clearTimeout(ma),ma=null),Vh=null}function WE(){if(Je.permission)return"blocked";switch(Je.status){case"busy":case"cancelling":return"working";case"ready":return"idle";case"disconnected":case"cold":return Vh??"unknown";default:return"unknown"}}function g2(n){return typeof n!="number"||!Number.isFinite(n)||n<=0?null:`$${n.toFixed(2)}`}function y2(){let n=Je.cwd?.trim();return n?HE.basename(n)||n:null}function jE(){return Je.title?.trim()||y2()}function w2(){return{state:WE(),sessionId:Je.sessionId??null,title:jE(),cwd:Je.cwd?.trim()||null,agent:Je.agent??null,model:Je.model??null,cost:g2(Je.costAmount),queued:Je.queued??null,turnOrigin:Je.turnOrigin,turnLabel:Je.turnLabel}}function ou(){let n=Jt();if(!n||!Je.sessionId||(Je.suspended?Kl(Ch,{transient:!0}):Kl(jE()),Je.suspended)||!n.caps.report)return;let e=w2(),t=JSON.stringify(e);Xi!==t&&(Xi=t,Promise.resolve(n.report(e)).catch(()=>{Xi=null}))}function qE(n){Jt()&&(n.sessionId!==Je.sessionId&&(Je.turnOrigin=null,Je.turnLabel=null),Je.sessionId=n.sessionId,Je.agent=n.agent,Je.title=n.title,Je.model=n.model,Je.costAmount=n.costAmount,Je.cwd=n.cwd,ou())}function zE(n){if(!Jt())return;let e=BE.has(Je.status??""),t=BE.has(n.status??"");t&&!e?m2(WE()):t||UE(),Je.status=n.status,Je.queued=n.queued,ou()}function KE(n){Jt()&&(Je.turnOrigin=n.origin,Je.turnLabel=n.label??null)}function hk(n){if(!(!Jt()||Je.suspended===n)){if(Je.suspended=n,n){b2();return}Xi=null,ou()}}function b2(){let n=Jt();n&&(Kl(Ch,{transient:!0}),Xi!==null&&(Xi=null,n.caps.report&&Promise.resolve(n.release()).catch(()=>{})))}function GE(n){Jt()&&(Je.permission=n,ou())}async function VE(){let n=Jt();if(n&&(await L0(),UE(),Xi!==null)){Xi=null,Je.sessionId=void 0,Je.turnOrigin=null,Je.turnLabel=null;try{await n.release()}catch{}}}var Je,Xi,h2,BE,Vh,ma,mk=q(()=>{"use strict";pa();Tb();Je={permission:!1,turnOrigin:null,turnLabel:null,suspended:!1},Xi=null,h2=1e4,BE=new Set(["disconnected","cold"]),Vh=null,ma=null});import{spawnSync as k2}from"child_process";import*as ui from"fs";import*as Jh from"path";function YE(n,e){let t=Buffer.from(e,"utf8").toString("base64");process.stdout.write(`${JE}1337;SetUserVar=${n}=${t}${v2}`)}function I2(){if(!process.stdin.isTTY)return null;let n=t=>{try{let r=ui.readlinkSync(t);return r.startsWith("/dev/")&&r!=="/dev/tty"?Jh.basename(r):null}catch{return null}},e=n("/proc/self/fd/0")??n("/dev/fd/0");if(e)return e;try{let t=k2("tty",[],{encoding:"utf8",timeout:500});if(t.status!==0)return null;let r=t.stdout.trim();return!r.startsWith("/dev/")||r==="/dev/tty"?null:Jh.basename(r)}catch{return null}}function QE(){return gk===void 0&&(gk=I2()),gk}function x2(n){let e=QE();if(e)try{ui.mkdirSync(B.ttySessionDir(),{recursive:!0});let t=`${process.pid}:${process.ppid}:${n}
|
|
@@ -266,7 +266,7 @@ ${N}`},xi=async(N,X={})=>{try{let le=X.silent?Ou():"",Y=u,Ae=await kr(e.target,{
|
|
|
266
266
|
`)),h=Math.max(1,l-4-4),m=p.length>h,y=m?p.slice(0,h-1):p,w=y.length+(m?1:0)+4,k=rr(n,{contentHeight:w,contentWidth:u,title:"Agent failed to start"}),b=k.contentW,S=0;n.moveTo(k.contentX,k.contentY+S),D(n,"modal-title",Et(` ${i}`,b)),S+=2;for(let R of y)n.moveTo(k.contentX,k.contentY+S),D(n,"modal-error",Et(` ${R}`,b)),S++;return m&&(n.moveTo(k.contentX,k.contentY+S),D(n,"modal-hint",Et(" \u2026 (full details in ~/.hydra-acp/tui.log)",b)),S++),S++,n.moveTo(k.contentX,k.contentY+S),D(n,"modal-hint",Et(` ${a}`,b)),k};return Ms({term:n,render:()=>{d()},onKey:(c,l,u,f)=>{if(c==="r"||c==="R"||c==="ENTER"||c==="KP_ENTER"){f("retry");return}if(c==="ESCAPE"){f(s?"back":"cancel");return}c==="CTRL_C"&&f("cancel")}})}var ez,QP=q(()=>{"use strict";ca();pn();ez=100});import{exec as tz}from"child_process";function fm(n){let e=new Set,t=new Map,r=s=>{e.add(s);let i=n.envFor?.(s);tz(s,{cwd:n.cwd()??void 0,timeout:nz,maxBuffer:rz,env:i?{...process.env,...i}:void 0},(o,a)=>{e.delete(s),n.onOutput(s,o?null:n.sanitize(a))})};return{poll(s,i){for(let[o,a]of s){if(e.has(o))continue;let d=t.get(o);d!==void 0&&i-d<a||(t.set(o,i),r(o))}}}}var nz,rz,Vk=q(()=>{"use strict";nz=3e3,rz=64*1024});function Jk(n,e){let t=new Map,r=s=>{for(let i of s){if(typeof i=="string"||i.script===void 0)continue;let o=i.refreshMs??e,a=t.get(i.script);t.set(i.script,a===void 0?o:Math.min(a,o))}};return r(n.composer.top.left),r(n.composer.top.right),r(n.composer.bottom.left),r(n.composer.bottom.right),r(n.sessionbar.left),r(n.sessionbar.right),t}function sz(n){let e=n.trim().replace(/\s+/g," ");return e.length===0?null:e}function XP(n){return fm({cwd:n.cwd,envFor:n.envFor,sanitize:sz,onOutput:n.onOutput})}var ZP=q(()=>{"use strict";Vk()});async function iz(n,e){try{let t=await fetch(`${n.baseUrl}/v1/process-tokens`,{method:"POST",headers:{Authorization:`Bearer ${n.token}`,"Content-Type":"application/json"},body:JSON.stringify({sessionLabel:e}),signal:AbortSignal.timeout(3e3)});if(!t.ok)return;let r=await t.json();return typeof r.token=="string"?r.token:void 0}catch{return}}async function eM(n,e,t){let r=new Map;return await Promise.all([...t.keys()].map(async s=>{let i=await iz(n,e);i&&r.set(s,i)})),r}async function tM(n,e){try{await fetch(`${n.baseUrl}/v1/process-tokens/${encodeURIComponent(e)}`,{method:"DELETE",headers:{Authorization:`Bearer ${n.token}`},signal:AbortSignal.timeout(3e3)})}catch{}}var nM=q(()=>{"use strict"});import{spawn as oz}from"child_process";function az(n,e){let t="";for(let r=0;r<n.length;r++){let s=n[r];if(s!=="%"||r===n.length-1){t+=s;continue}switch(n[r+1]){case"%":t+="%",r++;break;case"s":t+=e.sessionId,r++;break;case"c":t+=e.cwd,r++;break;case"a":t+=e.agentId,r++;break;case"u":t+=e.baseUrl,r++;break;case"t":t+=e.tokenFile,r++;break;default:t+=s;break}}return t}function dz(n){if(Array.isArray(n))return[...n];let e=n;return e.trim().length===0?[]:e.trim().split(/\s+/)}function cz(n,e){let t=dz(n.command);if(t.length===0)return null;let r=t.map(a=>yt(az(a,e))),[s,...i]=r;if(!s)return null;let o={HYDRA_SESSION_ID:e.sessionId,HYDRA_CWD:e.cwd,HYDRA_AGENT:e.agentId,HYDRA_BASE_URL:e.baseUrl,HYDRA_TOKEN_FILE:e.tokenFile};return{program:s,args:i,env:o}}function lz(n){let e={stdout:"",stderr:"",bytes:0,truncated:!1},t=(r,s)=>{if(e.truncated)return;let i=n-e.bytes;if(i<=0){e.truncated=!0;return}let o=r.length<=i?r.toString("utf8"):r.subarray(0,i).toString("utf8");r.length>i&&(e.truncated=!0),e[s]+=o,e.bytes+=Math.min(r.length,i)};return{onStdout:r=>t(r,"stdout"),onStderr:r=>t(r,"stderr"),onExit:(r,s)=>{let i=[],o=(a,d)=>{let c=a.split(/\r?\n/);for(;c.length>0&&c[c.length-1]==="";)c.pop();for(let l of c)i.push({text:l,style:d})};return e.stdout&&o(e.stdout,"stdout"),e.stderr&&o(e.stderr,"stderr"),e.truncated&&i.push({text:`[output truncated at ${n} bytes]`,style:"meta"}),s?i.push({text:`[killed by ${s}]`,style:"error"}):typeof r=="number"&&r!==0&&i.push({text:`[exit ${r}]`,style:"error"}),i}}}function rM(n,e,t){let r=cz(n,e);if(r===null){t.notify("hotkey: empty command");return}let s=lz(t.maxOutputBytes??uz),i=t.spawnFn??oz,o;try{o=i(r.program,r.args,{cwd:t.cwd,env:{...t.parentEnv??process.env,...r.env},stdio:["ignore","pipe","pipe"]})}catch(a){t.emitLines([{text:`[hotkey spawn failed: ${a.message}]`,style:"error"}]);return}o.stdout?.on("data",s.onStdout),o.stderr?.on("data",s.onStderr),o.on("error",a=>{t.emitLines([{text:`[hotkey spawn error: ${a.message}]`,style:"error"}])}),o.on("close",(a,d)=>{t.emitLines(s.onExit(a,d))})}var uz,sM=q(()=>{"use strict";st();uz=16*1024});function gu(n){if(typeof n!="string")return null;let e=n.trim();return e.length>0?e:null}function iM(n){if(!n||typeof n!="object")return{origin:"client",label:null};let e=n,t=gu(e.fromSession);return t?{origin:"peer",label:gu(e.fromSessionTitle)??gu(e.fromLabel)??t}:{origin:"client",label:gu(e.fromLabel)??gu(e.name)}}var oM=q(()=>{"use strict"});function aM(n){let e={};if(!n||typeof n!="object")return e;let t=n;typeof t.historyPolicy=="string"&&(e.appliedPolicy=t.historyPolicy),typeof t.clientId=="string"&&t.clientId.length>0&&(e.clientId=t.clientId);let r=t._meta;if(r&&typeof r=="object"){let s=r["hydra-acp"];if(s&&typeof s=="object"){let i=s,o=i.turnStartedAt;typeof o=="number"&&(e.turnStartedAt=o),typeof i.armedSince=="number"&&i.armedSince>0&&(e.armedSince=i.armedSince),typeof i.armedTasks=="number"&&i.armedTasks>=0&&(e.armedTasks=i.armedTasks),Array.isArray(i.armedTaskList)&&(e.armedTaskList=i.armedTaskList)}}return e}function dM(n){return!n.replayDraining&&!n.amended&&n.pendingTurns>0&&n.queueSize===0&&!n.ownTurnInFlight&&!n.hasInFlightHead}function cM(n){return n.daemonTurnStartedAt!==void 0?{pendingTurnsDelta:n.pendingTurns===0?1:0,banner:"busy",busySince:n.daemonTurnStartedAt}:{pendingTurnsDelta:n.pendingTurns>0?-n.pendingTurns:0,banner:"ready"}}var lM=q(()=>{"use strict"});function pm(n){let e=$i(n);if(e===null)throw new Error(`built-in theme has a malformed colour: ${n}`);return e}function bn(n,e){let t={};for(let[r,s]of Object.entries(n))t[r]=pm(s);return t.bg=pm(e.bg),t.fg=pm(e.fg),t}function Tr(n){return{fg:pm(n)}}function sr(n){return{fg:ut(n)}}function Yk(n){return uM.find(e=>e.name===n)}function Qk(){return uM.map(n=>n.name)}function fM(n){return n===void 0?"terminal":od(n)?Ez:Pz}function pM(n,e,t){if(n.length===0)return;let r=n.indexOf(e);return r===-1?t===1?n[0]:n[n.length-1]:n[(r+t+n.length)%n.length]}var fz,pz,hz,mz,gz,yz,wz,bz,kz,vz,Sz,Iz,xz,$t,Cz,Rz,Az,Tz,uM,Ez,Pz,Xk=q(()=>{"use strict";dd();pn();fz=bn({black:"#21222c",red:"#ff5555",green:"#50fa7b",yellow:"#f1fa8c",blue:"#bd93f9",magenta:"#ff79c6",cyan:"#8be9fd",white:"#f8f8f2",brightBlack:"#6272a4",brightRed:"#ff5555",brightGreen:"#50fa7b",brightYellow:"#f1fa8c",brightBlue:"#bd93f9",brightMagenta:"#ff79c6",brightCyan:"#8be9fd",brightWhite:"#ffffff"},{bg:"#282a36",fg:"#f8f8f2"}),pz=bn({black:"#3b4252",red:"#bf616a",green:"#a3be8c",yellow:"#ebcb8b",blue:"#81a1c1",magenta:"#b48ead",cyan:"#88c0d0",white:"#e5e9f0",brightBlack:"#4c566a",brightRed:"#bf616a",brightGreen:"#a3be8c",brightYellow:"#ebcb8b",brightBlue:"#81a1c1",brightMagenta:"#b48ead",brightCyan:"#8fbcbb",brightWhite:"#eceff4"},{bg:"#2e3440",fg:"#d8dee9"}),hz=bn({black:"#282828",red:"#cc241d",green:"#98971a",yellow:"#d79921",blue:"#458588",magenta:"#b16286",cyan:"#689d6a",white:"#a89984",brightBlack:"#928374",brightRed:"#fb4934",brightGreen:"#b8bb26",brightYellow:"#fabd2f",brightBlue:"#83a598",brightMagenta:"#d3869b",brightCyan:"#8ec07c",brightWhite:"#ebdbb2"},{bg:"#282828",fg:"#ebdbb2"}),mz=bn({black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#657b83",brightBlack:"#93a1a1",brightRed:"#cb4b16",brightGreen:"#859900",brightYellow:"#b58900",brightBlue:"#268bd2",brightMagenta:"#6c71c4",brightCyan:"#2aa198",brightWhite:"#073642"},{bg:"#fdf6e3",fg:"#657b83"}),gz=(()=>{let n={};for(let e of Object.keys(Fo))n[e]=ut(7);return n})(),yz=bn({black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#93a1a1",brightBlack:"#586e75",brightRed:"#cb4b16",brightGreen:"#859900",brightYellow:"#b58900",brightBlue:"#268bd2",brightMagenta:"#6c71c4",brightCyan:"#2aa198",brightWhite:"#fdf6e3"},{bg:"#002b36",fg:"#839496"}),wz=bn({black:"#45475a",red:"#f38ba8",green:"#a6e3a1",yellow:"#f9e2af",blue:"#89b4fa",magenta:"#f5c2e7",cyan:"#94e2d5",white:"#bac2de",brightBlack:"#6c7086",brightRed:"#eba0ac",brightGreen:"#a6e3a1",brightYellow:"#fab387",brightBlue:"#b4befe",brightMagenta:"#cba6f7",brightCyan:"#89dceb",brightWhite:"#cdd6f4"},{bg:"#1e1e2e",fg:"#cdd6f4"}),bz=bn({black:"#51576d",red:"#e78284",green:"#a6d189",yellow:"#e5c890",blue:"#8caaee",magenta:"#f4b8e4",cyan:"#81c8be",white:"#b5bfe2",brightBlack:"#737994",brightRed:"#ea999c",brightGreen:"#a6d189",brightYellow:"#ef9f76",brightBlue:"#babbf1",brightMagenta:"#ca9ee6",brightCyan:"#99d1db",brightWhite:"#c6d0f5"},{bg:"#303446",fg:"#c6d0f5"}),kz=bn({black:"#494d64",red:"#ed8796",green:"#a6da95",yellow:"#eed49f",blue:"#8aadf4",magenta:"#f5bde6",cyan:"#8bd5ca",white:"#b8c0e0",brightBlack:"#6e738d",brightRed:"#ee99a0",brightGreen:"#a6da95",brightYellow:"#f5a97f",brightBlue:"#b7bdf8",brightMagenta:"#c6a0f6",brightCyan:"#91d7e3",brightWhite:"#cad3f5"},{bg:"#24273a",fg:"#cad3f5"}),vz=bn({black:"#ccd0da",red:"#d20f39",green:"#40a02b",yellow:"#df8e1d",blue:"#1e66f5",magenta:"#ea76cb",cyan:"#179299",white:"#5c5f77",brightBlack:"#8c8fa1",brightRed:"#e64553",brightGreen:"#40a02b",brightYellow:"#fe640b",brightBlue:"#7287fd",brightMagenta:"#8839ef",brightCyan:"#04a5e5",brightWhite:"#4c4f69"},{bg:"#eff1f5",fg:"#4c4f69"}),Sz=bn({black:"#ebdbb2",red:"#9d0006",green:"#79740e",yellow:"#b57614",blue:"#076678",magenta:"#8f3f71",cyan:"#427b58",white:"#504945",brightBlack:"#7c6f64",brightRed:"#cc241d",brightGreen:"#98971a",brightYellow:"#af3a03",brightBlue:"#458588",brightMagenta:"#b16286",brightCyan:"#689d6a",brightWhite:"#3c3836"},{bg:"#fbf1c7",fg:"#3c3836"}),Iz=bn({black:"#414868",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#565f89",brightRed:"#ff757f",brightGreen:"#73daca",brightYellow:"#ff9e64",brightBlue:"#7aa2f7",brightMagenta:"#bb9af7",brightCyan:"#2ac3de",brightWhite:"#c0caf5"},{bg:"#1a1b26",fg:"#c0caf5"}),xz=bn({black:"#3f4451",red:"#e05561",green:"#8cc265",yellow:"#d18f52",blue:"#4aa5f0",magenta:"#c162de",cyan:"#42b3c2",white:"#abb2bf",brightBlack:"#5c6370",brightRed:"#ff616e",brightGreen:"#a5e075",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#e6e6e6"},{bg:"#282c34",fg:"#abb2bf"}),$t={orange:"#e69f00",skyBlue:"#56b4e9",bluishGreen:"#009e73",yellow:"#f0e442",blue:"#0072b2",vermillion:"#d55e00",reddishPurple:"#cc79a7"},Cz=bn({black:"#3a3a3a",red:$t.reddishPurple,green:$t.bluishGreen,yellow:$t.orange,blue:$t.blue,magenta:$t.reddishPurple,cyan:$t.skyBlue,white:"#d0d0d0",brightBlack:"#8a8a8a",brightRed:$t.vermillion,brightGreen:$t.bluishGreen,brightYellow:$t.yellow,brightBlue:$t.skyBlue,brightMagenta:$t.reddishPurple,brightCyan:$t.skyBlue,brightWhite:"#f0f0f0"},{bg:"#1c1c1c",fg:"#d0d0d0"});Rz=bn({black:"#090618",red:"#c34043",green:"#76946a",yellow:"#c0a36e",blue:"#7e9cd8",magenta:"#957fb8",cyan:"#6a9589",white:"#c8c093",brightBlack:"#727169",brightRed:"#e82424",brightGreen:"#98bb6c",brightYellow:"#e6c384",brightBlue:"#7fb4ca",brightMagenta:"#938aa9",brightCyan:"#7aa89f",brightWhite:"#dcd7ba"},{bg:"#1f1f28",fg:"#dcd7ba"}),Az=bn({black:"#343f44",red:"#e67e80",green:"#a7c080",yellow:"#e69875",blue:"#7fbbb3",magenta:"#d699b6",cyan:"#83c092",white:"#d3c6aa",brightBlack:"#859289",brightRed:"#e67e80",brightGreen:"#a7c080",brightYellow:"#dbbc7f",brightBlue:"#7fbbb3",brightMagenta:"#d699b6",brightCyan:"#83c092",brightWhite:"#d3c6aa"},{bg:"#2d353b",fg:"#d3c6aa"}),Tz=bn({black:"#141c12",red:"#ff4b4b",green:"#1cc24b",yellow:"#e6ff57",blue:"#30b3ff",magenta:"#c770ff",cyan:"#24f6d9",white:"#2eff6a",brightBlack:"#8ca391",brightRed:"#ff4b4b",brightGreen:"#2eff6a",brightYellow:"#ffa83d",brightBlue:"#30b3ff",brightMagenta:"#c770ff",brightCyan:"#00efff",brightWhite:"#62ff94"},{bg:"#0a0e0a",fg:"#62ff94"}),uM=[{name:"terminal",description:"your terminal's own 16 colours (default)",palette:Fo},{name:"dracula",description:"dark, high contrast, purple-leaning",palette:fz},{name:"nord",description:"dark, cool, low contrast",palette:pz},{name:"gruvbox-dark",description:"dark, warm, retro",counterpart:"gruvbox-light",palette:hz},{name:"catppuccin-mocha",description:"dark, soft pastel (the default on a dark terminal)",counterpart:"catppuccin-latte",palette:wz},{name:"catppuccin-macchiato",description:"dark, soft pastel, one step lighter than mocha",counterpart:"catppuccin-latte",palette:kz},{name:"catppuccin-frappe",description:"dark, soft pastel, the lightest of the dark flavours",counterpart:"catppuccin-latte",palette:bz},{name:"catppuccin-latte",description:"light, soft pastel (the default on a light terminal)",counterpart:"catppuccin-mocha",palette:vz},{name:"tokyo-night",description:"dark, deep blue",palette:Iz},{name:"one-dark",description:"dark, the Atom default",palette:xz},{name:"kanagawa",description:"dark, muted ink tones",palette:Rz},{name:"everforest",description:"dark, warm green, gentle contrast",palette:Az},{name:"matrix",description:"dark, green on black",palette:Tz},{name:"gruvbox-light",description:"light, warm, retro",counterpart:"gruvbox-dark",palette:Sz},{name:"colorblind",description:"dark, no meaning carried on the red/green axis",palette:Cz,roles:{ok:Tr($t.skyBlue),error:Tr($t.vermillion),errorSoft:Tr($t.vermillion),warn:Tr($t.orange),active:Tr($t.yellow),cold:Tr($t.reddishPurple),diffAdded:Tr($t.skyBlue),diffRemoved:Tr($t.vermillion),gitStaged:Tr($t.blue),gitDirty:Tr($t.orange),syntaxRegexp:Tr($t.reddishPurple),syntaxNumber:Tr($t.skyBlue)}},{name:"solarized-dark",description:"dark, low contrast",counterpart:"solarized-light",palette:yz},{name:"solarized-light",description:"light",counterpart:"solarized-dark",palette:mz},{name:"mono",description:"no colour; weight and glyphs only",palette:gz,roles:{subtle:sr(8),muted:sr(8),fg:sr(7),fgStrong:sr(15),active:sr(15),error:sr(15),warn:sr(15),ok:sr(7),cold:sr(7),accent:sr(15),info:sr(7),reference:sr(15),focus:sr(15),selection:{bg:ut(8),fg:ut(15)},selectionBand:{bg:ut(8)},cursor:{bg:ut(15),fg:ut(0)},promptCursor:{bg:ut(15),fg:ut(0)},match:{bg:ut(15),fg:ut(0)},matchActive:{bg:ut(7),fg:ut(0)}}}];Ez="catppuccin-mocha",Pz="catppuccin-latte"});import{readdir as Mz,readFile as _z}from"fs/promises";import{join as wM}from"path";function $z(n,e,t,r){let s=(c,l)=>{if(c===void 0)return;if(typeof c!="string")return r.push(`${e}${l}: must be a colour string, got ${hm(c)}`),null;let u=$i(c);return u===null?(r.push(`${e}${l}: is not a colour ("${c}") \u2014 expected #rgb, #rrggbb, or rgb(r,g,b)`),null):u};if(typeof n=="string"){let c=s(n,"");return c==null?null:t?{fg:c}:{bg:c}}if(typeof n!="object"||n===null||Array.isArray(n))return r.push(`${e}: must be a colour string or { fg, bg }, got ${hm(n)}`),null;let i=n;for(let c of Object.keys(i))c!=="fg"&&c!=="bg"&&r.push(`${e}: unknown key "${c}" \u2014 expected fg or bg`);let o=s(i.fg,".fg"),a=s(i.bg,".bg");if(o===null||a===null)return null;if(o===void 0&&a===void 0)return r.push(`${e}: needs at least one of fg or bg`),null;let d={};return o!==void 0&&(d.fg=o),a!==void 0&&(d.bg=a),d}function gM(n,e,t,r,s,i){let o={};if(n===void 0)return o;if(typeof n!="object"||n===null||Array.isArray(n))return i.push(`${t}: ${e} must be an object`),o;let a=new Set(r);for(let[d,c]of Object.entries(n)){if(!a.has(d)){let u=r.filter(f=>f.includes(d)||d.includes(f));i.push(`${t}: unknown ${e==="roles"?"role":"element"} "${d}"`+(u.length>0?` \u2014 did you mean ${u.slice(0,4).join(", ")}?`:"")+` (${r.length} available)`);continue}let l=$z(c,`${t}: ${e}.${d}`,s(d),i);l!==null&&(o[d]=l)}return o}async function Zk(n,e){let t=[],r=()=>({palette:Fo,overrides:{roles:{},elements:{}},name:"terminal",problems:t});return n==null?r():typeof n=="string"?await bM(n,e,t,new Set)??r():typeof n!="object"||Array.isArray(n)?(t.push(`tui.theme must be a theme name or an object, got ${hm(n)}`),r()):{...await kM(n,"tui.theme",e,t,new Set),name:"custom",problems:t}}function hm(n){return Array.isArray(n)?"an array":typeof n}async function bM(n,e,t,r){if(r.has(n))return t.push(`theme "${n}": extends forms a cycle`),null;r.add(n);let s=await Oz(n,e,t);if(s!==null)return{...await kM(s,`theme "${n}"`,e,t,r),name:n,problems:t};let i=Yk(n);return i!==void 0?{palette:i.palette,overrides:{roles:{...i.roles??{}},elements:{}},name:n,problems:t}:(t.push(`unknown theme "${n}" \u2014 expected one of ${Qk().join(", ")}, or a file at ${wM(e,`${n}.json`)}`),null)}async function Oz(n,e,t){if(!/^[A-Za-z0-9._-]+$/.test(n)||n.startsWith("."))return null;let r=wM(e,`${n}.json`),s;try{s=await _z(r,"utf8")}catch{return null}try{let i=JSON.parse(s);return typeof i!="object"||i===null||Array.isArray(i)?(t.push(`theme file ${r}: expected a JSON object`),null):i}catch(i){return t.push(`theme file ${r}: ${i.message.split(`
|
|
267
267
|
`)[0]}`),null}}async function kM(n,e,t,r,s){let i=Fo,o={roles:{},elements:{}};if(n.extends!==void 0)if(typeof n.extends!="string")r.push(`${e}: extends must be a theme name`);else{let d=await bM(n.extends,t,r,s);d!==null&&(i=d.palette,Object.assign(o.roles,d.overrides.roles),Object.assign(o.elements,d.overrides.elements))}let a={...i};if(n.palette!==void 0)if(typeof n.palette!="object"||n.palette===null||Array.isArray(n.palette))r.push(`${e}: palette must be an object`);else{let d=new Set([...hM,...mM]);for(let[c,l]of Object.entries(n.palette)){if(!d.has(c)){r.push(`${e}: unknown palette slot "${c}" \u2014 expected one of ${[...hM,...mM].join(", ")}`);continue}if(typeof l!="string"){r.push(`${e}: palette.${c} must be a colour string, got ${hm(l)}`);continue}let u=$i(l);if(u===null){r.push(`${e}: palette.${c} is not a colour ("${l}") \u2014 expected #rgb, #rrggbb, or rgb(r,g,b)`);continue}a[c]=u}}return Object.assign(o.roles,gM(n.roles,"roles",e,qS(),KS,r)),Object.assign(o.elements,gM(n.elements,"elements",e,zS(),GS,r)),{palette:a,overrides:o}}async function vM(n){let e=[...Qk()];try{for(let r of await Mz(n)){if(!r.endsWith(".json"))continue;let s=r.slice(0,-5);e.includes(s)||e.push(s)}}catch{}let t=[];for(let r of e){let s=await Zk(r,n);t.push({name:r,palette:s.palette,overrides:s.overrides})}return t}function SM(n,e,t=process.env,r){if(n!=null)if(typeof n!="string")e.push(`tui.themeBackground must be "dark", "light", or a colour, got ${typeof n}`);else{let i=yM(n.trim().toLowerCase());if(i!==void 0)return i;let o=$i(n);if(o!==null)return o;e.push(`tui.themeBackground is not "dark", "light", or a colour ("${n}")`)}if(r!==void 0)return r;let s=TS(t);return s===void 0?void 0:yM(s)}function ev(n,e,t){if(t===void 0||n.bg===void 0)return;let r=od(t),s=od(n.bg);if(r===s)return;let i=Yk(e)?.counterpart,o=i===void 0?"":` \u2014 try "${i}" instead`;return r?`"${e}" is a light theme and this terminal is dark${o}`:`"${e}" is a dark theme and this terminal is light${o}`}function yM(n){if(n==="dark")return Cn(0,0,0);if(n==="light")return Cn(255,255,255)}var hM,mM,IM=q(()=>{"use strict";$o();Xk();dd();pn();hM=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],mM=["bg","fg"]});import{resolve as Fz}from"path";function Nz(n,e){let t=0;for(let r=0;r<e;r++){let s=n.indexOf(" ",t);if(s===-1)return"";t=s+1}return n.slice(t)}function Dz(){return{branch:null,staged:0,unstaged:0,untracked:0,ahead:0,behind:0,files:[]}}function xM(n,e){let t=Dz(),r=(s,i)=>{e===null||s===""||t.files.push({path:Fz(e,s),state:i})};for(let s of n.split(`
|
|
268
268
|
`)){if(s.startsWith("# branch.head ")){let u=s.slice(14).trim();t.branch=u==="(detached)"?null:u;continue}if(s.startsWith("# branch.ab ")){let u=/\+(\d+) -(\d+)/.exec(s);u!==null&&(t.ahead=Number(u[1]),t.behind=Number(u[2]));continue}if(s.startsWith("? ")){t.untracked++,r(s.slice(2),"new");continue}let i=s.slice(0,1),o=Lz[i];if(o===void 0||s[1]!==" ")continue;let a=s.slice(2,4),d=a[0]!==void 0&&a[0]!==".",c=a[1]!==void 0&&a[1]!==".";d&&t.staged++,c&&t.unstaged++;let l=Nz(s,o).split(" ")[0]??"";r(l,c?"dirty":"staged")}return t}var Lz,CM=q(()=>{"use strict";Lz={1:8,2:9,u:10}});import{resolve as Bz}from"path";function Hz(n,e){return e!==void 0||JI(n.rawKind)}function RM(n,e,t){if(n.status!=="completed"||!Hz(n,e))return null;let r=e?.path??Af(n.locations);if(r===void 0||r==="")return null;let s=e===void 0?void 0:zw(e);return{path:t===null?r:Bz(t,r),added:s?.added,removed:s?.removed}}function AM(n){let e=new Map;for(let t of n){let r=e.get(t.path);if(r===void 0){e.set(t.path,{...t});continue}t.added!==void 0&&(r.added=(r.added??0)+t.added),t.removed!==void 0&&(r.removed=(r.removed??0)+t.removed),e.delete(t.path),e.set(t.path,r)}return[...e.values()]}var TM=q(()=>{"use strict";tl();ai()});function EM(n){if(n===null||typeof n!="object")return null;let t=n.rawInput;if(t===null||typeof t!="object")return null;let r=t.todos;if(!Array.isArray(r))return null;let s=[];for(let i of r){if(i===null||typeof i!="object")continue;let{content:o,status:a,priority:d}=i;if(typeof o!="string"||o.length===0)continue;let c={content:o,status:typeof a=="string"&&Uz.has(a)?a:"pending"};typeof d=="string"&&d.length>0&&(c.priority=d),s.push(c)}return s}var Uz,PM=q(()=>{"use strict";Uz=new Set(["pending","in_progress","completed"])});import{readdirSync as Wz,readFileSync as jz}from"fs";function tv(n){let e=n.lastIndexOf(")");if(e===-1)return null;let t=Number(n.slice(0,n.indexOf(" "))),r=n.slice(e+2).split(" "),s=Number(r[1]),i=Number(r[11]),o=Number(r[12]),a=Number(r[13]),d=Number(r[14]);if(!Number.isInteger(t)||!Number.isInteger(s)||!Number.isFinite(i)||!Number.isFinite(o))return null;let c=Number.isFinite(a)&&Number.isFinite(d)?(a+d)/MM:void 0;return{pid:t,ppid:s,rssBytes:0,cpuSeconds:(i+o)/MM,...c===void 0?{}:{childCpuSeconds:c}}}function qz(n){let e=/^VmRSS:\s+(\d+)\s+kB$/m.exec(n);if(e===null)return null;let t=Number(e[1]);return Number.isFinite(t)?t*1024:null}function _M(n,e,t){if(e===null||t<=0)return;let r=n.user-e.user+(n.system-e.system);return Math.max(0,r/1e3/t)}function zz(n){let e=new Map;for(let t of n.split(`
|
|
269
|
-
`)){let r=t.trim().split(/\s+/);if(r.length<4)continue;let s=Number(r[0]),i=Number(r[1]),o=Number(r[2]),a=Kz(r[3]);!Number.isInteger(s)||!Number.isInteger(i)||!Number.isFinite(o)||a===null||e.set(s,{pid:s,ppid:i,rssBytes:o*1024,cpuSeconds:a})}return e}function Kz(n){let e=n,t=0,r=e.indexOf("-");if(r!==-1){let o=e.slice(0,r);if(o.length===0||(t=Number(o),e=e.slice(r+1),!Number.isInteger(t)||t<0))return null}let s=e.split(":");if(s.length<2||s.length>3)return null;let i=0;for(let o of s){let a=Number(o);if(!Number.isFinite(a)||a<0)return null;i=i*60+a}return t*86400+i}function nv(n,e){let t=new Map;for(let i of n.values()){let o=t.get(i.ppid);o===void 0?t.set(i.ppid,[i.pid]):o.push(i.pid)}let r=new Set;if(!n.has(e))return r;let s=[e];for(;s.length>0;){let i=s.pop();if(!r.has(i)){r.add(i);for(let o of t.get(i)??[])r.has(o)||s.push(o)}}return r}function $M(n,e,t){let r=nv(n.rows,t);if(r.size===0)return null;let s=0,i=0,o=!1;for(let c of r){if(n.rssKnown!==void 0&&!n.rssKnown.has(c))return null;let l=n.rows.get(c);s+=l.rssBytes;let u=e?.rows.get(c);u!==void 0&&(o=!0,i+=Math.max(0,l.cpuSeconds-u.cpuSeconds))}o&&e!==null&&(i+=Gz(n,e,r,t));let a={processes:r.size,rssBytes:s},d=e===null?0:n.at-e.at;return o&&d>0&&(a.cpuFraction=Math.max(0,i)/(d/1e3)),a}function Gz(n,e,t,r){let s=0,i=!1;for(let o of t){let a=n.rows.get(o).childCpuSeconds,d=e.rows.get(o)?.childCpuSeconds;a===void 0||d===void 0||(i=!0,s+=Math.max(0,a-d))}if(!i)return 0;for(let o of nv(e.rows,r)){if(t.has(o))continue;let a=e.rows.get(o);a!==void 0&&a.childCpuSeconds!==void 0&&(s-=a.cpuSeconds+a.childCpuSeconds)}return s}async function Vz(n,e,t){let r=[],s;try{s=await e(`/proc/${n}/task`)}catch{return r}for(let i of s){if(!/^\d+$/.test(i))continue;let o;try{o=await t(`/proc/${n}/task/${i}/children`)}catch{continue}for(let a of o.split(/\s+/)){if(a.length===0)continue;let d=Number(a);Number.isInteger(d)&&d>0&&r.push(d)}}return r}async function Jz(n,e,t){let r=new Map,s=new Set;for(let i of n){if(s.has(i))continue;let o;try{o=await t(`/proc/${i}/stat`)}catch{continue}try{await t(`/proc/${i}/task/${i}/children`)}catch{return null}let a=tv(o);if(a===null)continue;r.set(i,a),s.add(i);let d=[i];for(;d.length>0;){let c=d.pop();for(let l of await Vz(c,e,t)){if(s.has(l))continue;s.add(l);let u;try{u=tv(await t(`/proc/${l}/stat`))}catch{continue}u!==null&&(r.set(l,u),d.push(l))}}}return r}async function Yz(n,e){let t=new Map,r;try{r=await n("/proc")}catch{return t}return await Promise.all(r.map(async s=>{if(/^\d+$/.test(s))try{let i=tv(await e(`/proc/${s}/stat`));i!==null&&t.set(i.pid,i)}catch{}})),t}async function Qz(n,e,t){for(let r of e){let s=n.get(r);if(s!==void 0)try{let i=qz(await t(`/proc/${r}/status`));i!==null&&(s.rssBytes=i)}catch{}}}async function OM(n,e={}){let t=e.platform??process.platform,r=Date.now();if(t==="linux"){let i=e.readDir??(l=>Wz(l)),o=e.readFile??(l=>jz(l,"utf8")),a=await Jz(n,i,o),d=a??await Yz(i,o),c=new Set;if(a!==null)for(let l of d.keys())c.add(l);else for(let l of n)for(let u of nv(d,l))c.add(u);return await Qz(d,c,o),{at:r,rows:d,rssKnown:c}}let s=e.runPs??(async()=>{let{execFile:i}=await import("child_process"),{promisify:o}=await import("util"),{stdout:a}=await o(i)("ps",["-A","-o","pid=,ppid=,rss=,time="],{timeout:5e3,maxBuffer:8*1024*1024});return a});try{return{at:r,rows:zz(await s())}}catch{return{at:r,rows:new Map}}}var MM,FM=q(()=>{"use strict";MM=100});import{readFileSync as Xz}from"fs";import{performance as Zz}from"perf_hooks";import{writeHeapSnapshot as eK}from"v8";import{nanoid as av}from"nanoid";import tK from"terminal-kit";import rv from"fs/promises";import ba from"path";import{execFile as LM}from"child_process";function nK(n){return n.filter(e=>e.status==="open"||e.status==="pending-delivery")}function rK(n){let e=ym(n);if(n.status==="pending-delivery"&&n.userAnswer){let t=e.indexOf(n.userAnswer);if(t!==-1)return t}return 0}function sK(n){let e=new Map,t=[];for(let r of n){let s=r.question,i=e.get(s);i?i.ids.push(r.id):(e.set(s,{representative:r,ids:[r.id]}),t.push(s))}return t.map(r=>e.get(r))}function ym(n){if(n.options&&n.options.length>0){let e=n.options.filter(t=>t!==n.defaultAnswer);return n.options.includes(n.defaultAnswer)?[n.defaultAnswer,...e]:[n.defaultAnswer,...n.options]}return[n.defaultAnswer]}function sv(n){let e=[];for(let t of n){if(!t||typeof t!="object"||Array.isArray(t))continue;let r=t;typeof r.label!="string"||typeof r.since!="number"||e.push({label:r.label,since:r.since,...typeof r.taskId=="string"?{taskId:r.taskId}:{},...typeof r.taskType=="string"?{taskType:r.taskType}:{}})}return e}function iK(n,e){return n.length<=e?n:e<=1?"\u2026":n.slice(0,e-1)+"\u2026"}function KM(n,e,t,r,s=60){let i=n.map((o,a)=>{let d=ym(o.representative),c=e[a]??0,l=t[a]?dv:d[c]??d[0]??"",u=iK(o.representative.question,s);return{id:o.representative.id,kind:"select",label:u,value:l}});return{title:`Open questions (${n.length})`,rows:i,cursor:Math.max(0,Math.min(n.length-1,r)),hints:[{label:"\u2191/\u2193 row"},{label:"\u2190/\u2192 cycle"},{label:"d dismiss",action:"dismiss"},{label:"1-9 jump"},{label:"\u23CE/Esc save",action:"commit"},{label:"^C discard",action:"cancel"}]}}function oK(n,e,t){return n===dv?{type:"dismiss",method:z0,params:{sessionId:t,questionId:e.id}}:{type:"answer",method:q0,params:{sessionId:t,questionId:e.id,answer:n}}}function GM(n,e,t,r,s){let i=[];for(let o=0;o<n.length;o++){let a=n[o];if(!a||!t[o])continue;let d=r[o]?dv:ym(a.representative)[e[o]??0]??"";if(d)for(let c of a.ids){let l={...a.representative,id:c},u=oK(d,l,s);u!==null&&i.push(u)}}return i}function aK(n,e,t,r,s,i,o,a){if(!e||t===null||t.length===0)return{type:"noop"};let d=()=>({type:"save",dispatches:GM(t,r,s,i,a)});if(n.type==="key"&&n.name==="ctrl-q")return d();let c=KM(t,r,i,o);return VM(Xl(c,n),t,r,s,i,a)}function VM(n,e,t,r,s,i){let o=()=>({type:"save",dispatches:GM(e,t,r,s,i)});switch(n.type){case"row":return{type:"row",selectedRow:n.row};case"cycle":{let a=e[n.row];if(!a)return{type:"noop"};let d=ym(a.representative);if(d.length===0)return{type:"noop"};let c=t[n.row]??0;return{type:"cycle",selectedRow:n.row,newValueIndex:(c+n.delta+d.length)%d.length}}case"dismiss":return{type:"dismiss-toggle",selectedRow:n.row};case"advance":case"commit":case"close":return o();case"cancel":return{type:"discard"};default:return{type:"noop"}}}function NM(n){if(!Array.isArray(n))return;let e=xs({sessionUpdate:"config_option_update",configOptions:n});return e&&e.kind==="config-options"?e.options:void 0}function iv(n){switch(n.type){case"send":case"amend":case"queue-edit":case"queue-remove":case"plan-toggle":case"attachment-request":return!0;default:return!1}}function lK(n,e=process.env){if(n!==void 0)return{argv:n,source:"config"};let t=[e.VISUAL,e.EDITOR].find(r=>r!==void 0&&r.trim()!=="");if(t!==void 0)return{argv:t,source:"env"}}function fK(n,e){e.has(n)?e.delete(n):e.add(n)}function pK(n){return n.map(e=>`${e.status??"pending"}\0${e.content}`).join("")}function hK(n){let{stale:e,hasKey:t,prevFingerprint:r,fingerprint:s}=n;return e&&(!t||r!==s)?"fresh":"splice"}function mK(){if(DM)return;DM=!0;let n=e=>e instanceof Error?e.stack??e.message:String(e);process.on("uncaughtException",e=>{fe({src:"uncaughtException",stack:n(e)}),Zi(),process.stderr.write(`
|
|
269
|
+
`)){let r=t.trim().split(/\s+/);if(r.length<4)continue;let s=Number(r[0]),i=Number(r[1]),o=Number(r[2]),a=Kz(r[3]);!Number.isInteger(s)||!Number.isInteger(i)||!Number.isFinite(o)||a===null||e.set(s,{pid:s,ppid:i,rssBytes:o*1024,cpuSeconds:a})}return e}function Kz(n){let e=n,t=0,r=e.indexOf("-");if(r!==-1){let o=e.slice(0,r);if(o.length===0||(t=Number(o),e=e.slice(r+1),!Number.isInteger(t)||t<0))return null}let s=e.split(":");if(s.length<2||s.length>3)return null;let i=0;for(let o of s){let a=Number(o);if(!Number.isFinite(a)||a<0)return null;i=i*60+a}return t*86400+i}function nv(n,e){let t=new Map;for(let i of n.values()){let o=t.get(i.ppid);o===void 0?t.set(i.ppid,[i.pid]):o.push(i.pid)}let r=new Set;if(!n.has(e))return r;let s=[e];for(;s.length>0;){let i=s.pop();if(!r.has(i)){r.add(i);for(let o of t.get(i)??[])r.has(o)||s.push(o)}}return r}function $M(n,e,t){let r=nv(n.rows,t);if(r.size===0)return null;let s=0,i=0,o=!1;for(let c of r){if(n.rssKnown!==void 0&&!n.rssKnown.has(c))return null;let l=n.rows.get(c);s+=l.rssBytes;let u=e?.rows.get(c);u!==void 0&&(o=!0,i+=Math.max(0,l.cpuSeconds-u.cpuSeconds))}o&&e!==null&&(i+=Gz(n,e,r,t));let a={processes:r.size,rssBytes:s},d=e===null?0:n.at-e.at;return o&&d>0&&(a.cpuFraction=Math.max(0,i)/(d/1e3)),a}function Gz(n,e,t,r){let s=0,i=!1;for(let o of t){let a=n.rows.get(o).childCpuSeconds,d=e.rows.get(o)?.childCpuSeconds;a===void 0||d===void 0||(i=!0,s+=Math.max(0,a-d))}if(!i)return 0;for(let o of nv(e.rows,r)){if(t.has(o))continue;let a=e.rows.get(o);a!==void 0&&a.childCpuSeconds!==void 0&&(s-=a.cpuSeconds+a.childCpuSeconds)}return s}async function Vz(n,e,t){let r=[],s;try{s=await e(`/proc/${n}/task`)}catch{return r}for(let i of s){if(!/^\d+$/.test(i))continue;let o;try{o=await t(`/proc/${n}/task/${i}/children`)}catch{continue}for(let a of o.split(/\s+/)){if(a.length===0)continue;let d=Number(a);Number.isInteger(d)&&d>0&&r.push(d)}}return r}async function Jz(n,e,t){let r=new Map,s=new Set;for(let i of n){if(s.has(i))continue;let o;try{o=await t(`/proc/${i}/stat`)}catch{continue}try{await t(`/proc/${i}/task/${i}/children`)}catch{return null}let a=tv(o);if(a===null)continue;r.set(i,a),s.add(i);let d=[i];for(;d.length>0;){let c=d.pop();for(let l of await Vz(c,e,t)){if(s.has(l))continue;s.add(l);let u;try{u=tv(await t(`/proc/${l}/stat`))}catch{continue}u!==null&&(r.set(l,u),d.push(l))}}}return r}async function Yz(n,e){let t=new Map,r;try{r=await n("/proc")}catch{return t}return await Promise.all(r.map(async s=>{if(/^\d+$/.test(s))try{let i=tv(await e(`/proc/${s}/stat`));i!==null&&t.set(i.pid,i)}catch{}})),t}async function Qz(n,e,t){for(let r of e){let s=n.get(r);if(s!==void 0)try{let i=qz(await t(`/proc/${r}/status`));i!==null&&(s.rssBytes=i)}catch{}}}async function OM(n,e={}){let t=e.platform??process.platform,r=Date.now();if(t==="linux"){let i=e.readDir??(l=>Wz(l)),o=e.readFile??(l=>jz(l,"utf8")),a=await Jz(n,i,o),d=a??await Yz(i,o),c=new Set;if(a!==null)for(let l of d.keys())c.add(l);else for(let l of n)for(let u of nv(d,l))c.add(u);return await Qz(d,c,o),{at:r,rows:d,rssKnown:c}}let s=e.runPs??(async()=>{let{execFile:i}=await import("child_process"),{promisify:o}=await import("util"),{stdout:a}=await o(i)("ps",["-A","-o","pid=,ppid=,rss=,time="],{timeout:5e3,maxBuffer:8*1024*1024});return a});try{return{at:r,rows:zz(await s())}}catch{return{at:r,rows:new Map}}}var MM,FM=q(()=>{"use strict";MM=100});import{readFileSync as Xz}from"fs";import{performance as Zz}from"perf_hooks";import{writeHeapSnapshot as eK}from"v8";import{nanoid as av}from"nanoid";import tK from"terminal-kit";import rv from"fs/promises";import ba from"path";import{execFile as LM}from"child_process";function nK(n){return n.filter(e=>e.status==="open"||e.status==="pending-delivery")}function rK(n){let e=ym(n);if(n.status==="pending-delivery"&&n.userAnswer){let t=e.indexOf(n.userAnswer);if(t!==-1)return t}return 0}function sK(n){let e=new Map,t=[];for(let r of n){let s=r.question,i=e.get(s);i?i.ids.push(r.id):(e.set(s,{representative:r,ids:[r.id]}),t.push(s))}return t.map(r=>e.get(r))}function ym(n){if(n.options&&n.options.length>0){let e=n.options.filter(t=>t!==n.defaultAnswer);return n.options.includes(n.defaultAnswer)?[n.defaultAnswer,...e]:[n.defaultAnswer,...n.options]}return[n.defaultAnswer]}function sv(n){let e=[];for(let t of n){if(!t||typeof t!="object"||Array.isArray(t))continue;let r=t;typeof r.label!="string"||typeof r.since!="number"||e.push({label:r.label,since:r.since,...typeof r.taskId=="string"?{taskId:r.taskId}:{},...typeof r.taskType=="string"?{taskType:r.taskType}:{}})}return e}function iK(n,e){return n.length<=e?n:e<=1?"\u2026":n.slice(0,e-1)+"\u2026"}function KM(n,e,t,r,s=60){let i=n.map((o,a)=>{let d=ym(o.representative),c=e[a]??0,l=t[a]?dv:d[c]??d[0]??"",u=iK(o.representative.question,s);return{id:o.representative.id,kind:"select",label:u,value:l}});return{title:`Open questions (${n.length})`,rows:i,cursor:Math.max(0,Math.min(n.length-1,r)),hints:[{label:"\u2191/\u2193 row"},{label:"\u2190/\u2192 cycle"},{label:"d dismiss",action:"dismiss"},{label:"1-9 jump"},{label:"\u23CE/Esc save",action:"commit"},{label:"^C discard",action:"cancel"}]}}function oK(n,e,t){return n===dv?{type:"dismiss",method:z0,params:{sessionId:t,questionId:e.id}}:{type:"answer",method:q0,params:{sessionId:t,questionId:e.id,answer:n}}}function GM(n,e,t,r,s){let i=[];for(let o=0;o<n.length;o++){let a=n[o];if(!a||!t[o])continue;let d=r[o]?dv:ym(a.representative)[e[o]??0]??"";if(d)for(let c of a.ids){let l={...a.representative,id:c},u=oK(d,l,s);u!==null&&i.push(u)}}return i}function aK(n,e,t,r,s,i,o,a){if(!e||t===null||t.length===0)return{type:"noop"};let d=()=>({type:"save",dispatches:GM(t,r,s,i,a)});if(n.type==="key"&&n.name==="ctrl-q")return d();let c=KM(t,r,i,o);return VM(Xl(c,n),t,r,s,i,a)}function VM(n,e,t,r,s,i){let o=()=>({type:"save",dispatches:GM(e,t,r,s,i)});switch(n.type){case"row":return{type:"row",selectedRow:n.row};case"cycle":{let a=e[n.row];if(!a)return{type:"noop"};let d=ym(a.representative);if(d.length===0)return{type:"noop"};let c=t[n.row]??0;return{type:"cycle",selectedRow:n.row,newValueIndex:(c+n.delta+d.length)%d.length}}case"dismiss":return{type:"dismiss-toggle",selectedRow:n.row};case"advance":case"commit":case"close":return o();case"cancel":return{type:"discard"};default:return{type:"noop"}}}function NM(n){if(!Array.isArray(n))return;let e=xs({sessionUpdate:"config_option_update",configOptions:n});return e&&e.kind==="config-options"?e.options:void 0}function iv(n){switch(n.type){case"send":case"amend":case"queue-edit":case"queue-remove":case"plan-toggle":case"attachment-request":return!0;default:return!1}}function lK(n,e=process.env){if(n!==void 0)return{argv:n,source:"config"};let t=[e.HYDRA_EDITOR,e.VISUAL,e.EDITOR].find(r=>r!==void 0&&r.trim()!=="");if(t!==void 0)return{argv:t,source:"env"}}function fK(n,e){e.has(n)?e.delete(n):e.add(n)}function pK(n){return n.map(e=>`${e.status??"pending"}\0${e.content}`).join("")}function hK(n){let{stale:e,hasKey:t,prevFingerprint:r,fingerprint:s}=n;return e&&(!t||r!==s)?"fresh":"splice"}function mK(){if(DM)return;DM=!0;let n=e=>e instanceof Error?e.stack??e.message:String(e);process.on("uncaughtException",e=>{fe({src:"uncaughtException",stack:n(e)}),Zi(),process.stderr.write(`
|
|
270
270
|
uncaught: ${n(e)}
|
|
271
271
|
`),process.exit(1)}),process.on("unhandledRejection",e=>{fe({src:"unhandledRejection",stack:n(e)}),Zi(),process.stderr.write(`
|
|
272
272
|
unhandled rejection: ${n(e)}
|
|
@@ -288,7 +288,7 @@ connection lost: ${g.message}
|
|
|
288
288
|
`),N(g?1:0)}),process.on("SIGINT",xm),mm.length>0&&(C.appendLines(mm.map(g=>({prefix:" ",body:`theme: ${g}`,bodyStyle:"notice-error"}))),mm=[]),yu.length>0&&(C.notify(yu.join(" \xB7 "),1e4),yu=[]),d.sessionId==="__new__"&&(r.initialPrompt||r.initialAttachments&&r.initialAttachments.length>0)&&vt(r.initialPrompt??"",r.initialAttachments??[]),await Tu}async function BM(n,e,t,r,s,i){let o=r.cwd??process.cwd();if(r.sessionId){let a={sessionId:r.sessionId,agentId:r.agentId??"",cwd:o};return r.resumeHint!==void 0&&(a.resumeHint=r.resumeHint),r.resolved!==void 0&&(a.resolved=r.resolved),r.jumpToRecordedAt!==void 0&&(a.jumpToRecordedAt=r.jumpToRecordedAt),a}if(r.forceNew)return await UM(n,t,r,i)!=="ok"?null:HM(r,o,e);if(r.resume){let a=eP();if(a){let u=(await kr(t,{all:!0,includeNonInteractive:!0})).find(f=>f.sessionId===a);if(u)return{sessionId:u.sessionId,agentId:u.agentId??"",cwd:u.cwd??o,resolved:u}}let d=await kr(t,{cwd:o,all:!0}),c=Wp(d,o);return c?{sessionId:c.sessionId,agentId:c.agentId??"",cwd:o,resolved:c}:(D(n,"cli-warn",`No sessions found for ${o}.
|
|
289
289
|
`),null)}for(;;){let a=await kr(t,{includeNonInteractive:!0}),d=[];try{d=await Xo(t)}catch{}let c=b=>mu({cwd:b,config:e,prefs:i,...r.explicitAgentId!==void 0?{explicitAgentId:r.explicitAgentId}:{},...r.agentId!==void 0?{fallbackAgentId:r.agentId}:{},availableAgents:d}),l=b=>mu({cwd:b,config:e,prefs:i,...r.explicitAgentId!==void 0?{explicitAgentId:r.explicitAgentId}:{},availableAgents:d}),{agentId:u,model:f}=await c(o),p=await Gk(n,{cwd:o,sessions:a,config:e,target:t,prefs:s,...r.pickerSelect!==void 0?{currentSessionId:r.pickerSelect}:{},...u?{composerAgentId:u}:{},...f?{composerModel:f}:{},...d.length>0?{availableAgents:d}:{},onComposerAgentChange:(b,S)=>{wu(i,b,S)},onCwdChange:l,...r.initialPrompt!==void 0?{initialPrompt:r.initialPrompt}:{},...r.initialAttachments&&r.initialAttachments.length>0?{initialAttachments:r.initialAttachments}:{}});if(p.kind==="abort"||p.kind==="exit")return null;if(p.kind==="new"){p.agentId!==void 0&&(r.agentId=p.agentId,wu(i,p.agentId,p.model)),p.model!==void 0&&(r.model=p.model),p.prompt!==void 0&&(r.initialPrompt=p.prompt),p.attachments&&p.attachments.length>0&&(r.initialAttachments=p.attachments),p.cwd!==void 0&&(o=p.cwd,r.cwd=p.cwd);let b=p.installStatus,S=await UM(n,t,r,i,()=>{b&&(b.finalize(),b=void 0)});if(S==="cancel")return b&&b.finalize(),null;if(S==="back"){b&&b.finalize();continue}let R=HM(r,o,e);return b&&(R.installStatus=b),R}if(p.kind==="fork"){let b=await XM(n,t,p,a);if(b.kind==="cancel")return null;if(b.kind==="back")continue;return b.ctx}r.readonly=p.readonly===!0;let h=p.installStatus,m=()=>{h&&(h.finalize(),h=void 0)},y=a.find(b=>b.sessionId===p.sessionId);if(y!==void 0&&!!y.importedFromMachine&&!y.upstreamSessionId&&!r.readonly){m();let b=await YM(n,t,y,p,r);if(b.kind==="cancel")return null;if(b.kind==="back")continue;return b.ctx}if(t.isLocal&&y&&!y.importedFromMachine&&!r.readonly&&!(await Ql(y.cwd)).ok){m();let S=await ya(n,y,{defaultCwd:yt(e.defaultCwd),title:"Working directory missing \u2014 choose cwd",intro:"This session's working directory no longer exists. Pick a new one:"});if(S.kind==="cancel")return null;if(S.kind==="back")continue;let R=p.agentId??y.agentId??"",I={sessionId:p.sessionId,agentId:R,cwd:S.path,resumeHint:{agentId:R,cwd:S.path,upstreamSessionId:""}};return p.jumpToRecordedAt!==void 0&&(I.jumpToRecordedAt=p.jumpToRecordedAt),I}let k={sessionId:p.sessionId,agentId:p.agentId??"",cwd:o};return h&&(k.installStatus=h),y!==void 0&&(k.resolved=y),p.jumpToRecordedAt!==void 0&&(k.jumpToRecordedAt=p.jumpToRecordedAt),k}}async function YM(n,e,t,r,s){for(;;){let i=await OP(n,t);if(i==="cancel")return{kind:"cancel"};if(i==="back")return{kind:"back"};if(i==="view"){s.readonly=!0;let c=r.agentId??t.agentId??"",l={sessionId:r.sessionId,agentId:c,cwd:t.cwd};return r.jumpToRecordedAt!==void 0&&(l.jumpToRecordedAt=r.jumpToRecordedAt),{kind:"ctx",ctx:l}}let o=await QM(n,e,r.agentId??t.agentId??"");if(o.kind==="cancel")return{kind:"cancel"};if(o.kind==="back")continue;let a=await ya(n,t);if(a.kind==="cancel")return{kind:"cancel"};if(a.kind==="back")continue;let d=o.agentId;return{kind:"ctx",ctx:{sessionId:r.sessionId,agentId:d,cwd:a.path,resumeHint:{agentId:d,cwd:a.path,upstreamSessionId:""}}}}}async function QM(n,e,t){if(!t)return{kind:"ok",agentId:t,changed:!1};let r;try{r=await Xo(e)}catch{return{kind:"ok",agentId:t,changed:!1}}if(r.length===0||r.some(i=>i.id===t))return{kind:"ok",agentId:t,changed:!1};let s=await Zl(n,r,t,{title:"Agent not available here",intro:`Source agent "${t}" isn't installed on this machine \u2014 pick a local agent to fork to:`});return s.kind==="cancel"?{kind:"cancel"}:s.kind==="back"?{kind:"back"}:{kind:"ok",agentId:s.agentId,changed:!0}}async function XM(n,e,t,r){let s=r.find(u=>u.sessionId===t.sourceSessionId),i=!!t.sourceImportedFromMachine&&!t.sourceUpstreamSessionId,o=t.sourceCwd,a=await QM(n,e,t.sourceAgentId??s?.agentId??"");if(a.kind==="cancel")return{kind:"cancel"};if(a.kind==="back")return{kind:"back"};let d=a.changed?a.agentId:void 0;if(i){if(!s)return{kind:"back"};let u=await ya(n,s);if(u.kind==="cancel")return{kind:"cancel"};if(u.kind==="back")return{kind:"back"};o=u.path}let c=d??t.sourceAgentId??"",l;try{l=await Up(e,t.sourceSessionId,{...i?{cwd:o}:{},...d?{agentId:d}:{}})}catch(u){return D(n,"notice-error",`
|
|
290
290
|
fork failed: ${u.message}
|
|
291
|
-
`),{kind:"cancel"}}return{kind:"ctx",ctx:{sessionId:l.sessionId,agentId:c,cwd:o,isFreshFork:!0,...i?{resumeHint:{agentId:c,cwd:o,upstreamSessionId:""}}:{}}}}function HM(n,e,t){return{sessionId:"__new__",agentId:n.agentId??t.defaultAgent??"",cwd:e}}function wu(n,e,t){if(n.lastChosenAgent=e,t===void 0){delete n.lastChosenModel;return}n.lastChosenModel=t}async function UM(n,e,t,r,s){if(t.agentId||await fg())return"ok";let i;try{i=await Xo(e)}catch{return"ok"}if(i.length===0)return"ok";s&&s();let o=await Ue(),a=r.lastChosenAgent??o.defaultAgent,d=await Zl(n,i,a);if(d.kind==="cancel")return"cancel";if(d.kind==="back")return"back";t.agentId=d.agentId;let c=i.find(l=>l.id===d.agentId);if(wu(r,d.agentId,yr(o.sessionDefaults,{id:d.agentId,extendsChain:c?.extendsChain})?.value.model),d.persist)try{await _i(d.agentId)}catch{}return"ok"}function bK(n,e){fe({src:"session/update",update:n,event:e===null?null:{kind:e.kind}})}var mm,yu,gm,ka,Er,WM,jM,qM,zM,dv,dK,cK,uK,DM,gK,ZM=q(()=>{"use strict";Do();on();hb();st();Ob();Eo();Qo();Bd();td();K0();br();ve();gs();Po();Xn();gh();wb();np();$l();J0();Z0();tE();nE();GP();zk();dh();jk();Wk();Bb();JP();pb();QP();Hk();ww();Uh();ZP();tk();nM();Vk();zh();pk();Kb();Vb();Mh();Oh();sM();bk();pa();Jl();mk();oM();im();qk();lM();ri();ai();pn();dd();IM();Xk();$o();aa();xk();Sk();CM();TM();sk();PM();FM();mm=[],yu=[],gm=[],ka="terminal",jM=null,zM=null;dv="dismiss";dK=12e4,cK=12e3;uK=[["Alt+Enter","newline in prompt"],["Shift+Tab","cycle agent modes (plan / accept-edits / etc.)"],["Tab","indent \xB7 slash-command / file-path completion"],null,["\u2191 / \u2193","prompt history \xB7 queue navigation"],["\u2190/\u2192 Home/End","cursor movement"],["Alt+B / Alt+F","word back / forward"],["^A / ^E","line start / end"],["^W / ^U / ^K","kill word / line / to end"],["^Y","yank last kill"],null,["^P","switch session (picker)"],["Alt+N / Alt+Tab","next warm session"],["Alt+P","previous warm session"],["^T","show / hide thoughts"],["^S","show / hide sidebar (with an empty draft; amends otherwise)"],["^V","paste image from clipboard"],["^O","session options (tools \xB7 plan \xB7 thoughts \xB7 diffs \xB7 mouse \xB7 enter \xB7 sidebar)"],null,["^R","history reverse search (^S walks forward once engaged)"],["PgUp / PgDn","scroll scrollback"],["Alt+PgUp / Alt+PgDn","jump to previous / next prompt"],["Mouse wheel","scroll scrollback (when mouse capture is on)"],["Middle-click","paste PRIMARY selection (terminal-style)"],["Double-click","open file under cursor / sidebar file row (tui.openFileCommand, else $VISUAL/$EDITOR \u2014 a $EDITOR takes over the terminal until you quit it)"],["Double-click bar","cwd opens \xB7 title renames \xB7 agent/model/mode pick \xB7 else copy"],["Click in a modal","row picks / cycles it \xB7 hint words act \xB7 wheel walks the list"],["Right-click","extend selection to click (drag past top/bottom to autoscroll)"],["^X","edit prompt in $VISUAL/$EDITOR"],null,["^C","cancel turn (twice to exit)"],["Esc","cancel turn and prefill draft"],["^D","exit (or delete-forward in prompt)"],["^L","force full redraw"],["^G","toggle this help"]];DM=!1;gK=2});var e_={};ko(e_,{runTui:()=>JM});var t_=q(()=>{"use strict";ZM()});import{readFileSync as kK}from"fs";import{fileURLToPath as vK}from"url";import{dirname as SK,resolve as IK}from"path";var Dv=new Set(["all","dangerously-skip-permissions","detach","diff","disabled","drip","files","fold","follow","force","foreground","help","include-cat","info","inactive","json","new","no-color","no-dangerously-skip-permissions","no-from-note","no-pager","no-terminal-host-launcher","no-wait","tools","raw","reattach","readonly","remove","replace","rotate-token","terminal-host-launcher","verbose","version","workspace"]),F_=new Set(["agent","args","columns","command","cwd","dir","drip-speed","env","extends","from","from-label","from-session","host","jump-to-recorded-at","last","message","into","model","name","out","prompt","session","since","stream-bytes","stream-threshold","tail","terminal-host","timeout","to"]);function Bv(n){for(let e of Object.keys(n))if(!Dv.has(e)&&!F_.has(e))return e}function Jm(n){let e=[],t={},r=0;for(;r<n.length;){let s=n[r];if(s===void 0)break;if(s.startsWith("--")){let i=s.indexOf("=");if(i!==-1){let d=s.slice(2,i);t[d]=s.slice(i+1),r+=1;continue}let o=s.slice(2);if(Dv.has(o)){t[o]=!0,r+=1;continue}let a=n[r+1];if(a!==void 0&&!a.startsWith("--")){t[o]=a,r+=2;continue}t[o]=!0,r+=1;continue}e.push(s),r+=1}return{positional:e,flags:t}}function L_(n,e){let t=n[e];if(typeof t=="string")return t}function Ha(n,e){return n[e]===!0||n[e]==="true"}var N_="HYDRA_ACP_";function D_(n){return N_+n.toUpperCase().replace(/-/g,"_")}function lt(n,e){let t=L_(n,e);return t!==void 0?t:process.env[D_(e)]}st();Eo();async function pS(n,e){let t=typeof n=="string"&&n.trim().length>0?n.trim():void 0;if(t===void 0)return;if(t.startsWith("hydra://")){let i=mg(t);return{target:await uS(i,{allowPrompt:e.allowPrompt}),sessionId:i.sessionId,fromUrl:!0}}let r=await Ue();return{target:await sn(r),sessionId:t,fromUrl:!1}}function Rg(n){let e=n.session;if(typeof e=="string"&&e.length>0)return e;let t=process.env.HYDRA_ACP_TARGET_SESSION;if(typeof t=="string"&&t.length>0)return t}Po();ve();st();Zs();import*as yS from"fs/promises";Hr();async function wS(n){if(await yS.mkdir(B.home(),{recursive:!0}),await Xa(),!await ja()){let t=Wa();await So(t),process.stdout.write(`Initialized ${B.authToken()}
|
|
291
|
+
`),{kind:"cancel"}}return{kind:"ctx",ctx:{sessionId:l.sessionId,agentId:c,cwd:o,isFreshFork:!0,...i?{resumeHint:{agentId:c,cwd:o,upstreamSessionId:""}}:{}}}}function HM(n,e,t){return{sessionId:"__new__",agentId:n.agentId??t.defaultAgent??"",cwd:e}}function wu(n,e,t){if(n.lastChosenAgent=e,t===void 0){delete n.lastChosenModel;return}n.lastChosenModel=t}async function UM(n,e,t,r,s){if(t.agentId||await fg())return"ok";let i;try{i=await Xo(e)}catch{return"ok"}if(i.length===0)return"ok";s&&s();let o=await Ue(),a=r.lastChosenAgent??o.defaultAgent,d=await Zl(n,i,a);if(d.kind==="cancel")return"cancel";if(d.kind==="back")return"back";t.agentId=d.agentId;let c=i.find(l=>l.id===d.agentId);if(wu(r,d.agentId,yr(o.sessionDefaults,{id:d.agentId,extendsChain:c?.extendsChain})?.value.model),d.persist)try{await _i(d.agentId)}catch{}return"ok"}function bK(n,e){fe({src:"session/update",update:n,event:e===null?null:{kind:e.kind}})}var mm,yu,gm,ka,Er,WM,jM,qM,zM,dv,dK,cK,uK,DM,gK,ZM=q(()=>{"use strict";Do();on();hb();st();Ob();Eo();Qo();Bd();td();K0();br();ve();gs();Po();Xn();gh();wb();np();$l();J0();Z0();tE();nE();GP();zk();dh();jk();Wk();Bb();JP();pb();QP();Hk();ww();Uh();ZP();tk();nM();Vk();zh();pk();Kb();Vb();Mh();Oh();sM();bk();pa();Jl();mk();oM();im();qk();lM();ri();ai();pn();dd();IM();Xk();$o();aa();xk();Sk();CM();TM();sk();PM();FM();mm=[],yu=[],gm=[],ka="terminal",jM=null,zM=null;dv="dismiss";dK=12e4,cK=12e3;uK=[["Alt+Enter","newline in prompt"],["Shift+Tab","cycle agent modes (plan / accept-edits / etc.)"],["Tab","indent \xB7 slash-command / file-path completion"],null,["\u2191 / \u2193","prompt history \xB7 queue navigation"],["\u2190/\u2192 Home/End","cursor movement"],["Alt+B / Alt+F","word back / forward"],["^A / ^E","line start / end"],["^W / ^U / ^K","kill word / line / to end"],["^Y","yank last kill"],null,["^P","switch session (picker)"],["Alt+N / Alt+Tab","next warm session"],["Alt+P","previous warm session"],["^T","show / hide thoughts"],["^S","show / hide sidebar (with an empty draft; amends otherwise)"],["^V","paste image from clipboard"],["^O","session options (tools \xB7 plan \xB7 thoughts \xB7 diffs \xB7 mouse \xB7 enter \xB7 sidebar)"],null,["^R","history reverse search (^S walks forward once engaged)"],["PgUp / PgDn","scroll scrollback"],["Alt+PgUp / Alt+PgDn","jump to previous / next prompt"],["Mouse wheel","scroll scrollback (when mouse capture is on)"],["Middle-click","paste PRIMARY selection (terminal-style)"],["Double-click","open file under cursor / sidebar file row (tui.openFileCommand, else $HYDRA_EDITOR/$VISUAL/$EDITOR \u2014 a $EDITOR takes over the terminal until you quit it)"],["Double-click bar","cwd opens \xB7 title renames \xB7 agent/model/mode pick \xB7 else copy"],["Click in a modal","row picks / cycles it \xB7 hint words act \xB7 wheel walks the list"],["Right-click","extend selection to click (drag past top/bottom to autoscroll)"],["^X","edit prompt in $HYDRA_EDITOR/$VISUAL/$EDITOR"],null,["^C","cancel turn (twice to exit)"],["Esc","cancel turn and prefill draft"],["^D","exit (or delete-forward in prompt)"],["^L","force full redraw"],["^G","toggle this help"]];DM=!1;gK=2});var e_={};ko(e_,{runTui:()=>JM});var t_=q(()=>{"use strict";ZM()});import{readFileSync as kK}from"fs";import{fileURLToPath as vK}from"url";import{dirname as SK,resolve as IK}from"path";var Dv=new Set(["all","dangerously-skip-permissions","detach","diff","disabled","drip","files","fold","follow","force","foreground","help","include-cat","info","inactive","json","new","no-color","no-dangerously-skip-permissions","no-from-note","no-pager","no-terminal-host-launcher","no-wait","tools","raw","reattach","readonly","remove","replace","rotate-token","terminal-host-launcher","verbose","version","workspace"]),F_=new Set(["agent","args","columns","command","cwd","dir","drip-speed","env","extends","from","from-label","from-session","host","jump-to-recorded-at","last","message","into","model","name","out","prompt","session","since","stream-bytes","stream-threshold","tail","terminal-host","timeout","to"]);function Bv(n){for(let e of Object.keys(n))if(!Dv.has(e)&&!F_.has(e))return e}function Jm(n){let e=[],t={},r=0;for(;r<n.length;){let s=n[r];if(s===void 0)break;if(s.startsWith("--")){let i=s.indexOf("=");if(i!==-1){let d=s.slice(2,i);t[d]=s.slice(i+1),r+=1;continue}let o=s.slice(2);if(Dv.has(o)){t[o]=!0,r+=1;continue}let a=n[r+1];if(a!==void 0&&!a.startsWith("--")){t[o]=a,r+=2;continue}t[o]=!0,r+=1;continue}e.push(s),r+=1}return{positional:e,flags:t}}function L_(n,e){let t=n[e];if(typeof t=="string")return t}function Ha(n,e){return n[e]===!0||n[e]==="true"}var N_="HYDRA_ACP_";function D_(n){return N_+n.toUpperCase().replace(/-/g,"_")}function lt(n,e){let t=L_(n,e);return t!==void 0?t:process.env[D_(e)]}st();Eo();async function pS(n,e){let t=typeof n=="string"&&n.trim().length>0?n.trim():void 0;if(t===void 0)return;if(t.startsWith("hydra://")){let i=mg(t);return{target:await uS(i,{allowPrompt:e.allowPrompt}),sessionId:i.sessionId,fromUrl:!0}}let r=await Ue();return{target:await sn(r),sessionId:t,fromUrl:!1}}function Rg(n){let e=n.session;if(typeof e=="string"&&e.length>0)return e;let t=process.env.HYDRA_ACP_TARGET_SESSION;if(typeof t=="string"&&t.length>0)return t}Po();ve();st();Zs();import*as yS from"fs/promises";Hr();async function wS(n){if(await yS.mkdir(B.home(),{recursive:!0}),await Xa(),!await ja()){let t=Wa();await So(t),process.stdout.write(`Initialized ${B.authToken()}
|
|
292
292
|
Service token: ${t}
|
|
293
293
|
`);return}if(Ha(n,"rotate-token")){let t=Wa();try{let r=await Oe("/v1/auth/rotate-token",{method:"POST",body:{token:t},rethrowNetworkError:!0});r.ok||(process.stderr.write(`Daemon rejected the token rotation (HTTP ${r.status}). Not writing the new token to disk \u2014 that would leave it out of sync with what the running daemon still accepts.
|
|
294
294
|
`),process.exit(1)),await So(t),process.stdout.write(`Rotated token in ${B.authToken()}
|