makecoder 2.0.83 → 2.0.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cc.mjs +2330 -2160
- package/dist/coder.js +1 -1
- package/dist/gemini/{chunk-UYYXENF2.js → chunk-N65OKFPD.js} +2 -2
- package/dist/gemini/{chunk-L5FDAQJS.js → chunk-OQXPTUY4.js} +2 -2
- package/dist/gemini/{chunk-CTQJGFLJ.js → chunk-SHBVCB2A.js} +2 -2
- package/dist/gemini/{chunk-EBB2IYKE.js → chunk-XQZDLC2N.js} +2 -2
- package/dist/gemini/{core-B3NSJHXB.js → core-Z5ENWQRR.js} +1 -1
- package/dist/gemini/{devtoolsService-LHW3U2EN.js → devtoolsService-DZHZEYLP.js} +2 -2
- package/dist/gemini/{devtoolsService-AGS6ID67.js → devtoolsService-YLSPJ5JS.js} +2 -2
- package/dist/gemini/{dist-EZT2EOAT.js → dist-POYVVULD.js} +1 -1
- package/dist/gemini/gemini.js +4 -4
- package/dist/gemini/{interactiveCli-FGI25PZI.js → interactiveCli-4ATZBGMY.js} +2 -2
- package/dist/gemini/{interactiveCli-NC2XXIRS.js → interactiveCli-F574EI4I.js} +2 -2
- package/dist/gemini/{oauth2-provider-HTOFGZYE.js → oauth2-provider-HPBKDSMW.js} +1 -1
- package/dist/gemini/{oauth2-provider-VD7VX4RN.js → oauth2-provider-XYD42NPZ.js} +1 -1
- package/package.json +4 -4
- /package/dist/gemini/{tree-sitter-JU2EI3Z2.js → tree-sitter-NXEUY244.js} +0 -0
- /package/dist/gemini/{tree-sitter-bash-IAB7XJEE.js → tree-sitter-bash-CUUXV34I.js} +0 -0
|
@@ -814,7 +814,7 @@ ${s}
|
|
|
814
814
|
|
|
815
815
|
... [${u.toLocaleString()} characters omitted] ...
|
|
816
816
|
|
|
817
|
-
${c}`}var wvr="tool-outputs";async function _S(t,e,r,n,o){let s=wu(e).toLowerCase(),c=wu(r.toString()).toLowerCase(),u=c.startsWith(s)?`${c}.txt`:`${s}_${c}.txt`,d=Cu.join(n,wvr);if(o){let a=wu(o);d=Cu.join(d,`session-${a}`)}let l=Cu.join(d,u);return await Xw.mkdir(d,{recursive:!0}),await Xw.writeFile(l,t),{outputFile:l}}async function EZe(t,e){await Ga();let r=[t,...e].join(" "),n=xu(r),o=vA(n).filter(s=>s!=="shopt"&&s!=="set");return o.length>0?o[0]:yq.basename(t)}function tx(t){return typeof t=="string"?t:"pattern"in t?t.pattern:"op"in t?t.op:("comment"in t,"")}var rh=["run_shell_command","ShellTool"];async function vZe(t){if(yq.isAbsolute(t))try{return await gq.promises.access(t,gq.constants.X_OK),t}catch{return}let e=(process.env.PATH||"").split(yq.delimiter),r=mZe.platform()==="win32"?[".exe",".cmd",".bat",""]:[""];for(let n of e)for(let o of r){let s=yq.join(n,t+o);try{return await gq.promises.access(s,gq.constants.X_OK),s}catch{continue}}}var vS=null,mq=null,ex=null,Aq=class extends Error{constructor(e){super(`Failed to initialize bash parser: ${e.message}`,{cause:e}),this.name="ShellParserInitializationError"}};function Ovr(t){return t instanceof Error?t:typeof t=="string"?new Error(t):new Error("Unknown tree-sitter initialization error",{cause:t})}async function Ivr(){try{ex=null;let[t,e]=await Promise.all([ome(()=>import("./tree-sitter-
|
|
817
|
+
${c}`}var wvr="tool-outputs";async function _S(t,e,r,n,o){let s=wu(e).toLowerCase(),c=wu(r.toString()).toLowerCase(),u=c.startsWith(s)?`${c}.txt`:`${s}_${c}.txt`,d=Cu.join(n,wvr);if(o){let a=wu(o);d=Cu.join(d,`session-${a}`)}let l=Cu.join(d,u);return await Xw.mkdir(d,{recursive:!0}),await Xw.writeFile(l,t),{outputFile:l}}async function EZe(t,e){await Ga();let r=[t,...e].join(" "),n=xu(r),o=vA(n).filter(s=>s!=="shopt"&&s!=="set");return o.length>0?o[0]:yq.basename(t)}function tx(t){return typeof t=="string"?t:"pattern"in t?t.pattern:"op"in t?t.op:("comment"in t,"")}var rh=["run_shell_command","ShellTool"];async function vZe(t){if(yq.isAbsolute(t))try{return await gq.promises.access(t,gq.constants.X_OK),t}catch{return}let e=(process.env.PATH||"").split(yq.delimiter),r=mZe.platform()==="win32"?[".exe",".cmd",".bat",""]:[""];for(let n of e)for(let o of r){let s=yq.join(n,t+o);try{return await gq.promises.access(s,gq.constants.X_OK),s}catch{continue}}}var vS=null,mq=null,ex=null,Aq=class extends Error{constructor(e){super(`Failed to initialize bash parser: ${e.message}`,{cause:e}),this.name="ShellParserInitializationError"}};function Ovr(t){return t instanceof Error?t:typeof t=="string"?new Error(t):new Error("Unknown tree-sitter initialization error",{cause:t})}async function Ivr(){try{ex=null;let[t,e]=await Promise.all([ome(()=>import("./tree-sitter-NXEUY244.js"),"web-tree-sitter/tree-sitter.wasm"),ome(()=>import("./tree-sitter-bash-CUUXV34I.js"),"tree-sitter-bash/tree-sitter-bash.wasm")]);await tme.init({wasmBinary:t}),vS=await eme.load(e)}catch(t){vS=null;let e=Ovr(t),r=e instanceof Aq?e:new Aq(e);throw ex=r,r}}async function Ga(){mq||(mq=Ivr().catch(t=>{mq=null,U.debug("Failed to initialize shell parsers:",t)})),await mq}var bZe="__GCLI_POWERSHELL_COMMAND__",Rvr=1e3*1e3,Pvr=Buffer.from(`
|
|
818
818
|
$ErrorActionPreference = 'Stop'
|
|
819
819
|
$commandText = $env:${bZe}
|
|
820
820
|
if ([string]::IsNullOrEmpty($commandText)) {
|
|
@@ -2895,7 +2895,7 @@ When adding a memory, route it to the right store:
|
|
|
2895
2895
|
# Insufficient context
|
|
2896
2896
|
If you find that you have insufficient context to read or modify the memories as described,
|
|
2897
2897
|
reply with what you need, and exit. Do not search the codebase for the missing context.
|
|
2898
|
-
`.trim();return{kind:"local",name:"save_memory",displayName:"Memory Manager",description:"Writes and reads memory, preferences or facts across ALL future sessions. Use this for recurring instructions like coding styles or tool aliases.",inputConfig:{inputSchema:{type:"object",properties:{request:{type:"string",description:'The memory operation to perform. Examples: "Remember that I prefer tabs over spaces", "Clean up stale memories", "De-duplicate my memories", "Organize my memories".'}},required:["request"]}},outputConfig:{outputName:"result",description:"A summary of the memory operations performed.",schema:E_i},modelConfig:{model:Vw},toolConfig:{tools:[ci,Pl,Rl,Hw,Il,bi,xo]},get promptConfig(){return{systemPrompt:n(),query:`${r()}\${request}`}},runConfig:{maxTimeMinutes:5,maxTurns:10}}};var Lf=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 Kpr=6e4;async function Ib(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 U.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");U.debug("[AuthValueResolver] Executing command for auth value");let r=EA();try{let{stdout:n}=await Dl(r.executable,[...r.argsPrefix,e],{signal:AbortSignal.timeout(Kpr),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 ${Kpr/1e3} seconds`):n}}return t}function Xpr(t){return t.startsWith("$")||t.startsWith("!")}var __i="X-API-Key",Mde=class extends Lf{constructor(r){super();this.config=r;this.headerName=r.name??__i}type="apiKey";resolvedKey;headerName;async initialize(){Xpr(this.config.key)?(this.resolvedKey=await Ib(this.config.key),U.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(r,n){if(n.status!==401&&n.status!==403){this.authRetryCount=0;return}if(!(!this.config.key.startsWith("!")||this.config.key.startsWith("!!"))&&!(this.authRetryCount>=Lf.MAX_AUTH_RETRIES))return this.authRetryCount++,U.debug("[ApiKeyAuthProvider] Re-resolving API key after auth failure"),this.resolvedKey=await Ib(this.config.key),this.headers()}};var Bde=class extends Lf{constructor(r){super();this.config=r}type="http";resolvedToken;resolvedUsername;resolvedPassword;resolvedValue;async initialize(){let r=this.config;"token"in r?this.resolvedToken=await Ib(r.token):"username"in r?(this.resolvedUsername=await Ib(r.username),this.resolvedPassword=await Ib(r.password)):this.resolvedValue=await Ib(r.value),U.debug(`[HttpAuthProvider] Initialized with scheme: ${this.config.scheme}`)}async headers(){let r=this.config;if("token"in r){if(!this.resolvedToken)throw new Error("HttpAuthProvider not initialized");return{Authorization:`Bearer ${this.resolvedToken}`}}if("username"in r){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:`${r.scheme} ${this.resolvedValue}`}}async shouldRetryWithHeaders(r,n){if(n.status===401||n.status===403){if(this.authRetryCount>=Lf.MAX_AUTH_RETRIES)return;U.debug("[HttpAuthProvider] Re-resolving values after auth failure"),await this.initialize()}return super.shouldRetryWithHeaders(r,n)}};var Zpr=Me(Jo(),1);var Aw=class extends Error{constructor(e){super(e),this.name="ResourceMismatchError"}},MN=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 U.debug(`Failed to fetch protected resource metadata from ${e}: ${be(r)}`),null}}static async fetchAuthorizationServerMetadata(e){try{let r=await fetch(e);return r.ok?await r.json():null}catch(r){return U.debug(`Failed to fetch authorization server metadata from ${e}: ${be(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 U.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 Aw(`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&&U.log("Dynamic client registration is supported at:",c.registration_endpoint),u}}U.debug(`Trying OAuth discovery fallback at ${e}`);let o=await this.discoverAuthorizationServerMetadata(e);if(o){let s=this.metadataToOAuthConfig(o);return o.registration_endpoint&&U.log("Dynamic client registration is supported at:",o.registration_endpoint),s}return null}catch(r){if(r instanceof Aw)throw r;return U.debug(`Failed to discover OAuth configuration: ${be(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 Aw(`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){U.error("Failed to parse ID token for expiry time with error:",r)}}};var efr=/^(.*\.)?run\.app$/,v_i=[/^.+\.googleapis\.com$/,efr],Ude=class extends Lf{constructor(r,n){super();this.config=r;if(!n)throw new Error("targetUrl must be provided to GoogleCredentialsAuthProvider to determine token audience.");let o=new URL(n).hostname;if(efr.test(o)&&(this.useIdToken=!0),this.audience=o,!this.useIdToken&&!v_i.some(u=>u.test(o)))throw new Error(`Host "${o}" is not an allowed host for Google Credential provider.`);let c=this.config.scopes&&this.config.scopes.length>0?this.config.scopes:["https://www.googleapis.com/auth/cloud-platform"];this.auth=new Zpr.GoogleAuth({scopes:c})}type="google-credentials";auth;useIdToken=!1;audience;cachedToken;tokenExpiryTime;async initialize(){}async headers(){if(this.cachedToken&&this.tokenExpiryTime&&Date.now()<this.tokenExpiryTime-MN)return{Authorization:`Bearer ${this.cachedToken}`};if(this.cachedToken=void 0,this.tokenExpiryTime=void 0,this.useIdToken)try{let n=await(await this.auth.getIdTokenClient(this.audience)).idTokenProvider.fetchIdToken(this.audience),o=_s.parseTokenExpiry(n);return o&&(this.tokenExpiryTime=o,this.cachedToken=n),{Authorization:`Bearer ${n}`}}catch(r){let n=`Failed to get ADC ID token: ${r instanceof Error?r.message:String(r)}`;throw U.error(n,r),new Error(n)}try{let r=await this.auth.getClient(),n=await r.getAccessToken();if(n.token){this.cachedToken=n.token;let o=r.credentials;return o.expiry_date&&(this.tokenExpiryTime=o.expiry_date),{Authorization:`Bearer ${n.token}`}}throw new Error("Failed to retrieve ADC access token.")}catch(r){let n=`Failed to get ADC access token: ${r instanceof Error?r.message:String(r)}`;throw U.error(n,r),new Error(n)}}async shouldRetryWithHeaders(r,n){if(n.status!==401&&n.status!==403){this.authRetryCount=0;return}if(!(this.authRetryCount>=Lf.MAX_AUTH_RETRIES))return this.authRetryCount++,U.debug("[GoogleCredentialsAuthProvider] Re-fetching token after auth failure"),this.cachedToken=void 0,this.tokenExpiryTime=void 0,this.headers()}};var Rb=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 Ude(n,e.targetUrl);return await s.initialize(),s}case"apiKey":{let s=new Mde(n);return await s.initialize(),s}case"http":{let s=new Bde(n);return await s.initialize(),s}case"oauth2":{let{OAuth2AuthProvider:s}=await import("./oauth2-provider-VD7VX4RN.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 _m=class extends Error{userMessage;agentName;constructor(e,r,n,o){super(r,o),this.name="A2AAgentError",this.agentName=e,this.userMessage=n}},pHe=class extends _m{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"}},Fde=class extends _m{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}},jde=class extends _m{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}},Qde=class extends _m{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 b_i(t){return typeof t=="object"&&t!==null}function S_i(t){let e=[],r=t,n=0,o=10;for(;r&&n<o;){if(b_i(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 tfr(t,e,r){let n=S_i(r);return/\b(ECONNREFUSED|ENOTFOUND|EHOSTUNREACH|ETIMEDOUT)\b/i.test(n)?new Qde(t,e,r):/\b404\b|\bnot[\s_-]?found\b/i.test(n)?new pHe(t,e):/\b401\b|unauthorized/i.test(n)?new Fde(t,e,401):/\b403\b|forbidden/i.test(n)?new Fde(t,e,403):new Qde(t,e,r)}function fHe(t){return`${t.name}-config`}var qde=class{constructor(e){this.config=e}agents=new Map;allDefinitions=new Map;builtInAgents=new Set;async initialize(){Ee.on("model-changed",this.onModelChanged),await this.loadAgents()}isBuiltIn(e){return this.builtInAgents.has(e)}onModelChanged=()=>{this.refreshAgents("local").catch(e=>{U.error("[AgentRegistry] Failed to refresh agents on model change:",e)})};async reload(){this.config.getA2AClientManager()?.clearCache(),await this.config.reloadAgents(),this.agents.clear(),this.allDefinitions.clear(),await this.loadAgents(),Ee.emitAgentsRefreshed()}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),Ee.emitAgentsRefreshed())}dispose(){Ee.off("model-changed",this.onModelChanged)}async loadAgents(){if(this.agents.clear(),this.allDefinitions.clear(),this.loadBuiltInAgents(),!this.config.isAgentsEnabled())return;let e=er.getUserAgentsDir(),r=await lHe(e);for(let s of r.errors)U.warn(`[AgentRegistry] Error loading user agent: ${s.message}`),Ee.emitFeedback("error",`Agent loading error: ${s.message}`);await Promise.allSettled(r.agents.map(async s=>{try{await this.registerAgent(s)}catch(c){U.warn(`[AgentRegistry] Error registering user agent "${s.name}":`,c),Ee.emitFeedback("error",`Error registering user agent "${s.name}": ${c instanceof Error?c.message:String(c)}`)}}));let n=this.config.getFolderTrust(),o=this.config.isTrustedFolder();if(!n||o){let s=this.config.storage.getProjectAgentsDir(),c=await lHe(s);for(let p of c.errors)Ee.emitFeedback("error",`Agent loading error: ${p.message}`);let u=this.config.getAcknowledgedAgentsService(),d=this.config.getProjectRoot(),l=[],a=[];for(let p of c.agents){if(p.kind==="remote"&&(p.metadata||(p.metadata={}),p.metadata.hash=p.agentCardUrl??(p.agentCardJson?rfr.createHash("sha256").update(p.agentCardJson).digest("hex"):void 0)),!p.metadata?.hash){a.push(p);continue}await u.isAcknowledged(d,p.name,p.metadata.hash)?a.push(p):l.push(p)}l.length>0&&Ee.emitAgentsDiscovered(l),await Promise.allSettled(a.map(async p=>{try{await this.registerAgent(p)}catch(f){U.warn(`[AgentRegistry] Error registering project agent "${p.name}":`,f),Ee.emitFeedback("error",`Error registering project agent "${p.name}": ${f instanceof Error?f.message:String(f)}`)}}))}else Ee.emitFeedback("info","Skipping project agents due to untrusted folder. To enable, ensure that the project root is trusted.");for(let s of this.config.getExtensions())s.isActive&&s.agents&&await Promise.allSettled(s.agents.map(async c=>{try{await this.registerAgent(c)}catch(u){U.warn(`[AgentRegistry] Error registering extension agent "${c.name}":`,u),Ee.emitFeedback("error",`Error registering extension agent "${c.name}": ${u instanceof Error?u.message:String(u)}`)}}));this.config.getDebugMode()&&U.log(`[AgentRegistry] Loaded with ${this.agents.size} agents.`)}loadBuiltInAgents(){let e=oue(this.config);this.builtInAgents.add(e.name),this.registerLocalAgent(e);let r=$pr(this.config);this.builtInAgents.add(r.name),this.registerLocalAgent(r);let n=zpr(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")Ee.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=Lde(this.config);this.builtInAgents.add(d.name),this.registerLocalAgent(d)}}if(this.config.isMemoryManagerEnabled()){this.registerLocalAgent(Jpr(this.config));try{let s=er.getGlobalGeminiDir();this.config.getWorkspaceContext().addDirectory(s)}catch(s){U.warn("[AgentRegistry] Could not add global .gemini directory to workspace:",s)}}}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){e.kind==="local"?this.registerLocalAgent(e):e.kind==="remote"&&await this.registerRemoteAgent(e)}registerLocalAgent(e){if(e.kind!=="local")return;if(!e.name||!e.description){U.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()&&U.log(`[AgentRegistry] Skipping disabled agent '${e.name}'`);return}this.agents.has(e.name)&&this.config.getDebugMode()&&U.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()&&U.log(`[AgentRegistry] User policy exists for '${e.name}', skipping dynamic registration.`);return}r.removeRulesForTool(e.name,"AgentRegistry (Dynamic)"),r.addRule({toolName:e.name,decision:e.kind==="local"?"allow":"ask_user",priority:CQ,source:"AgentRegistry (Dynamic)"})}}isAgentEnabled(e,r){let o=!(e.experimental===!0);return r&&r.enabled!==void 0&&(o=r.enabled),o}async registerRemoteAgent(e){if(e.kind!=="remote")return;if(!e.name){U.warn("[AgentRegistry] Skipping invalid agent definition. Missing name.");return}this.allDefinitions.set(e.name,e);let r=this.config.getAgentsSettings().overrides?.[e.name];if(!this.isAgentEnabled(e,r)){this.config.getDebugMode()&&U.log(`[AgentRegistry] Skipping disabled remote agent '${e.name}'`);return}this.agents.has(e.name)&&this.config.getDebugMode()&&U.log(`[AgentRegistry] Overriding agent '${e.name}'`);let n=e;n.originalDescription===void 0&&(n.originalDescription=n.description);try{let o=this.config.getA2AClientManager();if(!o){U.warn(`[AgentRegistry] Skipping remote agent '${e.name}': A2AClientManager is not available.`);return}let s=Cde(n),c;if(e.auth){let p=await Rb.create({authConfig:e.auth,agentName:e.name,targetUrl:s,agentCardUrl:n.agentCardUrl});if(!p)throw new Error(`Failed to create auth provider for agent '${e.name}'`);c=p}let u=await o.loadAgent(n.name,Tde(n),c);if(u.securitySchemes){let p=Rb.validateAuthConfig(e.auth,u.securitySchemes);if(!p.valid&&p.diff){let f=Rb.describeRequiredAuth(u.securitySchemes),g=new jde(e.name,f,p.diff.missingConfig);Ee.emitFeedback("warning",`[${e.name}] Agent requires authentication: ${f}`),U.warn(`[AgentRegistry] ${g.message}`)}}let d=n.originalDescription,l=u.description,a=[];if(d?.trim()&&a.push(`User Description: ${d.trim()}`),l?.trim()&&a.push(`Agent Description: ${l.trim()}`),u.skills&&u.skills.length>0){let p=u.skills.map(f=>`${f.name}: ${f.description||"No description provided"}`).join(`
|
|
2898
|
+
`.trim();return{kind:"local",name:"save_memory",displayName:"Memory Manager",description:"Writes and reads memory, preferences or facts across ALL future sessions. Use this for recurring instructions like coding styles or tool aliases.",inputConfig:{inputSchema:{type:"object",properties:{request:{type:"string",description:'The memory operation to perform. Examples: "Remember that I prefer tabs over spaces", "Clean up stale memories", "De-duplicate my memories", "Organize my memories".'}},required:["request"]}},outputConfig:{outputName:"result",description:"A summary of the memory operations performed.",schema:E_i},modelConfig:{model:Vw},toolConfig:{tools:[ci,Pl,Rl,Hw,Il,bi,xo]},get promptConfig(){return{systemPrompt:n(),query:`${r()}\${request}`}},runConfig:{maxTimeMinutes:5,maxTurns:10}}};var Lf=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 Kpr=6e4;async function Ib(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 U.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");U.debug("[AuthValueResolver] Executing command for auth value");let r=EA();try{let{stdout:n}=await Dl(r.executable,[...r.argsPrefix,e],{signal:AbortSignal.timeout(Kpr),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 ${Kpr/1e3} seconds`):n}}return t}function Xpr(t){return t.startsWith("$")||t.startsWith("!")}var __i="X-API-Key",Mde=class extends Lf{constructor(r){super();this.config=r;this.headerName=r.name??__i}type="apiKey";resolvedKey;headerName;async initialize(){Xpr(this.config.key)?(this.resolvedKey=await Ib(this.config.key),U.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(r,n){if(n.status!==401&&n.status!==403){this.authRetryCount=0;return}if(!(!this.config.key.startsWith("!")||this.config.key.startsWith("!!"))&&!(this.authRetryCount>=Lf.MAX_AUTH_RETRIES))return this.authRetryCount++,U.debug("[ApiKeyAuthProvider] Re-resolving API key after auth failure"),this.resolvedKey=await Ib(this.config.key),this.headers()}};var Bde=class extends Lf{constructor(r){super();this.config=r}type="http";resolvedToken;resolvedUsername;resolvedPassword;resolvedValue;async initialize(){let r=this.config;"token"in r?this.resolvedToken=await Ib(r.token):"username"in r?(this.resolvedUsername=await Ib(r.username),this.resolvedPassword=await Ib(r.password)):this.resolvedValue=await Ib(r.value),U.debug(`[HttpAuthProvider] Initialized with scheme: ${this.config.scheme}`)}async headers(){let r=this.config;if("token"in r){if(!this.resolvedToken)throw new Error("HttpAuthProvider not initialized");return{Authorization:`Bearer ${this.resolvedToken}`}}if("username"in r){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:`${r.scheme} ${this.resolvedValue}`}}async shouldRetryWithHeaders(r,n){if(n.status===401||n.status===403){if(this.authRetryCount>=Lf.MAX_AUTH_RETRIES)return;U.debug("[HttpAuthProvider] Re-resolving values after auth failure"),await this.initialize()}return super.shouldRetryWithHeaders(r,n)}};var Zpr=Me(Jo(),1);var Aw=class extends Error{constructor(e){super(e),this.name="ResourceMismatchError"}},MN=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 U.debug(`Failed to fetch protected resource metadata from ${e}: ${be(r)}`),null}}static async fetchAuthorizationServerMetadata(e){try{let r=await fetch(e);return r.ok?await r.json():null}catch(r){return U.debug(`Failed to fetch authorization server metadata from ${e}: ${be(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 U.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 Aw(`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&&U.log("Dynamic client registration is supported at:",c.registration_endpoint),u}}U.debug(`Trying OAuth discovery fallback at ${e}`);let o=await this.discoverAuthorizationServerMetadata(e);if(o){let s=this.metadataToOAuthConfig(o);return o.registration_endpoint&&U.log("Dynamic client registration is supported at:",o.registration_endpoint),s}return null}catch(r){if(r instanceof Aw)throw r;return U.debug(`Failed to discover OAuth configuration: ${be(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 Aw(`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){U.error("Failed to parse ID token for expiry time with error:",r)}}};var efr=/^(.*\.)?run\.app$/,v_i=[/^.+\.googleapis\.com$/,efr],Ude=class extends Lf{constructor(r,n){super();this.config=r;if(!n)throw new Error("targetUrl must be provided to GoogleCredentialsAuthProvider to determine token audience.");let o=new URL(n).hostname;if(efr.test(o)&&(this.useIdToken=!0),this.audience=o,!this.useIdToken&&!v_i.some(u=>u.test(o)))throw new Error(`Host "${o}" is not an allowed host for Google Credential provider.`);let c=this.config.scopes&&this.config.scopes.length>0?this.config.scopes:["https://www.googleapis.com/auth/cloud-platform"];this.auth=new Zpr.GoogleAuth({scopes:c})}type="google-credentials";auth;useIdToken=!1;audience;cachedToken;tokenExpiryTime;async initialize(){}async headers(){if(this.cachedToken&&this.tokenExpiryTime&&Date.now()<this.tokenExpiryTime-MN)return{Authorization:`Bearer ${this.cachedToken}`};if(this.cachedToken=void 0,this.tokenExpiryTime=void 0,this.useIdToken)try{let n=await(await this.auth.getIdTokenClient(this.audience)).idTokenProvider.fetchIdToken(this.audience),o=_s.parseTokenExpiry(n);return o&&(this.tokenExpiryTime=o,this.cachedToken=n),{Authorization:`Bearer ${n}`}}catch(r){let n=`Failed to get ADC ID token: ${r instanceof Error?r.message:String(r)}`;throw U.error(n,r),new Error(n)}try{let r=await this.auth.getClient(),n=await r.getAccessToken();if(n.token){this.cachedToken=n.token;let o=r.credentials;return o.expiry_date&&(this.tokenExpiryTime=o.expiry_date),{Authorization:`Bearer ${n.token}`}}throw new Error("Failed to retrieve ADC access token.")}catch(r){let n=`Failed to get ADC access token: ${r instanceof Error?r.message:String(r)}`;throw U.error(n,r),new Error(n)}}async shouldRetryWithHeaders(r,n){if(n.status!==401&&n.status!==403){this.authRetryCount=0;return}if(!(this.authRetryCount>=Lf.MAX_AUTH_RETRIES))return this.authRetryCount++,U.debug("[GoogleCredentialsAuthProvider] Re-fetching token after auth failure"),this.cachedToken=void 0,this.tokenExpiryTime=void 0,this.headers()}};var Rb=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 Ude(n,e.targetUrl);return await s.initialize(),s}case"apiKey":{let s=new Mde(n);return await s.initialize(),s}case"http":{let s=new Bde(n);return await s.initialize(),s}case"oauth2":{let{OAuth2AuthProvider:s}=await import("./oauth2-provider-XYD42NPZ.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 _m=class extends Error{userMessage;agentName;constructor(e,r,n,o){super(r,o),this.name="A2AAgentError",this.agentName=e,this.userMessage=n}},pHe=class extends _m{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"}},Fde=class extends _m{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}},jde=class extends _m{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}},Qde=class extends _m{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 b_i(t){return typeof t=="object"&&t!==null}function S_i(t){let e=[],r=t,n=0,o=10;for(;r&&n<o;){if(b_i(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 tfr(t,e,r){let n=S_i(r);return/\b(ECONNREFUSED|ENOTFOUND|EHOSTUNREACH|ETIMEDOUT)\b/i.test(n)?new Qde(t,e,r):/\b404\b|\bnot[\s_-]?found\b/i.test(n)?new pHe(t,e):/\b401\b|unauthorized/i.test(n)?new Fde(t,e,401):/\b403\b|forbidden/i.test(n)?new Fde(t,e,403):new Qde(t,e,r)}function fHe(t){return`${t.name}-config`}var qde=class{constructor(e){this.config=e}agents=new Map;allDefinitions=new Map;builtInAgents=new Set;async initialize(){Ee.on("model-changed",this.onModelChanged),await this.loadAgents()}isBuiltIn(e){return this.builtInAgents.has(e)}onModelChanged=()=>{this.refreshAgents("local").catch(e=>{U.error("[AgentRegistry] Failed to refresh agents on model change:",e)})};async reload(){this.config.getA2AClientManager()?.clearCache(),await this.config.reloadAgents(),this.agents.clear(),this.allDefinitions.clear(),await this.loadAgents(),Ee.emitAgentsRefreshed()}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),Ee.emitAgentsRefreshed())}dispose(){Ee.off("model-changed",this.onModelChanged)}async loadAgents(){if(this.agents.clear(),this.allDefinitions.clear(),this.loadBuiltInAgents(),!this.config.isAgentsEnabled())return;let e=er.getUserAgentsDir(),r=await lHe(e);for(let s of r.errors)U.warn(`[AgentRegistry] Error loading user agent: ${s.message}`),Ee.emitFeedback("error",`Agent loading error: ${s.message}`);await Promise.allSettled(r.agents.map(async s=>{try{await this.registerAgent(s)}catch(c){U.warn(`[AgentRegistry] Error registering user agent "${s.name}":`,c),Ee.emitFeedback("error",`Error registering user agent "${s.name}": ${c instanceof Error?c.message:String(c)}`)}}));let n=this.config.getFolderTrust(),o=this.config.isTrustedFolder();if(!n||o){let s=this.config.storage.getProjectAgentsDir(),c=await lHe(s);for(let p of c.errors)Ee.emitFeedback("error",`Agent loading error: ${p.message}`);let u=this.config.getAcknowledgedAgentsService(),d=this.config.getProjectRoot(),l=[],a=[];for(let p of c.agents){if(p.kind==="remote"&&(p.metadata||(p.metadata={}),p.metadata.hash=p.agentCardUrl??(p.agentCardJson?rfr.createHash("sha256").update(p.agentCardJson).digest("hex"):void 0)),!p.metadata?.hash){a.push(p);continue}await u.isAcknowledged(d,p.name,p.metadata.hash)?a.push(p):l.push(p)}l.length>0&&Ee.emitAgentsDiscovered(l),await Promise.allSettled(a.map(async p=>{try{await this.registerAgent(p)}catch(f){U.warn(`[AgentRegistry] Error registering project agent "${p.name}":`,f),Ee.emitFeedback("error",`Error registering project agent "${p.name}": ${f instanceof Error?f.message:String(f)}`)}}))}else Ee.emitFeedback("info","Skipping project agents due to untrusted folder. To enable, ensure that the project root is trusted.");for(let s of this.config.getExtensions())s.isActive&&s.agents&&await Promise.allSettled(s.agents.map(async c=>{try{await this.registerAgent(c)}catch(u){U.warn(`[AgentRegistry] Error registering extension agent "${c.name}":`,u),Ee.emitFeedback("error",`Error registering extension agent "${c.name}": ${u instanceof Error?u.message:String(u)}`)}}));this.config.getDebugMode()&&U.log(`[AgentRegistry] Loaded with ${this.agents.size} agents.`)}loadBuiltInAgents(){let e=oue(this.config);this.builtInAgents.add(e.name),this.registerLocalAgent(e);let r=$pr(this.config);this.builtInAgents.add(r.name),this.registerLocalAgent(r);let n=zpr(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")Ee.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=Lde(this.config);this.builtInAgents.add(d.name),this.registerLocalAgent(d)}}if(this.config.isMemoryManagerEnabled()){this.registerLocalAgent(Jpr(this.config));try{let s=er.getGlobalGeminiDir();this.config.getWorkspaceContext().addDirectory(s)}catch(s){U.warn("[AgentRegistry] Could not add global .gemini directory to workspace:",s)}}}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){e.kind==="local"?this.registerLocalAgent(e):e.kind==="remote"&&await this.registerRemoteAgent(e)}registerLocalAgent(e){if(e.kind!=="local")return;if(!e.name||!e.description){U.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()&&U.log(`[AgentRegistry] Skipping disabled agent '${e.name}'`);return}this.agents.has(e.name)&&this.config.getDebugMode()&&U.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()&&U.log(`[AgentRegistry] User policy exists for '${e.name}', skipping dynamic registration.`);return}r.removeRulesForTool(e.name,"AgentRegistry (Dynamic)"),r.addRule({toolName:e.name,decision:e.kind==="local"?"allow":"ask_user",priority:CQ,source:"AgentRegistry (Dynamic)"})}}isAgentEnabled(e,r){let o=!(e.experimental===!0);return r&&r.enabled!==void 0&&(o=r.enabled),o}async registerRemoteAgent(e){if(e.kind!=="remote")return;if(!e.name){U.warn("[AgentRegistry] Skipping invalid agent definition. Missing name.");return}this.allDefinitions.set(e.name,e);let r=this.config.getAgentsSettings().overrides?.[e.name];if(!this.isAgentEnabled(e,r)){this.config.getDebugMode()&&U.log(`[AgentRegistry] Skipping disabled remote agent '${e.name}'`);return}this.agents.has(e.name)&&this.config.getDebugMode()&&U.log(`[AgentRegistry] Overriding agent '${e.name}'`);let n=e;n.originalDescription===void 0&&(n.originalDescription=n.description);try{let o=this.config.getA2AClientManager();if(!o){U.warn(`[AgentRegistry] Skipping remote agent '${e.name}': A2AClientManager is not available.`);return}let s=Cde(n),c;if(e.auth){let p=await Rb.create({authConfig:e.auth,agentName:e.name,targetUrl:s,agentCardUrl:n.agentCardUrl});if(!p)throw new Error(`Failed to create auth provider for agent '${e.name}'`);c=p}let u=await o.loadAgent(n.name,Tde(n),c);if(u.securitySchemes){let p=Rb.validateAuthConfig(e.auth,u.securitySchemes);if(!p.valid&&p.diff){let f=Rb.describeRequiredAuth(u.securitySchemes),g=new jde(e.name,f,p.diff.missingConfig);Ee.emitFeedback("warning",`[${e.name}] Agent requires authentication: ${f}`),U.warn(`[AgentRegistry] ${g.message}`)}}let d=n.originalDescription,l=u.description,a=[];if(d?.trim()&&a.push(`User Description: ${d.trim()}`),l?.trim()&&a.push(`Agent Description: ${l.trim()}`),u.skills&&u.skills.length>0){let p=u.skills.map(f=>`${f.name}: ${f.description||"No description provided"}`).join(`
|
|
2899
2899
|
`);a.push(`Skills:
|
|
2900
2900
|
${p}`)}a.length>0&&(e.description=a.join(`
|
|
2901
2901
|
`)),this.config.getDebugMode()&&U.log(`[AgentRegistry] Registered remote agent '${e.name}' with card: ${e.agentCardUrl??"inline JSON"}`),this.agents.set(e.name,e),this.addAgentPolicy(e)}catch(o){o instanceof _m?Ee.emitFeedback("error",`[${e.name}] ${o.userMessage}`):Ee.emitFeedback("error",`[${e.name}] Failed to load remote agent: ${o instanceof Error?o.message:String(o)}`),U.warn(`[AgentRegistry] Error loading A2A agent "${e.name}":`,o)}}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?wN.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(fHe(e),{modelConfig:o}),o.model&&xs(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)}};import*as BN from"node:fs/promises";import*as nfr from"node:path";var Gde=class{acknowledgedAgents={};loaded=!1;async load(){if(this.loaded)return;let e=er.getAcknowledgedAgentsPath();try{let r=await BN.readFile(e,"utf-8");this.acknowledgedAgents=JSON.parse(r)}catch(r){(!Lt(r)||r.code!=="ENOENT")&&U.error("Failed to load acknowledged agents:",be(r)),this.acknowledgedAgents={}}this.loaded=!0}async save(){let e=er.getAcknowledgedAgentsPath();try{let r=nfr.dirname(e);await BN.mkdir(r,{recursive:!0}),await BN.writeFile(e,JSON.stringify(this.acknowledgedAgents,null,2),"utf-8")}catch(r){U.error("Failed to save acknowledged agents:",be(r))}}async isAcknowledged(e,r,n){await this.load();let o=this.acknowledgedAgents[e];return o?o[r]===n:!1}async acknowledge(e,r,n){await this.load(),this.acknowledgedAgents[e]||(this.acknowledgedAgents[e]={}),this.acknowledgedAgents[e][r]=n,await this.save()}};function Vde(t,e){let r=/\$\{(\w+)\}/g,n=new Set(Array.from(t.matchAll(r),c=>c[1])),o=new Set(Object.keys(e)),s=Array.from(n).filter(c=>!o.has(c));if(s.length>0)throw new Error(`Template validation failed: Missing required input parameters: ${s.join(", ")}. Available inputs: ${Object.keys(e).join(", ")}`);return t.replace(r,(c,u)=>String(e[u]))}import{AsyncLocalStorage as T_i}from"node:async_hooks";var ifr=new T_i;function hHe(t,e){return ifr.run(t,e)}function Hde(){return ifr.getStore()}var ofr=Me(mse(),1);function K7(t){return typeof t=="object"&&t!==null&&"callId"in t&&"responseParts"in t}function nBo(t){let{displayName:e,status:r,approvalMode:n,hasResultDisplay:o,parentCallId:s}=t;if(s)return!0;switch(e){case QD:switch(r){case"scheduled":case"validating":case"executing":case"awaiting_approval":return!0;case"error":return!o;default:return!1}case YQ:case JQ:return n==="plan";default:return!1}}function X7(t,e,r=3){let n=e.map(c=>({name:c,distance:ofr.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 iBo(t,e,r){let n;xQ(t)?n=[t.name,t.constructor.name]:n=[t],n.some(o=>rh.includes(o))&&(n=[...new Set([...n,...rh])]);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=>rh.includes(l))&&(d===u||d.startsWith(u+" ")))return!0}return!1}var $de=class{constructor(e,r=snt,n){this.messageBus=e;this.schedulerId=r;this.onTerminalCall=n}activeCalls=new Map;queue=[];_completedBatch=[];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==="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==="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:"tool-calls-update",toolCalls:e,schedulerId:this.schedulerId})}isTerminalCall(e){let{status:r}=e;return r==="success"||r==="error"||r==="cancelled"}transitionCall(e,r,n){switch(r){case"success":{if(!K7(n))throw new Error(`Invalid data for 'success' transition (callId: ${e.request.callId})`);return this.toSuccess(e,n)}case"error":{if(!K7(n))throw new Error(`Invalid data for 'error' transition (callId: ${e.request.callId})`);return this.toError(e,n)}case"awaiting_approval":{if(!n)throw new Error(`Missing data for 'awaiting_approval' transition (callId: ${e.request.callId})`);return this.toAwaitingApproval(e,n)}case"scheduled":return this.toScheduled(e);case"cancelled":{if(typeof n!="string"&&!K7(n))throw new Error(`Invalid reason (string) or response for 'cancelled' transition (callId: ${e.request.callId})`);return this.toCancelled(e,n)}case"validating":return this.toValidating(e);case"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,"success");let n="startTime"in e?e.startTime:void 0;return{request:e.request,tool:e.tool,invocation:e.invocation,status:"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:"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,"awaiting_approval");let n,o;return this.isEventDrivenApprovalData(r)?(o=r.correlationId,n=r.confirmationDetails):n=r,{request:e.request,tool:e.tool,status:"awaiting_approval",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,"scheduled"),{request:e.request,tool:e.tool,status:"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,"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??ZJe(u.fileDiff)})}let s;if(e.status==="executing"&&e.liveOutput&&(s=e.liveOutput),K7(r)){let u={...r};return u.resultDisplay||(u.resultDisplay=o??s),{request:e.request,tool:e.tool,invocation:e.invocation,status:"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:"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==="awaiting_approval"}patchCall(e,r){return{...e,...r}}toValidating(e){return this.validateHasToolAndInvocation(e,"validating"),{request:e.request,tool:e.tool,status:"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,"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:"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 C_i}from"node:events";import{randomUUID as w_i}from"node:crypto";async function x_i(t,e,r){if(r.aborted)throw new Error("Operation cancelled");try{for await(let[n]of C_i(t,"tool-confirmation-response",{signal:r})){let o=n;if(o.correlationId===e)return{outcome:o.outcome??(o.confirmed?"proceed_once":"cancel"),payload:o.payload}}}catch(n){throw r.aborted||n.name==="AbortError"?new Error("Operation cancelled"):n}throw new Error("Operation cancelled")}async function gHe(t,e,r){let{state:n,onWaitingForConfirmation:o}=r,s=t.request.callId,c="modify_with_editor",u;for(;c==="modify_with_editor";){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="proceed_once";break}r.systemMessage&&(a.systemMessage=r.systemMessage),await O_i(r,a);let p=w_i(),f=a;u=f;let g="ideConfirmation"in a?a.ideConfirmation:void 0;n.updateStatus(s,"awaiting_approval",{confirmationDetails:f,correlationId:p}),o?.(!0);let y=await P_i(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==="modify_with_editor"){let E=await I_i(r,t,e);E.error&&Ee.emitFeedback("error",E.error)}else y.payload&&"newContent"in y.payload&&(await R_i(r,t,y.payload,e),c="proceed_once")}return{outcome:c,lastDetails:u}}async function O_i(t,e){t.config.getHookSystem()&&await t.config.getHookSystem()?.fireToolNotificationEvent({...e,onConfirm:async()=>{}})}async function I_i(t,e,r){let{state:n,modifier:o,getPreferredEditor:s}=t,c=s(),u=await WMt(c,r);if(!u)return{error:GMt};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 R_i(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 P_i(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=x_i(t,e,s);if(!n)return await u;let d=n.then(l=>({outcome:l.status==="accepted"?"proceed_once":"cancel",payload:l.content?{newContent:l.content}:void 0})).catch(l=>(U.warn("Error waiting for confirmation via IDE",l),new Promise(()=>{})));return await Promise.race([u,d])}finally{r.removeEventListener("abort",c),o.abort()}}function sfr(t,e){return{errorMessage:`Tool execution denied by policy.${e?.denyMessage?` ${e.denyMessage}`:""}`,errorType:"policy_violation"}}async function afr(t,e,r){let n=t.tool instanceof Jn?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==="ask_user"&&t.request.isClientInitiated&&!t.request.args?.additional_permissions)return{decision:"allow",rule:s.rule};if(c==="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 lfr(t,e,r,n,o,s){if(k_i(t,e)){n.config.setApprovalMode("autoEdit");return}let c,u,d=n.config.getApprovalMode();if(e==="proceed_always"||e==="proceed_always_tool"||e==="proceed_always_server"||e==="proceed_always_and_save"){let l=Age.indexOf(d);l!==-1&&(u=Age.slice(l))}if(e==="proceed_always_and_save"&&(n.config&&n.config.isTrustedFolder()&&n.config.getWorkspacePoliciesDir()!==void 0?c="workspace":c="user"),r?.type==="mcp"){await D_i(t,e,r,o,c,u);return}await N_i(t,e,r,o,c,s,n.config,u)}function k_i(t,e){return e==="proceed_always"&&jD.has(t.name)}async function N_i(t,e,r,n,o,s,c,u){if(e==="proceed_always"||e==="proceed_always_and_save"){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?wo(r.filePath,c.getTargetDir()):r.filePath;d.argsPattern=ov(l)}await n.publish({type:"update-policy",toolName:t.name,persist:e==="proceed_always_and_save",persistScope:o,modes:u,...d})}}async function D_i(t,e,r,n,o,s){if(!(e==="proceed_always"||e==="proceed_always_tool"||e==="proceed_always_server"||e==="proceed_always_and_save"))return;let u=t.name,d=e==="proceed_always_and_save";e==="proceed_always_server"&&(u=dS(r.serverName,"*")),await n.publish({type:"update-policy",toolName:u,mcpName:r.serverName,persist:d,persistScope:o,modes:s})}function mHe(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 cfr(t,e,r,n,o,s,c,u,d){let l=t.params||{},a=!1,p=[],f=c?mHe(t,c):void 0,g=c?.getHookSystem();if(g&&!d){let E=await g.fireBeforeToolEvent(e,l,f,u);if(E?.shouldStopExecution()){let v=E.getEffectiveReason();return{llmContent:`Agent execution stopped by hook: ${v}`,returnDisplay:`Agent execution stopped by hook: ${v}`,error:{type:"stop_execution",message:v}}}let _=E?.getBlockingError();if(_?.blocked)return{llmContent:`Tool execution blocked: ${_.reason}`,returnDisplay:`Tool execution blocked: ${_.reason}`,error:{type:"execution_failed",message:_.reason}};if(E instanceof Q0){let v=E.getModifiedToolInput();if(v){Object.assign(t.params,v),U.debug(`Tool input modified by hook for ${e}`),a=!0,p=Object.keys(v);try{t=n.build(t.params)}catch(b){return{llmContent:`Tool parameter modification by hook failed validation: ${b instanceof Error?b.message:String(b)}`,returnDisplay:"Tool parameter modification by hook failed validation.",error:{type:"invalid_tool_params",message:String(b)}}}}}}let y=await t.execute(r,o,s);if(a){let E=`
|
|
@@ -814,7 +814,7 @@ ${s}
|
|
|
814
814
|
|
|
815
815
|
... [${u.toLocaleString()} characters omitted] ...
|
|
816
816
|
|
|
817
|
-
${c}`}var $br="tool-outputs";async function Jv(t,e,r,n,o){let s=Yu(e).toLowerCase(),c=Yu(r.toString()).toLowerCase(),u=c.startsWith(s)?`${c}.txt`:`${s}_${c}.txt`,d=Wu.join(n,$br);if(o){let a=Yu(o);d=Wu.join(d,`session-${a}`)}let l=Wu.join(d,u);return await Ox.mkdir(d,{recursive:!0}),await Ox.writeFile(l,t),{outputFile:l}}async function eet(t,e){await ul();let r=[t,...e].join(" "),n=Ju(r),o=KA(n).filter(s=>s!=="shopt"&&s!=="set");return o.length>0?o[0]:Kq.basename(t)}function Px(t){return typeof t=="string"?t:"pattern"in t?t.pattern:"op"in t?t.op:("comment"in t,"")}var Ch=["run_shell_command","ShellTool"];async function ret(t){if(Kq.isAbsolute(t))try{return await Yq.promises.access(t,Yq.constants.X_OK),t}catch{return}let e=(process.env.PATH||"").split(Kq.delimiter),r=KZe.platform()==="win32"?[".exe",".cmd",".bat",""]:[""];for(let n of e)for(let o of r){let s=Kq.join(n,t+o);try{return await Yq.promises.access(s,Yq.constants.X_OK),s}catch{continue}}}var Kv=null,Jq=null,Rx=null,Xq=class extends Error{constructor(e){super(`Failed to initialize bash parser: ${e.message}`,{cause:e}),this.name="ShellParserInitializationError"}};function zbr(t){return t instanceof Error?t:typeof t=="string"?new Error(t):new Error("Unknown tree-sitter initialization error",{cause:t})}async function Wbr(){try{Rx=null;let[t,e]=await Promise.all([Mme(()=>import("./tree-sitter-
|
|
817
|
+
${c}`}var $br="tool-outputs";async function Jv(t,e,r,n,o){let s=Yu(e).toLowerCase(),c=Yu(r.toString()).toLowerCase(),u=c.startsWith(s)?`${c}.txt`:`${s}_${c}.txt`,d=Wu.join(n,$br);if(o){let a=Yu(o);d=Wu.join(d,`session-${a}`)}let l=Wu.join(d,u);return await Ox.mkdir(d,{recursive:!0}),await Ox.writeFile(l,t),{outputFile:l}}async function eet(t,e){await ul();let r=[t,...e].join(" "),n=Ju(r),o=KA(n).filter(s=>s!=="shopt"&&s!=="set");return o.length>0?o[0]:Kq.basename(t)}function Px(t){return typeof t=="string"?t:"pattern"in t?t.pattern:"op"in t?t.op:("comment"in t,"")}var Ch=["run_shell_command","ShellTool"];async function ret(t){if(Kq.isAbsolute(t))try{return await Yq.promises.access(t,Yq.constants.X_OK),t}catch{return}let e=(process.env.PATH||"").split(Kq.delimiter),r=KZe.platform()==="win32"?[".exe",".cmd",".bat",""]:[""];for(let n of e)for(let o of r){let s=Kq.join(n,t+o);try{return await Yq.promises.access(s,Yq.constants.X_OK),s}catch{continue}}}var Kv=null,Jq=null,Rx=null,Xq=class extends Error{constructor(e){super(`Failed to initialize bash parser: ${e.message}`,{cause:e}),this.name="ShellParserInitializationError"}};function zbr(t){return t instanceof Error?t:typeof t=="string"?new Error(t):new Error("Unknown tree-sitter initialization error",{cause:t})}async function Wbr(){try{Rx=null;let[t,e]=await Promise.all([Mme(()=>import("./tree-sitter-NXEUY244.js"),"web-tree-sitter/tree-sitter.wasm"),Mme(()=>import("./tree-sitter-bash-CUUXV34I.js"),"tree-sitter-bash/tree-sitter-bash.wasm")]);await Nme.init({wasmBinary:t}),Kv=await Pme.load(e)}catch(t){Kv=null;let e=zbr(t),r=e instanceof Xq?e:new Xq(e);throw Rx=r,r}}async function ul(){Jq||(Jq=Wbr().catch(t=>{Jq=null,B.debug("Failed to initialize shell parsers:",t)})),await Jq}var net="__GCLI_POWERSHELL_COMMAND__",Ybr=1e3*1e3,Jbr=Buffer.from(`
|
|
818
818
|
$ErrorActionPreference = 'Stop'
|
|
819
819
|
$commandText = $env:${net}
|
|
820
820
|
if ([string]::IsNullOrEmpty($commandText)) {
|
|
@@ -2895,7 +2895,7 @@ When adding a memory, route it to the right store:
|
|
|
2895
2895
|
# Insufficient context
|
|
2896
2896
|
If you find that you have insufficient context to read or modify the memories as described,
|
|
2897
2897
|
reply with what you need, and exit. Do not search the codebase for the missing context.
|
|
2898
|
-
`.trim();return{kind:"local",name:"save_memory",displayName:"Memory Manager",description:"Writes and reads memory, preferences or facts across ALL future sessions. Use this for recurring instructions like coding styles or tool aliases.",inputConfig:{inputSchema:{type:"object",properties:{request:{type:"string",description:'The memory operation to perform. Examples: "Remember that I prefer tabs over spaces", "Clean up stale memories", "De-duplicate my memories", "Organize my memories".'}},required:["request"]}},outputConfig:{outputName:"result",description:"A summary of the memory operations performed.",schema:REi},modelConfig:{model:Ex},toolConfig:{tools:[Ti,Xl,Kl,bx,Jl,Mi,Vo]},get promptConfig(){return{systemPrompt:n(),query:`${r()}\${request}`}},runConfig:{maxTimeMinutes:5,maxTurns:10}}};var sh=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 _fr=6e4;async function ov(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=YA();try{let{stdout:n}=await tc(r.executable,[...r.argsPrefix,e],{signal:AbortSignal.timeout(_fr),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 ${_fr/1e3} seconds`):n}}return t}function Efr(t){return t.startsWith("$")||t.startsWith("!")}var PEi="X-API-Key",hpe=class extends sh{config;type="apiKey";resolvedKey;headerName;constructor(e){super(),this.config=e,this.headerName=e.name??PEi}async initialize(){Efr(this.config.key)?(this.resolvedKey=await ov(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>=sh.MAX_AUTH_RETRIES))return this.authRetryCount++,B.debug("[ApiKeyAuthProvider] Re-resolving API key after auth failure"),this.resolvedKey=await ov(this.config.key),this.headers()}};var gpe=class extends sh{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 ov(e.token):"username"in e?(this.resolvedUsername=await ov(e.username),this.resolvedPassword=await ov(e.password)):this.resolvedValue=await ov(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>=sh.MAX_AUTH_RETRIES)return;B.debug("[HttpAuthProvider] Re-resolving values after auth failure"),await this.initialize()}return super.shouldRetryWithHeaders(e,r)}};var bfr=Fe(hs(),1);var WC=class extends Error{constructor(e){super(e),this.name="ResourceMismatchError"}},pD=5*60*1e3,Bs=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 WC(`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 WC)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 WC(`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 vfr=/^(.*\.)?run\.app$/,NEi=[/^.+\.googleapis\.com$/,vfr],mpe=class extends sh{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(vfr.test(n)&&(this.useIdToken=!0),this.audience=n,!this.useIdToken&&!NEi.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 bfr.GoogleAuth({scopes:s})}async initialize(){}async headers(){if(this.cachedToken&&this.tokenExpiryTime&&Date.now()<this.tokenExpiryTime-pD)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=Bs.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>=sh.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 sv=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 mpe(n,e.targetUrl);return await s.initialize(),s}case"apiKey":{let s=new hpe(n);return await s.initialize(),s}case"http":{let s=new gpe(n);return await s.initialize(),s}case"oauth2":{let{OAuth2AuthProvider:s}=await import("./oauth2-provider-HTOFGZYE.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 zm=class extends Error{userMessage;agentName;constructor(e,r,n,o){super(r,o),this.name="A2AAgentError",this.agentName=e,this.userMessage=n}},$$e=class extends zm{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"}},ype=class extends zm{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}},Ape=class extends zm{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}},_pe=class extends zm{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 kEi(t){return typeof t=="object"&&t!==null}function DEi(t){let e=[],r=t,n=0,o=10;for(;r&&n<o;){if(kEi(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 Sfr(t,e,r){let n=DEi(r);return/\b(ECONNREFUSED|ENOTFOUND|EHOSTUNREACH|ETIMEDOUT)\b/i.test(n)?new _pe(t,e,r):/\b404\b|\bnot[\s_-]?found\b/i.test(n)?new $$e(t,e):/\b401\b|unauthorized/i.test(n)?new ype(t,e,401):/\b403\b|forbidden/i.test(n)?new ype(t,e,403):new _pe(t,e,r)}function H$e(t){return`${t.name}-config`}var Epe=class{config;agents=new Map;allDefinitions=new Map;builtInAgents=new Set;constructor(e){this.config=e}async initialize(){Ee.on(Nr.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(){this.config.getA2AClientManager()?.clearCache(),await this.config.reloadAgents(),this.agents.clear(),this.allDefinitions.clear(),await this.loadAgents(),Ee.emitAgentsRefreshed()}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),Ee.emitAgentsRefreshed())}dispose(){Ee.off(Nr.ModelChanged,this.onModelChanged)}async loadAgents(){if(this.agents.clear(),this.allDefinitions.clear(),this.loadBuiltInAgents(),!this.config.isAgentsEnabled())return;let e=pr.getUserAgentsDir(),r=await Q$e(e);for(let s of r.errors)B.warn(`[AgentRegistry] Error loading user agent: ${s.message}`),Ee.emitFeedback("error",`Agent loading error: ${s.message}`);await Promise.allSettled(r.agents.map(async s=>{try{await this.registerAgent(s)}catch(c){B.warn(`[AgentRegistry] Error registering user agent "${s.name}":`,c),Ee.emitFeedback("error",`Error registering user agent "${s.name}": ${c instanceof Error?c.message:String(c)}`)}}));let n=this.config.getFolderTrust(),o=this.config.isTrustedFolder();if(!n||o){let s=this.config.storage.getProjectAgentsDir(),c=await Q$e(s);for(let p of c.errors)Ee.emitFeedback("error",`Agent loading error: ${p.message}`);let u=this.config.getAcknowledgedAgentsService(),d=this.config.getProjectRoot(),l=[],a=[];for(let p of c.agents){if(p.kind==="remote"&&(p.metadata||(p.metadata={}),p.metadata.hash=p.agentCardUrl??(p.agentCardJson?Tfr.createHash("sha256").update(p.agentCardJson).digest("hex"):void 0)),!p.metadata?.hash){a.push(p);continue}await u.isAcknowledged(d,p.name,p.metadata.hash)?a.push(p):l.push(p)}l.length>0&&Ee.emitAgentsDiscovered(l),await Promise.allSettled(a.map(async p=>{try{await this.registerAgent(p)}catch(f){B.warn(`[AgentRegistry] Error registering project agent "${p.name}":`,f),Ee.emitFeedback("error",`Error registering project agent "${p.name}": ${f instanceof Error?f.message:String(f)}`)}}))}else Ee.emitFeedback("info","Skipping project agents due to untrusted folder. To enable, ensure that the project root is trusted.");for(let s of this.config.getExtensions())s.isActive&&s.agents&&await Promise.allSettled(s.agents.map(async c=>{try{await this.registerAgent(c)}catch(u){B.warn(`[AgentRegistry] Error registering extension agent "${c.name}":`,u),Ee.emitFeedback("error",`Error registering extension agent "${c.name}": ${u instanceof Error?u.message:String(u)}`)}}));this.config.getDebugMode()&&B.log(`[AgentRegistry] Loaded with ${this.agents.size} agents.`)}loadBuiltInAgents(){let e=jue(this.config);this.builtInAgents.add(e.name),this.registerLocalAgent(e);let r=hfr(this.config);this.builtInAgents.add(r.name),this.registerLocalAgent(r);let n=gfr(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")Ee.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=fpe(this.config);this.builtInAgents.add(d.name),this.registerLocalAgent(d)}}if(this.config.isMemoryManagerEnabled()){this.registerLocalAgent(Afr(this.config));try{let s=pr.getGlobalGeminiDir();this.config.getWorkspaceContext().addDirectory(s)}catch(s){B.warn("[AgentRegistry] Could not add global .gemini directory to workspace:",s)}}}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){e.kind==="local"?this.registerLocalAgent(e):e.kind==="remote"&&await this.registerRemoteAgent(e)}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}r.removeRulesForTool(e.name,"AgentRegistry (Dynamic)"),r.addRule({toolName:e.name,decision:e.kind==="local"?st.ALLOW:st.ASK_USER,priority:oq,source:"AgentRegistry (Dynamic)"})}}isAgentEnabled(e,r){let o=!(e.experimental===!0);return r&&r.enabled!==void 0&&(o=r.enabled),o}async registerRemoteAgent(e){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 r=this.config.getAgentsSettings().overrides?.[e.name];if(!this.isAgentEnabled(e,r)){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 n=e;n.originalDescription===void 0&&(n.originalDescription=n.description);try{let o=this.config.getA2AClientManager();if(!o){B.warn(`[AgentRegistry] Skipping remote agent '${e.name}': A2AClientManager is not available.`);return}let s=npe(n),c;if(e.auth){let p=await sv.create({authConfig:e.auth,agentName:e.name,targetUrl:s,agentCardUrl:n.agentCardUrl});if(!p)throw new Error(`Failed to create auth provider for agent '${e.name}'`);c=p}let u=await o.loadAgent(n.name,rpe(n),c);if(u.securitySchemes){let p=sv.validateAuthConfig(e.auth,u.securitySchemes);if(!p.valid&&p.diff){let f=sv.describeRequiredAuth(u.securitySchemes),g=new Ape(e.name,f,p.diff.missingConfig);Ee.emitFeedback("warning",`[${e.name}] Agent requires authentication: ${f}`),B.warn(`[AgentRegistry] ${g.message}`)}}let d=n.originalDescription,l=u.description,a=[];if(d?.trim()&&a.push(`User Description: ${d.trim()}`),l?.trim()&&a.push(`Agent Description: ${l.trim()}`),u.skills&&u.skills.length>0){let p=u.skills.map(f=>`${f.name}: ${f.description||"No description provided"}`).join(`
|
|
2898
|
+
`.trim();return{kind:"local",name:"save_memory",displayName:"Memory Manager",description:"Writes and reads memory, preferences or facts across ALL future sessions. Use this for recurring instructions like coding styles or tool aliases.",inputConfig:{inputSchema:{type:"object",properties:{request:{type:"string",description:'The memory operation to perform. Examples: "Remember that I prefer tabs over spaces", "Clean up stale memories", "De-duplicate my memories", "Organize my memories".'}},required:["request"]}},outputConfig:{outputName:"result",description:"A summary of the memory operations performed.",schema:REi},modelConfig:{model:Ex},toolConfig:{tools:[Ti,Xl,Kl,bx,Jl,Mi,Vo]},get promptConfig(){return{systemPrompt:n(),query:`${r()}\${request}`}},runConfig:{maxTimeMinutes:5,maxTurns:10}}};var sh=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 _fr=6e4;async function ov(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=YA();try{let{stdout:n}=await tc(r.executable,[...r.argsPrefix,e],{signal:AbortSignal.timeout(_fr),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 ${_fr/1e3} seconds`):n}}return t}function Efr(t){return t.startsWith("$")||t.startsWith("!")}var PEi="X-API-Key",hpe=class extends sh{config;type="apiKey";resolvedKey;headerName;constructor(e){super(),this.config=e,this.headerName=e.name??PEi}async initialize(){Efr(this.config.key)?(this.resolvedKey=await ov(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>=sh.MAX_AUTH_RETRIES))return this.authRetryCount++,B.debug("[ApiKeyAuthProvider] Re-resolving API key after auth failure"),this.resolvedKey=await ov(this.config.key),this.headers()}};var gpe=class extends sh{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 ov(e.token):"username"in e?(this.resolvedUsername=await ov(e.username),this.resolvedPassword=await ov(e.password)):this.resolvedValue=await ov(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>=sh.MAX_AUTH_RETRIES)return;B.debug("[HttpAuthProvider] Re-resolving values after auth failure"),await this.initialize()}return super.shouldRetryWithHeaders(e,r)}};var bfr=Fe(hs(),1);var WC=class extends Error{constructor(e){super(e),this.name="ResourceMismatchError"}},pD=5*60*1e3,Bs=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 WC(`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 WC)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 WC(`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 vfr=/^(.*\.)?run\.app$/,NEi=[/^.+\.googleapis\.com$/,vfr],mpe=class extends sh{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(vfr.test(n)&&(this.useIdToken=!0),this.audience=n,!this.useIdToken&&!NEi.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 bfr.GoogleAuth({scopes:s})}async initialize(){}async headers(){if(this.cachedToken&&this.tokenExpiryTime&&Date.now()<this.tokenExpiryTime-pD)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=Bs.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>=sh.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 sv=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 mpe(n,e.targetUrl);return await s.initialize(),s}case"apiKey":{let s=new hpe(n);return await s.initialize(),s}case"http":{let s=new gpe(n);return await s.initialize(),s}case"oauth2":{let{OAuth2AuthProvider:s}=await import("./oauth2-provider-HPBKDSMW.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 zm=class extends Error{userMessage;agentName;constructor(e,r,n,o){super(r,o),this.name="A2AAgentError",this.agentName=e,this.userMessage=n}},$$e=class extends zm{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"}},ype=class extends zm{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}},Ape=class extends zm{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}},_pe=class extends zm{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 kEi(t){return typeof t=="object"&&t!==null}function DEi(t){let e=[],r=t,n=0,o=10;for(;r&&n<o;){if(kEi(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 Sfr(t,e,r){let n=DEi(r);return/\b(ECONNREFUSED|ENOTFOUND|EHOSTUNREACH|ETIMEDOUT)\b/i.test(n)?new _pe(t,e,r):/\b404\b|\bnot[\s_-]?found\b/i.test(n)?new $$e(t,e):/\b401\b|unauthorized/i.test(n)?new ype(t,e,401):/\b403\b|forbidden/i.test(n)?new ype(t,e,403):new _pe(t,e,r)}function H$e(t){return`${t.name}-config`}var Epe=class{config;agents=new Map;allDefinitions=new Map;builtInAgents=new Set;constructor(e){this.config=e}async initialize(){Ee.on(Nr.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(){this.config.getA2AClientManager()?.clearCache(),await this.config.reloadAgents(),this.agents.clear(),this.allDefinitions.clear(),await this.loadAgents(),Ee.emitAgentsRefreshed()}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),Ee.emitAgentsRefreshed())}dispose(){Ee.off(Nr.ModelChanged,this.onModelChanged)}async loadAgents(){if(this.agents.clear(),this.allDefinitions.clear(),this.loadBuiltInAgents(),!this.config.isAgentsEnabled())return;let e=pr.getUserAgentsDir(),r=await Q$e(e);for(let s of r.errors)B.warn(`[AgentRegistry] Error loading user agent: ${s.message}`),Ee.emitFeedback("error",`Agent loading error: ${s.message}`);await Promise.allSettled(r.agents.map(async s=>{try{await this.registerAgent(s)}catch(c){B.warn(`[AgentRegistry] Error registering user agent "${s.name}":`,c),Ee.emitFeedback("error",`Error registering user agent "${s.name}": ${c instanceof Error?c.message:String(c)}`)}}));let n=this.config.getFolderTrust(),o=this.config.isTrustedFolder();if(!n||o){let s=this.config.storage.getProjectAgentsDir(),c=await Q$e(s);for(let p of c.errors)Ee.emitFeedback("error",`Agent loading error: ${p.message}`);let u=this.config.getAcknowledgedAgentsService(),d=this.config.getProjectRoot(),l=[],a=[];for(let p of c.agents){if(p.kind==="remote"&&(p.metadata||(p.metadata={}),p.metadata.hash=p.agentCardUrl??(p.agentCardJson?Tfr.createHash("sha256").update(p.agentCardJson).digest("hex"):void 0)),!p.metadata?.hash){a.push(p);continue}await u.isAcknowledged(d,p.name,p.metadata.hash)?a.push(p):l.push(p)}l.length>0&&Ee.emitAgentsDiscovered(l),await Promise.allSettled(a.map(async p=>{try{await this.registerAgent(p)}catch(f){B.warn(`[AgentRegistry] Error registering project agent "${p.name}":`,f),Ee.emitFeedback("error",`Error registering project agent "${p.name}": ${f instanceof Error?f.message:String(f)}`)}}))}else Ee.emitFeedback("info","Skipping project agents due to untrusted folder. To enable, ensure that the project root is trusted.");for(let s of this.config.getExtensions())s.isActive&&s.agents&&await Promise.allSettled(s.agents.map(async c=>{try{await this.registerAgent(c)}catch(u){B.warn(`[AgentRegistry] Error registering extension agent "${c.name}":`,u),Ee.emitFeedback("error",`Error registering extension agent "${c.name}": ${u instanceof Error?u.message:String(u)}`)}}));this.config.getDebugMode()&&B.log(`[AgentRegistry] Loaded with ${this.agents.size} agents.`)}loadBuiltInAgents(){let e=jue(this.config);this.builtInAgents.add(e.name),this.registerLocalAgent(e);let r=hfr(this.config);this.builtInAgents.add(r.name),this.registerLocalAgent(r);let n=gfr(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")Ee.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=fpe(this.config);this.builtInAgents.add(d.name),this.registerLocalAgent(d)}}if(this.config.isMemoryManagerEnabled()){this.registerLocalAgent(Afr(this.config));try{let s=pr.getGlobalGeminiDir();this.config.getWorkspaceContext().addDirectory(s)}catch(s){B.warn("[AgentRegistry] Could not add global .gemini directory to workspace:",s)}}}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){e.kind==="local"?this.registerLocalAgent(e):e.kind==="remote"&&await this.registerRemoteAgent(e)}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}r.removeRulesForTool(e.name,"AgentRegistry (Dynamic)"),r.addRule({toolName:e.name,decision:e.kind==="local"?st.ALLOW:st.ASK_USER,priority:oq,source:"AgentRegistry (Dynamic)"})}}isAgentEnabled(e,r){let o=!(e.experimental===!0);return r&&r.enabled!==void 0&&(o=r.enabled),o}async registerRemoteAgent(e){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 r=this.config.getAgentsSettings().overrides?.[e.name];if(!this.isAgentEnabled(e,r)){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 n=e;n.originalDescription===void 0&&(n.originalDescription=n.description);try{let o=this.config.getA2AClientManager();if(!o){B.warn(`[AgentRegistry] Skipping remote agent '${e.name}': A2AClientManager is not available.`);return}let s=npe(n),c;if(e.auth){let p=await sv.create({authConfig:e.auth,agentName:e.name,targetUrl:s,agentCardUrl:n.agentCardUrl});if(!p)throw new Error(`Failed to create auth provider for agent '${e.name}'`);c=p}let u=await o.loadAgent(n.name,rpe(n),c);if(u.securitySchemes){let p=sv.validateAuthConfig(e.auth,u.securitySchemes);if(!p.valid&&p.diff){let f=sv.describeRequiredAuth(u.securitySchemes),g=new Ape(e.name,f,p.diff.missingConfig);Ee.emitFeedback("warning",`[${e.name}] Agent requires authentication: ${f}`),B.warn(`[AgentRegistry] ${g.message}`)}}let d=n.originalDescription,l=u.description,a=[];if(d?.trim()&&a.push(`User Description: ${d.trim()}`),l?.trim()&&a.push(`Agent Description: ${l.trim()}`),u.skills&&u.skills.length>0){let p=u.skills.map(f=>`${f.name}: ${f.description||"No description provided"}`).join(`
|
|
2899
2899
|
`);a.push(`Skills:
|
|
2900
2900
|
${p}`)}a.length>0&&(e.description=a.join(`
|
|
2901
2901
|
`)),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(o){o instanceof zm?Ee.emitFeedback("error",`[${e.name}] ${o.userMessage}`):Ee.emitFeedback("error",`[${e.name}] Failed to load remote agent: ${o instanceof Error?o.message:String(o)}`),B.warn(`[AgentRegistry] Error loading A2A agent "${e.name}":`,o)}}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?nD.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(H$e(e),{modelConfig:o}),o.model&&Vs(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)}};import*as fD from"node:fs/promises";import*as wfr from"node:path";var bpe=class{acknowledgedAgents={};loaded=!1;async load(){if(this.loaded)return;let e=pr.getAcknowledgedAgentsPath();try{let r=await fD.readFile(e,"utf-8");this.acknowledgedAgents=JSON.parse(r)}catch(r){(!Gt(r)||r.code!=="ENOENT")&&B.error("Failed to load acknowledged agents:",Se(r)),this.acknowledgedAgents={}}this.loaded=!0}async save(){let e=pr.getAcknowledgedAgentsPath();try{let r=wfr.dirname(e);await fD.mkdir(r,{recursive:!0}),await fD.writeFile(e,JSON.stringify(this.acknowledgedAgents,null,2),"utf-8")}catch(r){B.error("Failed to save acknowledged agents:",Se(r))}}async isAcknowledged(e,r,n){await this.load();let o=this.acknowledgedAgents[e];return o?o[r]===n:!1}async acknowledge(e,r,n){await this.load(),this.acknowledgedAgents[e]||(this.acknowledgedAgents[e]={}),this.acknowledgedAgents[e][r]=n,await this.save()}};function vpe(t,e){let r=/\$\{(\w+)\}/g,n=new Set(Array.from(t.matchAll(r),c=>c[1])),o=new Set(Object.keys(e)),s=Array.from(n).filter(c=>!o.has(c));if(s.length>0)throw new Error(`Template validation failed: Missing required input parameters: ${s.join(", ")}. Available inputs: ${Object.keys(e).join(", ")}`);return t.replace(r,(c,u)=>String(e[u]))}import{AsyncLocalStorage as LEi}from"node:async_hooks";var Cfr=new LEi;function z$e(t,e){return Cfr.run(t,e)}function Spe(){return Cfr.getStore()}var xfr=Fe(Xse(),1);function Rj(t){return typeof t=="object"&&t!==null&&"callId"in t&&"responseParts"in t}function aBo(t){let{displayName:e,status:r,approvalMode:n,hasResultDisplay:o,parentCallId:s}=t;if(s)return!0;switch(e){case A3:switch(r){case Be.Scheduled:case Be.Validating:case Be.Executing:case Be.AwaitingApproval:return!0;case Be.Error:return!o;default:return!1}case Iq:case Rq:return n===tr.PLAN;default:return!1}}function Pj(t,e,r=3){let n=e.map(c=>({name:c,distance:xfr.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 lBo(t,e,r){let n;aq(t)?n=[t.name,t.constructor.name]:n=[t],n.some(o=>Ch.includes(o))&&(n=[...new Set([...n,...Ch])]);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=>Ch.includes(l))&&(d===u||d.startsWith(u+" ")))return!0}return!1}var Tpe=class{messageBus;schedulerId;onTerminalCall;activeCalls=new Map;queue=[];_completedBatch=[];constructor(e,r=Qnt,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===Be.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===Be.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:Pi.TOOL_CALLS_UPDATE,toolCalls:e,schedulerId:this.schedulerId})}isTerminalCall(e){let{status:r}=e;return r===Be.Success||r===Be.Error||r===Be.Cancelled}transitionCall(e,r,n){switch(r){case Be.Success:{if(!Rj(n))throw new Error(`Invalid data for 'success' transition (callId: ${e.request.callId})`);return this.toSuccess(e,n)}case Be.Error:{if(!Rj(n))throw new Error(`Invalid data for 'error' transition (callId: ${e.request.callId})`);return this.toError(e,n)}case Be.AwaitingApproval:{if(!n)throw new Error(`Missing data for 'awaiting_approval' transition (callId: ${e.request.callId})`);return this.toAwaitingApproval(e,n)}case Be.Scheduled:return this.toScheduled(e);case Be.Cancelled:{if(typeof n!="string"&&!Rj(n))throw new Error(`Invalid reason (string) or response for 'cancelled' transition (callId: ${e.request.callId})`);return this.toCancelled(e,n)}case Be.Validating:return this.toValidating(e);case Be.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,Be.Success);let n="startTime"in e?e.startTime:void 0;return{request:e.request,tool:e.tool,invocation:e.invocation,status:Be.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:Be.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,Be.AwaitingApproval);let n,o;return this.isEventDrivenApprovalData(r)?(o=r.correlationId,n=r.confirmationDetails):n=r,{request:e.request,tool:e.tool,status:Be.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,Be.Scheduled),{request:e.request,tool:e.tool,status:Be.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,Be.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??DKe(u.fileDiff)})}let s;if(e.status===Be.Executing&&e.liveOutput&&(s=e.liveOutput),Rj(r)){let u={...r};return u.resultDisplay||(u.resultDisplay=o??s),{request:e.request,tool:e.tool,invocation:e.invocation,status:Be.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:Be.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===Be.AwaitingApproval}patchCall(e,r){return{...e,...r}}toValidating(e){return this.validateHasToolAndInvocation(e,Be.Validating),{request:e.request,tool:e.tool,status:Be.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,Be.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:Be.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 MEi}from"node:events";import{randomUUID as BEi}from"node:crypto";async function UEi(t,e,r){if(r.aborted)throw new Error("Operation cancelled");try{for await(let[n]of MEi(t,Pi.TOOL_CONFIRMATION_RESPONSE,{signal:r})){let o=n;if(o.correlationId===e)return{outcome:o.outcome??(o.confirmed?Qt.ProceedOnce:Qt.Cancel),payload:o.payload}}}catch(n){throw r.aborted||n.name==="AbortError"?new Error("Operation cancelled"):n}throw new Error("Operation cancelled")}async function W$e(t,e,r){let{state:n,onWaitingForConfirmation:o}=r,s=t.request.callId,c=Qt.ModifyWithEditor,u;for(;c===Qt.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=Qt.ProceedOnce;break}r.systemMessage&&(a.systemMessage=r.systemMessage),await FEi(r,a);let p=BEi(),f=a;u=f;let g="ideConfirmation"in a?a.ideConfirmation:void 0;n.updateStatus(s,Be.AwaitingApproval,{confirmationDetails:f,correlationId:p}),o?.(!0);let y=await qEi(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===Qt.ModifyWithEditor){let _=await jEi(r,t,e);_.error&&Ee.emitFeedback("error",_.error)}else y.payload&&"newContent"in y.payload&&(await QEi(r,t,y.payload,e),c=Qt.ProceedOnce)}return{outcome:c,lastDetails:u}}async function FEi(t,e){t.config.getHookSystem()&&await t.config.getHookSystem()?.fireToolNotificationEvent({...e,onConfirm:async()=>{}})}async function jEi(t,e,r){let{state:n,modifier:o,getPreferredEditor:s}=t,c=s(),u=await A6t(c,r);if(!u)return{error:f6t};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 QEi(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 qEi(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=UEi(t,e,s);if(!n)return await u;let d=n.then(l=>({outcome:l.status==="accepted"?Qt.ProceedOnce:Qt.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 Ofr(t,e){return{errorMessage:`Tool execution denied by policy.${e?.denyMessage?` ${e.denyMessage}`:""}`,errorType:Me.POLICY_VIOLATION}}async function Ifr(t,e,r){let n=t.tool instanceof di?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===st.ASK_USER&&t.request.isClientInitiated&&!t.request.args?.additional_permissions)return{decision:st.ALLOW,rule:s.rule};if(c===st.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 Rfr(t,e,r,n,o,s){if(GEi(t,e)){n.config.setApprovalMode(tr.AUTO_EDIT);return}let c,u,d=n.config.getApprovalMode();if(e===Qt.ProceedAlways||e===Qt.ProceedAlwaysTool||e===Qt.ProceedAlwaysServer||e===Qt.ProceedAlwaysAndSave){let l=Jge.indexOf(d);l!==-1&&(u=Jge.slice(l))}if(e===Qt.ProceedAlwaysAndSave&&(n.config&&n.config.isTrustedFolder()&&n.config.getWorkspacePoliciesDir()!==void 0?c="workspace":c="user"),r?.type==="mcp"){await $Ei(t,e,r,o,c,u);return}await VEi(t,e,r,o,c,s,n.config,u)}function GEi(t,e){return e===Qt.ProceedAlways&&y3.has(t.name)}async function VEi(t,e,r,n,o,s,c,u){if(e===Qt.ProceedAlways||e===Qt.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?Go(r.filePath,c.getTargetDir()):r.filePath;d.argsPattern=Lb(l)}await n.publish({type:Pi.UPDATE_POLICY,toolName:t.name,persist:e===Qt.ProceedAlwaysAndSave,persistScope:o,modes:u,...d})}}async function $Ei(t,e,r,n,o,s){if(!(e===Qt.ProceedAlways||e===Qt.ProceedAlwaysTool||e===Qt.ProceedAlwaysServer||e===Qt.ProceedAlwaysAndSave))return;let u=t.name,d=e===Qt.ProceedAlwaysAndSave;e===Qt.ProceedAlwaysServer&&(u=Qv(r.serverName,"*")),await n.publish({type:Pi.UPDATE_POLICY,toolName:u,mcpName:r.serverName,persist:d,persistScope:o,modes:s})}function Y$e(t,e){if(!(t instanceof tXe))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 Pfr(t,e,r,n,o,s,c,u,d){let l=t.params||{},a=!1,p=[],f=c?Y$e(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:Me.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:Me.EXECUTION_FAILED,message:E.reason}};if(_ instanceof mA){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:Me.INVALID_TOOL_PARAMS,message:String(v)}}}}}}let y=await t.execute(r,o,s);if(a){let _=`
|
|
@@ -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 $d,$a as bf,$b as cg,$d as _h,$e as _i,$f as Vj,$g as Mk,$h as zl,$i as zm,$j as Kn,$k as Do,$l as Dp,$m as Bq,A as ed,Aa as Ce,Ab as Df,Ac as Dg,Ad as zh,Ae as zi,Ag as lk,Ah as al,Ai as _l,Aj as Zm,Ak as bo,Al as cp,Am as cq,B as fd,Ba as De,Bb as Ef,Bc as Eg,Bd as Ah,Be as Ai,Bg as mk,Bh as bl,Bi as $l,Bj as _m,Bk as co,Bl as dp,Bm as dq,C as gd,Ca as Ee,Cb as Ff,Cc as Fg,Cd as Bh,Ce as Bi,Cg as nk,Ch as cl,Ci as am,Cj as $m,Ck as eo,Cl as ep,D as hd,Da as Fe,Db as Gf,Dc as Gg,Dd as Ch,De as Ci,Dg as ok,Dh as dl,Di as bm,Dj as an,Dk as fo,Dl as fp,Dm as eq,E as id,Ea as Ge,Eb as Hf,Ec as Hg,Ed as Dh,Ee as Di,Ef as yj,Eg as pk,Eh as el,Ei as cm,Ej as bn,Ek as go,El as gp,Em as fq,F as jd,Fa as He,Fb as If,Fc as Ig,Fd as Eh,Fe as Ei,Ff as zj,Fg as qk,Fh as fl,Fi as dm,Fj as cn,Fk as ho,Fl as hp,Fm as gq,G as kd,Ga as Ie,Gb as Jf,Gc as Jg,Gd as Fh,Ge as Fi,Gf as Aj,Gg as rk,Gh as gl,Gi as em,Gj as dn,Gk as io,Gl as ip,Gm as hq,H as ld,Ha as Je,Hb as Kf,Hc as Kg,Hd as Gh,He as Gi,Hf as Bj,Hg as sk,Hi as fm,Hj as qn,Hk as jo,Hl as jp,Hm as iq,I as md,Ia as Ke,Ib as Lf,Ic as Lg,Id as Hh,Ie as Hi,If as Cj,Ig as tk,Ii as gm,Ij as rn,Ik as ko,Il as kp,Im as jq,J as nd,Ja as Le,Jb as Mf,Jc as Mg,Jd as Ih,Je as Ii,Jf as Dj,Jg as uk,Jh as hl,Ji as hm,Jj as sn,Jk as lo,Jl as lp,K as od,Ka as Me,Kb as Nf,Kc as Ng,Kd as Jh,Ke as Ji,Kf as Ej,Kg as vk,Kh as il,Ki as im,Kj as tn,Kk as mo,Kl as mp,Km as kq,L as pd,La as Ne,Lb as Of,Lc as Og,Ld as Kh,Le as Ki,Lf as Fj,Lg as wk,Lh as jl,Li as jm,Lj as un,Lk as no,Ll as np,Lm as lq,M as qd,Ma as Oe,Mb as Pf,Mc as Pg,Md as Lh,Me as Li,Mf as Gj,Mg as xk,Mh as kl,Mi as km,Mj as vn,Mk as oo,Ml as op,Mm as mq,N as rd,Na as Pe,Nb as Qf,Nc as Qg,Nd as Mh,Ne as Mi,Nf as Hj,Ng as yk,Nh as ll,Ni as lm,Nj as wn,Nk as po,Nl as pp,Nm as nq,O as sd,Oa as Qe,Ob as Rf,Oc as Rg,Od as Nh,Oe as Ni,Of as Ij,Og as zk,Oh as ml,Oi as mm,Oj as xn,Ok as qo,Ol as qp,Om as oq,P as td,Pa as Re,Pb as Sf,Pc as Sg,Pd as Oh,Pe as Oi,Pf as Jj,Pg as Ak,Ph as nl,Pi as nm,Pj as yn,Pk as ro,Pl as rp,Pm as pq,Q as ud,Qa as Se,Qb as Tf,Qc as Tg,Qd as Ph,Qe as Pi,Qf as Kj,Qg as Bk,Qh as ol,Qi as om,Qj as zn,Qk as so,Ql as sp,Qm as qq,R as vd,Ra as Te,Rb as Uf,Rc as Ug,Rd as Qh,Re as Qi,Rf as Lj,Rg as Ck,Rh as pl,Ri as pm,Rj as An,Rk as to,Rl as tp,Rm as rq,S as wd,Sa as Ue,Sb as Vf,Sc as Vg,Sd as Rh,Se as Ri,Sf as Mj,Sg as Dk,Sh as ql,Si as qm,Sj as Bn,Sk as uo,Sl as up,Sm as sq,T as xd,Ta as Ve,Tb as Wf,Tc as Wg,Td as Sh,Te as Si,Tf as Nj,Tg as Ek,Th as rl,Ti as rm,Tj as Cn,Tk as vo,Tl as vp,Tm as tq,U as Ud,Ua as We,Ub as Xf,Uc as Xg,Ud as Th,Ue as Ti,Uf as Oj,Ug as Fk,Uh as sl,Ui as sm,Uj as Dn,Uk as wo,Ul as wp,Um as uq,V as Vd,Va as Xe,Vb as Yf,Vc as Yg,Vd as Uh,Ve as Ui,Vf as Pj,Vg as Gk,Vh as tl,Vi as tm,Vj as En,Vk as xo,Vl as xp,Vm as vq,W as Wd,Wa as Ye,Wb as Zf,Wc as Zg,Wd as Vh,We as Vi,Wf as Qj,Wg as Hk,Wh as ul,Wi as um,Wj as Fn,Wk as yo,Wl as yp,Wm as wq,X as Xd,Xa as Ze,Xb as _f,Xc as _g,Xd as Wh,Xe as Wi,Xf as Rj,Xg as Ik,Xh as vl,Xi as vm,Xj as Gn,Xk as zo,Xl as zp,Xm as xq,Y as Yd,Ya as _e,Yb as $f,Yc as $g,Yd as Xh,Ye as Xi,Yf as Sj,Yg as Jk,Yh as wl,Yi as wm,Yj as Hn,Yk as Ao,Yl as Ap,Ym as yq,Z as Zd,Za as $e,Zb as ag,Zc as ah,Zd as Yh,Ze as Yi,Zf as Tj,Zg as Kk,Zh as xl,Zi as xm,Zj as In,Zk as Bo,Zl as Bp,Zm as zq,_ as _d,_a as af,_b as bg,_c as bh,_d as Zh,_e as Zi,_f as Uj,_g as Lk,_h as yl,_i as ym,_j as Jn,_k as Co,_l as Cp,_m as Aq,aa as ae,ab as cf,ac as dg,ae as $h,af as $i,ag as Wj,ah as Nk,ai as Al,aj as Am,ak as Ln,al as Eo,am as Ep,an as Cq,ba as be,bb as df,bc as eg,be as ai,bf as aj,bg as Xj,bh as Vk,bi as Bl,bj as Bm,bk as Mn,bl as Fo,bm as Fp,bn as Dq,c as Ic,ca as ce,cb as ef,cc as fg,ce as bi,cf as bj,cg as Yj,ch as Wk,ci as Cl,cj as Cm,ck as Nn,cl as Go,cm as Gp,cn as Eq,d as Jc,da as de,db as ff,dc as gg,dd as ch,de as ci,df as cj,dg as Zj,dh as Xk,di as Dl,dj as Dm,dk as On,dl as Ho,dm as Hp,dn as Fq,e as Kc,ea as ee,eb as gf,ec as hg,ed as dh,ee as di,ef as dj,eg as _j,eh as Yk,ei as El,ej as Em,ek as Pn,el as Io,em as Ip,en as Gq,f as Lc,fb as hf,fc as ig,fd as eh,fe as ei,ff as ej,fg as $j,fh as Zk,fi as Fl,fj as Fm,fk as Qn,fl as Jo,fm as Jp,fn as Hq,g as Mc,gb as jf,gc as jg,gd as fh,ge as fi,gf as fj,gg as ak,gh as _k,gi as Gl,gj as Gm,gk as Rn,gl as Ko,gm as Kp,gn as Iq,h as Nc,hb as kf,hc as kg,hd as gh,he as gi,hf as gj,hg as bk,hi as Hl,hj as Hm,hk as Sn,hl as Lo,hm as Lp,hn as Jq,i as Oc,ia as fe,ib as lf,ic as lg,id as hh,ie as hi,if as hj,ig as ck,ih as $k,ii as Il,ij as Im,ik as Tn,il as Mo,im as Mp,in as Kq,j as Pc,ja as je,jb as mf,jc as mg,jd as ih,je as ii,jf as ij,ji as Jl,jk as Un,jl as No,jm as Np,jn as Lq,k as Qc,ka as ke,kb as nf,kc as ng,kd as jh,ke as ji,kf as jj,ki as Kl,kj as Jm,kl as Oo,km as Op,kn as Mq,l as Rc,la as le,lb as of,lc as og,ld as kh,le as ki,lf as kj,li as Ll,lj as Km,lk as Vn,ll as Po,lm as Pp,ln as Nq,m as Sc,ma as oe,mb as pf,mc as pg,md as lh,me as li,mf as lj,mi as Ml,mj as Lm,ml as Qo,mm as Qp,mn as Oq,n as Tc,na as pe,nb as qf,nc as qg,nd as mh,ne as mi,nf as mj,ni as Nl,nj as Mm,nk as Wn,nl as Ro,nm as Rp,nn as Pq,o as Uc,oa as qe,ob as rf,oc as rg,od as nh,oe as ni,of as nj,oi as Ol,oj as Nm,ol as So,om as Sp,on as Qq,p as Vc,pa as re,pb as sf,pc as sg,pd as oh,pe as oi,pf as oj,pi as Pl,pj as Om,pl as To,pm as Tp,pn as Rq,q as Wc,qa as se,qb as tf,qc as tg,qd as ph,qe as pi,qf as pj,qi as Ql,qj as Pm,ql as Uo,qm as Up,qn as Sq,r as Xc,ra as te,rb as uf,rc as ug,rd as qh,re as qi,rf as qj,ri as Rl,rj as Qm,rl as Vo,rm as Vp,rn as Tq,s as Yc,sa as ue,sb as vf,sc as vg,sd as rh,se as ri,sf as rj,sg as dk,si as Sl,sj as Rm,sl as Wo,sm as Wp,sn as Uq,t as Zc,ta as ve,tb as wf,tc as wg,td as sh,te as si,tf as sj,tg as ek,ti as Tl,tj as Sm,tl as Xo,tm as Xp,tn as Vq,u as _c,ua as we,ub as xf,uc as xg,ud as th,ue as ti,uf as tj,ug as fk,ui as Ul,uj as Tm,uk as Xn,ul as Yo,um as Yp,un as Wq,v as $c,va as xe,vb as yf,vc as yg,vd as uh,ve as ui,vf as uj,vg as gk,vi as Vl,vj as Um,vk as Yn,vl as Zo,vm as Zp,vn as Xq,w as ad,wa as ye,wb as zf,wc as zg,wd as vh,we as vi,wf as vj,wg as hk,wi as Wl,wj as Vm,wk as Zn,wl as _o,wm as _p,x as bd,xa as ze,xb as Af,xc as Ag,xd as wh,xe as wi,xf as wj,xg as ik,xi as Xl,xj as Wm,xk as _n,xl as $o,xm as $p,y as cd,ya as Ae,yb as Bf,yc as Bg,yd as xh,ye as xi,yf as xj,yg as jk,yi as Yl,yj as Xm,yk as $n,yl as ap,ym as aq,z as dd,za as Be,zb as Cf,zc as Cg,zd as yh,ze as yi,zg as kk,zi as Zl,zj as Ym,zk as ao,zl as bp,zm as bq}from"./chunk-CTQJGFLJ.js";import{$ as I,$a as za,$b as zb,$c as dc,$d as ge,A as h,Aa as _,Ab as _a,Ad as Dc,B as i,Ba as $,Bb as $a,Bd as Ec,C as j,Ca as aa,Cb as ab,Cd as Fc,D as k,Da as ba,Db as bb,Dd as Gc,E as l,Ea as ca,Eb as cb,Ed as Hc,F as m,Fa as da,Fb as db,Fd as yd,G as n,Ga as ea,Gb as eb,Gd as zd,H as o,Ha as fa,Hb as fb,Hd as Ad,I as p,Ia as ga,Ib as gb,Id as Bd,J as q,Ja as ha,Jb as hb,Jd as Cd,K as r,Ka as ia,Kb as ib,Kd as Dd,L as s,La as ja,Lb as jb,Ld as Ed,M as t,Ma as ka,Mb as kb,Md as Fd,N as u,Na as la,Nb as lb,Nd as Gd,O as v,Oa as ma,Ob as mb,Od as Hd,P as w,Pa as na,Pb as nb,Pd as Id,Q as x,Qa as oa,Qb as ob,Qd as Jd,R as y,Ra as pa,Rb as pb,Rc as Vb,Rd as Kd,S as z,Sa as qa,Sb as qb,Sc as Wb,Sd as Ld,T as A,Ta as ra,Tb as rb,Tc as Xb,Td as Md,U as B,Ua as sa,Ub as sb,Uc as Yb,Ud as Nd,V as C,Va as ta,Vb as tb,Vc as Zb,Vd as Od,W as D,Wa as ua,Wb as ub,Wc as _b,Wd as Pd,X as E,Xa as va,Xb as vb,Xc as $b,Xd as Qd,Y as F,Ya as wa,Yb as wb,Yc as ac,Yd as Rd,Z as G,Za as xa,Zb as xb,Zc as bc,Zd as Sd,_ as H,_a as ya,_b as yb,_c as cc,_d as Td,aa as J,ab as Aa,ac as Ab,ad as ec,ae as he,b as a,ba as K,bb as Ba,bc as Bb,bd as fc,be as ie,c as b,ca as L,cb as Ca,cc as Cb,cd as gc,d as c,da as M,db as Da,dc as Db,dd as hc,de as Ok,ea as N,eb as Ea,ec as Eb,ed as ic,ee as Pk,fa as O,fb as Fa,fc as Fb,fd as jc,fe as Qk,ga as P,gb as Ga,gc as Gb,gd as kc,ge as Rk,h as d,ha as Q,hb as Ha,hc as Hb,hd as lc,he as Sk,i as e,ia as R,ib as Ia,ic as Ib,id as mc,ie as Tk,j as f,ja as S,jb as Ja,jc as Jb,jd as nc,je as Uk,k as g,ka as T,kb as Ka,kc as Kb,kd as oc,ke as en,la as U,lb as La,ld as pc,le as fn,mb as Ma,mc as Lb,md as qc,me as gn,nb as Na,nc as Mb,nd as rc,ne as hn,ob as Oa,oc as Nb,od as sc,oe as jn,pa as V,pb as Pa,pc as Ob,pd as tc,pe as kn,qb as Qa,qc as Pb,qd as uc,qe as ln,rb as Ra,rd as vc,re as mn,sb as Sa,sd as wc,se as nn,tb as Ta,tc as Qb,td as xc,te as on,ub as Ua,uc as Rb,ud as yc,ue as pn,vb as Va,vc as Sb,vd as zc,wa as W,wb as Wa,wc as Tb,xa as X,xb as Xa,xc as Ub,xd as Ac,ya as Y,yb as Ya,yd as Bc,za as Z,zb as Za,zd as Cc}from"./chunk-VEQE4EAQ.js";import"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import{b as me,c as ne}from"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";export{vb as ACTIVATE_SKILL_TOOL_NAME,Mo as ADMIN_POLICY_TIER,Ro as ALLOWED_MCP_SERVER_PRIORITY,Po as ALLOWED_TOOLS_FLAG_PRIORITY,xc as ALL_BUILTIN_TOOL_NAMES,So as ALWAYS_ALLOW_PRIORITY,n as ALWAYS_ALLOW_PRIORITY_FRACTION,o as ALWAYS_ALLOW_PRIORITY_OFFSET,mc as ASK_USER_DISPLAY_NAME,Gb as ASK_USER_OPTION_PARAM_DESCRIPTION,Fb as ASK_USER_OPTION_PARAM_LABEL,yb as ASK_USER_PARAM_QUESTIONS,Ab as ASK_USER_QUESTION_PARAM_HEADER,Db as ASK_USER_QUESTION_PARAM_MULTI_SELECT,Cb as ASK_USER_QUESTION_PARAM_OPTIONS,Eb as ASK_USER_QUESTION_PARAM_PLACEHOLDER,zb as ASK_USER_QUESTION_PARAM_QUESTION,Bb as ASK_USER_QUESTION_PARAM_TYPE,xb as ASK_USER_TOOL_NAME,eq as AbortError,Nd as AccountSuspendedError,Ng as ActionStatus,gl as ActivateSkillTool,Kh as ActivityDetector,Xh as ActivityMonitor,Wh as ActivityType,Rg as AdminControlsSettingsSchema,Dm as AfterAgentHookOutput,Cm as AfterModelHookOutput,fm as AgentExecutionBlockedError,em as AgentExecutionStoppedError,Qn as AgentLoadError,pq as AgentSession,Cn as AgentTerminateMode,If as ApiErrorEvent,Hh as ApiKeyUpdatedEvent,Hf as ApiRequestEvent,Le as ApiRequestPhase,Jf as ApiResponseEvent,j as ApprovalMode,Ol as AskUserInvocation,Nl as AskUserTool,zp as AuthProviderType,Hk as AuthType,Rc as BINARY_EXTENSIONS,Jc as BINARY_FILE_PATTERNS,Pd as BadRequestError,v as BaseDeclarativeTool,Qj as BaseLlmClient,t as BaseToolInvocation,Am as BeforeModelHookOutput,zm as BeforeToolHookOutput,Bm as BeforeToolSelectionHookOutput,nk as CODE_ASSIST_API_VERSION,mk as CODE_ASSIST_ENDPOINT,Lc as COMMON_DIRECTORY_EXCLUDES,Ic as COMMON_IGNORE_PATTERNS,pk as CacheService,Ld as CanceledError,Qd as ChangeAuthRequestedError,th as ChatRecordingService,fh as ClearcutLogger,xj as CloseDiffRequestSchema,ok as CodeAssistServer,nl as ColorMode,km as CompressionStatus,Bp as Config,Ap as ConfigSchema,rm as ConfigSource,Lf as ConsecaPolicyGenerationEvent,Mf as ConsecaVerdictEvent,qn as ContextManager,Tf as ConversationFinishedEvent,Mg as ConversationInteractionInteraction,ge as CoreEvent,he as CoreEventEmitter,ke as CoreToolCallStatus,Dh as CreditPurchaseClickEvent,Fh as CreditsUsedEvent,Ac as DEFAULT_CONTEXT_FILENAME,Go as DEFAULT_CORE_POLICIES_DIR,Uc as DEFAULT_ENCODING,go as DEFAULT_FAST_ACK_MODEL_CONFIG_KEY,Oc as DEFAULT_FILE_EXCLUDES,Pk as DEFAULT_FILE_FILTERING_OPTIONS,ja as DEFAULT_GEMINI_EMBEDDING_MODEL,ba as DEFAULT_GEMINI_FLASH_LITE_MODEL,aa as DEFAULT_GEMINI_FLASH_MODEL,$ as DEFAULT_GEMINI_MODEL,ea as DEFAULT_GEMINI_MODEL_AUTO,Yi as DEFAULT_GUI_EDITOR,Kj as DEFAULT_MAX_ATTEMPTS,ho as DEFAULT_MAX_INPUT_CHARS,Sb as DEFAULT_MAX_LINES_TEXT_FILE,io as DEFAULT_MAX_OUTPUT_CHARS,Fn as DEFAULT_MAX_TIME_MINUTES,En as DEFAULT_MAX_TURNS,Ok as DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,dn as DEFAULT_MODEL_CONFIGS,hi as DEFAULT_OTLP_ENDPOINT,Io as DEFAULT_POLICY_TIER,Dn as DEFAULT_QUERY_STRING,gi as DEFAULT_TELEMETRY_TARGET,ka as DEFAULT_THINKING_MODE,pm as DEFAULT_TOKEN_LIMIT,xp as DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,wc as DISCOVERED_TOOL_PREFIX,ub as DOCS_PARAM_PATH,u as DeclarativeTool,ym as DefaultHookOutput,ac as DiscoveredMCPTool,$b as DiscoveredMCPToolInvocation,Mk as DiscoveredTool,$i as EDITOR_DISPLAY_NAMES,lc as EDIT_DISPLAY_NAME,db as EDIT_PARAM_ALLOW_MULTIPLE,ab as EDIT_PARAM_INSTRUCTION,cb as EDIT_PARAM_NEW_STRING,bb as EDIT_PARAM_OLD_STRING,$a as EDIT_TOOL_NAME,cc as EDIT_TOOL_NAMES,Jb as ENTER_PLAN_MODE_TOOL_NAME,Gh as EVENT_API_KEY_UPDATED,Eh as EVENT_CREDITS_USED,Ch as EVENT_CREDIT_PURCHASE_CLICK,Ah as EVENT_EMPTY_WALLET_MENU_SHOWN,wh as EVENT_OVERAGE_MENU_SHOWN,yh as EVENT_OVERAGE_OPTION_SELECTED,Oo as EXCLUDE_TOOLS_FLAG_PRIORITY,Hb as EXIT_PLAN_MODE_TOOL_NAME,Ib as EXIT_PLAN_PARAM_PLAN_FILENAME,Jo as EXTENSION_POLICY_TIER,Xj as EditTool,Bh as EmptyWalletMenuShownEvent,Ef as EndSessionEvent,ql as ExecutionLifecycleService,dq as ExitCodes,uo as ExperimentFlags,$f as ExtensionDisableEvent,Zf as ExtensionEnableEvent,Vf as ExtensionInstallEvent,Gp as ExtensionIntegrityDataSchema,Kp as ExtensionIntegrityManager,Hp as ExtensionIntegrityMapSchema,_o as ExtensionLoader,Xf as ExtensionUninstallEvent,Yf as ExtensionUpdateEvent,Lj as FETCH_FAILED_MESSAGE,gg as FORCE_FILE_STORAGE_ENV_VAR,Nn as FRONTMATTER_REGEX,Ed as FatalAuthenticationError,Kd as FatalCancellationError,Hd as FatalConfigError,Dd as FatalError,Fd as FatalInputError,Gd as FatalSandboxError,Jd as FatalToolExecutionError,Id as FatalTurnLimitedError,Sg as FetchAdminControlsResponseSchema,yl as FetchError,Zk as FileDiscoveryService,Pc as FileExclusions,He as FileOperation,qj as FileSchema,gq as FileSearchFactory,Kf as FlashFallbackEvent,kq as FolderTrustDiscoveryService,Md as ForbiddenError,Tg as G1_CREDIT_TYPE,Xg as G1_UTM_CAMPAIGNS,kj as GEMINI_CLI_COMPANION_EXTENSION_NAME,rl as GEMINI_CLI_IDENTIFICATION_ENV_VAR,sl as GEMINI_CLI_IDENTIFICATION_ENV_VAR_VALUE,I as GEMINI_DIR,Qk as GEMINI_IGNORE_FILE_NAME,fa as GEMINI_MODEL_ALIAS_AUTO,ha as GEMINI_MODEL_ALIAS_FLASH,ia as GEMINI_MODEL_ALIAS_FLASH_LITE,ga as GEMINI_MODEL_ALIAS_PRO,se as GEN_AI_AGENT_DESCRIPTION,re as GEN_AI_AGENT_NAME,Fe as GEN_AI_CONVERSATION_ID,te as GEN_AI_INPUT_MESSAGES,qe as GEN_AI_OPERATION_NAME,ue as GEN_AI_OUTPUT_MESSAGES,xe as GEN_AI_PROMPT_NAME,ve as GEN_AI_REQUEST_MODEL,we as GEN_AI_RESPONSE_MODEL,De as GEN_AI_SYSTEM_INSTRUCTIONS,ze as GEN_AI_TOOL_CALL_ID,Ee as GEN_AI_TOOL_DEFINITIONS,Ae as GEN_AI_TOOL_DESCRIPTION,ye as GEN_AI_TOOL_NAME,Be as GEN_AI_USAGE_INPUT_TOKENS,Ce as GEN_AI_USAGE_OUTPUT_TOKENS,tb as GET_INTERNAL_DOCS_TOOL_NAME,oc as GLOB_DISPLAY_NAME,Fa as GLOB_TOOL_NAME,J as GOOGLE_ACCOUNTS_FILENAME,Wd as GOVERNANCE_FILES,qc as GREP_DISPLAY_NAME,Oa as GREP_PARAM_AFTER,Pa as GREP_PARAM_BEFORE,Na as GREP_PARAM_CONTEXT,Ia as GREP_PARAM_EXCLUDE_PATTERN,Ma as GREP_PARAM_FIXED_STRINGS,Ha as GREP_PARAM_INCLUDE_PATTERN,Ka as GREP_PARAM_MAX_MATCHES_PER_FILE,Ja as GREP_PARAM_NAMES_ONLY,Qa as GREP_PARAM_NO_IGNORE,La as GREP_PARAM_TOTAL_MAX_MATCHES,Ga as GREP_TOOL_NAME,ih as GcpLogExporter,hh as GcpMetricExporter,gh as GcpTraceExporter,gm as GeminiChat,Ge as GeminiCliOperation,Im as GeminiClient,jm as GeminiEventType,Me as GenAiOperationName,Ne as GenAiProviderName,Oe as GenAiTokenType,Wk as GitIgnoreParser,Jm as GitService,el as GlobTool,$k as GrepTool,um as HOOKS_CONFIG_FIELDS,Oh as HighWaterMarkTracker,xn as HookAggregator,zn as HookEventHandler,tm as HookEventName,yn as HookPlanner,vn as HookRegistry,wn as HookRunner,An as HookSystem,vm as HookType,yj as IDEConnectionStatus,ch as IDE_DEFINITIONS,lj as IDE_MAX_OPEN_FILES,mj as IDE_MAX_SELECTED_TEXT_LENGTH,nj as IDE_REQUEST_TIMEOUT_MS,Mj as INCOMPLETE_JSON_MESSAGE,Yl as INITIAL_HISTORY_LENGTH,Rk as INTEGRITY_FILENAME,Sk as INTEGRITY_KEY_FILENAME,zj as IdeClient,Sf as IdeConnectionEvent,Rf as IdeConnectionType,sj as IdeContextNotificationSchema,rj as IdeContextSchema,oj as IdeContextStore,tj as IdeDiffAcceptedNotificationSchema,vj as IdeDiffClosedNotificationSchema,uj as IdeDiffRejectedNotificationSchema,l as InProcessCheckerType,tk as IneligibleTierError,Jg as IneligibleTierReasonCode,Og as InitiationMethod,Co as InjectionService,Jp as IntegrityDataStatus,Ep as IntegrityStatus,Ip as IntegrityStoreSchema,dm as InvalidStreamError,Cp as JsonFormatter,bn as JsonStreamEventType,Tk as KEYCHAIN_SERVICE_NAME,eg as KEYCHAIN_TEST_PREFIX,dg as KeychainSchema,hg as KeychainService,ig as KeychainTokenStorage,F as Kind,Vk as LSTool,pc as LS_DISPLAY_NAME,Sa as LS_PARAM_IGNORE,Ra as LS_TOOL_NAME,Aq as LegacyAgentSession,Cf as LlmRole,so as LocalAgentExecutor,ae as LocalSandboxManager,$p as Logger,zk as LoggingContentGenerator,Ub as MAX_FILE_SIZE_MB,Tb as MAX_LINE_LENGTH_TEXT_FILE,dp as MCPDiscoveryState,ap as MCPOAuthProvider,Wn as MCPOAuthTokenStorage,yp as MCPServerConfig,cp as MCPServerStatus,bp as MCP_DEFAULT_TIMEOUT_MSEC,No as MCP_EXCLUDED_PRIORITY,Vb as MCP_QUALIFIED_NAME_SEPARATOR,Wb as MCP_TOOL_PREFIX,Kc as MEDIA_FILE_PATTERNS,sb as MEMORY_PARAM_FACT,Bc as MEMORY_SECTION_HEADER,rb as MEMORY_TOOL_NAME,_g as MIN_CREDIT_BALANCE,k as MODES_BY_PERMISSIVENESS,G as MUTATOR_KINDS,ep as McpClient,Qg as McpConfigDefinitionSchema,Je as MemoryMetricType,Qh as MemoryMonitor,Hc as MemoryTool,tn as MessageBus,q as MessageBusType,Yp as MessageSenderType,cn as ModelConfigService,Dj as ModelNotFoundError,$m as ModelRouterService,_f as ModelSlashCommandEvent,Xi as NO_EDITOR_AVAILABLE_ERROR,Uf as NetworkRetryAttemptEvent,$d as NoopSandboxManager,Em as NotificationType,Vn as OAuthUtils,vl as OUTPUT_UPDATE_INTERVAL_MS,Ug as OVERAGE_ELIGIBLE_MODELS,Lg as OnboardUserStatusCode,bg as OnboardingStartEvent,cg as OnboardingSuccessEvent,wj as OpenDiffRequestSchema,an as OutputFormat,xh as OverageMenuShownEvent,zh as OverageOptionSelectedEvent,Aa as PARAM_CASE_SENSITIVE,Ea as PARAM_DESCRIPTION,ya as PARAM_DIR_PATH,Da as PARAM_FILE_FILTERING_OPTIONS,xa as PARAM_FILE_PATH,za as PARAM_PATTERN,Ca as PARAM_RESPECT_GEMINI_IGNORE,Ba as PARAM_RESPECT_GIT_IGNORE,Kb as PLAN_MODE_PARAM_REASON,yc as PLAN_MODE_TOOLS,Y as PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,_ as PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,X as PREVIEW_GEMINI_3_1_MODEL,Z as PREVIEW_GEMINI_FLASH_MODEL,W as PREVIEW_GEMINI_MODEL,da as PREVIEW_GEMINI_MODEL_AUTO,m as PRIORITY_SUBAGENT_TOOL,p as PRIORITY_YOLO_ALLOW_ALL,Mc as PYTHON_EXCLUDES,Ie as PerformanceMetricType,Ql as PlanErrorMessages,h as PolicyDecision,un as PolicyEngine,Fp as PolicyIntegrityManager,Hm as PreCompressTrigger,zl as PrivateIpError,rk as ProjectIdRequiredError,r as QuestionType,nc as READ_FILE_DISPLAY_NAME,Va as READ_FILE_PARAM_END_LINE,Ua as READ_FILE_PARAM_START_LINE,Ta as READ_FILE_TOOL_NAME,tc as READ_MANY_FILES_DISPLAY_NAME,mb as READ_MANY_FILES_TOOL_NAME,ob as READ_MANY_PARAM_EXCLUDE,nb as READ_MANY_PARAM_INCLUDE,pb as READ_MANY_PARAM_RECURSIVE,qb as READ_MANY_PARAM_USE_DEFAULT_EXCLUDES,H as READ_ONLY_KINDS,Rb as REFERENCE_CONTENT_END,Qb as REFERENCE_CONTENT_START,je as ROOT_SCHEDULER_ID,Ph as RateLimiter,_k as ReadFileTool,Bq as ReadManyFilesTool,Gk as RecordingContentGenerator,ek as ReleaseChannel,Pg as RequiredMcpServerConfigSchema,Lk as ResourceRegistry,Fj as RetryableQuotaError,Pf as RewindEvent,cl as RipGrepTool,tl as SCROLLBACK_LIMIT,Xd as SECRET_FILES,Uk as SECRET_KEY_ACCOUNT,fg as SECRET_PREFIX,pe as SERVICE_DESCRIPTION,oe as SERVICE_NAME,sh as SESSION_FILE_PREFIX,Xa as SHELL_PARAM_COMMAND,Ya as SHELL_PARAM_IS_BACKGROUND,Wa as SHELL_TOOL_NAME,jd as SHELL_TOOL_NAMES,wb as SKILL_PARAM_NAME,In as SUBAGENT_CANCELLED_ERROR_MESSAGE,Hn as SUBAGENT_REJECTED_ERROR_PREFIX,bm as SYNTHETIC_THOUGHT_SIGNATURE,Nc as SYSTEM_FILE_EXCLUDES,Lm as SandboxedFileSystemService,eo as Scheduler,d as SchemaValidator,tf as SemanticAttributes,Gm as SessionEndReason,Fm as SessionStartSource,ul as ShellExecutionService,xl as ShellTool,wl as ShellToolInvocation,$o as SimpleExtensionLoader,vo as SkillManager,Of as SlashCommandStatus,ne as SpanStatusCode,Km as StandardFileSystemService,Df as StartSessionEvent,di as StartupProfiler,V as Storage,am as StreamEventType,Dp as StreamJsonFormatter,Gn as SubagentActivityErrorType,Qm as TASK_TYPE_LABELS,ib as TODOS_ITEM_PARAM_DESCRIPTION,jb as TODOS_ITEM_PARAM_STATUS,hb as TODOS_PARAM_TODOS,dc as TOOLS_REQUIRING_NARROWING,uc as TOOL_LEGACY_ALIASES,fd as TOOL_OUTPUTS_DIR,Pb as TOPIC_PARAM_STRATEGIC_INTENT,Ob as TOPIC_PARAM_SUMMARY,Nb as TOPIC_PARAM_TITLE,ic as TRACKER_ADD_DEPENDENCY_TOOL_NAME,ec as TRACKER_CREATE_TASK_TOOL_NAME,gc as TRACKER_GET_TASK_TOOL_NAME,hc as TRACKER_LIST_TASKS_TOOL_NAME,fc as TRACKER_UPDATE_TASK_TOOL_NAME,jc as TRACKER_VISUALIZE_TOOL_NAME,Qo as TRUSTED_MCP_SERVER_PRIORITY,Rm as TaskStatus,Sm as TaskStatusSchema,Om as TaskType,Pm as TaskTypeSchema,fi as TelemetryTarget,Ej as TerminalQuotaError,le as ToolCallDecision,Gf as ToolCallEvent,E as ToolConfirmationOutcome,b as ToolErrorType,Ke as ToolExecutionPhase,co as ToolExecutor,Wf as ToolOutputTruncatedEvent,Nk as ToolRegistry,Zm as TrackerAddDependencyTool,Vm as TrackerCreateTaskTool,Xm as TrackerGetTaskTool,Ym as TrackerListTasksTool,rn as TrackerService,Tm as TrackerTaskSchema,Wm as TrackerUpdateTaskTool,_m as TrackerVisualizeTool,lm as Turn,Mb as UPDATE_TOPIC_DISPLAY_NAME,Lb as UPDATE_TOPIC_TOOL_NAME,Ij as UPGRADE_URL_PAGE,Lo as USER_POLICY_TIER,ko as USER_STEERING_INSTRUCTION,uh as UiTelemetryService,Od as UnauthorizedError,fe as UserAccountManager,Ff as UserPromptEvent,Kg as UserTierId,ca as VALID_GEMINI_MODELS,sk as ValidationCancelledError,Gj as ValidationRequiredError,me as ValueType,sc as WEB_FETCH_DISPLAY_NAME,lb as WEB_FETCH_PARAM_PROMPT,kb as WEB_FETCH_TOOL_NAME,rc as WEB_SEARCH_DISPLAY_NAME,fb as WEB_SEARCH_PARAM_QUERY,eb as WEB_SEARCH_TOOL_NAME,Ko as WORKSPACE_POLICY_TIER,kc as WRITE_FILE_DISPLAY_NAME,_a as WRITE_FILE_PARAM_CONTENT,Za as WRITE_FILE_TOOL_NAME,gb as WRITE_TODOS_TOOL_NAME,Lq as WarningPriority,ag as WebFetchFallbackAttemptEvent,Ll as WebFetchTool,Ml as WebSearchTool,Ud as WindowsSandboxManager,sn as WorkspaceContext,Nq as WorktreeService,_j as WriteFileTool,Nm as WriteTodosTool,fk as _clearCache,gp as addMCPStatusChangeListener,Vp as addMemory,ej as allowEditorTypeInSandbox,Ni as appendToLastTextPart,aq as applyAdminAllowlist,Tj as applyReplacement,bq as applyRequiredServers,Tl as assumeExhaustive,Dg as authEvents,Yg as buildG1Url,Um as buildTodosReturnDisplay,tq as buildToolResponseData,lo as buildUserSteeringHintPrompt,Ih as bytesToMB,Uj as calculateReplacement,al as canUseRipgrep,mn as categorizeAndConcatenate,Ul as checkExhaustive,ao as checkPolicy,Hj as classifyGoogleError,Uq as cleanupWorktree,Fk as clearApiKey,Hg as clearCachedCredentialFile,Ho as clearEmittedPolicyWarnings,Gg as clearOauthClientCache,Bf as computeModelAddedAndRemovedLines,gn as concatenateInstructions,op as connectAndDiscover,up as connectToMcpServer,rq as contentPartsToGeminiParts,pl as convertColorToHex,Kl as convertGithubUrlToRaw,jq as convertSessionToClientHistory,Oi as convertToFunctionResponse,iq as convertToRestPayload,ie as coreEvents,qk as createCache,Ak as createCodeAssistContentGenerator,Kk as createContentGenerator,Jk as createContentGeneratorConfig,bk as createConversationOffered,xm as createHookOutput,Yo as createPolicyEngineConfig,Zo as createPolicyUpdater,Fl as createSafeProxyAgent,Vd as createSandboxManager,bi as createSessionId,uq as createTranslationState,vp as createTransport,ro as createUnauthorizedToolError,mg as createWorkingStdio,Rq as createWorktree,Oq as createWorktreeService,a as debugLogger,_p as decodeTagName,en as deduplicatePathsByFileIdentity,qh as deleteSessionArtifactsAsync,rh as deleteSubagentSessionDirAndArtifactsAsync,Vc as detectBOM,ml as detectEncodingFromBuffer,ad as detectFileType,eh as detectIdeFromEnv,wf as detectLineEnding,vg as disableBracketedPasteMode,rg as disableKittyKeyboardProtocol,xg as disableLineWrapping,tg as disableModifyOtherKeys,pg as disableMouseEvents,ng as disableMouseTracking,mp as discoverMcpTools,qp as discoverPrompts,rp as discoverResources,pp as discoverTools,_n as doesToolInvocationMatch,ug as enableBracketedPasteMode,qg as enableKittyKeyboardProtocol,wg as enableLineWrapping,sg as enableModifyOtherKeys,og as enableMouseEvents,Zp as encodeTagName,bl as ensureRgPath,yg as enterAlternateScreen,P as escapePath,qd as escapeShellArg,yk as estimateContextBreakdown,xd as execStreaming,zg as exitAlternateScreen,Qc as extractExtensionsFromPatterns,id as extractStringFromParseEntry,xo as fetchAdminControls,yo as fetchAdminControlsOnce,Gl as fetchWithTimeout,cd as fileExists,fq as filter,Yk as findGitRoot,_d as findSecretFiles,Mi as flatMapTextParts,Un as flattenMemory,ki as flushTelemetry,no as formatBackgroundCompletionForModel,Jh as formatBytes,Op as formatCheckpointDisplayList,Vq as formatForSpeech,Zb as formatMcpToolName,Wo as formatPolicyError,ck as formatProtoJsonDuration,ed as formatTruncatedToolOutput,mo as formatUserHintsForModel,qq as geminiPartsToContentParts,Np as generateCheckpointFileName,qo as generateFastAckText,oo as generateSteeringAckMessage,mq as generateSummary,bc as generateValidName,Lh as getActivityDetector,Zh as getActivityMonitor,Bo as getAdminBlockedMcpServersMessage,Ao as getAdminErrorMessage,Ln as getAgentCardLoadOptions,Ec as getAllGeminiMdFilenames,kp as getAllMCPServerStatuses,To as getAlwaysAllowPriorityFraction,Vl as getApprovalModeDescription,Ik as getAuthTypeFromEnv,Fg as getAvailablePort,jl as getCachedEncodingForBuffer,Rp as getCheckpointInfoList,Wi as getCitations,Bk as getCodeAssistServer,hd as getCommandName,td as getCommandRoot,ud as getCommandRoots,Mq as getCompatibilityWarnings,om as getCompressionPrompt,Cg as getConsentForOauth,cf as getConventionAttributes,nm as getCoreSystemPrompt,Zj as getCorrectedFileContent,Dc as getCurrentGeminiMdFilename,ij as getDiffCommand,Zl as getDirectoryContextString,na as getDisplayString,dj as getEditorCommand,aj as getEditorDisplayName,_l as getEnvironmentContext,ln as getEnvironmentMemoryPaths,Bd as getErrorMessage,Vj as getErrorReplaceResult,Cj as getErrorStatus,Cd as getErrorType,Bn as getExperiments,kn as getExtensionMemoryPaths,Af as getFileDiffFromResultDisplay,fl as getFolderStructure,cq as getFsErrorMessage,Qi as getFunctionCalls,Si as getFunctionCallsAsJson,Ri as getFunctionCallsFromParts,Ti as getFunctionCallsFromPartsAsJson,Zg as getG1CreditBalance,Fc as getGlobalMemoryFilePath,hn as getGlobalMemoryPaths,wm as getHookKey,i as getHookSource,nq as getIdeInstaller,$l as getInitialChatHistory,lp as getMCPDiscoveryState,oq as getMCPServerPrompts,jp as getMCPServerStatus,Sh as getMemoryMonitor,Eg as getOauthClient,dk as getPackageJson,de as getPathIdentity,Wl as getPlanModeExitMessage,$n as getPolicyDenialError,Uo as getPolicyDirectories,Vo as getPolicyTier,lq as getPreviousSession,R as getProjectHash,Gc as getProjectMemoryFilePath,Pq as getProjectRootForWorktree,Sj as getPromptIdWithFallback,hl as getPty,Zc as getRealPath,gk as getReleaseChannel,Mn as getRemoteAgentTargetUrl,Li as getResponseText,Pi as getResponseTextFromParts,Nj as getRetryErrorType,Zd as getSecretFileFindArgs,od as getShellConfiguration,Xc as getSpecificMimeType,Ui as getStructuredResponse,Vi as getStructuredResponseFromParts,kl as getSystemEncoding,vc as getToolAliases,Mp as getToolCallDataSchema,Zn as getToolSuggestion,Pp as getTruncatedCheckpointNames,jn as getUserProjectMemoryPaths,kk as getVersion,Qq as getWorktreePath,Jj as handleFallback,x as hasCycleInSchema,tp as hasNetworkTransport,rd as hasRedirection,z as hasSummary,bj as hasValidEditorCommand,cj as hasValidEditorCommandAsync,Tq as hasWorktreeChanges,K as homedir,pj as ideContextStore,Yh as initializeActivityMonitor,Rh as initializeMemoryMonitor,ld as initializeShellParsers,ji as initializeTelemetry,sp as invokeMcpPrompt,Ad as isAbortError,Sd as isAccountSuspendedError,wa as isActiveModel,Dl as isAddressPrivate,wk as isApiError,Iq as isAppleTerminal,Td as isAuthenticationError,ua as isAutoModel,s as isBackgroundExecutionData,vf as isBinary,$c as isBinaryFile,dh as isCloudShell,Pl as isCompletedAskUserTool,sa as isCustomModel,Hq as isDumbTerminal,Wj as isEditToolParams,fj as isEditorAvailable,gj as isEditorAvailableAsync,_c as isEmpty,wp as isEnabled,c as isFatalToolError,D as isFileDiff,ra as isGemini2Model,qa as isGemini3Model,Sq as isGeminiWorktree,Xk as isGitRepository,Fq as isGnuScreen,A as isGrepResult,Zi as isGuiEditor,Bg as isHeadlessMode,im as isInvalidArgumentError,Dq as isJetBrainsTerminal,B as isListResult,Bl as isLoopbackHost,Gq as isLowColorTmux,_b as isMcpToolAnnotation,Xb as isMcpToolName,hk as isNightly,zd as isNodeError,Vg as isOverageEligibleModel,of as isPerformanceMonitoringActive,ik as isPreview,oa as isPreviewModel,Cl as isPrivateIp,El as isPrivateIpAsync,pa as isProModel,C as isReadManyFilesResult,g as isRecord,Oj as isRetryableError,hm as isSchemaDepthError,Yd as isSecretFile,jk as isStable,xk as isStructuredError,y as isStructuredToolResult,Jn as isSubagentProgress,T as isSubpath,ii as isTelemetrySdkInitialized,_i as isTerminalEditor,Eq as isTmux,w as isTool,Kn as isToolActivityError,Xn as isToolCallResponseInfo,Nh as isUserActive,sm as isUserVisibleHook,cm as isValidNonThoughtTextPart,zc as isValidToolName,pd as isWindows,Cq as isWindows10,Yc as isWithinRoot,Yj as isWriteFileToolParams,e as jsonToMarkdown,Lp as listExtensions,Xp as listMemoryFiles,Tn as loadAgentsFromDirectory,Dk as loadApiKey,Xo as loadExtensionPolicies,pn as loadJitSubdirectoryMemory,Eo as loadPoliciesFromToml,nn as loadServerHierarchicalMemory,Pn as loadSkillFromFile,On as loadSkillsFromDir,Tc as loadWasmBinary,si as logApiError,qi as logApiRequest,ti as logApiResponse,Ji as logBillingEvent,yi as logChatCompression,mi as logCliConfiguration,mh as logConsecaPolicyGeneration,nh as logConsecaVerdict,xi as logConversationFinishedEvent,Fi as logExtensionDisable,Ei as logExtensionEnable,Bi as logExtensionInstallEvent,Ci as logExtensionUninstall,Di as logExtensionUpdateEvent,ri as logFlashFallback,wi as logIdeConnection,Ai as logModelSlashCommand,zi as logNetworkRetryAttempt,Hi as logOnboardingStart,Ii as logOnboardingSuccess,vi as logRewind,ui as logSlashCommand,oi as logToolCall,pi as logToolOutputTruncated,ni as logUserPrompt,Gi as logWebFetchFallbackAttempt,Qf as makeChatCompressionEvent,Wq as makeFakeConfig,O as makeRelative,Nf as makeSlashCommandEvent,yq as mapError,wq as mapFinishReason,xq as mapHttpToGrpcStatus,zq as mapUsage,Sn as markdownToAgentDefinition,fp as mcpServerRequiresOAuth,S as normalizePath,jo as normalizeSpace,Il as normalizeUrl,Aj as openBrowserSecurely,jj as openDiff,Rn as parseAgentMarkdown,hq as parseAndFormatApiError,md as parseBashCommandDetails,jh as parseBooleanEnvFlag,nd as parseCommandDetails,yd as parseGoogleApiError,Yb as parseMcpToolName,Jl as parsePrompt,kh as parseTelemetryTargetValue,oh as parseThought,Xl as partListUnionToString,Ki as partToString,lg as patchStdio,Tp as performInit,Sp as performRestore,np as populateMcpServerCommand,Qp as processRestorableToolCalls,bd as processSingleFileContent,Rj as promptIdContext,Wc as readFileWithEncoding,fn as readGeminiMdFiles,Xq as readPathFromWorkspace,Do as readPolicyFiles,Sc as readWasmBinaryFromDisk,Se as recordApiErrorMetrics,kf as recordApiRequestBreakdown,qf as recordApiResponseMetrics,nf as recordBaselineComparison,Ze as recordContentRetry,_e as recordContentRetryFailure,$j as recordConversationOffered,ff as recordCpuUsage,sf as recordCreditPurchaseClick,Th as recordCurrentMemoryUsage,Re as recordCustomApiResponseMetrics,Qe as recordCustomTokenUsageMetrics,Ve as recordExitFail,Te as recordFileOperationMetric,Ue as recordFlickerFrame,bf as recordGenAiClientOperationDuration,af as recordGenAiClientTokenUsage,Xe as recordInvalidChunk,ef as recordMemoryUsage,$e as recordModelRoutingMetrics,rf as recordOverageOptionSelected,mf as recordPerformanceRegression,lf as recordPerformanceScore,Ye as recordRetryAttemptMetrics,We as recordSlowRender,df as recordStartupPerformance,jf as recordTokenEfficiency,pf as recordTokenUsageMetrics,ak as recordToolCallInteractions,Pe as recordToolCallMetrics,hf as recordToolExecutionBreakdown,gf as recordToolQueueDepth,Mh as recordUserActivity,Wp as refreshMemory,on as refreshServerHierarchicalMemory,hp as removeMCPStatusChangeListener,Ck as resetApiKeyCacheForTesting,to as resetBrowserSession,il as resetEncodingCache,Ig as resetOauthClientForTesting,uk as resetUserDataCacheForTesting,lk as resetVersionCache,ma as resolveClassifierModel,hj as resolveEditorAsync,kd as resolveExecutable,la as resolveModel,mm as resolvePathFromEnv,be as resolveSandboxPaths,lh as resolveTelemetrySettings,U as resolveToRealPath,Pj as retryWithBackoff,ci as runInDevTraceSpan,f as safeJsonToMarkdown,uf as safeLiteralReplace,yf as safeTemplateReplace,wo as sanitizeAdminSettings,dd as sanitizeFilenamePart,Al as sanitizeHostname,zf as sanitizeOutput,ce as sanitizePaths,Ek as saveApiKey,gd as saveTruncatedToolOutput,fo as scheduleAgentTools,ol as serializeTerminalToObject,ai as sessionId,Cc as setGeminiMdFilename,Hl as setGlobalProxy,vk as setupUser,N as shortenPath,Mm as shouldAttemptBrowserLaunch,$g as shouldAutoUseCredits,Ag as shouldEnterAlternateScreen,Yn as shouldHideToolCall,Bj as shouldLaunchBrowser,bh as shouldShowEmptyWalletMenu,ah as shouldShowOverageMenu,Up as showMemory,li as shutdownTelemetry,dl as sortFileEntries,wd as spawnAsync,sd as splitCommands,_h as startGlobalActivityMonitoring,Uh as startGlobalMemoryMonitoring,ei as startupProfiler,zo as stopAdminControlsPolling,$h as stopGlobalActivityMonitoring,Vh as stopGlobalMemoryMonitoring,vd as stripShellWrapper,Jq as supports256Colors,ta as supportsModernFeatures,va as supportsMultimodalFunctionResponse,Kq as supportsTrueColor,M as tildeifyPath,L as tmpdir,Rd as toFriendlyError,qm as tokenLimit,sq as toolResultDisplayToContentParts,vq as translateEvent,po as truncateFastAckInput,xf as truncateString,ee as tryRealpath,vh as uiTelemetryService,Q as unescapePath,ip as updateMCPServerStatus,bo as updatePolicy,ph as validateAndSanitizeSessionId,Fo as validateMcpPolicyToolNames,Sl as validatePlanContent,Rl as validatePlanPath,ll as windowsCodePageToEncoding,Wg as wrapInAccountChooser,kg as writeToStderr,jg as writeToStdout};
|
|
2
|
+
import{$ as $d,$a as bf,$b as cg,$d as _h,$e as _i,$f as Vj,$g as Mk,$h as zl,$i as zm,$j as Kn,$k as Do,$l as Dp,$m as Bq,A as ed,Aa as Ce,Ab as Df,Ac as Dg,Ad as zh,Ae as zi,Ag as lk,Ah as al,Ai as _l,Aj as Zm,Ak as bo,Al as cp,Am as cq,B as fd,Ba as De,Bb as Ef,Bc as Eg,Bd as Ah,Be as Ai,Bg as mk,Bh as bl,Bi as $l,Bj as _m,Bk as co,Bl as dp,Bm as dq,C as gd,Ca as Ee,Cb as Ff,Cc as Fg,Cd as Bh,Ce as Bi,Cg as nk,Ch as cl,Ci as am,Cj as $m,Ck as eo,Cl as ep,D as hd,Da as Fe,Db as Gf,Dc as Gg,Dd as Ch,De as Ci,Dg as ok,Dh as dl,Di as bm,Dj as an,Dk as fo,Dl as fp,Dm as eq,E as id,Ea as Ge,Eb as Hf,Ec as Hg,Ed as Dh,Ee as Di,Ef as yj,Eg as pk,Eh as el,Ei as cm,Ej as bn,Ek as go,El as gp,Em as fq,F as jd,Fa as He,Fb as If,Fc as Ig,Fd as Eh,Fe as Ei,Ff as zj,Fg as qk,Fh as fl,Fi as dm,Fj as cn,Fk as ho,Fl as hp,Fm as gq,G as kd,Ga as Ie,Gb as Jf,Gc as Jg,Gd as Fh,Ge as Fi,Gf as Aj,Gg as rk,Gh as gl,Gi as em,Gj as dn,Gk as io,Gl as ip,Gm as hq,H as ld,Ha as Je,Hb as Kf,Hc as Kg,Hd as Gh,He as Gi,Hf as Bj,Hg as sk,Hi as fm,Hj as qn,Hk as jo,Hl as jp,Hm as iq,I as md,Ia as Ke,Ib as Lf,Ic as Lg,Id as Hh,Ie as Hi,If as Cj,Ig as tk,Ii as gm,Ij as rn,Ik as ko,Il as kp,Im as jq,J as nd,Ja as Le,Jb as Mf,Jc as Mg,Jd as Ih,Je as Ii,Jf as Dj,Jg as uk,Jh as hl,Ji as hm,Jj as sn,Jk as lo,Jl as lp,K as od,Ka as Me,Kb as Nf,Kc as Ng,Kd as Jh,Ke as Ji,Kf as Ej,Kg as vk,Kh as il,Ki as im,Kj as tn,Kk as mo,Kl as mp,Km as kq,L as pd,La as Ne,Lb as Of,Lc as Og,Ld as Kh,Le as Ki,Lf as Fj,Lg as wk,Lh as jl,Li as jm,Lj as un,Lk as no,Ll as np,Lm as lq,M as qd,Ma as Oe,Mb as Pf,Mc as Pg,Md as Lh,Me as Li,Mf as Gj,Mg as xk,Mh as kl,Mi as km,Mj as vn,Mk as oo,Ml as op,Mm as mq,N as rd,Na as Pe,Nb as Qf,Nc as Qg,Nd as Mh,Ne as Mi,Nf as Hj,Ng as yk,Nh as ll,Ni as lm,Nj as wn,Nk as po,Nl as pp,Nm as nq,O as sd,Oa as Qe,Ob as Rf,Oc as Rg,Od as Nh,Oe as Ni,Of as Ij,Og as zk,Oh as ml,Oi as mm,Oj as xn,Ok as qo,Ol as qp,Om as oq,P as td,Pa as Re,Pb as Sf,Pc as Sg,Pd as Oh,Pe as Oi,Pf as Jj,Pg as Ak,Ph as nl,Pi as nm,Pj as yn,Pk as ro,Pl as rp,Pm as pq,Q as ud,Qa as Se,Qb as Tf,Qc as Tg,Qd as Ph,Qe as Pi,Qf as Kj,Qg as Bk,Qh as ol,Qi as om,Qj as zn,Qk as so,Ql as sp,Qm as qq,R as vd,Ra as Te,Rb as Uf,Rc as Ug,Rd as Qh,Re as Qi,Rf as Lj,Rg as Ck,Rh as pl,Ri as pm,Rj as An,Rk as to,Rl as tp,Rm as rq,S as wd,Sa as Ue,Sb as Vf,Sc as Vg,Sd as Rh,Se as Ri,Sf as Mj,Sg as Dk,Sh as ql,Si as qm,Sj as Bn,Sk as uo,Sl as up,Sm as sq,T as xd,Ta as Ve,Tb as Wf,Tc as Wg,Td as Sh,Te as Si,Tf as Nj,Tg as Ek,Th as rl,Ti as rm,Tj as Cn,Tk as vo,Tl as vp,Tm as tq,U as Ud,Ua as We,Ub as Xf,Uc as Xg,Ud as Th,Ue as Ti,Uf as Oj,Ug as Fk,Uh as sl,Ui as sm,Uj as Dn,Uk as wo,Ul as wp,Um as uq,V as Vd,Va as Xe,Vb as Yf,Vc as Yg,Vd as Uh,Ve as Ui,Vf as Pj,Vg as Gk,Vh as tl,Vi as tm,Vj as En,Vk as xo,Vl as xp,Vm as vq,W as Wd,Wa as Ye,Wb as Zf,Wc as Zg,Wd as Vh,We as Vi,Wf as Qj,Wg as Hk,Wh as ul,Wi as um,Wj as Fn,Wk as yo,Wl as yp,Wm as wq,X as Xd,Xa as Ze,Xb as _f,Xc as _g,Xd as Wh,Xe as Wi,Xf as Rj,Xg as Ik,Xh as vl,Xi as vm,Xj as Gn,Xk as zo,Xl as zp,Xm as xq,Y as Yd,Ya as _e,Yb as $f,Yc as $g,Yd as Xh,Ye as Xi,Yf as Sj,Yg as Jk,Yh as wl,Yi as wm,Yj as Hn,Yk as Ao,Yl as Ap,Ym as yq,Z as Zd,Za as $e,Zb as ag,Zc as ah,Zd as Yh,Ze as Yi,Zf as Tj,Zg as Kk,Zh as xl,Zi as xm,Zj as In,Zk as Bo,Zl as Bp,Zm as zq,_ as _d,_a as af,_b as bg,_c as bh,_d as Zh,_e as Zi,_f as Uj,_g as Lk,_h as yl,_i as ym,_j as Jn,_k as Co,_l as Cp,_m as Aq,aa as ae,ab as cf,ac as dg,ae as $h,af as $i,ag as Wj,ah as Nk,ai as Al,aj as Am,ak as Ln,al as Eo,am as Ep,an as Cq,ba as be,bb as df,bc as eg,be as ai,bf as aj,bg as Xj,bh as Vk,bi as Bl,bj as Bm,bk as Mn,bl as Fo,bm as Fp,bn as Dq,c as Ic,ca as ce,cb as ef,cc as fg,ce as bi,cf as bj,cg as Yj,ch as Wk,ci as Cl,cj as Cm,ck as Nn,cl as Go,cm as Gp,cn as Eq,d as Jc,da as de,db as ff,dc as gg,dd as ch,de as ci,df as cj,dg as Zj,dh as Xk,di as Dl,dj as Dm,dk as On,dl as Ho,dm as Hp,dn as Fq,e as Kc,ea as ee,eb as gf,ec as hg,ed as dh,ee as di,ef as dj,eg as _j,eh as Yk,ei as El,ej as Em,ek as Pn,el as Io,em as Ip,en as Gq,f as Lc,fb as hf,fc as ig,fd as eh,fe as ei,ff as ej,fg as $j,fh as Zk,fi as Fl,fj as Fm,fk as Qn,fl as Jo,fm as Jp,fn as Hq,g as Mc,gb as jf,gc as jg,gd as fh,ge as fi,gf as fj,gg as ak,gh as _k,gi as Gl,gj as Gm,gk as Rn,gl as Ko,gm as Kp,gn as Iq,h as Nc,hb as kf,hc as kg,hd as gh,he as gi,hf as gj,hg as bk,hi as Hl,hj as Hm,hk as Sn,hl as Lo,hm as Lp,hn as Jq,i as Oc,ia as fe,ib as lf,ic as lg,id as hh,ie as hi,if as hj,ig as ck,ih as $k,ii as Il,ij as Im,ik as Tn,il as Mo,im as Mp,in as Kq,j as Pc,ja as je,jb as mf,jc as mg,jd as ih,je as ii,jf as ij,ji as Jl,jk as Un,jl as No,jm as Np,jn as Lq,k as Qc,ka as ke,kb as nf,kc as ng,kd as jh,ke as ji,kf as jj,ki as Kl,kj as Jm,kl as Oo,km as Op,kn as Mq,l as Rc,la as le,lb as of,lc as og,ld as kh,le as ki,lf as kj,li as Ll,lj as Km,lk as Vn,ll as Po,lm as Pp,ln as Nq,m as Sc,ma as oe,mb as pf,mc as pg,md as lh,me as li,mf as lj,mi as Ml,mj as Lm,ml as Qo,mm as Qp,mn as Oq,n as Tc,na as pe,nb as qf,nc as qg,nd as mh,ne as mi,nf as mj,ni as Nl,nj as Mm,nk as Wn,nl as Ro,nm as Rp,nn as Pq,o as Uc,oa as qe,ob as rf,oc as rg,od as nh,oe as ni,of as nj,oi as Ol,oj as Nm,ol as So,om as Sp,on as Qq,p as Vc,pa as re,pb as sf,pc as sg,pd as oh,pe as oi,pf as oj,pi as Pl,pj as Om,pl as To,pm as Tp,pn as Rq,q as Wc,qa as se,qb as tf,qc as tg,qd as ph,qe as pi,qf as pj,qi as Ql,qj as Pm,ql as Uo,qm as Up,qn as Sq,r as Xc,ra as te,rb as uf,rc as ug,rd as qh,re as qi,rf as qj,ri as Rl,rj as Qm,rl as Vo,rm as Vp,rn as Tq,s as Yc,sa as ue,sb as vf,sc as vg,sd as rh,se as ri,sf as rj,sg as dk,si as Sl,sj as Rm,sl as Wo,sm as Wp,sn as Uq,t as Zc,ta as ve,tb as wf,tc as wg,td as sh,te as si,tf as sj,tg as ek,ti as Tl,tj as Sm,tl as Xo,tm as Xp,tn as Vq,u as _c,ua as we,ub as xf,uc as xg,ud as th,ue as ti,uf as tj,ug as fk,ui as Ul,uj as Tm,uk as Xn,ul as Yo,um as Yp,un as Wq,v as $c,va as xe,vb as yf,vc as yg,vd as uh,ve as ui,vf as uj,vg as gk,vi as Vl,vj as Um,vk as Yn,vl as Zo,vm as Zp,vn as Xq,w as ad,wa as ye,wb as zf,wc as zg,wd as vh,we as vi,wf as vj,wg as hk,wi as Wl,wj as Vm,wk as Zn,wl as _o,wm as _p,x as bd,xa as ze,xb as Af,xc as Ag,xd as wh,xe as wi,xf as wj,xg as ik,xi as Xl,xj as Wm,xk as _n,xl as $o,xm as $p,y as cd,ya as Ae,yb as Bf,yc as Bg,yd as xh,ye as xi,yf as xj,yg as jk,yi as Yl,yj as Xm,yk as $n,yl as ap,ym as aq,z as dd,za as Be,zb as Cf,zc as Cg,zd as yh,ze as yi,zg as kk,zi as Zl,zj as Ym,zk as ao,zl as bp,zm as bq}from"./chunk-SHBVCB2A.js";import{$ as I,$a as za,$b as zb,$c as dc,$d as ge,A as h,Aa as _,Ab as _a,Ad as Dc,B as i,Ba as $,Bb as $a,Bd as Ec,C as j,Ca as aa,Cb as ab,Cd as Fc,D as k,Da as ba,Db as bb,Dd as Gc,E as l,Ea as ca,Eb as cb,Ed as Hc,F as m,Fa as da,Fb as db,Fd as yd,G as n,Ga as ea,Gb as eb,Gd as zd,H as o,Ha as fa,Hb as fb,Hd as Ad,I as p,Ia as ga,Ib as gb,Id as Bd,J as q,Ja as ha,Jb as hb,Jd as Cd,K as r,Ka as ia,Kb as ib,Kd as Dd,L as s,La as ja,Lb as jb,Ld as Ed,M as t,Ma as ka,Mb as kb,Md as Fd,N as u,Na as la,Nb as lb,Nd as Gd,O as v,Oa as ma,Ob as mb,Od as Hd,P as w,Pa as na,Pb as nb,Pd as Id,Q as x,Qa as oa,Qb as ob,Qd as Jd,R as y,Ra as pa,Rb as pb,Rc as Vb,Rd as Kd,S as z,Sa as qa,Sb as qb,Sc as Wb,Sd as Ld,T as A,Ta as ra,Tb as rb,Tc as Xb,Td as Md,U as B,Ua as sa,Ub as sb,Uc as Yb,Ud as Nd,V as C,Va as ta,Vb as tb,Vc as Zb,Vd as Od,W as D,Wa as ua,Wb as ub,Wc as _b,Wd as Pd,X as E,Xa as va,Xb as vb,Xc as $b,Xd as Qd,Y as F,Ya as wa,Yb as wb,Yc as ac,Yd as Rd,Z as G,Za as xa,Zb as xb,Zc as bc,Zd as Sd,_ as H,_a as ya,_b as yb,_c as cc,_d as Td,aa as J,ab as Aa,ac as Ab,ad as ec,ae as he,b as a,ba as K,bb as Ba,bc as Bb,bd as fc,be as ie,c as b,ca as L,cb as Ca,cc as Cb,cd as gc,d as c,da as M,db as Da,dc as Db,dd as hc,de as Ok,ea as N,eb as Ea,ec as Eb,ed as ic,ee as Pk,fa as O,fb as Fa,fc as Fb,fd as jc,fe as Qk,ga as P,gb as Ga,gc as Gb,gd as kc,ge as Rk,h as d,ha as Q,hb as Ha,hc as Hb,hd as lc,he as Sk,i as e,ia as R,ib as Ia,ic as Ib,id as mc,ie as Tk,j as f,ja as S,jb as Ja,jc as Jb,jd as nc,je as Uk,k as g,ka as T,kb as Ka,kc as Kb,kd as oc,ke as en,la as U,lb as La,ld as pc,le as fn,mb as Ma,mc as Lb,md as qc,me as gn,nb as Na,nc as Mb,nd as rc,ne as hn,ob as Oa,oc as Nb,od as sc,oe as jn,pa as V,pb as Pa,pc as Ob,pd as tc,pe as kn,qb as Qa,qc as Pb,qd as uc,qe as ln,rb as Ra,rd as vc,re as mn,sb as Sa,sd as wc,se as nn,tb as Ta,tc as Qb,td as xc,te as on,ub as Ua,uc as Rb,ud as yc,ue as pn,vb as Va,vc as Sb,vd as zc,wa as W,wb as Wa,wc as Tb,xa as X,xb as Xa,xc as Ub,xd as Ac,ya as Y,yb as Ya,yd as Bc,za as Z,zb as Za,zd as Cc}from"./chunk-VEQE4EAQ.js";import"./chunk-TWIC4BKL.js";import"./chunk-JAFVB6DI.js";import{b as me,c as ne}from"./chunk-A5A5SUZN.js";import"./chunk-YUXORC52.js";export{vb as ACTIVATE_SKILL_TOOL_NAME,Mo as ADMIN_POLICY_TIER,Ro as ALLOWED_MCP_SERVER_PRIORITY,Po as ALLOWED_TOOLS_FLAG_PRIORITY,xc as ALL_BUILTIN_TOOL_NAMES,So as ALWAYS_ALLOW_PRIORITY,n as ALWAYS_ALLOW_PRIORITY_FRACTION,o as ALWAYS_ALLOW_PRIORITY_OFFSET,mc as ASK_USER_DISPLAY_NAME,Gb as ASK_USER_OPTION_PARAM_DESCRIPTION,Fb as ASK_USER_OPTION_PARAM_LABEL,yb as ASK_USER_PARAM_QUESTIONS,Ab as ASK_USER_QUESTION_PARAM_HEADER,Db as ASK_USER_QUESTION_PARAM_MULTI_SELECT,Cb as ASK_USER_QUESTION_PARAM_OPTIONS,Eb as ASK_USER_QUESTION_PARAM_PLACEHOLDER,zb as ASK_USER_QUESTION_PARAM_QUESTION,Bb as ASK_USER_QUESTION_PARAM_TYPE,xb as ASK_USER_TOOL_NAME,eq as AbortError,Nd as AccountSuspendedError,Ng as ActionStatus,gl as ActivateSkillTool,Kh as ActivityDetector,Xh as ActivityMonitor,Wh as ActivityType,Rg as AdminControlsSettingsSchema,Dm as AfterAgentHookOutput,Cm as AfterModelHookOutput,fm as AgentExecutionBlockedError,em as AgentExecutionStoppedError,Qn as AgentLoadError,pq as AgentSession,Cn as AgentTerminateMode,If as ApiErrorEvent,Hh as ApiKeyUpdatedEvent,Hf as ApiRequestEvent,Le as ApiRequestPhase,Jf as ApiResponseEvent,j as ApprovalMode,Ol as AskUserInvocation,Nl as AskUserTool,zp as AuthProviderType,Hk as AuthType,Rc as BINARY_EXTENSIONS,Jc as BINARY_FILE_PATTERNS,Pd as BadRequestError,v as BaseDeclarativeTool,Qj as BaseLlmClient,t as BaseToolInvocation,Am as BeforeModelHookOutput,zm as BeforeToolHookOutput,Bm as BeforeToolSelectionHookOutput,nk as CODE_ASSIST_API_VERSION,mk as CODE_ASSIST_ENDPOINT,Lc as COMMON_DIRECTORY_EXCLUDES,Ic as COMMON_IGNORE_PATTERNS,pk as CacheService,Ld as CanceledError,Qd as ChangeAuthRequestedError,th as ChatRecordingService,fh as ClearcutLogger,xj as CloseDiffRequestSchema,ok as CodeAssistServer,nl as ColorMode,km as CompressionStatus,Bp as Config,Ap as ConfigSchema,rm as ConfigSource,Lf as ConsecaPolicyGenerationEvent,Mf as ConsecaVerdictEvent,qn as ContextManager,Tf as ConversationFinishedEvent,Mg as ConversationInteractionInteraction,ge as CoreEvent,he as CoreEventEmitter,ke as CoreToolCallStatus,Dh as CreditPurchaseClickEvent,Fh as CreditsUsedEvent,Ac as DEFAULT_CONTEXT_FILENAME,Go as DEFAULT_CORE_POLICIES_DIR,Uc as DEFAULT_ENCODING,go as DEFAULT_FAST_ACK_MODEL_CONFIG_KEY,Oc as DEFAULT_FILE_EXCLUDES,Pk as DEFAULT_FILE_FILTERING_OPTIONS,ja as DEFAULT_GEMINI_EMBEDDING_MODEL,ba as DEFAULT_GEMINI_FLASH_LITE_MODEL,aa as DEFAULT_GEMINI_FLASH_MODEL,$ as DEFAULT_GEMINI_MODEL,ea as DEFAULT_GEMINI_MODEL_AUTO,Yi as DEFAULT_GUI_EDITOR,Kj as DEFAULT_MAX_ATTEMPTS,ho as DEFAULT_MAX_INPUT_CHARS,Sb as DEFAULT_MAX_LINES_TEXT_FILE,io as DEFAULT_MAX_OUTPUT_CHARS,Fn as DEFAULT_MAX_TIME_MINUTES,En as DEFAULT_MAX_TURNS,Ok as DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,dn as DEFAULT_MODEL_CONFIGS,hi as DEFAULT_OTLP_ENDPOINT,Io as DEFAULT_POLICY_TIER,Dn as DEFAULT_QUERY_STRING,gi as DEFAULT_TELEMETRY_TARGET,ka as DEFAULT_THINKING_MODE,pm as DEFAULT_TOKEN_LIMIT,xp as DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,wc as DISCOVERED_TOOL_PREFIX,ub as DOCS_PARAM_PATH,u as DeclarativeTool,ym as DefaultHookOutput,ac as DiscoveredMCPTool,$b as DiscoveredMCPToolInvocation,Mk as DiscoveredTool,$i as EDITOR_DISPLAY_NAMES,lc as EDIT_DISPLAY_NAME,db as EDIT_PARAM_ALLOW_MULTIPLE,ab as EDIT_PARAM_INSTRUCTION,cb as EDIT_PARAM_NEW_STRING,bb as EDIT_PARAM_OLD_STRING,$a as EDIT_TOOL_NAME,cc as EDIT_TOOL_NAMES,Jb as ENTER_PLAN_MODE_TOOL_NAME,Gh as EVENT_API_KEY_UPDATED,Eh as EVENT_CREDITS_USED,Ch as EVENT_CREDIT_PURCHASE_CLICK,Ah as EVENT_EMPTY_WALLET_MENU_SHOWN,wh as EVENT_OVERAGE_MENU_SHOWN,yh as EVENT_OVERAGE_OPTION_SELECTED,Oo as EXCLUDE_TOOLS_FLAG_PRIORITY,Hb as EXIT_PLAN_MODE_TOOL_NAME,Ib as EXIT_PLAN_PARAM_PLAN_FILENAME,Jo as EXTENSION_POLICY_TIER,Xj as EditTool,Bh as EmptyWalletMenuShownEvent,Ef as EndSessionEvent,ql as ExecutionLifecycleService,dq as ExitCodes,uo as ExperimentFlags,$f as ExtensionDisableEvent,Zf as ExtensionEnableEvent,Vf as ExtensionInstallEvent,Gp as ExtensionIntegrityDataSchema,Kp as ExtensionIntegrityManager,Hp as ExtensionIntegrityMapSchema,_o as ExtensionLoader,Xf as ExtensionUninstallEvent,Yf as ExtensionUpdateEvent,Lj as FETCH_FAILED_MESSAGE,gg as FORCE_FILE_STORAGE_ENV_VAR,Nn as FRONTMATTER_REGEX,Ed as FatalAuthenticationError,Kd as FatalCancellationError,Hd as FatalConfigError,Dd as FatalError,Fd as FatalInputError,Gd as FatalSandboxError,Jd as FatalToolExecutionError,Id as FatalTurnLimitedError,Sg as FetchAdminControlsResponseSchema,yl as FetchError,Zk as FileDiscoveryService,Pc as FileExclusions,He as FileOperation,qj as FileSchema,gq as FileSearchFactory,Kf as FlashFallbackEvent,kq as FolderTrustDiscoveryService,Md as ForbiddenError,Tg as G1_CREDIT_TYPE,Xg as G1_UTM_CAMPAIGNS,kj as GEMINI_CLI_COMPANION_EXTENSION_NAME,rl as GEMINI_CLI_IDENTIFICATION_ENV_VAR,sl as GEMINI_CLI_IDENTIFICATION_ENV_VAR_VALUE,I as GEMINI_DIR,Qk as GEMINI_IGNORE_FILE_NAME,fa as GEMINI_MODEL_ALIAS_AUTO,ha as GEMINI_MODEL_ALIAS_FLASH,ia as GEMINI_MODEL_ALIAS_FLASH_LITE,ga as GEMINI_MODEL_ALIAS_PRO,se as GEN_AI_AGENT_DESCRIPTION,re as GEN_AI_AGENT_NAME,Fe as GEN_AI_CONVERSATION_ID,te as GEN_AI_INPUT_MESSAGES,qe as GEN_AI_OPERATION_NAME,ue as GEN_AI_OUTPUT_MESSAGES,xe as GEN_AI_PROMPT_NAME,ve as GEN_AI_REQUEST_MODEL,we as GEN_AI_RESPONSE_MODEL,De as GEN_AI_SYSTEM_INSTRUCTIONS,ze as GEN_AI_TOOL_CALL_ID,Ee as GEN_AI_TOOL_DEFINITIONS,Ae as GEN_AI_TOOL_DESCRIPTION,ye as GEN_AI_TOOL_NAME,Be as GEN_AI_USAGE_INPUT_TOKENS,Ce as GEN_AI_USAGE_OUTPUT_TOKENS,tb as GET_INTERNAL_DOCS_TOOL_NAME,oc as GLOB_DISPLAY_NAME,Fa as GLOB_TOOL_NAME,J as GOOGLE_ACCOUNTS_FILENAME,Wd as GOVERNANCE_FILES,qc as GREP_DISPLAY_NAME,Oa as GREP_PARAM_AFTER,Pa as GREP_PARAM_BEFORE,Na as GREP_PARAM_CONTEXT,Ia as GREP_PARAM_EXCLUDE_PATTERN,Ma as GREP_PARAM_FIXED_STRINGS,Ha as GREP_PARAM_INCLUDE_PATTERN,Ka as GREP_PARAM_MAX_MATCHES_PER_FILE,Ja as GREP_PARAM_NAMES_ONLY,Qa as GREP_PARAM_NO_IGNORE,La as GREP_PARAM_TOTAL_MAX_MATCHES,Ga as GREP_TOOL_NAME,ih as GcpLogExporter,hh as GcpMetricExporter,gh as GcpTraceExporter,gm as GeminiChat,Ge as GeminiCliOperation,Im as GeminiClient,jm as GeminiEventType,Me as GenAiOperationName,Ne as GenAiProviderName,Oe as GenAiTokenType,Wk as GitIgnoreParser,Jm as GitService,el as GlobTool,$k as GrepTool,um as HOOKS_CONFIG_FIELDS,Oh as HighWaterMarkTracker,xn as HookAggregator,zn as HookEventHandler,tm as HookEventName,yn as HookPlanner,vn as HookRegistry,wn as HookRunner,An as HookSystem,vm as HookType,yj as IDEConnectionStatus,ch as IDE_DEFINITIONS,lj as IDE_MAX_OPEN_FILES,mj as IDE_MAX_SELECTED_TEXT_LENGTH,nj as IDE_REQUEST_TIMEOUT_MS,Mj as INCOMPLETE_JSON_MESSAGE,Yl as INITIAL_HISTORY_LENGTH,Rk as INTEGRITY_FILENAME,Sk as INTEGRITY_KEY_FILENAME,zj as IdeClient,Sf as IdeConnectionEvent,Rf as IdeConnectionType,sj as IdeContextNotificationSchema,rj as IdeContextSchema,oj as IdeContextStore,tj as IdeDiffAcceptedNotificationSchema,vj as IdeDiffClosedNotificationSchema,uj as IdeDiffRejectedNotificationSchema,l as InProcessCheckerType,tk as IneligibleTierError,Jg as IneligibleTierReasonCode,Og as InitiationMethod,Co as InjectionService,Jp as IntegrityDataStatus,Ep as IntegrityStatus,Ip as IntegrityStoreSchema,dm as InvalidStreamError,Cp as JsonFormatter,bn as JsonStreamEventType,Tk as KEYCHAIN_SERVICE_NAME,eg as KEYCHAIN_TEST_PREFIX,dg as KeychainSchema,hg as KeychainService,ig as KeychainTokenStorage,F as Kind,Vk as LSTool,pc as LS_DISPLAY_NAME,Sa as LS_PARAM_IGNORE,Ra as LS_TOOL_NAME,Aq as LegacyAgentSession,Cf as LlmRole,so as LocalAgentExecutor,ae as LocalSandboxManager,$p as Logger,zk as LoggingContentGenerator,Ub as MAX_FILE_SIZE_MB,Tb as MAX_LINE_LENGTH_TEXT_FILE,dp as MCPDiscoveryState,ap as MCPOAuthProvider,Wn as MCPOAuthTokenStorage,yp as MCPServerConfig,cp as MCPServerStatus,bp as MCP_DEFAULT_TIMEOUT_MSEC,No as MCP_EXCLUDED_PRIORITY,Vb as MCP_QUALIFIED_NAME_SEPARATOR,Wb as MCP_TOOL_PREFIX,Kc as MEDIA_FILE_PATTERNS,sb as MEMORY_PARAM_FACT,Bc as MEMORY_SECTION_HEADER,rb as MEMORY_TOOL_NAME,_g as MIN_CREDIT_BALANCE,k as MODES_BY_PERMISSIVENESS,G as MUTATOR_KINDS,ep as McpClient,Qg as McpConfigDefinitionSchema,Je as MemoryMetricType,Qh as MemoryMonitor,Hc as MemoryTool,tn as MessageBus,q as MessageBusType,Yp as MessageSenderType,cn as ModelConfigService,Dj as ModelNotFoundError,$m as ModelRouterService,_f as ModelSlashCommandEvent,Xi as NO_EDITOR_AVAILABLE_ERROR,Uf as NetworkRetryAttemptEvent,$d as NoopSandboxManager,Em as NotificationType,Vn as OAuthUtils,vl as OUTPUT_UPDATE_INTERVAL_MS,Ug as OVERAGE_ELIGIBLE_MODELS,Lg as OnboardUserStatusCode,bg as OnboardingStartEvent,cg as OnboardingSuccessEvent,wj as OpenDiffRequestSchema,an as OutputFormat,xh as OverageMenuShownEvent,zh as OverageOptionSelectedEvent,Aa as PARAM_CASE_SENSITIVE,Ea as PARAM_DESCRIPTION,ya as PARAM_DIR_PATH,Da as PARAM_FILE_FILTERING_OPTIONS,xa as PARAM_FILE_PATH,za as PARAM_PATTERN,Ca as PARAM_RESPECT_GEMINI_IGNORE,Ba as PARAM_RESPECT_GIT_IGNORE,Kb as PLAN_MODE_PARAM_REASON,yc as PLAN_MODE_TOOLS,Y as PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,_ as PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,X as PREVIEW_GEMINI_3_1_MODEL,Z as PREVIEW_GEMINI_FLASH_MODEL,W as PREVIEW_GEMINI_MODEL,da as PREVIEW_GEMINI_MODEL_AUTO,m as PRIORITY_SUBAGENT_TOOL,p as PRIORITY_YOLO_ALLOW_ALL,Mc as PYTHON_EXCLUDES,Ie as PerformanceMetricType,Ql as PlanErrorMessages,h as PolicyDecision,un as PolicyEngine,Fp as PolicyIntegrityManager,Hm as PreCompressTrigger,zl as PrivateIpError,rk as ProjectIdRequiredError,r as QuestionType,nc as READ_FILE_DISPLAY_NAME,Va as READ_FILE_PARAM_END_LINE,Ua as READ_FILE_PARAM_START_LINE,Ta as READ_FILE_TOOL_NAME,tc as READ_MANY_FILES_DISPLAY_NAME,mb as READ_MANY_FILES_TOOL_NAME,ob as READ_MANY_PARAM_EXCLUDE,nb as READ_MANY_PARAM_INCLUDE,pb as READ_MANY_PARAM_RECURSIVE,qb as READ_MANY_PARAM_USE_DEFAULT_EXCLUDES,H as READ_ONLY_KINDS,Rb as REFERENCE_CONTENT_END,Qb as REFERENCE_CONTENT_START,je as ROOT_SCHEDULER_ID,Ph as RateLimiter,_k as ReadFileTool,Bq as ReadManyFilesTool,Gk as RecordingContentGenerator,ek as ReleaseChannel,Pg as RequiredMcpServerConfigSchema,Lk as ResourceRegistry,Fj as RetryableQuotaError,Pf as RewindEvent,cl as RipGrepTool,tl as SCROLLBACK_LIMIT,Xd as SECRET_FILES,Uk as SECRET_KEY_ACCOUNT,fg as SECRET_PREFIX,pe as SERVICE_DESCRIPTION,oe as SERVICE_NAME,sh as SESSION_FILE_PREFIX,Xa as SHELL_PARAM_COMMAND,Ya as SHELL_PARAM_IS_BACKGROUND,Wa as SHELL_TOOL_NAME,jd as SHELL_TOOL_NAMES,wb as SKILL_PARAM_NAME,In as SUBAGENT_CANCELLED_ERROR_MESSAGE,Hn as SUBAGENT_REJECTED_ERROR_PREFIX,bm as SYNTHETIC_THOUGHT_SIGNATURE,Nc as SYSTEM_FILE_EXCLUDES,Lm as SandboxedFileSystemService,eo as Scheduler,d as SchemaValidator,tf as SemanticAttributes,Gm as SessionEndReason,Fm as SessionStartSource,ul as ShellExecutionService,xl as ShellTool,wl as ShellToolInvocation,$o as SimpleExtensionLoader,vo as SkillManager,Of as SlashCommandStatus,ne as SpanStatusCode,Km as StandardFileSystemService,Df as StartSessionEvent,di as StartupProfiler,V as Storage,am as StreamEventType,Dp as StreamJsonFormatter,Gn as SubagentActivityErrorType,Qm as TASK_TYPE_LABELS,ib as TODOS_ITEM_PARAM_DESCRIPTION,jb as TODOS_ITEM_PARAM_STATUS,hb as TODOS_PARAM_TODOS,dc as TOOLS_REQUIRING_NARROWING,uc as TOOL_LEGACY_ALIASES,fd as TOOL_OUTPUTS_DIR,Pb as TOPIC_PARAM_STRATEGIC_INTENT,Ob as TOPIC_PARAM_SUMMARY,Nb as TOPIC_PARAM_TITLE,ic as TRACKER_ADD_DEPENDENCY_TOOL_NAME,ec as TRACKER_CREATE_TASK_TOOL_NAME,gc as TRACKER_GET_TASK_TOOL_NAME,hc as TRACKER_LIST_TASKS_TOOL_NAME,fc as TRACKER_UPDATE_TASK_TOOL_NAME,jc as TRACKER_VISUALIZE_TOOL_NAME,Qo as TRUSTED_MCP_SERVER_PRIORITY,Rm as TaskStatus,Sm as TaskStatusSchema,Om as TaskType,Pm as TaskTypeSchema,fi as TelemetryTarget,Ej as TerminalQuotaError,le as ToolCallDecision,Gf as ToolCallEvent,E as ToolConfirmationOutcome,b as ToolErrorType,Ke as ToolExecutionPhase,co as ToolExecutor,Wf as ToolOutputTruncatedEvent,Nk as ToolRegistry,Zm as TrackerAddDependencyTool,Vm as TrackerCreateTaskTool,Xm as TrackerGetTaskTool,Ym as TrackerListTasksTool,rn as TrackerService,Tm as TrackerTaskSchema,Wm as TrackerUpdateTaskTool,_m as TrackerVisualizeTool,lm as Turn,Mb as UPDATE_TOPIC_DISPLAY_NAME,Lb as UPDATE_TOPIC_TOOL_NAME,Ij as UPGRADE_URL_PAGE,Lo as USER_POLICY_TIER,ko as USER_STEERING_INSTRUCTION,uh as UiTelemetryService,Od as UnauthorizedError,fe as UserAccountManager,Ff as UserPromptEvent,Kg as UserTierId,ca as VALID_GEMINI_MODELS,sk as ValidationCancelledError,Gj as ValidationRequiredError,me as ValueType,sc as WEB_FETCH_DISPLAY_NAME,lb as WEB_FETCH_PARAM_PROMPT,kb as WEB_FETCH_TOOL_NAME,rc as WEB_SEARCH_DISPLAY_NAME,fb as WEB_SEARCH_PARAM_QUERY,eb as WEB_SEARCH_TOOL_NAME,Ko as WORKSPACE_POLICY_TIER,kc as WRITE_FILE_DISPLAY_NAME,_a as WRITE_FILE_PARAM_CONTENT,Za as WRITE_FILE_TOOL_NAME,gb as WRITE_TODOS_TOOL_NAME,Lq as WarningPriority,ag as WebFetchFallbackAttemptEvent,Ll as WebFetchTool,Ml as WebSearchTool,Ud as WindowsSandboxManager,sn as WorkspaceContext,Nq as WorktreeService,_j as WriteFileTool,Nm as WriteTodosTool,fk as _clearCache,gp as addMCPStatusChangeListener,Vp as addMemory,ej as allowEditorTypeInSandbox,Ni as appendToLastTextPart,aq as applyAdminAllowlist,Tj as applyReplacement,bq as applyRequiredServers,Tl as assumeExhaustive,Dg as authEvents,Yg as buildG1Url,Um as buildTodosReturnDisplay,tq as buildToolResponseData,lo as buildUserSteeringHintPrompt,Ih as bytesToMB,Uj as calculateReplacement,al as canUseRipgrep,mn as categorizeAndConcatenate,Ul as checkExhaustive,ao as checkPolicy,Hj as classifyGoogleError,Uq as cleanupWorktree,Fk as clearApiKey,Hg as clearCachedCredentialFile,Ho as clearEmittedPolicyWarnings,Gg as clearOauthClientCache,Bf as computeModelAddedAndRemovedLines,gn as concatenateInstructions,op as connectAndDiscover,up as connectToMcpServer,rq as contentPartsToGeminiParts,pl as convertColorToHex,Kl as convertGithubUrlToRaw,jq as convertSessionToClientHistory,Oi as convertToFunctionResponse,iq as convertToRestPayload,ie as coreEvents,qk as createCache,Ak as createCodeAssistContentGenerator,Kk as createContentGenerator,Jk as createContentGeneratorConfig,bk as createConversationOffered,xm as createHookOutput,Yo as createPolicyEngineConfig,Zo as createPolicyUpdater,Fl as createSafeProxyAgent,Vd as createSandboxManager,bi as createSessionId,uq as createTranslationState,vp as createTransport,ro as createUnauthorizedToolError,mg as createWorkingStdio,Rq as createWorktree,Oq as createWorktreeService,a as debugLogger,_p as decodeTagName,en as deduplicatePathsByFileIdentity,qh as deleteSessionArtifactsAsync,rh as deleteSubagentSessionDirAndArtifactsAsync,Vc as detectBOM,ml as detectEncodingFromBuffer,ad as detectFileType,eh as detectIdeFromEnv,wf as detectLineEnding,vg as disableBracketedPasteMode,rg as disableKittyKeyboardProtocol,xg as disableLineWrapping,tg as disableModifyOtherKeys,pg as disableMouseEvents,ng as disableMouseTracking,mp as discoverMcpTools,qp as discoverPrompts,rp as discoverResources,pp as discoverTools,_n as doesToolInvocationMatch,ug as enableBracketedPasteMode,qg as enableKittyKeyboardProtocol,wg as enableLineWrapping,sg as enableModifyOtherKeys,og as enableMouseEvents,Zp as encodeTagName,bl as ensureRgPath,yg as enterAlternateScreen,P as escapePath,qd as escapeShellArg,yk as estimateContextBreakdown,xd as execStreaming,zg as exitAlternateScreen,Qc as extractExtensionsFromPatterns,id as extractStringFromParseEntry,xo as fetchAdminControls,yo as fetchAdminControlsOnce,Gl as fetchWithTimeout,cd as fileExists,fq as filter,Yk as findGitRoot,_d as findSecretFiles,Mi as flatMapTextParts,Un as flattenMemory,ki as flushTelemetry,no as formatBackgroundCompletionForModel,Jh as formatBytes,Op as formatCheckpointDisplayList,Vq as formatForSpeech,Zb as formatMcpToolName,Wo as formatPolicyError,ck as formatProtoJsonDuration,ed as formatTruncatedToolOutput,mo as formatUserHintsForModel,qq as geminiPartsToContentParts,Np as generateCheckpointFileName,qo as generateFastAckText,oo as generateSteeringAckMessage,mq as generateSummary,bc as generateValidName,Lh as getActivityDetector,Zh as getActivityMonitor,Bo as getAdminBlockedMcpServersMessage,Ao as getAdminErrorMessage,Ln as getAgentCardLoadOptions,Ec as getAllGeminiMdFilenames,kp as getAllMCPServerStatuses,To as getAlwaysAllowPriorityFraction,Vl as getApprovalModeDescription,Ik as getAuthTypeFromEnv,Fg as getAvailablePort,jl as getCachedEncodingForBuffer,Rp as getCheckpointInfoList,Wi as getCitations,Bk as getCodeAssistServer,hd as getCommandName,td as getCommandRoot,ud as getCommandRoots,Mq as getCompatibilityWarnings,om as getCompressionPrompt,Cg as getConsentForOauth,cf as getConventionAttributes,nm as getCoreSystemPrompt,Zj as getCorrectedFileContent,Dc as getCurrentGeminiMdFilename,ij as getDiffCommand,Zl as getDirectoryContextString,na as getDisplayString,dj as getEditorCommand,aj as getEditorDisplayName,_l as getEnvironmentContext,ln as getEnvironmentMemoryPaths,Bd as getErrorMessage,Vj as getErrorReplaceResult,Cj as getErrorStatus,Cd as getErrorType,Bn as getExperiments,kn as getExtensionMemoryPaths,Af as getFileDiffFromResultDisplay,fl as getFolderStructure,cq as getFsErrorMessage,Qi as getFunctionCalls,Si as getFunctionCallsAsJson,Ri as getFunctionCallsFromParts,Ti as getFunctionCallsFromPartsAsJson,Zg as getG1CreditBalance,Fc as getGlobalMemoryFilePath,hn as getGlobalMemoryPaths,wm as getHookKey,i as getHookSource,nq as getIdeInstaller,$l as getInitialChatHistory,lp as getMCPDiscoveryState,oq as getMCPServerPrompts,jp as getMCPServerStatus,Sh as getMemoryMonitor,Eg as getOauthClient,dk as getPackageJson,de as getPathIdentity,Wl as getPlanModeExitMessage,$n as getPolicyDenialError,Uo as getPolicyDirectories,Vo as getPolicyTier,lq as getPreviousSession,R as getProjectHash,Gc as getProjectMemoryFilePath,Pq as getProjectRootForWorktree,Sj as getPromptIdWithFallback,hl as getPty,Zc as getRealPath,gk as getReleaseChannel,Mn as getRemoteAgentTargetUrl,Li as getResponseText,Pi as getResponseTextFromParts,Nj as getRetryErrorType,Zd as getSecretFileFindArgs,od as getShellConfiguration,Xc as getSpecificMimeType,Ui as getStructuredResponse,Vi as getStructuredResponseFromParts,kl as getSystemEncoding,vc as getToolAliases,Mp as getToolCallDataSchema,Zn as getToolSuggestion,Pp as getTruncatedCheckpointNames,jn as getUserProjectMemoryPaths,kk as getVersion,Qq as getWorktreePath,Jj as handleFallback,x as hasCycleInSchema,tp as hasNetworkTransport,rd as hasRedirection,z as hasSummary,bj as hasValidEditorCommand,cj as hasValidEditorCommandAsync,Tq as hasWorktreeChanges,K as homedir,pj as ideContextStore,Yh as initializeActivityMonitor,Rh as initializeMemoryMonitor,ld as initializeShellParsers,ji as initializeTelemetry,sp as invokeMcpPrompt,Ad as isAbortError,Sd as isAccountSuspendedError,wa as isActiveModel,Dl as isAddressPrivate,wk as isApiError,Iq as isAppleTerminal,Td as isAuthenticationError,ua as isAutoModel,s as isBackgroundExecutionData,vf as isBinary,$c as isBinaryFile,dh as isCloudShell,Pl as isCompletedAskUserTool,sa as isCustomModel,Hq as isDumbTerminal,Wj as isEditToolParams,fj as isEditorAvailable,gj as isEditorAvailableAsync,_c as isEmpty,wp as isEnabled,c as isFatalToolError,D as isFileDiff,ra as isGemini2Model,qa as isGemini3Model,Sq as isGeminiWorktree,Xk as isGitRepository,Fq as isGnuScreen,A as isGrepResult,Zi as isGuiEditor,Bg as isHeadlessMode,im as isInvalidArgumentError,Dq as isJetBrainsTerminal,B as isListResult,Bl as isLoopbackHost,Gq as isLowColorTmux,_b as isMcpToolAnnotation,Xb as isMcpToolName,hk as isNightly,zd as isNodeError,Vg as isOverageEligibleModel,of as isPerformanceMonitoringActive,ik as isPreview,oa as isPreviewModel,Cl as isPrivateIp,El as isPrivateIpAsync,pa as isProModel,C as isReadManyFilesResult,g as isRecord,Oj as isRetryableError,hm as isSchemaDepthError,Yd as isSecretFile,jk as isStable,xk as isStructuredError,y as isStructuredToolResult,Jn as isSubagentProgress,T as isSubpath,ii as isTelemetrySdkInitialized,_i as isTerminalEditor,Eq as isTmux,w as isTool,Kn as isToolActivityError,Xn as isToolCallResponseInfo,Nh as isUserActive,sm as isUserVisibleHook,cm as isValidNonThoughtTextPart,zc as isValidToolName,pd as isWindows,Cq as isWindows10,Yc as isWithinRoot,Yj as isWriteFileToolParams,e as jsonToMarkdown,Lp as listExtensions,Xp as listMemoryFiles,Tn as loadAgentsFromDirectory,Dk as loadApiKey,Xo as loadExtensionPolicies,pn as loadJitSubdirectoryMemory,Eo as loadPoliciesFromToml,nn as loadServerHierarchicalMemory,Pn as loadSkillFromFile,On as loadSkillsFromDir,Tc as loadWasmBinary,si as logApiError,qi as logApiRequest,ti as logApiResponse,Ji as logBillingEvent,yi as logChatCompression,mi as logCliConfiguration,mh as logConsecaPolicyGeneration,nh as logConsecaVerdict,xi as logConversationFinishedEvent,Fi as logExtensionDisable,Ei as logExtensionEnable,Bi as logExtensionInstallEvent,Ci as logExtensionUninstall,Di as logExtensionUpdateEvent,ri as logFlashFallback,wi as logIdeConnection,Ai as logModelSlashCommand,zi as logNetworkRetryAttempt,Hi as logOnboardingStart,Ii as logOnboardingSuccess,vi as logRewind,ui as logSlashCommand,oi as logToolCall,pi as logToolOutputTruncated,ni as logUserPrompt,Gi as logWebFetchFallbackAttempt,Qf as makeChatCompressionEvent,Wq as makeFakeConfig,O as makeRelative,Nf as makeSlashCommandEvent,yq as mapError,wq as mapFinishReason,xq as mapHttpToGrpcStatus,zq as mapUsage,Sn as markdownToAgentDefinition,fp as mcpServerRequiresOAuth,S as normalizePath,jo as normalizeSpace,Il as normalizeUrl,Aj as openBrowserSecurely,jj as openDiff,Rn as parseAgentMarkdown,hq as parseAndFormatApiError,md as parseBashCommandDetails,jh as parseBooleanEnvFlag,nd as parseCommandDetails,yd as parseGoogleApiError,Yb as parseMcpToolName,Jl as parsePrompt,kh as parseTelemetryTargetValue,oh as parseThought,Xl as partListUnionToString,Ki as partToString,lg as patchStdio,Tp as performInit,Sp as performRestore,np as populateMcpServerCommand,Qp as processRestorableToolCalls,bd as processSingleFileContent,Rj as promptIdContext,Wc as readFileWithEncoding,fn as readGeminiMdFiles,Xq as readPathFromWorkspace,Do as readPolicyFiles,Sc as readWasmBinaryFromDisk,Se as recordApiErrorMetrics,kf as recordApiRequestBreakdown,qf as recordApiResponseMetrics,nf as recordBaselineComparison,Ze as recordContentRetry,_e as recordContentRetryFailure,$j as recordConversationOffered,ff as recordCpuUsage,sf as recordCreditPurchaseClick,Th as recordCurrentMemoryUsage,Re as recordCustomApiResponseMetrics,Qe as recordCustomTokenUsageMetrics,Ve as recordExitFail,Te as recordFileOperationMetric,Ue as recordFlickerFrame,bf as recordGenAiClientOperationDuration,af as recordGenAiClientTokenUsage,Xe as recordInvalidChunk,ef as recordMemoryUsage,$e as recordModelRoutingMetrics,rf as recordOverageOptionSelected,mf as recordPerformanceRegression,lf as recordPerformanceScore,Ye as recordRetryAttemptMetrics,We as recordSlowRender,df as recordStartupPerformance,jf as recordTokenEfficiency,pf as recordTokenUsageMetrics,ak as recordToolCallInteractions,Pe as recordToolCallMetrics,hf as recordToolExecutionBreakdown,gf as recordToolQueueDepth,Mh as recordUserActivity,Wp as refreshMemory,on as refreshServerHierarchicalMemory,hp as removeMCPStatusChangeListener,Ck as resetApiKeyCacheForTesting,to as resetBrowserSession,il as resetEncodingCache,Ig as resetOauthClientForTesting,uk as resetUserDataCacheForTesting,lk as resetVersionCache,ma as resolveClassifierModel,hj as resolveEditorAsync,kd as resolveExecutable,la as resolveModel,mm as resolvePathFromEnv,be as resolveSandboxPaths,lh as resolveTelemetrySettings,U as resolveToRealPath,Pj as retryWithBackoff,ci as runInDevTraceSpan,f as safeJsonToMarkdown,uf as safeLiteralReplace,yf as safeTemplateReplace,wo as sanitizeAdminSettings,dd as sanitizeFilenamePart,Al as sanitizeHostname,zf as sanitizeOutput,ce as sanitizePaths,Ek as saveApiKey,gd as saveTruncatedToolOutput,fo as scheduleAgentTools,ol as serializeTerminalToObject,ai as sessionId,Cc as setGeminiMdFilename,Hl as setGlobalProxy,vk as setupUser,N as shortenPath,Mm as shouldAttemptBrowserLaunch,$g as shouldAutoUseCredits,Ag as shouldEnterAlternateScreen,Yn as shouldHideToolCall,Bj as shouldLaunchBrowser,bh as shouldShowEmptyWalletMenu,ah as shouldShowOverageMenu,Up as showMemory,li as shutdownTelemetry,dl as sortFileEntries,wd as spawnAsync,sd as splitCommands,_h as startGlobalActivityMonitoring,Uh as startGlobalMemoryMonitoring,ei as startupProfiler,zo as stopAdminControlsPolling,$h as stopGlobalActivityMonitoring,Vh as stopGlobalMemoryMonitoring,vd as stripShellWrapper,Jq as supports256Colors,ta as supportsModernFeatures,va as supportsMultimodalFunctionResponse,Kq as supportsTrueColor,M as tildeifyPath,L as tmpdir,Rd as toFriendlyError,qm as tokenLimit,sq as toolResultDisplayToContentParts,vq as translateEvent,po as truncateFastAckInput,xf as truncateString,ee as tryRealpath,vh as uiTelemetryService,Q as unescapePath,ip as updateMCPServerStatus,bo as updatePolicy,ph as validateAndSanitizeSessionId,Fo as validateMcpPolicyToolNames,Sl as validatePlanContent,Rl as validatePlanPath,ll as windowsCodePageToEncoding,Wg as wrapInAccountChooser,kg as writeToStderr,jg as writeToStdout};
|