makecoder 4.0.27 → 4.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/cc.mjs +2 -2
  2. package/dist/coder.js +1 -1
  3. package/dist/darwin-arm64/cc.js +41 -6
  4. package/dist/darwin-x64/cc.js +41 -6
  5. package/dist/gemini/{chunk-2SX35WX4.js → chunk-356OVHGG.js} +1 -1
  6. package/dist/gemini/{chunk-QLWIHN4W.js → chunk-63ULYU4I.js} +2 -2
  7. package/dist/gemini/{chunk-3MILFT2A.js → chunk-ACEDFBEP.js} +2 -2
  8. package/dist/gemini/{chunk-M4VGJYXT.js → chunk-CJ5VLAB6.js} +1 -1
  9. package/dist/gemini/{chunk-L6MG6Y4N.js → chunk-CNS6SZJ6.js} +1 -1
  10. package/dist/gemini/{chunk-CVQSCATI.js → chunk-FJMU6UNE.js} +1 -1
  11. package/dist/gemini/{chunk-REVEB6QQ.js → chunk-G6V3NYLD.js} +1 -1
  12. package/dist/gemini/{chunk-FLHTGF3O.js → chunk-MH5WU37R.js} +1 -1
  13. package/dist/gemini/{chunk-A6MX3ZUI.js → chunk-PZM5Q2NO.js} +2 -2
  14. package/dist/gemini/{chunk-7QO7ZB7U.js → chunk-R4YJJCUP.js} +1 -1
  15. package/dist/gemini/{chunk-GTU5AZLF.js → chunk-RTOTOYZ3.js} +1 -1
  16. package/dist/gemini/{chunk-A3CFCECQ.js → chunk-S5WFVXWE.js} +1 -1
  17. package/dist/gemini/{chunk-RFHUTEFF.js → chunk-VFMKTMIZ.js} +1 -1
  18. package/dist/gemini/{chunk-AHBTQKKJ.js → chunk-VJITGXD7.js} +2 -2
  19. package/dist/gemini/{chunk-QZZSKH6J.js → chunk-W5TDQYOY.js} +1 -1
  20. package/dist/gemini/{chunk-UFGP2VEQ.js → chunk-XPH4EMMZ.js} +1 -1
  21. package/dist/gemini/{cleanup-M2L7Y3J6.js → cleanup-IEMHEGQL.js} +1 -1
  22. package/dist/gemini/{cleanup-ZJ3DDNQU.js → cleanup-SFYLF5RQ.js} +1 -1
  23. package/dist/gemini/{core-SNF4J4VI.js → core-4QE6N7IV.js} +1 -1
  24. package/dist/gemini/{devtoolsService-FDXINY4I.js → devtoolsService-34NLK5WH.js} +2 -2
  25. package/dist/gemini/{devtoolsService-53YKYRAY.js → devtoolsService-J7RUHF7G.js} +2 -2
  26. package/dist/gemini/{dist-OHEMBVSW.js → dist-3KXWDUDH.js} +1 -1
  27. package/dist/gemini/{gemini-UJXQV7SS.js → gemini-VQICWID3.js} +5 -5
  28. package/dist/gemini/{gemini-LJKZO6ID.js → gemini-XKFI76VG.js} +5 -5
  29. package/dist/gemini/gemini.js +2 -2
  30. package/dist/gemini/{interactiveCli-E5EI2CZT.js → interactiveCli-DX6PGO5O.js} +2 -2
  31. package/dist/gemini/{interactiveCli-PRHLNZCE.js → interactiveCli-QF76UNZ5.js} +2 -2
  32. package/dist/gemini/{liteRtServerManager-5SQ2TTDE.js → liteRtServerManager-DQU232O5.js} +1 -1
  33. package/dist/gemini/{liteRtServerManager-JCWKAJFL.js → liteRtServerManager-HXFM7XV2.js} +1 -1
  34. package/dist/gemini/{oauth2-provider-Q6HTZTKH.js → oauth2-provider-3U23IVR2.js} +1 -1
  35. package/dist/gemini/{oauth2-provider-BA4IPWPG.js → oauth2-provider-SFOTVTXE.js} +1 -1
  36. package/dist/gemini/{start-3PMI6ZVJ.js → start-LAWWIE6I.js} +1 -1
  37. package/dist/gemini/{start-DO44GV2B.js → start-RDNQUCPC.js} +1 -1
  38. package/dist/linux-x64/cc.js +41 -6
  39. package/dist/win32-x64/cc.js +41 -6
  40. package/package.json +4 -4
  41. /package/dist/gemini/{tree-sitter-TTHZYMTS.js → tree-sitter-6LGKSRWQ.js} +0 -0
  42. /package/dist/gemini/{tree-sitter-bash-OIMPM64I.js → tree-sitter-bash-T5FTGOXW.js} +0 -0
@@ -809,7 +809,7 @@ ${s}
809
809
 
810
810
  ... [${u.toLocaleString()} characters omitted] ...
811
811
 
812
- ${c}`}var aAr="tool-outputs";async function Hv(t,e,r,n,o){let s=_s(e).toLowerCase(),c=_s(r.toString()).toLowerCase(),u=c.startsWith(s)?`${c}.txt`:`${s}_${c}.txt`,d=cu.join(n,aAr);if(o){let a=_s(o);d=cu.join(d,`session-${a}`)}let l=cu.join(d,u);return await wx.mkdir(d,{recursive:!0}),await wx.writeFile(l,t),{outputFile:l}}async function EZe(t,e){await Yo();let r=[t,...e].join(" "),n=oo(r),o=Al(n).filter(s=>s!=="shopt"&&s!=="set");return o.length>0?o[0]:OG.basename(t)}function xx(t){return typeof t=="string"?t:"pattern"in t?t.pattern:"op"in t?t.op:("comment"in t,"")}var Dp=["run_shell_command","ShellTool"];async function vZe(t){if(OG.isAbsolute(t))try{return await CG.promises.access(t,CG.constants.X_OK),t}catch{return}let e=(process.env.PATH||"").split(OG.delimiter),r=yZe.platform()==="win32"?[".exe",".cmd",".bat",""]:[""];for(let n of e)for(let o of r){let s=OG.join(n,t+o);try{return await CG.promises.access(s,CG.constants.X_OK),s}catch{continue}}}var zv=null,xG=null,Cx=null,IG=class extends Error{constructor(e){super(`Failed to initialize bash parser: ${e.message}`,{cause:e}),this.name="ShellParserInitializationError"}};function cAr(t){return t instanceof Error?t:typeof t=="string"?new Error(t):new Error("Unknown tree-sitter initialization error",{cause:t})}async function uAr(){try{Cx=null;let[t,e]=await Promise.all([_me(()=>import("./tree-sitter-TTHZYMTS.js"),"web-tree-sitter/tree-sitter.wasm"),_me(()=>import("./tree-sitter-bash-OIMPM64I.js"),"tree-sitter-bash/tree-sitter-bash.wasm")]);await cme.init({wasmBinary:t}),zv=await lme.load(e)}catch(t){zv=null;let e=cAr(t),r=e instanceof IG?e:new IG(e);throw Cx=r,r}}async function Yo(){xG||(xG=uAr().catch(t=>{xG=null,B.debug("Failed to initialize shell parsers:",t)})),await xG}var SZe="__GCLI_POWERSHELL_COMMAND__",dAr=1e3*1e3,pAr=Buffer.from(`
812
+ ${c}`}var aAr="tool-outputs";async function Hv(t,e,r,n,o){let s=_s(e).toLowerCase(),c=_s(r.toString()).toLowerCase(),u=c.startsWith(s)?`${c}.txt`:`${s}_${c}.txt`,d=cu.join(n,aAr);if(o){let a=_s(o);d=cu.join(d,`session-${a}`)}let l=cu.join(d,u);return await wx.mkdir(d,{recursive:!0}),await wx.writeFile(l,t),{outputFile:l}}async function EZe(t,e){await Yo();let r=[t,...e].join(" "),n=oo(r),o=Al(n).filter(s=>s!=="shopt"&&s!=="set");return o.length>0?o[0]:OG.basename(t)}function xx(t){return typeof t=="string"?t:"pattern"in t?t.pattern:"op"in t?t.op:("comment"in t,"")}var Dp=["run_shell_command","ShellTool"];async function vZe(t){if(OG.isAbsolute(t))try{return await CG.promises.access(t,CG.constants.X_OK),t}catch{return}let e=(process.env.PATH||"").split(OG.delimiter),r=yZe.platform()==="win32"?[".exe",".cmd",".bat",""]:[""];for(let n of e)for(let o of r){let s=OG.join(n,t+o);try{return await CG.promises.access(s,CG.constants.X_OK),s}catch{continue}}}var zv=null,xG=null,Cx=null,IG=class extends Error{constructor(e){super(`Failed to initialize bash parser: ${e.message}`,{cause:e}),this.name="ShellParserInitializationError"}};function cAr(t){return t instanceof Error?t:typeof t=="string"?new Error(t):new Error("Unknown tree-sitter initialization error",{cause:t})}async function uAr(){try{Cx=null;let[t,e]=await Promise.all([_me(()=>import("./tree-sitter-6LGKSRWQ.js"),"web-tree-sitter/tree-sitter.wasm"),_me(()=>import("./tree-sitter-bash-T5FTGOXW.js"),"tree-sitter-bash/tree-sitter-bash.wasm")]);await cme.init({wasmBinary:t}),zv=await lme.load(e)}catch(t){zv=null;let e=cAr(t),r=e instanceof IG?e:new IG(e);throw Cx=r,r}}async function Yo(){xG||(xG=uAr().catch(t=>{xG=null,B.debug("Failed to initialize shell parsers:",t)})),await xG}var SZe="__GCLI_POWERSHELL_COMMAND__",dAr=1e3*1e3,pAr=Buffer.from(`
813
813
  $ErrorActionPreference = 'Stop'
814
814
  $commandText = $env:${SZe}
815
815
  if ([string]::IsNullOrEmpty($commandText)) {
@@ -2506,7 +2506,7 @@ CRITICAL: When you have fully completed the user's task, you MUST call the compl
2506
2506
  \${task}
2507
2507
  </task>
2508
2508
 
2509
- First, use <list_pages/> to check if there are any existing pages that can fulfill the user's request. If not, you MUST use <new_page/> to open the relevant URL unless the user explicitly provides different instructions.`,systemPrompt:pei(e,t.getBrowserAgentConfig().customConfig.allowedDomains)}}};var eh=class t{static MAX_AUTH_RETRIES=2;authRetryCount=0;async shouldRetryWithHeaders(e,r){if(r.status===401||r.status===403)return this.authRetryCount>=t.MAX_AUTH_RETRIES?void 0:(this.authRetryCount++,this.headers());this.authRetryCount=0}async initialize(){}};var zZt=6e4;async function j1(t){if(t.startsWith("$$")||t.startsWith("!!"))return t.slice(1);if(t.startsWith("$")){let e=t.slice(1),r=process.env[e];if(r===void 0||r==="")throw new Error(`Environment variable '${e}' is not set or is empty. Please set it before using this agent.`);return B.debug(`[AuthValueResolver] Resolved env var: ${e}`),r}if(t.startsWith("!")){let e=t.slice(1).trim();if(!e)throw new Error("Empty command in auth value. Expected format: !command");B.debug("[AuthValueResolver] Executing command for auth value");let r=_0();try{let{stdout:n}=await _l(r.executable,[...r.argsPrefix,e],{signal:AbortSignal.timeout(zZt),windowsHide:!0}),o=n.trim();if(!o)throw new Error(`Command '${e}' returned empty output`);return o}catch(n){throw n instanceof Error&&n.name==="AbortError"?new Error(`Command '${e}' timed out after ${zZt/1e3} seconds`):n}}return t}function WZt(t){return t.startsWith("$")||t.startsWith("!")}var fei="X-API-Key",zle=class extends eh{config;type="apiKey";resolvedKey;headerName;constructor(e){super(),this.config=e,this.headerName=e.name??fei}async initialize(){WZt(this.config.key)?(this.resolvedKey=await j1(this.config.key),B.debug(`[ApiKeyAuthProvider] Resolved API key from: ${this.config.key.startsWith("$")?"env var":"command"}`)):this.resolvedKey=this.config.key}async headers(){if(!this.resolvedKey)throw new Error("ApiKeyAuthProvider not initialized. Call initialize() first.");return{[this.headerName]:this.resolvedKey}}async shouldRetryWithHeaders(e,r){if(r.status!==401&&r.status!==403){this.authRetryCount=0;return}if(!(!this.config.key.startsWith("!")||this.config.key.startsWith("!!"))&&!(this.authRetryCount>=eh.MAX_AUTH_RETRIES))return this.authRetryCount++,B.debug("[ApiKeyAuthProvider] Re-resolving API key after auth failure"),this.resolvedKey=await j1(this.config.key),this.headers()}};var Wle=class extends eh{config;type="http";resolvedToken;resolvedUsername;resolvedPassword;resolvedValue;constructor(e){super(),this.config=e}async initialize(){let e=this.config;"token"in e?this.resolvedToken=await j1(e.token):"username"in e?(this.resolvedUsername=await j1(e.username),this.resolvedPassword=await j1(e.password)):this.resolvedValue=await j1(e.value),B.debug(`[HttpAuthProvider] Initialized with scheme: ${this.config.scheme}`)}async headers(){let e=this.config;if("token"in e){if(!this.resolvedToken)throw new Error("HttpAuthProvider not initialized");return{Authorization:`Bearer ${this.resolvedToken}`}}if("username"in e){if(!this.resolvedUsername||!this.resolvedPassword)throw new Error("HttpAuthProvider not initialized");return{Authorization:`Basic ${Buffer.from(`${this.resolvedUsername}:${this.resolvedPassword}`).toString("base64")}`}}if(!this.resolvedValue)throw new Error("HttpAuthProvider not initialized");return{Authorization:`${e.scheme} ${this.resolvedValue}`}}async shouldRetryWithHeaders(e,r){if(r.status===401||r.status===403){if(this.authRetryCount>=eh.MAX_AUTH_RETRIES)return;B.debug("[HttpAuthProvider] Re-resolving values after auth failure"),await this.initialize()}return super.shouldRetryWithHeaders(e,r)}};var YZt=Fe(Ss(),1);var CC=class extends Error{constructor(e){super(e),this.name="ResourceMismatchError"}},_k=5*60*1e3,$s=class{static buildWellKnownUrls(e,r=!1){let n=new URL(e),o=`${n.protocol}//${n.host}`,s=r?"":n.pathname.replace(/\/$/,"");return{protectedResource:new URL(`/.well-known/oauth-protected-resource${s}`,o).toString(),authorizationServer:new URL(`/.well-known/oauth-authorization-server${s}`,o).toString()}}static async fetchProtectedResourceMetadata(e){try{let r=await fetch(e);return r.ok?await r.json():null}catch(r){return B.debug(`Failed to fetch protected resource metadata from ${e}: ${Se(r)}`),null}}static async fetchAuthorizationServerMetadata(e){try{let r=await fetch(e);return r.ok?await r.json():null}catch(r){return B.debug(`Failed to fetch authorization server metadata from ${e}: ${Se(r)}`),null}}static metadataToOAuthConfig(e){return{authorizationUrl:e.authorization_endpoint,issuer:e.issuer,tokenUrl:e.token_endpoint,scopes:e.scopes_supported||[],registrationUrl:e.registration_endpoint}}static async discoverAuthorizationServerMetadata(e){let r=new URL(e),n=`${r.protocol}//${r.host}`,o=[];r.pathname!=="/"&&(o.push(new URL(`/.well-known/oauth-authorization-server${r.pathname}`,n).toString()),o.push(new URL(`/.well-known/openid-configuration${r.pathname}`,n).toString()),o.push(new URL(`${r.pathname}/.well-known/openid-configuration`,n).toString())),o.push(new URL("/.well-known/oauth-authorization-server",n).toString()),o.push(new URL("/.well-known/openid-configuration",n).toString());for(let s of o){let c=await this.fetchAuthorizationServerMetadata(s);if(c)return c}return B.debug(`Metadata discovery failed for authorization server ${e}`),null}static async discoverOAuthConfig(e){try{let r=this.buildWellKnownUrls(e),n=await this.fetchProtectedResourceMetadata(r.protectedResource);if(!n){let s=new URL(e);if(s.pathname&&s.pathname!=="/"){let c=this.buildWellKnownUrls(e,!0);n=await this.fetchProtectedResourceMetadata(c.protectedResource)}}if(n){let s=this.buildResourceParameter(e);if(!this.isEquivalentResourceIdentifier(n.resource,s))throw new CC(`Protected resource ${n.resource} does not match expected ${s}`)}if(n?.authorization_servers?.length){let s=n.authorization_servers[0],c=await this.discoverAuthorizationServerMetadata(s);if(c){let u=this.metadataToOAuthConfig(c);return c.registration_endpoint&&B.log("Dynamic client registration is supported at:",c.registration_endpoint),u}}B.debug(`Trying OAuth discovery fallback at ${e}`);let o=await this.discoverAuthorizationServerMetadata(e);if(o){let s=this.metadataToOAuthConfig(o);return o.registration_endpoint&&B.log("Dynamic client registration is supported at:",o.registration_endpoint),s}return null}catch(r){if(r instanceof CC)throw r;return B.debug(`Failed to discover OAuth configuration: ${Se(r)}`),null}}static parseWWWAuthenticateHeader(e){let r=e.match(/resource_metadata="([^"]+)"/);return r?r[1]:null}static async discoverOAuthFromWWWAuthenticate(e,r){let n=this.parseWWWAuthenticateHeader(e);if(!n)return null;let o=await this.fetchProtectedResourceMetadata(n);if(o&&r){let u=this.buildResourceParameter(r);if(!this.isEquivalentResourceIdentifier(o.resource,u))throw new CC(`Protected resource ${o.resource} does not match expected ${u}`)}if(!o?.authorization_servers?.length)return null;let s=o.authorization_servers[0],c=await this.discoverAuthorizationServerMetadata(s);return c?this.metadataToOAuthConfig(c):null}static extractBaseUrl(e){let r=new URL(e);return`${r.protocol}//${r.host}`}static isSSEEndpoint(e){return e.includes("/sse")||!e.includes("/mcp")}static buildResourceParameter(e){let r=new URL(e);return`${r.protocol}//${r.host}${r.pathname}`}static isEquivalentResourceIdentifier(e,r){let n=o=>{try{return this.buildResourceParameter(o)}catch{return o}};return n(e)===n(r)}static parseTokenExpiry(e){try{let r=JSON.parse(Buffer.from(e.split(".")[1],"base64").toString());if(r&&typeof r.exp=="number")return r.exp*1e3}catch(r){B.error("Failed to parse ID token for expiry time with error:",r)}}};var JZt=/^(.*\.)?run\.app$/,hei=[/^.+\.googleapis\.com$/,JZt],Yle=class extends eh{config;type="google-credentials";auth;useIdToken=!1;audience;cachedToken;tokenExpiryTime;constructor(e,r){if(super(),this.config=e,!r)throw new Error("targetUrl must be provided to GoogleCredentialsAuthProvider to determine token audience.");let n=new URL(r).hostname;if(JZt.test(n)&&(this.useIdToken=!0),this.audience=n,!this.useIdToken&&!hei.some(c=>c.test(n)))throw new Error(`Host "${n}" is not an allowed host for Google Credential provider.`);let s=this.config.scopes&&this.config.scopes.length>0?this.config.scopes:["https://www.googleapis.com/auth/cloud-platform"];this.auth=new YZt.GoogleAuth({scopes:s})}async initialize(){}async headers(){if(this.cachedToken&&this.tokenExpiryTime&&Date.now()<this.tokenExpiryTime-_k)return{Authorization:`Bearer ${this.cachedToken}`};if(this.cachedToken=void 0,this.tokenExpiryTime=void 0,this.useIdToken)try{let r=await(await this.auth.getIdTokenClient(this.audience)).idTokenProvider.fetchIdToken(this.audience),n=$s.parseTokenExpiry(r);return n&&(this.tokenExpiryTime=n,this.cachedToken=r),{Authorization:`Bearer ${r}`}}catch(e){let r=`Failed to get ADC ID token: ${e instanceof Error?e.message:String(e)}`;throw B.error(r,e),new Error(r)}try{let e=await this.auth.getClient(),r=await e.getAccessToken();if(r.token){this.cachedToken=r.token;let n=e.credentials;return n.expiry_date&&(this.tokenExpiryTime=n.expiry_date),{Authorization:`Bearer ${r.token}`}}throw new Error("Failed to retrieve ADC access token.")}catch(e){let r=`Failed to get ADC access token: ${e instanceof Error?e.message:String(e)}`;throw B.error(r,e),new Error(r)}}async shouldRetryWithHeaders(e,r){if(r.status!==401&&r.status!==403){this.authRetryCount=0;return}if(!(this.authRetryCount>=eh.MAX_AUTH_RETRIES))return this.authRetryCount++,B.debug("[GoogleCredentialsAuthProvider] Re-fetching token after auth failure"),this.cachedToken=void 0,this.tokenExpiryTime=void 0,this.headers()}};var Q1=class t{static async create(e){let{agentName:r,authConfig:n,agentCard:o}=e;if(!n)return o?.securitySchemes&&Object.keys(o.securitySchemes).length>0,void 0;switch(n.type){case"google-credentials":{let s=new Yle(n,e.targetUrl);return await s.initialize(),s}case"apiKey":{let s=new zle(n);return await s.initialize(),s}case"http":{let s=new Wle(n);return await s.initialize(),s}case"oauth2":{let{OAuth2AuthProvider:s}=await import("./oauth2-provider-Q6HTZTKH.js"),c=new s(n,e.agentName??"unknown",o,e.agentCardUrl);return await c.initialize(),c}case"openIdConnect":throw new Error("openIdConnect auth provider not yet implemented");default:{let s=n;throw new Error(`Unknown auth type: ${s.type}`)}}}static async createFromConfig(e,r){return await t.create({authConfig:e,agentName:r})}static validateAuthConfig(e,r){if(!r||Object.keys(r).length===0)return{valid:!0};let n=Object.keys(r);if(!e)return{valid:!1,diff:{requiredSchemes:n,configuredType:void 0,missingConfig:["Authentication is required but not configured"]}};let o=t.findMatchingScheme(e,r);return o.matched?{valid:!0}:{valid:!1,diff:{requiredSchemes:n,configuredType:e.type,missingConfig:o.missingConfig}}}static findMatchingScheme(e,r){let n=[];for(let[o,s]of Object.entries(r))switch(s.type){case"apiKey":if(e.type==="apiKey")return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires apiKey authentication`);break;case"http":if(e.type==="http"){if(e.scheme.toLowerCase()===s.scheme.toLowerCase())return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires HTTP ${s.scheme} authentication, but ${e.scheme} was configured`)}else{if(e.type==="google-credentials"&&s.scheme.toLowerCase()==="bearer")return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires HTTP ${s.scheme} authentication`)}break;case"oauth2":if(e.type==="oauth2")return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires OAuth 2.0 authentication`);break;case"openIdConnect":if(e.type==="openIdConnect")return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires OpenID Connect authentication`);break;case"mutualTLS":n.push(`Scheme '${o}' requires mTLS authentication (not yet supported)`);break;default:{let c=s;n.push(`Unknown security scheme type: ${c.type}`)}}return{matched:!1,missingConfig:n}}static describeRequiredAuth(e){let r=[];for(let[n,o]of Object.entries(e))switch(o.type){case"apiKey":r.push(`API Key (${n}): Send ${o.name} in ${o.in}`);break;case"http":r.push(`HTTP ${o.scheme} (${n})`);break;case"oauth2":r.push(`OAuth 2.0 (${n})`);break;case"openIdConnect":r.push(`OpenID Connect (${n})`);break;case"mutualTLS":r.push(`Mutual TLS (${n})`);break;default:{let s=o;r.push(`Unknown (${n}): ${s.type}`)}}return r.join(" OR ")}};var KZt=100,Ek=class t{config;runtimeAliases={};runtimeOverrides=[];constructor(e){this.config=e}getAvailableModelOptions(e){let r=this.config.modelDefinitions??{},n=e.hasAccessToPreview??!1,o=e.useGemini3_1??!1,s=e.useGemini3_1FlashLite??!1,c=Object.entries(r).filter(([a,p])=>!(p.isVisible!==!0||p.isPreview&&!n||p.tier!=="auto")).map(([a,p])=>({modelId:a,name:p.displayName??Lv(a),description:a==="auto-gemini-3"&&o?(p.dialogDescription??"").replace("gemini-3-pro","gemini-3.1-pro"):p.dialogDescription??"",tier:p.tier??"auto"})),u=Object.entries(r).filter(([a,p])=>!(p.isVisible!==!0||p.isPreview&&!n||p.tier==="auto"||e.hasAccessToProModel===!1&&eKe(a)||a===gx&&!o||a===BQ&&!s)).map(([a,p])=>{let f=this.resolveModelId(a,e),g=this.resolveModelId(a,{useGemini3_1:o,useGemini3_1FlashLite:s});return{modelId:f,name:p.displayName??Lv(g),description:p.dialogDescription??"",tier:p.tier??"custom"}}),d=new Set,l=u.filter(a=>d.has(a.modelId)?!1:(d.add(a.modelId),!0));return[...c,...l]}getModelDefinition(e){let r=this.config.modelDefinitions?.[e];if(r)return r;if(!e.startsWith("gemini-"))return{tier:"custom",family:"custom",features:{}}}getModelDefinitions(){return this.config.modelDefinitions??{}}matches(e,r){return Object.entries(e).every(([n,o])=>{if(o===void 0)return!0;switch(n){case"useGemini3_1":return o===r.useGemini3_1;case"useGemini3_1FlashLite":return o===r.useGemini3_1FlashLite;case"useCustomTools":return o===r.useCustomTools;case"hasAccessToPreview":return o===r.hasAccessToPreview;case"requestedModels":return Array.isArray(o)&&!!r.requestedModel&&o.includes(r.requestedModel);default:return!1}})}resolveModelId(e,r={}){let n=this.config.modelIdResolutions?.[e];if(!n)return e;for(let o of n.contexts??[])if(this.matches(o.condition,r))return o.target;return n.default}resolveClassifierModelId(e,r,n={}){let o=this.config.classifierIdResolutions?.[e],s={...n,requestedModel:r};if(!o)return this.resolveModelId(e,s);for(let c of o.contexts??[])if(this.matches(c.condition,s))return c.target;return o.default}getModelChain(e){return this.config.modelChains?.[e]}resolveChain(e,r={}){let n=this.config.modelChains?.[e];if(n)return n.map(o=>({...o,model:this.resolveModelId(o.model,r)}))}registerRuntimeModelConfig(e,r){this.runtimeAliases[e]=r}registerRuntimeModelOverride(e){this.runtimeOverrides.push(e)}internalGetResolvedConfig(e){let{aliases:r={},customAliases:n={},overrides:o=[],customOverrides:s=[]}=this.config||{},c={...r,...n,...this.runtimeAliases},{aliasChain:u,baseModel:d,resolvedConfig:l}=this.resolveAliasChain(e.model,c,e.isChatModel),a=this.buildModelLevelMap(u,d),p=[...o,...s,...this.runtimeOverrides],f=this.findMatchingOverrides(p,e,a);this.sortOverrides(f);let g={model:d,generateContentConfig:l};for(let y of f)g=t.merge(g,y.modelConfig);return{model:g.model,generateContentConfig:g.generateContentConfig??{}}}resolveAliasChain(e,r,n){let o=[];if(r[e]){let s=e,c=new Set;for(;s;){let l=r[s];if(!l)throw new Error(`Alias "${s}" not found.`);if(c.size>=KZt)throw new Error(`Alias inheritance chain exceeded maximum depth of ${KZt}.`);if(c.has(s))throw new Error(`Circular alias dependency: ${[...c,s].join(" -> ")}`);c.add(s),o.push(s),s=l.extends}let u=[...o].reverse(),d={};for(let l of u){let a=r[l];d=t.merge(d,a.modelConfig)}return{aliasChain:u,baseModel:d.model,resolvedConfig:d.generateContentConfig??{}}}if(n){let s="chat-base";if(r[s]){let c=this.resolveAliasChain(s,r);return{aliasChain:[...c.aliasChain,e],baseModel:e,resolvedConfig:c.resolvedConfig}}}return{aliasChain:[e],baseModel:e,resolvedConfig:{}}}buildModelLevelMap(e,r){let n=new Map;return r&&n.set(r,0),e.forEach((o,s)=>n.set(o,s+1)),n}findMatchingOverrides(e,r,n){return e.map((o,s)=>{let c=Object.entries(o.match);if(c.length===0)return null;let u=0;return c.every(([l,a])=>{if(l==="model"){let p=n.get(a);return p===void 0?!1:(u=p,!0)}return l==="overrideScope"&&a==="core"?r.overrideScope==="core"||!r.overrideScope:r[l]===a})?{specificity:c.length,level:u,modelConfig:o.modelConfig,index:s}:null}).filter(o=>o!==null)}sortOverrides(e){e.sort((r,n)=>r.level!==n.level?r.level-n.level:r.specificity!==n.specificity?r.specificity-n.specificity:r.index-n.index)}getResolvedConfig(e){let r=this.internalGetResolvedConfig(e);if(!r.model)throw new Error(`Could not resolve a model name for alias "${e.model}". Please ensure the alias chain or a matching override specifies a model.`);return{model:r.model,generateContentConfig:r.generateContentConfig}}static isObject(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}static merge(e,r){return{model:r.model??e.model,generateContentConfig:t.deepMerge(e.generateContentConfig,r.generateContentConfig)}}static deepMerge(e,r){return t.genericDeepMerge(e,r)}static genericDeepMerge(...e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{let s=r[o],c=n[o];t.isObject(s)&&t.isObject(c)?r[o]=t.genericDeepMerge(s,c):r[o]=c}),r),{})}};var Um=class extends Error{userMessage;agentName;constructor(e,r,n,o){super(r,o),this.name="A2AAgentError",this.agentName=e,this.userMessage=n}},LQe=class extends Um{constructor(e,r){let n=`Agent card not found at ${r} (HTTP 404)`,o=`Agent card not found (404) at ${r}. Verify the agent_card_url in your agent definition.`;super(e,n,o),this.name="AgentCardNotFoundError"}},Jle=class extends Um{statusCode;constructor(e,r,n){let o=n===401?"Unauthorized":"Forbidden",s=`Agent card request returned ${n} ${o} for ${r}`,c=`Authentication failed (${n} ${o}) at ${r}. Check the "auth" configuration in your agent definition.`;super(e,s,c),this.name="AgentCardAuthError",this.statusCode=n}},Kle=class extends Um{requiredAuth;missingFields;constructor(e,r,n){let o=`Agent "${e}" requires authentication but none is configured`,s=`Agent requires ${r} but no auth is configured. Missing: ${n.join(", ")}`;super(e,o,s),this.name="AgentAuthConfigMissingError",this.requiredAuth=r,this.missingFields=n}},Xle=class extends Um{constructor(e,r,n){let o=n instanceof Error?n.message:String(n),s=`Failed to connect to agent "${e}" at ${r}: ${o}`,c=`Connection failed for ${r}: ${o}`;super(e,s,c,{cause:n}),this.name="AgentConnectionError"}};function gei(t){return typeof t=="object"&&t!==null}function mei(t){let e=[],r=t,n=0,o=10;for(;r&&n<o;){if(gei(r)){let s=r;r instanceof Error?e.push(r.message):typeof s.message=="string"&&e.push(s.message),typeof s.code=="string"&&e.push(s.code),typeof s.status=="number"?e.push(String(s.status)):typeof s.statusCode=="number"&&e.push(String(s.statusCode)),r=s.cause}else if(typeof r=="string"){e.push(r);break}else{e.push(String(r));break}n++}return e.join(" ")}function XZt(t,e,r){let n=mei(r);return/\b(ECONNREFUSED|ENOTFOUND|EHOSTUNREACH|ETIMEDOUT)\b/i.test(n)?new Xle(t,e,r):/\b404\b|\bnot[\s_-]?found\b/i.test(n)?new LQe(t,e):/\b401\b|unauthorized/i.test(n)?new Jle(t,e,401):/\b403\b|forbidden/i.test(n)?new Jle(t,e,403):new Xle(t,e,r)}function WF(t){return`${t.name}-config`}var ZZt="AgentRegistry (Dynamic)",Zle=class{config;agents=new Map;allDefinitions=new Map;builtInAgents=new Set;initialized=!1;constructor(e){this.config=e}async initialize(){if(this.initialized){await this.loadAgents();return}this.initialized=!0,be.on(vr.ModelChanged,this.onModelChanged),await this.loadAgents()}isBuiltIn(e){return this.builtInAgents.has(e)}onModelChanged=()=>{this.refreshAgents("local").catch(e=>{B.error("[AgentRegistry] Failed to refresh agents on model change:",e)})};async reload(){let e=new Map(this.agents),r=[];this.config.getA2AClientManager()?.clearCache(),await this.config.reloadAgents(),await this.loadAgents(r);let n=Array.from(this.agents.values()),o=[],s=[],c=[],u=0,d=0;for(let l of n){l.kind==="local"?u++:l.kind==="remote"&&d++;let a=e.get(l.name);a?l.metadata?.hash!==a.metadata?.hash&&s.push(l.name):o.push(l.name)}for(let l of e.keys())this.agents.has(l)||c.push(l);return be.emitAgentsRefreshed(),{totalLoaded:n.length,localCount:u,remoteCount:d,newAgents:o,updatedAgents:s,deletedAgents:c,errors:r}}async acknowledgeAgent(e){let r=this.config.getAcknowledgedAgentsService(),n=this.config.getProjectRoot();e.metadata?.hash&&(await r.acknowledge(n,e.name,e.metadata.hash),await this.registerAgent(e),be.emitAgentsRefreshed())}dispose(){be.off(vr.ModelChanged,this.onModelChanged)}async loadAgents(e){if(this.agents.clear(),this.allDefinitions.clear(),this.loadBuiltInAgents(),this.config.getPolicyEngine()?.removeRulesBySource(ZZt),!this.config.isAgentsEnabled())return;let r=zt.getUserAgentsDir(),n=await PQe(r);for(let c of n.errors){B.warn(`[AgentRegistry] Error loading user agent: ${c.message}`);let u=`Agent loading error: ${c.message}`;e?.push(u),be.emitFeedback("error",u)}await Promise.allSettled(n.agents.map(async c=>{try{this.ensureRemoteAgentHash(c),await this.registerAgent(c,e)}catch(u){let d=`Error registering user agent "${c.name}": ${u instanceof Error?u.message:String(u)}`;B.warn(`[AgentRegistry] ${d}`,u),e?.push(d),be.emitFeedback("error",d)}}));let o=this.config.getFolderTrust(),s=this.config.isTrustedFolder();if(!o||s){let c=this.config.storage.getProjectAgentsDir(),u=await PQe(c);for(let f of u.errors){let g=`Agent loading error: ${f.message}`;e?.push(g),be.emitFeedback("error",g)}let d=this.config.getAcknowledgedAgentsService(),l=this.config.getProjectRoot(),a=[],p=[];for(let f of u.agents){if(this.ensureRemoteAgentHash(f),!f.metadata?.hash){p.push(f);continue}await d.isAcknowledged(l,f.name,f.metadata.hash)?p.push(f):a.push(f)}a.length>0&&be.emitAgentsDiscovered(a),await Promise.allSettled(p.map(async f=>{try{await this.registerAgent(f,e)}catch(g){let y=`Error registering project agent "${f.name}": ${g instanceof Error?g.message:String(g)}`;B.warn(`[AgentRegistry] ${y}`,g),e?.push(y),be.emitFeedback("error",y)}}))}else be.emitFeedback("info","Skipping project agents due to untrusted folder. To enable, ensure that the project root is trusted.");for(let c of this.config.getExtensions())c.isActive&&c.agents&&await Promise.allSettled(c.agents.map(async u=>{try{await this.registerAgent(u,e)}catch(d){let l=`Error registering extension agent "${u.name}": ${d instanceof Error?d.message:String(d)}`;B.warn(`[AgentRegistry] ${l}`,d),e?.push(l),be.emitFeedback("error",l)}}));this.config.getDebugMode()&&B.log(`[AgentRegistry] Loaded with ${this.agents.size} agents.`)}loadBuiltInAgents(){let e=Sle(this.config);this.builtInAgents.add(e.name),this.registerLocalAgent(e);let r=qZt(this.config);this.builtInAgents.add(r.name),this.registerLocalAgent(r);let n=VZt(this.config);this.builtInAgents.add(n.name),this.registerLocalAgent(n);let o=this.config.getBrowserAgentConfig();if(o.enabled){let s=process.env.SANDBOX,c=!!s&&s!=="sandbox-exec"&&s!=="sandbox:none",u=o.customConfig.sessionMode??"persistent";if(c&&u!=="existing")be.emitFeedback("info",'Browser agent disabled in container sandbox. To use it, set sessionMode to "existing" in settings and start Chrome with --remote-debugging-port=9222 on the host.');else{let d=Hle(this.config);this.builtInAgents.add(d.name),this.registerLocalAgent(d)}}}async refreshAgents(e="all"){this.loadBuiltInAgents(),await Promise.allSettled(Array.from(this.agents.values()).map(async r=>{(e==="all"||r.kind===e)&&await this.registerAgent(r)}))}async registerAgent(e,r){e.kind==="local"?this.registerLocalAgent(e):e.kind==="remote"&&await this.registerRemoteAgent(e,r)}registerLocalAgent(e){if(e.kind!=="local")return;if(!e.name||!e.description){B.warn("[AgentRegistry] Skipping invalid agent definition. Missing name or description.");return}this.allDefinitions.set(e.name,e);let r=this.config.getAgentsSettings().overrides?.[e.name];if(!this.isAgentEnabled(e,r)){this.config.getDebugMode()&&B.log(`[AgentRegistry] Skipping disabled agent '${e.name}'`);return}this.agents.has(e.name)&&this.config.getDebugMode()&&B.log(`[AgentRegistry] Overriding agent '${e.name}'`);let n=this.applyOverrides(e,r);this.agents.set(n.name,n),this.registerModelConfigs(n),this.addAgentPolicy(n)}addAgentPolicy(e){let r=this.config.getPolicyEngine();if(r){if(r.hasRuleForTool(e.name,!0)){this.config.getDebugMode()&&B.log(`[AgentRegistry] User policy exists for '${e.name}', skipping dynamic registration.`);return}e.kind==="remote"&&r.addRule({toolName:xC.Name,argsPattern:new RegExp(`"agent_name":\\s*"${e.name}"`),decision:Ke.ASK_USER,priority:RQ+.1,source:ZZt})}}isAgentEnabled(e,r){let o=!(e.experimental===!0);return r&&r.enabled!==void 0&&(o=r.enabled),o}async registerRemoteAgent(e,r){if(e.kind!=="remote")return;if(!e.name){B.warn("[AgentRegistry] Skipping invalid agent definition. Missing name.");return}this.allDefinitions.set(e.name,e);let n=this.config.getAgentsSettings().overrides?.[e.name];if(!this.isAgentEnabled(e,n)){this.config.getDebugMode()&&B.log(`[AgentRegistry] Skipping disabled remote agent '${e.name}'`);return}this.agents.has(e.name)&&this.config.getDebugMode()&&B.log(`[AgentRegistry] Overriding agent '${e.name}'`);let o=e;o.originalDescription===void 0&&(o.originalDescription=o.description);try{let s=this.config.getA2AClientManager();if(!s){B.warn(`[AgentRegistry] Skipping remote agent '${e.name}': A2AClientManager is not available.`);return}let c=Dle(o),u;if(e.auth){let f=await Q1.create({authConfig:e.auth,agentName:e.name,targetUrl:c,agentCardUrl:o.agentCardUrl});if(!f)throw new Error(`Failed to create auth provider for agent '${e.name}'`);u=f}let d=await s.loadAgent(o.name,kle(o),u);if(d.securitySchemes){let f=Q1.validateAuthConfig(e.auth,d.securitySchemes);if(!f.valid&&f.diff){let g=Q1.describeRequiredAuth(d.securitySchemes),y=new Kle(e.name,g,f.diff.missingConfig);be.emitFeedback("warning",`[${e.name}] Agent requires authentication: ${g}`),B.warn(`[AgentRegistry] ${y.message}`)}}let l=o.originalDescription,a=d.description,p=[];if(l?.trim()&&p.push(`User Description: ${l.trim()}`),a?.trim()&&p.push(`Agent Description: ${a.trim()}`),d.skills&&d.skills.length>0){let f=d.skills.map(g=>`${g.name}: ${g.description||"No description provided"}`).join(`
2509
+ First, use <list_pages/> to check if there are any existing pages that can fulfill the user's request. If not, you MUST use <new_page/> to open the relevant URL unless the user explicitly provides different instructions.`,systemPrompt:pei(e,t.getBrowserAgentConfig().customConfig.allowedDomains)}}};var eh=class t{static MAX_AUTH_RETRIES=2;authRetryCount=0;async shouldRetryWithHeaders(e,r){if(r.status===401||r.status===403)return this.authRetryCount>=t.MAX_AUTH_RETRIES?void 0:(this.authRetryCount++,this.headers());this.authRetryCount=0}async initialize(){}};var zZt=6e4;async function j1(t){if(t.startsWith("$$")||t.startsWith("!!"))return t.slice(1);if(t.startsWith("$")){let e=t.slice(1),r=process.env[e];if(r===void 0||r==="")throw new Error(`Environment variable '${e}' is not set or is empty. Please set it before using this agent.`);return B.debug(`[AuthValueResolver] Resolved env var: ${e}`),r}if(t.startsWith("!")){let e=t.slice(1).trim();if(!e)throw new Error("Empty command in auth value. Expected format: !command");B.debug("[AuthValueResolver] Executing command for auth value");let r=_0();try{let{stdout:n}=await _l(r.executable,[...r.argsPrefix,e],{signal:AbortSignal.timeout(zZt),windowsHide:!0}),o=n.trim();if(!o)throw new Error(`Command '${e}' returned empty output`);return o}catch(n){throw n instanceof Error&&n.name==="AbortError"?new Error(`Command '${e}' timed out after ${zZt/1e3} seconds`):n}}return t}function WZt(t){return t.startsWith("$")||t.startsWith("!")}var fei="X-API-Key",zle=class extends eh{config;type="apiKey";resolvedKey;headerName;constructor(e){super(),this.config=e,this.headerName=e.name??fei}async initialize(){WZt(this.config.key)?(this.resolvedKey=await j1(this.config.key),B.debug(`[ApiKeyAuthProvider] Resolved API key from: ${this.config.key.startsWith("$")?"env var":"command"}`)):this.resolvedKey=this.config.key}async headers(){if(!this.resolvedKey)throw new Error("ApiKeyAuthProvider not initialized. Call initialize() first.");return{[this.headerName]:this.resolvedKey}}async shouldRetryWithHeaders(e,r){if(r.status!==401&&r.status!==403){this.authRetryCount=0;return}if(!(!this.config.key.startsWith("!")||this.config.key.startsWith("!!"))&&!(this.authRetryCount>=eh.MAX_AUTH_RETRIES))return this.authRetryCount++,B.debug("[ApiKeyAuthProvider] Re-resolving API key after auth failure"),this.resolvedKey=await j1(this.config.key),this.headers()}};var Wle=class extends eh{config;type="http";resolvedToken;resolvedUsername;resolvedPassword;resolvedValue;constructor(e){super(),this.config=e}async initialize(){let e=this.config;"token"in e?this.resolvedToken=await j1(e.token):"username"in e?(this.resolvedUsername=await j1(e.username),this.resolvedPassword=await j1(e.password)):this.resolvedValue=await j1(e.value),B.debug(`[HttpAuthProvider] Initialized with scheme: ${this.config.scheme}`)}async headers(){let e=this.config;if("token"in e){if(!this.resolvedToken)throw new Error("HttpAuthProvider not initialized");return{Authorization:`Bearer ${this.resolvedToken}`}}if("username"in e){if(!this.resolvedUsername||!this.resolvedPassword)throw new Error("HttpAuthProvider not initialized");return{Authorization:`Basic ${Buffer.from(`${this.resolvedUsername}:${this.resolvedPassword}`).toString("base64")}`}}if(!this.resolvedValue)throw new Error("HttpAuthProvider not initialized");return{Authorization:`${e.scheme} ${this.resolvedValue}`}}async shouldRetryWithHeaders(e,r){if(r.status===401||r.status===403){if(this.authRetryCount>=eh.MAX_AUTH_RETRIES)return;B.debug("[HttpAuthProvider] Re-resolving values after auth failure"),await this.initialize()}return super.shouldRetryWithHeaders(e,r)}};var YZt=Fe(Ss(),1);var CC=class extends Error{constructor(e){super(e),this.name="ResourceMismatchError"}},_k=5*60*1e3,$s=class{static buildWellKnownUrls(e,r=!1){let n=new URL(e),o=`${n.protocol}//${n.host}`,s=r?"":n.pathname.replace(/\/$/,"");return{protectedResource:new URL(`/.well-known/oauth-protected-resource${s}`,o).toString(),authorizationServer:new URL(`/.well-known/oauth-authorization-server${s}`,o).toString()}}static async fetchProtectedResourceMetadata(e){try{let r=await fetch(e);return r.ok?await r.json():null}catch(r){return B.debug(`Failed to fetch protected resource metadata from ${e}: ${Se(r)}`),null}}static async fetchAuthorizationServerMetadata(e){try{let r=await fetch(e);return r.ok?await r.json():null}catch(r){return B.debug(`Failed to fetch authorization server metadata from ${e}: ${Se(r)}`),null}}static metadataToOAuthConfig(e){return{authorizationUrl:e.authorization_endpoint,issuer:e.issuer,tokenUrl:e.token_endpoint,scopes:e.scopes_supported||[],registrationUrl:e.registration_endpoint}}static async discoverAuthorizationServerMetadata(e){let r=new URL(e),n=`${r.protocol}//${r.host}`,o=[];r.pathname!=="/"&&(o.push(new URL(`/.well-known/oauth-authorization-server${r.pathname}`,n).toString()),o.push(new URL(`/.well-known/openid-configuration${r.pathname}`,n).toString()),o.push(new URL(`${r.pathname}/.well-known/openid-configuration`,n).toString())),o.push(new URL("/.well-known/oauth-authorization-server",n).toString()),o.push(new URL("/.well-known/openid-configuration",n).toString());for(let s of o){let c=await this.fetchAuthorizationServerMetadata(s);if(c)return c}return B.debug(`Metadata discovery failed for authorization server ${e}`),null}static async discoverOAuthConfig(e){try{let r=this.buildWellKnownUrls(e),n=await this.fetchProtectedResourceMetadata(r.protectedResource);if(!n){let s=new URL(e);if(s.pathname&&s.pathname!=="/"){let c=this.buildWellKnownUrls(e,!0);n=await this.fetchProtectedResourceMetadata(c.protectedResource)}}if(n){let s=this.buildResourceParameter(e);if(!this.isEquivalentResourceIdentifier(n.resource,s))throw new CC(`Protected resource ${n.resource} does not match expected ${s}`)}if(n?.authorization_servers?.length){let s=n.authorization_servers[0],c=await this.discoverAuthorizationServerMetadata(s);if(c){let u=this.metadataToOAuthConfig(c);return c.registration_endpoint&&B.log("Dynamic client registration is supported at:",c.registration_endpoint),u}}B.debug(`Trying OAuth discovery fallback at ${e}`);let o=await this.discoverAuthorizationServerMetadata(e);if(o){let s=this.metadataToOAuthConfig(o);return o.registration_endpoint&&B.log("Dynamic client registration is supported at:",o.registration_endpoint),s}return null}catch(r){if(r instanceof CC)throw r;return B.debug(`Failed to discover OAuth configuration: ${Se(r)}`),null}}static parseWWWAuthenticateHeader(e){let r=e.match(/resource_metadata="([^"]+)"/);return r?r[1]:null}static async discoverOAuthFromWWWAuthenticate(e,r){let n=this.parseWWWAuthenticateHeader(e);if(!n)return null;let o=await this.fetchProtectedResourceMetadata(n);if(o&&r){let u=this.buildResourceParameter(r);if(!this.isEquivalentResourceIdentifier(o.resource,u))throw new CC(`Protected resource ${o.resource} does not match expected ${u}`)}if(!o?.authorization_servers?.length)return null;let s=o.authorization_servers[0],c=await this.discoverAuthorizationServerMetadata(s);return c?this.metadataToOAuthConfig(c):null}static extractBaseUrl(e){let r=new URL(e);return`${r.protocol}//${r.host}`}static isSSEEndpoint(e){return e.includes("/sse")||!e.includes("/mcp")}static buildResourceParameter(e){let r=new URL(e);return`${r.protocol}//${r.host}${r.pathname}`}static isEquivalentResourceIdentifier(e,r){let n=o=>{try{return this.buildResourceParameter(o)}catch{return o}};return n(e)===n(r)}static parseTokenExpiry(e){try{let r=JSON.parse(Buffer.from(e.split(".")[1],"base64").toString());if(r&&typeof r.exp=="number")return r.exp*1e3}catch(r){B.error("Failed to parse ID token for expiry time with error:",r)}}};var JZt=/^(.*\.)?run\.app$/,hei=[/^.+\.googleapis\.com$/,JZt],Yle=class extends eh{config;type="google-credentials";auth;useIdToken=!1;audience;cachedToken;tokenExpiryTime;constructor(e,r){if(super(),this.config=e,!r)throw new Error("targetUrl must be provided to GoogleCredentialsAuthProvider to determine token audience.");let n=new URL(r).hostname;if(JZt.test(n)&&(this.useIdToken=!0),this.audience=n,!this.useIdToken&&!hei.some(c=>c.test(n)))throw new Error(`Host "${n}" is not an allowed host for Google Credential provider.`);let s=this.config.scopes&&this.config.scopes.length>0?this.config.scopes:["https://www.googleapis.com/auth/cloud-platform"];this.auth=new YZt.GoogleAuth({scopes:s})}async initialize(){}async headers(){if(this.cachedToken&&this.tokenExpiryTime&&Date.now()<this.tokenExpiryTime-_k)return{Authorization:`Bearer ${this.cachedToken}`};if(this.cachedToken=void 0,this.tokenExpiryTime=void 0,this.useIdToken)try{let r=await(await this.auth.getIdTokenClient(this.audience)).idTokenProvider.fetchIdToken(this.audience),n=$s.parseTokenExpiry(r);return n&&(this.tokenExpiryTime=n,this.cachedToken=r),{Authorization:`Bearer ${r}`}}catch(e){let r=`Failed to get ADC ID token: ${e instanceof Error?e.message:String(e)}`;throw B.error(r,e),new Error(r)}try{let e=await this.auth.getClient(),r=await e.getAccessToken();if(r.token){this.cachedToken=r.token;let n=e.credentials;return n.expiry_date&&(this.tokenExpiryTime=n.expiry_date),{Authorization:`Bearer ${r.token}`}}throw new Error("Failed to retrieve ADC access token.")}catch(e){let r=`Failed to get ADC access token: ${e instanceof Error?e.message:String(e)}`;throw B.error(r,e),new Error(r)}}async shouldRetryWithHeaders(e,r){if(r.status!==401&&r.status!==403){this.authRetryCount=0;return}if(!(this.authRetryCount>=eh.MAX_AUTH_RETRIES))return this.authRetryCount++,B.debug("[GoogleCredentialsAuthProvider] Re-fetching token after auth failure"),this.cachedToken=void 0,this.tokenExpiryTime=void 0,this.headers()}};var Q1=class t{static async create(e){let{agentName:r,authConfig:n,agentCard:o}=e;if(!n)return o?.securitySchemes&&Object.keys(o.securitySchemes).length>0,void 0;switch(n.type){case"google-credentials":{let s=new Yle(n,e.targetUrl);return await s.initialize(),s}case"apiKey":{let s=new zle(n);return await s.initialize(),s}case"http":{let s=new Wle(n);return await s.initialize(),s}case"oauth2":{let{OAuth2AuthProvider:s}=await import("./oauth2-provider-3U23IVR2.js"),c=new s(n,e.agentName??"unknown",o,e.agentCardUrl);return await c.initialize(),c}case"openIdConnect":throw new Error("openIdConnect auth provider not yet implemented");default:{let s=n;throw new Error(`Unknown auth type: ${s.type}`)}}}static async createFromConfig(e,r){return await t.create({authConfig:e,agentName:r})}static validateAuthConfig(e,r){if(!r||Object.keys(r).length===0)return{valid:!0};let n=Object.keys(r);if(!e)return{valid:!1,diff:{requiredSchemes:n,configuredType:void 0,missingConfig:["Authentication is required but not configured"]}};let o=t.findMatchingScheme(e,r);return o.matched?{valid:!0}:{valid:!1,diff:{requiredSchemes:n,configuredType:e.type,missingConfig:o.missingConfig}}}static findMatchingScheme(e,r){let n=[];for(let[o,s]of Object.entries(r))switch(s.type){case"apiKey":if(e.type==="apiKey")return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires apiKey authentication`);break;case"http":if(e.type==="http"){if(e.scheme.toLowerCase()===s.scheme.toLowerCase())return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires HTTP ${s.scheme} authentication, but ${e.scheme} was configured`)}else{if(e.type==="google-credentials"&&s.scheme.toLowerCase()==="bearer")return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires HTTP ${s.scheme} authentication`)}break;case"oauth2":if(e.type==="oauth2")return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires OAuth 2.0 authentication`);break;case"openIdConnect":if(e.type==="openIdConnect")return{matched:!0,missingConfig:[]};n.push(`Scheme '${o}' requires OpenID Connect authentication`);break;case"mutualTLS":n.push(`Scheme '${o}' requires mTLS authentication (not yet supported)`);break;default:{let c=s;n.push(`Unknown security scheme type: ${c.type}`)}}return{matched:!1,missingConfig:n}}static describeRequiredAuth(e){let r=[];for(let[n,o]of Object.entries(e))switch(o.type){case"apiKey":r.push(`API Key (${n}): Send ${o.name} in ${o.in}`);break;case"http":r.push(`HTTP ${o.scheme} (${n})`);break;case"oauth2":r.push(`OAuth 2.0 (${n})`);break;case"openIdConnect":r.push(`OpenID Connect (${n})`);break;case"mutualTLS":r.push(`Mutual TLS (${n})`);break;default:{let s=o;r.push(`Unknown (${n}): ${s.type}`)}}return r.join(" OR ")}};var KZt=100,Ek=class t{config;runtimeAliases={};runtimeOverrides=[];constructor(e){this.config=e}getAvailableModelOptions(e){let r=this.config.modelDefinitions??{},n=e.hasAccessToPreview??!1,o=e.useGemini3_1??!1,s=e.useGemini3_1FlashLite??!1,c=Object.entries(r).filter(([a,p])=>!(p.isVisible!==!0||p.isPreview&&!n||p.tier!=="auto")).map(([a,p])=>({modelId:a,name:p.displayName??Lv(a),description:a==="auto-gemini-3"&&o?(p.dialogDescription??"").replace("gemini-3-pro","gemini-3.1-pro"):p.dialogDescription??"",tier:p.tier??"auto"})),u=Object.entries(r).filter(([a,p])=>!(p.isVisible!==!0||p.isPreview&&!n||p.tier==="auto"||e.hasAccessToProModel===!1&&eKe(a)||a===gx&&!o||a===BQ&&!s)).map(([a,p])=>{let f=this.resolveModelId(a,e),g=this.resolveModelId(a,{useGemini3_1:o,useGemini3_1FlashLite:s});return{modelId:f,name:p.displayName??Lv(g),description:p.dialogDescription??"",tier:p.tier??"custom"}}),d=new Set,l=u.filter(a=>d.has(a.modelId)?!1:(d.add(a.modelId),!0));return[...c,...l]}getModelDefinition(e){let r=this.config.modelDefinitions?.[e];if(r)return r;if(!e.startsWith("gemini-"))return{tier:"custom",family:"custom",features:{}}}getModelDefinitions(){return this.config.modelDefinitions??{}}matches(e,r){return Object.entries(e).every(([n,o])=>{if(o===void 0)return!0;switch(n){case"useGemini3_1":return o===r.useGemini3_1;case"useGemini3_1FlashLite":return o===r.useGemini3_1FlashLite;case"useCustomTools":return o===r.useCustomTools;case"hasAccessToPreview":return o===r.hasAccessToPreview;case"requestedModels":return Array.isArray(o)&&!!r.requestedModel&&o.includes(r.requestedModel);default:return!1}})}resolveModelId(e,r={}){let n=this.config.modelIdResolutions?.[e];if(!n)return e;for(let o of n.contexts??[])if(this.matches(o.condition,r))return o.target;return n.default}resolveClassifierModelId(e,r,n={}){let o=this.config.classifierIdResolutions?.[e],s={...n,requestedModel:r};if(!o)return this.resolveModelId(e,s);for(let c of o.contexts??[])if(this.matches(c.condition,s))return c.target;return o.default}getModelChain(e){return this.config.modelChains?.[e]}resolveChain(e,r={}){let n=this.config.modelChains?.[e];if(n)return n.map(o=>({...o,model:this.resolveModelId(o.model,r)}))}registerRuntimeModelConfig(e,r){this.runtimeAliases[e]=r}registerRuntimeModelOverride(e){this.runtimeOverrides.push(e)}internalGetResolvedConfig(e){let{aliases:r={},customAliases:n={},overrides:o=[],customOverrides:s=[]}=this.config||{},c={...r,...n,...this.runtimeAliases},{aliasChain:u,baseModel:d,resolvedConfig:l}=this.resolveAliasChain(e.model,c,e.isChatModel),a=this.buildModelLevelMap(u,d),p=[...o,...s,...this.runtimeOverrides],f=this.findMatchingOverrides(p,e,a);this.sortOverrides(f);let g={model:d,generateContentConfig:l};for(let y of f)g=t.merge(g,y.modelConfig);return{model:g.model,generateContentConfig:g.generateContentConfig??{}}}resolveAliasChain(e,r,n){let o=[];if(r[e]){let s=e,c=new Set;for(;s;){let l=r[s];if(!l)throw new Error(`Alias "${s}" not found.`);if(c.size>=KZt)throw new Error(`Alias inheritance chain exceeded maximum depth of ${KZt}.`);if(c.has(s))throw new Error(`Circular alias dependency: ${[...c,s].join(" -> ")}`);c.add(s),o.push(s),s=l.extends}let u=[...o].reverse(),d={};for(let l of u){let a=r[l];d=t.merge(d,a.modelConfig)}return{aliasChain:u,baseModel:d.model,resolvedConfig:d.generateContentConfig??{}}}if(n){let s="chat-base";if(r[s]){let c=this.resolveAliasChain(s,r);return{aliasChain:[...c.aliasChain,e],baseModel:e,resolvedConfig:c.resolvedConfig}}}return{aliasChain:[e],baseModel:e,resolvedConfig:{}}}buildModelLevelMap(e,r){let n=new Map;return r&&n.set(r,0),e.forEach((o,s)=>n.set(o,s+1)),n}findMatchingOverrides(e,r,n){return e.map((o,s)=>{let c=Object.entries(o.match);if(c.length===0)return null;let u=0;return c.every(([l,a])=>{if(l==="model"){let p=n.get(a);return p===void 0?!1:(u=p,!0)}return l==="overrideScope"&&a==="core"?r.overrideScope==="core"||!r.overrideScope:r[l]===a})?{specificity:c.length,level:u,modelConfig:o.modelConfig,index:s}:null}).filter(o=>o!==null)}sortOverrides(e){e.sort((r,n)=>r.level!==n.level?r.level-n.level:r.specificity!==n.specificity?r.specificity-n.specificity:r.index-n.index)}getResolvedConfig(e){let r=this.internalGetResolvedConfig(e);if(!r.model)throw new Error(`Could not resolve a model name for alias "${e.model}". Please ensure the alias chain or a matching override specifies a model.`);return{model:r.model,generateContentConfig:r.generateContentConfig}}static isObject(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}static merge(e,r){return{model:r.model??e.model,generateContentConfig:t.deepMerge(e.generateContentConfig,r.generateContentConfig)}}static deepMerge(e,r){return t.genericDeepMerge(e,r)}static genericDeepMerge(...e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{let s=r[o],c=n[o];t.isObject(s)&&t.isObject(c)?r[o]=t.genericDeepMerge(s,c):r[o]=c}),r),{})}};var Um=class extends Error{userMessage;agentName;constructor(e,r,n,o){super(r,o),this.name="A2AAgentError",this.agentName=e,this.userMessage=n}},LQe=class extends Um{constructor(e,r){let n=`Agent card not found at ${r} (HTTP 404)`,o=`Agent card not found (404) at ${r}. Verify the agent_card_url in your agent definition.`;super(e,n,o),this.name="AgentCardNotFoundError"}},Jle=class extends Um{statusCode;constructor(e,r,n){let o=n===401?"Unauthorized":"Forbidden",s=`Agent card request returned ${n} ${o} for ${r}`,c=`Authentication failed (${n} ${o}) at ${r}. Check the "auth" configuration in your agent definition.`;super(e,s,c),this.name="AgentCardAuthError",this.statusCode=n}},Kle=class extends Um{requiredAuth;missingFields;constructor(e,r,n){let o=`Agent "${e}" requires authentication but none is configured`,s=`Agent requires ${r} but no auth is configured. Missing: ${n.join(", ")}`;super(e,o,s),this.name="AgentAuthConfigMissingError",this.requiredAuth=r,this.missingFields=n}},Xle=class extends Um{constructor(e,r,n){let o=n instanceof Error?n.message:String(n),s=`Failed to connect to agent "${e}" at ${r}: ${o}`,c=`Connection failed for ${r}: ${o}`;super(e,s,c,{cause:n}),this.name="AgentConnectionError"}};function gei(t){return typeof t=="object"&&t!==null}function mei(t){let e=[],r=t,n=0,o=10;for(;r&&n<o;){if(gei(r)){let s=r;r instanceof Error?e.push(r.message):typeof s.message=="string"&&e.push(s.message),typeof s.code=="string"&&e.push(s.code),typeof s.status=="number"?e.push(String(s.status)):typeof s.statusCode=="number"&&e.push(String(s.statusCode)),r=s.cause}else if(typeof r=="string"){e.push(r);break}else{e.push(String(r));break}n++}return e.join(" ")}function XZt(t,e,r){let n=mei(r);return/\b(ECONNREFUSED|ENOTFOUND|EHOSTUNREACH|ETIMEDOUT)\b/i.test(n)?new Xle(t,e,r):/\b404\b|\bnot[\s_-]?found\b/i.test(n)?new LQe(t,e):/\b401\b|unauthorized/i.test(n)?new Jle(t,e,401):/\b403\b|forbidden/i.test(n)?new Jle(t,e,403):new Xle(t,e,r)}function WF(t){return`${t.name}-config`}var ZZt="AgentRegistry (Dynamic)",Zle=class{config;agents=new Map;allDefinitions=new Map;builtInAgents=new Set;initialized=!1;constructor(e){this.config=e}async initialize(){if(this.initialized){await this.loadAgents();return}this.initialized=!0,be.on(vr.ModelChanged,this.onModelChanged),await this.loadAgents()}isBuiltIn(e){return this.builtInAgents.has(e)}onModelChanged=()=>{this.refreshAgents("local").catch(e=>{B.error("[AgentRegistry] Failed to refresh agents on model change:",e)})};async reload(){let e=new Map(this.agents),r=[];this.config.getA2AClientManager()?.clearCache(),await this.config.reloadAgents(),await this.loadAgents(r);let n=Array.from(this.agents.values()),o=[],s=[],c=[],u=0,d=0;for(let l of n){l.kind==="local"?u++:l.kind==="remote"&&d++;let a=e.get(l.name);a?l.metadata?.hash!==a.metadata?.hash&&s.push(l.name):o.push(l.name)}for(let l of e.keys())this.agents.has(l)||c.push(l);return be.emitAgentsRefreshed(),{totalLoaded:n.length,localCount:u,remoteCount:d,newAgents:o,updatedAgents:s,deletedAgents:c,errors:r}}async acknowledgeAgent(e){let r=this.config.getAcknowledgedAgentsService(),n=this.config.getProjectRoot();e.metadata?.hash&&(await r.acknowledge(n,e.name,e.metadata.hash),await this.registerAgent(e),be.emitAgentsRefreshed())}dispose(){be.off(vr.ModelChanged,this.onModelChanged)}async loadAgents(e){if(this.agents.clear(),this.allDefinitions.clear(),this.loadBuiltInAgents(),this.config.getPolicyEngine()?.removeRulesBySource(ZZt),!this.config.isAgentsEnabled())return;let r=zt.getUserAgentsDir(),n=await PQe(r);for(let c of n.errors){B.warn(`[AgentRegistry] Error loading user agent: ${c.message}`);let u=`Agent loading error: ${c.message}`;e?.push(u),be.emitFeedback("error",u)}await Promise.allSettled(n.agents.map(async c=>{try{this.ensureRemoteAgentHash(c),await this.registerAgent(c,e)}catch(u){let d=`Error registering user agent "${c.name}": ${u instanceof Error?u.message:String(u)}`;B.warn(`[AgentRegistry] ${d}`,u),e?.push(d),be.emitFeedback("error",d)}}));let o=this.config.getFolderTrust(),s=this.config.isTrustedFolder();if(!o||s){let c=this.config.storage.getProjectAgentsDir(),u=await PQe(c);for(let f of u.errors){let g=`Agent loading error: ${f.message}`;e?.push(g),be.emitFeedback("error",g)}let d=this.config.getAcknowledgedAgentsService(),l=this.config.getProjectRoot(),a=[],p=[];for(let f of u.agents){if(this.ensureRemoteAgentHash(f),!f.metadata?.hash){p.push(f);continue}await d.isAcknowledged(l,f.name,f.metadata.hash)?p.push(f):a.push(f)}a.length>0&&be.emitAgentsDiscovered(a),await Promise.allSettled(p.map(async f=>{try{await this.registerAgent(f,e)}catch(g){let y=`Error registering project agent "${f.name}": ${g instanceof Error?g.message:String(g)}`;B.warn(`[AgentRegistry] ${y}`,g),e?.push(y),be.emitFeedback("error",y)}}))}else be.emitFeedback("info","Skipping project agents due to untrusted folder. To enable, ensure that the project root is trusted.");for(let c of this.config.getExtensions())c.isActive&&c.agents&&await Promise.allSettled(c.agents.map(async u=>{try{await this.registerAgent(u,e)}catch(d){let l=`Error registering extension agent "${u.name}": ${d instanceof Error?d.message:String(d)}`;B.warn(`[AgentRegistry] ${l}`,d),e?.push(l),be.emitFeedback("error",l)}}));this.config.getDebugMode()&&B.log(`[AgentRegistry] Loaded with ${this.agents.size} agents.`)}loadBuiltInAgents(){let e=Sle(this.config);this.builtInAgents.add(e.name),this.registerLocalAgent(e);let r=qZt(this.config);this.builtInAgents.add(r.name),this.registerLocalAgent(r);let n=VZt(this.config);this.builtInAgents.add(n.name),this.registerLocalAgent(n);let o=this.config.getBrowserAgentConfig();if(o.enabled){let s=process.env.SANDBOX,c=!!s&&s!=="sandbox-exec"&&s!=="sandbox:none",u=o.customConfig.sessionMode??"persistent";if(c&&u!=="existing")be.emitFeedback("info",'Browser agent disabled in container sandbox. To use it, set sessionMode to "existing" in settings and start Chrome with --remote-debugging-port=9222 on the host.');else{let d=Hle(this.config);this.builtInAgents.add(d.name),this.registerLocalAgent(d)}}}async refreshAgents(e="all"){this.loadBuiltInAgents(),await Promise.allSettled(Array.from(this.agents.values()).map(async r=>{(e==="all"||r.kind===e)&&await this.registerAgent(r)}))}async registerAgent(e,r){e.kind==="local"?this.registerLocalAgent(e):e.kind==="remote"&&await this.registerRemoteAgent(e,r)}registerLocalAgent(e){if(e.kind!=="local")return;if(!e.name||!e.description){B.warn("[AgentRegistry] Skipping invalid agent definition. Missing name or description.");return}this.allDefinitions.set(e.name,e);let r=this.config.getAgentsSettings().overrides?.[e.name];if(!this.isAgentEnabled(e,r)){this.config.getDebugMode()&&B.log(`[AgentRegistry] Skipping disabled agent '${e.name}'`);return}this.agents.has(e.name)&&this.config.getDebugMode()&&B.log(`[AgentRegistry] Overriding agent '${e.name}'`);let n=this.applyOverrides(e,r);this.agents.set(n.name,n),this.registerModelConfigs(n),this.addAgentPolicy(n)}addAgentPolicy(e){let r=this.config.getPolicyEngine();if(r){if(r.hasRuleForTool(e.name,!0)){this.config.getDebugMode()&&B.log(`[AgentRegistry] User policy exists for '${e.name}', skipping dynamic registration.`);return}e.kind==="remote"&&r.addRule({toolName:xC.Name,argsPattern:new RegExp(`"agent_name":\\s*"${e.name}"`),decision:Ke.ASK_USER,priority:RQ+.1,source:ZZt})}}isAgentEnabled(e,r){let o=!(e.experimental===!0);return r&&r.enabled!==void 0&&(o=r.enabled),o}async registerRemoteAgent(e,r){if(e.kind!=="remote")return;if(!e.name){B.warn("[AgentRegistry] Skipping invalid agent definition. Missing name.");return}this.allDefinitions.set(e.name,e);let n=this.config.getAgentsSettings().overrides?.[e.name];if(!this.isAgentEnabled(e,n)){this.config.getDebugMode()&&B.log(`[AgentRegistry] Skipping disabled remote agent '${e.name}'`);return}this.agents.has(e.name)&&this.config.getDebugMode()&&B.log(`[AgentRegistry] Overriding agent '${e.name}'`);let o=e;o.originalDescription===void 0&&(o.originalDescription=o.description);try{let s=this.config.getA2AClientManager();if(!s){B.warn(`[AgentRegistry] Skipping remote agent '${e.name}': A2AClientManager is not available.`);return}let c=Dle(o),u;if(e.auth){let f=await Q1.create({authConfig:e.auth,agentName:e.name,targetUrl:c,agentCardUrl:o.agentCardUrl});if(!f)throw new Error(`Failed to create auth provider for agent '${e.name}'`);u=f}let d=await s.loadAgent(o.name,kle(o),u);if(d.securitySchemes){let f=Q1.validateAuthConfig(e.auth,d.securitySchemes);if(!f.valid&&f.diff){let g=Q1.describeRequiredAuth(d.securitySchemes),y=new Kle(e.name,g,f.diff.missingConfig);be.emitFeedback("warning",`[${e.name}] Agent requires authentication: ${g}`),B.warn(`[AgentRegistry] ${y.message}`)}}let l=o.originalDescription,a=d.description,p=[];if(l?.trim()&&p.push(`User Description: ${l.trim()}`),a?.trim()&&p.push(`Agent Description: ${a.trim()}`),d.skills&&d.skills.length>0){let f=d.skills.map(g=>`${g.name}: ${g.description||"No description provided"}`).join(`
2510
2510
  `);p.push(`Skills:
2511
2511
  ${f}`)}p.length>0&&(e.description=p.join(`
2512
2512
  `)),this.config.getDebugMode()&&B.log(`[AgentRegistry] Registered remote agent '${e.name}' with card: ${e.agentCardUrl??"inline JSON"}`),this.agents.set(e.name,e),this.addAgentPolicy(e)}catch(s){let c;s instanceof Um?c=`[${e.name}] ${s.userMessage}`:c=`[${e.name}] Failed to load remote agent: ${s instanceof Error?s.message:String(s)}`,r?.push(c),be.emitFeedback("error",c),B.warn(`[AgentRegistry] Error loading A2A agent "${e.name}":`,s)}}applyOverrides(e,r){if(e.kind!=="local"||!r)return e;let n={get kind(){return e.kind},get name(){return e.name},get displayName(){return e.displayName},get description(){return e.description},get experimental(){return e.experimental},get metadata(){return e.metadata},get inputConfig(){return e.inputConfig},get outputConfig(){return e.outputConfig},get promptConfig(){return e.promptConfig},get toolConfig(){return e.toolConfig},get processOutput(){return e.processOutput},get runConfig(){return r.runConfig?{...e.runConfig,...r.runConfig}:e.runConfig},get modelConfig(){return r.modelConfig?Ek.merge(e.modelConfig,r.modelConfig):e.modelConfig}};return r.tools&&(n.toolConfig={tools:r.tools}),r.mcpServers&&(n.mcpServers={...e.mcpServers,...r.mcpServers}),n}registerModelConfigs(e){let r=e.modelConfig,n=r.model;n==="inherit"&&(n=this.config.getModel());let o={...r,model:n};this.config.modelConfigService.registerRuntimeModelConfig(WF(e),{modelConfig:o}),o.model&&tc(o.model)&&this.config.modelConfigService.registerRuntimeModelOverride({match:{overrideScope:e.name},modelConfig:{generateContentConfig:o.generateContentConfig}})}getDefinition(e){return this.agents.get(e)}getAllDefinitions(){return Array.from(this.agents.values())}getAllAgentNames(){return Array.from(this.agents.keys())}getAllDiscoveredAgentNames(){return Array.from(this.allDefinitions.keys())}getDiscoveredDefinition(e){return this.allDefinitions.get(e)}ensureRemoteAgentHash(e){e.kind==="remote"&&(e.metadata||(e.metadata={}),e.agentCardUrl?e.metadata.hash=e.agentCardUrl:e.agentCardJson&&(e.metadata.hash=eer.createHash("sha256").update(e.agentCardJson).digest("hex")))}};import{AsyncLocalStorage as yei}from"node:async_hooks";var ter=new yei;function MQe(t,e){return ter.run(t,e)}function ece(){return ter.getStore()}var rer=Fe(qse(),1);function YF(t){return typeof t=="object"&&t!==null&&"callId"in t&&"responseParts"in t}function JF(t,e,r=3){let n=e.map(c=>({name:c,distance:rer.default.get(t,c)}));n.sort((c,u)=>c.distance-u.distance);let o=n.slice(0,r);if(o.length===0)return"";let s=o.map(c=>`"${c.name}"`).join(", ");return o.length>1?` Did you mean one of: ${s}?`:` Did you mean ${s}?`}function m0o(t,e,r){let n;VJe(t)?n=[t.name,t.constructor.name]:n=[t],n.some(o=>Dp.includes(o))&&(n=[...new Set([...n,...Dp])]);for(let o of r){let s=o.indexOf("(");if(s===-1){if(n.includes(o))return!0;continue}let c=o.substring(0,s);if(!n.includes(c)||!o.endsWith(")"))continue;let u=o.substring(s+1,o.length-1),d;if(typeof e=="string")d=e;else{if(!("command"in e.params))continue;d=String(e.params.command)}if(n.some(l=>Dp.includes(l))&&(d===u||d.startsWith(u+" ")))return!0}return!1}var tce=class{messageBus;schedulerId;onTerminalCall;activeCalls=new Map;queue=[];_completedBatch=[];constructor(e,r=Ynt,n){this.messageBus=e,this.schedulerId=r,this.onTerminalCall=n}addToolCalls(e){this.enqueue(e)}getToolCall(e){return this.activeCalls.get(e)||this.queue.find(r=>r.request.callId===e)||this._completedBatch.find(r=>r.request.callId===e)}enqueue(e){this.queue.push(...e),this.emitUpdate()}dequeue(){let e=this.queue.shift();return e&&(this.activeCalls.set(e.request.callId,e),this.emitUpdate()),e}peekQueue(){return this.queue[0]}get isActive(){return this.activeCalls.size>0}get allActiveCalls(){return Array.from(this.activeCalls.values())}get activeCallCount(){return this.activeCalls.size}get queueLength(){return this.queue.length}get firstActiveCall(){return this.activeCalls.values().next().value}updateStatus(e,r,n){let o=this.activeCalls.get(e);if(!o)return;let s=this.transitionCall(o,r,n);this.activeCalls.set(e,s),this.emitUpdate()}finalizeCall(e){let r=this.activeCalls.get(e);r&&this.isTerminalCall(r)&&(this._completedBatch.push(r),this.activeCalls.delete(e),this.onTerminalCall?.(r),this.emitUpdate())}updateArgs(e,r,n){let o=this.activeCalls.get(e);!o||o.status===Ne.Error||(this.activeCalls.set(e,this.patchCall(o,{request:{...o.request,args:r},invocation:n})),this.emitUpdate())}setOutcome(e,r){let n=this.activeCalls.get(e);n&&(this.activeCalls.set(e,this.patchCall(n,{outcome:r})),this.emitUpdate())}replaceActiveCallWithTailCall(e,r){this.activeCalls.has(e)&&(this.activeCalls.delete(e),this.queue.unshift(r),this.emitUpdate())}cancelAllQueued(e){if(this.queue.length!==0){for(;this.queue.length>0;){let r=this.queue.shift();if(r.status===Ne.Error){this._completedBatch.push(r),this.onTerminalCall?.(r);continue}let n=this.toCancelled(r,e);this._completedBatch.push(n),this.onTerminalCall?.(n)}this.emitUpdate()}}getSnapshot(){return[...this._completedBatch,...Array.from(this.activeCalls.values()),...this.queue]}clearBatch(){this._completedBatch.length!==0&&(this._completedBatch=[],this.emitUpdate())}get completedBatch(){return[...this._completedBatch]}emitUpdate(){let e=this.getSnapshot();this.messageBus.publish({type:Li.TOOL_CALLS_UPDATE,toolCalls:e,schedulerId:this.schedulerId})}isTerminalCall(e){let{status:r}=e;return r===Ne.Success||r===Ne.Error||r===Ne.Cancelled}transitionCall(e,r,n){switch(r){case Ne.Success:{if(!YF(n))throw new Error(`Invalid data for 'success' transition (callId: ${e.request.callId})`);return this.toSuccess(e,n)}case Ne.Error:{if(!YF(n))throw new Error(`Invalid data for 'error' transition (callId: ${e.request.callId})`);return this.toError(e,n)}case Ne.AwaitingApproval:{if(!n)throw new Error(`Missing data for 'awaiting_approval' transition (callId: ${e.request.callId})`);return this.toAwaitingApproval(e,n)}case Ne.Scheduled:return this.toScheduled(e);case Ne.Cancelled:{if(typeof n!="string"&&!YF(n))throw new Error(`Invalid reason (string) or response for 'cancelled' transition (callId: ${e.request.callId})`);return this.toCancelled(e,n)}case Ne.Validating:return this.toValidating(e);case Ne.Executing:{if(n!==void 0&&!this.isExecutingToolCallPatch(n))throw new Error(`Invalid patch for 'executing' transition (callId: ${e.request.callId})`);return this.toExecuting(e,n)}default:return r}}isExecutingToolCallPatch(e){return typeof e=="object"&&e!==null}validateHasToolAndInvocation(e,r){if(!("tool"in e&&e.tool&&"invocation"in e&&e.invocation))throw new Error(`Invalid state transition: cannot transition to ${r} without tool/invocation (callId: ${e.request.callId})`)}toSuccess(e,r){this.validateHasToolAndInvocation(e,Ne.Success);let n="startTime"in e?e.startTime:void 0;return{request:e.request,tool:e.tool,invocation:e.invocation,status:Ne.Success,response:r,durationMs:n?Date.now()-n:void 0,outcome:e.outcome,schedulerId:e.schedulerId,approvalMode:e.approvalMode}}toError(e,r){let n="startTime"in e?e.startTime:void 0;return{request:e.request,status:Ne.Error,tool:"tool"in e?e.tool:void 0,response:r,durationMs:n?Date.now()-n:void 0,outcome:e.outcome,schedulerId:e.schedulerId,approvalMode:e.approvalMode}}toAwaitingApproval(e,r){this.validateHasToolAndInvocation(e,Ne.AwaitingApproval);let n,o;return this.isEventDrivenApprovalData(r)?(o=r.correlationId,n=r.confirmationDetails):n=r,{request:e.request,tool:e.tool,status:Ne.AwaitingApproval,correlationId:o,confirmationDetails:n,startTime:"startTime"in e?e.startTime:void 0,outcome:e.outcome,invocation:e.invocation,schedulerId:e.schedulerId,approvalMode:e.approvalMode}}isEventDrivenApprovalData(e){return typeof e=="object"&&e!==null&&"correlationId"in e&&"confirmationDetails"in e}toScheduled(e){return this.validateHasToolAndInvocation(e,Ne.Scheduled),{request:e.request,tool:e.tool,status:Ne.Scheduled,startTime:"startTime"in e?e.startTime:void 0,outcome:e.outcome,invocation:e.invocation,schedulerId:e.schedulerId,approvalMode:e.approvalMode}}toCancelled(e,r){this.validateHasToolAndInvocation(e,Ne.Cancelled);let n="startTime"in e?e.startTime:void 0,o;if(this.isWaitingToolCall(e)){let u=e.confirmationDetails;u.type==="edit"&&"fileDiff"in u&&"fileName"in u&&"filePath"in u&&"originalContent"in u&&"newContent"in u&&(o={fileDiff:u.fileDiff,fileName:u.fileName,filePath:u.filePath,originalContent:u.originalContent,newContent:u.newContent,diffStat:u.diffStat??XJe(u.fileDiff)})}let s;if(e.status===Ne.Executing&&e.liveOutput&&(s=e.liveOutput),YF(r)){let u={...r};return u.resultDisplay||(u.resultDisplay=o??s),{request:e.request,tool:e.tool,invocation:e.invocation,status:Ne.Cancelled,response:u,durationMs:n?Date.now()-n:void 0,outcome:e.outcome,schedulerId:e.schedulerId,approvalMode:e.approvalMode}}let c=`[Operation Cancelled] Reason: ${r}`;return{request:e.request,tool:e.tool,invocation:e.invocation,status:Ne.Cancelled,response:{callId:e.request.callId,responseParts:[{functionResponse:{id:e.request.callId,name:e.request.originalRequestName??e.request.name,response:{error:c}}}],resultDisplay:o??s,error:void 0,errorType:void 0,contentLength:c.length},durationMs:n?Date.now()-n:void 0,outcome:e.outcome,schedulerId:e.schedulerId,approvalMode:e.approvalMode}}isWaitingToolCall(e){return e.status===Ne.AwaitingApproval}patchCall(e,r){return{...e,...r}}toValidating(e){return this.validateHasToolAndInvocation(e,Ne.Validating),{request:e.request,tool:e.tool,status:Ne.Validating,startTime:"startTime"in e?e.startTime:void 0,outcome:e.outcome,invocation:e.invocation,schedulerId:e.schedulerId,approvalMode:e.approvalMode}}toExecuting(e,r){this.validateHasToolAndInvocation(e,Ne.Executing);let n=r,o=n?.liveOutput??("liveOutput"in e?e.liveOutput:void 0),s=n?.pid??("pid"in e?e.pid:void 0),c=n?.progressMessage??("progressMessage"in e?e.progressMessage:void 0),u=n?.progressPercent??("progressPercent"in e?e.progressPercent:void 0),d=n?.progress??("progress"in e?e.progress:void 0),l=n?.progressTotal??("progressTotal"in e?e.progressTotal:void 0);return{request:e.request,tool:e.tool,status:Ne.Executing,startTime:"startTime"in e?e.startTime:void 0,outcome:e.outcome,invocation:e.invocation,liveOutput:o,pid:s,progressMessage:c,progressPercent:u,progress:d,progressTotal:l,schedulerId:e.schedulerId,approvalMode:e.approvalMode}}};import{on as Aei}from"node:events";import{randomUUID as _ei}from"node:crypto";async function Eei(t,e,r){if(r.aborted)throw new Error("Operation cancelled");try{for await(let[n]of Aei(t,Li.TOOL_CONFIRMATION_RESPONSE,{signal:r})){let o=n;if(o.correlationId===e)return{outcome:o.outcome??(o.confirmed?Vt.ProceedOnce:Vt.Cancel),payload:o.payload}}}catch(n){throw r.aborted||n.name==="AbortError"?new Error("Operation cancelled"):n}throw new Error("Operation cancelled")}async function BQe(t,e,r){let{state:n,onWaitingForConfirmation:o}=r,s=t.request.callId,c=Vt.ModifyWithEditor,u;for(;c===Vt.ModifyWithEditor;){if(e.aborted)throw new Error("Operation cancelled by user");let d=n.getToolCall(s);if(!d||!("invocation"in d))throw new Error(`Tool call ${s} lost during confirmation loop`);let a=await d.invocation.shouldConfirmExecute(e,r.forcedDecision);if(!a){c=Vt.ProceedOnce;break}r.systemMessage&&(a.systemMessage=r.systemMessage),await bei(r,a);let p=_ei(),f=a;u=f;let g="ideConfirmation"in a?a.ideConfirmation:void 0;n.updateStatus(s,Ne.AwaitingApproval,{confirmationDetails:f,correlationId:p}),o?.(!0);let y=await Tei(r.messageBus,p,e,g);if(o?.(!1),c=y.outcome,"onConfirm"in a&&typeof a.onConfirm=="function"&&await a.onConfirm(c,y.payload),c===Vt.ModifyWithEditor){let _=await vei(r,t,e);_.error&&be.emitFeedback("error",_.error)}else y.payload&&"newContent"in y.payload&&(await Sei(r,t,y.payload,e),c=Vt.ProceedOnce)}return{outcome:c,lastDetails:u}}async function bei(t,e){t.config.getHookSystem()&&await t.config.getHookSystem()?.fireToolNotificationEvent({...e,onConfirm:async()=>{}})}async function vei(t,e,r){let{state:n,modifier:o,getPreferredEditor:s}=t,c=s(),u=await WMt(c,r);if(!u)return{error:VMt};let d=await o.handleModifyWithEditor(n.firstActiveCall,u,r);if(d){let l=e.tool.build(d.updatedParams);n.updateArgs(e.request.callId,d.updatedParams,l)}return{}}async function Sei(t,e,r,n){let{state:o,modifier:s}=t,c=await s.applyInlineModify(o.firstActiveCall,r,n);if(c){let u=e.tool.build(c.updatedParams);o.updateArgs(e.request.callId,c.updatedParams,u)}}async function Tei(t,e,r,n){let o=new AbortController,s=o.signal,c=()=>o.abort();r.aborted?o.abort():r.addEventListener("abort",c);try{let u=Eei(t,e,s);if(!n)return await u;let d=n.then(l=>({outcome:l.status==="accepted"?Vt.ProceedOnce:Vt.Cancel,payload:l.content?{newContent:l.content}:void 0})).catch(l=>(B.warn("Error waiting for confirmation via IDE",l),new Promise(()=>{})));return await Promise.race([u,d])}finally{r.removeEventListener("abort",c),o.abort()}}function ner(t,e){return{errorMessage:`Tool execution denied by policy.${e?.denyMessage?` ${e.denyMessage}`:""}`,errorType:Re.POLICY_VIOLATION}}async function ier(t,e,r){let n=t.tool instanceof Ai?t.tool.serverName:void 0,o=t.tool.toolAnnotations,s=await e.getPolicyEngine().check({name:t.request.name,args:t.request.args},n,o,r),{decision:c}=s;if(c===Ke.ASK_USER&&t.request.isClientInitiated&&!t.request.args?.additional_permissions)return{decision:Ke.ALLOW,rule:s.rule};if(c===Ke.ASK_USER&&!e.isInteractive())throw new Error(`Tool execution for "${t.tool.displayName||t.tool.name}" requires user confirmation, which is not supported in non-interactive mode.`);return{decision:c,rule:s.rule}}async function oer(t,e,r,n,o,s){let c=n.config.getApprovalMode();wei(t,e)&&n.config.setApprovalMode(vt.AUTO_EDIT);let u,d;if(e===Vt.ProceedAlways||e===Vt.ProceedAlwaysTool||e===Vt.ProceedAlwaysServer||e===Vt.ProceedAlwaysAndSave){let l=Tge.indexOf(c);l!==-1&&(d=Tge.slice(l))}if(e===Vt.ProceedAlwaysAndSave&&(n.config&&n.config.isTrustedFolder()&&n.config.getWorkspacePoliciesDir()!==void 0?u="workspace":u="user"),r?.type==="mcp"){await xei(t,e,r,o,u,d);return}await Cei(t,e,r,o,u,s,n.config,d)}function wei(t,e){return e===Vt.ProceedAlways&&iL.has(t.name)}async function Cei(t,e,r,n,o,s,c,u){if(e===Vt.ProceedAlways||e===Vt.ProceedAlwaysAndSave){let d=s?.getPolicyUpdateOptions?.(e)||{};if(!d.commandPrefix&&r?.type==="exec")d.commandPrefix=r.rootCommands;else if(!d.argsPattern&&r?.type==="edit"){let l=c?qi(r.filePath,c.getTargetDir()):r.filePath;d.argsPattern=Lb(l)}await n.publish({type:Li.UPDATE_POLICY,toolName:t.name,persist:e===Vt.ProceedAlwaysAndSave,persistScope:o,modes:u,...d})}}async function xei(t,e,r,n,o,s){if(!(e===Vt.ProceedAlways||e===Vt.ProceedAlwaysTool||e===Vt.ProceedAlwaysServer||e===Vt.ProceedAlwaysAndSave))return;let u=t.name,d=e===Vt.ProceedAlwaysAndSave;e===Vt.ProceedAlwaysServer&&(u=Uv(r.serverName,"*")),await n.publish({type:Li.UPDATE_POLICY,toolName:u,mcpName:r.serverName,persist:d,persistScope:o,modes:s})}function UQe(t,e){if(!(t instanceof _Ke))return;let n=(e.getMcpClientManager()?.getMcpServers()??e.getMcpServers()??{})[t.serverName];if(n)return{server_name:t.serverName,tool_name:t.serverToolName,command:n.command,args:n.args,cwd:n.cwd,url:n.url??n.httpUrl,tcp:n.tcp}}async function ser(t,e,r,n,o,s,c,u,d){let l=t.params||{},a=!1,p=[],f=c?UQe(t,c):void 0,g=c?.getHookSystem();if(g&&!d){let _=await g.fireBeforeToolEvent(e,l,f,u);if(_?.shouldStopExecution()){let b=_.getEffectiveReason();return{llmContent:`Agent execution stopped by hook: ${b}`,returnDisplay:`Agent execution stopped by hook: ${b}`,error:{type:Re.STOP_EXECUTION,message:b}}}let E=_?.getBlockingError();if(E?.blocked)return{llmContent:`Tool execution blocked: ${E.reason}`,returnDisplay:`Tool execution blocked: ${E.reason}`,error:{type:Re.EXECUTION_FAILED,message:E.reason}};if(_ instanceof aA){let b=_.getModifiedToolInput();if(b){Object.assign(t.params,b),B.debug(`Tool input modified by hook for ${e}`),a=!0,p=Object.keys(b);try{t=n.build(t.params)}catch(v){return{llmContent:`Tool parameter modification by hook failed validation: ${v instanceof Error?v.message:String(v)}`,returnDisplay:"Tool parameter modification by hook failed validation.",error:{type:Re.INVALID_TOOL_PARAMS,message:String(v)}}}}}}let y=await t.execute({...s,abortSignal:r,updateOutput:o});if(a){let _=`
@@ -1,5 +1,5 @@
1
1
  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);
2
- import{a,b as T}from"./chunk-2SX35WX4.js";import{Ba as p,Ca as y,Da as m,Ea as R,Ga as v,Ia as L,Ka as d,Ma as h,ya as c,za as f}from"./chunk-GTU5AZLF.js";import{b as e}from"./chunk-PZNAC7U7.js";import{e as S}from"./chunk-YUXORC52.js";var i=S(T(),1);import u from"node:fs";import w from"node:path";import{spawn as P}from"node:child_process";async function b(t,r){if(await d(r))return e.log(`LiteRT server already running on port ${r}`),!0;let g=m();u.mkdirSync(p(),{recursive:!0});let l=w.dirname(y());u.mkdirSync(l,{recursive:!0});let n=u.openSync(g,"a");try{let o=P(t,["serve",`--port=${r}`,"--verbose"],{detached:!0,stdio:["ignore",n,n]});o.pid&&h({pid:o.pid,binaryPath:t,port:r}),o.unref()}finally{u.closeSync(n)}return await new Promise(o=>setTimeout(o,f)),d(r)}var A={command:"start",describe:"Start the LiteRT-LM server",builder:t=>t.option("port",{type:"number",description:"Port for the LiteRT server"}),handler:async t=>{let r;if(t.port!==void 0&&(r=Number(t.port)),!r){let{configuredPort:n}=R(c);r=n}let s=v();if(!s||!L(s)){e.error(i.default.red('LiteRT-LM binary not found. Run "gemini gemma setup" first.')),await a(1);return}if(await d(r)){e.log(i.default.green(`LiteRT server is already running on port ${r}.`)),await a(0);return}e.log(`Starting LiteRT server on port ${r}...`),await b(s,r)?(e.log(i.default.green(`LiteRT server started on port ${r}.`)),e.log(i.default.dim(`Logs: ${m()}`)),await a(0)):(e.error(i.default.red("Server may not have started correctly. Check logs:")),e.error(i.default.dim(` ${m()}`)),await a(1))}};export{b as a,A as b};
2
+ import{a,b as T}from"./chunk-G6V3NYLD.js";import{Ba as p,Ca as y,Da as m,Ea as R,Ga as v,Ia as L,Ka as d,Ma as h,ya as c,za as f}from"./chunk-RTOTOYZ3.js";import{b as e}from"./chunk-PZNAC7U7.js";import{e as S}from"./chunk-YUXORC52.js";var i=S(T(),1);import u from"node:fs";import w from"node:path";import{spawn as P}from"node:child_process";async function b(t,r){if(await d(r))return e.log(`LiteRT server already running on port ${r}`),!0;let g=m();u.mkdirSync(p(),{recursive:!0});let l=w.dirname(y());u.mkdirSync(l,{recursive:!0});let n=u.openSync(g,"a");try{let o=P(t,["serve",`--port=${r}`,"--verbose"],{detached:!0,stdio:["ignore",n,n]});o.pid&&h({pid:o.pid,binaryPath:t,port:r}),o.unref()}finally{u.closeSync(n)}return await new Promise(o=>setTimeout(o,f)),d(r)}var A={command:"start",describe:"Start the LiteRT-LM server",builder:t=>t.option("port",{type:"number",description:"Port for the LiteRT server"}),handler:async t=>{let r;if(t.port!==void 0&&(r=Number(t.port)),!r){let{configuredPort:n}=R(c);r=n}let s=v();if(!s||!L(s)){e.error(i.default.red('LiteRT-LM binary not found. Run "gemini gemma setup" first.')),await a(1);return}if(await d(r)){e.log(i.default.green(`LiteRT server is already running on port ${r}.`)),await a(0);return}e.log(`Starting LiteRT server on port ${r}...`),await b(s,r)?(e.log(i.default.green(`LiteRT server started on port ${r}.`)),e.log(i.default.dim(`Logs: ${m()}`)),await a(0)):(e.error(i.default.red("Server may not have started correctly. Check logs:")),e.error(i.default.dim(` ${m()}`)),await a(1))}};export{b as a,A as b};
3
3
  /**
4
4
  * @license
5
5
  * Copyright 2026 Google LLC
@@ -1,5 +1,5 @@
1
1
  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);
2
- import{a,b as T}from"./chunk-REVEB6QQ.js";import{Ba as p,Ca as y,Da as m,Ea as R,Ga as v,Ia as L,Ka as d,Ma as h,ya as c,za as f}from"./chunk-A3CFCECQ.js";import{b as e}from"./chunk-7I5Y2LVR.js";import{e as S}from"./chunk-YUXORC52.js";var i=S(T(),1);import u from"node:fs";import w from"node:path";import{spawn as P}from"node:child_process";async function b(t,r){if(await d(r))return e.log(`LiteRT server already running on port ${r}`),!0;let g=m();u.mkdirSync(p(),{recursive:!0});let l=w.dirname(y());u.mkdirSync(l,{recursive:!0});let n=u.openSync(g,"a");try{let o=P(t,["serve",`--port=${r}`,"--verbose"],{detached:!0,stdio:["ignore",n,n]});o.pid&&h({pid:o.pid,binaryPath:t,port:r}),o.unref()}finally{u.closeSync(n)}return await new Promise(o=>setTimeout(o,f)),d(r)}var A={command:"start",describe:"Start the LiteRT-LM server",builder:t=>t.option("port",{type:"number",description:"Port for the LiteRT server"}),handler:async t=>{let r;if(t.port!==void 0&&(r=Number(t.port)),!r){let{configuredPort:n}=R(c);r=n}let s=v();if(!s||!L(s)){e.error(i.default.red('LiteRT-LM binary not found. Run "gemini gemma setup" first.')),await a(1);return}if(await d(r)){e.log(i.default.green(`LiteRT server is already running on port ${r}.`)),await a(0);return}e.log(`Starting LiteRT server on port ${r}...`),await b(s,r)?(e.log(i.default.green(`LiteRT server started on port ${r}.`)),e.log(i.default.dim(`Logs: ${m()}`)),await a(0)):(e.error(i.default.red("Server may not have started correctly. Check logs:")),e.error(i.default.dim(` ${m()}`)),await a(1))}};export{b as a,A as b};
2
+ import{a,b as T}from"./chunk-356OVHGG.js";import{Ba as p,Ca as y,Da as m,Ea as R,Ga as v,Ia as L,Ka as d,Ma as h,ya as c,za as f}from"./chunk-S5WFVXWE.js";import{b as e}from"./chunk-7I5Y2LVR.js";import{e as S}from"./chunk-YUXORC52.js";var i=S(T(),1);import u from"node:fs";import w from"node:path";import{spawn as P}from"node:child_process";async function b(t,r){if(await d(r))return e.log(`LiteRT server already running on port ${r}`),!0;let g=m();u.mkdirSync(p(),{recursive:!0});let l=w.dirname(y());u.mkdirSync(l,{recursive:!0});let n=u.openSync(g,"a");try{let o=P(t,["serve",`--port=${r}`,"--verbose"],{detached:!0,stdio:["ignore",n,n]});o.pid&&h({pid:o.pid,binaryPath:t,port:r}),o.unref()}finally{u.closeSync(n)}return await new Promise(o=>setTimeout(o,f)),d(r)}var A={command:"start",describe:"Start the LiteRT-LM server",builder:t=>t.option("port",{type:"number",description:"Port for the LiteRT server"}),handler:async t=>{let r;if(t.port!==void 0&&(r=Number(t.port)),!r){let{configuredPort:n}=R(c);r=n}let s=v();if(!s||!L(s)){e.error(i.default.red('LiteRT-LM binary not found. Run "gemini gemma setup" first.')),await a(1);return}if(await d(r)){e.log(i.default.green(`LiteRT server is already running on port ${r}.`)),await a(0);return}e.log(`Starting LiteRT server on port ${r}...`),await b(s,r)?(e.log(i.default.green(`LiteRT server started on port ${r}.`)),e.log(i.default.dim(`Logs: ${m()}`)),await a(0)):(e.error(i.default.red("Server may not have started correctly. Check logs:")),e.error(i.default.dim(` ${m()}`)),await a(1))}};export{b as a,A as b};
3
3
  /**
4
4
  * @license
5
5
  * Copyright 2026 Google LLC
@@ -1,2 +1,2 @@
1
1
  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);
2
- import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-FLHTGF3O.js";import"./chunk-QLWIHN4W.js";import"./chunk-PZNAC7U7.js";import"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";export{k as cleanupCheckpoints,a as registerCleanup,c as registerSyncCleanup,g as registerTelemetryConfig,b as removeCleanup,d as removeSyncCleanup,e as resetCleanupForTesting,h as runExitCleanup,f as runSyncCleanup,i as setupSignalHandlers,j as setupTtyCheck};
2
+ import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-CJ5VLAB6.js";import"./chunk-VJITGXD7.js";import"./chunk-7I5Y2LVR.js";import"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";export{k as cleanupCheckpoints,a as registerCleanup,c as registerSyncCleanup,g as registerTelemetryConfig,b as removeCleanup,d as removeSyncCleanup,e as resetCleanupForTesting,h as runExitCleanup,f as runSyncCleanup,i as setupSignalHandlers,j as setupTtyCheck};
@@ -1,2 +1,2 @@
1
1
  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);
2
- import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-M4VGJYXT.js";import"./chunk-AHBTQKKJ.js";import"./chunk-7I5Y2LVR.js";import"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";export{k as cleanupCheckpoints,a as registerCleanup,c as registerSyncCleanup,g as registerTelemetryConfig,b as removeCleanup,d as removeSyncCleanup,e as resetCleanupForTesting,h as runExitCleanup,f as runSyncCleanup,i as setupSignalHandlers,j as setupTtyCheck};
2
+ import{a,b,c,d,e,f,g,h,i,j,k}from"./chunk-MH5WU37R.js";import"./chunk-63ULYU4I.js";import"./chunk-PZNAC7U7.js";import"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";export{k as cleanupCheckpoints,a as registerCleanup,c as registerSyncCleanup,g as registerTelemetryConfig,b as removeCleanup,d as removeSyncCleanup,e as resetCleanupForTesting,h as runExitCleanup,f as runSyncCleanup,i as setupSignalHandlers,j as setupTtyCheck};
@@ -1,2 +1,2 @@
1
1
  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);
2
- import{$ as je,$a as mf,$b as mg,$c as mh,$d as li,$e as lj,$f as Zj,$g as Zk,$h as bm,$i as bn,$j as Wn,$k as fp,$l as fq,$m as fr,$n as bs,A as Od,Aa as Me,Ab as Nf,Ac as Ng,Ad as Mh,Ae as Mi,Af as Mj,Ag as yk,Ah as Fl,Ai as Cm,Aj as Dn,Ak as vo,Al as Gp,Am as Gq,An as Er,B as Pd,Ba as Ne,Bb as Of,Bc as Og,Bd as Nh,Be as Ni,Bf as Nj,Bg as zk,Bh as Gl,Bi as Dm,Bk as wo,Bl as Hp,Bm as Hq,Bn as Fr,C as Qd,Ca as Oe,Cb as Pf,Cc as Pg,Cd as Oh,Ce as Oi,Cf as Oj,Cg as Ak,Ci as Em,Cj as En,Ck as xo,Cl as Ip,Cm as Iq,Cn as Gr,D as Rd,Da as Pe,Db as Qf,Dc as Qg,Dd as Ph,De as Pi,Df as Pj,Dg as Bk,Dh as Hl,Di as Fm,Dk as yo,Dl as Jp,Dm as Jq,Dn as Hr,E as Sd,Ea as Qe,Eb as Rf,Ec as Rg,Ed as Qh,Ee as Qi,Ef as Qj,Eg as Ck,Eh as Il,Ei as Gm,Ej as Fn,Ek as zo,El as Kp,Em as Kq,En as Ir,F as Td,Fa as Re,Fb as Sf,Fc as Sg,Fd as Rh,Fe as Ri,Ff as Rj,Fg as Dk,Fh as Jl,Fi as Hm,Fk as Ao,Fl as Lp,Fm as Lq,Fn as Jr,G as Ud,Ga as Se,Gb as Tf,Gc as Tg,Gd as Sh,Ge as Si,Gf as Sj,Gg as Ek,Gh as Kl,Gi as Im,Gk as Bo,Gl as Mp,Gm as Mq,Gn as Kr,H as Vd,Ha as Te,Hb as Uf,Hc as Ug,Hd as Th,He as Ti,Hf as Tj,Hg as Fk,Hh as Ll,Hi as Jm,Hk as Co,Hl as Np,Hm as Nq,Hn as Lr,I as Wd,Ia as Ue,Ib as Vf,Ic as Vg,Id as Uh,Ie as Ui,If as Uj,Ig as Gk,Ih as Ml,Ii as Km,Ik as Do,Il as Op,Im as Oq,In as Mr,J as Xd,Ja as Ve,Jb as Wf,Jc as Wg,Jd as Vh,Je as Vi,Jf as Vj,Jg as Hk,Jh as Nl,Ji as Lm,Jk as Eo,Jl as Pp,Jm as Pq,Jn as Nr,K as Yd,Ka as We,Kb as Xf,Kc as Xg,Kd as Wh,Ke as Wi,Kf as Wj,Kg as Ik,Kh as Ol,Ki as Mm,Kk as Fo,Kl as Qp,Km as Qq,Kn as Or,L as Zd,La as Xe,Lb as Yf,Lc as Yg,Ld as Xh,Le as Xi,Lf as Xj,Lg as Jk,Lh as Pl,Li as Nm,Lj as Gn,Lk as Go,Ll as Rp,Lm as Rq,Ln as Pr,M as _d,Ma as Ye,Mb as Zf,Mc as Zg,Md as Yh,Me as Yi,Mf as Yj,Mg as Kk,Mi as Om,Mj as Hn,Mk as Ho,Ml as Sp,Mm as Sq,Mn as Qr,N as $d,Na as Ze,Nb as _f,Nc as _g,Nd as Zh,Ne as Zi,Ng as Lk,Ni as Pm,Nj as In,Nk as Io,Nl as Tp,Nm as Tq,Nn as Rr,O as ae,Oa as _e,Ob as $f,Oc as $g,Od as _h,Oe as _i,Og as Mk,Oh as Ql,Oi as Qm,Oj as Jn,Ok as Jo,Ol as Up,Om as Uq,On as Sr,P as be,Pa as $e,Pb as ag,Pc as ah,Pd as $h,Pe as $i,Pg as Nk,Ph as Rl,Pi as Rm,Pj as Kn,Pk as Vo,Pl as Vp,Pm as Vq,Pn as Tr,Q as ce,Qa as af,Qb as bg,Qc as bh,Qd as ai,Qe as aj,Qg as Ok,Qh as Sl,Qi as Sm,Qj as Ln,Qk as Wo,Ql as Wp,Qm as Wq,Qn as Ur,R as de,Ra as bf,Rb as cg,Rc as ch,Rd as bi,Re as bj,Rg as Pk,Rh as Tl,Ri as Tm,Rj as Mn,Rk as Xo,Rl as Xp,Rm as Xq,S as ee,Sa as cf,Sb as dg,Sc as dh,Sd as ci,Se as cj,Sg as Qk,Sh as Ul,Si as Um,Sj as Nn,Sk as Yo,Sl as Yp,Sm as Yq,T as fe,Ta as df,Tb as eg,Tc as eh,Td as di,Te as dj,Tg as Rk,Th as Vl,Ti as Vm,Tj as On,Tk as Zo,Tl as Zp,Tm as Zq,Tn as Vr,U as ge,Ua as ef,Ub as fg,Uc as fh,Ud as ei,Ue as ej,Ug as Sk,Uh as Wl,Ui as Wm,Uj as Pn,Uk as _o,Ul as _p,Um as _q,Un as Wr,V as he,Va as ff,Vb as gg,Vc as gh,Vd as fi,Ve as fj,Vg as Tk,Vh as Xl,Vi as Xm,Vj as Qn,Vk as $o,Vl as $p,Vm as $q,Vn as Xr,W as ie,Wa as gf,Wb as hg,Wc as hh,Wd as gi,We as gj,Wg as Uk,Wh as Yl,Wi as Ym,Wj as Rn,Wk as ap,Wl as aq,Wm as ar,Wn as Yr,Xa as hf,Xb as ig,Xc as ih,Xd as hi,Xe as hj,Xg as Vk,Xh as Zl,Xi as Zm,Xj as Sn,Xk as bp,Xl as bq,Xm as br,Xn as Zr,Ya as jf,Yb as jg,Yc as jh,Yd as ii,Ye as ij,Yg as Wk,Yh as _l,Yi as _m,Yj as Tn,Yk as cp,Yl as cq,Ym as cr,Yn as _r,Za as kf,Zb as kg,Zc as kh,Zd as ji,Ze as jj,Zg as Xk,Zh as $l,Zi as $m,Zj as Un,Zk as dp,Zl as dq,Zm as dr,Zn as $r,_a as lf,_b as lg,_c as lh,_d as ki,_e as kj,_g as Yk,_h as am,_i as an,_j as Vn,_k as ep,_l as eq,_m as er,_n as as,aa as ke,ab as nf,ac as ng,ad as nh,ae as mi,af as mj,ag as _j,ah as _k,ai as cm,aj as cn,ak as Xn,al as gp,am as gq,an as gr,ao as cs,ba as le,bb as of,bc as og,bd as oh,be as ni,bf as nj,bg as $j,bh as $k,bi as dm,bj as dn,bk as Yn,bl as hp,bm as hq,bo as ds,c as qd,ca as me,cb as pf,cc as pg,cd as ph,ce as oi,cf as oj,cg as ak,ch as al,ci as em,cj as en,ck as Zn,cl as ip,cm as iq,cn as hr,co as es,d as rd,da as ne,db as qf,dc as qg,dd as qh,de as pi,df as pj,dg as bk,dh as bl,di as fm,dj as fn,dk as _n,dl as jp,dm as jq,dn as ir,do as fs,e as sd,ea as oe,eb as rf,ec as rg,ed as rh,ee as qi,ef as qj,eg as ck,eh as cl,ei as gm,ej as gn,ek as $n,el as kp,em as kq,en as jr,eo as gs,f as td,fa as pe,fb as sf,fc as sg,fd as sh,fe as ri,ff as rj,fg as dk,fh as dl,fi as hm,fj as hn,fk as ao,fl as lp,fm as lq,fn as kr,fo as hs,g as ud,ga as qe,gb as tf,gc as tg,gd as th,ge as si,gf as sj,gg as ek,gh as el,gi as im,gj as jn,gk as bo,gl as mp,gm as mq,gn as lr,go as is,h as vd,ha as re,hb as uf,hc as ug,hd as uh,he as ti,hf as tj,hg as fk,hh as fl,hi as jm,hj as kn,hk as co,hl as np,hm as nq,hn as mr,ho as js,i as wd,ia as se,ib as vf,ic as vg,ie as ui,if as uj,ig as gk,ih as gl,ii as km,ij as ln,ik as eo,il as op,im as oq,io as ks,j as xd,jb as wf,jc as wg,jd as vh,je as vi,jf as vj,jg as hk,jh as hl,ji as lm,jj as mn,jk as fo,jl as pp,jm as pq,jn as nr,k as yd,kb as xf,kc as xg,kd as wh,ke as wi,kf as wj,kg as ik,kh as il,ki as mm,kj as nn,kk as go,kl as qp,km as qq,kn as or,ko as ls,l as zd,lb as yf,lc as yg,ld as xh,le as xi,lf as xj,lg as jk,lh as jl,li as nm,lj as on,lk as ho,ll as rp,lm as rq,ln as pr,lo as ms,m as Ad,ma as te,mb as zf,mc as zg,md as yh,me as yi,mf as yj,mg as kk,mh as kl,mi as om,mj as pn,mk as io,ml as sp,mm as sq,mn as qr,mo as ns,n as Bd,na as xe,nb as Af,nc as Ag,nd as zh,ne as zi,nf as zj,ng as lk,nh as ll,ni as pm,nj as qn,nk as jo,nl as tp,nm as tq,nn as rr,no as os,o as Cd,oa as ye,ob as Bf,oc as Bg,od as Ah,oe as Ai,of as Aj,og as mk,oh as ml,oi as qm,oj as rn,ok as ko,ol as up,om as uq,on as sr,oo as ps,p as Dd,pa as ze,pb as Cf,pc as Cg,pd as Bh,pe as Bi,pf as Bj,pg as nk,ph as nl,pi as rm,pj as sn,pk as lo,pl as vp,pm as vq,pn as tr,po as qs,q as Ed,qa as Ce,qb as Df,qc as Dg,qd as Ch,qe as Ci,qf as Cj,qg as ok,qh as ol,qi as sm,qj as tn,ql as wp,qm as wq,qn as ur,qo as rs,r as Fd,ra as De,rb as Ef,rc as Eg,rd as Dh,re as Di,rf as Dj,rg as pk,rh as pl,ri as tm,rj as un,rk as mo,rl as xp,rm as xq,rn as vr,ro as ss,s as Gd,sa as Ee,sb as Ff,sc as Fg,sd as Eh,se as Ei,sf as Ej,sg as qk,sh as ql,si as um,sj as vn,sk as no,sl as yp,sm as yq,sn as wr,t as Hd,ta as Fe,tb as Gf,tc as Gg,td as Fh,te as Fi,tf as Fj,tg as rk,th as rl,ti as vm,tj as wn,tk as oo,tl as zp,tm as zq,tn as xr,u as Id,ua as Ge,ub as Hf,uc as Hg,ud as Gh,ue as Gi,uf as Gj,ug as sk,uh as sl,ui as wm,uj as xn,uk as po,ul as Ap,um as Aq,un as yr,v as Jd,va as He,vb as If,vc as Ig,vd as Hh,ve as Hi,vf as Hj,vg as tk,vh as Al,vi as xm,vj as yn,vk as qo,vl as Bp,vm as Bq,vn as zr,w as Kd,wa as Ie,wb as Jf,wc as Jg,wd as Ih,we as Ii,wf as Ij,wg as uk,wh as Bl,wi as ym,wj as zn,wk as ro,wl as Cp,wm as Cq,wn as Ar,x as Ld,xa as Je,xb as Kf,xc as Kg,xd as Jh,xe as Ji,xf as Jj,xg as vk,xh as Cl,xi as zm,xj as An,xk as so,xl as Dp,xm as Dq,xn as Br,y as Md,ya as Ke,yb as Lf,yc as Lg,yd as Kh,ye as Ki,yf as Kj,yg as wk,yh as Dl,yi as Am,yj as Bn,yk as to,yl as Ep,ym as Eq,yn as Cr,z as Nd,za as Le,zb as Mf,zc as Mg,zd as Lh,ze as Li,zf as Lj,zg as xk,zh as El,zi as Bm,zj as Cn,zk as uo,zl as Fp,zm as Fq,zn as Dr}from"./chunk-QLWIHN4W.js";import{$ as H,$a as ya,$b as yb,$d as ad,Aa as fa,Ab as Za,Ac as Zb,Ad as Bc,Ae as zl,B as h,Ba as ga,Bb as _a,Bc as _b,Bd as Cc,Be as Ko,C as i,Ca as ha,Cb as $a,Cc as $b,Cd as Dc,Ce as Lo,D as j,Da as ia,Db as ab,Dc as ac,Dd as Ec,De as Mo,E as k,Ea as ja,Eb as bb,Ec as bc,Ed as Fc,Ee as No,F as l,Fa as ka,Fb as cb,Fc as cc,Fd as Gc,Fe as Oo,G as m,Ga as la,Gb as db,Gc as dc,Gd as Hc,Ge as Po,H as n,Ha as ma,Hb as eb,Hc as ec,Hd as Ic,He as Qo,I as o,Ia as na,Ib as fb,Ic as fc,Id as Jc,Ie as Ro,J as p,Ja as oa,Jb as gb,Jc as gc,Jd as Kc,Je as So,K as q,Ka as pa,Kb as hb,Kc as hc,Kd as Lc,Ke as To,L as r,La as qa,Lb as ib,Lc as ic,Ld as Mc,Le as Uo,M as s,Ma as ra,Mb as jb,Mc as jc,Md as Nc,N as t,Na as sa,Nb as kb,Nc as kc,Nd as Oc,O as u,Oa as ta,Ob as lb,Oc as lc,Od as Pc,P as v,Pa as ua,Pb as mb,Pc as mc,Pd as Qc,Q as w,Qb as nb,Qd as Rc,R as x,Ra as va,Rb as ob,Rc as nc,Rd as Sc,S as y,Sb as pb,Sc as oc,Sd as Tc,T as z,Tb as qb,Tc as pc,Td as Uc,U as A,Ub as rb,Uc as qc,Ud as Vc,V as B,Vb as sb,Vc as rc,Vd as Wc,W as C,Wb as tb,Wc as sc,Wd as Xc,X as D,Xb as ub,Xc as tc,Xd as Yc,Y as E,Yb as vb,Yc as uc,Yd as Zc,Z as F,Za as wa,Zb as wb,Zc as vc,Zd as _c,_ as G,_a as xa,_b as xb,_d as $c,aa as I,ab as za,ac as zb,ad as wc,ae as bd,b as a,ba as J,bb as Aa,bc as Ab,bd as xc,be as cd,c as b,ca as K,cb as Ba,cc as Bb,cd as yc,ce as dd,d as c,da as L,db as Ca,dc as Cb,dd as zc,de as ed,ea as M,eb as Da,ec as Db,ed as Ac,ee as fd,fa as N,fb as Ea,fc as Eb,fe as gd,ga as O,gb as Fa,gc as Fb,h as d,ha as P,hb as Ga,hc as Gb,he as hd,i as e,ia as Q,ib as Ha,ic as Hb,ie as id,j as f,ja as R,jb as Ia,jc as Ib,je as jd,k as g,ka as S,kb as Ja,kc as Jb,ke as kd,la as T,lb as Ka,lc as Kb,le as ld,ma as U,mb as La,mc as Lb,me as md,na as V,nb as Ma,nc as Mb,ne as nd,oa as W,ob as Na,oc as Nb,oe as od,pa as X,pb as Oa,pc as Ob,pe as pd,qa as Y,qb as Pa,qc as Pb,qe as ue,ra as Z,rb as Qa,rc as Qb,re as ve,sb as Ra,sc as Rb,se as we,ta as _,tb as Sa,tc as Sb,ua as $,ub as Ta,uc as Tb,ue as tl,va as aa,vb as Ua,vc as Ub,ve as ul,wa as ba,wb as Va,wc as Vb,we as vl,xa as ca,xb as Wa,xc as Wb,xe as wl,ya as da,yb as Xa,yc as Xb,ye as xl,za as ea,zb as Ya,zc as Yb,ze as yl}from"./chunk-PZNAC7U7.js";import"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import{b as Ae,c as Be}from"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";export{Zb as ACTIVATE_SKILL_TOOL_NAME,vp as ADMIN_POLICY_TIER,Sc as AGENT_TOOL_NAME,Cp as ALLOWED_MCP_SERVER_PRIORITY,zp as ALLOWED_TOOLS_FLAG_PRIORITY,ed as ALL_BUILTIN_TOOL_NAMES,Dp as ALWAYS_ALLOW_PRIORITY,n as ALWAYS_ALLOW_PRIORITY_FRACTION,o as ALWAYS_ALLOW_PRIORITY_OFFSET,Vc as ASK_USER_DISPLAY_NAME,ic as ASK_USER_OPTION_PARAM_DESCRIPTION,hc as ASK_USER_OPTION_PARAM_LABEL,ac as ASK_USER_PARAM_QUESTIONS,cc as ASK_USER_QUESTION_PARAM_HEADER,fc as ASK_USER_QUESTION_PARAM_MULTI_SELECT,ec as ASK_USER_QUESTION_PARAM_OPTIONS,gc as ASK_USER_QUESTION_PARAM_PLACEHOLDER,bc as ASK_USER_QUESTION_PARAM_QUESTION,dc as ASK_USER_QUESTION_PARAM_TYPE,$b as ASK_USER_TOOL_NAME,hr as AbortError,oa as AccountSuspendedError,ah as ActionStatus,Pl as ActivateSkillTool,ai as ActivityDetector,si as ActivityMonitor,ri as ActivityType,eh as AdminControlsSettingsSchema,fn as AfterAgentHookOutput,en as AfterModelHookOutput,Em as AgentExecutionBlockedError,Dm as AgentExecutionStoppedError,An as AgentLoadError,sr as AgentSession,ln as AgentTerminateMode,Xf as ApiErrorEvent,Zh as ApiKeyUpdatedEvent,Wf as ApiRequestEvent,Ze as ApiRequestPhase,Yf as ApiResponseEvent,j as ApprovalMode,wm as AskUserInvocation,vm as AskUserTool,ls as AudioRecorder,kq as AuthProviderType,ml as AuthType,zd as BINARY_EXTENSIONS,rd as BINARY_FILE_PATTERNS,mj as BINARY_INJECTION_KEY,qa as BadRequestError,v as BaseDeclarativeTool,sk as BaseLlmClient,t as BaseToolInvocation,cn as BeforeModelHookOutput,bn as BeforeToolHookOutput,dn as BeforeToolSelectionHookOutput,Uk as CODE_ASSIST_API_VERSION,Tk as CODE_ASSIST_ENDPOINT,td as COMMON_DIRECTORY_EXCLUDES,qd as COMMON_IGNORE_PATTERNS,tc as COMPLETE_TASK_DISPLAY_NAME,sc as COMPLETE_TASK_TOOL_NAME,yp as CONFIRMATION_REQUIRED_PRIORITY,Ap as CORE_TOOLS_FLAG_PRIORITY,Wk as CacheService,ma as CanceledError,ra as ChangeAuthRequestedError,Lh as ChatRecordingService,uh as ClearcutLogger,Yj as CloseDiffRequestSchema,Vk as CodeAssistServer,Wl as ColorMode,Jm as CompressionStatus,mq as Config,lq as ConfigSchema,Vm as ConfigSource,_f as ConsecaPolicyGenerationEvent,$f as ConsecaVerdictEvent,gg as ConversationFinishedEvent,$g as ConversationInteractionInteraction,ue as CoreEvent,ve as CoreEventEmitter,ye as CoreToolCallStatus,Vh as CreditPurchaseClickEvent,Xh as CreditsUsedEvent,hd as DEFAULT_CONTEXT_FILENAME,pp as DEFAULT_CORE_POLICIES_DIR,Cd as DEFAULT_ENCODING,Tn as DEFAULT_FAST_ACK_MODEL_CONFIG_KEY,wd as DEFAULT_FILE_EXCLUDES,ul as DEFAULT_FILE_FILTERING_OPTIONS,Na as DEFAULT_GEMINI_EMBEDDING_MODEL,Da as DEFAULT_GEMINI_FLASH_LITE_MODEL,Ca as DEFAULT_GEMINI_FLASH_MODEL,Ba as DEFAULT_GEMINI_MODEL,Ia as DEFAULT_GEMINI_MODEL_AUTO,xj as DEFAULT_GUI_EDITOR,mk as DEFAULT_MAX_ATTEMPTS,Un as DEFAULT_MAX_INPUT_CHARS,yc as DEFAULT_MAX_LINES_TEXT_FILE,Vn as DEFAULT_MAX_OUTPUT_CHARS,on as DEFAULT_MAX_TIME_MINUTES,nn as DEFAULT_MAX_TURNS,tl as DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,Jo as DEFAULT_MODEL_CONFIGS,Ci as DEFAULT_OTLP_ENDPOINT,rp as DEFAULT_POLICY_TIER,mn as DEFAULT_QUERY_STRING,Bi as DEFAULT_TELEMETRY_TARGET,Oa as DEFAULT_THINKING_MODE,Lm as DEFAULT_TOKEN_LIMIT,iq as DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,dd as DISCOVERED_TOOL_PREFIX,Yb as DOCS_PARAM_PATH,u as DeclarativeTool,an as DefaultHookOutput,Ic as DiscoveredMCPTool,Hc as DiscoveredMCPToolInvocation,rl as DiscoveredTool,Aj as EDITOR_DISPLAY_NAMES,Uc as EDIT_DISPLAY_NAME,Hb as EDIT_PARAM_ALLOW_MULTIPLE,Eb as EDIT_PARAM_INSTRUCTION,Gb as EDIT_PARAM_NEW_STRING,Fb as EDIT_PARAM_OLD_STRING,Db as EDIT_TOOL_NAME,Kc as EDIT_TOOL_NAMES,lc as ENTER_PLAN_MODE_TOOL_NAME,Yh as EVENT_API_KEY_UPDATED,Wh as EVENT_CREDITS_USED,Uh as EVENT_CREDIT_PURCHASE_CLICK,Sh as EVENT_EMPTY_WALLET_MENU_SHOWN,Oh as EVENT_OVERAGE_MENU_SHOWN,Qh as EVENT_OVERAGE_OPTION_SELECTED,xp as EXCLUDE_TOOLS_FLAG_PRIORITY,jc as EXIT_PLAN_MODE_TOOL_NAME,kc as EXIT_PLAN_PARAM_PLAN_FILENAME,sp as EXTENSION_POLICY_TIER,Dk as EditTool,Th as EmptyWalletMenuShownEvent,Tf as EndSessionEvent,ni as EventLoopMonitor,Zl as ExecutionLifecycleService,cr as ExitCodes,dp as ExperimentFlags,og as ExtensionDisableEvent,mg as ExtensionEnableEvent,ig as ExtensionInstallEvent,sq as ExtensionIntegrityDataSchema,wq as ExtensionIntegrityManager,tq as ExtensionIntegrityMapSchema,Lp as ExtensionLoader,kg as ExtensionUninstallEvent,lg as ExtensionUpdateEvent,nk as FETCH_FAILED_MESSAGE,vg as FORCE_FILE_STORAGE_ENV_VAR,wn as FRONTMATTER_REGEX,ea as FatalAuthenticationError,la as FatalCancellationError,ha as FatalConfigError,da as FatalError,fa as FatalInputError,ga as FatalSandboxError,ja as FatalToolExecutionError,ia as FatalTurnLimitedError,ka as FatalUntrustedWorkspaceError,fh as FetchAdminControlsResponseSchema,fm as FetchError,Fl as FileDiscoveryService,xd as FileExclusions,Ve as FileOperation,Rj as FileSchema,jr as FileSearchFactory,Zf as FlashFallbackEvent,nr as FolderTrustDiscoveryService,na as ForbiddenError,gh as G1_CREDIT_TYPE,kh as G1_UTM_CAMPAIGNS,Lj as GEMINI_CLI_COMPANION_EXTENSION_NAME,_l as GEMINI_CLI_IDENTIFICATION_ENV_VAR,$l as GEMINI_CLI_IDENTIFICATION_ENV_VAR_VALUE,I as GEMINI_DIR,vl as GEMINI_IGNORE_FILE_NAME,Ja as GEMINI_MODEL_ALIAS_AUTO,La as GEMINI_MODEL_ALIAS_FLASH,Ma as GEMINI_MODEL_ALIAS_FLASH_LITE,Ka as GEMINI_MODEL_ALIAS_PRO,Fa as GEMMA_4_26B_A4B_IT_MODEL,Ea as GEMMA_4_31B_IT_MODEL,Mm as GEMMA_4_TOKEN_LIMIT,Ge as GEN_AI_AGENT_DESCRIPTION,Fe as GEN_AI_AGENT_NAME,Te as GEN_AI_CONVERSATION_ID,He as GEN_AI_INPUT_MESSAGES,Ee as GEN_AI_OPERATION_NAME,Ie as GEN_AI_OUTPUT_MESSAGES,Le as GEN_AI_PROMPT_NAME,Je as GEN_AI_REQUEST_MODEL,Ke as GEN_AI_RESPONSE_MODEL,Re as GEN_AI_SYSTEM_INSTRUCTIONS,Ne as GEN_AI_TOOL_CALL_ID,Se as GEN_AI_TOOL_DEFINITIONS,Oe as GEN_AI_TOOL_DESCRIPTION,Me as GEN_AI_TOOL_NAME,Pe as GEN_AI_USAGE_INPUT_TOKENS,Qe as GEN_AI_USAGE_OUTPUT_TOKENS,Xb as GET_INTERNAL_DOCS_TOOL_NAME,Xc as GLOB_DISPLAY_NAME,hb as GLOB_TOOL_NAME,J as GOOGLE_ACCOUNTS_FILENAME,le as GOVERNANCE_FILES,Zc as GREP_DISPLAY_NAME,qb as GREP_PARAM_AFTER,rb as GREP_PARAM_BEFORE,pb as GREP_PARAM_CONTEXT,kb as GREP_PARAM_EXCLUDE_PATTERN,ob as GREP_PARAM_FIXED_STRINGS,jb as GREP_PARAM_INCLUDE_PATTERN,mb as GREP_PARAM_MAX_MATCHES_PER_FILE,lb as GREP_PARAM_NAMES_ONLY,sb as GREP_PARAM_NO_IGNORE,nb as GREP_PARAM_TOTAL_MAX_MATCHES,ib as GREP_TOOL_NAME,xh as GcpLogExporter,wh as GcpMetricExporter,vh as GcpTraceExporter,Fm as GeminiChat,Ue as GeminiCliOperation,Pn as GeminiClient,Im as GeminiEventType,ms as GeminiLiveTranscriptionProvider,_e as GenAiOperationName,$e as GenAiProviderName,af as GenAiTokenType,Bl as GitIgnoreParser,oo as GitService,Nl as GlobTool,Hl as GrepTool,Ym as HOOKS_CONFIG_FIELDS,ei as HighWaterMarkTracker,_o as HookAggregator,ap as HookEventHandler,Xm as HookEventName,$o as HookPlanner,Yo as HookRegistry,Zo as HookRunner,bp as HookSystem,Zm as HookType,ak as IDEConnectionStatus,rh as IDE_DEFINITIONS,Mj as IDE_MAX_OPEN_FILES,Nj as IDE_MAX_SELECTED_TEXT_LENGTH,Oj as IDE_REQUEST_TIMEOUT_MS,ok as INCOMPLETE_JSON_MESSAGE,Rm as INITIAL_HISTORY_LENGTH,wl as INTEGRITY_FILENAME,xl as INTEGRITY_KEY_FILENAME,bk as IdeClient,fg as IdeConnectionEvent,eg as IdeConnectionType,Tj as IdeContextNotificationSchema,Sj as IdeContextSchema,Pj as IdeContextStore,Uj as IdeDiffAcceptedNotificationSchema,Wj as IdeDiffClosedNotificationSchema,Vj as IdeDiffRejectedNotificationSchema,l as InProcessCheckerType,_k as IneligibleTierError,Yg as IneligibleTierReasonCode,bh as InitiationMethod,lp as InjectionService,vq as IntegrityDataStatus,qq as IntegrityStatus,uq as IntegrityStoreSchema,Cm as InvalidStreamError,oq as JsonFormatter,Io as JsonStreamEventType,yl as KEYCHAIN_SERVICE_NAME,tg as KEYCHAIN_TEST_PREFIX,sg as KeychainSchema,wg as KeychainService,xg as KeychainTokenStorage,F as Kind,vc as LIST_MCP_RESOURCES_TOOL_NAME,Al as LSTool,Yc as LS_DISPLAY_NAME,ub as LS_PARAM_IGNORE,tb as LS_TOOL_NAME,Gr as LegacyAgentProtocol,Hr as LegacyAgentSession,Rf as LlmRole,hs as LoadedTrustedFolders,go as LocalAgentExecutor,re as LocalSandboxManager,_q as Logger,el as LoggingContentGenerator,Ac as MAX_FILE_SIZE_MB,Ih as MAX_HISTORY_MESSAGES,zc as MAX_LINE_LENGTH_TEXT_FILE,Jh as MAX_TOOL_OUTPUT_SIZE,Qp as MCPDiscoveryState,Np as MCPOAuthProvider,Fn as MCPOAuthTokenStorage,jq as MCPServerConfig,Pp as MCPServerStatus,Op as MCP_DEFAULT_TIMEOUT_MSEC,wp as MCP_EXCLUDED_PRIORITY,Bc as MCP_QUALIFIED_NAME_SEPARATOR,Cc as MCP_TOOL_PREFIX,sd as MEDIA_FILE_PATTERNS,Wb as MEMORY_PARAM_FACT,id as MEMORY_SECTION_HEADER,Vb as MEMORY_TOOL_NAME,nh as MIN_CREDIT_BALANCE,k as MODES_BY_PERMISSIVENESS,G as MUTATOR_KINDS,Rp as McpClient,dh as McpConfigDefinitionSchema,Vo as MemoryContextManager,Xe as MemoryMetricType,hi as MemoryMonitor,pd as MemoryTool,eo as MessageBus,q as MessageBusType,Xq as MessageSenderType,Gn as ModelConfigService,fk as ModelNotFoundError,Go as ModelRouterService,ng as ModelSlashCommandEvent,wj as NO_EDITOR_AVAILABLE_ERROR,hg as NetworkRetryAttemptEvent,qe as NoopSandboxManager,gn as NotificationType,En as OAuthUtils,cm as OUTPUT_UPDATE_INTERVAL_MS,hh as OVERAGE_ELIGIBLE_MODELS,_g as OnboardUserStatusCode,qg as OnboardingStartEvent,rg as OnboardingSuccessEvent,Xj as OpenDiffRequestSchema,Ho as OutputFormat,Ph as OverageMenuShownEvent,Rh as OverageOptionSelectedEvent,cb as PARAM_CASE_SENSITIVE,gb as PARAM_DESCRIPTION,ab as PARAM_DIR_PATH,fb as PARAM_FILE_FILTERING_OPTIONS,$a as PARAM_FILE_PATH,bb as PARAM_PATTERN,eb as PARAM_RESPECT_GEMINI_IGNORE,db as PARAM_RESPECT_GIT_IGNORE,mc as PLAN_MODE_PARAM_REASON,fd as PLAN_MODE_TOOLS,ya as PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,Aa as PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,xa as PREVIEW_GEMINI_3_1_MODEL,za as PREVIEW_GEMINI_FLASH_MODEL,wa as PREVIEW_GEMINI_MODEL,Ha as PREVIEW_GEMINI_MODEL_AUTO,m as PRIORITY_SUBAGENT_TOOL,p as PRIORITY_YOLO_ALLOW_ALL,jd as PROJECT_MEMORY_INDEX_FILENAME,ud as PYTHON_EXCLUDES,We as PerformanceMetricType,vk as PlanErrorMessages,h as PolicyDecision,Xo as PolicyEngine,rq as PolicyIntegrityManager,kn as PreCompressTrigger,gm as PrivateIpError,Yk as ProjectIdRequiredError,r as QuestionType,Wc as READ_FILE_DISPLAY_NAME,xb as READ_FILE_PARAM_END_LINE,wb as READ_FILE_PARAM_START_LINE,vb as READ_FILE_TOOL_NAME,ad as READ_MANY_FILES_DISPLAY_NAME,Qb as READ_MANY_FILES_TOOL_NAME,Sb as READ_MANY_PARAM_EXCLUDE,Rb as READ_MANY_PARAM_INCLUDE,Tb as READ_MANY_PARAM_RECURSIVE,Ub as READ_MANY_PARAM_USE_DEFAULT_EXCLUDES,uc as READ_MCP_RESOURCE_TOOL_NAME,H as READ_ONLY_KINDS,Wd as REDIRECTION_NAMES,xc as REFERENCE_CONTENT_END,wc as REFERENCE_CONTENT_START,Mk as RELEASE_CHANNEL_STABILITY,xe as ROOT_SCHEDULER_ID,fi as RateLimiter,Gl as ReadFileTool,Ir as ReadManyFilesTool,ll as RecordingContentGenerator,Lk as ReleaseChannel,ch as RequiredMcpServerConfigSchema,ql as ResourceRegistry,hk as RetryableQuotaError,cg as RewindEvent,Ll as RipGrepTool,am as SCROLLBACK_LIMIT,me as SECRET_FILES,zl as SECRET_KEY_ACCOUNT,ug as SECRET_PREFIX,De as SERVICE_DESCRIPTION,Ce as SERVICE_NAME,Hh as SESSION_FILE_PREFIX,no as SHADOW_REPO_AUTHOR_EMAIL,mo as SHADOW_REPO_AUTHOR_NAME,zb as SHELL_PARAM_COMMAND,Ab as SHELL_PARAM_IS_BACKGROUND,yb as SHELL_TOOL_NAME,Td as SHELL_TOOL_NAMES,_b as SKILL_PARAM_NAME,rn as SUBAGENT_CANCELLED_ERROR_MESSAGE,qn as SUBAGENT_REJECTED_ERROR_PREFIX,Am as SYNTHETIC_THOUGHT_SIGNATURE,vd as SYSTEM_FILE_EXCLUDES,qo as SandboxedFileSystemService,Rn as Scheduler,d as SchemaValidator,If as SemanticAttributes,jn as SessionEndReason,hn as SessionStartSource,bm as ShellExecutionService,em as ShellTool,dm as ShellToolInvocation,Mp as SimpleExtensionLoader,ep as SkillManager,bg as SlashCommandStatus,Be as SpanStatusCode,po as StandardFileSystemService,Sf as StartSessionEvent,yi as StartupProfiler,va as Storage,zm as StreamEventType,pq as StreamJsonFormatter,pn as SubagentActivityErrorType,vo as TASK_TYPE_LABELS,Mb as TODOS_ITEM_PARAM_DESCRIPTION,Nb as TODOS_ITEM_PARAM_STATUS,Lb as TODOS_PARAM_TODOS,Lc as TOOLS_REQUIRING_NARROWING,bd as TOOL_LEGACY_ALIASES,Pd as TOOL_OUTPUTS_DIR,rc as TOPIC_PARAM_STRATEGIC_INTENT,qc as TOPIC_PARAM_SUMMARY,pc as TOPIC_PARAM_TITLE,Qc as TRACKER_ADD_DEPENDENCY_TOOL_NAME,Mc as TRACKER_CREATE_TASK_TOOL_NAME,Oc as TRACKER_GET_TASK_TOOL_NAME,Pc as TRACKER_LIST_TASKS_TOOL_NAME,Nc as TRACKER_UPDATE_TASK_TOOL_NAME,Rc as TRACKER_VISUALIZE_TOOL_NAME,K as TRUSTED_FOLDERS_FILENAME,Bp as TRUSTED_MCP_SERVER_PRIORITY,wo as TaskStatus,xo as TaskStatusSchema,to as TaskType,uo as TaskTypeSchema,Ai as TelemetryTarget,gk as TerminalQuotaError,ze as ToolCallDecision,Vf as ToolCallEvent,E as ToolConfirmationOutcome,b as ToolErrorType,Ye as ToolExecutionPhase,Qn as ToolExecutor,jg as ToolOutputTruncatedEvent,sl as ToolRegistry,Eo as TrackerAddDependencyTool,Ao as TrackerCreateTaskTool,Co as TrackerGetTaskTool,Do as TrackerListTasksTool,Wo as TrackerService,yo as TrackerTaskSchema,Bo as TrackerUpdateTaskTool,Fo as TrackerVisualizeTool,os as TranscriptionFactory,ds as TrustLevel,Km as Turn,oc as UPDATE_TOPIC_DISPLAY_NAME,nc as UPDATE_TOPIC_TOOL_NAME,kk as UPGRADE_URL_PAGE,up as USER_POLICY_TIER,Xn as USER_STEERING_INSTRUCTION,Mh as UiTelemetryService,pa as UnauthorizedError,te as UserAccountManager,Uf as UserPromptEvent,Zg as UserTierId,Ga as VALID_GEMINI_MODELS,Zk as ValidationCancelledError,ik as ValidationRequiredError,Ae as ValueType,$c as WEB_FETCH_DISPLAY_NAME,Pb as WEB_FETCH_PARAM_PROMPT,Ob as WEB_FETCH_TOOL_NAME,_c as WEB_SEARCH_DISPLAY_NAME,Jb as WEB_SEARCH_PARAM_QUERY,Ib as WEB_SEARCH_TOOL_NAME,tp as WORKSPACE_POLICY_TIER,Tc as WRITE_FILE_DISPLAY_NAME,Cb as WRITE_FILE_PARAM_CONTENT,Bb as WRITE_FILE_TOOL_NAME,Kb as WRITE_TODOS_TOOL_NAME,Tr as WarningPriority,pg as WebFetchFallbackAttemptEvent,tm as WebFetchTool,um as WebSearchTool,ps as WhisperModelManager,ns as WhisperTranscriptionProvider,je as WindowsSandboxManager,co as WorkspaceContext,Vr as WorktreeService,Gk as WriteFileTool,so as WriteTodosTool,Nk as _clearCache,Tp as addMCPStatusChangeListener,Kq as addMemory,Fj as allowEditorTypeInSandbox,kj as appendToLastTextPart,$q as applyAdminAllowlist,Sq as applyInboxMemoryPatch,Vq as applyInboxPatch,zk as applyReplacement,ar as applyRequiredServers,W as assertValidPathString,io as assumeExhaustive,Sg as authEvents,fr as belongsInConfirmationQueue,lh as buildG1Url,zo as buildTodosReturnDisplay,vr as buildToolResponseData,dr as buildToolVisibilityContext,Yn as buildUserSteeringHintPrompt,_h as bytesToMB,Ak as calculateReplacement,Jl as canUseRipgrep,gi as captureHeapSnapshot,Ro as categorizeAndConcatenate,jo as checkExhaustive,fs as checkPathTrust,Ln as checkPolicy,jk as classifyGoogleError,as as cleanupWorktree,kl as clearApiKey,Wg as clearCachedCredentialFile,qp as clearEmittedPolicyWarnings,Vg as clearOauthClientCache,gs as clearRealPathCacheForTesting,hj as cloneFunctionCall,gj as cloneFunctionResponse,ej as clonePart,Qf as computeModelAddedAndRemovedLines,Mo as concatenateInstructions,$p as connectAndDiscover,fq as connectToMcpServer,ur as contentPartsToGeminiParts,Yl as convertColorToHex,sm as convertGithubUrlToRaw,mr as convertSessionToClientHistory,nj as convertToFunctionResponse,lr as convertToRestPayload,we as coreEvents,Xk as createCache,fl as createCodeAssistContentGenerator,pl as createContentGenerator,ol as createContentGeneratorConfig,Jk as createConversationOffered,$m as createHookOutput,Jp as createPolicyEngineConfig,Kp as createPolicyUpdater,nm as createSafeProxyAgent,ke as createSandboxManager,Jr as createSessionId,Ar as createTranslationState,gq as createTransport,fo as createUnauthorizedToolError,Bg as createWorkingStdio,Zr as createWorktree,Wr as createWorktreeService,a as debugLogger,Zq as decodeTagName,Y as deduplicateAbsolutePaths,Ko as deduplicatePathsByFileIdentity,Fh as deleteSessionArtifactsAsync,Gh as deleteSubagentSessionDirAndArtifactsAsync,Dd as detectBOM,ie as detectCommandSubstitution,Vl as detectEncodingFromBuffer,Kd as detectFileType,th as detectIdeFromEnv,Lf as detectLineEnding,Kg as disableBracketedPasteMode,Gg as disableKittyKeyboardProtocol,Mg as disableLineWrapping,Ig as disableModifyOtherKeys,Eg as disableMouseEvents,Cg as disableMouseTracking,Zp as discoverMcpTools,bq as discoverPrompts,cq as discoverResources,aq as discoverTools,Tq as dismissInboxMemoryPatch,Wq as dismissInboxPatch,Pq as dismissInboxSkill,zr as displayContentToString,Jn as doesToolInvocationMatch,Jg as enableBracketedPasteMode,Fg as enableKittyKeyboardProtocol,Lg as enableLineWrapping,Hg as enableModifyOtherKeys,Dg as enableMouseEvents,Yq as encodeTagName,Kl as ensureRgPath,Ng as enterAlternateScreen,Q as escapePath,ae as escapeShellArg,dl as estimateContextBreakdown,he as execStreaming,Og as exitAlternateScreen,yd as extractExtensionsFromPatterns,Sd as extractStringFromParseEntry,gp as fetchAdminControls,hp as fetchAdminControlsOnce,om as fetchWithTimeout,Md as fileExists,ir as filter,El as findGitRoot,pe as findSecretFiles,jj as flatMapTextParts,nq as flattenMemory,Fi as flushTelemetry,_n as formatBackgroundCompletionForModel,$h as formatBytes,Aq as formatCheckpointDisplayList,bs as formatForSpeech,Fc as formatMcpToolName,Hp as formatPolicyError,Kk as formatProtoJsonDuration,Od as formatTruncatedToolOutput,Zn as formatUserHintsForModel,tr as geminiPartsToContentParts,Nn as generalistProfile,zq as generateCheckpointFileName,bo as generateFastAckText,$n as generateSteeringAckMessage,pr as generateSummary,Jc as generateValidName,Cl as getAbsoluteGitDir,bi as getActivityDetector,ui as getActivityMonitor,kp as getAdminBlockedMcpServersMessage,jp as getAdminErrorMessage,un as getAgentCardLoadOptions,md as getAllGeminiMdFilenames,Xp as getAllMCPServerStatuses,Qq as getAllowedMemoryPatchRoots,Ep as getAlwaysAllowPriorityFraction,ko as getApprovalModeDescription,nl as getAuthTypeFromEnv,Ug as getAvailablePort,Sl as getCachedEncodingForBuffer,Ok as getChannelFromVersion,Dq as getCheckpointInfoList,vj as getCitations,gl as getCodeAssistServer,Rd as getCommandName,de as getCommandRoot,ee as getCommandRoots,Ur as getCompatibilityWarnings,Qm as getCompressionPrompt,Rg as getConsentForOauth,rf as getConventionAttributes,Pm as getCoreSystemPrompt,Fk as getCorrectedFileContent,ld as getCurrentGeminiMdFilename,Jj as getDiffCommand,Sm as getDirectoryContextString,Ra as getDisplayString,Ej as getEditorCommand,Bj as getEditorDisplayName,Tm as getEnvironmentContext,Qo as getEnvironmentMemoryPaths,ba as getErrorMessage,Bk as getErrorReplaceResult,ek as getErrorStatus,ca as getErrorType,qi as getEventLoopMonitor,cp as getExperiments,Po as getExtensionMemoryPaths,Pf as getFileDiffFromResultDisplay,Ol as getFolderStructure,br as getFsErrorMessage,pj as getFunctionCalls,rj as getFunctionCallsAsJson,qj as getFunctionCallsFromParts,sj as getFunctionCallsFromPartsAsJson,mh as getG1CreditBalance,nd as getGlobalMemoryFilePath,No as getGlobalMemoryPaths,_m as getHookKey,i as getHookSource,qr as getIdeInstaller,Um as getInitialChatHistory,Yp as getMCPDiscoveryState,rr as getMCPServerPrompts,Wp as getMCPServerStatus,ji as getMemoryMonitor,Tg as getOauthClient,Zj as getPackageJson,lo as getPlanModeExitMessage,Kn as getPolicyDenialError,Fp as getPolicyDirectories,Gp as getPolicyTier,or as getPreviousSession,S as getProjectHash,od as getProjectMemoryIndexFilePath,Xr as getProjectRootForWorktree,uk as getPromptIdWithFallback,Ql as getPty,Hd as getRealPath,Pk as getReleaseChannel,vn as getRemoteAgentTargetUrl,ij as getResponseText,oj as getResponseTextFromParts,pk as getRetryErrorType,Il as getRipgrepPath,oe as getSecretFileFindArgs,_d as getShellConfiguration,Fd as getSpecificMimeType,tj as getStructuredResponse,uj as getStructuredResponseFromParts,Tl as getSystemEncoding,cd as getToolAliases,yq as getToolCallDataSchema,In as getToolSuggestion,Bq as getTruncatedCheckpointNames,Oo as getUserProjectMemoryPaths,_j as getVersion,Yr as getWorktreePath,lk as handleFallback,x as hasCycleInSchema,eq as hasNetworkTransport,be as hasRedirection,z as hasSummary,Cj as hasValidEditorCommand,Dj as hasValidEditorCommandAsync,$r as hasWorktreeChanges,L as homedir,Qj as ideContextStore,ti as initializeActivityMonitor,ii as initializeMemoryMonitor,Vd as initializeShellParsers,Ei as initializeTelemetry,dq as invokeMcpPrompt,aa as isAbortError,ta as isAccountSuspendedError,_a as isActiveModel,lm as isAddressPrivate,bl as isApiError,Qr as isAppleTerminal,ua as isAuthenticationError,Ya as isAutoModel,s as isBackgroundExecutionData,Kf as isBinary,qs as isBinaryAvailable,Jd as isBinaryFile,sh as isCloudShell,xm as isCompletedAskUserTool,Wa as isCustomModel,Pr as isDumbTerminal,Ck as isEditToolParams,Gj as isEditorAvailable,Hj as isEditorAvailableAsync,Id as isEmpty,hq as isEnabled,c as isFatalToolError,D as isFileDiff,Va as isGemini2Model,Ua as isGemini3Model,_r as isGeminiWorktree,Dl as isGitRepository,Nr as isGnuScreen,A as isGrepResult,yj as isGuiEditor,Qg as isHeadlessMode,Hm as isInvalidArgumentError,Lr as isJetBrainsTerminal,B as isListResult,jm as isLoopbackHost,Or as isLowColorTmux,Gc as isMcpToolAnnotation,Dc as isMcpToolName,Qk as isNightly,$ as isNodeError,ih as isOverageEligibleModel,Df as isPerformanceMonitoringActive,Rk as isPreview,Sa as isPreviewModel,km as isPrivateIp,mm as isPrivateIpAsync,Ta as isProModel,Gq as isProjectSkillPatchTarget,C as isReadManyFilesResult,g as isRecord,er as isRenderedInHistory,qk as isRetryableError,Gm as isSchemaDepthError,ne as isSecretFile,Sk as isStable,cl as isStructuredError,y as isStructuredToolResult,sn as isSubagentProgress,U as isSubpath,Di as isTelemetrySdkInitialized,zj as isTerminalEditor,lj as isTextPart,Mr as isTmux,w as isTool,tn as isToolActivityError,Hn as isToolCallResponseInfo,es as isTrustLevel,di as isUserActive,Wm as isUserVisibleHook,Bm as isValidNonThoughtTextPart,V as isValidPathString,gd as isValidToolName,gr as isVisibleInToolGroup,$d as isWindows,Kr as isWindows10,Gd as isWithinRoot,Ek as isWriteFileToolParams,e as jsonToMarkdown,cs as legacyGeneralistProfile,xq as listExtensions,Rq as listInboxMemoryPatches,Uq as listInboxPatches,Nq as listInboxSkills,Mq as listMemoryFiles,Dn as loadAgentsFromDirectory,il as loadApiKey,Kh as loadConversationRecord,Ip as loadExtensionPolicies,Uo as loadJitSubdirectoryMemory,np as loadPoliciesFromToml,So as loadServerHierarchicalMemory,zn as loadSkillFromFile,yn as loadSkillsFromDir,js as loadTrustedFolders,Bd as loadWasmBinary,Ni as logApiError,Li as logApiRequest,Oi as logApiResponse,cj as logBillingEvent,Ti as logChatCompression,Hi as logCliConfiguration,Bh as logConsecaPolicyGeneration,Ch as logConsecaVerdict,Si as logConversationFinishedEvent,_i as logExtensionDisable,Zi as logExtensionEnable,Wi as logExtensionInstallEvent,Xi as logExtensionUninstall,Yi as logExtensionUpdateEvent,Mi as logFlashFallback,Ri as logIdeConnection,Vi as logModelSlashCommand,Ui as logNetworkRetryAttempt,aj as logOnboardingStart,bj as logOnboardingSuccess,Qi as logRewind,Pi as logSlashCommand,Ji as logToolCall,Ki as logToolOutputTruncated,Ii as logUserPrompt,$i as logWebFetchFallbackAttempt,dg as makeChatCompressionEvent,rs as makeFakeConfig,P as makeRelative,ag as makeSlashCommandEvent,Er as mapError,Cr as mapFinishReason,Dr as mapHttpToGrpcStatus,Fr as mapUsage,Cn as markdownToAgentDefinition,Sp as mcpServerRequiresOAuth,Oq as moveInboxSkill,Xd as normalizeCommand,T as normalizePath,Wn as normalizeSpace,qm as normalizeUrl,ck as openBrowserSecurely,Kj as openDiff,Bn as parseAgentMarkdown,kr as parseAndFormatApiError,Yd as parseBashCommandDetails,yh as parseBooleanEnvFlag,Zd as parseCommandDetails,xn as parseFrontmatter,_ as parseGoogleApiError,Ec as parseMcpToolName,rm as parsePrompt,zh as parseTelemetryTargetValue,Dh as parseThought,ym as partListUnionToString,dj as partToString,Ag as patchStdio,Fq as performInit,Eq as performRestore,_p as populateMcpServerCommand,wr as populateToolDisplay,Cq as processRestorableToolCalls,Ld as processSingleFileContent,tk as promptIdContext,Ed as readFileWithEncoding,Lo as readGeminiMdFiles,ss as readPathFromWorkspace,mp as readPolicyFiles,Ad as readWasmBinaryFromDisk,ef as recordApiErrorMetrics,zf as recordApiRequestBreakdown,Ff as recordApiResponseMetrics,Cf as recordBaselineComparison,mf as recordContentRetry,nf as recordContentRetryFailure,Hk as recordConversationOffered,uf as recordCpuUsage,Hf as recordCreditPurchaseClick,ki as recordCurrentMemoryUsage,df as recordCustomApiResponseMetrics,cf as recordCustomTokenUsageMetrics,vf as recordEventLoopDelay,hf as recordExitFail,ff as recordFileOperationMetric,gf as recordFlickerFrame,qf as recordGenAiClientOperationDuration,pf as recordGenAiClientTokenUsage,kf as recordInvalidChunk,tf as recordMemoryUsage,of as recordModelRoutingMetrics,Gf as recordOverageOptionSelected,Bf as recordPerformanceRegression,Af as recordPerformanceScore,lf as recordRetryAttemptMetrics,jf as recordSlowRender,sf as recordStartupPerformance,yf as recordTokenEfficiency,Ef as recordTokenUsageMetrics,Ik as recordToolCallInteractions,bf as recordToolCallMetrics,xf as recordToolExecutionBreakdown,wf as recordToolQueueDepth,ci as recordUserActivity,Lq as refreshMemory,To as refreshServerHierarchicalMemory,Up as removeMCPStatusChangeListener,yr as renderDisplayDiff,hl as resetApiKeyCacheForTesting,ho as resetBrowserSession,Rl as resetEncodingCache,Xg as resetOauthClientForTesting,is as resetTrustedFoldersForTesting,$k as resetUserDataCacheForTesting,$j as resetVersionCache,wk as resolveAndValidatePlanPath,Qa as resolveClassifierModel,Ij as resolveEditorAsync,Ud as resolveExecutable,Pa as resolveModel,Om as resolvePathFromEnv,se as resolveSandboxPaths,Ah as resolveTelemetrySettings,X as resolveToRealPath,rk as retryWithBackoff,xi as runInDevTraceSpan,f as safeJsonToMarkdown,Jf as safeLiteralReplace,Nf as safeTemplateReplace,fp as sanitizeAdminSettings,Nd as sanitizeFilenamePart,im as sanitizeHostname,Of as sanitizeOutput,jl as saveApiKey,Qd as saveTruncatedToolOutput,ks as saveTrustedFolders,Sn as scheduleAgentTools,Xl as serializeTerminalToObject,kd as setGeminiMdFilename,pm as setGlobalProxy,al as setupUser,O as shortenPath,ro as shouldAttemptBrowserLaunch,oh as shouldAutoUseCredits,Pg as shouldEnterAlternateScreen,dk as shouldLaunchBrowser,qh as shouldShowEmptyWalletMenu,ph as shouldShowOverageMenu,Jq as showMemory,Gi as shutdownTelemetry,Ml as sortFileEntries,ge as spawnAsync,ce as splitCommands,vi as startGlobalActivityMonitoring,oi as startGlobalEventLoopMonitoring,li as startGlobalMemoryMonitoring,Iq as startMemoryService,zi as startupProfiler,ip as stopAdminControlsPolling,wi as stopGlobalActivityMonitoring,pi as stopGlobalEventLoopMonitoring,mi as stopGlobalMemoryMonitoring,On as stressTestProfile,fe as stripShellWrapper,Rr as supports256Colors,Xa as supportsModernFeatures,Za as supportsMultimodalFunctionResponse,Sr as supportsTrueColor,N as tildeifyPath,M as tmpdir,sa as toFriendlyError,Z as toPathKey,Nm as tokenLimit,xr as toolResultDisplayToDisplayContent,Br as translateEvent,ao as truncateFastAckInput,Mf as truncateString,Nh as uiTelemetryService,R as unescapePath,hm as updateGlobalFetchTimeouts,Vp as updateMCPServerStatus,fj as updatePart,Mn as updatePolicy,Eh as validateAndSanitizeSessionId,op as validateMcpPolicyToolNames,Hq as validatePatches,yk as validatePlanContent,xk as validatePlanPath,Ul as windowsCodePageToEncoding,jh as wrapInAccountChooser,zg as writeToStderr,yg as writeToStdout};
2
+ import{$ as je,$a as mf,$b as mg,$c as mh,$d as li,$e as lj,$f as Zj,$g as Zk,$h as bm,$i as bn,$j as Wn,$k as fp,$l as fq,$m as fr,$n as bs,A as Od,Aa as Me,Ab as Nf,Ac as Ng,Ad as Mh,Ae as Mi,Af as Mj,Ag as yk,Ah as Fl,Ai as Cm,Aj as Dn,Ak as vo,Al as Gp,Am as Gq,An as Er,B as Pd,Ba as Ne,Bb as Of,Bc as Og,Bd as Nh,Be as Ni,Bf as Nj,Bg as zk,Bh as Gl,Bi as Dm,Bk as wo,Bl as Hp,Bm as Hq,Bn as Fr,C as Qd,Ca as Oe,Cb as Pf,Cc as Pg,Cd as Oh,Ce as Oi,Cf as Oj,Cg as Ak,Ci as Em,Cj as En,Ck as xo,Cl as Ip,Cm as Iq,Cn as Gr,D as Rd,Da as Pe,Db as Qf,Dc as Qg,Dd as Ph,De as Pi,Df as Pj,Dg as Bk,Dh as Hl,Di as Fm,Dk as yo,Dl as Jp,Dm as Jq,Dn as Hr,E as Sd,Ea as Qe,Eb as Rf,Ec as Rg,Ed as Qh,Ee as Qi,Ef as Qj,Eg as Ck,Eh as Il,Ei as Gm,Ej as Fn,Ek as zo,El as Kp,Em as Kq,En as Ir,F as Td,Fa as Re,Fb as Sf,Fc as Sg,Fd as Rh,Fe as Ri,Ff as Rj,Fg as Dk,Fh as Jl,Fi as Hm,Fk as Ao,Fl as Lp,Fm as Lq,Fn as Jr,G as Ud,Ga as Se,Gb as Tf,Gc as Tg,Gd as Sh,Ge as Si,Gf as Sj,Gg as Ek,Gh as Kl,Gi as Im,Gk as Bo,Gl as Mp,Gm as Mq,Gn as Kr,H as Vd,Ha as Te,Hb as Uf,Hc as Ug,Hd as Th,He as Ti,Hf as Tj,Hg as Fk,Hh as Ll,Hi as Jm,Hk as Co,Hl as Np,Hm as Nq,Hn as Lr,I as Wd,Ia as Ue,Ib as Vf,Ic as Vg,Id as Uh,Ie as Ui,If as Uj,Ig as Gk,Ih as Ml,Ii as Km,Ik as Do,Il as Op,Im as Oq,In as Mr,J as Xd,Ja as Ve,Jb as Wf,Jc as Wg,Jd as Vh,Je as Vi,Jf as Vj,Jg as Hk,Jh as Nl,Ji as Lm,Jk as Eo,Jl as Pp,Jm as Pq,Jn as Nr,K as Yd,Ka as We,Kb as Xf,Kc as Xg,Kd as Wh,Ke as Wi,Kf as Wj,Kg as Ik,Kh as Ol,Ki as Mm,Kk as Fo,Kl as Qp,Km as Qq,Kn as Or,L as Zd,La as Xe,Lb as Yf,Lc as Yg,Ld as Xh,Le as Xi,Lf as Xj,Lg as Jk,Lh as Pl,Li as Nm,Lj as Gn,Lk as Go,Ll as Rp,Lm as Rq,Ln as Pr,M as _d,Ma as Ye,Mb as Zf,Mc as Zg,Md as Yh,Me as Yi,Mf as Yj,Mg as Kk,Mi as Om,Mj as Hn,Mk as Ho,Ml as Sp,Mm as Sq,Mn as Qr,N as $d,Na as Ze,Nb as _f,Nc as _g,Nd as Zh,Ne as Zi,Ng as Lk,Ni as Pm,Nj as In,Nk as Io,Nl as Tp,Nm as Tq,Nn as Rr,O as ae,Oa as _e,Ob as $f,Oc as $g,Od as _h,Oe as _i,Og as Mk,Oh as Ql,Oi as Qm,Oj as Jn,Ok as Jo,Ol as Up,Om as Uq,On as Sr,P as be,Pa as $e,Pb as ag,Pc as ah,Pd as $h,Pe as $i,Pg as Nk,Ph as Rl,Pi as Rm,Pj as Kn,Pk as Vo,Pl as Vp,Pm as Vq,Pn as Tr,Q as ce,Qa as af,Qb as bg,Qc as bh,Qd as ai,Qe as aj,Qg as Ok,Qh as Sl,Qi as Sm,Qj as Ln,Qk as Wo,Ql as Wp,Qm as Wq,Qn as Ur,R as de,Ra as bf,Rb as cg,Rc as ch,Rd as bi,Re as bj,Rg as Pk,Rh as Tl,Ri as Tm,Rj as Mn,Rk as Xo,Rl as Xp,Rm as Xq,S as ee,Sa as cf,Sb as dg,Sc as dh,Sd as ci,Se as cj,Sg as Qk,Sh as Ul,Si as Um,Sj as Nn,Sk as Yo,Sl as Yp,Sm as Yq,T as fe,Ta as df,Tb as eg,Tc as eh,Td as di,Te as dj,Tg as Rk,Th as Vl,Ti as Vm,Tj as On,Tk as Zo,Tl as Zp,Tm as Zq,Tn as Vr,U as ge,Ua as ef,Ub as fg,Uc as fh,Ud as ei,Ue as ej,Ug as Sk,Uh as Wl,Ui as Wm,Uj as Pn,Uk as _o,Ul as _p,Um as _q,Un as Wr,V as he,Va as ff,Vb as gg,Vc as gh,Vd as fi,Ve as fj,Vg as Tk,Vh as Xl,Vi as Xm,Vj as Qn,Vk as $o,Vl as $p,Vm as $q,Vn as Xr,W as ie,Wa as gf,Wb as hg,Wc as hh,Wd as gi,We as gj,Wg as Uk,Wh as Yl,Wi as Ym,Wj as Rn,Wk as ap,Wl as aq,Wm as ar,Wn as Yr,Xa as hf,Xb as ig,Xc as ih,Xd as hi,Xe as hj,Xg as Vk,Xh as Zl,Xi as Zm,Xj as Sn,Xk as bp,Xl as bq,Xm as br,Xn as Zr,Ya as jf,Yb as jg,Yc as jh,Yd as ii,Ye as ij,Yg as Wk,Yh as _l,Yi as _m,Yj as Tn,Yk as cp,Yl as cq,Ym as cr,Yn as _r,Za as kf,Zb as kg,Zc as kh,Zd as ji,Ze as jj,Zg as Xk,Zh as $l,Zi as $m,Zj as Un,Zk as dp,Zl as dq,Zm as dr,Zn as $r,_a as lf,_b as lg,_c as lh,_d as ki,_e as kj,_g as Yk,_h as am,_i as an,_j as Vn,_k as ep,_l as eq,_m as er,_n as as,aa as ke,ab as nf,ac as ng,ad as nh,ae as mi,af as mj,ag as _j,ah as _k,ai as cm,aj as cn,ak as Xn,al as gp,am as gq,an as gr,ao as cs,ba as le,bb as of,bc as og,bd as oh,be as ni,bf as nj,bg as $j,bh as $k,bi as dm,bj as dn,bk as Yn,bl as hp,bm as hq,bo as ds,c as qd,ca as me,cb as pf,cc as pg,cd as ph,ce as oi,cf as oj,cg as ak,ch as al,ci as em,cj as en,ck as Zn,cl as ip,cm as iq,cn as hr,co as es,d as rd,da as ne,db as qf,dc as qg,dd as qh,de as pi,df as pj,dg as bk,dh as bl,di as fm,dj as fn,dk as _n,dl as jp,dm as jq,dn as ir,do as fs,e as sd,ea as oe,eb as rf,ec as rg,ed as rh,ee as qi,ef as qj,eg as ck,eh as cl,ei as gm,ej as gn,ek as $n,el as kp,em as kq,en as jr,eo as gs,f as td,fa as pe,fb as sf,fc as sg,fd as sh,fe as ri,ff as rj,fg as dk,fh as dl,fi as hm,fj as hn,fk as ao,fl as lp,fm as lq,fn as kr,fo as hs,g as ud,ga as qe,gb as tf,gc as tg,gd as th,ge as si,gf as sj,gg as ek,gh as el,gi as im,gj as jn,gk as bo,gl as mp,gm as mq,gn as lr,go as is,h as vd,ha as re,hb as uf,hc as ug,hd as uh,he as ti,hf as tj,hg as fk,hh as fl,hi as jm,hj as kn,hk as co,hl as np,hm as nq,hn as mr,ho as js,i as wd,ia as se,ib as vf,ic as vg,ie as ui,if as uj,ig as gk,ih as gl,ii as km,ij as ln,ik as eo,il as op,im as oq,io as ks,j as xd,jb as wf,jc as wg,jd as vh,je as vi,jf as vj,jg as hk,jh as hl,ji as lm,jj as mn,jk as fo,jl as pp,jm as pq,jn as nr,k as yd,kb as xf,kc as xg,kd as wh,ke as wi,kf as wj,kg as ik,kh as il,ki as mm,kj as nn,kk as go,kl as qp,km as qq,kn as or,ko as ls,l as zd,lb as yf,lc as yg,ld as xh,le as xi,lf as xj,lg as jk,lh as jl,li as nm,lj as on,lk as ho,ll as rp,lm as rq,ln as pr,lo as ms,m as Ad,ma as te,mb as zf,mc as zg,md as yh,me as yi,mf as yj,mg as kk,mh as kl,mi as om,mj as pn,mk as io,ml as sp,mm as sq,mn as qr,mo as ns,n as Bd,na as xe,nb as Af,nc as Ag,nd as zh,ne as zi,nf as zj,ng as lk,nh as ll,ni as pm,nj as qn,nk as jo,nl as tp,nm as tq,nn as rr,no as os,o as Cd,oa as ye,ob as Bf,oc as Bg,od as Ah,oe as Ai,of as Aj,og as mk,oh as ml,oi as qm,oj as rn,ok as ko,ol as up,om as uq,on as sr,oo as ps,p as Dd,pa as ze,pb as Cf,pc as Cg,pd as Bh,pe as Bi,pf as Bj,pg as nk,ph as nl,pi as rm,pj as sn,pk as lo,pl as vp,pm as vq,pn as tr,po as qs,q as Ed,qa as Ce,qb as Df,qc as Dg,qd as Ch,qe as Ci,qf as Cj,qg as ok,qh as ol,qi as sm,qj as tn,ql as wp,qm as wq,qn as ur,qo as rs,r as Fd,ra as De,rb as Ef,rc as Eg,rd as Dh,re as Di,rf as Dj,rg as pk,rh as pl,ri as tm,rj as un,rk as mo,rl as xp,rm as xq,rn as vr,ro as ss,s as Gd,sa as Ee,sb as Ff,sc as Fg,sd as Eh,se as Ei,sf as Ej,sg as qk,sh as ql,si as um,sj as vn,sk as no,sl as yp,sm as yq,sn as wr,t as Hd,ta as Fe,tb as Gf,tc as Gg,td as Fh,te as Fi,tf as Fj,tg as rk,th as rl,ti as vm,tj as wn,tk as oo,tl as zp,tm as zq,tn as xr,u as Id,ua as Ge,ub as Hf,uc as Hg,ud as Gh,ue as Gi,uf as Gj,ug as sk,uh as sl,ui as wm,uj as xn,uk as po,ul as Ap,um as Aq,un as yr,v as Jd,va as He,vb as If,vc as Ig,vd as Hh,ve as Hi,vf as Hj,vg as tk,vh as Al,vi as xm,vj as yn,vk as qo,vl as Bp,vm as Bq,vn as zr,w as Kd,wa as Ie,wb as Jf,wc as Jg,wd as Ih,we as Ii,wf as Ij,wg as uk,wh as Bl,wi as ym,wj as zn,wk as ro,wl as Cp,wm as Cq,wn as Ar,x as Ld,xa as Je,xb as Kf,xc as Kg,xd as Jh,xe as Ji,xf as Jj,xg as vk,xh as Cl,xi as zm,xj as An,xk as so,xl as Dp,xm as Dq,xn as Br,y as Md,ya as Ke,yb as Lf,yc as Lg,yd as Kh,ye as Ki,yf as Kj,yg as wk,yh as Dl,yi as Am,yj as Bn,yk as to,yl as Ep,ym as Eq,yn as Cr,z as Nd,za as Le,zb as Mf,zc as Mg,zd as Lh,ze as Li,zf as Lj,zg as xk,zh as El,zi as Bm,zj as Cn,zk as uo,zl as Fp,zm as Fq,zn as Dr}from"./chunk-63ULYU4I.js";import{$ as H,$a as ya,$b as yb,$d as ad,Aa as fa,Ab as Za,Ac as Zb,Ad as Bc,Ae as zl,B as h,Ba as ga,Bb as _a,Bc as _b,Bd as Cc,Be as Ko,C as i,Ca as ha,Cb as $a,Cc as $b,Cd as Dc,Ce as Lo,D as j,Da as ia,Db as ab,Dc as ac,Dd as Ec,De as Mo,E as k,Ea as ja,Eb as bb,Ec as bc,Ed as Fc,Ee as No,F as l,Fa as ka,Fb as cb,Fc as cc,Fd as Gc,Fe as Oo,G as m,Ga as la,Gb as db,Gc as dc,Gd as Hc,Ge as Po,H as n,Ha as ma,Hb as eb,Hc as ec,Hd as Ic,He as Qo,I as o,Ia as na,Ib as fb,Ic as fc,Id as Jc,Ie as Ro,J as p,Ja as oa,Jb as gb,Jc as gc,Jd as Kc,Je as So,K as q,Ka as pa,Kb as hb,Kc as hc,Kd as Lc,Ke as To,L as r,La as qa,Lb as ib,Lc as ic,Ld as Mc,Le as Uo,M as s,Ma as ra,Mb as jb,Mc as jc,Md as Nc,N as t,Na as sa,Nb as kb,Nc as kc,Nd as Oc,O as u,Oa as ta,Ob as lb,Oc as lc,Od as Pc,P as v,Pa as ua,Pb as mb,Pc as mc,Pd as Qc,Q as w,Qb as nb,Qd as Rc,R as x,Ra as va,Rb as ob,Rc as nc,Rd as Sc,S as y,Sb as pb,Sc as oc,Sd as Tc,T as z,Tb as qb,Tc as pc,Td as Uc,U as A,Ub as rb,Uc as qc,Ud as Vc,V as B,Vb as sb,Vc as rc,Vd as Wc,W as C,Wb as tb,Wc as sc,Wd as Xc,X as D,Xb as ub,Xc as tc,Xd as Yc,Y as E,Yb as vb,Yc as uc,Yd as Zc,Z as F,Za as wa,Zb as wb,Zc as vc,Zd as _c,_ as G,_a as xa,_b as xb,_d as $c,aa as I,ab as za,ac as zb,ad as wc,ae as bd,b as a,ba as J,bb as Aa,bc as Ab,bd as xc,be as cd,c as b,ca as K,cb as Ba,cc as Bb,cd as yc,ce as dd,d as c,da as L,db as Ca,dc as Cb,dd as zc,de as ed,ea as M,eb as Da,ec as Db,ed as Ac,ee as fd,fa as N,fb as Ea,fc as Eb,fe as gd,ga as O,gb as Fa,gc as Fb,h as d,ha as P,hb as Ga,hc as Gb,he as hd,i as e,ia as Q,ib as Ha,ic as Hb,ie as id,j as f,ja as R,jb as Ia,jc as Ib,je as jd,k as g,ka as S,kb as Ja,kc as Jb,ke as kd,la as T,lb as Ka,lc as Kb,le as ld,ma as U,mb as La,mc as Lb,me as md,na as V,nb as Ma,nc as Mb,ne as nd,oa as W,ob as Na,oc as Nb,oe as od,pa as X,pb as Oa,pc as Ob,pe as pd,qa as Y,qb as Pa,qc as Pb,qe as ue,ra as Z,rb as Qa,rc as Qb,re as ve,sb as Ra,sc as Rb,se as we,ta as _,tb as Sa,tc as Sb,ua as $,ub as Ta,uc as Tb,ue as tl,va as aa,vb as Ua,vc as Ub,ve as ul,wa as ba,wb as Va,wc as Vb,we as vl,xa as ca,xb as Wa,xc as Wb,xe as wl,ya as da,yb as Xa,yc as Xb,ye as xl,za as ea,zb as Ya,zc as Yb,ze as yl}from"./chunk-PZNAC7U7.js";import"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import{b as Ae,c as Be}from"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";export{Zb as ACTIVATE_SKILL_TOOL_NAME,vp as ADMIN_POLICY_TIER,Sc as AGENT_TOOL_NAME,Cp as ALLOWED_MCP_SERVER_PRIORITY,zp as ALLOWED_TOOLS_FLAG_PRIORITY,ed as ALL_BUILTIN_TOOL_NAMES,Dp as ALWAYS_ALLOW_PRIORITY,n as ALWAYS_ALLOW_PRIORITY_FRACTION,o as ALWAYS_ALLOW_PRIORITY_OFFSET,Vc as ASK_USER_DISPLAY_NAME,ic as ASK_USER_OPTION_PARAM_DESCRIPTION,hc as ASK_USER_OPTION_PARAM_LABEL,ac as ASK_USER_PARAM_QUESTIONS,cc as ASK_USER_QUESTION_PARAM_HEADER,fc as ASK_USER_QUESTION_PARAM_MULTI_SELECT,ec as ASK_USER_QUESTION_PARAM_OPTIONS,gc as ASK_USER_QUESTION_PARAM_PLACEHOLDER,bc as ASK_USER_QUESTION_PARAM_QUESTION,dc as ASK_USER_QUESTION_PARAM_TYPE,$b as ASK_USER_TOOL_NAME,hr as AbortError,oa as AccountSuspendedError,ah as ActionStatus,Pl as ActivateSkillTool,ai as ActivityDetector,si as ActivityMonitor,ri as ActivityType,eh as AdminControlsSettingsSchema,fn as AfterAgentHookOutput,en as AfterModelHookOutput,Em as AgentExecutionBlockedError,Dm as AgentExecutionStoppedError,An as AgentLoadError,sr as AgentSession,ln as AgentTerminateMode,Xf as ApiErrorEvent,Zh as ApiKeyUpdatedEvent,Wf as ApiRequestEvent,Ze as ApiRequestPhase,Yf as ApiResponseEvent,j as ApprovalMode,wm as AskUserInvocation,vm as AskUserTool,ls as AudioRecorder,kq as AuthProviderType,ml as AuthType,zd as BINARY_EXTENSIONS,rd as BINARY_FILE_PATTERNS,mj as BINARY_INJECTION_KEY,qa as BadRequestError,v as BaseDeclarativeTool,sk as BaseLlmClient,t as BaseToolInvocation,cn as BeforeModelHookOutput,bn as BeforeToolHookOutput,dn as BeforeToolSelectionHookOutput,Uk as CODE_ASSIST_API_VERSION,Tk as CODE_ASSIST_ENDPOINT,td as COMMON_DIRECTORY_EXCLUDES,qd as COMMON_IGNORE_PATTERNS,tc as COMPLETE_TASK_DISPLAY_NAME,sc as COMPLETE_TASK_TOOL_NAME,yp as CONFIRMATION_REQUIRED_PRIORITY,Ap as CORE_TOOLS_FLAG_PRIORITY,Wk as CacheService,ma as CanceledError,ra as ChangeAuthRequestedError,Lh as ChatRecordingService,uh as ClearcutLogger,Yj as CloseDiffRequestSchema,Vk as CodeAssistServer,Wl as ColorMode,Jm as CompressionStatus,mq as Config,lq as ConfigSchema,Vm as ConfigSource,_f as ConsecaPolicyGenerationEvent,$f as ConsecaVerdictEvent,gg as ConversationFinishedEvent,$g as ConversationInteractionInteraction,ue as CoreEvent,ve as CoreEventEmitter,ye as CoreToolCallStatus,Vh as CreditPurchaseClickEvent,Xh as CreditsUsedEvent,hd as DEFAULT_CONTEXT_FILENAME,pp as DEFAULT_CORE_POLICIES_DIR,Cd as DEFAULT_ENCODING,Tn as DEFAULT_FAST_ACK_MODEL_CONFIG_KEY,wd as DEFAULT_FILE_EXCLUDES,ul as DEFAULT_FILE_FILTERING_OPTIONS,Na as DEFAULT_GEMINI_EMBEDDING_MODEL,Da as DEFAULT_GEMINI_FLASH_LITE_MODEL,Ca as DEFAULT_GEMINI_FLASH_MODEL,Ba as DEFAULT_GEMINI_MODEL,Ia as DEFAULT_GEMINI_MODEL_AUTO,xj as DEFAULT_GUI_EDITOR,mk as DEFAULT_MAX_ATTEMPTS,Un as DEFAULT_MAX_INPUT_CHARS,yc as DEFAULT_MAX_LINES_TEXT_FILE,Vn as DEFAULT_MAX_OUTPUT_CHARS,on as DEFAULT_MAX_TIME_MINUTES,nn as DEFAULT_MAX_TURNS,tl as DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,Jo as DEFAULT_MODEL_CONFIGS,Ci as DEFAULT_OTLP_ENDPOINT,rp as DEFAULT_POLICY_TIER,mn as DEFAULT_QUERY_STRING,Bi as DEFAULT_TELEMETRY_TARGET,Oa as DEFAULT_THINKING_MODE,Lm as DEFAULT_TOKEN_LIMIT,iq as DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,dd as DISCOVERED_TOOL_PREFIX,Yb as DOCS_PARAM_PATH,u as DeclarativeTool,an as DefaultHookOutput,Ic as DiscoveredMCPTool,Hc as DiscoveredMCPToolInvocation,rl as DiscoveredTool,Aj as EDITOR_DISPLAY_NAMES,Uc as EDIT_DISPLAY_NAME,Hb as EDIT_PARAM_ALLOW_MULTIPLE,Eb as EDIT_PARAM_INSTRUCTION,Gb as EDIT_PARAM_NEW_STRING,Fb as EDIT_PARAM_OLD_STRING,Db as EDIT_TOOL_NAME,Kc as EDIT_TOOL_NAMES,lc as ENTER_PLAN_MODE_TOOL_NAME,Yh as EVENT_API_KEY_UPDATED,Wh as EVENT_CREDITS_USED,Uh as EVENT_CREDIT_PURCHASE_CLICK,Sh as EVENT_EMPTY_WALLET_MENU_SHOWN,Oh as EVENT_OVERAGE_MENU_SHOWN,Qh as EVENT_OVERAGE_OPTION_SELECTED,xp as EXCLUDE_TOOLS_FLAG_PRIORITY,jc as EXIT_PLAN_MODE_TOOL_NAME,kc as EXIT_PLAN_PARAM_PLAN_FILENAME,sp as EXTENSION_POLICY_TIER,Dk as EditTool,Th as EmptyWalletMenuShownEvent,Tf as EndSessionEvent,ni as EventLoopMonitor,Zl as ExecutionLifecycleService,cr as ExitCodes,dp as ExperimentFlags,og as ExtensionDisableEvent,mg as ExtensionEnableEvent,ig as ExtensionInstallEvent,sq as ExtensionIntegrityDataSchema,wq as ExtensionIntegrityManager,tq as ExtensionIntegrityMapSchema,Lp as ExtensionLoader,kg as ExtensionUninstallEvent,lg as ExtensionUpdateEvent,nk as FETCH_FAILED_MESSAGE,vg as FORCE_FILE_STORAGE_ENV_VAR,wn as FRONTMATTER_REGEX,ea as FatalAuthenticationError,la as FatalCancellationError,ha as FatalConfigError,da as FatalError,fa as FatalInputError,ga as FatalSandboxError,ja as FatalToolExecutionError,ia as FatalTurnLimitedError,ka as FatalUntrustedWorkspaceError,fh as FetchAdminControlsResponseSchema,fm as FetchError,Fl as FileDiscoveryService,xd as FileExclusions,Ve as FileOperation,Rj as FileSchema,jr as FileSearchFactory,Zf as FlashFallbackEvent,nr as FolderTrustDiscoveryService,na as ForbiddenError,gh as G1_CREDIT_TYPE,kh as G1_UTM_CAMPAIGNS,Lj as GEMINI_CLI_COMPANION_EXTENSION_NAME,_l as GEMINI_CLI_IDENTIFICATION_ENV_VAR,$l as GEMINI_CLI_IDENTIFICATION_ENV_VAR_VALUE,I as GEMINI_DIR,vl as GEMINI_IGNORE_FILE_NAME,Ja as GEMINI_MODEL_ALIAS_AUTO,La as GEMINI_MODEL_ALIAS_FLASH,Ma as GEMINI_MODEL_ALIAS_FLASH_LITE,Ka as GEMINI_MODEL_ALIAS_PRO,Fa as GEMMA_4_26B_A4B_IT_MODEL,Ea as GEMMA_4_31B_IT_MODEL,Mm as GEMMA_4_TOKEN_LIMIT,Ge as GEN_AI_AGENT_DESCRIPTION,Fe as GEN_AI_AGENT_NAME,Te as GEN_AI_CONVERSATION_ID,He as GEN_AI_INPUT_MESSAGES,Ee as GEN_AI_OPERATION_NAME,Ie as GEN_AI_OUTPUT_MESSAGES,Le as GEN_AI_PROMPT_NAME,Je as GEN_AI_REQUEST_MODEL,Ke as GEN_AI_RESPONSE_MODEL,Re as GEN_AI_SYSTEM_INSTRUCTIONS,Ne as GEN_AI_TOOL_CALL_ID,Se as GEN_AI_TOOL_DEFINITIONS,Oe as GEN_AI_TOOL_DESCRIPTION,Me as GEN_AI_TOOL_NAME,Pe as GEN_AI_USAGE_INPUT_TOKENS,Qe as GEN_AI_USAGE_OUTPUT_TOKENS,Xb as GET_INTERNAL_DOCS_TOOL_NAME,Xc as GLOB_DISPLAY_NAME,hb as GLOB_TOOL_NAME,J as GOOGLE_ACCOUNTS_FILENAME,le as GOVERNANCE_FILES,Zc as GREP_DISPLAY_NAME,qb as GREP_PARAM_AFTER,rb as GREP_PARAM_BEFORE,pb as GREP_PARAM_CONTEXT,kb as GREP_PARAM_EXCLUDE_PATTERN,ob as GREP_PARAM_FIXED_STRINGS,jb as GREP_PARAM_INCLUDE_PATTERN,mb as GREP_PARAM_MAX_MATCHES_PER_FILE,lb as GREP_PARAM_NAMES_ONLY,sb as GREP_PARAM_NO_IGNORE,nb as GREP_PARAM_TOTAL_MAX_MATCHES,ib as GREP_TOOL_NAME,xh as GcpLogExporter,wh as GcpMetricExporter,vh as GcpTraceExporter,Fm as GeminiChat,Ue as GeminiCliOperation,Pn as GeminiClient,Im as GeminiEventType,ms as GeminiLiveTranscriptionProvider,_e as GenAiOperationName,$e as GenAiProviderName,af as GenAiTokenType,Bl as GitIgnoreParser,oo as GitService,Nl as GlobTool,Hl as GrepTool,Ym as HOOKS_CONFIG_FIELDS,ei as HighWaterMarkTracker,_o as HookAggregator,ap as HookEventHandler,Xm as HookEventName,$o as HookPlanner,Yo as HookRegistry,Zo as HookRunner,bp as HookSystem,Zm as HookType,ak as IDEConnectionStatus,rh as IDE_DEFINITIONS,Mj as IDE_MAX_OPEN_FILES,Nj as IDE_MAX_SELECTED_TEXT_LENGTH,Oj as IDE_REQUEST_TIMEOUT_MS,ok as INCOMPLETE_JSON_MESSAGE,Rm as INITIAL_HISTORY_LENGTH,wl as INTEGRITY_FILENAME,xl as INTEGRITY_KEY_FILENAME,bk as IdeClient,fg as IdeConnectionEvent,eg as IdeConnectionType,Tj as IdeContextNotificationSchema,Sj as IdeContextSchema,Pj as IdeContextStore,Uj as IdeDiffAcceptedNotificationSchema,Wj as IdeDiffClosedNotificationSchema,Vj as IdeDiffRejectedNotificationSchema,l as InProcessCheckerType,_k as IneligibleTierError,Yg as IneligibleTierReasonCode,bh as InitiationMethod,lp as InjectionService,vq as IntegrityDataStatus,qq as IntegrityStatus,uq as IntegrityStoreSchema,Cm as InvalidStreamError,oq as JsonFormatter,Io as JsonStreamEventType,yl as KEYCHAIN_SERVICE_NAME,tg as KEYCHAIN_TEST_PREFIX,sg as KeychainSchema,wg as KeychainService,xg as KeychainTokenStorage,F as Kind,vc as LIST_MCP_RESOURCES_TOOL_NAME,Al as LSTool,Yc as LS_DISPLAY_NAME,ub as LS_PARAM_IGNORE,tb as LS_TOOL_NAME,Gr as LegacyAgentProtocol,Hr as LegacyAgentSession,Rf as LlmRole,hs as LoadedTrustedFolders,go as LocalAgentExecutor,re as LocalSandboxManager,_q as Logger,el as LoggingContentGenerator,Ac as MAX_FILE_SIZE_MB,Ih as MAX_HISTORY_MESSAGES,zc as MAX_LINE_LENGTH_TEXT_FILE,Jh as MAX_TOOL_OUTPUT_SIZE,Qp as MCPDiscoveryState,Np as MCPOAuthProvider,Fn as MCPOAuthTokenStorage,jq as MCPServerConfig,Pp as MCPServerStatus,Op as MCP_DEFAULT_TIMEOUT_MSEC,wp as MCP_EXCLUDED_PRIORITY,Bc as MCP_QUALIFIED_NAME_SEPARATOR,Cc as MCP_TOOL_PREFIX,sd as MEDIA_FILE_PATTERNS,Wb as MEMORY_PARAM_FACT,id as MEMORY_SECTION_HEADER,Vb as MEMORY_TOOL_NAME,nh as MIN_CREDIT_BALANCE,k as MODES_BY_PERMISSIVENESS,G as MUTATOR_KINDS,Rp as McpClient,dh as McpConfigDefinitionSchema,Vo as MemoryContextManager,Xe as MemoryMetricType,hi as MemoryMonitor,pd as MemoryTool,eo as MessageBus,q as MessageBusType,Xq as MessageSenderType,Gn as ModelConfigService,fk as ModelNotFoundError,Go as ModelRouterService,ng as ModelSlashCommandEvent,wj as NO_EDITOR_AVAILABLE_ERROR,hg as NetworkRetryAttemptEvent,qe as NoopSandboxManager,gn as NotificationType,En as OAuthUtils,cm as OUTPUT_UPDATE_INTERVAL_MS,hh as OVERAGE_ELIGIBLE_MODELS,_g as OnboardUserStatusCode,qg as OnboardingStartEvent,rg as OnboardingSuccessEvent,Xj as OpenDiffRequestSchema,Ho as OutputFormat,Ph as OverageMenuShownEvent,Rh as OverageOptionSelectedEvent,cb as PARAM_CASE_SENSITIVE,gb as PARAM_DESCRIPTION,ab as PARAM_DIR_PATH,fb as PARAM_FILE_FILTERING_OPTIONS,$a as PARAM_FILE_PATH,bb as PARAM_PATTERN,eb as PARAM_RESPECT_GEMINI_IGNORE,db as PARAM_RESPECT_GIT_IGNORE,mc as PLAN_MODE_PARAM_REASON,fd as PLAN_MODE_TOOLS,ya as PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,Aa as PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,xa as PREVIEW_GEMINI_3_1_MODEL,za as PREVIEW_GEMINI_FLASH_MODEL,wa as PREVIEW_GEMINI_MODEL,Ha as PREVIEW_GEMINI_MODEL_AUTO,m as PRIORITY_SUBAGENT_TOOL,p as PRIORITY_YOLO_ALLOW_ALL,jd as PROJECT_MEMORY_INDEX_FILENAME,ud as PYTHON_EXCLUDES,We as PerformanceMetricType,vk as PlanErrorMessages,h as PolicyDecision,Xo as PolicyEngine,rq as PolicyIntegrityManager,kn as PreCompressTrigger,gm as PrivateIpError,Yk as ProjectIdRequiredError,r as QuestionType,Wc as READ_FILE_DISPLAY_NAME,xb as READ_FILE_PARAM_END_LINE,wb as READ_FILE_PARAM_START_LINE,vb as READ_FILE_TOOL_NAME,ad as READ_MANY_FILES_DISPLAY_NAME,Qb as READ_MANY_FILES_TOOL_NAME,Sb as READ_MANY_PARAM_EXCLUDE,Rb as READ_MANY_PARAM_INCLUDE,Tb as READ_MANY_PARAM_RECURSIVE,Ub as READ_MANY_PARAM_USE_DEFAULT_EXCLUDES,uc as READ_MCP_RESOURCE_TOOL_NAME,H as READ_ONLY_KINDS,Wd as REDIRECTION_NAMES,xc as REFERENCE_CONTENT_END,wc as REFERENCE_CONTENT_START,Mk as RELEASE_CHANNEL_STABILITY,xe as ROOT_SCHEDULER_ID,fi as RateLimiter,Gl as ReadFileTool,Ir as ReadManyFilesTool,ll as RecordingContentGenerator,Lk as ReleaseChannel,ch as RequiredMcpServerConfigSchema,ql as ResourceRegistry,hk as RetryableQuotaError,cg as RewindEvent,Ll as RipGrepTool,am as SCROLLBACK_LIMIT,me as SECRET_FILES,zl as SECRET_KEY_ACCOUNT,ug as SECRET_PREFIX,De as SERVICE_DESCRIPTION,Ce as SERVICE_NAME,Hh as SESSION_FILE_PREFIX,no as SHADOW_REPO_AUTHOR_EMAIL,mo as SHADOW_REPO_AUTHOR_NAME,zb as SHELL_PARAM_COMMAND,Ab as SHELL_PARAM_IS_BACKGROUND,yb as SHELL_TOOL_NAME,Td as SHELL_TOOL_NAMES,_b as SKILL_PARAM_NAME,rn as SUBAGENT_CANCELLED_ERROR_MESSAGE,qn as SUBAGENT_REJECTED_ERROR_PREFIX,Am as SYNTHETIC_THOUGHT_SIGNATURE,vd as SYSTEM_FILE_EXCLUDES,qo as SandboxedFileSystemService,Rn as Scheduler,d as SchemaValidator,If as SemanticAttributes,jn as SessionEndReason,hn as SessionStartSource,bm as ShellExecutionService,em as ShellTool,dm as ShellToolInvocation,Mp as SimpleExtensionLoader,ep as SkillManager,bg as SlashCommandStatus,Be as SpanStatusCode,po as StandardFileSystemService,Sf as StartSessionEvent,yi as StartupProfiler,va as Storage,zm as StreamEventType,pq as StreamJsonFormatter,pn as SubagentActivityErrorType,vo as TASK_TYPE_LABELS,Mb as TODOS_ITEM_PARAM_DESCRIPTION,Nb as TODOS_ITEM_PARAM_STATUS,Lb as TODOS_PARAM_TODOS,Lc as TOOLS_REQUIRING_NARROWING,bd as TOOL_LEGACY_ALIASES,Pd as TOOL_OUTPUTS_DIR,rc as TOPIC_PARAM_STRATEGIC_INTENT,qc as TOPIC_PARAM_SUMMARY,pc as TOPIC_PARAM_TITLE,Qc as TRACKER_ADD_DEPENDENCY_TOOL_NAME,Mc as TRACKER_CREATE_TASK_TOOL_NAME,Oc as TRACKER_GET_TASK_TOOL_NAME,Pc as TRACKER_LIST_TASKS_TOOL_NAME,Nc as TRACKER_UPDATE_TASK_TOOL_NAME,Rc as TRACKER_VISUALIZE_TOOL_NAME,K as TRUSTED_FOLDERS_FILENAME,Bp as TRUSTED_MCP_SERVER_PRIORITY,wo as TaskStatus,xo as TaskStatusSchema,to as TaskType,uo as TaskTypeSchema,Ai as TelemetryTarget,gk as TerminalQuotaError,ze as ToolCallDecision,Vf as ToolCallEvent,E as ToolConfirmationOutcome,b as ToolErrorType,Ye as ToolExecutionPhase,Qn as ToolExecutor,jg as ToolOutputTruncatedEvent,sl as ToolRegistry,Eo as TrackerAddDependencyTool,Ao as TrackerCreateTaskTool,Co as TrackerGetTaskTool,Do as TrackerListTasksTool,Wo as TrackerService,yo as TrackerTaskSchema,Bo as TrackerUpdateTaskTool,Fo as TrackerVisualizeTool,os as TranscriptionFactory,ds as TrustLevel,Km as Turn,oc as UPDATE_TOPIC_DISPLAY_NAME,nc as UPDATE_TOPIC_TOOL_NAME,kk as UPGRADE_URL_PAGE,up as USER_POLICY_TIER,Xn as USER_STEERING_INSTRUCTION,Mh as UiTelemetryService,pa as UnauthorizedError,te as UserAccountManager,Uf as UserPromptEvent,Zg as UserTierId,Ga as VALID_GEMINI_MODELS,Zk as ValidationCancelledError,ik as ValidationRequiredError,Ae as ValueType,$c as WEB_FETCH_DISPLAY_NAME,Pb as WEB_FETCH_PARAM_PROMPT,Ob as WEB_FETCH_TOOL_NAME,_c as WEB_SEARCH_DISPLAY_NAME,Jb as WEB_SEARCH_PARAM_QUERY,Ib as WEB_SEARCH_TOOL_NAME,tp as WORKSPACE_POLICY_TIER,Tc as WRITE_FILE_DISPLAY_NAME,Cb as WRITE_FILE_PARAM_CONTENT,Bb as WRITE_FILE_TOOL_NAME,Kb as WRITE_TODOS_TOOL_NAME,Tr as WarningPriority,pg as WebFetchFallbackAttemptEvent,tm as WebFetchTool,um as WebSearchTool,ps as WhisperModelManager,ns as WhisperTranscriptionProvider,je as WindowsSandboxManager,co as WorkspaceContext,Vr as WorktreeService,Gk as WriteFileTool,so as WriteTodosTool,Nk as _clearCache,Tp as addMCPStatusChangeListener,Kq as addMemory,Fj as allowEditorTypeInSandbox,kj as appendToLastTextPart,$q as applyAdminAllowlist,Sq as applyInboxMemoryPatch,Vq as applyInboxPatch,zk as applyReplacement,ar as applyRequiredServers,W as assertValidPathString,io as assumeExhaustive,Sg as authEvents,fr as belongsInConfirmationQueue,lh as buildG1Url,zo as buildTodosReturnDisplay,vr as buildToolResponseData,dr as buildToolVisibilityContext,Yn as buildUserSteeringHintPrompt,_h as bytesToMB,Ak as calculateReplacement,Jl as canUseRipgrep,gi as captureHeapSnapshot,Ro as categorizeAndConcatenate,jo as checkExhaustive,fs as checkPathTrust,Ln as checkPolicy,jk as classifyGoogleError,as as cleanupWorktree,kl as clearApiKey,Wg as clearCachedCredentialFile,qp as clearEmittedPolicyWarnings,Vg as clearOauthClientCache,gs as clearRealPathCacheForTesting,hj as cloneFunctionCall,gj as cloneFunctionResponse,ej as clonePart,Qf as computeModelAddedAndRemovedLines,Mo as concatenateInstructions,$p as connectAndDiscover,fq as connectToMcpServer,ur as contentPartsToGeminiParts,Yl as convertColorToHex,sm as convertGithubUrlToRaw,mr as convertSessionToClientHistory,nj as convertToFunctionResponse,lr as convertToRestPayload,we as coreEvents,Xk as createCache,fl as createCodeAssistContentGenerator,pl as createContentGenerator,ol as createContentGeneratorConfig,Jk as createConversationOffered,$m as createHookOutput,Jp as createPolicyEngineConfig,Kp as createPolicyUpdater,nm as createSafeProxyAgent,ke as createSandboxManager,Jr as createSessionId,Ar as createTranslationState,gq as createTransport,fo as createUnauthorizedToolError,Bg as createWorkingStdio,Zr as createWorktree,Wr as createWorktreeService,a as debugLogger,Zq as decodeTagName,Y as deduplicateAbsolutePaths,Ko as deduplicatePathsByFileIdentity,Fh as deleteSessionArtifactsAsync,Gh as deleteSubagentSessionDirAndArtifactsAsync,Dd as detectBOM,ie as detectCommandSubstitution,Vl as detectEncodingFromBuffer,Kd as detectFileType,th as detectIdeFromEnv,Lf as detectLineEnding,Kg as disableBracketedPasteMode,Gg as disableKittyKeyboardProtocol,Mg as disableLineWrapping,Ig as disableModifyOtherKeys,Eg as disableMouseEvents,Cg as disableMouseTracking,Zp as discoverMcpTools,bq as discoverPrompts,cq as discoverResources,aq as discoverTools,Tq as dismissInboxMemoryPatch,Wq as dismissInboxPatch,Pq as dismissInboxSkill,zr as displayContentToString,Jn as doesToolInvocationMatch,Jg as enableBracketedPasteMode,Fg as enableKittyKeyboardProtocol,Lg as enableLineWrapping,Hg as enableModifyOtherKeys,Dg as enableMouseEvents,Yq as encodeTagName,Kl as ensureRgPath,Ng as enterAlternateScreen,Q as escapePath,ae as escapeShellArg,dl as estimateContextBreakdown,he as execStreaming,Og as exitAlternateScreen,yd as extractExtensionsFromPatterns,Sd as extractStringFromParseEntry,gp as fetchAdminControls,hp as fetchAdminControlsOnce,om as fetchWithTimeout,Md as fileExists,ir as filter,El as findGitRoot,pe as findSecretFiles,jj as flatMapTextParts,nq as flattenMemory,Fi as flushTelemetry,_n as formatBackgroundCompletionForModel,$h as formatBytes,Aq as formatCheckpointDisplayList,bs as formatForSpeech,Fc as formatMcpToolName,Hp as formatPolicyError,Kk as formatProtoJsonDuration,Od as formatTruncatedToolOutput,Zn as formatUserHintsForModel,tr as geminiPartsToContentParts,Nn as generalistProfile,zq as generateCheckpointFileName,bo as generateFastAckText,$n as generateSteeringAckMessage,pr as generateSummary,Jc as generateValidName,Cl as getAbsoluteGitDir,bi as getActivityDetector,ui as getActivityMonitor,kp as getAdminBlockedMcpServersMessage,jp as getAdminErrorMessage,un as getAgentCardLoadOptions,md as getAllGeminiMdFilenames,Xp as getAllMCPServerStatuses,Qq as getAllowedMemoryPatchRoots,Ep as getAlwaysAllowPriorityFraction,ko as getApprovalModeDescription,nl as getAuthTypeFromEnv,Ug as getAvailablePort,Sl as getCachedEncodingForBuffer,Ok as getChannelFromVersion,Dq as getCheckpointInfoList,vj as getCitations,gl as getCodeAssistServer,Rd as getCommandName,de as getCommandRoot,ee as getCommandRoots,Ur as getCompatibilityWarnings,Qm as getCompressionPrompt,Rg as getConsentForOauth,rf as getConventionAttributes,Pm as getCoreSystemPrompt,Fk as getCorrectedFileContent,ld as getCurrentGeminiMdFilename,Jj as getDiffCommand,Sm as getDirectoryContextString,Ra as getDisplayString,Ej as getEditorCommand,Bj as getEditorDisplayName,Tm as getEnvironmentContext,Qo as getEnvironmentMemoryPaths,ba as getErrorMessage,Bk as getErrorReplaceResult,ek as getErrorStatus,ca as getErrorType,qi as getEventLoopMonitor,cp as getExperiments,Po as getExtensionMemoryPaths,Pf as getFileDiffFromResultDisplay,Ol as getFolderStructure,br as getFsErrorMessage,pj as getFunctionCalls,rj as getFunctionCallsAsJson,qj as getFunctionCallsFromParts,sj as getFunctionCallsFromPartsAsJson,mh as getG1CreditBalance,nd as getGlobalMemoryFilePath,No as getGlobalMemoryPaths,_m as getHookKey,i as getHookSource,qr as getIdeInstaller,Um as getInitialChatHistory,Yp as getMCPDiscoveryState,rr as getMCPServerPrompts,Wp as getMCPServerStatus,ji as getMemoryMonitor,Tg as getOauthClient,Zj as getPackageJson,lo as getPlanModeExitMessage,Kn as getPolicyDenialError,Fp as getPolicyDirectories,Gp as getPolicyTier,or as getPreviousSession,S as getProjectHash,od as getProjectMemoryIndexFilePath,Xr as getProjectRootForWorktree,uk as getPromptIdWithFallback,Ql as getPty,Hd as getRealPath,Pk as getReleaseChannel,vn as getRemoteAgentTargetUrl,ij as getResponseText,oj as getResponseTextFromParts,pk as getRetryErrorType,Il as getRipgrepPath,oe as getSecretFileFindArgs,_d as getShellConfiguration,Fd as getSpecificMimeType,tj as getStructuredResponse,uj as getStructuredResponseFromParts,Tl as getSystemEncoding,cd as getToolAliases,yq as getToolCallDataSchema,In as getToolSuggestion,Bq as getTruncatedCheckpointNames,Oo as getUserProjectMemoryPaths,_j as getVersion,Yr as getWorktreePath,lk as handleFallback,x as hasCycleInSchema,eq as hasNetworkTransport,be as hasRedirection,z as hasSummary,Cj as hasValidEditorCommand,Dj as hasValidEditorCommandAsync,$r as hasWorktreeChanges,L as homedir,Qj as ideContextStore,ti as initializeActivityMonitor,ii as initializeMemoryMonitor,Vd as initializeShellParsers,Ei as initializeTelemetry,dq as invokeMcpPrompt,aa as isAbortError,ta as isAccountSuspendedError,_a as isActiveModel,lm as isAddressPrivate,bl as isApiError,Qr as isAppleTerminal,ua as isAuthenticationError,Ya as isAutoModel,s as isBackgroundExecutionData,Kf as isBinary,qs as isBinaryAvailable,Jd as isBinaryFile,sh as isCloudShell,xm as isCompletedAskUserTool,Wa as isCustomModel,Pr as isDumbTerminal,Ck as isEditToolParams,Gj as isEditorAvailable,Hj as isEditorAvailableAsync,Id as isEmpty,hq as isEnabled,c as isFatalToolError,D as isFileDiff,Va as isGemini2Model,Ua as isGemini3Model,_r as isGeminiWorktree,Dl as isGitRepository,Nr as isGnuScreen,A as isGrepResult,yj as isGuiEditor,Qg as isHeadlessMode,Hm as isInvalidArgumentError,Lr as isJetBrainsTerminal,B as isListResult,jm as isLoopbackHost,Or as isLowColorTmux,Gc as isMcpToolAnnotation,Dc as isMcpToolName,Qk as isNightly,$ as isNodeError,ih as isOverageEligibleModel,Df as isPerformanceMonitoringActive,Rk as isPreview,Sa as isPreviewModel,km as isPrivateIp,mm as isPrivateIpAsync,Ta as isProModel,Gq as isProjectSkillPatchTarget,C as isReadManyFilesResult,g as isRecord,er as isRenderedInHistory,qk as isRetryableError,Gm as isSchemaDepthError,ne as isSecretFile,Sk as isStable,cl as isStructuredError,y as isStructuredToolResult,sn as isSubagentProgress,U as isSubpath,Di as isTelemetrySdkInitialized,zj as isTerminalEditor,lj as isTextPart,Mr as isTmux,w as isTool,tn as isToolActivityError,Hn as isToolCallResponseInfo,es as isTrustLevel,di as isUserActive,Wm as isUserVisibleHook,Bm as isValidNonThoughtTextPart,V as isValidPathString,gd as isValidToolName,gr as isVisibleInToolGroup,$d as isWindows,Kr as isWindows10,Gd as isWithinRoot,Ek as isWriteFileToolParams,e as jsonToMarkdown,cs as legacyGeneralistProfile,xq as listExtensions,Rq as listInboxMemoryPatches,Uq as listInboxPatches,Nq as listInboxSkills,Mq as listMemoryFiles,Dn as loadAgentsFromDirectory,il as loadApiKey,Kh as loadConversationRecord,Ip as loadExtensionPolicies,Uo as loadJitSubdirectoryMemory,np as loadPoliciesFromToml,So as loadServerHierarchicalMemory,zn as loadSkillFromFile,yn as loadSkillsFromDir,js as loadTrustedFolders,Bd as loadWasmBinary,Ni as logApiError,Li as logApiRequest,Oi as logApiResponse,cj as logBillingEvent,Ti as logChatCompression,Hi as logCliConfiguration,Bh as logConsecaPolicyGeneration,Ch as logConsecaVerdict,Si as logConversationFinishedEvent,_i as logExtensionDisable,Zi as logExtensionEnable,Wi as logExtensionInstallEvent,Xi as logExtensionUninstall,Yi as logExtensionUpdateEvent,Mi as logFlashFallback,Ri as logIdeConnection,Vi as logModelSlashCommand,Ui as logNetworkRetryAttempt,aj as logOnboardingStart,bj as logOnboardingSuccess,Qi as logRewind,Pi as logSlashCommand,Ji as logToolCall,Ki as logToolOutputTruncated,Ii as logUserPrompt,$i as logWebFetchFallbackAttempt,dg as makeChatCompressionEvent,rs as makeFakeConfig,P as makeRelative,ag as makeSlashCommandEvent,Er as mapError,Cr as mapFinishReason,Dr as mapHttpToGrpcStatus,Fr as mapUsage,Cn as markdownToAgentDefinition,Sp as mcpServerRequiresOAuth,Oq as moveInboxSkill,Xd as normalizeCommand,T as normalizePath,Wn as normalizeSpace,qm as normalizeUrl,ck as openBrowserSecurely,Kj as openDiff,Bn as parseAgentMarkdown,kr as parseAndFormatApiError,Yd as parseBashCommandDetails,yh as parseBooleanEnvFlag,Zd as parseCommandDetails,xn as parseFrontmatter,_ as parseGoogleApiError,Ec as parseMcpToolName,rm as parsePrompt,zh as parseTelemetryTargetValue,Dh as parseThought,ym as partListUnionToString,dj as partToString,Ag as patchStdio,Fq as performInit,Eq as performRestore,_p as populateMcpServerCommand,wr as populateToolDisplay,Cq as processRestorableToolCalls,Ld as processSingleFileContent,tk as promptIdContext,Ed as readFileWithEncoding,Lo as readGeminiMdFiles,ss as readPathFromWorkspace,mp as readPolicyFiles,Ad as readWasmBinaryFromDisk,ef as recordApiErrorMetrics,zf as recordApiRequestBreakdown,Ff as recordApiResponseMetrics,Cf as recordBaselineComparison,mf as recordContentRetry,nf as recordContentRetryFailure,Hk as recordConversationOffered,uf as recordCpuUsage,Hf as recordCreditPurchaseClick,ki as recordCurrentMemoryUsage,df as recordCustomApiResponseMetrics,cf as recordCustomTokenUsageMetrics,vf as recordEventLoopDelay,hf as recordExitFail,ff as recordFileOperationMetric,gf as recordFlickerFrame,qf as recordGenAiClientOperationDuration,pf as recordGenAiClientTokenUsage,kf as recordInvalidChunk,tf as recordMemoryUsage,of as recordModelRoutingMetrics,Gf as recordOverageOptionSelected,Bf as recordPerformanceRegression,Af as recordPerformanceScore,lf as recordRetryAttemptMetrics,jf as recordSlowRender,sf as recordStartupPerformance,yf as recordTokenEfficiency,Ef as recordTokenUsageMetrics,Ik as recordToolCallInteractions,bf as recordToolCallMetrics,xf as recordToolExecutionBreakdown,wf as recordToolQueueDepth,ci as recordUserActivity,Lq as refreshMemory,To as refreshServerHierarchicalMemory,Up as removeMCPStatusChangeListener,yr as renderDisplayDiff,hl as resetApiKeyCacheForTesting,ho as resetBrowserSession,Rl as resetEncodingCache,Xg as resetOauthClientForTesting,is as resetTrustedFoldersForTesting,$k as resetUserDataCacheForTesting,$j as resetVersionCache,wk as resolveAndValidatePlanPath,Qa as resolveClassifierModel,Ij as resolveEditorAsync,Ud as resolveExecutable,Pa as resolveModel,Om as resolvePathFromEnv,se as resolveSandboxPaths,Ah as resolveTelemetrySettings,X as resolveToRealPath,rk as retryWithBackoff,xi as runInDevTraceSpan,f as safeJsonToMarkdown,Jf as safeLiteralReplace,Nf as safeTemplateReplace,fp as sanitizeAdminSettings,Nd as sanitizeFilenamePart,im as sanitizeHostname,Of as sanitizeOutput,jl as saveApiKey,Qd as saveTruncatedToolOutput,ks as saveTrustedFolders,Sn as scheduleAgentTools,Xl as serializeTerminalToObject,kd as setGeminiMdFilename,pm as setGlobalProxy,al as setupUser,O as shortenPath,ro as shouldAttemptBrowserLaunch,oh as shouldAutoUseCredits,Pg as shouldEnterAlternateScreen,dk as shouldLaunchBrowser,qh as shouldShowEmptyWalletMenu,ph as shouldShowOverageMenu,Jq as showMemory,Gi as shutdownTelemetry,Ml as sortFileEntries,ge as spawnAsync,ce as splitCommands,vi as startGlobalActivityMonitoring,oi as startGlobalEventLoopMonitoring,li as startGlobalMemoryMonitoring,Iq as startMemoryService,zi as startupProfiler,ip as stopAdminControlsPolling,wi as stopGlobalActivityMonitoring,pi as stopGlobalEventLoopMonitoring,mi as stopGlobalMemoryMonitoring,On as stressTestProfile,fe as stripShellWrapper,Rr as supports256Colors,Xa as supportsModernFeatures,Za as supportsMultimodalFunctionResponse,Sr as supportsTrueColor,N as tildeifyPath,M as tmpdir,sa as toFriendlyError,Z as toPathKey,Nm as tokenLimit,xr as toolResultDisplayToDisplayContent,Br as translateEvent,ao as truncateFastAckInput,Mf as truncateString,Nh as uiTelemetryService,R as unescapePath,hm as updateGlobalFetchTimeouts,Vp as updateMCPServerStatus,fj as updatePart,Mn as updatePolicy,Eh as validateAndSanitizeSessionId,op as validateMcpPolicyToolNames,Hq as validatePatches,yk as validatePlanContent,xk as validatePlanPath,Ul as windowsCodePageToEncoding,jh as wrapInAccountChooser,zg as writeToStderr,yg as writeToStdout};
@@ -1,6 +1,6 @@
1
1
  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);
2
- import"./chunk-QLWIHN4W.js";import{b as l,se as F}from"./chunk-PZNAC7U7.js";import{b as N}from"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";import W from"node:http";import _ from"node:https";import z from"node:zlib";import C from"node:fs";import G from"node:path";import{EventEmitter as ee}from"node:events";var M="x-activity-request-id",te=100;function oe(r){return!Array.isArray(r)}function A(r){return typeof r=="object"&&r!==null&&!(r instanceof URL)&&!Array.isArray(r)}function O(r){return typeof r=="function"}function H(r,e){if(e.length===0)return r({});if(e.length===1){let t=e[0];return typeof t=="string"||t instanceof URL||A(t)?r(t):r({})}if(e.length===2){let t=e[0],o=e[1];if((typeof t=="string"||t instanceof URL)&&(O(o)||A(o))||A(t)&&O(o))return r(t,o)}if(e.length===3){let t=e[0],o=e[1],s=e[2];if((typeof t=="string"||t instanceof URL)&&A(o)&&O(s))return r(t,o,s)}return r({})}var E=class r extends ee{static instance;isInterceptionEnabled=!1;requestStartTimes=new Map;networkLoggingEnabled=!1;networkBufferMap=new Map;networkBufferIds=[];consoleBuffer=[];bufferLimit=10;static getInstance(){return r.instance||(r.instance=new r),r.instance}enableNetworkLogging(){this.networkLoggingEnabled=!0,this.emit("network-logging-enabled")}disableNetworkLogging(){this.networkLoggingEnabled=!1}isNetworkLoggingEnabled(){return this.networkLoggingEnabled}drainBufferedLogs(){let e=[];for(let o of this.networkBufferIds){let s=this.networkBufferMap.get(o);s&&e.push(...s)}let t=[...this.consoleBuffer];return this.networkBufferMap.clear(),this.networkBufferIds=[],this.consoleBuffer=[],{network:e,console:t}}getBufferedLogs(){let e=[];for(let t of this.networkBufferIds){let o=this.networkBufferMap.get(t);o&&e.push(...o)}return{network:e,console:[...this.consoleBuffer]}}clearBufferedLogs(){this.networkBufferMap.clear(),this.networkBufferIds=[],this.consoleBuffer=[]}stringifyHeaders(e){let t={};if(!e)return t;if(e instanceof Headers)e.forEach((o,s)=>{t[s.toLowerCase()]=o});else if(typeof e=="object"&&e!==null)for(let[o,s]of Object.entries(e))t[o.toLowerCase()]=Array.isArray(s)?s.join(", "):String(s);return t}sanitizeNetworkLog(e){if(!e||typeof e!="object")return e;let t={...e};if("headers"in t&&t.headers){let o={...t.headers};for(let s of Object.keys(o))["authorization","cookie","x-goog-api-key"].includes(s.toLowerCase())&&(o[s]="[REDACTED]");t.headers=o}if("response"in t&&t.response?.headers){let o={...t.response.headers};for(let s of Object.keys(o))["set-cookie"].includes(s.toLowerCase())&&(o[s]="[REDACTED]");t.response={...t.response,headers:o}}return t}emitNetworkEvent(e){this.safeEmitNetwork(e)}safeEmitNetwork(e){let t=this.sanitizeNetworkLog(e),o=t.id;if(!this.networkBufferMap.has(o)&&(this.networkBufferIds.push(o),this.networkBufferMap.set(o,[]),this.networkBufferIds.length>this.bufferLimit)){let s=this.networkBufferIds.shift();this.networkBufferMap.delete(s)}this.networkBufferMap.get(o).push(t),this.emit("network",t)}enable(){this.isInterceptionEnabled||(this.isInterceptionEnabled=!0,this.patchGlobalFetch(),this.patchNodeHttp())}patchGlobalFetch(){if(!global.fetch)return;let e=global.fetch;global.fetch=async(t,o)=>{let s=typeof t=="string"?t:t instanceof URL?t.toString():t.url;if(s.includes("127.0.0.1")||s.includes("localhost"))return e(t,o);let n=Math.random().toString(36).substring(7),i=typeof t=="object"&&"method"in t?t.method:void 0,u=typeof t=="object"&&"headers"in t?t.headers:void 0,h=(o?.method??i??"GET").toUpperCase(),c=new Headers(o?.headers??u??{});c.set(M,n);let y={...o,method:h,headers:c},L="",k=y.body;k&&(typeof k=="string"?L=k:k instanceof URLSearchParams&&(L=k.toString())),this.requestStartTimes.set(n,Date.now()),this.safeEmitNetwork({id:n,timestamp:Date.now(),method:h,url:s,headers:this.stringifyHeaders(y.headers),body:L,pending:!0});try{let m=await e(t,y),w=m.clone();if(w.body){let b=w.body.getReader(),v=new TextDecoder,T=[],d=0;(async()=>{try{for(;;){let{done:g,value:I}=await b.read();if(g)break;let S=v.decode(I,{stream:!0});T.push(S),this.safeEmitNetwork({id:n,pending:!0,chunk:{index:d++,data:S,timestamp:Date.now()}})}let a=this.requestStartTimes.get(n),p=a?Date.now()-a:0;this.requestStartTimes.delete(n),this.safeEmitNetwork({id:n,pending:!1,response:{status:m.status,headers:this.stringifyHeaders(m.headers),body:T.join(""),durationMs:p}})}catch(a){let p=a instanceof Error?a.message:String(a);this.safeEmitNetwork({id:n,pending:!1,error:`Failed to read response body: ${p}`})}})()}else w.text().then(b=>{let v=this.requestStartTimes.get(n),T=v?Date.now()-v:0;this.requestStartTimes.delete(n),this.safeEmitNetwork({id:n,pending:!1,response:{status:m.status,headers:this.stringifyHeaders(m.headers),body:b,durationMs:T}})}).catch(b=>{let v=b instanceof Error?b.message:String(b);this.safeEmitNetwork({id:n,pending:!1,error:`Failed to read response body: ${v}`})});return m}catch(m){this.requestStartTimes.delete(n);let w=m instanceof Error?m.message:String(m);throw this.safeEmitNetwork({id:n,pending:!1,error:w}),m}}}patchNodeHttp(){let e=this,t=W.request,o=_.request,s=(n,i,u)=>{let h=i[0],c;typeof h=="string"||h instanceof URL?c=h:h&&typeof h=="object"?c=A(h)?h:{}:c={};let y="";if(typeof c=="string"?y=c:c instanceof URL?y=c.href:y=("href"in c&&typeof c.href=="string"?c.href:"")||`${u}//${c.hostname||c.host||"localhost"}${c.path||"/"}`,y.includes("127.0.0.1")||y.includes("localhost"))return H(n,i);let L=typeof c=="object"&&c!==null&&!(c instanceof URL)?c.headers:void 0,k={};if(L&&oe(L)&&(k=L),k[M])return delete k[M],H(n,i);let m=Math.random().toString(36).substring(7);this.requestStartTimes.set(m,Date.now());let w=H(n,i),b=[],v=w.write,T=w.end;return w.write=function(d,...f){if(d){let a=f[0],p=typeof a=="string"&&Buffer.isEncoding(a)?a:void 0;b.push(Buffer.isBuffer(d)?d:typeof d=="string"?Buffer.from(d,p):Buffer.from(d instanceof Uint8Array?d:String(d)))}return v.apply(this,[d,...f])},w.end=function(d,...f){let a=typeof d=="function"?void 0:d;if(a){let g=f[0],I=typeof g=="string"&&Buffer.isEncoding(g)?g:void 0;b.push(Buffer.isBuffer(a)?a:typeof a=="string"?Buffer.from(a,I):Buffer.from(a instanceof Uint8Array?a:String(a)))}let p=Buffer.concat(b).toString("utf8");return e.safeEmitNetwork({id:m,timestamp:Date.now(),method:w.method||"GET",url:y,headers:e.stringifyHeaders(w.getHeaders()),body:p,pending:!0}),T.apply(this,[d,...f])},w.on("response",d=>{let f=[],a=0;d.on("data",p=>{let g=Buffer.from(p);f.push(g),e.safeEmitNetwork({id:m,pending:!0,chunk:{index:a++,data:g.toString("utf8"),timestamp:Date.now()}})}),d.on("end",()=>{let p=Buffer.concat(f),g=d.headers["content-encoding"],I=S=>{let B=S.toString("utf8"),j=e.requestStartTimes.get(m),Q=j?Date.now()-j:0;e.requestStartTimes.delete(m),e.safeEmitNetwork({id:m,pending:!1,response:{status:d.statusCode||0,headers:e.stringifyHeaders(d.headers),body:B,durationMs:Q}})};g==="gzip"?z.gunzip(p,(S,B)=>{I(S?p:B)}):g==="deflate"?z.inflate(p,(S,B)=>{I(S?p:B)}):I(p)})}),w.on("error",d=>{e.requestStartTimes.delete(m);let f=d.message;e.safeEmitNetwork({id:m,pending:!1,error:f})}),w};Object.defineProperty(W,"request",{value:(n,i,u)=>s(t,u!==void 0?[n,i,u]:i!==void 0?[n,i]:[n],"http:"),writable:!0,configurable:!0}),Object.defineProperty(_,"request",{value:(n,i,u)=>s(o,u!==void 0?[n,i,u]:i!==void 0?[n,i]:[n],"https:"),writable:!0,configurable:!0})}logConsole(e){let t={...e,timestamp:Date.now()};this.consoleBuffer.push(t),this.consoleBuffer.length>this.bufferLimit&&this.consoleBuffer.shift(),this.emit("console",t)}};function re(r,e,t){let o=t||(e.storage?G.join(e.storage.getProjectTempLogsDir(),`session-${e.getSessionId()}.jsonl`):null);if(!o)return;let s=G.dirname(o);C.existsSync(s)||C.mkdirSync(s,{recursive:!0});let n=(i,u)=>{try{let h=JSON.stringify({type:i,payload:u,sessionId:e.getSessionId(),timestamp:Date.now()})+`
3
- `;C.promises.appendFile(o,h).catch(c=>{l.error("Failed to write to activity log:",c)})}catch(h){l.error("Failed to prepare activity log entry:",h)}};r.on("console",i=>n("console",i)),r.on("network",i=>n("network",i))}function V(r,e,t,o,s){let n=[],i=null,u=null,h=null,c=null,y=0,L=2,k=()=>{try{i=new N(`ws://${e}:${t}/ws`),i.on("open",()=>{l.debug(`WebSocket connected to ${e}:${t}`),y=0,w({type:"register",sessionId:o.getSessionId(),timestamp:Date.now()})}),i.on("message",f=>{try{let a=JSON.parse(f.toString());typeof a=="object"&&a!==null&&"type"in a&&typeof a.type=="string"&&m({type:a.type,sessionId:"sessionId"in a&&typeof a.sessionId=="string"?a.sessionId:void 0})}catch(a){l.debug("Invalid WebSocket message:",a)}}),i.on("close",()=>{l.debug(`WebSocket disconnected from ${e}:${t}`),T(),d()}),i.on("error",f=>{l.debug("WebSocket error:",f)})}catch(f){l.debug("Failed to connect WebSocket:",f),d()}},m=f=>{switch(f.type){case"registered":h=f.sessionId||null,l.debug(`WebSocket session registered: ${h}`),c&&clearInterval(c),c=setInterval(()=>{w({type:"pong",timestamp:Date.now()})},15e3),v();break;case"trigger-debugger":{import("node:inspector").then(a=>(a.open(),l.log("Node debugger attached. Open chrome://inspect in Chrome to start debugging."),import("./events-FDA3W5FN.js"))).then(({appEvents:a,AppEvent:p,TransientMessageType:g})=>{a.emit(p.TransientMessage,{message:"Debugger attached from DevTools.",type:g.Hint})}).catch(a=>l.debug("Failed to trigger debugger:",a));break}case"ping":w({type:"pong",timestamp:Date.now()});break;default:break}},w=f=>{i&&i.readyState===N.OPEN&&i.send(JSON.stringify(f))},b=(f,a)=>{let p={type:f,payload:a,sessionId:h||o.getSessionId(),timestamp:Date.now()};if(!i||i.readyState!==N.OPEN||!r.isNetworkLoggingEnabled()){n.push(p),n.length>te&&n.shift();return}w(p)},v=()=>{if(!i||i.readyState!==N.OPEN||!r.isNetworkLoggingEnabled())return;let{network:f,console:a}=r.drainBufferedLogs(),p=[...f.map(g=>({type:"network",payload:g,timestamp:"timestamp"in g&&g.timestamp?g.timestamp:Date.now()})),...a.map(g=>({type:"console",payload:g,timestamp:g.timestamp}))].sort((g,I)=>g.timestamp-I.timestamp);l.debug(`Flushing ${p.length} initial buffered logs and ${n.length} transport buffered logs...`);for(let g of p)w({type:g.type,payload:g.payload,sessionId:h||o.getSessionId(),timestamp:Date.now()});for(;n.length>0;){let g=n.shift();w(g)}},T=()=>{c&&(clearInterval(c),c=null),i=null},d=()=>{if(!u){if(y++,y>L&&s){l.debug(`WebSocket reconnect failed after ${L} attempts, promoting to server...`),s();return}u=setTimeout(()=>{u=null,l.debug("Reconnecting WebSocket..."),k()},1e3)}};k(),r.on("console",f=>b("console",f)),r.on("network",f=>b("network",f)),r.on("network-logging-enabled",()=>{l.debug("Network logging enabled, flushing buffer..."),v()}),process.on("exit",()=>{u&&clearTimeout(u),i&&i.close(),T()})}var J=!1;function se(r){J||(J=!0,F.on("console-log",e=>{r.logConsole(e)}))}function $(r,e){let t=E.getInstance();t.enable(),e.mode==="network"?(V(t,e.host,e.port,r,e.onReconnectFailed),t.enableNetworkLogging()):e.mode==="file"&&re(t,r,e.filePath),se(t)}function x(r,e,t,o){let s=E.getInstance();V(s,e,t,r,o)}var D=25417,q="127.0.0.1",X=3,U=0,R=null,P=null;function Y(r,e){return new Promise(t=>{let o=new N(`ws://${r}:${e}/ws`),s=setTimeout(()=>{o.close(),t(!1)},500);o.on("open",()=>{clearTimeout(s),o.close(),t(!0)}),o.on("error",()=>{clearTimeout(s),o.close(),t(!1)})})}async function Z(r,e){let o=(await import("@google/gemini-cli-devtools")).DevTools.getInstance(),s=await o.start(),n=o.getPort();return n===e?(l.log(`DevTools available at: ${s}`),{host:r,port:n}):await Y(r,e)?(await o.stop(),l.log(`DevTools (existing) at: http://${r}:${e}`),{host:r,port:e}):(l.log(`DevTools available at: ${s}`),{host:r,port:n})}async function K(r){if(U++,U>X){l.debug(`Giving up on DevTools promotion after ${X} attempts`);return}try{let e=await Z(q,D);x(r,e.host,e.port,()=>K(r))}catch(e){l.debug("Failed to promote to DevTools server:",e)}}function ke(r){let e=process.env.GEMINI_CLI_ACTIVITY_LOG_TARGET;if(e){if(!r.storage)return;$(r,{mode:"file",filePath:e})}else $(r,{mode:"buffer"})}function ne(r){return P?Promise.resolve(P):R||(R=ie(r).catch(e=>{throw R=null,e}),R)}async function ie(r){let e=()=>K(r),t=await Y(q,D),o=q,s=D;if(t)l.log(`DevTools (existing) at: http://${q}:${D}`);else try{let u=await Z(q,D);o=u.host,s=u.port}catch(u){throw l.debug("Failed to start DevTools:",u),u}x(r,o,s,e),E.getInstance().enableNetworkLogging();let i=`http://localhost:${s}`;return P=i,i}async function ve(r,e,t,o){if(e){t();return}try{let{openBrowserSecurely:s,shouldLaunchBrowser:n}=await import("./core-SNF4J4VI.js"),i=await ne(r);if(n())try{await s(i);return}catch(u){l.warn("Failed to open browser securely:",u)}o()}catch(s){o(),l.error("Failed to start DevTools server:",s)}}function Le(){U=0,R=null,P=null}export{Le as resetForTesting,ke as setupInitialActivityLogger,ne as startDevToolsServer,ve as toggleDevToolsPanel};
2
+ import"./chunk-63ULYU4I.js";import{b as l,se as F}from"./chunk-PZNAC7U7.js";import{b as N}from"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";import W from"node:http";import _ from"node:https";import z from"node:zlib";import C from"node:fs";import G from"node:path";import{EventEmitter as ee}from"node:events";var M="x-activity-request-id",te=100;function oe(r){return!Array.isArray(r)}function A(r){return typeof r=="object"&&r!==null&&!(r instanceof URL)&&!Array.isArray(r)}function O(r){return typeof r=="function"}function H(r,e){if(e.length===0)return r({});if(e.length===1){let t=e[0];return typeof t=="string"||t instanceof URL||A(t)?r(t):r({})}if(e.length===2){let t=e[0],o=e[1];if((typeof t=="string"||t instanceof URL)&&(O(o)||A(o))||A(t)&&O(o))return r(t,o)}if(e.length===3){let t=e[0],o=e[1],s=e[2];if((typeof t=="string"||t instanceof URL)&&A(o)&&O(s))return r(t,o,s)}return r({})}var E=class r extends ee{static instance;isInterceptionEnabled=!1;requestStartTimes=new Map;networkLoggingEnabled=!1;networkBufferMap=new Map;networkBufferIds=[];consoleBuffer=[];bufferLimit=10;static getInstance(){return r.instance||(r.instance=new r),r.instance}enableNetworkLogging(){this.networkLoggingEnabled=!0,this.emit("network-logging-enabled")}disableNetworkLogging(){this.networkLoggingEnabled=!1}isNetworkLoggingEnabled(){return this.networkLoggingEnabled}drainBufferedLogs(){let e=[];for(let o of this.networkBufferIds){let s=this.networkBufferMap.get(o);s&&e.push(...s)}let t=[...this.consoleBuffer];return this.networkBufferMap.clear(),this.networkBufferIds=[],this.consoleBuffer=[],{network:e,console:t}}getBufferedLogs(){let e=[];for(let t of this.networkBufferIds){let o=this.networkBufferMap.get(t);o&&e.push(...o)}return{network:e,console:[...this.consoleBuffer]}}clearBufferedLogs(){this.networkBufferMap.clear(),this.networkBufferIds=[],this.consoleBuffer=[]}stringifyHeaders(e){let t={};if(!e)return t;if(e instanceof Headers)e.forEach((o,s)=>{t[s.toLowerCase()]=o});else if(typeof e=="object"&&e!==null)for(let[o,s]of Object.entries(e))t[o.toLowerCase()]=Array.isArray(s)?s.join(", "):String(s);return t}sanitizeNetworkLog(e){if(!e||typeof e!="object")return e;let t={...e};if("headers"in t&&t.headers){let o={...t.headers};for(let s of Object.keys(o))["authorization","cookie","x-goog-api-key"].includes(s.toLowerCase())&&(o[s]="[REDACTED]");t.headers=o}if("response"in t&&t.response?.headers){let o={...t.response.headers};for(let s of Object.keys(o))["set-cookie"].includes(s.toLowerCase())&&(o[s]="[REDACTED]");t.response={...t.response,headers:o}}return t}emitNetworkEvent(e){this.safeEmitNetwork(e)}safeEmitNetwork(e){let t=this.sanitizeNetworkLog(e),o=t.id;if(!this.networkBufferMap.has(o)&&(this.networkBufferIds.push(o),this.networkBufferMap.set(o,[]),this.networkBufferIds.length>this.bufferLimit)){let s=this.networkBufferIds.shift();this.networkBufferMap.delete(s)}this.networkBufferMap.get(o).push(t),this.emit("network",t)}enable(){this.isInterceptionEnabled||(this.isInterceptionEnabled=!0,this.patchGlobalFetch(),this.patchNodeHttp())}patchGlobalFetch(){if(!global.fetch)return;let e=global.fetch;global.fetch=async(t,o)=>{let s=typeof t=="string"?t:t instanceof URL?t.toString():t.url;if(s.includes("127.0.0.1")||s.includes("localhost"))return e(t,o);let n=Math.random().toString(36).substring(7),i=typeof t=="object"&&"method"in t?t.method:void 0,u=typeof t=="object"&&"headers"in t?t.headers:void 0,h=(o?.method??i??"GET").toUpperCase(),c=new Headers(o?.headers??u??{});c.set(M,n);let y={...o,method:h,headers:c},L="",k=y.body;k&&(typeof k=="string"?L=k:k instanceof URLSearchParams&&(L=k.toString())),this.requestStartTimes.set(n,Date.now()),this.safeEmitNetwork({id:n,timestamp:Date.now(),method:h,url:s,headers:this.stringifyHeaders(y.headers),body:L,pending:!0});try{let m=await e(t,y),w=m.clone();if(w.body){let b=w.body.getReader(),v=new TextDecoder,T=[],d=0;(async()=>{try{for(;;){let{done:g,value:I}=await b.read();if(g)break;let S=v.decode(I,{stream:!0});T.push(S),this.safeEmitNetwork({id:n,pending:!0,chunk:{index:d++,data:S,timestamp:Date.now()}})}let a=this.requestStartTimes.get(n),p=a?Date.now()-a:0;this.requestStartTimes.delete(n),this.safeEmitNetwork({id:n,pending:!1,response:{status:m.status,headers:this.stringifyHeaders(m.headers),body:T.join(""),durationMs:p}})}catch(a){let p=a instanceof Error?a.message:String(a);this.safeEmitNetwork({id:n,pending:!1,error:`Failed to read response body: ${p}`})}})()}else w.text().then(b=>{let v=this.requestStartTimes.get(n),T=v?Date.now()-v:0;this.requestStartTimes.delete(n),this.safeEmitNetwork({id:n,pending:!1,response:{status:m.status,headers:this.stringifyHeaders(m.headers),body:b,durationMs:T}})}).catch(b=>{let v=b instanceof Error?b.message:String(b);this.safeEmitNetwork({id:n,pending:!1,error:`Failed to read response body: ${v}`})});return m}catch(m){this.requestStartTimes.delete(n);let w=m instanceof Error?m.message:String(m);throw this.safeEmitNetwork({id:n,pending:!1,error:w}),m}}}patchNodeHttp(){let e=this,t=W.request,o=_.request,s=(n,i,u)=>{let h=i[0],c;typeof h=="string"||h instanceof URL?c=h:h&&typeof h=="object"?c=A(h)?h:{}:c={};let y="";if(typeof c=="string"?y=c:c instanceof URL?y=c.href:y=("href"in c&&typeof c.href=="string"?c.href:"")||`${u}//${c.hostname||c.host||"localhost"}${c.path||"/"}`,y.includes("127.0.0.1")||y.includes("localhost"))return H(n,i);let L=typeof c=="object"&&c!==null&&!(c instanceof URL)?c.headers:void 0,k={};if(L&&oe(L)&&(k=L),k[M])return delete k[M],H(n,i);let m=Math.random().toString(36).substring(7);this.requestStartTimes.set(m,Date.now());let w=H(n,i),b=[],v=w.write,T=w.end;return w.write=function(d,...f){if(d){let a=f[0],p=typeof a=="string"&&Buffer.isEncoding(a)?a:void 0;b.push(Buffer.isBuffer(d)?d:typeof d=="string"?Buffer.from(d,p):Buffer.from(d instanceof Uint8Array?d:String(d)))}return v.apply(this,[d,...f])},w.end=function(d,...f){let a=typeof d=="function"?void 0:d;if(a){let g=f[0],I=typeof g=="string"&&Buffer.isEncoding(g)?g:void 0;b.push(Buffer.isBuffer(a)?a:typeof a=="string"?Buffer.from(a,I):Buffer.from(a instanceof Uint8Array?a:String(a)))}let p=Buffer.concat(b).toString("utf8");return e.safeEmitNetwork({id:m,timestamp:Date.now(),method:w.method||"GET",url:y,headers:e.stringifyHeaders(w.getHeaders()),body:p,pending:!0}),T.apply(this,[d,...f])},w.on("response",d=>{let f=[],a=0;d.on("data",p=>{let g=Buffer.from(p);f.push(g),e.safeEmitNetwork({id:m,pending:!0,chunk:{index:a++,data:g.toString("utf8"),timestamp:Date.now()}})}),d.on("end",()=>{let p=Buffer.concat(f),g=d.headers["content-encoding"],I=S=>{let B=S.toString("utf8"),j=e.requestStartTimes.get(m),Q=j?Date.now()-j:0;e.requestStartTimes.delete(m),e.safeEmitNetwork({id:m,pending:!1,response:{status:d.statusCode||0,headers:e.stringifyHeaders(d.headers),body:B,durationMs:Q}})};g==="gzip"?z.gunzip(p,(S,B)=>{I(S?p:B)}):g==="deflate"?z.inflate(p,(S,B)=>{I(S?p:B)}):I(p)})}),w.on("error",d=>{e.requestStartTimes.delete(m);let f=d.message;e.safeEmitNetwork({id:m,pending:!1,error:f})}),w};Object.defineProperty(W,"request",{value:(n,i,u)=>s(t,u!==void 0?[n,i,u]:i!==void 0?[n,i]:[n],"http:"),writable:!0,configurable:!0}),Object.defineProperty(_,"request",{value:(n,i,u)=>s(o,u!==void 0?[n,i,u]:i!==void 0?[n,i]:[n],"https:"),writable:!0,configurable:!0})}logConsole(e){let t={...e,timestamp:Date.now()};this.consoleBuffer.push(t),this.consoleBuffer.length>this.bufferLimit&&this.consoleBuffer.shift(),this.emit("console",t)}};function re(r,e,t){let o=t||(e.storage?G.join(e.storage.getProjectTempLogsDir(),`session-${e.getSessionId()}.jsonl`):null);if(!o)return;let s=G.dirname(o);C.existsSync(s)||C.mkdirSync(s,{recursive:!0});let n=(i,u)=>{try{let h=JSON.stringify({type:i,payload:u,sessionId:e.getSessionId(),timestamp:Date.now()})+`
3
+ `;C.promises.appendFile(o,h).catch(c=>{l.error("Failed to write to activity log:",c)})}catch(h){l.error("Failed to prepare activity log entry:",h)}};r.on("console",i=>n("console",i)),r.on("network",i=>n("network",i))}function V(r,e,t,o,s){let n=[],i=null,u=null,h=null,c=null,y=0,L=2,k=()=>{try{i=new N(`ws://${e}:${t}/ws`),i.on("open",()=>{l.debug(`WebSocket connected to ${e}:${t}`),y=0,w({type:"register",sessionId:o.getSessionId(),timestamp:Date.now()})}),i.on("message",f=>{try{let a=JSON.parse(f.toString());typeof a=="object"&&a!==null&&"type"in a&&typeof a.type=="string"&&m({type:a.type,sessionId:"sessionId"in a&&typeof a.sessionId=="string"?a.sessionId:void 0})}catch(a){l.debug("Invalid WebSocket message:",a)}}),i.on("close",()=>{l.debug(`WebSocket disconnected from ${e}:${t}`),T(),d()}),i.on("error",f=>{l.debug("WebSocket error:",f)})}catch(f){l.debug("Failed to connect WebSocket:",f),d()}},m=f=>{switch(f.type){case"registered":h=f.sessionId||null,l.debug(`WebSocket session registered: ${h}`),c&&clearInterval(c),c=setInterval(()=>{w({type:"pong",timestamp:Date.now()})},15e3),v();break;case"trigger-debugger":{import("node:inspector").then(a=>(a.open(),l.log("Node debugger attached. Open chrome://inspect in Chrome to start debugging."),import("./events-FDA3W5FN.js"))).then(({appEvents:a,AppEvent:p,TransientMessageType:g})=>{a.emit(p.TransientMessage,{message:"Debugger attached from DevTools.",type:g.Hint})}).catch(a=>l.debug("Failed to trigger debugger:",a));break}case"ping":w({type:"pong",timestamp:Date.now()});break;default:break}},w=f=>{i&&i.readyState===N.OPEN&&i.send(JSON.stringify(f))},b=(f,a)=>{let p={type:f,payload:a,sessionId:h||o.getSessionId(),timestamp:Date.now()};if(!i||i.readyState!==N.OPEN||!r.isNetworkLoggingEnabled()){n.push(p),n.length>te&&n.shift();return}w(p)},v=()=>{if(!i||i.readyState!==N.OPEN||!r.isNetworkLoggingEnabled())return;let{network:f,console:a}=r.drainBufferedLogs(),p=[...f.map(g=>({type:"network",payload:g,timestamp:"timestamp"in g&&g.timestamp?g.timestamp:Date.now()})),...a.map(g=>({type:"console",payload:g,timestamp:g.timestamp}))].sort((g,I)=>g.timestamp-I.timestamp);l.debug(`Flushing ${p.length} initial buffered logs and ${n.length} transport buffered logs...`);for(let g of p)w({type:g.type,payload:g.payload,sessionId:h||o.getSessionId(),timestamp:Date.now()});for(;n.length>0;){let g=n.shift();w(g)}},T=()=>{c&&(clearInterval(c),c=null),i=null},d=()=>{if(!u){if(y++,y>L&&s){l.debug(`WebSocket reconnect failed after ${L} attempts, promoting to server...`),s();return}u=setTimeout(()=>{u=null,l.debug("Reconnecting WebSocket..."),k()},1e3)}};k(),r.on("console",f=>b("console",f)),r.on("network",f=>b("network",f)),r.on("network-logging-enabled",()=>{l.debug("Network logging enabled, flushing buffer..."),v()}),process.on("exit",()=>{u&&clearTimeout(u),i&&i.close(),T()})}var J=!1;function se(r){J||(J=!0,F.on("console-log",e=>{r.logConsole(e)}))}function $(r,e){let t=E.getInstance();t.enable(),e.mode==="network"?(V(t,e.host,e.port,r,e.onReconnectFailed),t.enableNetworkLogging()):e.mode==="file"&&re(t,r,e.filePath),se(t)}function x(r,e,t,o){let s=E.getInstance();V(s,e,t,r,o)}var D=25417,q="127.0.0.1",X=3,U=0,R=null,P=null;function Y(r,e){return new Promise(t=>{let o=new N(`ws://${r}:${e}/ws`),s=setTimeout(()=>{o.close(),t(!1)},500);o.on("open",()=>{clearTimeout(s),o.close(),t(!0)}),o.on("error",()=>{clearTimeout(s),o.close(),t(!1)})})}async function Z(r,e){let o=(await import("@google/gemini-cli-devtools")).DevTools.getInstance(),s=await o.start(),n=o.getPort();return n===e?(l.log(`DevTools available at: ${s}`),{host:r,port:n}):await Y(r,e)?(await o.stop(),l.log(`DevTools (existing) at: http://${r}:${e}`),{host:r,port:e}):(l.log(`DevTools available at: ${s}`),{host:r,port:n})}async function K(r){if(U++,U>X){l.debug(`Giving up on DevTools promotion after ${X} attempts`);return}try{let e=await Z(q,D);x(r,e.host,e.port,()=>K(r))}catch(e){l.debug("Failed to promote to DevTools server:",e)}}function ke(r){let e=process.env.GEMINI_CLI_ACTIVITY_LOG_TARGET;if(e){if(!r.storage)return;$(r,{mode:"file",filePath:e})}else $(r,{mode:"buffer"})}function ne(r){return P?Promise.resolve(P):R||(R=ie(r).catch(e=>{throw R=null,e}),R)}async function ie(r){let e=()=>K(r),t=await Y(q,D),o=q,s=D;if(t)l.log(`DevTools (existing) at: http://${q}:${D}`);else try{let u=await Z(q,D);o=u.host,s=u.port}catch(u){throw l.debug("Failed to start DevTools:",u),u}x(r,o,s,e),E.getInstance().enableNetworkLogging();let i=`http://localhost:${s}`;return P=i,i}async function ve(r,e,t,o){if(e){t();return}try{let{openBrowserSecurely:s,shouldLaunchBrowser:n}=await import("./core-4QE6N7IV.js"),i=await ne(r);if(n())try{await s(i);return}catch(u){l.warn("Failed to open browser securely:",u)}o()}catch(s){o(),l.error("Failed to start DevTools server:",s)}}function Le(){U=0,R=null,P=null}export{Le as resetForTesting,ke as setupInitialActivityLogger,ne as startDevToolsServer,ve as toggleDevToolsPanel};
4
4
  /**
5
5
  * @license
6
6
  * Copyright 2025 Google LLC
@@ -1,6 +1,6 @@
1
1
  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);
2
- import"./chunk-AHBTQKKJ.js";import{b as l,qe as F,se as W}from"./chunk-7I5Y2LVR.js";import{b as N}from"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";import _ from"node:http";import z from"node:https";import G from"node:zlib";import C from"node:fs";import J from"node:path";import{EventEmitter as te}from"node:events";var M="x-activity-request-id",oe=100;function re(r){return!Array.isArray(r)}function A(r){return typeof r=="object"&&r!==null&&!(r instanceof URL)&&!Array.isArray(r)}function O(r){return typeof r=="function"}function H(r,e){if(e.length===0)return r({});if(e.length===1){let t=e[0];return typeof t=="string"||t instanceof URL||A(t)?r(t):r({})}if(e.length===2){let t=e[0],o=e[1];if((typeof t=="string"||t instanceof URL)&&(O(o)||A(o))||A(t)&&O(o))return r(t,o)}if(e.length===3){let t=e[0],o=e[1],s=e[2];if((typeof t=="string"||t instanceof URL)&&A(o)&&O(s))return r(t,o,s)}return r({})}var E=class r extends te{static instance;isInterceptionEnabled=!1;requestStartTimes=new Map;networkLoggingEnabled=!1;networkBufferMap=new Map;networkBufferIds=[];consoleBuffer=[];bufferLimit=10;static getInstance(){return r.instance||(r.instance=new r),r.instance}enableNetworkLogging(){this.networkLoggingEnabled=!0,this.emit("network-logging-enabled")}disableNetworkLogging(){this.networkLoggingEnabled=!1}isNetworkLoggingEnabled(){return this.networkLoggingEnabled}drainBufferedLogs(){let e=[];for(let o of this.networkBufferIds){let s=this.networkBufferMap.get(o);s&&e.push(...s)}let t=[...this.consoleBuffer];return this.networkBufferMap.clear(),this.networkBufferIds=[],this.consoleBuffer=[],{network:e,console:t}}getBufferedLogs(){let e=[];for(let t of this.networkBufferIds){let o=this.networkBufferMap.get(t);o&&e.push(...o)}return{network:e,console:[...this.consoleBuffer]}}clearBufferedLogs(){this.networkBufferMap.clear(),this.networkBufferIds=[],this.consoleBuffer=[]}stringifyHeaders(e){let t={};if(!e)return t;if(e instanceof Headers)e.forEach((o,s)=>{t[s.toLowerCase()]=o});else if(typeof e=="object"&&e!==null)for(let[o,s]of Object.entries(e))t[o.toLowerCase()]=Array.isArray(s)?s.join(", "):String(s);return t}sanitizeNetworkLog(e){if(!e||typeof e!="object")return e;let t={...e};if("headers"in t&&t.headers){let o={...t.headers};for(let s of Object.keys(o))["authorization","cookie","x-goog-api-key"].includes(s.toLowerCase())&&(o[s]="[REDACTED]");t.headers=o}if("response"in t&&t.response?.headers){let o={...t.response.headers};for(let s of Object.keys(o))["set-cookie"].includes(s.toLowerCase())&&(o[s]="[REDACTED]");t.response={...t.response,headers:o}}return t}emitNetworkEvent(e){this.safeEmitNetwork(e)}safeEmitNetwork(e){let t=this.sanitizeNetworkLog(e),o=t.id;if(!this.networkBufferMap.has(o)&&(this.networkBufferIds.push(o),this.networkBufferMap.set(o,[]),this.networkBufferIds.length>this.bufferLimit)){let s=this.networkBufferIds.shift();this.networkBufferMap.delete(s)}this.networkBufferMap.get(o).push(t),this.emit("network",t)}enable(){this.isInterceptionEnabled||(this.isInterceptionEnabled=!0,this.patchGlobalFetch(),this.patchNodeHttp())}patchGlobalFetch(){if(!global.fetch)return;let e=global.fetch;global.fetch=async(t,o)=>{let s=typeof t=="string"?t:t instanceof URL?t.toString():t.url;if(s.includes("127.0.0.1")||s.includes("localhost"))return e(t,o);let n=Math.random().toString(36).substring(7),i=typeof t=="object"&&"method"in t?t.method:void 0,u=typeof t=="object"&&"headers"in t?t.headers:void 0,h=(o?.method??i??"GET").toUpperCase(),c=new Headers(o?.headers??u??{});c.set(M,n);let y={...o,method:h,headers:c},L="",k=y.body;k&&(typeof k=="string"?L=k:k instanceof URLSearchParams&&(L=k.toString())),this.requestStartTimes.set(n,Date.now()),this.safeEmitNetwork({id:n,timestamp:Date.now(),method:h,url:s,headers:this.stringifyHeaders(y.headers),body:L,pending:!0});try{let m=await e(t,y),w=m.clone();if(w.body){let b=w.body.getReader(),v=new TextDecoder,T=[],d=0;(async()=>{try{for(;;){let{done:g,value:I}=await b.read();if(g)break;let S=v.decode(I,{stream:!0});T.push(S),this.safeEmitNetwork({id:n,pending:!0,chunk:{index:d++,data:S,timestamp:Date.now()}})}let a=this.requestStartTimes.get(n),p=a?Date.now()-a:0;this.requestStartTimes.delete(n),this.safeEmitNetwork({id:n,pending:!1,response:{status:m.status,headers:this.stringifyHeaders(m.headers),body:T.join(""),durationMs:p}})}catch(a){let p=a instanceof Error?a.message:String(a);this.safeEmitNetwork({id:n,pending:!1,error:`Failed to read response body: ${p}`})}})()}else w.text().then(b=>{let v=this.requestStartTimes.get(n),T=v?Date.now()-v:0;this.requestStartTimes.delete(n),this.safeEmitNetwork({id:n,pending:!1,response:{status:m.status,headers:this.stringifyHeaders(m.headers),body:b,durationMs:T}})}).catch(b=>{let v=b instanceof Error?b.message:String(b);this.safeEmitNetwork({id:n,pending:!1,error:`Failed to read response body: ${v}`})});return m}catch(m){this.requestStartTimes.delete(n);let w=m instanceof Error?m.message:String(m);throw this.safeEmitNetwork({id:n,pending:!1,error:w}),m}}}patchNodeHttp(){let e=this,t=_.request,o=z.request,s=(n,i,u)=>{let h=i[0],c;typeof h=="string"||h instanceof URL?c=h:h&&typeof h=="object"?c=A(h)?h:{}:c={};let y="";if(typeof c=="string"?y=c:c instanceof URL?y=c.href:y=("href"in c&&typeof c.href=="string"?c.href:"")||`${u}//${c.hostname||c.host||"localhost"}${c.path||"/"}`,y.includes("127.0.0.1")||y.includes("localhost"))return H(n,i);let L=typeof c=="object"&&c!==null&&!(c instanceof URL)?c.headers:void 0,k={};if(L&&re(L)&&(k=L),k[M])return delete k[M],H(n,i);let m=Math.random().toString(36).substring(7);this.requestStartTimes.set(m,Date.now());let w=H(n,i),b=[],v=w.write,T=w.end;return w.write=function(d,...f){if(d){let a=f[0],p=typeof a=="string"&&Buffer.isEncoding(a)?a:void 0;b.push(Buffer.isBuffer(d)?d:typeof d=="string"?Buffer.from(d,p):Buffer.from(d instanceof Uint8Array?d:String(d)))}return v.apply(this,[d,...f])},w.end=function(d,...f){let a=typeof d=="function"?void 0:d;if(a){let g=f[0],I=typeof g=="string"&&Buffer.isEncoding(g)?g:void 0;b.push(Buffer.isBuffer(a)?a:typeof a=="string"?Buffer.from(a,I):Buffer.from(a instanceof Uint8Array?a:String(a)))}let p=Buffer.concat(b).toString("utf8");return e.safeEmitNetwork({id:m,timestamp:Date.now(),method:w.method||"GET",url:y,headers:e.stringifyHeaders(w.getHeaders()),body:p,pending:!0}),T.apply(this,[d,...f])},w.on("response",d=>{let f=[],a=0;d.on("data",p=>{let g=Buffer.from(p);f.push(g),e.safeEmitNetwork({id:m,pending:!0,chunk:{index:a++,data:g.toString("utf8"),timestamp:Date.now()}})}),d.on("end",()=>{let p=Buffer.concat(f),g=d.headers["content-encoding"],I=S=>{let B=S.toString("utf8"),j=e.requestStartTimes.get(m),ee=j?Date.now()-j:0;e.requestStartTimes.delete(m),e.safeEmitNetwork({id:m,pending:!1,response:{status:d.statusCode||0,headers:e.stringifyHeaders(d.headers),body:B,durationMs:ee}})};g==="gzip"?G.gunzip(p,(S,B)=>{I(S?p:B)}):g==="deflate"?G.inflate(p,(S,B)=>{I(S?p:B)}):I(p)})}),w.on("error",d=>{e.requestStartTimes.delete(m);let f=d.message;e.safeEmitNetwork({id:m,pending:!1,error:f})}),w};Object.defineProperty(_,"request",{value:(n,i,u)=>s(t,u!==void 0?[n,i,u]:i!==void 0?[n,i]:[n],"http:"),writable:!0,configurable:!0}),Object.defineProperty(z,"request",{value:(n,i,u)=>s(o,u!==void 0?[n,i,u]:i!==void 0?[n,i]:[n],"https:"),writable:!0,configurable:!0})}logConsole(e){let t={...e,timestamp:Date.now()};this.consoleBuffer.push(t),this.consoleBuffer.length>this.bufferLimit&&this.consoleBuffer.shift(),this.emit("console",t)}};function se(r,e,t){let o=t||(e.storage?J.join(e.storage.getProjectTempLogsDir(),`session-${e.getSessionId()}.jsonl`):null);if(!o)return;let s=J.dirname(o);C.existsSync(s)||C.mkdirSync(s,{recursive:!0});let n=(i,u)=>{try{let h=JSON.stringify({type:i,payload:u,sessionId:e.getSessionId(),timestamp:Date.now()})+`
3
- `;C.promises.appendFile(o,h).catch(c=>{l.error("Failed to write to activity log:",c)})}catch(h){l.error("Failed to prepare activity log entry:",h)}};r.on("console",i=>n("console",i)),r.on("network",i=>n("network",i))}function X(r,e,t,o,s){let n=[],i=null,u=null,h=null,c=null,y=0,L=2,k=()=>{try{i=new N(`ws://${e}:${t}/ws`),i.on("open",()=>{l.debug(`WebSocket connected to ${e}:${t}`),y=0,w({type:"register",sessionId:o.getSessionId(),timestamp:Date.now()})}),i.on("message",f=>{try{let a=JSON.parse(f.toString());typeof a=="object"&&a!==null&&"type"in a&&typeof a.type=="string"&&m({type:a.type,sessionId:"sessionId"in a&&typeof a.sessionId=="string"?a.sessionId:void 0})}catch(a){l.debug("Invalid WebSocket message:",a)}}),i.on("close",()=>{l.debug(`WebSocket disconnected from ${e}:${t}`),T(),d()}),i.on("error",f=>{l.debug("WebSocket error:",f)})}catch(f){l.debug("Failed to connect WebSocket:",f),d()}},m=f=>{switch(f.type){case"registered":h=f.sessionId||null,l.debug(`WebSocket session registered: ${h}`),c&&clearInterval(c),c=setInterval(()=>{w({type:"pong",timestamp:Date.now()})},15e3),v();break;case"trigger-debugger":{import("node:inspector").then(a=>(a.open(),l.log("Node debugger attached. Open chrome://inspect in Chrome to start debugging."),import("./events-FDA3W5FN.js"))).then(({appEvents:a,AppEvent:p,TransientMessageType:g})=>{a.emit(p.TransientMessage,{message:"Debugger attached from DevTools.",type:g.Hint})}).catch(a=>l.debug("Failed to trigger debugger:",a));break}case"ping":w({type:"pong",timestamp:Date.now()});break;default:break}},w=f=>{i&&i.readyState===N.OPEN&&i.send(JSON.stringify(f))},b=(f,a)=>{let p={type:f,payload:a,sessionId:h||o.getSessionId(),timestamp:Date.now()};if(!i||i.readyState!==N.OPEN||!r.isNetworkLoggingEnabled()){n.push(p),n.length>oe&&n.shift();return}w(p)},v=()=>{if(!i||i.readyState!==N.OPEN||!r.isNetworkLoggingEnabled())return;let{network:f,console:a}=r.drainBufferedLogs(),p=[...f.map(g=>({type:"network",payload:g,timestamp:"timestamp"in g&&g.timestamp?g.timestamp:Date.now()})),...a.map(g=>({type:"console",payload:g,timestamp:g.timestamp}))].sort((g,I)=>g.timestamp-I.timestamp);l.debug(`Flushing ${p.length} initial buffered logs and ${n.length} transport buffered logs...`);for(let g of p)w({type:g.type,payload:g.payload,sessionId:h||o.getSessionId(),timestamp:Date.now()});for(;n.length>0;){let g=n.shift();w(g)}},T=()=>{c&&(clearInterval(c),c=null),i=null},d=()=>{if(!u){if(y++,y>L&&s){l.debug(`WebSocket reconnect failed after ${L} attempts, promoting to server...`),s();return}u=setTimeout(()=>{u=null,l.debug("Reconnecting WebSocket..."),k()},1e3)}};k(),r.on("console",f=>b("console",f)),r.on("network",f=>b("network",f)),r.on("network-logging-enabled",()=>{l.debug("Network logging enabled, flushing buffer..."),v()}),process.on("exit",()=>{u&&clearTimeout(u),i&&i.close(),T()})}var V=!1;function ne(r){V||(V=!0,W.on(F.ConsoleLog,e=>{r.logConsole(e)}))}function $(r,e){let t=E.getInstance();t.enable(),e.mode==="network"?(X(t,e.host,e.port,r,e.onReconnectFailed),t.enableNetworkLogging()):e.mode==="file"&&se(t,r,e.filePath),ne(t)}function x(r,e,t,o){let s=E.getInstance();X(s,e,t,r,o)}var D=25417,q="127.0.0.1",Y=3,U=0,R=null,P=null;function Z(r,e){return new Promise(t=>{let o=new N(`ws://${r}:${e}/ws`),s=setTimeout(()=>{o.close(),t(!1)},500);o.on("open",()=>{clearTimeout(s),o.close(),t(!0)}),o.on("error",()=>{clearTimeout(s),o.close(),t(!1)})})}async function K(r,e){let o=(await import("@google/gemini-cli-devtools")).DevTools.getInstance(),s=await o.start(),n=o.getPort();return n===e?(l.log(`DevTools available at: ${s}`),{host:r,port:n}):await Z(r,e)?(await o.stop(),l.log(`DevTools (existing) at: http://${r}:${e}`),{host:r,port:e}):(l.log(`DevTools available at: ${s}`),{host:r,port:n})}async function Q(r){if(U++,U>Y){l.debug(`Giving up on DevTools promotion after ${Y} attempts`);return}try{let e=await K(q,D);x(r,e.host,e.port,()=>Q(r))}catch(e){l.debug("Failed to promote to DevTools server:",e)}}function ke(r){let e=process.env.GEMINI_CLI_ACTIVITY_LOG_TARGET;if(e){if(!r.storage)return;$(r,{mode:"file",filePath:e})}else $(r,{mode:"buffer"})}function ie(r){return P?Promise.resolve(P):R||(R=ae(r).catch(e=>{throw R=null,e}),R)}async function ae(r){let e=()=>Q(r),t=await Z(q,D),o=q,s=D;if(t)l.log(`DevTools (existing) at: http://${q}:${D}`);else try{let u=await K(q,D);o=u.host,s=u.port}catch(u){throw l.debug("Failed to start DevTools:",u),u}x(r,o,s,e),E.getInstance().enableNetworkLogging();let i=`http://localhost:${s}`;return P=i,i}async function ve(r,e,t,o){if(e){t();return}try{let{openBrowserSecurely:s,shouldLaunchBrowser:n}=await import("./dist-OHEMBVSW.js"),i=await ie(r);if(n())try{await s(i);return}catch(u){l.warn("Failed to open browser securely:",u)}o()}catch(s){o(),l.error("Failed to start DevTools server:",s)}}function Le(){U=0,R=null,P=null}export{Le as resetForTesting,ke as setupInitialActivityLogger,ie as startDevToolsServer,ve as toggleDevToolsPanel};
2
+ import"./chunk-VJITGXD7.js";import{b as l,qe as F,se as W}from"./chunk-7I5Y2LVR.js";import{b as N}from"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";import _ from"node:http";import z from"node:https";import G from"node:zlib";import C from"node:fs";import J from"node:path";import{EventEmitter as te}from"node:events";var M="x-activity-request-id",oe=100;function re(r){return!Array.isArray(r)}function A(r){return typeof r=="object"&&r!==null&&!(r instanceof URL)&&!Array.isArray(r)}function O(r){return typeof r=="function"}function H(r,e){if(e.length===0)return r({});if(e.length===1){let t=e[0];return typeof t=="string"||t instanceof URL||A(t)?r(t):r({})}if(e.length===2){let t=e[0],o=e[1];if((typeof t=="string"||t instanceof URL)&&(O(o)||A(o))||A(t)&&O(o))return r(t,o)}if(e.length===3){let t=e[0],o=e[1],s=e[2];if((typeof t=="string"||t instanceof URL)&&A(o)&&O(s))return r(t,o,s)}return r({})}var E=class r extends te{static instance;isInterceptionEnabled=!1;requestStartTimes=new Map;networkLoggingEnabled=!1;networkBufferMap=new Map;networkBufferIds=[];consoleBuffer=[];bufferLimit=10;static getInstance(){return r.instance||(r.instance=new r),r.instance}enableNetworkLogging(){this.networkLoggingEnabled=!0,this.emit("network-logging-enabled")}disableNetworkLogging(){this.networkLoggingEnabled=!1}isNetworkLoggingEnabled(){return this.networkLoggingEnabled}drainBufferedLogs(){let e=[];for(let o of this.networkBufferIds){let s=this.networkBufferMap.get(o);s&&e.push(...s)}let t=[...this.consoleBuffer];return this.networkBufferMap.clear(),this.networkBufferIds=[],this.consoleBuffer=[],{network:e,console:t}}getBufferedLogs(){let e=[];for(let t of this.networkBufferIds){let o=this.networkBufferMap.get(t);o&&e.push(...o)}return{network:e,console:[...this.consoleBuffer]}}clearBufferedLogs(){this.networkBufferMap.clear(),this.networkBufferIds=[],this.consoleBuffer=[]}stringifyHeaders(e){let t={};if(!e)return t;if(e instanceof Headers)e.forEach((o,s)=>{t[s.toLowerCase()]=o});else if(typeof e=="object"&&e!==null)for(let[o,s]of Object.entries(e))t[o.toLowerCase()]=Array.isArray(s)?s.join(", "):String(s);return t}sanitizeNetworkLog(e){if(!e||typeof e!="object")return e;let t={...e};if("headers"in t&&t.headers){let o={...t.headers};for(let s of Object.keys(o))["authorization","cookie","x-goog-api-key"].includes(s.toLowerCase())&&(o[s]="[REDACTED]");t.headers=o}if("response"in t&&t.response?.headers){let o={...t.response.headers};for(let s of Object.keys(o))["set-cookie"].includes(s.toLowerCase())&&(o[s]="[REDACTED]");t.response={...t.response,headers:o}}return t}emitNetworkEvent(e){this.safeEmitNetwork(e)}safeEmitNetwork(e){let t=this.sanitizeNetworkLog(e),o=t.id;if(!this.networkBufferMap.has(o)&&(this.networkBufferIds.push(o),this.networkBufferMap.set(o,[]),this.networkBufferIds.length>this.bufferLimit)){let s=this.networkBufferIds.shift();this.networkBufferMap.delete(s)}this.networkBufferMap.get(o).push(t),this.emit("network",t)}enable(){this.isInterceptionEnabled||(this.isInterceptionEnabled=!0,this.patchGlobalFetch(),this.patchNodeHttp())}patchGlobalFetch(){if(!global.fetch)return;let e=global.fetch;global.fetch=async(t,o)=>{let s=typeof t=="string"?t:t instanceof URL?t.toString():t.url;if(s.includes("127.0.0.1")||s.includes("localhost"))return e(t,o);let n=Math.random().toString(36).substring(7),i=typeof t=="object"&&"method"in t?t.method:void 0,u=typeof t=="object"&&"headers"in t?t.headers:void 0,h=(o?.method??i??"GET").toUpperCase(),c=new Headers(o?.headers??u??{});c.set(M,n);let y={...o,method:h,headers:c},L="",k=y.body;k&&(typeof k=="string"?L=k:k instanceof URLSearchParams&&(L=k.toString())),this.requestStartTimes.set(n,Date.now()),this.safeEmitNetwork({id:n,timestamp:Date.now(),method:h,url:s,headers:this.stringifyHeaders(y.headers),body:L,pending:!0});try{let m=await e(t,y),w=m.clone();if(w.body){let b=w.body.getReader(),v=new TextDecoder,T=[],d=0;(async()=>{try{for(;;){let{done:g,value:I}=await b.read();if(g)break;let S=v.decode(I,{stream:!0});T.push(S),this.safeEmitNetwork({id:n,pending:!0,chunk:{index:d++,data:S,timestamp:Date.now()}})}let a=this.requestStartTimes.get(n),p=a?Date.now()-a:0;this.requestStartTimes.delete(n),this.safeEmitNetwork({id:n,pending:!1,response:{status:m.status,headers:this.stringifyHeaders(m.headers),body:T.join(""),durationMs:p}})}catch(a){let p=a instanceof Error?a.message:String(a);this.safeEmitNetwork({id:n,pending:!1,error:`Failed to read response body: ${p}`})}})()}else w.text().then(b=>{let v=this.requestStartTimes.get(n),T=v?Date.now()-v:0;this.requestStartTimes.delete(n),this.safeEmitNetwork({id:n,pending:!1,response:{status:m.status,headers:this.stringifyHeaders(m.headers),body:b,durationMs:T}})}).catch(b=>{let v=b instanceof Error?b.message:String(b);this.safeEmitNetwork({id:n,pending:!1,error:`Failed to read response body: ${v}`})});return m}catch(m){this.requestStartTimes.delete(n);let w=m instanceof Error?m.message:String(m);throw this.safeEmitNetwork({id:n,pending:!1,error:w}),m}}}patchNodeHttp(){let e=this,t=_.request,o=z.request,s=(n,i,u)=>{let h=i[0],c;typeof h=="string"||h instanceof URL?c=h:h&&typeof h=="object"?c=A(h)?h:{}:c={};let y="";if(typeof c=="string"?y=c:c instanceof URL?y=c.href:y=("href"in c&&typeof c.href=="string"?c.href:"")||`${u}//${c.hostname||c.host||"localhost"}${c.path||"/"}`,y.includes("127.0.0.1")||y.includes("localhost"))return H(n,i);let L=typeof c=="object"&&c!==null&&!(c instanceof URL)?c.headers:void 0,k={};if(L&&re(L)&&(k=L),k[M])return delete k[M],H(n,i);let m=Math.random().toString(36).substring(7);this.requestStartTimes.set(m,Date.now());let w=H(n,i),b=[],v=w.write,T=w.end;return w.write=function(d,...f){if(d){let a=f[0],p=typeof a=="string"&&Buffer.isEncoding(a)?a:void 0;b.push(Buffer.isBuffer(d)?d:typeof d=="string"?Buffer.from(d,p):Buffer.from(d instanceof Uint8Array?d:String(d)))}return v.apply(this,[d,...f])},w.end=function(d,...f){let a=typeof d=="function"?void 0:d;if(a){let g=f[0],I=typeof g=="string"&&Buffer.isEncoding(g)?g:void 0;b.push(Buffer.isBuffer(a)?a:typeof a=="string"?Buffer.from(a,I):Buffer.from(a instanceof Uint8Array?a:String(a)))}let p=Buffer.concat(b).toString("utf8");return e.safeEmitNetwork({id:m,timestamp:Date.now(),method:w.method||"GET",url:y,headers:e.stringifyHeaders(w.getHeaders()),body:p,pending:!0}),T.apply(this,[d,...f])},w.on("response",d=>{let f=[],a=0;d.on("data",p=>{let g=Buffer.from(p);f.push(g),e.safeEmitNetwork({id:m,pending:!0,chunk:{index:a++,data:g.toString("utf8"),timestamp:Date.now()}})}),d.on("end",()=>{let p=Buffer.concat(f),g=d.headers["content-encoding"],I=S=>{let B=S.toString("utf8"),j=e.requestStartTimes.get(m),ee=j?Date.now()-j:0;e.requestStartTimes.delete(m),e.safeEmitNetwork({id:m,pending:!1,response:{status:d.statusCode||0,headers:e.stringifyHeaders(d.headers),body:B,durationMs:ee}})};g==="gzip"?G.gunzip(p,(S,B)=>{I(S?p:B)}):g==="deflate"?G.inflate(p,(S,B)=>{I(S?p:B)}):I(p)})}),w.on("error",d=>{e.requestStartTimes.delete(m);let f=d.message;e.safeEmitNetwork({id:m,pending:!1,error:f})}),w};Object.defineProperty(_,"request",{value:(n,i,u)=>s(t,u!==void 0?[n,i,u]:i!==void 0?[n,i]:[n],"http:"),writable:!0,configurable:!0}),Object.defineProperty(z,"request",{value:(n,i,u)=>s(o,u!==void 0?[n,i,u]:i!==void 0?[n,i]:[n],"https:"),writable:!0,configurable:!0})}logConsole(e){let t={...e,timestamp:Date.now()};this.consoleBuffer.push(t),this.consoleBuffer.length>this.bufferLimit&&this.consoleBuffer.shift(),this.emit("console",t)}};function se(r,e,t){let o=t||(e.storage?J.join(e.storage.getProjectTempLogsDir(),`session-${e.getSessionId()}.jsonl`):null);if(!o)return;let s=J.dirname(o);C.existsSync(s)||C.mkdirSync(s,{recursive:!0});let n=(i,u)=>{try{let h=JSON.stringify({type:i,payload:u,sessionId:e.getSessionId(),timestamp:Date.now()})+`
3
+ `;C.promises.appendFile(o,h).catch(c=>{l.error("Failed to write to activity log:",c)})}catch(h){l.error("Failed to prepare activity log entry:",h)}};r.on("console",i=>n("console",i)),r.on("network",i=>n("network",i))}function X(r,e,t,o,s){let n=[],i=null,u=null,h=null,c=null,y=0,L=2,k=()=>{try{i=new N(`ws://${e}:${t}/ws`),i.on("open",()=>{l.debug(`WebSocket connected to ${e}:${t}`),y=0,w({type:"register",sessionId:o.getSessionId(),timestamp:Date.now()})}),i.on("message",f=>{try{let a=JSON.parse(f.toString());typeof a=="object"&&a!==null&&"type"in a&&typeof a.type=="string"&&m({type:a.type,sessionId:"sessionId"in a&&typeof a.sessionId=="string"?a.sessionId:void 0})}catch(a){l.debug("Invalid WebSocket message:",a)}}),i.on("close",()=>{l.debug(`WebSocket disconnected from ${e}:${t}`),T(),d()}),i.on("error",f=>{l.debug("WebSocket error:",f)})}catch(f){l.debug("Failed to connect WebSocket:",f),d()}},m=f=>{switch(f.type){case"registered":h=f.sessionId||null,l.debug(`WebSocket session registered: ${h}`),c&&clearInterval(c),c=setInterval(()=>{w({type:"pong",timestamp:Date.now()})},15e3),v();break;case"trigger-debugger":{import("node:inspector").then(a=>(a.open(),l.log("Node debugger attached. Open chrome://inspect in Chrome to start debugging."),import("./events-FDA3W5FN.js"))).then(({appEvents:a,AppEvent:p,TransientMessageType:g})=>{a.emit(p.TransientMessage,{message:"Debugger attached from DevTools.",type:g.Hint})}).catch(a=>l.debug("Failed to trigger debugger:",a));break}case"ping":w({type:"pong",timestamp:Date.now()});break;default:break}},w=f=>{i&&i.readyState===N.OPEN&&i.send(JSON.stringify(f))},b=(f,a)=>{let p={type:f,payload:a,sessionId:h||o.getSessionId(),timestamp:Date.now()};if(!i||i.readyState!==N.OPEN||!r.isNetworkLoggingEnabled()){n.push(p),n.length>oe&&n.shift();return}w(p)},v=()=>{if(!i||i.readyState!==N.OPEN||!r.isNetworkLoggingEnabled())return;let{network:f,console:a}=r.drainBufferedLogs(),p=[...f.map(g=>({type:"network",payload:g,timestamp:"timestamp"in g&&g.timestamp?g.timestamp:Date.now()})),...a.map(g=>({type:"console",payload:g,timestamp:g.timestamp}))].sort((g,I)=>g.timestamp-I.timestamp);l.debug(`Flushing ${p.length} initial buffered logs and ${n.length} transport buffered logs...`);for(let g of p)w({type:g.type,payload:g.payload,sessionId:h||o.getSessionId(),timestamp:Date.now()});for(;n.length>0;){let g=n.shift();w(g)}},T=()=>{c&&(clearInterval(c),c=null),i=null},d=()=>{if(!u){if(y++,y>L&&s){l.debug(`WebSocket reconnect failed after ${L} attempts, promoting to server...`),s();return}u=setTimeout(()=>{u=null,l.debug("Reconnecting WebSocket..."),k()},1e3)}};k(),r.on("console",f=>b("console",f)),r.on("network",f=>b("network",f)),r.on("network-logging-enabled",()=>{l.debug("Network logging enabled, flushing buffer..."),v()}),process.on("exit",()=>{u&&clearTimeout(u),i&&i.close(),T()})}var V=!1;function ne(r){V||(V=!0,W.on(F.ConsoleLog,e=>{r.logConsole(e)}))}function $(r,e){let t=E.getInstance();t.enable(),e.mode==="network"?(X(t,e.host,e.port,r,e.onReconnectFailed),t.enableNetworkLogging()):e.mode==="file"&&se(t,r,e.filePath),ne(t)}function x(r,e,t,o){let s=E.getInstance();X(s,e,t,r,o)}var D=25417,q="127.0.0.1",Y=3,U=0,R=null,P=null;function Z(r,e){return new Promise(t=>{let o=new N(`ws://${r}:${e}/ws`),s=setTimeout(()=>{o.close(),t(!1)},500);o.on("open",()=>{clearTimeout(s),o.close(),t(!0)}),o.on("error",()=>{clearTimeout(s),o.close(),t(!1)})})}async function K(r,e){let o=(await import("@google/gemini-cli-devtools")).DevTools.getInstance(),s=await o.start(),n=o.getPort();return n===e?(l.log(`DevTools available at: ${s}`),{host:r,port:n}):await Z(r,e)?(await o.stop(),l.log(`DevTools (existing) at: http://${r}:${e}`),{host:r,port:e}):(l.log(`DevTools available at: ${s}`),{host:r,port:n})}async function Q(r){if(U++,U>Y){l.debug(`Giving up on DevTools promotion after ${Y} attempts`);return}try{let e=await K(q,D);x(r,e.host,e.port,()=>Q(r))}catch(e){l.debug("Failed to promote to DevTools server:",e)}}function ke(r){let e=process.env.GEMINI_CLI_ACTIVITY_LOG_TARGET;if(e){if(!r.storage)return;$(r,{mode:"file",filePath:e})}else $(r,{mode:"buffer"})}function ie(r){return P?Promise.resolve(P):R||(R=ae(r).catch(e=>{throw R=null,e}),R)}async function ae(r){let e=()=>Q(r),t=await Z(q,D),o=q,s=D;if(t)l.log(`DevTools (existing) at: http://${q}:${D}`);else try{let u=await K(q,D);o=u.host,s=u.port}catch(u){throw l.debug("Failed to start DevTools:",u),u}x(r,o,s,e),E.getInstance().enableNetworkLogging();let i=`http://localhost:${s}`;return P=i,i}async function ve(r,e,t,o){if(e){t();return}try{let{openBrowserSecurely:s,shouldLaunchBrowser:n}=await import("./dist-3KXWDUDH.js"),i=await ie(r);if(n())try{await s(i);return}catch(u){l.warn("Failed to open browser securely:",u)}o()}catch(s){o(),l.error("Failed to start DevTools server:",s)}}function Le(){U=0,R=null,P=null}export{Le as resetForTesting,ke as setupInitialActivityLogger,ie as startDevToolsServer,ve as toggleDevToolsPanel};
4
4
  /**
5
5
  * @license
6
6
  * Copyright 2025 Google LLC