makecoder 2.0.87 → 2.0.89

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.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env -S node --no-warnings=DEP0040
2
2
  const require = (await import('node:module')).createRequire(import.meta.url); const __chunk_filename = (await import('node:url')).fileURLToPath(import.meta.url); const __chunk_dirname = (await import('node:path')).dirname(__chunk_filename);
3
- import{$ as Ma,A as va,Ba as Fa,C as rs,Ca as Ot,D as Aa,Da as Ua,E as dn,Ea as Ga,Fa as za,Ga as Wa,Ia as ue,Ja as ls,Ka as un,La as Rn,Ma as st,Na as qa,Oa as Ha,Pa as Ba,Qa as cu,Ra as Va,Sa as Ya,T as Oa,Ta as cs,U as Ia,Ua as Xa,Va as Ka,W as vo,Wa as Ja,Xa as mn,Y as Ft,_ as Ta,a as _o,ab as Za,ad as sl,bd as ol,ca as ka,cb as Qa,cd as il,da as Je,dd as rl,eb as el,ed as ds,fa as Pa,fb as tl,ga as te,ha as Ra,hd as al,ia as kn,ja as Ao,jd as ll,ka as ut,la as Na,ma as de,na as $a,nb as Oo,pa as La,qa as wt,ra as Da,sa as as,ta as Pn,ua as be,wa as ja,xa as Oe,z as _a}from"./chunk-FEX45IWO.js";import{$l as jt,$m as xa,Af as Dr,Ak as ea,Al as nt,Bc as kr,Bm as Me,Cb as Ir,Ci as ts,Ck as ta,Db as go,Dj as Ae,Ec as Pr,Ej as De,Ff as jr,Fi as Jr,Gm as ya,Hg as Wr,If as wo,Ih as es,Im as os,Jh as Yr,Jm as lu,Km as ba,Li as vt,Mf as Fr,Mm as wa,Pe as bo,Tl as oa,Wg as Ke,Wh as Xr,Wl as Co,Xf as Ur,Xg as qr,Yk as ln,Zk as ns,Zl as ia,_l as At,am as Eo,b as lr,be as Mn,bm as ra,fd as Rr,fe as Xe,fh as Vr,fj as xo,gc as bt,gg as Gr,gj as Zr,hc as pe,hm as aa,ia as vr,ic as Tr,im as la,ja as Ar,jc as Qn,jn as cn,ka as St,kn as Ca,md as Nr,mn as Ea,nm as ca,nn as is,oe as Lr,om as da,pe as yo,pm as ua,qm as ma,qn as Sa,rm as pa,s as rn,sg as zr,sm as So,t as wr,tm as fa,ud as $r,ul as na,vl as sa,wd as Ye,x as xr,xc as Mr,xi as Kr,xm as ha,yc as Tn,ym as ss,zb as Or,zf as i,zg as _t,zm as ga}from"./chunk-6V5V2R7S.js";import{$ as gt,$d as Ve,Aa as co,Ad as br,Ba as uo,C as Le,Ca as mo,Da as po,Fa as On,Ga as Xn,Gd as Jn,Ha as hr,Id as B,Jd as Zn,Kd as Cr,La as gr,Md as In,Nd as fe,Od as an,Pa as yt,Pd as Er,Qd as Sr,Rd as _r,X as me,Y as We,Yc as fo,Zb as yr,a as Pe,b as y,ba as ct,be as q,c as cr,d as dr,de as Hr,ee as Br,la as Yn,pa as ur,se as Qr,tc as Kn,wa as mr,xa as pr,ya as fr,za as lo,zd as ho}from"./chunk-5OV5S6OY.js";import"./chunk-TWIC4BKL.js";import{c as nl}from"./chunk-LP5C4GJE.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import{a as Ge,c as ar,e as ze}from"./chunk-YUXORC52.js";var Hc=ar((Bx,hi)=>{"use strict";var Gc=Ge("child_process").exec,zc=Ge("child_process").execSync,Rs=Ge("fs"),Uc=Ge("path"),Wc=Rs.access,qc=Rs.accessSync,xn=Rs.constants||Rs,pi=process.platform=="win32",Ym=function(n,e){Wc(n,xn.F_OK,function(t){e(!t)})},Xm=function(n){try{return qc(n,xn.F_OK),!1}catch{return!0}},Km=function(n,e){Wc(n,xn.F_OK|xn.X_OK,function(t){e(null,!t)})},Jm=function(n){try{return qc(n,xn.F_OK|xn.X_OK),!0}catch{return!1}},Zm=function(n,e,t){Ym(n,function(s){if(!s){var o=Gc("command -v "+e+" 2>/dev/null && { echo >&1 "+e+"; exit 0; }",function(r,a,l){t(null,!!a)});return}Km(n,t)})},Qm=function(n,e,t){if(!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(n)){t(null,!1);return}var s=Gc("where "+e,function(o){o!==null?t(null,!1):t(null,!0)})},ep=function(n,e){if(Xm(n))try{var t=zc("command -v "+e+" 2>/dev/null && { echo >&1 "+e+"; exit 0; }");return!!t}catch{return!1}return Jm(n)},tp=function(n,e,t){if(!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(n))return!1;try{var s=zc("where "+e,{stdio:[]});return!!s}catch{return!1}},fi=function(n){return/[^A-Za-z0-9_\/:=-]/.test(n)&&(n="'"+n.replace(/'/g,"'\\''")+"'",n=n.replace(/^(?:'')+/g,"").replace(/\\'''/g,"\\'")),n};pi&&(fi=function(n){var e=/[\\]/.test(n);if(e){var t='"'+Uc.dirname(n)+'"',s='"'+Uc.basename(n)+'"';return t+":"+s}return'"'+n+'"'});hi.exports=function n(e,t){var s=fi(e);if(!t&&typeof Promise<"u")return new Promise(function(o,r){n(e,function(a,l){l?o(e):r(a)})});pi?Qm(e,s,t):Zm(e,s,t)};hi.exports.sync=function(n){var e=fi(n);return pi?tp(n,e):ep(n,e)}});var Vc=ar((Vx,Bc)=>{Bc.exports=Hc()});import{notStrictEqual as Nu,strictEqual as $u}from"assert";var du={right:hu,center:gu},uu=0,us=1,mu=2,ms=3,Io=class{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){let t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]=="string")return this.applyLayoutDSL(e[0]);let t=e.map(s=>typeof s=="string"?this.colFromString(s):s);return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]=="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){let t=e.split(`
3
+ import{$ as Ma,A as va,Ba as Fa,C as rs,Ca as Ot,D as Aa,Da as Ua,E as dn,Ea as Ga,Fa as za,Ga as Wa,Ia as ue,Ja as ls,Ka as un,La as Rn,Ma as st,Na as qa,Oa as Ha,Pa as Ba,Qa as cu,Ra as Va,Sa as Ya,T as Oa,Ta as cs,U as Ia,Ua as Xa,Va as Ka,W as vo,Wa as Ja,Xa as mn,Y as Ft,_ as Ta,a as _o,ab as Za,ad as sl,bd as ol,ca as ka,cb as Qa,cd as il,da as Je,dd as rl,eb as el,ed as ds,fa as Pa,fb as tl,ga as te,ha as Ra,hd as al,ia as kn,ja as Ao,jd as ll,ka as ut,la as Na,ma as de,na as $a,nb as Oo,pa as La,qa as wt,ra as Da,sa as as,ta as Pn,ua as be,wa as ja,xa as Oe,z as _a}from"./chunk-FMLNMYSS.js";import{$l as jt,$m as xa,Af as Dr,Ak as ea,Al as nt,Bc as kr,Bm as Me,Cb as Ir,Ci as ts,Ck as ta,Db as go,Dj as Ae,Ec as Pr,Ej as De,Ff as jr,Fi as Jr,Gm as ya,Hg as Wr,If as wo,Ih as es,Im as os,Jh as Yr,Jm as lu,Km as ba,Li as vt,Mf as Fr,Mm as wa,Pe as bo,Tl as oa,Wg as Ke,Wh as Xr,Wl as Co,Xf as Ur,Xg as qr,Yk as ln,Zk as ns,Zl as ia,_l as At,am as Eo,b as lr,be as Mn,bm as ra,fd as Rr,fe as Xe,fh as Vr,fj as xo,gc as bt,gg as Gr,gj as Zr,hc as pe,hm as aa,ia as vr,ic as Tr,im as la,ja as Ar,jc as Qn,jn as cn,ka as St,kn as Ca,md as Nr,mn as Ea,nm as ca,nn as is,oe as Lr,om as da,pe as yo,pm as ua,qm as ma,qn as Sa,rm as pa,s as rn,sg as zr,sm as So,t as wr,tm as fa,ud as $r,ul as na,vl as sa,wd as Ye,x as xr,xc as Mr,xi as Kr,xm as ha,yc as Tn,ym as ss,zb as Or,zf as i,zg as _t,zm as ga}from"./chunk-UNZWUZT5.js";import{$ as gt,$d as Ve,Aa as co,Ad as br,Ba as uo,C as Le,Ca as mo,Da as po,Fa as On,Ga as Xn,Gd as Jn,Ha as hr,Id as B,Jd as Zn,Kd as Cr,La as gr,Md as In,Nd as fe,Od as an,Pa as yt,Pd as Er,Qd as Sr,Rd as _r,X as me,Y as We,Yc as fo,Zb as yr,a as Pe,b as y,ba as ct,be as q,c as cr,d as dr,de as Hr,ee as Br,la as Yn,pa as ur,se as Qr,tc as Kn,wa as mr,xa as pr,ya as fr,za as lo,zd as ho}from"./chunk-5OV5S6OY.js";import"./chunk-TWIC4BKL.js";import{c as nl}from"./chunk-LP5C4GJE.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import{a as Ge,c as ar,e as ze}from"./chunk-YUXORC52.js";var Hc=ar((Bx,hi)=>{"use strict";var Gc=Ge("child_process").exec,zc=Ge("child_process").execSync,Rs=Ge("fs"),Uc=Ge("path"),Wc=Rs.access,qc=Rs.accessSync,xn=Rs.constants||Rs,pi=process.platform=="win32",Ym=function(n,e){Wc(n,xn.F_OK,function(t){e(!t)})},Xm=function(n){try{return qc(n,xn.F_OK),!1}catch{return!0}},Km=function(n,e){Wc(n,xn.F_OK|xn.X_OK,function(t){e(null,!t)})},Jm=function(n){try{return qc(n,xn.F_OK|xn.X_OK),!0}catch{return!1}},Zm=function(n,e,t){Ym(n,function(s){if(!s){var o=Gc("command -v "+e+" 2>/dev/null && { echo >&1 "+e+"; exit 0; }",function(r,a,l){t(null,!!a)});return}Km(n,t)})},Qm=function(n,e,t){if(!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(n)){t(null,!1);return}var s=Gc("where "+e,function(o){o!==null?t(null,!1):t(null,!0)})},ep=function(n,e){if(Xm(n))try{var t=zc("command -v "+e+" 2>/dev/null && { echo >&1 "+e+"; exit 0; }");return!!t}catch{return!1}return Jm(n)},tp=function(n,e,t){if(!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(n))return!1;try{var s=zc("where "+e,{stdio:[]});return!!s}catch{return!1}},fi=function(n){return/[^A-Za-z0-9_\/:=-]/.test(n)&&(n="'"+n.replace(/'/g,"'\\''")+"'",n=n.replace(/^(?:'')+/g,"").replace(/\\'''/g,"\\'")),n};pi&&(fi=function(n){var e=/[\\]/.test(n);if(e){var t='"'+Uc.dirname(n)+'"',s='"'+Uc.basename(n)+'"';return t+":"+s}return'"'+n+'"'});hi.exports=function n(e,t){var s=fi(e);if(!t&&typeof Promise<"u")return new Promise(function(o,r){n(e,function(a,l){l?o(e):r(a)})});pi?Qm(e,s,t):Zm(e,s,t)};hi.exports.sync=function(n){var e=fi(n);return pi?tp(n,e):ep(n,e)}});var Vc=ar((Vx,Bc)=>{Bc.exports=Hc()});import{notStrictEqual as Nu,strictEqual as $u}from"assert";var du={right:hu,center:gu},uu=0,us=1,mu=2,ms=3,Io=class{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){let t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]=="string")return this.applyLayoutDSL(e[0]);let t=e.map(s=>typeof s=="string"?this.colFromString(s):s);return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]=="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){let t=e.split(`
4
4
  `).map(o=>o.split(" ")),s=0;return t.forEach(o=>{o.length>1&&Ze.stringWidth(o[0])>s&&(s=Math.min(Math.floor(this.width*.5),Ze.stringWidth(o[0])))}),t.forEach(o=>{this.div(...o.map((r,a)=>({text:r.trim(),padding:this.measurePadding(r),width:a===0&&o.length>1?s:void 0})))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){let t=Ze.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){let e=[];return this.rows.forEach(t=>{this.rowToString(t,e)}),e.filter(t=>!t.hidden).map(t=>t.text).join(`
5
5
  `)}rowToString(e,t){return this.rasterize(e).forEach((s,o)=>{let r="";s.forEach((a,l)=>{let{width:c}=e[l],m=this.negatePadding(e[l]),d=a;if(m>Ze.stringWidth(a)&&(d+=" ".repeat(m-Ze.stringWidth(a))),e[l].align&&e[l].align!=="left"&&this.wrap){let f=du[e[l].align];d=f(d,m),Ze.stringWidth(d)<m&&(d+=" ".repeat((c||0)-Ze.stringWidth(d)-1))}let p=e[l].padding||[0,0,0,0];p[ms]&&(r+=" ".repeat(p[ms])),r+=cl(e[l],d,"| "),r+=d,r+=cl(e[l],d," |"),p[us]&&(r+=" ".repeat(p[us])),o===0&&t.length>0&&(r=this.renderInline(r,t[t.length-1]))}),t.push({text:r.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){let s=e.match(/^ */),o=s?s[0].length:0,r=t.text,a=Ze.stringWidth(r.trimRight());return t.span?this.wrap?o<a?e:(t.hidden=!0,r.trimRight()+" ".repeat(o-a)+e.trimLeft()):(t.hidden=!0,r+e):e}rasterize(e){let t=[],s=this.columnWidths(e),o;return e.forEach((r,a)=>{r.width=s[a],this.wrap?o=Ze.wrap(r.text,this.negatePadding(r),{hard:!0}).split(`
6
6
  `):o=r.text.split(`
@@ -81,7 +81,7 @@ Run "gemini extensions list" for details.`);return}if(!r.installMetadata){y.log(
81
81
  Successfully linked skills.`))}catch(e){y.error(B(e)),await X(1)}}var Dc={command:"link <path>",describe:"Links an agent skill from a local path. Updates to the source will be reflected immediately.",builder:n=>n.positional("path",{describe:"The local path of the skill to link.",type:"string",demandOption:!0}).option("scope",{describe:'The scope to link the skill into. Defaults to "user" (global).',choices:["user","workspace"],default:"user"}).option("consent",{describe:"Acknowledge the security risks of linking a skill and skip the confirmation prompt.",type:"boolean",default:!1}).check(e=>{if(!e.path)throw new Error("The path argument must be provided.");return!0}),handler:async n=>{await Um({path:n.path,scope:n.scope,consent:n.consent}),await X()}};var ci=ze(wt(),1);async function Gm(n){try{let{name:e}=n,t=n.scope??"user",s=await Ja(e,t);s?y.log(ci.default.green(`Successfully uninstalled skill: ${ci.default.bold(e)} (scope: ${t}, location: ${s.location})`)):y.error(`Skill "${e}" is not installed in the ${t} scope.`)}catch(e){y.error(B(e)),await X(1)}}var jc={command:"uninstall <name> [--scope]",describe:"Uninstalls an agent skill by name.",builder:n=>n.positional("name",{describe:"The name of the skill to uninstall.",type:"string",demandOption:!0}).option("scope",{describe:'The scope to uninstall the skill from. Defaults to "user" (global).',choices:["user","workspace"],default:"user"}).check(e=>{if(!e.name)throw new Error("The skill name must be provided.");return!0}),handler:async n=>{await Gm({name:n.name,scope:n.scope}),await X()}};var di={command:"skills <command>",aliases:["skill"],describe:"Manage agent skills.",builder:n=>n.middleware(e=>{ft(),e.isCommand=!0}).command(we(Pc,"skills")).command(we(Rc,"skills")).command(we(Nc,"skills")).command(we($c,"skills")).command(we(Dc,"skills")).command(we(jc,"skills")).demandCommand(1,"You need at least one command before continuing.").version(!1),handler:()=>{}};import*as wn from"node:fs";import*as Ps from"node:path";var ui=ze(lu(),1);var zm={PreToolUse:"BeforeTool",PostToolUse:"AfterTool",UserPromptSubmit:"BeforeAgent",Stop:"AfterAgent",SubAgentStop:"AfterAgent",SessionStart:"SessionStart",SessionEnd:"SessionEnd",PreCompact:"PreCompress",Notification:"Notification"},Wm={Edit:"replace",Bash:"run_shell_command",Read:"read_file",Write:"write_file",Glob:"glob",Grep:"grep",LS:"ls"};function qm(n){if(!n)return n;let e=n;for(let[t,s]of Object.entries(Wm))e=e.replace(new RegExp(`\\b${t}\\b`,"g"),s);return e}function Hm(n){if(!n||typeof n!="object")return n;let e=n,t={};return"command"in e&&(t.command=e.command,typeof t.command=="string"&&(t.command=t.command.replace(/\$CLAUDE_PROJECT_DIR/g,"$GEMINI_PROJECT_DIR"))),"type"in e&&e.type==="command"&&(t.type="command"),"timeout"in e&&typeof e.timeout=="number"&&(t.timeout=e.timeout),t}function Bm(n){if(!n||typeof n!="object")return{};let e=n,t={},s=e.hooks;if(!s||typeof s!="object")return{};for(let[o,r]of Object.entries(s)){let a=zm[o]||o;if(!Array.isArray(r))continue;let l=r.map(c=>{if(!c||typeof c!="object")return c;let m=c,d={};return"matcher"in m&&typeof m.matcher=="string"&&(d.matcher=qm(m.matcher)),"sequential"in m&&(d.sequential=m.sequential),"hooks"in m&&Array.isArray(m.hooks)&&(d.hooks=m.hooks.map(Hm)),d});t[a]=l}return t}async function Vm(){let n=process.cwd(),e=Ps.join(n,".claude"),t=Ps.join(e,"settings.json"),s=Ps.join(e,"settings.local.json"),o=null,r="";if(wn.existsSync(s)){r=s;try{let d=wn.readFileSync(s,"utf-8");o=JSON.parse((0,ui.default)(d))}catch(d){y.error(`Error reading ${s}: ${B(d)}`)}}else if(wn.existsSync(t)){r=t;try{let d=wn.readFileSync(t,"utf-8");o=JSON.parse((0,ui.default)(d))}catch(d){y.error(`Error reading ${t}: ${B(d)}`)}}else{y.error("No Claude Code settings found in .claude directory. Expected settings.json or settings.local.json");return}if(!o)return;y.log(`Found Claude Code settings in: ${r}`);let a=Bm(o);if(Object.keys(a).length===0){y.log("No hooks found in Claude Code settings to migrate.");return}y.log(`Migrating ${Object.keys(a).length} hook event(s)...`);let l=te(n),m={...l.merged?.hooks||{},...a};try{l.setValue("Workspace","hooks",m),y.log("\u2713 Hooks successfully migrated to .gemini/settings.json"),y.log(`
82
82
  Migration complete! Please review the migrated hooks in .gemini/settings.json`)}catch(d){y.error(`Error saving migrated hooks: ${B(d)}`)}}var Fc={command:"migrate",describe:"Migrate hooks from Claude Code to Gemini CLI",builder:n=>n.option("from-claude",{describe:"Migrate from Claude Code hooks",type:"boolean",default:!1}),handler:async n=>{n.fromClaude?await Vm():y.log(`Usage: gemini hooks migrate --from-claude
83
83
 
84
- Migrate hooks from Claude Code to Gemini CLI format.`),await X()}};var mi={command:"hooks <command>",aliases:["hook"],describe:"Manage Gemini CLI hooks.",builder:n=>n.middleware(e=>{ft(),e.isCommand=!0}).command(Fc).demandCommand(1,"You need at least one command before continuing.").version(!1),handler:()=>{}};var Cn=ze(Vc(),1);import*as Ns from"node:os";import{fileURLToPath as np}from"node:url";import sp from"node:path";var op=np(import.meta.url),ip=sp.dirname(op),Yc=["docker","podman","sandbox-exec","runsc","lxc","windows-native"];function rp(n){return Yc.includes(n)}function ap(n){if(process.env.SANDBOX)return"";let e=process.env.GEMINI_SANDBOX?.toLowerCase().trim()??"";if(n=e?.length>0?e:n,n==="1"||n==="true"?n=!0:(n==="0"||n==="false"||!n)&&(n=!1),n===!1)return"";if(typeof n=="string"&&n){if(!rp(n))throw new fe(`Invalid sandbox command '${n}'. Must be one of ${Yc.join(", ")}`);if(n==="runsc"&&Ns.platform()!=="linux")throw new fe("gVisor (runsc) sandboxing is only supported on Linux");if(n==="windows-native"&&Ns.platform()!=="win32")throw new fe("Windows native sandboxing is only supported on Windows");if(n!=="windows-native"&&!Cn.default.sync(n))throw new fe(`Missing sandbox command '${n}' (from GEMINI_SANDBOX)`);if(n==="runsc"&&!Cn.default.sync("docker"))throw new fe("runsc (gVisor) requires Docker. Install Docker, or use sandbox: 'docker'.");return n}if(Ns.platform()==="darwin"&&Cn.default.sync("sandbox-exec"))return"sandbox-exec";if(Cn.default.sync("docker")&&n===!0)return"docker";if(Cn.default.sync("podman")&&n===!0)return"podman";if(n===!0)throw new fe("GEMINI_SANDBOX is true but failed to determine command for sandbox; install docker or podman or specify command in GEMINI_SANDBOX");return""}async function $s(n,e){let t=e.sandbox??n.tools?.sandbox,s,o=[],r=!0,a;if(typeof t=="object"&&t!==null&&!Array.isArray(t)){let p=t;s=p.enabled?p.command??!0:!1,o=p.allowedPaths??[],r=p.networkAccess??!0,a=p.image}else(typeof t!="object"||t===null)&&(s=t);let l=ap(s),c=await zr(ip),m=process.env.GEMINI_SANDBOX_IMAGE??"us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.37.1"??a??c?.config?.sandboxImageUri;return l&&(m||(l==="windows-native"||l==="sandbox-exec"||l==="lxc"))?{enabled:!0,allowedPaths:o,networkAccess:r,command:l,image:m}:void 0}import*as Xc from"node:path";function En(n){if(!n)return"";let e=n;return n.toLowerCase().startsWith("%userprofile%")?e=ct()+n.substring(13):(n==="~"||n.startsWith("~/"))&&(e=ct()+n.substring(1)),Xc.normalize(e)}var lp=!0;var cp=!0;async function Kc(n,e,t,s=!0){let o={mcp:n.mcp,tools:n.tools,mcpServers:n.mcpServers,policyPaths:n.policyPaths,adminPolicyPaths:n.adminPolicyPaths,workspacePoliciesDir:t,disableAlwaysAllow:n.security?.disableAlwaysAllow||n.admin?.secureModeEnabled};return na(o,e,void 0,s)}function Ls(n,e,t){return sa(n,e,t)}async function Jc(n){let{cwd:e,trustedFolder:t,interactive:s}=n,o,r;if(t&&!cp){let a=new ur(e);if(a.isWorkspaceHomeDir())return{workspacePoliciesDir:void 0};let l=a.getWorkspacePoliciesDir(),c=new ra,m=await c.checkIntegrity("workspace",e,l);m.status===Eo.MATCH?o=l:m.status===Eo.NEW&&m.fileCount===0?o=void 0:s&&!lp?r={scope:"workspace",identifier:e,policyDir:l,newHash:m.hash}:(await c.acceptIntegrity("workspace",e,m.hash),o=l,s?y.warn("Workspace policies changed or are new. Automatically accepting and loading them."):pe(`WARNING: Workspace policies changed or are new. Automatically accepting and loading them.
84
+ Migrate hooks from Claude Code to Gemini CLI format.`),await X()}};var mi={command:"hooks <command>",aliases:["hook"],describe:"Manage Gemini CLI hooks.",builder:n=>n.middleware(e=>{ft(),e.isCommand=!0}).command(Fc).demandCommand(1,"You need at least one command before continuing.").version(!1),handler:()=>{}};var Cn=ze(Vc(),1);import*as Ns from"node:os";import{fileURLToPath as np}from"node:url";import sp from"node:path";var op=np(import.meta.url),ip=sp.dirname(op),Yc=["docker","podman","sandbox-exec","runsc","lxc","windows-native"];function rp(n){return Yc.includes(n)}function ap(n){if(process.env.SANDBOX)return"";let e=process.env.GEMINI_SANDBOX?.toLowerCase().trim()??"";if(n=e?.length>0?e:n,n==="1"||n==="true"?n=!0:(n==="0"||n==="false"||!n)&&(n=!1),n===!1)return"";if(typeof n=="string"&&n){if(!rp(n))throw new fe(`Invalid sandbox command '${n}'. Must be one of ${Yc.join(", ")}`);if(n==="runsc"&&Ns.platform()!=="linux")throw new fe("gVisor (runsc) sandboxing is only supported on Linux");if(n==="windows-native"&&Ns.platform()!=="win32")throw new fe("Windows native sandboxing is only supported on Windows");if(n!=="windows-native"&&!Cn.default.sync(n))throw new fe(`Missing sandbox command '${n}' (from GEMINI_SANDBOX)`);if(n==="runsc"&&!Cn.default.sync("docker"))throw new fe("runsc (gVisor) requires Docker. Install Docker, or use sandbox: 'docker'.");return n}if(Ns.platform()==="darwin"&&Cn.default.sync("sandbox-exec"))return"sandbox-exec";if(Cn.default.sync("docker")&&n===!0)return"docker";if(Cn.default.sync("podman")&&n===!0)return"podman";if(n===!0)throw new fe("GEMINI_SANDBOX is true but failed to determine command for sandbox; install docker or podman or specify command in GEMINI_SANDBOX");return""}async function $s(n,e){let t=e.sandbox??n.tools?.sandbox,s,o=[],r=!0,a;if(typeof t=="object"&&t!==null&&!Array.isArray(t)){let p=t;s=p.enabled?p.command??!0:!1,o=p.allowedPaths??[],r=p.networkAccess??!0,a=p.image}else(typeof t!="object"||t===null)&&(s=t);let l=ap(s),c=await zr(ip),m=process.env.GEMINI_SANDBOX_IMAGE??"us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.37.2"??a??c?.config?.sandboxImageUri;return l&&(m||(l==="windows-native"||l==="sandbox-exec"||l==="lxc"))?{enabled:!0,allowedPaths:o,networkAccess:r,command:l,image:m}:void 0}import*as Xc from"node:path";function En(n){if(!n)return"";let e=n;return n.toLowerCase().startsWith("%userprofile%")?e=ct()+n.substring(13):(n==="~"||n.startsWith("~/"))&&(e=ct()+n.substring(1)),Xc.normalize(e)}var lp=!0;var cp=!0;async function Kc(n,e,t,s=!0){let o={mcp:n.mcp,tools:n.tools,mcpServers:n.mcpServers,policyPaths:n.policyPaths,adminPolicyPaths:n.adminPolicyPaths,workspacePoliciesDir:t,disableAlwaysAllow:n.security?.disableAlwaysAllow||n.admin?.secureModeEnabled};return na(o,e,void 0,s)}function Ls(n,e,t){return sa(n,e,t)}async function Jc(n){let{cwd:e,trustedFolder:t,interactive:s}=n,o,r;if(t&&!cp){let a=new ur(e);if(a.isWorkspaceHomeDir())return{workspacePoliciesDir:void 0};let l=a.getWorkspacePoliciesDir(),c=new ra,m=await c.checkIntegrity("workspace",e,l);m.status===Eo.MATCH?o=l:m.status===Eo.NEW&&m.fileCount===0?o=void 0:s&&!lp?r={scope:"workspace",identifier:e,policyDir:l,newHash:m.hash}:(await c.acceptIntegrity("workspace",e,m.hash),o=l,s?y.warn("Workspace policies changed or are new. Automatically accepting and loading them."):pe(`WARNING: Workspace policies changed or are new. Automatically accepting and loading them.
85
85
  `))}return{workspacePoliciesDir:o,policyUpdateConfirmationRequest:r}}var Sn=n=>n.length===1&&n[0]===""?[""]:n.flatMap(e=>e.split(",").map(t=>t.trim()).filter(Boolean));function dp(n){let e=ti(gs(n)).help(!1).version(!1).option("worktree",{alias:"w",type:"string"}).strict(!1).exitProcess(!1).parseSync();if(e.worktree!==void 0)return typeof e.worktree=="string"?e.worktree.trim():""}function Zc(n){if(Pa(n))return dp(Ie.argv)}async function Qc(n){let e=gs(Ie.argv),t=[],s=ti(e).locale("en").scriptName("gemini").usage(`Usage: gemini [options] [command]
86
86
 
87
87
  Gemini CLI - Defaults to interactive mode. Use -p/--prompt for non-interactive (headless) mode.`).option("isCommand",{type:"boolean",hidden:!0,description:"Internal flag to indicate if a subcommand is being run"}).option("debug",{alias:"d",type:"boolean",description:"Run in debug mode (open debug console with F12)",default:!1}).middleware(l=>{let m=[si,ii,di,mi].flatMap(p=>{let f=[],h=p.command;if(h)if(Array.isArray(h))for(let S of h)f.push(String(S).split(" ")[0]);else f.push(String(h).split(" ")[0]);let I=p.aliases;if(I)if(Array.isArray(I))for(let S of I)f.push(String(S).split(" ")[0]);else f.push(String(I).split(" ")[0]);return f}),d=l._[0];typeof d=="string"&&m.includes(d)&&(l.isCommand=!0)},!0).fail((l,c)=>{throw c||new Error(l)}).check(l=>{let c=l.query,m=typeof c=="string"||Array.isArray(c)?c:void 0,d=Array.isArray(m)?m.length>0:!!m;if(l.prompt&&d)return"Cannot use both a positional prompt and the --prompt (-p) flag together";if(l.prompt&&l.promptInteractive)return"Cannot use both --prompt (-p) and --prompt-interactive (-i) together";if(l.yolo&&l.approvalMode)return"Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead.";let p=l.outputFormat;return typeof p=="string"&&!["text","json","stream-json"].includes(p)?`Invalid values:
@@ -93,7 +93,7 @@ This warning can be disabled in /settings`:null}catch{return"Could not verify th
93
93
  `)),0),clear:()=>{},setDebugMessage:n=>{},loadHistory:n=>{},pendingItem:null,setPendingItem:n=>{},toggleCorgiMode:()=>{},toggleDebugProfiler:()=>{},toggleVimEnabled:async()=>!1,reloadCommands:()=>{},openAgentConfigDialog:()=>{},extensionsUpdateState:new Map,dispatchExtensionStateUpdate:n=>{},addConfirmUpdateExtensionRequest:n=>{},setConfirmationRequest:n=>{},removeComponent:()=>{},toggleBackgroundTasks:()=>{},toggleShortcutsHelp:()=>{}}}var dd=async(n,e,t,s)=>{let o=n.trim();if(!o.startsWith("/"))return;let a=(await tl.create([new sl(t),new il(t),new ol(t)],e.signal)).getCommands(),{commandToExecute:l,args:c}=el(n,a);if(l&&l.action){let m={sessionId:t?.getSessionId(),sessionStartTime:new Date,metrics:Ye.getMetrics(),lastPromptTokenCount:0,promptCount:1},d=new ha(t?.getSessionId()||"",t?.storage),p={services:{agentContext:t,settings:s,git:void 0,logger:d},ui:cd(),session:{stats:m,sessionShellAllowlist:new Set},invocation:{raw:o,name:l.name,args:c}},f=await l.action(p,c);if(f)switch(f.type){case"submit_prompt":return f.content;case"confirm_shell_commands":throw new In("Exiting due to a confirmation prompt requested by the command.");default:throw new In("Exiting due to command result that is not supported in non-interactive mode.")}}};function ud(n){let e=n;return typeof e.exitCode=="number"?e.exitCode:e.code!==void 0?e.code:e.status!==void 0?e.status:1}function md(n){return typeof n=="number"?n:1}function js(n,e,t){let s=ya(n,e.getContentGeneratorConfig()?.authType);if(e.getOutputFormat()===Ae.STREAM_JSON){let o=new jt,r=t??ud(n),a=Ye.getMetrics();o.emitEvent({type:De.RESULT,timestamp:new Date().toISOString(),status:"error",error:{type:Zn(n),message:s},stats:o.convertToStreamStats(a,0)}),ut(),process.exit(md(r))}else if(e.getOutputFormat()===Ae.JSON){let o=new At,r=t??ud(n),a=o.formatError(n instanceof Error?n:new Error(B(n)),r,e.getSessionId());q.emitFeedback("error",a),ut(),process.exit(md(r))}else throw n}function pd(n,e,t,s,o){let r=`Error executing tool ${n}: ${o||e.message}`;if(dr(s)){let l=new Sr(r);if(t.getOutputFormat()===Ae.STREAM_JSON){let c=new jt,m=Ye.getMetrics();c.emitEvent({type:De.RESULT,timestamp:new Date().toISOString(),status:"error",error:{type:s??"FatalToolExecutionError",message:l.message},stats:c.convertToStreamStats(m,0)})}else if(t.getOutputFormat()===Ae.JSON){let m=new At().formatError(l,s??l.exitCode,t.getSessionId());q.emitFeedback("error",m)}else q.emitFeedback("error",r);ut(),process.exit(l.exitCode)}y.warn(r)}function fd(n){let e=new _r("Operation cancelled.");if(n.getOutputFormat()===Ae.STREAM_JSON){let t=new jt,s=Ye.getMetrics();t.emitEvent({type:De.RESULT,timestamp:new Date().toISOString(),status:"error",error:{type:Zn(e),message:e.message},stats:t.convertToStreamStats(s,0)}),ut(),process.exit(e.exitCode)}else if(n.getOutputFormat()===Ae.JSON){let s=new At().formatError(e,e.exitCode,n.getSessionId());q.emitFeedback("error",s),ut(),process.exit(e.exitCode)}else q.emitFeedback("error",e.message),ut(),process.exit(e.exitCode)}function hd(n){let e=new Er("Reached max session turns for this session. Increase the number of turns by specifying maxSessionTurns in settings.json.");if(n.getOutputFormat()===Ae.STREAM_JSON){let t=new jt,s=Ye.getMetrics();t.emitEvent({type:De.RESULT,timestamp:new Date().toISOString(),status:"error",error:{type:Zn(e),message:e.message},stats:t.convertToStreamStats(s,0)}),ut(),process.exit(e.exitCode)}else if(n.getOutputFormat()===Ae.JSON){let s=new At().formatError(e,e.exitCode,n.getSessionId());q.emitFeedback("error",s),ut(),process.exit(e.exitCode)}else q.emitFeedback("error",e.message),ut(),process.exit(e.exitCode)}var Fs=class{atStartOfLine=!0;outputStream;constructor(e=process.stdout){this.outputStream=e}write(e){if(e.length===0)return;this.outputStream.write(e);let t=es(e);t.length>0&&(this.atStartOfLine=t.endsWith(`
94
94
  `))}writeOnNewLine(e){this.atStartOfLine||this.write(`
95
95
  `),this.write(e)}ensureTrailingNewline(){this.atStartOfLine||this.write(`
96
- `)}};async function yd({config:n,settings:e,input:t,prompt_id:s,resumedSessionData:o}){return Ur.run(s,async()=>{let r=new mn({stderr:!0,interactive:!1,debugMode:n.getDebugMode(),onNewMessage:v=>{q.emitConsoleLog(v.type,v.content)}});if(process.env.GEMINI_CLI_ACTIVITY_LOG_TARGET){let{setupInitialActivityLogger:v}=await import("./devtoolsService-DJTNWRMQ.js");await v(n)}let{stdout:a}=Qn(),l=new Fs(a),c=v=>{let b=v.severity.toUpperCase();if(process.stderr.write(`[${b}] ${v.message}
96
+ `)}};async function yd({config:n,settings:e,input:t,prompt_id:s,resumedSessionData:o}){return Ur.run(s,async()=>{let r=new mn({stderr:!0,interactive:!1,debugMode:n.getDebugMode(),onNewMessage:v=>{q.emitConsoleLog(v.type,v.content)}});if(process.env.GEMINI_CLI_ACTIVITY_LOG_TARGET){let{setupInitialActivityLogger:v}=await import("./devtoolsService-BBOQUUGQ.js");await v(n)}let{stdout:a}=Qn(),l=new Fs(a),c=v=>{let b=v.severity.toUpperCase();if(process.stderr.write(`[${b}] ${v.message}
97
97
  `),v.error&&n.getDebugMode()){let P=v.error instanceof Error?v.error.stack||v.error.message:String(v.error);process.stderr.write(`${P}
98
98
  `)}},m=Date.now(),d=n.getOutputFormat()===Ae.STREAM_JSON?new jt:null,p=new AbortController,f=!1,h=null,I=!1,S=null,x=()=>{if(!process.stdin.isTTY)return;I=process.stdin.isRaw||!1,process.stdin.setRawMode(!0),process.stdin.resume(),S=gd.createInterface({input:process.stdin,escapeCodeTimeout:0}),gd.emitKeypressEvents(process.stdin,S);let v=(b,P)=>{if(P&&P.ctrl&&P.name==="c"||b===""){if(f)return;f=!0,h=setTimeout(()=>{process.stderr.write(`
99
99
  Cancelling...
@@ -144,10 +144,10 @@ CRITICAL: Unhandled Promise Rejection!
144
144
  =========================================
145
145
  Reason: ${e}${e instanceof Error&&e.stack?`
146
146
  Stack trace:
147
- ${e.stack}`:""}`;y.error(s),n||(n=!0,nl.emit("open-debug-console"))})}async function Th(n,e,t,s=process.cwd(),o,r){let{startInteractiveUI:a}=await import("./interactiveCli-7QLLCKC2.js");await a(n,e,t,s,o,r)}async function au(){let n=Xe.start("cli_startup"),e=Mh();kn(e.cleanup);let t=Tr();Ao(()=>{ft(),t()}),Ih(),$a();let s=new ao;s.start(),kn(()=>s.stop());let o=Xe.start("load_settings"),r=te();o?.end();let a=Zc(r),l;if(a!==void 0){let v=Xe.start("setup_worktree");l=await bd(a||void 0),v?.end()}let c=Xe.start("cleanup_ops");Promise.all([La(),Ma(r.merged),ru()]).catch(v=>{y.error("Early cleanup failed:",v)}).finally(()=>{c?.end()});let m=Xe.start("parse_arguments"),d=Qc(r.merged).finally(()=>{m?.end()}),p=ad();r.errors.forEach(v=>{q.emitFeedback("warning",v.message)}),rs().errors.forEach(v=>{q.emitFeedback("warning",`Error in ${v.path}: ${v.message}`)});let h=await d;(h.allowedTools&&h.allowedTools.length>0||r.merged.tools?.allowed&&r.merged.tools.allowed.length>0)&&q.emitFeedback("warning","Warning: --allowed-tools cli argument and tools.allowed in settings.json are deprecated and will be removed in 1.0: Migrate to Policy Engine: https://geminicli.com/docs/core/policy-engine/"),r.merged.tools?.exclude&&r.merged.tools.exclude.length>0&&q.emitFeedback("warning","Warning: tools.exclude in settings.json is deprecated and will be removed in 1.0. Migrate to Policy Engine: https://geminicli.com/docs/core/policy-engine/"),h.startupMessages&&h.startupMessages.forEach(v=>{q.emitFeedback("info",v)}),h.promptInteractive&&!process.stdin.isTTY&&(pe(`Error: The --prompt-interactive flag cannot be used when input is piped from stdin.
147
+ ${e.stack}`:""}`;y.error(s),n||(n=!0,nl.emit("open-debug-console"))})}async function Th(n,e,t,s=process.cwd(),o,r){let{startInteractiveUI:a}=await import("./interactiveCli-6WSVWOAC.js");await a(n,e,t,s,o,r)}async function au(){let n=Xe.start("cli_startup"),e=Mh();kn(e.cleanup);let t=Tr();Ao(()=>{ft(),t()}),Ih(),$a();let s=new ao;s.start(),kn(()=>s.stop());let o=Xe.start("load_settings"),r=te();o?.end();let a=Zc(r),l;if(a!==void 0){let v=Xe.start("setup_worktree");l=await bd(a||void 0),v?.end()}let c=Xe.start("cleanup_ops");Promise.all([La(),Ma(r.merged),ru()]).catch(v=>{y.error("Early cleanup failed:",v)}).finally(()=>{c?.end()});let m=Xe.start("parse_arguments"),d=Qc(r.merged).finally(()=>{m?.end()}),p=ad();r.errors.forEach(v=>{q.emitFeedback("warning",v.message)}),rs().errors.forEach(v=>{q.emitFeedback("warning",`Error in ${v.path}: ${v.message}`)});let h=await d;(h.allowedTools&&h.allowedTools.length>0||r.merged.tools?.allowed&&r.merged.tools.allowed.length>0)&&q.emitFeedback("warning","Warning: --allowed-tools cli argument and tools.allowed in settings.json are deprecated and will be removed in 1.0: Migrate to Policy Engine: https://geminicli.com/docs/core/policy-engine/"),r.merged.tools?.exclude&&r.merged.tools.exclude.length>0&&q.emitFeedback("warning","Warning: tools.exclude in settings.json is deprecated and will be removed in 1.0. Migrate to Policy Engine: https://geminicli.com/docs/core/policy-engine/"),h.startupMessages&&h.startupMessages.forEach(v=>{q.emitFeedback("info",v)}),h.promptInteractive&&!process.stdin.isTTY&&(pe(`Error: The --prompt-interactive flag cannot be used when input is piped from stdin.
148
148
  `),await de(),process.exit(Me.FATAL_INPUT_ERROR));let I=gi(h),S=new mn({stderr:!0,interactive:!Tn(),debugMode:I,onNewMessage:v=>{q.emitConsoleLog(v.type,v.content)}});S.patch(),kn(S.cleanup),vh.setDefaultResultOrder(Ah(r.merged.advanced.dnsResolutionOrder)),(!r.merged.security.auth.selectedType||r.merged.security.auth.selectedType===Ke.LEGACY_CLOUD_SHELL)&&(process.env.CLOUD_SHELL==="true"||process.env.GEMINI_CLI_USE_COMPUTE_ADC==="true")&&r.setValue("User","security.auth.selectedType",Ke.COMPUTE_ADC);let x=await Qt(r.merged,Mn,h,{projectHooks:r.workspace.settings.hooks});e.setConfig(x);let k=!1;if(!r.merged.security.auth.useExternal&&!h.isCommand)try{if(x.isInteractive()&&r.merged.security.auth.selectedType){let v=ds(r.merged.security.auth.selectedType);if(v)throw new Error(v);await x.refreshAuth(r.merged.security.auth.selectedType)}else if(!x.isInteractive()){let v=await ir(r.merged.security.auth.selectedType,r.merged.security.auth.useExternal,x,r);await x.refreshAuth(v)}}catch(v){v instanceof Wr&&(await de(),process.exit(Me.SUCCESS)),v instanceof Fr||(y.error("Error authenticating:",v),k=!0)}let M=x.getRemoteAdminSettings();if(M&&r.setRemoteAdminSettings(M),await fc(r.merged),!process.env.SANDBOX&&!h.isCommand){let v=r.merged.advanced.autoConfigureMemory?Oh(I):[],b=await $s(r.merged,h);if(b){k&&(await de(),process.exit(Me.FATAL_AUTHENTICATION_ERROR));let P="";process.stdin.isTTY||(P=await yi());let Q=((H,K)=>{let N=[...H];if(K){let w=N.findIndex(_=>_==="--prompt"||_==="-p");w>-1&&N.length>w+1?N[w+1]=`${K}
149
149
 
150
- ${N[w+1]}`:N.push("--prompt",K)}return N})(process.argv,P);await rr(()=>rd(b,v,x,Q)),await de(),process.exit(Me.SUCCESS)}else await tu(v,[],M)}{let v=Xe.start("load_cli_config"),b=await Qt(r.merged,Mn,h,{projectHooks:r.workspace.settings.hooks,worktreeSettings:l});if(v?.end(),await b.storage.initialize(),e.setConfig(b),b.isInteractive()&&r.merged.general.devtools){let{setupInitialActivityLogger:se}=await import("./devtoolsService-DJTNWRMQ.js");await se(b)}Na(b);let P=b.getPolicyEngine(),ee=b.getMessageBus();if(Ls(P,ee,b.storage),kn(async()=>{await b.getHookSystem()?.fireSessionEndEvent(Zr.Exit)}),Ta(b,r.merged).catch(se=>{y.error("Failed to cleanup expired sessions:",se)}),b.getListExtensions()){y.log("Installed extensions:");for(let se of b.getExtensions())y.log(`- ${se.name}`);await de(),process.exit(Me.SUCCESS)}if(b.getListSessions()){let se=r.merged.security.auth.selectedType;if(se)try{await b.refreshAuth(se)}catch(J){y.debug("Auth failed for --list-sessions, summaries may not be generated:",J)}await nu(b),await de(),process.exit(Me.SUCCESS)}let Q=b.getDeleteSession();Q&&(await su(b,Q),await de(),process.exit(Me.SUCCESS));let H=process.stdin.isRaw;b.isInteractive()&&!H&&process.stdin.isTTY&&(process.stdin.setRawMode(!0),Ao(()=>{process.stdin.setRawMode(H)}));let K=Xe.start("setup_terminal");await ou(b,r),K?.end();let N=Xe.start("initialize_app"),w=await rl(b,r);if(N?.end(),r.merged.security.auth.selectedType===Ke.LOGIN_WITH_GOOGLE&&b.isBrowserLaunchSuppressed()&&await kr(r.merged.security.auth.selectedType,b),b.getAcpMode())return eu(b,r,h);let _=b.getQuestion(),T=Mr(ll(b),b.getScreenReader()),U=[...(await p).map(se=>({id:`startup-${Eh("sha256").update(se).digest("hex").substring(0,16)}`,message:se,priority:cn.High})),...await ld(r.merged,void 0,{isAlternateBuffer:T})],ne;if(h.resume){let se=new Ft(b);try{let J=await se.resolveSession(h.resume);ne={conversation:J.sessionData,filePath:J.sessionPath},b.setSessionId(ne.conversation.sessionId)}catch(J){J instanceof Ia&&J.code==="NO_SESSIONS_FOUND"?U.push({id:"resume-no-sessions",message:J.message,priority:cn.High}):(q.emitFeedback("error",`Error resuming session: ${J instanceof Error?J.message:"Unknown error"}`),await de(),process.exit(Me.FATAL_INPUT_ERROR))}}if(n?.end(),b.isInteractive()){process.stdin.isTTY&&process.stdin.resume(),await Th(b,r,U,process.cwd(),ne,w);return}await b.initialize(),Xe.flush(b);let V;process.stdin.isTTY||(V=await yi(),V&&(_=_?`${V}
150
+ ${N[w+1]}`:N.push("--prompt",K)}return N})(process.argv,P);await rr(()=>rd(b,v,x,Q)),await de(),process.exit(Me.SUCCESS)}else await tu(v,[],M)}{let v=Xe.start("load_cli_config"),b=await Qt(r.merged,Mn,h,{projectHooks:r.workspace.settings.hooks,worktreeSettings:l});if(v?.end(),await b.storage.initialize(),e.setConfig(b),b.isInteractive()&&r.merged.general.devtools){let{setupInitialActivityLogger:se}=await import("./devtoolsService-BBOQUUGQ.js");await se(b)}Na(b);let P=b.getPolicyEngine(),ee=b.getMessageBus();if(Ls(P,ee,b.storage),kn(async()=>{await b.getHookSystem()?.fireSessionEndEvent(Zr.Exit)}),Ta(b,r.merged).catch(se=>{y.error("Failed to cleanup expired sessions:",se)}),b.getListExtensions()){y.log("Installed extensions:");for(let se of b.getExtensions())y.log(`- ${se.name}`);await de(),process.exit(Me.SUCCESS)}if(b.getListSessions()){let se=r.merged.security.auth.selectedType;if(se)try{await b.refreshAuth(se)}catch(J){y.debug("Auth failed for --list-sessions, summaries may not be generated:",J)}await nu(b),await de(),process.exit(Me.SUCCESS)}let Q=b.getDeleteSession();Q&&(await su(b,Q),await de(),process.exit(Me.SUCCESS));let H=process.stdin.isRaw;b.isInteractive()&&!H&&process.stdin.isTTY&&(process.stdin.setRawMode(!0),Ao(()=>{process.stdin.setRawMode(H)}));let K=Xe.start("setup_terminal");await ou(b,r),K?.end();let N=Xe.start("initialize_app"),w=await rl(b,r);if(N?.end(),r.merged.security.auth.selectedType===Ke.LOGIN_WITH_GOOGLE&&b.isBrowserLaunchSuppressed()&&await kr(r.merged.security.auth.selectedType,b),b.getAcpMode())return eu(b,r,h);let _=b.getQuestion(),T=Mr(ll(b),b.getScreenReader()),U=[...(await p).map(se=>({id:`startup-${Eh("sha256").update(se).digest("hex").substring(0,16)}`,message:se,priority:cn.High})),...await ld(r.merged,void 0,{isAlternateBuffer:T})],ne;if(h.resume){let se=new Ft(b);try{let J=await se.resolveSession(h.resume);ne={conversation:J.sessionData,filePath:J.sessionPath},b.setSessionId(ne.conversation.sessionId)}catch(J){J instanceof Ia&&J.code==="NO_SESSIONS_FOUND"?U.push({id:"resume-no-sessions",message:J.message,priority:cn.High}):(q.emitFeedback("error",`Error resuming session: ${J instanceof Error?J.message:"Unknown error"}`),await de(),process.exit(Me.FATAL_INPUT_ERROR))}}if(n?.end(),b.isInteractive()){process.stdin.isTTY&&process.stdin.resume(),await Th(b,r,U,process.cwd(),ne,w);return}await b.initialize(),Xe.flush(b);let V;process.stdin.isTTY||(V=await yi(),V&&(_=_?`${V}
151
151
 
152
152
  ${_}`:V));let ce=ne?xo.Resume:xo.Startup,$e=b?.getHookSystem();if($e){let se=await $e.fireSessionStartEvent(ce);if(se){se.systemMessage&&pe(se.systemMessage+`
153
153
  `);let J=se.getAdditionalContext();if(J){let L=`<hook_context>${J}</hook_context>`;_=_?`${L}