@github/copilot 0.0.366-2 → 0.0.366-4
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/index.js +568 -568
- package/package.json +2 -2
- package/sdk/index.d.ts +3 -0
- package/sdk/index.js +5 -5
package/sdk/index.js
CHANGED
|
@@ -177,7 +177,7 @@ ${I.comment}`:I.comment}this.doc.range[2]=I.offset;break}default:this.errors.pus
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
-
`,n=new URL("/graphql",OX(t)),r=await fetch(n.href,{method:"POST",headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},body:JSON.stringify({query:l})});if(!r.ok)throw new Error(`Failed to fetch Copilot info: ${r.status} ${r.statusText}`);let a=await r.json(),{viewer:s}=a.data;return I.debug(`Fetched Copilot URL for ${s.login} from ${String(n)}: ${r.status} ${s.copilotEndpoints.api}`),s.copilotEndpoints.api}var xK,MX,xOI,F2=m(()=>{"use strict";qd();EI();Rde();xK="https://github.com",MX=class extends Error{constructor(I,l){super(l);this.status=I;this.message=l;this.name="GitHubApiError"}};xOI=ve({data:ve({viewer:ve({isEmployee:xI()})})})});var t3e=y((zOI,e3e)=>{e3e.exports=ift;function ift(t){var e=[];return t.forEach(function(I){/^[A-Za-z0-9_\/-]+$/.test(I)||(I="'"+I.replace(/'/g,"'\\''")+"'",I=I.replace(/^(?:'')+/g,"").replace(/\\'''/g,"\\'")),e.push(I)}),e.join(" ")}});function zK(){return!!CL}function gde(){if(!CL)throw new Error("Settings have not been initialized");return CL}function I3e(t){return CL=t,t}function l3e(){CL=null}var CL,UK=m(()=>{"use strict";CL=null});function n3e(t,e=0){return(Gc[t[e+0]]+Gc[t[e+1]]+Gc[t[e+2]]+Gc[t[e+3]]+"-"+Gc[t[e+4]]+Gc[t[e+5]]+"-"+Gc[t[e+6]]+Gc[t[e+7]]+"-"+Gc[t[e+8]]+Gc[t[e+9]]+"-"+Gc[t[e+10]]+Gc[t[e+11]]+Gc[t[e+12]]+Gc[t[e+13]]+Gc[t[e+14]]+Gc[t[e+15]]).toLowerCase()}var Gc,r3e=m(()=>{Gc=[];for(let t=0;t<256;++t)Gc.push((t+256).toString(16).slice(1))});import{randomFillSync as dft}from"node:crypto";function Fde(){return SK>OK.length-16&&(dft(OK),SK=0),OK.slice(SK,SK+=16)}var OK,SK,a3e=m(()=>{OK=new Uint8Array(256),SK=OK.length});import{randomUUID as Gft}from"node:crypto";var Ade,s3e=m(()=>{Ade={randomUUID:Gft}});function bft(t,e,I){t=t||{};let l=t.random??t.rng?.()??Fde();if(l.length<16)throw new Error("Random bytes length must be >= 16");if(l[6]=l[6]&15|64,l[8]=l[8]&63|128,e){if(I=I||0,I<0||I+16>e.length)throw new RangeError(`UUID byte range ${I}:${I+15} is out of buffer bounds`);for(let n=0;n<16;++n)e[I+n]=l[n];return e}return n3e(l)}function mft(t,e,I){return Ade.randomUUID&&!e&&!t?Ade.randomUUID():bft(t,e,I)}var Es,c3e=m(()=>{s3e();a3e();r3e();Es=mft});var A2=m(()=>{c3e()});var TX,Qde=m(()=>{"use strict";A2();TX=class{settings={};mergePartial(e,I){return{...e,...I}}setBlackbirdMode(e){return e!==void 0&&(e=="tool"||e=="initial-search")&&(this.settings.blackbird=this.mergePartial(this.settings.blackbird,{mode:e})),this}setSwebenchBaseCommit(e){return e!==void 0&&(this.settings.swebench_base_commit=e),this}setGithubUserName(e){if(e!==void 0){let I=this.settings.github?.user||{};this.settings.github=this.mergePartial(this.settings.github,{user:{...I,name:e}})}return this}setGithubUserEmail(e){if(e!==void 0){let I=this.settings.github?.user||{};this.settings.github=this.mergePartial(this.settings.github,{user:{...I,email:e}})}return this}setGithubToken(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{token:e})),this}setGithubServerUrl(e){return e??="https://github.com",this.settings.github=this.mergePartial(this.settings.github,{serverUrl:e}),(!this.settings.github.host||!this.settings.github.hostProtocol)&&(this.settings.github=this.mergePartial(this.settings.github,new URL(e))),this}setGithubHost(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{host:e})),this}setGithubHostProtocol(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{hostProtocol:e})),this}setGithubActorId(e){if(e!==void 0){let I=this.settings.github?.user||{};this.settings.github=this.mergePartial(this.settings.github,{user:{...I,actorId:e}})}return this}setGithubActorLogin(e){if(e!==void 0){let I=this.settings.github?.user||{};this.settings.github=this.mergePartial(this.settings.github,{user:{...I,actorLogin:e}})}return this}setAgentRuntimeVersion(e){return e!==void 0?this.settings.version=e:this.settings.version="latest",this}setGithubRepoName(e){if(e!==void 0){let I=this.settings.github?.repo||{};this.settings.github=this.mergePartial(this.settings.github,{repo:{...I,name:e}})}return this}setGithubRepoId(e){if(e!==void 0){let I=this.settings.github?.repo||{},l=Number(e);isNaN(l)||(this.settings.github=this.mergePartial(this.settings.github,{repo:{...I,id:l}}))}return this}setGithubRepoOwnerName(e){if(e!==void 0){let I=this.settings.github?.owner||{};this.settings.github=this.mergePartial(this.settings.github,{owner:{...I,name:e}})}return this}setGithubRepoOwnerId(e){if(e!==void 0){let I=this.settings.github?.owner||{},l=Number(e);isNaN(l)||(this.settings.github=this.mergePartial(this.settings.github,{owner:{...I,id:l}}))}return this}setGithubRepoBranch(e){if(e){let I=e.replace(/^refs\/heads\//,"");if(I.length===0)return this;let l=this.settings.github?.repo||{};this.settings.github=this.mergePartial(this.settings.github,{repo:{...l,branch:I}})}return this}setGithubRepoCommit(e){if(e!==void 0){let I=this.settings.github?.repo||{};this.settings.github=this.mergePartial(this.settings.github,{repo:{...I,commit:e}})}return this}setGithubRepoReadWrite(e){if(e!==void 0){let I=this.settings.github?.repo||{};this.settings.github=this.mergePartial(this.settings.github,{repo:{...I,readWrite:e}})}return this}setProblemStatement(e){return e!==void 0&&(this.settings.problem=this.mergePartial(this.settings.problem,{statement:e})),this}setProblemContentFilterMode(e){return e!==void 0&&(this.settings.problem=this.mergePartial(this.settings.problem,{contentFilterMode:e})),this}setProblemAction(e){return e!==void 0&&(this.settings.problem=this.mergePartial(this.settings.problem,{action:e})),this}setCustomAgentName(e){return e!==void 0&&(this.settings.problem=this.mergePartial(this.settings.problem,{customAgentName:e})),this}setGithubPRCommitCount(e){if(e!==void 0){let I=this.settings.github?.pr||{};this.settings.github=this.mergePartial(this.settings.github,{pr:{...I,commitCount:e}})}return this}setInstanceId(e){return this.settings.service=this.mergePartial(this.settings.service,{instance:{id:e??Es()}}),this}setAgentModel(e){if(e!==void 0){let I=this.settings.service?.agent||{};this.settings.service=this.mergePartial(this.settings.service,{agent:{...I,model:e}})}return this}setRequestHeaders(e){if(e!==void 0){let I=this.settings.service?.agent||{};this.settings.service=this.mergePartial(this.settings.service,{agent:{...I,requestHeaders:e}})}return this}setRetryPolicy(e){if(e!==void 0){let I=this.settings.service?.agent||{};this.settings.service=this.mergePartial(this.settings.service,{agent:{...I,retryPolicy:e}})}return this}setCallbackUrl(e){return e!==void 0&&(this.settings.service=this.mergePartial(this.settings.service,{callback:{url:e}})),this}setGitHubUploadsUrl(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{uploadsUrl:e})),this}setGitHubDownloadsUrl(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{downloadsUrl:e})),this}setAipSweAgentToken(e){return e!==void 0&&(this.settings.api=this.mergePartial(this.settings.api,{aipSweAgent:{token:e}})),this}setAnthropicApiKey(e){return e!==void 0&&(this.settings.api=this.mergePartial(this.settings.api,{anthropic:{key:e}})),this}setOpenAiApiKey(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,apiKey:e}})}return this}setOpenAiBaseUrl(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,baseUrl:e}})}return this}setAzureOpenAiUrl(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,azure:{...I.azure,url:e}}})}return this}setAzureOpenAiApiVersion(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,azure:{...I.azure,apiVersion:e}}})}return this}setAzureOpenAiKeyVaultUri(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,azureKeyVaultUri:e}})}return this}setAzureOpenAiSecretName(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,azureSecretName:e}})}return this}setCopilotUrl(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,url:e}})}return this}setCopilotIntegrationId(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,integrationId:e}})}return this}setCopilotHmacKey(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,hmacKey:e}})}return this}setCopilotToken(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,token:e}})}return this}setCopilotAzureKeyVaultUri(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,azureKeyVaultUri:e}})}return this}setCopilotSessionId(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,sessionId:e}})}return this}setCopilotPreviousSessionIds(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,previousSessionIds:e.split(",").map(l=>l.trim()).filter(l=>l.length>0)}})}return this}setCopilotUseSessions(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,useSessions:e}})}return this}setCopilotJobNonce(e){return e!==void 0&&(this.settings.job=this.mergePartial(this.settings.job,{nonce:e})),this}setCopilotJobEventType(e){return e!==void 0&&(this.settings.job=this.mergePartial(this.settings.job,{eventType:e})),this}setTrajectoryOutputFile(e){return e!==void 0&&(this.settings.trajectory=this.mergePartial(this.settings.trajectory,{outputFile:e})),this}setEventsLogDirectory(e){return e!==void 0&&(this.settings.logs=this.mergePartial(this.settings.logs,{eventsLogDir:e})),this}setDisableOnlineEvaluation(e){return e==!0&&this.settings.onlineEvaluation?.disableOnlineEvaluation!==!0&&(this.settings.onlineEvaluation=this.mergePartial(this.settings.onlineEvaluation,{disableOnlineEvaluation:e})),this}setEnableOnlineEvaluationOutputFile(e){return e==!0&&this.settings.onlineEvaluation?.enableOnlineEvaluationOutputFile!==!0&&(this.settings.onlineEvaluation=this.mergePartial(this.settings.onlineEvaluation,{enableOnlineEvaluationOutputFile:e})),this}setGitHubMCPServerToken(e){return e!==void 0&&(this.settings.api=this.mergePartial(this.settings.api,{github:{mcpServerToken:e}})),this}setFeatureFlagEnabled(e){return this.settings.featureFlags=this.mergePartial(this.settings.featureFlags,{[e]:!0}),this}setExperiment(e,I){return this.settings.experiments=this.mergePartial(this.settings.experiments,{[e]:I}),this}setTimeoutMs(e){return e!==void 0&&(this.settings.timeoutMs=e),this}setStartTimeMs(e){return e!==void 0&&(this.settings.startTimeMs=e),this}build(){return this.settings}}});async function i3e(){let t=new TX;t.setGithubServerUrl(process.env.GITHUB_SERVER_URL).setGithubHost(process.env.GITHUB_HOST).setGithubHostProtocol(process.env.GITHUB_HOST_PROTOCOL).setGithubToken(process.env.GITHUB_TOKEN).setGithubUserName(process.env.COPILOT_AGENT_COMMIT_LOGIN).setGithubUserEmail(process.env.COPILOT_AGENT_COMMIT_EMAIL).setGithubRepoOwnerId(process.env.GITHUB_REPOSITORY_OWNER_ID).setGithubRepoOwnerName(process.env.GITHUB_REPOSITORY_OWNER).setGithubRepoId(process.env.GITHUB_REPOSITORY_ID).setGithubRepoName(process.env.GITHUB_REPOSITORY).setGithubRepoBranch(process.env.COPILOT_AGENT_BRANCH_NAME).setGithubRepoCommit(process.env.COPILOT_AGENT_BASE_COMMIT).setAgentRuntimeVersion(process.env.COPILOT_AGENT_RUNTIME_VERSION),process.env.COPILOT_AGENT_PUSH!==void 0&&t.setGithubRepoReadWrite(process.env.COPILOT_AGENT_PUSH==="true"),t.setGithubPRCommitCount(process.env.COPILOT_AGENT_PR_COMMIT_COUNT?parseInt(process.env.COPILOT_AGENT_PR_COMMIT_COUNT,10):void 0),t.setProblemStatement(process.env.COPILOT_AGENT_PROMPT).setProblemContentFilterMode(process.env.COPILOT_AGENT_CONTENT_FILTER_MODE).setCustomAgentName(process.env.COPILOT_CUSTOM_AGENT);let e=process.env.COPILOT_AGENT_ACTION;if(e&&["fix","fix-pr-comment"].includes(e)&&t.setProblemAction(e),process.env.COPILOT_AGENT_ACTOR_ID&&t.setGithubActorId(parseInt(process.env.COPILOT_AGENT_ACTOR_ID,10)),process.env.COPILOT_AGENT_ACTOR&&t.setGithubActorLogin(process.env.COPILOT_AGENT_ACTOR),t.setInstanceId(process.env.COPILOT_AGENT_JOB_ID).setCopilotJobNonce(process.env.COPILOT_JOB_NONCE).setCopilotJobEventType(process.env.COPILOT_JOB_EVENT_TYPE).setAgentModel(process.env.COPILOT_AGENT_MODEL).setCallbackUrl(process.env.COPILOT_AGENT_CALLBACK_URL).setGitHubUploadsUrl(process.env.GITHUB_UPLOADS_URL).setGitHubDownloadsUrl(process.env.GITHUB_DOWNLOADS_URL),t.setAipSweAgentToken(process.env.AIP_SWE_AGENT_TOKEN).setAnthropicApiKey(process.env.ANTHROPIC_API_KEY).setCopilotUrl(process.env.COPILOT_API_URL).setCopilotIntegrationId(process.env.GITHUB_COPILOT_INTEGRATION_ID).setCopilotHmacKey(process.env.CAPI_HMAC_KEY).setCopilotToken(process.env.GITHUB_COPILOT_API_TOKEN).setCopilotAzureKeyVaultUri(process.env.CAPI_AZURE_KEY_VAULT_URI).setBlackbirdMode(process.env.BLACKBIRD_MODE||"initial-search").setCopilotSessionId(process.env.COPILOT_AGENT_SESSION_ID).setCopilotPreviousSessionIds(process.env.COPILOT_AGENT_PREVIOUS_SESSION_IDS).setSwebenchBaseCommit(process.env.SWEBENCH_BASE_COMMIT).setGitHubMCPServerToken(process.env.GITHUB_MCP_SERVER_TOKEN).setAzureOpenAiKeyVaultUri(process.env.AZURE_OPENAI_KEY_VAULT_URI).setAzureOpenAiSecretName(process.env.AZURE_OPENAI_KEY_VAULT_SECRET_NAME).setOpenAiBaseUrl(process.env.OPENAI_BASE_URL).setOpenAiApiKey(process.env.AZURE_OPENAI_API_KEY||process.env.OPENAI_API_KEY).setAzureOpenAiUrl(process.env.AZURE_OPENAI_API_ENDPOINT).setAzureOpenAiApiVersion(process.env.AZURE_OPENAI_API_VERSION),process.env.COPILOT_USE_SESSIONS!==void 0&&t.setCopilotUseSessions(process.env.COPILOT_USE_SESSIONS==="true"),t.setTrajectoryOutputFile(process.env.CPD_SAVE_TRAJECTORY_OUTPUT),t.setEventsLogDirectory(process.env.COPILOT_EVENTS_LOG_DIRECTORY),process.env.COPILOT_AGENT_ONLINE_EVALUATION_DISABLED!==void 0&&t.setDisableOnlineEvaluation(process.env.COPILOT_AGENT_ONLINE_EVALUATION_DISABLED==="true"),process.env.COPILOT_AGENT_ONLINE_EVALUATION_OUTPUT_FILE!==void 0&&t.setEnableOnlineEvaluationOutputFile(process.env.COPILOT_AGENT_ONLINE_EVALUATION_OUTPUT_FILE==="true"),process.env.COPILOT_FEATURE_FLAGS&&process.env.COPILOT_FEATURE_FLAGS.split(",").map(n=>n.trim()).filter(n=>n.length>0).forEach(n=>t.setFeatureFlagEnabled(n)),process.env.COPILOT_EXPERIMENTS&&process.env.COPILOT_EXPERIMENTS.split(",").map(n=>{let[r,a]=n.split(":");t.setExperiment(r,a)}),process.env.COPILOT_AGENT_ERROR_CODES_TO_RETRY){let n=process.env.COPILOT_AGENT_ERROR_CODES_TO_RETRY.split(",").map(r=>parseInt(r.trim(),10));t.setRetryPolicy({errorCodesToRetry:n})}if(process.env.COPILOT_AGENT_REQUEST_HEADERS)try{let n=JSON.parse(process.env.COPILOT_AGENT_REQUEST_HEADERS);t.setRequestHeaders(n)}catch{}let I=process.env.COPILOT_AGENT_TIMEOUT_MIN?parseInt(process.env.COPILOT_AGENT_TIMEOUT_MIN,10):void 0;I!==void 0&&!Number.isNaN(I)&&t.setTimeoutMs(I*60*1e3);let l=process.env.COPILOT_AGENT_START_TIME_SEC?parseInt(process.env.COPILOT_AGENT_START_TIME_SEC,10):void 0;return l!==void 0&&!Number.isNaN(l)&&t.setStartTimeMs(l*1e3),t.build()}var MK,o3e,JL=m(()=>{"use strict";Qde();MK=["GITHUB_TOKEN","COPILOT_GITHUB_TOKEN","GITHUB_COPILOT_API_TOKEN","CAPI_HMAC_KEY","CAPI_HMAC_KEY_OVERRIDE","ANTHROPIC_API_KEY","AIP_SWE_AGENT_TOKEN","CAPI_AZURE_KEY_VAULT_URI","COPILOT_JOB_NONCE","GITHUB_MCP_SERVER_TOKEN","OPENAI_BASE_URL","OPENAI_API_KEY","COPILOT_AGENT_REQUEST_HEADERS","AZURE_OPENAI_API_KEY","AZURE_OPENAI_API_ENDPOINT","AZURE_OPENAI_KEY_VAULT_URI","AZURE_OPENAI_KEY_VAULT_SECRET_NAME","BLACKBIRD_AUTH_METIS_API_KEY","BLACKBIRD_AUTH_MODEL_BASED_RETRIEVAL_TOKEN"],o3e=["COPILOT_CALLBACK_URL","COPILOT_AGENT_MODEL","COPILOT_AGENT_JOB_ID","COPILOT_AGENT_PROMPT","COPILOT_AGENT_PUSH","COPILOT_FIREWALL_ENABLED","COPILOT_FIREWALL_ALLOW_LIST","GITHUB_COPILOT_INTEGRATION_ID","COPILOT_INTEGRATION_ID_OVERRIDE","COPILOT_AGENT_SESSION_ID","COPILOT_AGENT_PREVIOUS_SESSION_IDS","COPILOT_AGENT_EVENT_URL","COPILOT_AGENT_EVENT_TYPE","NODE_ENV","COPILOT_AGENT_ACTOR","COPILOT_AGENT_ACTOR_ID",...MK]});function Ar(t,e){return t?.featureFlags?.[e]??!1}function d3e(t,e){return t?.experiments?.[e]}function wde(t){return Object.keys(t.featureFlags??{}).filter(e=>t.featureFlags?.[e]).join(",")}function Xde(t,e=[]){for(let[I,l]of Object.entries(t))if(l!==null)switch(typeof l){case"object":Xde(l,e);break;case"undefined":break;default:if(pft.includes(I)){let n=l.toString().trim();n!=""&&e.push(n)}break}return e}function G3e(t,e){if(isNaN(e)||!isFinite(e)||e<=0)return{isWithin:!1,withinMs:e};if(e>1)return{isWithin:!1,withinMs:e};if(!t.timeoutMs)return{isWithin:!1,withinMs:e};let I=t.timeoutMs*e;return t.startTimeMs?{isWithin:Date.now()-t.startTimeMs>=t.timeoutMs-I,withinMs:I}:{isWithin:!1,withinMs:I}}var pft,Si=m(()=>{"use strict";pft=["token","secret","key","hmacKey","modelBasedRetrievalToken","metisApiKey"]});import*as b3e from"process";function Ede(t){let e=b3e.env[t];if(e&&e.trim()!=="")return e}var m3e=m(()=>{"use strict"});function Hde(t,e){t.add(e),t.add(Buffer.from(e,"utf8").toString("base64"))}var uft,h3e,pp,fL=m(()=>{"use strict";UK();JL();Si();m3e();uft=[/\b(?:eyJ0eXAiOi|eyJhbGciOi|eyJ4NXQiOi|eyJraWQiOi)[^\s'";]+/g,/\bBearer\s+[^\s'";]+/g,/\b(?:Password|Pwd)=(?:[^\s'";]+|"[^"]+")/gi,/\s+-(?:Password|Pwd)\s+(?:[^\s'";]+|"[^"]+")/gi,/\bv1\.[0-9A-Fa-f]{40}\b/g,/\bgh[pousr]{1}_[A-Za-z0-9]{36}\b/g,/\bgithub_pat_[0-9][A-Za-z0-9]{21}_[A-Za-z0-9]{59}\b/g,/(?:[a-zA-Z][a-zA-Z\d+-.]*):\/\/([a-zA-Z\d\-._~!$&'()*+,;=%]+):([a-zA-Z\d\-._~!$&'()*+,;=:%]*)@/g,/\b[0-9A-Za-z-_~.]{3}7Q~[0-9A-Za-z-_~.]{31}\b|\b[0-9A-Za-z-_~.]{3}8Q~[0-9A-Za-z-_~.]{34}\b/g,/\b[0-9A-Za-z+/]{76}(APIM|ACDb|\+(ABa|AMC|ASt))[0-9A-Za-z+/]{5}[AQgw]==/g,/\b[0-9A-Za-z+/]{33}(AIoT|\+(ASb|AEh|ARm))[A-P][0-9A-Za-z+/]{5}=/g,/\b[0-9A-Za-z_-]{44}AzFu[0-9A-Za-z\-_]{5}[AQgw]==/g,/\b[0-9A-Za-z]{42}AzSe[A-D][0-9A-Za-z]{5}\b/g,/\b[0-9A-Za-z+/]{42}\+ACR[A-D][0-9A-Za-z+/]{5}\b/g,/\b[0-9A-Za-z]{33}AzCa[A-P][0-9A-Za-z]{5}=/g,/\boy2[a-p][0-9a-z]{15}[aq][0-9a-z]{11}[eu][bdfhjlnprtvxz357][a-p][0-9a-z]{11}[aeimquy4]\b/g,/\bnpm_[0-9A-Za-z]{36}\b/g,/\bx-ghcr-signature=[^&]+/g],h3e="******",pp=class t{static singleton;static getInstance(){return t.singleton||(t.singleton=new t),t.singleton}secretValuesToFilter;runner;logger;constructor(){}setRunner(e){this.runner=e,this.logger=e.logger,this.secretValuesToFilter=void 0}filterSecrets(e){let I=typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"message"),l=I?e.message??e.toString():e,n=this.getSecretValues();for(let r of n)l=l.replaceAll(r,h3e);for(let r of uft)l=l.replaceAll(r,h3e);return I?(e.message=l,e):l}filterSecretsFromJsonString(e){try{let I=JSON.parse(e),l=this.filterSecretsFromObj(I);return JSON.stringify(l)}catch{return this.filterSecrets(e)}}filterSecretsFromObj(e){if(e==null)return e;if(typeof e=="string")return this.filterSecrets(e);if(typeof e=="number"){let I=this.filterSecrets(e.toString()),l=Number(I);return isNaN(l)?I:l}if(Array.isArray(e))return e.map(I=>this.filterSecretsFromObj(I));if(typeof e=="object"){let I={};for(let[l,n]of Object.entries(e))I[l]=this.filterSecretsFromObj(n);return I}return e}getSecretValues(){if(this.secretValuesToFilter)return this.secretValuesToFilter;let e={secretEnvVars:!1,runner:!1,settings:!1},I=new Set;for(let l of MK){let n=Ede(l);n&&Hde(I,n)}if(e.secretEnvVars=!0,this.runner){for(let l of this.runner.sensitiveKeys){let n=Ede(l);n&&Hde(I,n)}e.runner=!0}if(zK()){let l=Xde(gde());for(let n of l)Hde(I,n);e.settings=!0}return Object.values(e).every(l=>l)&&(this.secretValuesToFilter=I,this.logger?.debug("Caching secret values to filter from all sources.")),I}}});function LL(...t){let e=new Set(["DEBUG","COPILOT_AGENT_DEBUG",...t]);for(let I of e)if(process.env[I]==="1"||process.env[I]?.toLocaleLowerCase()==="true")return!0;return!1}var rW,Q2=m(()=>{"use strict";fL();rW=class{logLevel;debugEnvironmentVariables;secretFilter=pp.getInstance();constructor(e,I){e===void 0?LL(...I??[])?this.logLevel=15:this.logLevel=7:this.logLevel=e,this.debugEnvironmentVariables=I}filterSecrets(e){return typeof e=="string"?this.secretFilter.filterSecrets(e):this.secretFilter.filterSecrets(e)}shouldLog(e){return this.logLevel===void 0||(this.logLevel&e)===e}isDebug(){return LL(...this.debugEnvironmentVariables??[])}}});import{exec as p3e,execFile as Zft}from"child_process";var u3e,ob,ag=m(()=>{"use strict";u3e=fI(t3e(),1);Q2();ob=class{logger;constructor(e){this.logger=e}async exec(e,I,l,n=[]){let r=l?.silent??!1,a=l?.silentDebugLogging??!0;try{let s=(l?.isDirectAgentCommand?"Copilot: ":"")+(I?`${e} ${I.join(" ")}`:e);this.logger.startGroup(s,r?8:void 0);let c=await this._exec(e,I,l,n);if(c.error)throw c.error;return c.stdout&&(r?a&&this.logger.debug(c.stdout):this.logger.info(c.stdout)),c.stderr&&this.logger.error(c.stderr),0}catch(s){throw this.logger.error(s),s}finally{this.logger.endGroup(r?8:void 0)}}async execReturn(e,I,l,n=[]){let r=l?.silent??!1,a=l?.silentDebugLogging??!0;try{let s=(l?.isDirectAgentCommand?"Copilot: ":"")+(I?`${e} ${I.join(" ")}`:e);this.logger.startGroup(s,r?8:void 0);let c=await this._exec(e,I,l,n);if(c.error)throw c.error;return c.stdout&&(r?a&&this.logger.debug(c.stdout):this.logger.info(c.stdout)),c.stderr&&this.logger.error(c.stderr),{exitCode:c.exitCode,stdout:c.stdout,stderr:c.stderr}}catch(s){throw this.logger.error(s),s}finally{this.logger.endGroup(r?8:void 0)}}_exec(e,I,l,n=[]){l||(l={}),l.timeout||(l.timeout=9e5),I||(I=[]);let r={cwd:l.cwd,env:l.env,shell:l.shell,timeout:l.timeout,signal:l.abortSignal};return new Promise((a,s)=>{let c=l.shell&&I?.length===0?p3e(e,r):l.shell?p3e(`${e} ${(0,u3e.default)(I)}`,r):Zft(e,I,r),o="",i="";c.stdout?.on("data",d=>{o+=d}),c.stderr?.on("data",d=>{i+=d}),c.on("close",(d,G)=>{if(d!==0&&!l?.ignoreReturnCode){let b=this.filterCommand(e,I,n),h=new Error(`Command failed with exit code ${d}: ${b}`);h.cmd=b,h.code=d,h.stdout=o,h.stderr=i,h.signal=G,s(h)}else a({error:null,stdout:o,stderr:i,exitCode:d})}),c.on("error",d=>{d.stdout=o,d.stderr=i,d.cmd=this.filterCommand(e,I,n),s(d)}),l.input&&(c.stdin?.write(l.input),c.stdin?.end())})}filterCommand(e,I=[],l){let n=I.reduce((r,a)=>(l.includes(a)?r.push("REDACTED"):r.push(a),r),[]);return`${e} ${n.join(" ")}`}}});var Hs,jX=m(()=>{"use strict";Q2();Hs=class extends rW{constructor(){super()}debug(e){}log(e){}info(e){}notice(e){}warning(e){}error(e){}startGroup(e,I){}endGroup(e){}}});var q3e=y((kL,KX)=>{var Wft=200,Nft="Expected a function",Ude="__lodash_hash_undefined__",$K=1,PX=2,A3e=1/0,Q3e=9007199254740991,TK="[object Arguments]",Jde="[object Array]",w3e="[object Boolean]",X3e="[object Date]",E3e="[object Error]",H3e="[object Function]",Yft="[object GeneratorFunction]",jK="[object Map]",v3e="[object Number]",DX="[object Object]",Z3e="[object Promise]",C3e="[object RegExp]",DK="[object Set]",J3e="[object String]",f3e="[object Symbol]",fde="[object WeakMap]",L3e="[object ArrayBuffer]",KK="[object DataView]",Vft="[object Float32Array]",yft="[object Float64Array]",Rft="[object Int8Array]",gft="[object Int16Array]",Fft="[object Int32Array]",Aft="[object Uint8Array]",Qft="[object Uint8ClampedArray]",wft="[object Uint16Array]",Xft="[object Uint32Array]",Eft=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Hft=/^\w*$/,vft=/^\./,Cft=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Jft=/[\\^$.*+?()[\]{}|]/g,fft=/\\(\\)?/g,Lft=/^\[object .+?Constructor\]$/,kft=/^(?:0|[1-9]\d*)$/,rr={};rr[Vft]=rr[yft]=rr[Rft]=rr[gft]=rr[Fft]=rr[Aft]=rr[Qft]=rr[wft]=rr[Xft]=!0;rr[TK]=rr[Jde]=rr[L3e]=rr[w3e]=rr[KK]=rr[X3e]=rr[E3e]=rr[H3e]=rr[jK]=rr[v3e]=rr[DX]=rr[C3e]=rr[DK]=rr[J3e]=rr[fde]=!1;var k3e=typeof global=="object"&&global&&global.Object===Object&&global,xft=typeof self=="object"&&self&&self.Object===Object&&self,X2=k3e||xft||Function("return this")(),x3e=typeof kL=="object"&&kL&&!kL.nodeType&&kL,W3e=x3e&&typeof KX=="object"&&KX&&!KX.nodeType&&KX,Bft=W3e&&W3e.exports===x3e,N3e=Bft&&k3e.process,Y3e=(function(){try{return N3e&&N3e.binding("util")}catch{}})(),V3e=Y3e&&Y3e.isTypedArray;function zft(t,e){for(var I=-1,l=t?t.length:0;++I<l;)if(e(t[I],I,t))return!0;return!1}function Uft(t){return function(e){return e?.[t]}}function Sft(t,e){for(var I=-1,l=Array(t);++I<t;)l[I]=e(I);return l}function Oft(t){return function(e){return t(e)}}function Mft(t,e){return t?.[e]}function Lde(t){var e=!1;if(t!=null&&typeof t.toString!="function")try{e=!!(t+"")}catch{}return e}function Tft(t){var e=-1,I=Array(t.size);return t.forEach(function(l,n){I[++e]=[n,l]}),I}function jft(t,e){return function(I){return t(e(I))}}function Dft(t){var e=-1,I=Array(t.size);return t.forEach(function(l){I[++e]=l}),I}var Kft=Array.prototype,Pft=Function.prototype,eP=Object.prototype,vde=X2["__core-js_shared__"],y3e=(function(){var t=/[^.]+$/.exec(vde&&vde.keys&&vde.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})(),B3e=Pft.toString,sW=eP.hasOwnProperty,qX=eP.toString,qft=RegExp("^"+B3e.call(sW).replace(Jft,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),R3e=X2.Symbol,g3e=X2.Uint8Array,_ft=eP.propertyIsEnumerable,$ft=Kft.splice,eLt=jft(Object.keys,Object),kde=_X(X2,"DataView"),xL=_X(X2,"Map"),xde=_X(X2,"Promise"),Bde=_X(X2,"Set"),zde=_X(X2,"WeakMap"),BL=_X(Object,"create"),tLt=og(kde),ILt=og(xL),lLt=og(xde),nLt=og(Bde),rLt=og(zde),PK=R3e?R3e.prototype:void 0,Cde=PK?PK.valueOf:void 0,F3e=PK?PK.toString:void 0;function sg(t){var e=-1,I=t?t.length:0;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function aLt(){this.__data__=BL?BL(null):{}}function sLt(t){return this.has(t)&&delete this.__data__[t]}function cLt(t){var e=this.__data__;if(BL){var I=e[t];return I===Ude?void 0:I}return sW.call(e,t)?e[t]:void 0}function oLt(t){var e=this.__data__;return BL?e[t]!==void 0:sW.call(e,t)}function iLt(t,e){var I=this.__data__;return I[t]=BL&&e===void 0?Ude:e,this}sg.prototype.clear=aLt;sg.prototype.delete=sLt;sg.prototype.get=cLt;sg.prototype.has=oLt;sg.prototype.set=iLt;function cW(t){var e=-1,I=t?t.length:0;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function dLt(){this.__data__=[]}function GLt(t){var e=this.__data__,I=tP(e,t);if(I<0)return!1;var l=e.length-1;return I==l?e.pop():$ft.call(e,I,1),!0}function bLt(t){var e=this.__data__,I=tP(e,t);return I<0?void 0:e[I][1]}function mLt(t){return tP(this.__data__,t)>-1}function hLt(t,e){var I=this.__data__,l=tP(I,t);return l<0?I.push([t,e]):I[l][1]=e,this}cW.prototype.clear=dLt;cW.prototype.delete=GLt;cW.prototype.get=bLt;cW.prototype.has=mLt;cW.prototype.set=hLt;function oW(t){var e=-1,I=t?t.length:0;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function pLt(){this.__data__={hash:new sg,map:new(xL||cW),string:new sg}}function uLt(t){return IP(this,t).delete(t)}function ZLt(t){return IP(this,t).get(t)}function WLt(t){return IP(this,t).has(t)}function NLt(t,e){return IP(this,t).set(t,e),this}oW.prototype.clear=pLt;oW.prototype.delete=uLt;oW.prototype.get=ZLt;oW.prototype.has=WLt;oW.prototype.set=NLt;function qK(t){var e=-1,I=t?t.length:0;for(this.__data__=new oW;++e<I;)this.add(t[e])}function YLt(t){return this.__data__.set(t,Ude),this}function VLt(t){return this.__data__.has(t)}qK.prototype.add=qK.prototype.push=YLt;qK.prototype.has=VLt;function aW(t){this.__data__=new cW(t)}function yLt(){this.__data__=new cW}function RLt(t){return this.__data__.delete(t)}function gLt(t){return this.__data__.get(t)}function FLt(t){return this.__data__.has(t)}function ALt(t,e){var I=this.__data__;if(I instanceof cW){var l=I.__data__;if(!xL||l.length<Wft-1)return l.push([t,e]),this;I=this.__data__=new oW(l)}return I.set(t,e),this}aW.prototype.clear=yLt;aW.prototype.delete=RLt;aW.prototype.get=gLt;aW.prototype.has=FLt;aW.prototype.set=ALt;function QLt(t,e){var I=cg(t)||D3e(t)?Sft(t.length,String):[],l=I.length,n=!!l;for(var r in t)(e||sW.call(t,r))&&!(n&&(r=="length"||O3e(r,l)))&&I.push(r);return I}function tP(t,e){for(var I=t.length;I--;)if(j3e(t[I][0],e))return I;return-1}var wLt=SLt();function XLt(t,e){return t&&wLt(t,e,_K)}function z3e(t,e){e=lP(e,t)?[e]:U3e(e);for(var I=0,l=e.length;t!=null&&I<l;)t=t[nP(e[I++])];return I&&I==l?t:void 0}function ELt(t){return qX.call(t)}function HLt(t,e){return t!=null&&e in Object(t)}function Sde(t,e,I,l,n){return t===e?!0:t==null||e==null||!rP(t)&&!aP(e)?t!==t&&e!==e:vLt(t,e,Sde,I,l,n)}function vLt(t,e,I,l,n,r){var a=cg(t),s=cg(e),c=Jde,o=Jde;a||(c=w2(t),c=c==TK?DX:c),s||(o=w2(e),o=o==TK?DX:o);var i=c==DX&&!Lde(t),d=o==DX&&!Lde(e),G=c==o;if(G&&!i)return r||(r=new aW),a||$Lt(t)?S3e(t,e,I,l,n,r):OLt(t,e,c,I,l,n,r);if(!(n&PX)){var b=i&&sW.call(t,"__wrapped__"),h=d&&sW.call(e,"__wrapped__");if(b||h){var p=b?t.value():t,u=h?e.value():e;return r||(r=new aW),I(p,u,l,n,r)}}return G?(r||(r=new aW),MLt(t,e,I,l,n,r)):!1}function CLt(t,e,I,l){var n=I.length,r=n,a=!l;if(t==null)return!r;for(t=Object(t);n--;){var s=I[n];if(a&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++n<r;){s=I[n];var c=s[0],o=t[c],i=s[1];if(a&&s[2]){if(o===void 0&&!(c in t))return!1}else{var d=new aW;if(l)var G=l(o,i,c,t,e,d);if(!(G===void 0?Sde(i,o,l,$K|PX,d):G))return!1}}return!0}function JLt(t){if(!rP(t)||KLt(t))return!1;var e=P3e(t)||Lde(t)?qft:Lft;return e.test(og(t))}function fLt(t){return aP(t)&&Mde(t.length)&&!!rr[qX.call(t)]}function LLt(t){return typeof t=="function"?t:t==null?nkt:typeof t=="object"?cg(t)?BLt(t[0],t[1]):xLt(t):rkt(t)}function kLt(t){if(!PLt(t))return eLt(t);var e=[];for(var I in Object(t))sW.call(t,I)&&I!="constructor"&&e.push(I);return e}function xLt(t){var e=TLt(t);return e.length==1&&e[0][2]?T3e(e[0][0],e[0][1]):function(I){return I===t||CLt(I,t,e)}}function BLt(t,e){return lP(t)&&M3e(e)?T3e(nP(t),e):function(I){var l=tkt(I,t);return l===void 0&&l===e?Ikt(I,t):Sde(e,l,void 0,$K|PX)}}function zLt(t){return function(e){return z3e(e,t)}}function ULt(t){if(typeof t=="string")return t;if(Tde(t))return F3e?F3e.call(t):"";var e=t+"";return e=="0"&&1/t==-A3e?"-0":e}function U3e(t){return cg(t)?t:qLt(t)}function SLt(t){return function(e,I,l){for(var n=-1,r=Object(e),a=l(e),s=a.length;s--;){var c=a[t?s:++n];if(I(r[c],c,r)===!1)break}return e}}function S3e(t,e,I,l,n,r){var a=n&PX,s=t.length,c=e.length;if(s!=c&&!(a&&c>s))return!1;var o=r.get(t);if(o&&r.get(e))return o==e;var i=-1,d=!0,G=n&$K?new qK:void 0;for(r.set(t,e),r.set(e,t);++i<s;){var b=t[i],h=e[i];if(l)var p=a?l(h,b,i,e,t,r):l(b,h,i,t,e,r);if(p!==void 0){if(p)continue;d=!1;break}if(G){if(!zft(e,function(u,W){if(!G.has(W)&&(b===u||I(b,u,l,n,r)))return G.add(W)})){d=!1;break}}else if(!(b===h||I(b,h,l,n,r))){d=!1;break}}return r.delete(t),r.delete(e),d}function OLt(t,e,I,l,n,r,a){switch(I){case KK:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case L3e:return!(t.byteLength!=e.byteLength||!l(new g3e(t),new g3e(e)));case w3e:case X3e:case v3e:return j3e(+t,+e);case E3e:return t.name==e.name&&t.message==e.message;case C3e:case J3e:return t==e+"";case jK:var s=Tft;case DK:var c=r&PX;if(s||(s=Dft),t.size!=e.size&&!c)return!1;var o=a.get(t);if(o)return o==e;r|=$K,a.set(t,e);var i=S3e(s(t),s(e),l,n,r,a);return a.delete(t),i;case f3e:if(Cde)return Cde.call(t)==Cde.call(e)}return!1}function MLt(t,e,I,l,n,r){var a=n&PX,s=_K(t),c=s.length,o=_K(e),i=o.length;if(c!=i&&!a)return!1;for(var d=c;d--;){var G=s[d];if(!(a?G in e:sW.call(e,G)))return!1}var b=r.get(t);if(b&&r.get(e))return b==e;var h=!0;r.set(t,e),r.set(e,t);for(var p=a;++d<c;){G=s[d];var u=t[G],W=e[G];if(l)var N=a?l(W,u,G,e,t,r):l(u,W,G,t,e,r);if(!(N===void 0?u===W||I(u,W,l,n,r):N)){h=!1;break}p||(p=G=="constructor")}if(h&&!p){var R=t.constructor,F=e.constructor;R!=F&&"constructor"in t&&"constructor"in e&&!(typeof R=="function"&&R instanceof R&&typeof F=="function"&&F instanceof F)&&(h=!1)}return r.delete(t),r.delete(e),h}function IP(t,e){var I=t.__data__;return DLt(e)?I[typeof e=="string"?"string":"hash"]:I.map}function TLt(t){for(var e=_K(t),I=e.length;I--;){var l=e[I],n=t[l];e[I]=[l,n,M3e(n)]}return e}function _X(t,e){var I=Mft(t,e);return JLt(I)?I:void 0}var w2=ELt;(kde&&w2(new kde(new ArrayBuffer(1)))!=KK||xL&&w2(new xL)!=jK||xde&&w2(xde.resolve())!=Z3e||Bde&&w2(new Bde)!=DK||zde&&w2(new zde)!=fde)&&(w2=function(t){var e=qX.call(t),I=e==DX?t.constructor:void 0,l=I?og(I):void 0;if(l)switch(l){case tLt:return KK;case ILt:return jK;case lLt:return Z3e;case nLt:return DK;case rLt:return fde}return e});function jLt(t,e,I){e=lP(e,t)?[e]:U3e(e);for(var l,n=-1,a=e.length;++n<a;){var r=nP(e[n]);if(!(l=t!=null&&I(t,r)))break;t=t[r]}if(l)return l;var a=t?t.length:0;return!!a&&Mde(a)&&O3e(r,a)&&(cg(t)||D3e(t))}function O3e(t,e){return e=e??Q3e,!!e&&(typeof t=="number"||kft.test(t))&&t>-1&&t%1==0&&t<e}function lP(t,e){if(cg(t))return!1;var I=typeof t;return I=="number"||I=="symbol"||I=="boolean"||t==null||Tde(t)?!0:Hft.test(t)||!Eft.test(t)||e!=null&&t in Object(e)}function DLt(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function KLt(t){return!!y3e&&y3e in t}function PLt(t){var e=t&&t.constructor,I=typeof e=="function"&&e.prototype||eP;return t===I}function M3e(t){return t===t&&!rP(t)}function T3e(t,e){return function(I){return I==null?!1:I[t]===e&&(e!==void 0||t in Object(I))}}var qLt=Ode(function(t){t=ekt(t);var e=[];return vft.test(t)&&e.push(""),t.replace(Cft,function(I,l,n,r){e.push(n?r.replace(fft,"$1"):l||I)}),e});function nP(t){if(typeof t=="string"||Tde(t))return t;var e=t+"";return e=="0"&&1/t==-A3e?"-0":e}function og(t){if(t!=null){try{return B3e.call(t)}catch{}try{return t+""}catch{}}return""}function Ode(t,e){if(typeof t!="function"||e&&typeof e!="function")throw new TypeError(Nft);var I=function(){var l=arguments,n=e?e.apply(this,l):l[0],r=I.cache;if(r.has(n))return r.get(n);var a=t.apply(this,l);return I.cache=r.set(n,a),a};return I.cache=new(Ode.Cache||oW),I}Ode.Cache=oW;function j3e(t,e){return t===e||t!==t&&e!==e}function D3e(t){return _Lt(t)&&sW.call(t,"callee")&&(!_ft.call(t,"callee")||qX.call(t)==TK)}var cg=Array.isArray;function K3e(t){return t!=null&&Mde(t.length)&&!P3e(t)}function _Lt(t){return aP(t)&&K3e(t)}function P3e(t){var e=rP(t)?qX.call(t):"";return e==H3e||e==Yft}function Mde(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Q3e}function rP(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function aP(t){return!!t&&typeof t=="object"}function Tde(t){return typeof t=="symbol"||aP(t)&&qX.call(t)==f3e}var $Lt=V3e?Oft(V3e):fLt;function ekt(t){return t==null?"":ULt(t)}function tkt(t,e,I){var l=t==null?void 0:z3e(t,e);return l===void 0?I:l}function Ikt(t,e){return t!=null&&jLt(t,e,HLt)}function _K(t){return K3e(t)?QLt(t):kLt(t)}function lkt(t,e){var I={};return e=LLt(e,3),XLt(t,function(l,n,r){I[e(l,n,r)]=l}),I}function nkt(t){return t}function rkt(t){return lP(t)?Uft(nP(t)):zLt(t)}KX.exports=lkt});function okt(t,e){let I=$3e(t,l=>e.priority<=l.priority);t.splice(I+1,0,e)}function $3e(t,e){for(let I=t.length-1;I>=0;I--)if(e(t[I]))return I;return-1}function exe(t,e,I=akt){return{acquire:(l,n)=>{let r;if(sP(t)?r=l:(r=void 0,n=l),r!==void 0&&r<=0)throw new Error(`invalid weight ${r}: must be positive`);return new Promise((a,s)=>_3e(this,void 0,void 0,function*(){let c=!1,o=setTimeout(()=>{c=!0,s(I)},e);try{let i=yield sP(t)?t.acquire(r,n):t.acquire(n);c?(Array.isArray(i)?i[1]:i)():(clearTimeout(o),a(i))}catch(i){c||(clearTimeout(o),s(i))}}))},runExclusive(l,n,r){return _3e(this,void 0,void 0,function*(){let a=()=>{};try{let s=yield this.acquire(n,r);return Array.isArray(s)?(a=s[1],yield l(s[0])):(a=s,yield l())}finally{a()}})},release(l){t.release(l)},cancel(){return t.cancel()},waitForUnlock:(l,n)=>{let r;if(sP(t)?r=l:(r=void 0,n=l),r!==void 0&&r<=0)throw new Error(`invalid weight ${r}: must be positive`);return new Promise((a,s)=>{let c=setTimeout(()=>s(I),e);(sP(t)?t.waitForUnlock(r,n):t.waitForUnlock(n)).then(()=>{clearTimeout(c),a()})})},isLocked:()=>t.isLocked(),getValue:()=>t.getValue(),setValue:l=>t.setValue(l)}}function sP(t){return t.getValue!==void 0}var akt,yMI,skt,ckt,jde,ikt,cP,_3e,txe=m(()=>{akt=new Error("timeout while waiting for mutex to become available"),yMI=new Error("mutex already locked"),skt=new Error("request for lock canceled"),ckt=function(t,e,I,l){function n(r){return r instanceof I?r:new I(function(a){a(r)})}return new(I||(I=Promise))(function(r,a){function s(i){try{o(l.next(i))}catch(d){a(d)}}function c(i){try{o(l.throw(i))}catch(d){a(d)}}function o(i){i.done?r(i.value):n(i.value).then(s,c)}o((l=l.apply(t,e||[])).next())})},jde=class{constructor(e,I=skt){this._value=e,this._cancelError=I,this._queue=[],this._weightedWaiters=[]}acquire(e=1,I=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return new Promise((l,n)=>{let r={resolve:l,reject:n,weight:e,priority:I},a=$3e(this._queue,s=>I<=s.priority);a===-1&&e<=this._value?this._dispatchItem(r):this._queue.splice(a+1,0,r)})}runExclusive(e){return ckt(this,arguments,void 0,function*(I,l=1,n=0){let[r,a]=yield this.acquire(l,n);try{return yield I(r)}finally{a()}})}waitForUnlock(e=1,I=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return this._couldLockImmediately(e,I)?Promise.resolve():new Promise(l=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),okt(this._weightedWaiters[e-1],{resolve:l,priority:I})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatchQueue()}release(e=1){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatchQueue()}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(e){let I=this._value;this._value-=e.weight,e.resolve([I,this._newReleaser(e.weight)])}_newReleaser(e){let I=!1;return()=>{I||(I=!0,this.release(e))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let e=this._value;e>0;e--){let I=this._weightedWaiters[e-1];I&&(I.forEach(l=>l.resolve()),this._weightedWaiters[e-1]=[])}else{let e=this._queue[0].priority;for(let I=this._value;I>0;I--){let l=this._weightedWaiters[I-1];if(!l)continue;let n=l.findIndex(r=>r.priority<=e);(n===-1?l:l.splice(0,n)).forEach((r=>r.resolve()))}}}_couldLockImmediately(e,I){return(this._queue.length===0||this._queue[0].priority<I)&&e<=this._value}};ikt=function(t,e,I,l){function n(r){return r instanceof I?r:new I(function(a){a(r)})}return new(I||(I=Promise))(function(r,a){function s(i){try{o(l.next(i))}catch(d){a(d)}}function c(i){try{o(l.throw(i))}catch(d){a(d)}}function o(i){i.done?r(i.value):n(i.value).then(s,c)}o((l=l.apply(t,e||[])).next())})},cP=class{constructor(e){this._semaphore=new jde(1,e)}acquire(){return ikt(this,arguments,void 0,function*(e=0){let[,I]=yield this._semaphore.acquire(1,e);return I})}runExclusive(e,I=0){return this._semaphore.runExclusive(()=>e(),1,I)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(e=0){return this._semaphore.waitForUnlock(1,e)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}},_3e=function(t,e,I,l){function n(r){return r instanceof I?r:new I(function(a){a(r)})}return new(I||(I=Promise))(function(r,a){function s(i){try{o(l.next(i))}catch(d){a(d)}}function c(i){try{o(l.throw(i))}catch(d){a(d)}}function o(i){i.done?r(i.value):n(i.value).then(s,c)}o((l=l.apply(t,e||[])).next())})}});var oP,Ixe=m(()=>{"use strict";txe();oP=class{mutexes=new Map;async runExclusive(e,I,l=5e3){let n=this.mutexes.get(e);n||(n=new cP,n.refCount=0,this.mutexes.set(e,n));let r=n;try{return r.refCount++,await exe(n,l).runExclusive(I)}finally{--r.refCount===0&&this.mutexes.delete(e)}}}});import{existsSync as iP}from"fs";import{appendFile as dkt,mkdir as Gkt,readdir as dP,readFile as nxe,stat as GP,writeFile as bkt}from"fs/promises";import{homedir as rxe}from"os";import{dirname as mkt,join as Oi}from"path";function lxe(t){return Object.values(hP).includes(t)}async function axe(t){let e=mkt(t);try{await Gkt(e,{recursive:!0,mode:448})}catch{}}async function hkt(t,e){if(iP(t))try{let I={},l=await mP.runExclusive(t,()=>nxe(t,"utf8"));return l.trim().startsWith("{")?I=JSON.parse(l):l.split(`
|
|
180
|
+
`,n=new URL("/graphql",OX(t)),r=await fetch(n.href,{method:"POST",headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},body:JSON.stringify({query:l})});if(!r.ok)throw new Error(`Failed to fetch Copilot info: ${r.status} ${r.statusText}`);let a=await r.json(),{viewer:s}=a.data;return I.debug(`Fetched Copilot URL for ${s.login} from ${String(n)}: ${r.status} ${s.copilotEndpoints.api}`),s.copilotEndpoints.api}var xK,MX,xOI,F2=m(()=>{"use strict";qd();EI();Rde();xK="https://github.com",MX=class extends Error{constructor(I,l){super(l);this.status=I;this.message=l;this.name="GitHubApiError"}};xOI=ve({data:ve({viewer:ve({isEmployee:xI()})})})});var t3e=y((zOI,e3e)=>{e3e.exports=ift;function ift(t){var e=[];return t.forEach(function(I){/^[A-Za-z0-9_\/-]+$/.test(I)||(I="'"+I.replace(/'/g,"'\\''")+"'",I=I.replace(/^(?:'')+/g,"").replace(/\\'''/g,"\\'")),e.push(I)}),e.join(" ")}});function zK(){return!!CL}function gde(){if(!CL)throw new Error("Settings have not been initialized");return CL}function I3e(t){return CL=t,t}function l3e(){CL=null}var CL,UK=m(()=>{"use strict";CL=null});function n3e(t,e=0){return(Gc[t[e+0]]+Gc[t[e+1]]+Gc[t[e+2]]+Gc[t[e+3]]+"-"+Gc[t[e+4]]+Gc[t[e+5]]+"-"+Gc[t[e+6]]+Gc[t[e+7]]+"-"+Gc[t[e+8]]+Gc[t[e+9]]+"-"+Gc[t[e+10]]+Gc[t[e+11]]+Gc[t[e+12]]+Gc[t[e+13]]+Gc[t[e+14]]+Gc[t[e+15]]).toLowerCase()}var Gc,r3e=m(()=>{Gc=[];for(let t=0;t<256;++t)Gc.push((t+256).toString(16).slice(1))});import{randomFillSync as dft}from"node:crypto";function Fde(){return SK>OK.length-16&&(dft(OK),SK=0),OK.slice(SK,SK+=16)}var OK,SK,a3e=m(()=>{OK=new Uint8Array(256),SK=OK.length});import{randomUUID as Gft}from"node:crypto";var Ade,s3e=m(()=>{Ade={randomUUID:Gft}});function bft(t,e,I){t=t||{};let l=t.random??t.rng?.()??Fde();if(l.length<16)throw new Error("Random bytes length must be >= 16");if(l[6]=l[6]&15|64,l[8]=l[8]&63|128,e){if(I=I||0,I<0||I+16>e.length)throw new RangeError(`UUID byte range ${I}:${I+15} is out of buffer bounds`);for(let n=0;n<16;++n)e[I+n]=l[n];return e}return n3e(l)}function mft(t,e,I){return Ade.randomUUID&&!e&&!t?Ade.randomUUID():bft(t,e,I)}var Es,c3e=m(()=>{s3e();a3e();r3e();Es=mft});var A2=m(()=>{c3e()});var TX,Qde=m(()=>{"use strict";A2();TX=class{settings={};mergePartial(e,I){return{...e,...I}}setBlackbirdMode(e){return e!==void 0&&(e=="tool"||e=="initial-search")&&(this.settings.blackbird=this.mergePartial(this.settings.blackbird,{mode:e})),this}setSwebenchBaseCommit(e){return e!==void 0&&(this.settings.swebench_base_commit=e),this}setGithubUserName(e){if(e!==void 0){let I=this.settings.github?.user||{};this.settings.github=this.mergePartial(this.settings.github,{user:{...I,name:e}})}return this}setGithubUserEmail(e){if(e!==void 0){let I=this.settings.github?.user||{};this.settings.github=this.mergePartial(this.settings.github,{user:{...I,email:e}})}return this}setGithubToken(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{token:e})),this}setGithubServerUrl(e){return e??="https://github.com",this.settings.github=this.mergePartial(this.settings.github,{serverUrl:e}),(!this.settings.github.host||!this.settings.github.hostProtocol)&&(this.settings.github=this.mergePartial(this.settings.github,new URL(e))),this}setGithubHost(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{host:e})),this}setGithubHostProtocol(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{hostProtocol:e})),this}setGithubActorId(e){if(e!==void 0){let I=this.settings.github?.user||{};this.settings.github=this.mergePartial(this.settings.github,{user:{...I,actorId:e}})}return this}setGithubActorLogin(e){if(e!==void 0){let I=this.settings.github?.user||{};this.settings.github=this.mergePartial(this.settings.github,{user:{...I,actorLogin:e}})}return this}setAgentRuntimeVersion(e){return e!==void 0?this.settings.version=e:this.settings.version="latest",this}setClientName(e){return e!==void 0&&(this.settings.clientName=e),this}setGithubRepoName(e){if(e!==void 0){let I=this.settings.github?.repo||{};this.settings.github=this.mergePartial(this.settings.github,{repo:{...I,name:e}})}return this}setGithubRepoId(e){if(e!==void 0){let I=this.settings.github?.repo||{},l=Number(e);isNaN(l)||(this.settings.github=this.mergePartial(this.settings.github,{repo:{...I,id:l}}))}return this}setGithubRepoOwnerName(e){if(e!==void 0){let I=this.settings.github?.owner||{};this.settings.github=this.mergePartial(this.settings.github,{owner:{...I,name:e}})}return this}setGithubRepoOwnerId(e){if(e!==void 0){let I=this.settings.github?.owner||{},l=Number(e);isNaN(l)||(this.settings.github=this.mergePartial(this.settings.github,{owner:{...I,id:l}}))}return this}setGithubRepoBranch(e){if(e){let I=e.replace(/^refs\/heads\//,"");if(I.length===0)return this;let l=this.settings.github?.repo||{};this.settings.github=this.mergePartial(this.settings.github,{repo:{...l,branch:I}})}return this}setGithubRepoCommit(e){if(e!==void 0){let I=this.settings.github?.repo||{};this.settings.github=this.mergePartial(this.settings.github,{repo:{...I,commit:e}})}return this}setGithubRepoReadWrite(e){if(e!==void 0){let I=this.settings.github?.repo||{};this.settings.github=this.mergePartial(this.settings.github,{repo:{...I,readWrite:e}})}return this}setProblemStatement(e){return e!==void 0&&(this.settings.problem=this.mergePartial(this.settings.problem,{statement:e})),this}setProblemContentFilterMode(e){return e!==void 0&&(this.settings.problem=this.mergePartial(this.settings.problem,{contentFilterMode:e})),this}setProblemAction(e){return e!==void 0&&(this.settings.problem=this.mergePartial(this.settings.problem,{action:e})),this}setCustomAgentName(e){return e!==void 0&&(this.settings.problem=this.mergePartial(this.settings.problem,{customAgentName:e})),this}setGithubPRCommitCount(e){if(e!==void 0){let I=this.settings.github?.pr||{};this.settings.github=this.mergePartial(this.settings.github,{pr:{...I,commitCount:e}})}return this}setInstanceId(e){return this.settings.service=this.mergePartial(this.settings.service,{instance:{id:e??Es()}}),this}setAgentModel(e){if(e!==void 0){let I=this.settings.service?.agent||{};this.settings.service=this.mergePartial(this.settings.service,{agent:{...I,model:e}})}return this}setRequestHeaders(e){if(e!==void 0){let I=this.settings.service?.agent||{};this.settings.service=this.mergePartial(this.settings.service,{agent:{...I,requestHeaders:e}})}return this}setRetryPolicy(e){if(e!==void 0){let I=this.settings.service?.agent||{};this.settings.service=this.mergePartial(this.settings.service,{agent:{...I,retryPolicy:e}})}return this}setCallbackUrl(e){return e!==void 0&&(this.settings.service=this.mergePartial(this.settings.service,{callback:{url:e}})),this}setGitHubUploadsUrl(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{uploadsUrl:e})),this}setGitHubDownloadsUrl(e){return e!==void 0&&(this.settings.github=this.mergePartial(this.settings.github,{downloadsUrl:e})),this}setAipSweAgentToken(e){return e!==void 0&&(this.settings.api=this.mergePartial(this.settings.api,{aipSweAgent:{token:e}})),this}setAnthropicApiKey(e){return e!==void 0&&(this.settings.api=this.mergePartial(this.settings.api,{anthropic:{key:e}})),this}setOpenAiApiKey(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,apiKey:e}})}return this}setOpenAiBaseUrl(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,baseUrl:e}})}return this}setAzureOpenAiUrl(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,azure:{...I.azure,url:e}}})}return this}setAzureOpenAiApiVersion(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,azure:{...I.azure,apiVersion:e}}})}return this}setAzureOpenAiKeyVaultUri(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,azureKeyVaultUri:e}})}return this}setAzureOpenAiSecretName(e){if(e!==void 0){let I=this.settings.api?.openai||{};this.settings.api=this.mergePartial(this.settings.api,{openai:{...I,azureSecretName:e}})}return this}setCopilotUrl(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,url:e}})}return this}setCopilotIntegrationId(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,integrationId:e}})}return this}setCopilotHmacKey(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,hmacKey:e}})}return this}setCopilotToken(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,token:e}})}return this}setCopilotAzureKeyVaultUri(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,azureKeyVaultUri:e}})}return this}setCopilotSessionId(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,sessionId:e}})}return this}setCopilotPreviousSessionIds(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,previousSessionIds:e.split(",").map(l=>l.trim()).filter(l=>l.length>0)}})}return this}setCopilotUseSessions(e){if(e!==void 0){let I=this.settings.api?.copilot||{};this.settings.api=this.mergePartial(this.settings.api,{copilot:{...I,useSessions:e}})}return this}setCopilotJobNonce(e){return e!==void 0&&(this.settings.job=this.mergePartial(this.settings.job,{nonce:e})),this}setCopilotJobEventType(e){return e!==void 0&&(this.settings.job=this.mergePartial(this.settings.job,{eventType:e})),this}setTrajectoryOutputFile(e){return e!==void 0&&(this.settings.trajectory=this.mergePartial(this.settings.trajectory,{outputFile:e})),this}setEventsLogDirectory(e){return e!==void 0&&(this.settings.logs=this.mergePartial(this.settings.logs,{eventsLogDir:e})),this}setDisableOnlineEvaluation(e){return e==!0&&this.settings.onlineEvaluation?.disableOnlineEvaluation!==!0&&(this.settings.onlineEvaluation=this.mergePartial(this.settings.onlineEvaluation,{disableOnlineEvaluation:e})),this}setEnableOnlineEvaluationOutputFile(e){return e==!0&&this.settings.onlineEvaluation?.enableOnlineEvaluationOutputFile!==!0&&(this.settings.onlineEvaluation=this.mergePartial(this.settings.onlineEvaluation,{enableOnlineEvaluationOutputFile:e})),this}setGitHubMCPServerToken(e){return e!==void 0&&(this.settings.api=this.mergePartial(this.settings.api,{github:{mcpServerToken:e}})),this}setFeatureFlagEnabled(e){return this.settings.featureFlags=this.mergePartial(this.settings.featureFlags,{[e]:!0}),this}setExperiment(e,I){return this.settings.experiments=this.mergePartial(this.settings.experiments,{[e]:I}),this}setTimeoutMs(e){return e!==void 0&&(this.settings.timeoutMs=e),this}setStartTimeMs(e){return e!==void 0&&(this.settings.startTimeMs=e),this}build(){return this.settings}}});async function i3e(){let t=new TX;t.setGithubServerUrl(process.env.GITHUB_SERVER_URL).setGithubHost(process.env.GITHUB_HOST).setGithubHostProtocol(process.env.GITHUB_HOST_PROTOCOL).setGithubToken(process.env.GITHUB_TOKEN).setGithubUserName(process.env.COPILOT_AGENT_COMMIT_LOGIN).setGithubUserEmail(process.env.COPILOT_AGENT_COMMIT_EMAIL).setGithubRepoOwnerId(process.env.GITHUB_REPOSITORY_OWNER_ID).setGithubRepoOwnerName(process.env.GITHUB_REPOSITORY_OWNER).setGithubRepoId(process.env.GITHUB_REPOSITORY_ID).setGithubRepoName(process.env.GITHUB_REPOSITORY).setGithubRepoBranch(process.env.COPILOT_AGENT_BRANCH_NAME).setGithubRepoCommit(process.env.COPILOT_AGENT_BASE_COMMIT).setAgentRuntimeVersion(process.env.COPILOT_AGENT_RUNTIME_VERSION),process.env.COPILOT_AGENT_PUSH!==void 0&&t.setGithubRepoReadWrite(process.env.COPILOT_AGENT_PUSH==="true"),t.setGithubPRCommitCount(process.env.COPILOT_AGENT_PR_COMMIT_COUNT?parseInt(process.env.COPILOT_AGENT_PR_COMMIT_COUNT,10):void 0),t.setProblemStatement(process.env.COPILOT_AGENT_PROMPT).setProblemContentFilterMode(process.env.COPILOT_AGENT_CONTENT_FILTER_MODE).setCustomAgentName(process.env.COPILOT_CUSTOM_AGENT);let e=process.env.COPILOT_AGENT_ACTION;if(e&&["fix","fix-pr-comment"].includes(e)&&t.setProblemAction(e),process.env.COPILOT_AGENT_ACTOR_ID&&t.setGithubActorId(parseInt(process.env.COPILOT_AGENT_ACTOR_ID,10)),process.env.COPILOT_AGENT_ACTOR&&t.setGithubActorLogin(process.env.COPILOT_AGENT_ACTOR),t.setInstanceId(process.env.COPILOT_AGENT_JOB_ID).setCopilotJobNonce(process.env.COPILOT_JOB_NONCE).setCopilotJobEventType(process.env.COPILOT_JOB_EVENT_TYPE).setAgentModel(process.env.COPILOT_AGENT_MODEL).setCallbackUrl(process.env.COPILOT_AGENT_CALLBACK_URL).setGitHubUploadsUrl(process.env.GITHUB_UPLOADS_URL).setGitHubDownloadsUrl(process.env.GITHUB_DOWNLOADS_URL),t.setAipSweAgentToken(process.env.AIP_SWE_AGENT_TOKEN).setAnthropicApiKey(process.env.ANTHROPIC_API_KEY).setCopilotUrl(process.env.COPILOT_API_URL).setCopilotIntegrationId(process.env.GITHUB_COPILOT_INTEGRATION_ID).setCopilotHmacKey(process.env.CAPI_HMAC_KEY).setCopilotToken(process.env.GITHUB_COPILOT_API_TOKEN).setCopilotAzureKeyVaultUri(process.env.CAPI_AZURE_KEY_VAULT_URI).setBlackbirdMode(process.env.BLACKBIRD_MODE||"initial-search").setCopilotSessionId(process.env.COPILOT_AGENT_SESSION_ID).setCopilotPreviousSessionIds(process.env.COPILOT_AGENT_PREVIOUS_SESSION_IDS).setSwebenchBaseCommit(process.env.SWEBENCH_BASE_COMMIT).setGitHubMCPServerToken(process.env.GITHUB_MCP_SERVER_TOKEN).setAzureOpenAiKeyVaultUri(process.env.AZURE_OPENAI_KEY_VAULT_URI).setAzureOpenAiSecretName(process.env.AZURE_OPENAI_KEY_VAULT_SECRET_NAME).setOpenAiBaseUrl(process.env.OPENAI_BASE_URL).setOpenAiApiKey(process.env.AZURE_OPENAI_API_KEY||process.env.OPENAI_API_KEY).setAzureOpenAiUrl(process.env.AZURE_OPENAI_API_ENDPOINT).setAzureOpenAiApiVersion(process.env.AZURE_OPENAI_API_VERSION),process.env.COPILOT_USE_SESSIONS!==void 0&&t.setCopilotUseSessions(process.env.COPILOT_USE_SESSIONS==="true"),t.setTrajectoryOutputFile(process.env.CPD_SAVE_TRAJECTORY_OUTPUT),t.setEventsLogDirectory(process.env.COPILOT_EVENTS_LOG_DIRECTORY),process.env.COPILOT_AGENT_ONLINE_EVALUATION_DISABLED!==void 0&&t.setDisableOnlineEvaluation(process.env.COPILOT_AGENT_ONLINE_EVALUATION_DISABLED==="true"),process.env.COPILOT_AGENT_ONLINE_EVALUATION_OUTPUT_FILE!==void 0&&t.setEnableOnlineEvaluationOutputFile(process.env.COPILOT_AGENT_ONLINE_EVALUATION_OUTPUT_FILE==="true"),process.env.COPILOT_FEATURE_FLAGS&&process.env.COPILOT_FEATURE_FLAGS.split(",").map(n=>n.trim()).filter(n=>n.length>0).forEach(n=>t.setFeatureFlagEnabled(n)),process.env.COPILOT_EXPERIMENTS&&process.env.COPILOT_EXPERIMENTS.split(",").map(n=>{let[r,a]=n.split(":");t.setExperiment(r,a)}),process.env.COPILOT_AGENT_ERROR_CODES_TO_RETRY){let n=process.env.COPILOT_AGENT_ERROR_CODES_TO_RETRY.split(",").map(r=>parseInt(r.trim(),10));t.setRetryPolicy({errorCodesToRetry:n})}if(process.env.COPILOT_AGENT_REQUEST_HEADERS)try{let n=JSON.parse(process.env.COPILOT_AGENT_REQUEST_HEADERS);t.setRequestHeaders(n)}catch{}let I=process.env.COPILOT_AGENT_TIMEOUT_MIN?parseInt(process.env.COPILOT_AGENT_TIMEOUT_MIN,10):void 0;I!==void 0&&!Number.isNaN(I)&&t.setTimeoutMs(I*60*1e3);let l=process.env.COPILOT_AGENT_START_TIME_SEC?parseInt(process.env.COPILOT_AGENT_START_TIME_SEC,10):void 0;return l!==void 0&&!Number.isNaN(l)&&t.setStartTimeMs(l*1e3),t.build()}var MK,o3e,JL=m(()=>{"use strict";Qde();MK=["GITHUB_TOKEN","COPILOT_GITHUB_TOKEN","GITHUB_COPILOT_API_TOKEN","CAPI_HMAC_KEY","CAPI_HMAC_KEY_OVERRIDE","ANTHROPIC_API_KEY","AIP_SWE_AGENT_TOKEN","CAPI_AZURE_KEY_VAULT_URI","COPILOT_JOB_NONCE","GITHUB_MCP_SERVER_TOKEN","OPENAI_BASE_URL","OPENAI_API_KEY","COPILOT_AGENT_REQUEST_HEADERS","AZURE_OPENAI_API_KEY","AZURE_OPENAI_API_ENDPOINT","AZURE_OPENAI_KEY_VAULT_URI","AZURE_OPENAI_KEY_VAULT_SECRET_NAME","BLACKBIRD_AUTH_METIS_API_KEY","BLACKBIRD_AUTH_MODEL_BASED_RETRIEVAL_TOKEN"],o3e=["COPILOT_CALLBACK_URL","COPILOT_AGENT_MODEL","COPILOT_AGENT_JOB_ID","COPILOT_AGENT_PROMPT","COPILOT_AGENT_PUSH","COPILOT_FIREWALL_ENABLED","COPILOT_FIREWALL_ALLOW_LIST","GITHUB_COPILOT_INTEGRATION_ID","COPILOT_INTEGRATION_ID_OVERRIDE","COPILOT_AGENT_SESSION_ID","COPILOT_AGENT_PREVIOUS_SESSION_IDS","COPILOT_AGENT_EVENT_URL","COPILOT_AGENT_EVENT_TYPE","NODE_ENV","COPILOT_AGENT_ACTOR","COPILOT_AGENT_ACTOR_ID",...MK]});function Ar(t,e){return t?.featureFlags?.[e]??!1}function d3e(t,e){return t?.experiments?.[e]}function wde(t){return Object.keys(t.featureFlags??{}).filter(e=>t.featureFlags?.[e]).join(",")}function Xde(t,e=[]){for(let[I,l]of Object.entries(t))if(l!==null)switch(typeof l){case"object":Xde(l,e);break;case"undefined":break;default:if(pft.includes(I)){let n=l.toString().trim();n!=""&&e.push(n)}break}return e}function G3e(t,e){if(isNaN(e)||!isFinite(e)||e<=0)return{isWithin:!1,withinMs:e};if(e>1)return{isWithin:!1,withinMs:e};if(!t.timeoutMs)return{isWithin:!1,withinMs:e};let I=t.timeoutMs*e;return t.startTimeMs?{isWithin:Date.now()-t.startTimeMs>=t.timeoutMs-I,withinMs:I}:{isWithin:!1,withinMs:I}}var pft,Si=m(()=>{"use strict";pft=["token","secret","key","hmacKey","modelBasedRetrievalToken","metisApiKey"]});import*as b3e from"process";function Ede(t){let e=b3e.env[t];if(e&&e.trim()!=="")return e}var m3e=m(()=>{"use strict"});function Hde(t,e){t.add(e),t.add(Buffer.from(e,"utf8").toString("base64"))}var uft,h3e,pp,fL=m(()=>{"use strict";UK();JL();Si();m3e();uft=[/\b(?:eyJ0eXAiOi|eyJhbGciOi|eyJ4NXQiOi|eyJraWQiOi)[^\s'";]+/g,/\bBearer\s+[^\s'";]+/g,/\b(?:Password|Pwd)=(?:[^\s'";]+|"[^"]+")/gi,/\s+-(?:Password|Pwd)\s+(?:[^\s'";]+|"[^"]+")/gi,/\bv1\.[0-9A-Fa-f]{40}\b/g,/\bgh[pousr]{1}_[A-Za-z0-9]{36}\b/g,/\bgithub_pat_[0-9][A-Za-z0-9]{21}_[A-Za-z0-9]{59}\b/g,/(?:[a-zA-Z][a-zA-Z\d+-.]*):\/\/([a-zA-Z\d\-._~!$&'()*+,;=%]+):([a-zA-Z\d\-._~!$&'()*+,;=:%]*)@/g,/\b[0-9A-Za-z-_~.]{3}7Q~[0-9A-Za-z-_~.]{31}\b|\b[0-9A-Za-z-_~.]{3}8Q~[0-9A-Za-z-_~.]{34}\b/g,/\b[0-9A-Za-z+/]{76}(APIM|ACDb|\+(ABa|AMC|ASt))[0-9A-Za-z+/]{5}[AQgw]==/g,/\b[0-9A-Za-z+/]{33}(AIoT|\+(ASb|AEh|ARm))[A-P][0-9A-Za-z+/]{5}=/g,/\b[0-9A-Za-z_-]{44}AzFu[0-9A-Za-z\-_]{5}[AQgw]==/g,/\b[0-9A-Za-z]{42}AzSe[A-D][0-9A-Za-z]{5}\b/g,/\b[0-9A-Za-z+/]{42}\+ACR[A-D][0-9A-Za-z+/]{5}\b/g,/\b[0-9A-Za-z]{33}AzCa[A-P][0-9A-Za-z]{5}=/g,/\boy2[a-p][0-9a-z]{15}[aq][0-9a-z]{11}[eu][bdfhjlnprtvxz357][a-p][0-9a-z]{11}[aeimquy4]\b/g,/\bnpm_[0-9A-Za-z]{36}\b/g,/\bx-ghcr-signature=[^&]+/g],h3e="******",pp=class t{static singleton;static getInstance(){return t.singleton||(t.singleton=new t),t.singleton}secretValuesToFilter;runner;logger;constructor(){}setRunner(e){this.runner=e,this.logger=e.logger,this.secretValuesToFilter=void 0}filterSecrets(e){let I=typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"message"),l=I?e.message??e.toString():e,n=this.getSecretValues();for(let r of n)l=l.replaceAll(r,h3e);for(let r of uft)l=l.replaceAll(r,h3e);return I?(e.message=l,e):l}filterSecretsFromJsonString(e){try{let I=JSON.parse(e),l=this.filterSecretsFromObj(I);return JSON.stringify(l)}catch{return this.filterSecrets(e)}}filterSecretsFromObj(e){if(e==null)return e;if(typeof e=="string")return this.filterSecrets(e);if(typeof e=="number"){let I=this.filterSecrets(e.toString()),l=Number(I);return isNaN(l)?I:l}if(Array.isArray(e))return e.map(I=>this.filterSecretsFromObj(I));if(typeof e=="object"){let I={};for(let[l,n]of Object.entries(e))I[l]=this.filterSecretsFromObj(n);return I}return e}getSecretValues(){if(this.secretValuesToFilter)return this.secretValuesToFilter;let e={secretEnvVars:!1,runner:!1,settings:!1},I=new Set;for(let l of MK){let n=Ede(l);n&&Hde(I,n)}if(e.secretEnvVars=!0,this.runner){for(let l of this.runner.sensitiveKeys){let n=Ede(l);n&&Hde(I,n)}e.runner=!0}if(zK()){let l=Xde(gde());for(let n of l)Hde(I,n);e.settings=!0}return Object.values(e).every(l=>l)&&(this.secretValuesToFilter=I,this.logger?.debug("Caching secret values to filter from all sources.")),I}}});function LL(...t){let e=new Set(["DEBUG","COPILOT_AGENT_DEBUG",...t]);for(let I of e)if(process.env[I]==="1"||process.env[I]?.toLocaleLowerCase()==="true")return!0;return!1}var rW,Q2=m(()=>{"use strict";fL();rW=class{logLevel;debugEnvironmentVariables;secretFilter=pp.getInstance();constructor(e,I){e===void 0?LL(...I??[])?this.logLevel=15:this.logLevel=7:this.logLevel=e,this.debugEnvironmentVariables=I}filterSecrets(e){return typeof e=="string"?this.secretFilter.filterSecrets(e):this.secretFilter.filterSecrets(e)}shouldLog(e){return this.logLevel===void 0||(this.logLevel&e)===e}isDebug(){return LL(...this.debugEnvironmentVariables??[])}}});import{exec as p3e,execFile as Zft}from"child_process";var u3e,ob,ag=m(()=>{"use strict";u3e=fI(t3e(),1);Q2();ob=class{logger;constructor(e){this.logger=e}async exec(e,I,l,n=[]){let r=l?.silent??!1,a=l?.silentDebugLogging??!0;try{let s=(l?.isDirectAgentCommand?"Copilot: ":"")+(I?`${e} ${I.join(" ")}`:e);this.logger.startGroup(s,r?8:void 0);let c=await this._exec(e,I,l,n);if(c.error)throw c.error;return c.stdout&&(r?a&&this.logger.debug(c.stdout):this.logger.info(c.stdout)),c.stderr&&this.logger.error(c.stderr),0}catch(s){throw this.logger.error(s),s}finally{this.logger.endGroup(r?8:void 0)}}async execReturn(e,I,l,n=[]){let r=l?.silent??!1,a=l?.silentDebugLogging??!0;try{let s=(l?.isDirectAgentCommand?"Copilot: ":"")+(I?`${e} ${I.join(" ")}`:e);this.logger.startGroup(s,r?8:void 0);let c=await this._exec(e,I,l,n);if(c.error)throw c.error;return c.stdout&&(r?a&&this.logger.debug(c.stdout):this.logger.info(c.stdout)),c.stderr&&this.logger.error(c.stderr),{exitCode:c.exitCode,stdout:c.stdout,stderr:c.stderr}}catch(s){throw this.logger.error(s),s}finally{this.logger.endGroup(r?8:void 0)}}_exec(e,I,l,n=[]){l||(l={}),l.timeout||(l.timeout=9e5),I||(I=[]);let r={cwd:l.cwd,env:l.env,shell:l.shell,timeout:l.timeout,signal:l.abortSignal};return new Promise((a,s)=>{let c=l.shell&&I?.length===0?p3e(e,r):l.shell?p3e(`${e} ${(0,u3e.default)(I)}`,r):Zft(e,I,r),o="",i="";c.stdout?.on("data",d=>{o+=d}),c.stderr?.on("data",d=>{i+=d}),c.on("close",(d,G)=>{if(d!==0&&!l?.ignoreReturnCode){let b=this.filterCommand(e,I,n),h=new Error(`Command failed with exit code ${d}: ${b}`);h.cmd=b,h.code=d,h.stdout=o,h.stderr=i,h.signal=G,s(h)}else a({error:null,stdout:o,stderr:i,exitCode:d})}),c.on("error",d=>{d.stdout=o,d.stderr=i,d.cmd=this.filterCommand(e,I,n),s(d)}),l.input&&(c.stdin?.write(l.input),c.stdin?.end())})}filterCommand(e,I=[],l){let n=I.reduce((r,a)=>(l.includes(a)?r.push("REDACTED"):r.push(a),r),[]);return`${e} ${n.join(" ")}`}}});var Hs,jX=m(()=>{"use strict";Q2();Hs=class extends rW{constructor(){super()}debug(e){}log(e){}info(e){}notice(e){}warning(e){}error(e){}startGroup(e,I){}endGroup(e){}}});var q3e=y((kL,KX)=>{var Wft=200,Nft="Expected a function",Ude="__lodash_hash_undefined__",$K=1,PX=2,A3e=1/0,Q3e=9007199254740991,TK="[object Arguments]",Jde="[object Array]",w3e="[object Boolean]",X3e="[object Date]",E3e="[object Error]",H3e="[object Function]",Yft="[object GeneratorFunction]",jK="[object Map]",v3e="[object Number]",DX="[object Object]",Z3e="[object Promise]",C3e="[object RegExp]",DK="[object Set]",J3e="[object String]",f3e="[object Symbol]",fde="[object WeakMap]",L3e="[object ArrayBuffer]",KK="[object DataView]",Vft="[object Float32Array]",yft="[object Float64Array]",Rft="[object Int8Array]",gft="[object Int16Array]",Fft="[object Int32Array]",Aft="[object Uint8Array]",Qft="[object Uint8ClampedArray]",wft="[object Uint16Array]",Xft="[object Uint32Array]",Eft=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Hft=/^\w*$/,vft=/^\./,Cft=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Jft=/[\\^$.*+?()[\]{}|]/g,fft=/\\(\\)?/g,Lft=/^\[object .+?Constructor\]$/,kft=/^(?:0|[1-9]\d*)$/,rr={};rr[Vft]=rr[yft]=rr[Rft]=rr[gft]=rr[Fft]=rr[Aft]=rr[Qft]=rr[wft]=rr[Xft]=!0;rr[TK]=rr[Jde]=rr[L3e]=rr[w3e]=rr[KK]=rr[X3e]=rr[E3e]=rr[H3e]=rr[jK]=rr[v3e]=rr[DX]=rr[C3e]=rr[DK]=rr[J3e]=rr[fde]=!1;var k3e=typeof global=="object"&&global&&global.Object===Object&&global,xft=typeof self=="object"&&self&&self.Object===Object&&self,X2=k3e||xft||Function("return this")(),x3e=typeof kL=="object"&&kL&&!kL.nodeType&&kL,W3e=x3e&&typeof KX=="object"&&KX&&!KX.nodeType&&KX,Bft=W3e&&W3e.exports===x3e,N3e=Bft&&k3e.process,Y3e=(function(){try{return N3e&&N3e.binding("util")}catch{}})(),V3e=Y3e&&Y3e.isTypedArray;function zft(t,e){for(var I=-1,l=t?t.length:0;++I<l;)if(e(t[I],I,t))return!0;return!1}function Uft(t){return function(e){return e?.[t]}}function Sft(t,e){for(var I=-1,l=Array(t);++I<t;)l[I]=e(I);return l}function Oft(t){return function(e){return t(e)}}function Mft(t,e){return t?.[e]}function Lde(t){var e=!1;if(t!=null&&typeof t.toString!="function")try{e=!!(t+"")}catch{}return e}function Tft(t){var e=-1,I=Array(t.size);return t.forEach(function(l,n){I[++e]=[n,l]}),I}function jft(t,e){return function(I){return t(e(I))}}function Dft(t){var e=-1,I=Array(t.size);return t.forEach(function(l){I[++e]=l}),I}var Kft=Array.prototype,Pft=Function.prototype,eP=Object.prototype,vde=X2["__core-js_shared__"],y3e=(function(){var t=/[^.]+$/.exec(vde&&vde.keys&&vde.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})(),B3e=Pft.toString,sW=eP.hasOwnProperty,qX=eP.toString,qft=RegExp("^"+B3e.call(sW).replace(Jft,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),R3e=X2.Symbol,g3e=X2.Uint8Array,_ft=eP.propertyIsEnumerable,$ft=Kft.splice,eLt=jft(Object.keys,Object),kde=_X(X2,"DataView"),xL=_X(X2,"Map"),xde=_X(X2,"Promise"),Bde=_X(X2,"Set"),zde=_X(X2,"WeakMap"),BL=_X(Object,"create"),tLt=og(kde),ILt=og(xL),lLt=og(xde),nLt=og(Bde),rLt=og(zde),PK=R3e?R3e.prototype:void 0,Cde=PK?PK.valueOf:void 0,F3e=PK?PK.toString:void 0;function sg(t){var e=-1,I=t?t.length:0;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function aLt(){this.__data__=BL?BL(null):{}}function sLt(t){return this.has(t)&&delete this.__data__[t]}function cLt(t){var e=this.__data__;if(BL){var I=e[t];return I===Ude?void 0:I}return sW.call(e,t)?e[t]:void 0}function oLt(t){var e=this.__data__;return BL?e[t]!==void 0:sW.call(e,t)}function iLt(t,e){var I=this.__data__;return I[t]=BL&&e===void 0?Ude:e,this}sg.prototype.clear=aLt;sg.prototype.delete=sLt;sg.prototype.get=cLt;sg.prototype.has=oLt;sg.prototype.set=iLt;function cW(t){var e=-1,I=t?t.length:0;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function dLt(){this.__data__=[]}function GLt(t){var e=this.__data__,I=tP(e,t);if(I<0)return!1;var l=e.length-1;return I==l?e.pop():$ft.call(e,I,1),!0}function bLt(t){var e=this.__data__,I=tP(e,t);return I<0?void 0:e[I][1]}function mLt(t){return tP(this.__data__,t)>-1}function hLt(t,e){var I=this.__data__,l=tP(I,t);return l<0?I.push([t,e]):I[l][1]=e,this}cW.prototype.clear=dLt;cW.prototype.delete=GLt;cW.prototype.get=bLt;cW.prototype.has=mLt;cW.prototype.set=hLt;function oW(t){var e=-1,I=t?t.length:0;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function pLt(){this.__data__={hash:new sg,map:new(xL||cW),string:new sg}}function uLt(t){return IP(this,t).delete(t)}function ZLt(t){return IP(this,t).get(t)}function WLt(t){return IP(this,t).has(t)}function NLt(t,e){return IP(this,t).set(t,e),this}oW.prototype.clear=pLt;oW.prototype.delete=uLt;oW.prototype.get=ZLt;oW.prototype.has=WLt;oW.prototype.set=NLt;function qK(t){var e=-1,I=t?t.length:0;for(this.__data__=new oW;++e<I;)this.add(t[e])}function YLt(t){return this.__data__.set(t,Ude),this}function VLt(t){return this.__data__.has(t)}qK.prototype.add=qK.prototype.push=YLt;qK.prototype.has=VLt;function aW(t){this.__data__=new cW(t)}function yLt(){this.__data__=new cW}function RLt(t){return this.__data__.delete(t)}function gLt(t){return this.__data__.get(t)}function FLt(t){return this.__data__.has(t)}function ALt(t,e){var I=this.__data__;if(I instanceof cW){var l=I.__data__;if(!xL||l.length<Wft-1)return l.push([t,e]),this;I=this.__data__=new oW(l)}return I.set(t,e),this}aW.prototype.clear=yLt;aW.prototype.delete=RLt;aW.prototype.get=gLt;aW.prototype.has=FLt;aW.prototype.set=ALt;function QLt(t,e){var I=cg(t)||D3e(t)?Sft(t.length,String):[],l=I.length,n=!!l;for(var r in t)(e||sW.call(t,r))&&!(n&&(r=="length"||O3e(r,l)))&&I.push(r);return I}function tP(t,e){for(var I=t.length;I--;)if(j3e(t[I][0],e))return I;return-1}var wLt=SLt();function XLt(t,e){return t&&wLt(t,e,_K)}function z3e(t,e){e=lP(e,t)?[e]:U3e(e);for(var I=0,l=e.length;t!=null&&I<l;)t=t[nP(e[I++])];return I&&I==l?t:void 0}function ELt(t){return qX.call(t)}function HLt(t,e){return t!=null&&e in Object(t)}function Sde(t,e,I,l,n){return t===e?!0:t==null||e==null||!rP(t)&&!aP(e)?t!==t&&e!==e:vLt(t,e,Sde,I,l,n)}function vLt(t,e,I,l,n,r){var a=cg(t),s=cg(e),c=Jde,o=Jde;a||(c=w2(t),c=c==TK?DX:c),s||(o=w2(e),o=o==TK?DX:o);var i=c==DX&&!Lde(t),d=o==DX&&!Lde(e),G=c==o;if(G&&!i)return r||(r=new aW),a||$Lt(t)?S3e(t,e,I,l,n,r):OLt(t,e,c,I,l,n,r);if(!(n&PX)){var b=i&&sW.call(t,"__wrapped__"),h=d&&sW.call(e,"__wrapped__");if(b||h){var p=b?t.value():t,u=h?e.value():e;return r||(r=new aW),I(p,u,l,n,r)}}return G?(r||(r=new aW),MLt(t,e,I,l,n,r)):!1}function CLt(t,e,I,l){var n=I.length,r=n,a=!l;if(t==null)return!r;for(t=Object(t);n--;){var s=I[n];if(a&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++n<r;){s=I[n];var c=s[0],o=t[c],i=s[1];if(a&&s[2]){if(o===void 0&&!(c in t))return!1}else{var d=new aW;if(l)var G=l(o,i,c,t,e,d);if(!(G===void 0?Sde(i,o,l,$K|PX,d):G))return!1}}return!0}function JLt(t){if(!rP(t)||KLt(t))return!1;var e=P3e(t)||Lde(t)?qft:Lft;return e.test(og(t))}function fLt(t){return aP(t)&&Mde(t.length)&&!!rr[qX.call(t)]}function LLt(t){return typeof t=="function"?t:t==null?nkt:typeof t=="object"?cg(t)?BLt(t[0],t[1]):xLt(t):rkt(t)}function kLt(t){if(!PLt(t))return eLt(t);var e=[];for(var I in Object(t))sW.call(t,I)&&I!="constructor"&&e.push(I);return e}function xLt(t){var e=TLt(t);return e.length==1&&e[0][2]?T3e(e[0][0],e[0][1]):function(I){return I===t||CLt(I,t,e)}}function BLt(t,e){return lP(t)&&M3e(e)?T3e(nP(t),e):function(I){var l=tkt(I,t);return l===void 0&&l===e?Ikt(I,t):Sde(e,l,void 0,$K|PX)}}function zLt(t){return function(e){return z3e(e,t)}}function ULt(t){if(typeof t=="string")return t;if(Tde(t))return F3e?F3e.call(t):"";var e=t+"";return e=="0"&&1/t==-A3e?"-0":e}function U3e(t){return cg(t)?t:qLt(t)}function SLt(t){return function(e,I,l){for(var n=-1,r=Object(e),a=l(e),s=a.length;s--;){var c=a[t?s:++n];if(I(r[c],c,r)===!1)break}return e}}function S3e(t,e,I,l,n,r){var a=n&PX,s=t.length,c=e.length;if(s!=c&&!(a&&c>s))return!1;var o=r.get(t);if(o&&r.get(e))return o==e;var i=-1,d=!0,G=n&$K?new qK:void 0;for(r.set(t,e),r.set(e,t);++i<s;){var b=t[i],h=e[i];if(l)var p=a?l(h,b,i,e,t,r):l(b,h,i,t,e,r);if(p!==void 0){if(p)continue;d=!1;break}if(G){if(!zft(e,function(u,W){if(!G.has(W)&&(b===u||I(b,u,l,n,r)))return G.add(W)})){d=!1;break}}else if(!(b===h||I(b,h,l,n,r))){d=!1;break}}return r.delete(t),r.delete(e),d}function OLt(t,e,I,l,n,r,a){switch(I){case KK:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case L3e:return!(t.byteLength!=e.byteLength||!l(new g3e(t),new g3e(e)));case w3e:case X3e:case v3e:return j3e(+t,+e);case E3e:return t.name==e.name&&t.message==e.message;case C3e:case J3e:return t==e+"";case jK:var s=Tft;case DK:var c=r&PX;if(s||(s=Dft),t.size!=e.size&&!c)return!1;var o=a.get(t);if(o)return o==e;r|=$K,a.set(t,e);var i=S3e(s(t),s(e),l,n,r,a);return a.delete(t),i;case f3e:if(Cde)return Cde.call(t)==Cde.call(e)}return!1}function MLt(t,e,I,l,n,r){var a=n&PX,s=_K(t),c=s.length,o=_K(e),i=o.length;if(c!=i&&!a)return!1;for(var d=c;d--;){var G=s[d];if(!(a?G in e:sW.call(e,G)))return!1}var b=r.get(t);if(b&&r.get(e))return b==e;var h=!0;r.set(t,e),r.set(e,t);for(var p=a;++d<c;){G=s[d];var u=t[G],W=e[G];if(l)var N=a?l(W,u,G,e,t,r):l(u,W,G,t,e,r);if(!(N===void 0?u===W||I(u,W,l,n,r):N)){h=!1;break}p||(p=G=="constructor")}if(h&&!p){var R=t.constructor,F=e.constructor;R!=F&&"constructor"in t&&"constructor"in e&&!(typeof R=="function"&&R instanceof R&&typeof F=="function"&&F instanceof F)&&(h=!1)}return r.delete(t),r.delete(e),h}function IP(t,e){var I=t.__data__;return DLt(e)?I[typeof e=="string"?"string":"hash"]:I.map}function TLt(t){for(var e=_K(t),I=e.length;I--;){var l=e[I],n=t[l];e[I]=[l,n,M3e(n)]}return e}function _X(t,e){var I=Mft(t,e);return JLt(I)?I:void 0}var w2=ELt;(kde&&w2(new kde(new ArrayBuffer(1)))!=KK||xL&&w2(new xL)!=jK||xde&&w2(xde.resolve())!=Z3e||Bde&&w2(new Bde)!=DK||zde&&w2(new zde)!=fde)&&(w2=function(t){var e=qX.call(t),I=e==DX?t.constructor:void 0,l=I?og(I):void 0;if(l)switch(l){case tLt:return KK;case ILt:return jK;case lLt:return Z3e;case nLt:return DK;case rLt:return fde}return e});function jLt(t,e,I){e=lP(e,t)?[e]:U3e(e);for(var l,n=-1,a=e.length;++n<a;){var r=nP(e[n]);if(!(l=t!=null&&I(t,r)))break;t=t[r]}if(l)return l;var a=t?t.length:0;return!!a&&Mde(a)&&O3e(r,a)&&(cg(t)||D3e(t))}function O3e(t,e){return e=e??Q3e,!!e&&(typeof t=="number"||kft.test(t))&&t>-1&&t%1==0&&t<e}function lP(t,e){if(cg(t))return!1;var I=typeof t;return I=="number"||I=="symbol"||I=="boolean"||t==null||Tde(t)?!0:Hft.test(t)||!Eft.test(t)||e!=null&&t in Object(e)}function DLt(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function KLt(t){return!!y3e&&y3e in t}function PLt(t){var e=t&&t.constructor,I=typeof e=="function"&&e.prototype||eP;return t===I}function M3e(t){return t===t&&!rP(t)}function T3e(t,e){return function(I){return I==null?!1:I[t]===e&&(e!==void 0||t in Object(I))}}var qLt=Ode(function(t){t=ekt(t);var e=[];return vft.test(t)&&e.push(""),t.replace(Cft,function(I,l,n,r){e.push(n?r.replace(fft,"$1"):l||I)}),e});function nP(t){if(typeof t=="string"||Tde(t))return t;var e=t+"";return e=="0"&&1/t==-A3e?"-0":e}function og(t){if(t!=null){try{return B3e.call(t)}catch{}try{return t+""}catch{}}return""}function Ode(t,e){if(typeof t!="function"||e&&typeof e!="function")throw new TypeError(Nft);var I=function(){var l=arguments,n=e?e.apply(this,l):l[0],r=I.cache;if(r.has(n))return r.get(n);var a=t.apply(this,l);return I.cache=r.set(n,a),a};return I.cache=new(Ode.Cache||oW),I}Ode.Cache=oW;function j3e(t,e){return t===e||t!==t&&e!==e}function D3e(t){return _Lt(t)&&sW.call(t,"callee")&&(!_ft.call(t,"callee")||qX.call(t)==TK)}var cg=Array.isArray;function K3e(t){return t!=null&&Mde(t.length)&&!P3e(t)}function _Lt(t){return aP(t)&&K3e(t)}function P3e(t){var e=rP(t)?qX.call(t):"";return e==H3e||e==Yft}function Mde(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Q3e}function rP(t){var e=typeof t;return!!t&&(e=="object"||e=="function")}function aP(t){return!!t&&typeof t=="object"}function Tde(t){return typeof t=="symbol"||aP(t)&&qX.call(t)==f3e}var $Lt=V3e?Oft(V3e):fLt;function ekt(t){return t==null?"":ULt(t)}function tkt(t,e,I){var l=t==null?void 0:z3e(t,e);return l===void 0?I:l}function Ikt(t,e){return t!=null&&jLt(t,e,HLt)}function _K(t){return K3e(t)?QLt(t):kLt(t)}function lkt(t,e){var I={};return e=LLt(e,3),XLt(t,function(l,n,r){I[e(l,n,r)]=l}),I}function nkt(t){return t}function rkt(t){return lP(t)?Uft(nP(t)):zLt(t)}KX.exports=lkt});function okt(t,e){let I=$3e(t,l=>e.priority<=l.priority);t.splice(I+1,0,e)}function $3e(t,e){for(let I=t.length-1;I>=0;I--)if(e(t[I]))return I;return-1}function exe(t,e,I=akt){return{acquire:(l,n)=>{let r;if(sP(t)?r=l:(r=void 0,n=l),r!==void 0&&r<=0)throw new Error(`invalid weight ${r}: must be positive`);return new Promise((a,s)=>_3e(this,void 0,void 0,function*(){let c=!1,o=setTimeout(()=>{c=!0,s(I)},e);try{let i=yield sP(t)?t.acquire(r,n):t.acquire(n);c?(Array.isArray(i)?i[1]:i)():(clearTimeout(o),a(i))}catch(i){c||(clearTimeout(o),s(i))}}))},runExclusive(l,n,r){return _3e(this,void 0,void 0,function*(){let a=()=>{};try{let s=yield this.acquire(n,r);return Array.isArray(s)?(a=s[1],yield l(s[0])):(a=s,yield l())}finally{a()}})},release(l){t.release(l)},cancel(){return t.cancel()},waitForUnlock:(l,n)=>{let r;if(sP(t)?r=l:(r=void 0,n=l),r!==void 0&&r<=0)throw new Error(`invalid weight ${r}: must be positive`);return new Promise((a,s)=>{let c=setTimeout(()=>s(I),e);(sP(t)?t.waitForUnlock(r,n):t.waitForUnlock(n)).then(()=>{clearTimeout(c),a()})})},isLocked:()=>t.isLocked(),getValue:()=>t.getValue(),setValue:l=>t.setValue(l)}}function sP(t){return t.getValue!==void 0}var akt,yMI,skt,ckt,jde,ikt,cP,_3e,txe=m(()=>{akt=new Error("timeout while waiting for mutex to become available"),yMI=new Error("mutex already locked"),skt=new Error("request for lock canceled"),ckt=function(t,e,I,l){function n(r){return r instanceof I?r:new I(function(a){a(r)})}return new(I||(I=Promise))(function(r,a){function s(i){try{o(l.next(i))}catch(d){a(d)}}function c(i){try{o(l.throw(i))}catch(d){a(d)}}function o(i){i.done?r(i.value):n(i.value).then(s,c)}o((l=l.apply(t,e||[])).next())})},jde=class{constructor(e,I=skt){this._value=e,this._cancelError=I,this._queue=[],this._weightedWaiters=[]}acquire(e=1,I=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return new Promise((l,n)=>{let r={resolve:l,reject:n,weight:e,priority:I},a=$3e(this._queue,s=>I<=s.priority);a===-1&&e<=this._value?this._dispatchItem(r):this._queue.splice(a+1,0,r)})}runExclusive(e){return ckt(this,arguments,void 0,function*(I,l=1,n=0){let[r,a]=yield this.acquire(l,n);try{return yield I(r)}finally{a()}})}waitForUnlock(e=1,I=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return this._couldLockImmediately(e,I)?Promise.resolve():new Promise(l=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),okt(this._weightedWaiters[e-1],{resolve:l,priority:I})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatchQueue()}release(e=1){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatchQueue()}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(e){let I=this._value;this._value-=e.weight,e.resolve([I,this._newReleaser(e.weight)])}_newReleaser(e){let I=!1;return()=>{I||(I=!0,this.release(e))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let e=this._value;e>0;e--){let I=this._weightedWaiters[e-1];I&&(I.forEach(l=>l.resolve()),this._weightedWaiters[e-1]=[])}else{let e=this._queue[0].priority;for(let I=this._value;I>0;I--){let l=this._weightedWaiters[I-1];if(!l)continue;let n=l.findIndex(r=>r.priority<=e);(n===-1?l:l.splice(0,n)).forEach((r=>r.resolve()))}}}_couldLockImmediately(e,I){return(this._queue.length===0||this._queue[0].priority<I)&&e<=this._value}};ikt=function(t,e,I,l){function n(r){return r instanceof I?r:new I(function(a){a(r)})}return new(I||(I=Promise))(function(r,a){function s(i){try{o(l.next(i))}catch(d){a(d)}}function c(i){try{o(l.throw(i))}catch(d){a(d)}}function o(i){i.done?r(i.value):n(i.value).then(s,c)}o((l=l.apply(t,e||[])).next())})},cP=class{constructor(e){this._semaphore=new jde(1,e)}acquire(){return ikt(this,arguments,void 0,function*(e=0){let[,I]=yield this._semaphore.acquire(1,e);return I})}runExclusive(e,I=0){return this._semaphore.runExclusive(()=>e(),1,I)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(e=0){return this._semaphore.waitForUnlock(1,e)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}},_3e=function(t,e,I,l){function n(r){return r instanceof I?r:new I(function(a){a(r)})}return new(I||(I=Promise))(function(r,a){function s(i){try{o(l.next(i))}catch(d){a(d)}}function c(i){try{o(l.throw(i))}catch(d){a(d)}}function o(i){i.done?r(i.value):n(i.value).then(s,c)}o((l=l.apply(t,e||[])).next())})}});var oP,Ixe=m(()=>{"use strict";txe();oP=class{mutexes=new Map;async runExclusive(e,I,l=5e3){let n=this.mutexes.get(e);n||(n=new cP,n.refCount=0,this.mutexes.set(e,n));let r=n;try{return r.refCount++,await exe(n,l).runExclusive(I)}finally{--r.refCount===0&&this.mutexes.delete(e)}}}});import{existsSync as iP}from"fs";import{appendFile as dkt,mkdir as Gkt,readdir as dP,readFile as nxe,stat as GP,writeFile as bkt}from"fs/promises";import{homedir as rxe}from"os";import{dirname as mkt,join as Oi}from"path";function lxe(t){return Object.values(hP).includes(t)}async function axe(t){let e=mkt(t);try{await Gkt(e,{recursive:!0,mode:448})}catch{}}async function hkt(t,e){if(iP(t))try{let I={},l=await mP.runExclusive(t,()=>nxe(t,"utf8"));return l.trim().startsWith("{")?I=JSON.parse(l):l.split(`
|
|
181
181
|
`).forEach(n=>{let[r,a]=n.split("=").map(s=>s.trim());r&&a&&(I[r]=a)}),e(I)}catch(I){throw new Error(`Failed to read configuration from ${t}: ${ue(I)}`)}}async function pkt(t,e){try{await axe(t);let I=JSON.stringify(e,null,2);await mP.runExclusive(t,()=>bkt(t,I,{mode:384}))}catch(I){throw new Error(`Failed to write configuration to ${t}: ${ue(I)}`)}}var hP,bP,mP,sxe,pP,cxe,oxe,zL=m(()=>{"use strict";EI();Ixe();hP=(I=>(I.DEFAULT="config",I.MCP="mcp",I))(hP||{});bP=".copilot",mP=new oP;sxe=(t,e,{shouldCache:I})=>{let l=new Map,n=()=>{let G=lxe(e)?process.env.XDG_CONFIG_HOME:process.env.XDG_STATE_HOME;return G?Oi(G,bP):Oi(rxe(),bP)},r=()=>{let G=lxe(e)?"-config":"-state";return`${e}${e=="config"?"":G}`},a=G=>{let b=".json",h=r()+(G?"":b),p=Oi(n(),h,G?`${G}${b}`:"");return!iP(p)&&iP(p.replace(/\.json$/,""))&&(p=p.replace(/\.json$/,"")),p},s=async()=>{let G=Oi(n(),r());try{let h=(await dP(G,{withFileTypes:!0})).filter(u=>u.isFile()&&u.name.endsWith(".json")).map(u=>u.name),p=await Promise.all(h.map(async u=>{let W=Oi(G,u);try{let N=await GP(W);return{file:u,mtime:N.mtime}}catch{return{file:u,mtime:new Date}}}));return p.sort((u,W)=>W.mtime.getTime()-u.mtime.getTime()),p.map(u=>u.file)}catch{}return[]},c=async()=>{let G=Oi(n(),r());try{let h=(await dP(G,{withFileTypes:!0})).filter(u=>u.isFile()&&u.name.endsWith(".json")).map(u=>u.name),p=await Promise.all(h.map(async u=>{let W=Oi(G,u);try{let N=await GP(W);return{file:u,mtime:N.mtime,birthtime:N.birthtime}}catch{return{file:u,mtime:new Date,birthtime:new Date}}}));return p.sort((u,W)=>W.mtime.getTime()-u.mtime.getTime()),p}catch{}return[]},o=async(G="")=>{if(I&&l.has(G))return l.get(G);let b=await hkt(a(G),t);return I&&b&&l.set(G,b),b},i=async(G,b="")=>{I&&l.set(b,G),await pkt(a(b),G)};return{load:o,write:i,writeKey:async(G,b,h)=>{let p=await o(h);if(b===void 0){p&&(delete p[G],await i(p,h));return}let u={[G]:b},W;p?W={...p,...u}:W=u,await i(W,h)},path:a,directoryFiles:s,directoryFilesWithMetadata:c}},pP=(t,e)=>sxe(t,e,{shouldCache:!0}),cxe=(t,e)=>sxe(t,e,{shouldCache:!1}),oxe=(t,e)=>{let I=()=>{let o=process.env.XDG_STATE_HOME;return o?Oi(o,bP):Oi(rxe(),bP)},l=()=>`${e}-state`,n=o=>{let i=".jsonl",d=l()+(o?"":i);return Oi(I(),d,o?`${o}${i}`:"")};return{load:async o=>{let i=n(o);if(!iP(i))return[];try{let G=(await mP.runExclusive(i,()=>nxe(i,"utf8"))).trim().split(`
|
|
182
182
|
`).filter(h=>h.trim()),b=[];for(let h=0;h<G.length;h++)try{let p=JSON.parse(G[h]),u=t(p);b.push(u)}catch(p){throw new Error(`Invalid event at line ${h+1} in ${i}: ${ue(p)}`)}return b}catch(d){throw new Error(`Failed to read JSONL from ${i}: ${ue(d)}`)}},append:async(o,i)=>{let d=n(i),G=Array.isArray(o)?o:[o];try{await axe(d);let b=G.map(h=>JSON.stringify(h)).join(`
|
|
183
183
|
`)+`
|
|
@@ -1443,9 +1443,9 @@ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
|
1443
1443
|
|
|
1444
1444
|
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
1445
1445
|
`);this.baseURL=s.baseURL,this.timeout=s.timeout??xHe.DEFAULT_TIMEOUT,this.logger=s.logger??console;let c="warn";this.logLevel=c,this.logLevel=s1e(s.logLevel,"ClientOptions.logLevel",this)??s1e($h("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??c,this.fetchOptions=s.fetchOptions,this.maxRetries=s.maxRetries??2,this.fetch=s.fetch??Myt(),Xt(this,Pae,jyt,"f"),this._options=s,this.apiKey=typeof I=="string"?I:"Missing Key",this.organization=l,this.project=n,this.webhookSecret=r}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:I}){}async authHeaders(e){return tt([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return r1e(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${eR}`}defaultIdempotencyKey(){return`stainless-node-retry-${TEe()}`}makeStatusError(e,I,l,n){return ba.generate(e,I,l,n)}async _callApiKey(){let e=this._options.apiKey;if(typeof e!="function")return!1;let I;try{I=await e()}catch(l){throw l instanceof et?l:new et(`Failed to get token from 'apiKey' function: ${l.message}`,{cause:l})}if(typeof I!="string"||!I)throw new et(`Expected 'apiKey' function argument to return a string but it returned ${I}`);return this.apiKey=I,!0}buildURL(e,I,l){let n=!_(this,kHe,"m",j0t).call(this)&&l||this.baseURL,r=Jyt(e)?new URL(e):new URL(n+(n.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery();return fyt(a)||(I={...a,...I}),typeof I=="object"&&I&&!Array.isArray(I)&&(r.search=this.stringifyQuery(I)),r.toString()}async prepareOptions(e){await this._callApiKey()}async prepareRequest(e,{url:I,options:l}){}get(e,I){return this.methodRequest("get",e,I)}post(e,I){return this.methodRequest("post",e,I)}patch(e,I){return this.methodRequest("patch",e,I)}put(e,I){return this.methodRequest("put",e,I)}delete(e,I){return this.methodRequest("delete",e,I)}methodRequest(e,I,l){return this.request(Promise.resolve(l).then(n=>({method:e,path:I,...n})))}request(e,I=null){return new Fw(this,this.makeRequest(e,I,void 0))}async makeRequest(e,I,l){let n=await e,r=n.maxRetries??this.maxRetries;I==null&&(I=r),await this.prepareOptions(n);let{req:a,url:s,timeout:c}=await this.buildRequest(n,{retryCount:r-I});await this.prepareRequest(a,{url:s,options:n});let o="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),i=l===void 0?"":`, retryOf: ${l}`,d=Date.now();if(Ja(this).debug(`[${o}] sending request`,kY({retryOfRequestLogID:l,method:n.method,url:s,options:n,headers:a.headers})),n.signal?.aborted)throw new as;let G=new AbortController,b=await this.fetchWithTimeout(s,a,c,G).catch(AT),h=Date.now();if(b instanceof globalThis.Error){let W=`retrying, ${I} attempts remaining`;if(n.signal?.aborted)throw new as;let N=FT(b)||/timed? ?out/i.test(String(b)+("cause"in b?String(b.cause):""));if(I)return Ja(this).info(`[${o}] connection ${N?"timed out":"failed"} - ${W}`),Ja(this).debug(`[${o}] connection ${N?"timed out":"failed"} (${W})`,kY({retryOfRequestLogID:l,url:s,durationMs:h-d,message:b.message})),this.retryRequest(n,I,l??o);throw Ja(this).info(`[${o}] connection ${N?"timed out":"failed"} - error; no more retries left`),Ja(this).debug(`[${o}] connection ${N?"timed out":"failed"} (error; no more retries left)`,kY({retryOfRequestLogID:l,url:s,durationMs:h-d,message:b.message})),N?new $0:new _0({cause:b})}let p=[...b.headers.entries()].filter(([W])=>W==="x-request-id").map(([W,N])=>", "+W+": "+JSON.stringify(N)).join(""),u=`[${o}${i}${p}] ${a.method} ${s} ${b.ok?"succeeded":"failed"} with status ${b.status} in ${h-d}ms`;if(!b.ok){let W=await this.shouldRetry(b);if(I&&W){let w=`retrying, ${I} attempts remaining`;return await Tyt(b.body),Ja(this).info(`${u} - ${w}`),Ja(this).debug(`[${o}] response error (${w})`,kY({retryOfRequestLogID:l,url:b.url,status:b.status,headers:b.headers,durationMs:h-d})),this.retryRequest(n,I,l??o,b.headers)}let N=W?"error; no more retries left":"error; not retryable";Ja(this).info(`${u} - ${N}`);let R=await b.text().catch(w=>AT(w).message),F=xyt(R),A=F?void 0:R;throw Ja(this).debug(`[${o}] response error (${N})`,kY({retryOfRequestLogID:l,url:b.url,status:b.status,headers:b.headers,message:A,durationMs:Date.now()-d})),this.makeStatusError(b.status,F,A,b.headers)}return Ja(this).info(u),Ja(this).debug(`[${o}] response start`,kY({retryOfRequestLogID:l,url:b.url,status:b.status,headers:b.headers,durationMs:h-d})),{response:b,options:n,controller:G,requestLogID:o,retryOfRequestLogID:l,startTime:d}}getAPIList(e,I,l){return this.requestAPIList(I,{method:"get",path:e,...l})}requestAPIList(e,I){let l=this.makeRequest(I,null,void 0);return new CT(this,l,e)}async fetchWithTimeout(e,I,l,n){let{signal:r,method:a,...s}=I||{};r&&r.addEventListener("abort",()=>n.abort());let c=setTimeout(()=>n.abort(),l),o=globalThis.ReadableStream&&s.body instanceof globalThis.ReadableStream||typeof s.body=="object"&&s.body!==null&&Symbol.asyncIterator in s.body,i={signal:n.signal,...o?{duplex:"half"}:{},method:"GET",...s};a&&(i.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,i)}finally{clearTimeout(c)}}async shouldRetry(e){let I=e.headers.get("x-should-retry");return I==="true"?!0:I==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,I,l,n){let r,a=n?.get("retry-after-ms");if(a){let c=parseFloat(a);Number.isNaN(c)||(r=c)}let s=n?.get("retry-after");if(s&&!r){let c=parseFloat(s);Number.isNaN(c)?r=Date.parse(s)-Date.now():r=c*1e3}if(!(r&&0<=r&&r<60*1e3)){let c=e.maxRetries??this.maxRetries;r=this.calculateDefaultRetryTimeoutMillis(I,c)}return await CZ(r),this.makeRequest(e,I-1,l)}calculateDefaultRetryTimeoutMillis(e,I){let r=I-e,a=Math.min(.5*Math.pow(2,r),8),s=1-Math.random()*.25;return a*s*1e3}async buildRequest(e,{retryCount:I=0}={}){let l={...e},{method:n,path:r,query:a,defaultBaseURL:s}=l,c=this.buildURL(r,a,s);"timeout"in l&&kyt("timeout",l.timeout),l.timeout=l.timeout??this.timeout;let{bodyHeaders:o,body:i}=this.buildBody({options:l}),d=await this.buildHeaders({options:e,method:n,bodyHeaders:o,retryCount:I});return{req:{method:n,headers:d,...l.signal&&{signal:l.signal},...globalThis.ReadableStream&&i instanceof globalThis.ReadableStream&&{duplex:"half"},...i&&{body:i},...this.fetchOptions??{},...l.fetchOptions??{}},url:c,timeout:l.timeout}}async buildHeaders({options:e,method:I,bodyHeaders:l,retryCount:n}){let r={};this.idempotencyHeader&&I!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),r[this.idempotencyHeader]=e.idempotencyKey);let a=tt([r,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(n),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...Oyt(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,l,e.headers]);return this.validateHeaders(a),a.values}buildBody({options:{body:e,headers:I}}){if(!e)return{bodyHeaders:void 0,body:void 0};let l=tt([I]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&l.values.has("content-type")||globalThis.Blob&&e instanceof globalThis.Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:hae(e)}:_(this,Pae,"f").call(this,{body:e,headers:l})}};xHe=Ot,Pae=new WeakMap,kHe=new WeakSet,j0t=function(){return this.baseURL!=="https://api.openai.com/v1"};Ot.OpenAI=xHe;Ot.DEFAULT_TIMEOUT=6e5;Ot.OpenAIError=et;Ot.APIError=ba;Ot.APIConnectionError=_0;Ot.APIConnectionTimeoutError=$0;Ot.APIUserAbortError=as;Ot.NotFoundError=n4;Ot.ConflictError=r4;Ot.RateLimitError=s4;Ot.BadRequestError=t4;Ot.AuthenticationError=I4;Ot.InternalServerError=c4;Ot.PermissionDeniedError=l4;Ot.UnprocessableEntityError=a4;Ot.InvalidWebhookSignatureError=HZ;Ot.toFile=Aae;Ot.Completions=Cw;Ot.Chat=lR;Ot.Embeddings=fw;Ot.Files=kw;Ot.Images=Uw;Ot.Audio=LZ;Ot.Moderations=Ow;Ot.Models=Sw;Ot.FineTuning=tp;Ot.Graders=oR;Ot.VectorStores=MY;Ot.Webhooks=Mw;Ot.Beta=xZ;Ot.Batches=ww;Ot.Uploads=bR;Ot.Responses=GR;Ot.Realtime=iR;Ot.Conversations=sR;Ot.Evals=cR;Ot.Containers=aR});var qT,M1I,D0t=m(()=>{ss();_h();jT();qae();qT=class extends Ot{constructor({baseURL:e=$h("OPENAI_BASE_URL"),apiKey:I=$h("AZURE_OPENAI_API_KEY"),apiVersion:l=$h("OPENAI_API_VERSION"),endpoint:n,deployment:r,azureADTokenProvider:a,dangerouslyAllowBrowser:s,...c}={}){if(!l)throw new et("The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).");if(typeof a=="function"&&(s=!0),!a&&!I)throw new et("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(a&&I)throw new et("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(c.defaultQuery={...c.defaultQuery,"api-version":l},e){if(n)throw new et("baseURL and endpoint are mutually exclusive")}else{if(n||(n=process.env.AZURE_OPENAI_ENDPOINT),!n)throw new et("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${n}/openai`}super({apiKey:a??I,baseURL:e,...c,...s!==void 0?{dangerouslyAllowBrowser:s}:{}}),this.apiVersion="",this.apiVersion=l,this.deploymentName=r}async buildRequest(e,I={}){if(M1I.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!d4(e.body))throw new Error("Expected request body to be an object");let l=this.deploymentName||e.body.model||e.__metadata?.model;l!==void 0&&!this.baseURL.includes("/deployments")&&(e.path=`/deployments/${l}${e.path}`)}return super.buildRequest(e,I)}async authHeaders(e){return typeof this._options.apiKey=="string"?tt([{"api-key":this.apiKey}]):super.authHeaders(e)}},M1I=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"])});var _T=m(()=>{qae();p1e();Rae();qae();Yr();vZ();D0t()});var K0t=m(()=>{k1e()});var T1I,P0t,q0t=m(()=>{T1I=[Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError,globalThis.DOMException,globalThis.AssertionError,globalThis.SystemError].filter(Boolean).map(t=>[t.name,t]),P0t=new Map(T1I)});function Tw(t,e={}){let{maxDepth:I=Number.POSITIVE_INFINITY,useToJSON:l=!0}=e;return typeof t=="object"&&t!==null?$0t({from:t,seen:[],forceEnumerable:!0,maxDepth:I,depth:0,useToJSON:l,serialize:!0}):typeof t=="function"?`[Function: ${t.name||"anonymous"}]`:t}function _0t(t){return!!t&&typeof t=="object"&&typeof t.name=="string"&&typeof t.message=="string"&&typeof t.stack=="string"}var j1I,BHe,D1I,K1I,$0t,zHe=m(()=>{q0t();j1I=[{property:"name",enumerable:!1},{property:"message",enumerable:!1},{property:"stack",enumerable:!1},{property:"code",enumerable:!0},{property:"cause",enumerable:!1},{property:"errors",enumerable:!1}],BHe=new WeakSet,D1I=t=>{BHe.add(t);let e=t.toJSON();return BHe.delete(t),e},K1I=t=>{let e=P0t.get(t)??Error;return e===AggregateError?new e([]):new e},$0t=({from:t,seen:e,to:I,forceEnumerable:l,maxDepth:n,depth:r,useToJSON:a,serialize:s})=>{if(I||(Array.isArray(t)?I=[]:!s&&_0t(t)?I=K1I(t.name):I={}),e.push(t),r>=n)return I;if(a&&typeof t.toJSON=="function"&&!BHe.has(t))return D1I(t);let c=o=>$0t({from:o,seen:[...e],forceEnumerable:l,maxDepth:n,depth:r,useToJSON:a,serialize:s});for(let[o,i]of Object.entries(t)){if(i&&i instanceof Uint8Array&&i.constructor.name==="Buffer"){I[o]="[object Buffer]";continue}if(i!==null&&typeof i=="object"&&typeof i.pipe=="function"){I[o]="[object Stream]";continue}if(typeof i!="function"){if(!i||typeof i!="object"){try{I[o]=i}catch{}continue}if(!e.includes(t[o])){r++,I[o]=c(t[o]);continue}I[o]="[Circular]"}}if(s||I instanceof Error)for(let{property:o,enumerable:i}of j1I)t[o]!==void 0&&t[o]!==null&&Object.defineProperty(I,o,{value:_0t(t[o])||Array.isArray(t[o])?c(t[o]):t[o],enumerable:l?!0:i,configurable:!0,writable:!0});return I}});function mR(t){return t?.description?.startsWith(UHe)??!1}var UHe,$T=m(()=>{"use strict";UHe="Custom agent:"});function tRt(t){return{agent:t,model:$ae[t]}}var $ae,_ae,eRt,SHe=m(()=>{"use strict";$ae={"sweagent-capi":"claude-sonnet-4.5","sweagent-aip":"swe-mini2-genai-v2","sweagent-anthropic":"claude-sonnet-4-5-20250929","sweagent-openai":"gpt-5"},_ae="sweagent-capi",eRt={agent:_ae,model:$ae[_ae]}});function IRt(t){if(t)try{let e=new URLSearchParams(t),I=parseInt(e.get("ent")||"0",10),l=parseFloat(e.get("ov")||"0.0"),n=e.get("ovPerm")==="true",r=parseFloat(e.get("rem")||"0.0"),a=e.get("rst"),s;a?s=new Date(a):(s=new Date,s.setMonth(s.getMonth()+1));let c=Math.round(Math.max(0,I*(1-r/100)));return isNaN(I)||isNaN(l)||isNaN(r)?void 0:{isUnlimitedEntitlement:I===-1,entitlementRequests:I,usedRequests:c,usageAllowedWithExhaustedQuota:n,overage:l,overageAllowedWithExhaustedQuota:n,remainingPercentage:r,resetDate:s}}catch{return}}var OHe,lRt=m(()=>{"use strict";OHe="x-quota-snapshot-"});var nRt,rRt=m(()=>{Lh();nRt=mo("keyvault-secrets")});var aRt,sRt=m(()=>{Lh();aRt=mo("keyvault-secrets")});function go(t,e){return typeof t=="string"?mne(t,e):mne(t)}var cRt=m(()=>{dY()});var oRt=m(()=>{});function MHe(t){return QO(t,["key"])&&typeof t.key=="string"}var iRt=m(()=>{po()});var dRt=m(()=>{po()});var GRt=m(()=>{po()});function ej(t){let e=t;return e&&typeof e.getToken=="function"&&(e.signRequest===void 0||e.getToken.length>0)}var bRt=m(()=>{});var THe=m(()=>{oRt();iRt();dRt();GRt();bRt()});function mRt(t){return{name:P1I,sendRequest:(e,I)=>{let l=new URL(e.url);return!l.searchParams.get("api-version")&&t.apiVersion&&(e.url=`${e.url}${Array.from(l.searchParams.keys()).length>0?"&":"?"}api-version=${t.apiVersion}`),I(e)}}}var P1I,hRt=m(()=>{P1I="ApiVersionPolicy"});function pRt(t,e){return{name:q1I,async sendRequest(I,l){return I.headers.set(e,t.key),l(I)}}}var q1I,uRt=m(()=>{q1I="keyCredentialAuthenticationPolicy"});function ZRt(t,e,I={}){var l,n,r,a;let{credential:s,clientOptions:c}=I;if(s){if(ej(s)){let o=tw({credential:s,scopes:(n=(l=c?.credentials)===null||l===void 0?void 0:l.scopes)!==null&&n!==void 0?n:`${e}/.default`});t.addPolicy(o)}else if(_1I(s)){if(!(!((r=c?.credentials)===null||r===void 0)&&r.apiKeyHeaderName))throw new Error("Missing API Key Header Name");let o=pRt(s,(a=c?.credentials)===null||a===void 0?void 0:a.apiKeyHeaderName);t.addPolicy(o)}}}function WRt(t,e,I={}){let l=lM(I);return l.addPolicy(mRt(I)),ZRt(l,t,{credential:e,clientOptions:I}),l}function _1I(t){return t.key!==void 0}var jHe=m(()=>{OG();THe();hRt();uRt()});function zd(t){return YQe(t)}var NRt=m(()=>{dY()});function hR(t){return t.onResponse?Object.assign(Object.assign({},t),{onResponse(e,I){var l;(l=t.onResponse)===null||l===void 0||l.call(t,e,I,I)}}):t}function YRt(t,e,I={}){let l;e&&($1I(e)?l=e:I=e??{});let n=WRt(t,l,I),r=NQe(t,Object.assign(Object.assign({},I),{pipeline:n})),a=(s,...c)=>({get:(o={})=>r.path(s,...c).get(hR(o)),post:(o={})=>r.path(s,...c).post(hR(o)),put:(o={})=>r.path(s,...c).put(hR(o)),patch:(o={})=>r.path(s,...c).patch(hR(o)),delete:(o={})=>r.path(s,...c).delete(hR(o)),head:(o={})=>r.path(s,...c).head(hR(o)),options:(o={})=>r.path(s,...c).options(hR(o)),trace:(o={})=>r.path(s,...c).trace(hR(o))});return{path:a,pathUnchecked:a,pipeline:r.pipeline}}function $1I(t){return MHe(t)||ej(t)}var VRt=m(()=>{THe();jHe();dY()});var yRt=m(()=>{});var ese=m(()=>{cRt();jHe();NRt();VRt();yRt()});function DHe(t,e,I={}){var l,n,r,a,s,c,o,i;let d=(n=(l=I.endpoint)!==null&&l!==void 0?l:I.baseUrl)!==null&&n!==void 0?n:String(t),G=(r=I?.userAgentOptions)===null||r===void 0?void 0:r.userAgentPrefix,b="azsdk-js-keyvault-secrets/1.0.0-beta.1",h=G?`${G} azsdk-js-api ${b}`:`azsdk-js-api ${b}`,p=Object.assign(Object.assign({},I),{userAgentOptions:{userAgentPrefix:h},loggingOptions:{logger:(s=(a=I.loggingOptions)===null||a===void 0?void 0:a.logger)!==null&&s!==void 0?s:aRt.info},credentials:{scopes:(o=(c=I.credentials)===null||c===void 0?void 0:c.scopes)!==null&&o!==void 0?o:["https://vault.azure.net/.default"]}}),{apiVersion:u}=p,W=qO(p,["apiVersion"]),N=YRt(d,e,W);N.pipeline.removePolicy({name:"ApiVersionPolicy"});let R=(i=I.apiVersion)!==null&&i!==void 0?i:"7.6";return N.pipeline.addPolicy({name:"ClientApiVersionPolicy",sendRequest:(F,A)=>{let H=new URL(F.url);return H.searchParams.get("api-version")||(F.url=`${F.url}${Array.from(H.searchParams.keys()).length>0?"&":"?"}api-version=${R}`),A(F)}}),Object.assign(Object.assign({},N),{apiVersion:R})}var RRt=m(()=>{RJ();sRt();ese()});function gRt(t){return{value:t.value,tags:t.tags,contentType:t.contentType,attributes:t.secretAttributes?FRt(t.secretAttributes):t.secretAttributes}}function FRt(t){return{enabled:t.enabled,nbf:t.notBefore?t.notBefore.getTime()/1e3|0:t.notBefore,exp:t.expires?t.expires.getTime()/1e3|0:t.expires}}function Ise(t){return{enabled:t.enabled,notBefore:t.nbf?new Date(t.nbf*1e3):t.nbf,expires:t.exp?new Date(t.exp*1e3):t.exp,created:t.created?new Date(t.created*1e3):t.created,updated:t.updated?new Date(t.updated*1e3):t.updated,recoverableDays:t.recoverableDays,recoveryLevel:t.recoveryLevel}}function S4(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?Ise(t.attributes):t.attributes,tags:t.tags,kid:t.kid,managed:t.managed}}function tb(t){return{error:t.error?ARt(t.error):t.error}}function ARt(t){return{code:t.code,message:t.message,innerError:t.innererror?ARt(t.innererror):t.innererror}}function KHe(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?Ise(t.attributes):t.attributes,tags:t.tags,kid:t.kid,managed:t.managed,recoveryId:t.recoveryId,scheduledPurgeDate:t.scheduledPurgeDate?new Date(t.scheduledPurgeDate*1e3):t.scheduledPurgeDate,deletedDate:t.deletedDate?new Date(t.deletedDate*1e3):t.deletedDate}}function QRt(t){return{contentType:t.contentType,attributes:t.secretAttributes?FRt(t.secretAttributes):t.secretAttributes,tags:t.tags}}function PHe(t){return{value:t.value?eHI(t.value):t.value,nextLink:t.nextLink}}function eHI(t){return t.map(e=>tHI(e))}function tHI(t){return{id:t.id,attributes:t.attributes?Ise(t.attributes):t.attributes,tags:t.tags,contentType:t.contentType,managed:t.managed}}function wRt(t){return{value:t.value?IHI(t.value):t.value,nextLink:t.nextLink}}function IHI(t){return t.map(e=>lHI(e))}function lHI(t){return{id:t.id,attributes:t.attributes?Ise(t.attributes):t.attributes,tags:t.tags,contentType:t.contentType,managed:t.managed,recoveryId:t.recoveryId,scheduledPurgeDate:t.scheduledPurgeDate?new Date(t.scheduledPurgeDate*1e3):t.scheduledPurgeDate,deletedDate:t.deletedDate?new Date(t.deletedDate*1e3):t.deletedDate}}function XRt(t){return{value:t.value&&typeof t.value=="string"?Dpt(t.value,"base64url"):t.value}}function ERt(t){return{value:jpt(t.secretBundleBackup,"base64url")}}var tj,tse,qHe=m(()=>{po();(function(t){t.Purgeable="Purgeable",t.RecoverablePurgeable="Recoverable+Purgeable",t.Recoverable="Recoverable",t.RecoverableProtectedSubscription="Recoverable+ProtectedSubscription",t.CustomizedRecoverablePurgeable="CustomizedRecoverable+Purgeable",t.CustomizedRecoverable="CustomizedRecoverable",t.CustomizedRecoverableProtectedSubscription="CustomizedRecoverable+ProtectedSubscription"})(tj||(tj={}));(function(t){t.V75="7.5",t.V76Preview2="7.6-preview.2",t.V76="7.6"})(tse||(tse={}))});function lse(t,e,I,l,n={}){var r,a;let s=(r=n.itemName)!==null&&r!==void 0?r:"value",c=(a=n.nextLinkName)!==null&&a!==void 0?a:"nextLink",o={getPage:async i=>{let d=i===void 0?await e():await t.pathUnchecked(i).get();cHI(d,l);let G=await I(d),b=aHI(G,c);return{page:sHI(G,s),nextPageLink:b}},byPage:i=>{let{continuationToken:d}=i??{};return _He(o,{pageLink:d})}};return nHI(o)}function nHI(t){var e;let I=rHI(t);return{next(){return I.next()},[Symbol.asyncIterator](){return this},byPage:(e=t?.byPage)!==null&&e!==void 0?e:(l=>{let{continuationToken:n}=l??{};return _He(t,{pageLink:n})})}}function rHI(t){return R0(this,arguments,function*(){var I,l,n,r;let a=_He(t);try{for(var s=!0,c=ew(a),o;o=yield Wr(c.next()),I=o.done,!I;s=!0)r=o.value,s=!1,yield Wr(yield*jut(ew(r)))}catch(i){l={error:i}}finally{try{!s&&!I&&(n=c.return)&&(yield Wr(n.call(c)))}finally{if(l)throw l.error}}})}function _He(t){return R0(this,arguments,function*(I,l={}){let{pageLink:n}=l,r=yield Wr(I.getPage(n??I.firstPageLink));if(!r)return yield Wr(void 0);let a=r.page;for(a.continuationToken=r.nextPageLink,yield yield Wr(a);r.nextPageLink;){if(r=yield Wr(I.getPage(r.nextPageLink)),!r)return yield Wr(void 0);a=r.page,a.continuationToken=r.nextPageLink,yield yield Wr(a)}})}function aHI(t,e){if(!e)return;let I=t[e];if(typeof I!="string"&&typeof I<"u"&&I!==null)throw new GY(`Body Property ${e} should be a string or undefined or null but got ${typeof I}`);if(I!==null)return I}function sHI(t,e){let I=t[e];if(!Array.isArray(I))throw new GY(`Couldn't paginate response
|
|
1446
|
-
Body doesn't contain an array property with name: ${e}`);return I??[]}function cHI(t,e){if(!e.includes(t.status))throw go(`Pagination failed with unexpected statusCode ${t.status}`,t)}var HRt=m(()=>{RJ();ese();OG()});function O4(t,e,I){return(e??I==="+")||I==="#"?vRt(t):CRt(t)}function vRt(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function CRt(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function Ij(t){return t!=null}function $He(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function nse(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function oHI(t){let e=t.isFirst,{op:I,varName:l,varValue:n,reserved:r}=t,a=[],[s,c]=$He(I);if(Array.isArray(n))for(let o of n.filter(Ij))a.push(`${nse(I,e)}`),s&&l&&(a.push(`${encodeURIComponent(l)}`),o===""?a.push(c):a.push("=")),a.push(O4(o,r,I)),e=!1;else if(typeof n=="object")for(let o of Object.keys(n)){let i=n[o];Ij(i)&&(a.push(`${nse(I,e)}`),o&&(a.push(`${encodeURIComponent(o)}`),s&&i===""?a.push(c):a.push("=")),a.push(O4(i,r,I)),e=!1)}return a.join("")}function iHI(t){let{op:e,varName:I,varValue:l,isFirst:n,reserved:r}=t,a=[],s=nse(e,n),[c,o]=$He(e);if(c&&I){if(a.push(O4(I,r,e)),l==="")return o||a.push(o),a.join("")?`${s}${a.join("")}`:void 0;a.push("=")}let i=[];if(Array.isArray(l))for(let d of l.filter(Ij))i.push(O4(d,r,e));else if(typeof l=="object")for(let d of Object.keys(l))Ij(l[d])&&(i.push(CRt(d)),i.push(O4(l[d],r,e)));return a.push(i.join(",")),a.join(",")?`${s}${a.join("")}`:void 0}function dHI(t){let{op:e,varName:I,modifier:l,isFirst:n,reserved:r,varValue:a}=t;if(Ij(a))if(["string","number","boolean"].includes(typeof a)){let s=a.toString(),[c,o]=$He(e),i=[nse(e,n)];return c&&I&&(i.push(I),s===""?i.push(o):i.push("=")),l&&l!=="*"&&(s=s.substring(0,parseInt(l,10))),i.push(O4(s,r,e)),i.join("")}else return l==="*"?oHI(t):iHI(t);else return}function Ib(t,e,I){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(l,n,r)=>{if(!n)return vRt(r);let a;["+","#",".","/",";","?","&"].includes(n[0])&&(a=n[0],n=n.slice(1));let s=n.split(/,/g),c=[];for(let o of s){let i=/([^:\*]*)(?::(\d+)|(\*))?/.exec(o);if(!i||!i[1])continue;let d=dHI({isFirst:c.length===0,op:a,varValue:e[i[1]],varName:i[1],modifier:i[2]||i[3],reserved:I?.allowReserved});d&&c.push(d)}return c.join("")})}var JRt=m(()=>{});function GHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},zd(I)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers),body:ERt(e)}))}async function bHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function eve(t,e,I={requestOptions:{}}){let l=await GHI(t,e,I);return bHI(l)}function mHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/secrets/{secret-name}/backup{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function hHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return XRt(t.body)}async function tve(t,e,I={requestOptions:{}}){let l=await mHI(t,e,I);return hHI(l)}function pHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/deletedsecrets/{secret-name}/recover{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function uHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function Ive(t,e,I={requestOptions:{}}){let l=await pHI(t,e,I);return uHI(l)}function ZHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/deletedsecrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).delete(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function WHI(t){if(!["204"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}}async function lve(t,e,I={requestOptions:{}}){let l=await ZHI(t,e,I);return WHI(l)}function NHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/deletedsecrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function YHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return KHe(t.body)}async function nve(t,e,I={requestOptions:{}}){let l=await NHI(t,e,I);return YHI(l)}function VHI(t,e={requestOptions:{}}){var I,l;let n=Ib("/deletedsecrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(I=e?.requestOptions)===null||I===void 0?void 0:I.skipUrlEncoding});return t.path(n).get(Object.assign(Object.assign({},zd(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function yHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return wRt(t.body)}function rve(t,e={requestOptions:{}}){return lse(t,()=>VHI(t,e),yHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function RHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/secrets/{secret-name}/versions{?api%2Dversion,maxresults}",{"secret-name":e,"api%2Dversion":t.apiVersion,maxresults:I?.maxresults},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function gHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return PHe(t.body)}function ave(t,e,I={requestOptions:{}}){return lse(t,()=>RHI(t,e,I),gHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function FHI(t,e={requestOptions:{}}){var I,l;let n=Ib("/secrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(I=e?.requestOptions)===null||I===void 0?void 0:I.skipUrlEncoding});return t.path(n).get(Object.assign(Object.assign({},zd(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function AHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return PHe(t.body)}function sve(t,e={requestOptions:{}}){return lse(t,()=>FHI(t,e),AHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function QHI(t,e,I,l={requestOptions:{}}){var n,r;let a=Ib("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(a).get(Object.assign(Object.assign({},zd(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function wHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function cve(t,e,I,l={requestOptions:{}}){let n=await QHI(t,e,I,l);return wHI(n)}function XHI(t,e,I,l,n={requestOptions:{}}){var r,a;let s=Ib("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(s).patch(Object.assign(Object.assign({},zd(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(a=n.requestOptions)===null||a===void 0?void 0:a.headers),body:QRt(l)}))}async function EHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function ove(t,e,I,l,n={requestOptions:{}}){let r=await XHI(t,e,I,l,n);return EHI(r)}function HHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).delete(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function vHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return KHe(t.body)}async function ive(t,e,I={requestOptions:{}}){let l=await HHI(t,e,I);return vHI(l)}function CHI(t,e,I,l={requestOptions:{}}){var n,r;let a=Ib("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(a).put(Object.assign(Object.assign({},zd(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers),body:gRt(I)}))}async function JHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function dve(t,e,I,l={requestOptions:{}}){let n=await CHI(t,e,I,l);return JHI(n)}var Gve=m(()=>{qHe();HRt();JRt();ese()});var fRt=m(()=>{RRt();Gve()});var lj,bve=m(()=>{fRt();Gve();lj=class{constructor(e,I,l={}){var n;let r=(n=l?.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix,a=r?`${r} azsdk-js-client`:"azsdk-js-client";this._client=DHe(e,I,Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:a}})),this.pipeline=this._client.pipeline}restoreSecret(e,I={requestOptions:{}}){return eve(this._client,e,I)}backupSecret(e,I={requestOptions:{}}){return tve(this._client,e,I)}recoverDeletedSecret(e,I={requestOptions:{}}){return Ive(this._client,e,I)}purgeDeletedSecret(e,I={requestOptions:{}}){return lve(this._client,e,I)}getDeletedSecret(e,I={requestOptions:{}}){return nve(this._client,e,I)}getDeletedSecrets(e={requestOptions:{}}){return rve(this._client,e)}getSecretVersions(e,I={requestOptions:{}}){return ave(this._client,e,I)}getSecrets(e={requestOptions:{}}){return sve(this._client,e)}getSecret(e,I,l={requestOptions:{}}){return cve(this._client,e,I,l)}updateSecret(e,I,l,n={requestOptions:{}}){return ove(this._client,e,I,l,n)}deleteSecret(e,I={requestOptions:{}}){return ive(this._client,e,I)}setSecret(e,I,l={requestOptions:{}}){return dve(this._client,e,I,l)}}});function mve(t){let e=/,? +/,I=t.split(e).reduce((l,n)=>{if(n.match(/\w="/)){let[r,...a]=n.split("=");if(fHI.includes(r))return Object.assign(Object.assign({},l),{[r]:a.join("=").slice(1,-1)})}return l},{});if(I.authorization)try{let l=new URL(I.authorization).pathname.substring(1);l&&(I.tenantId=l)}catch{throw new Error(`The challenge authorization URI '${I.authorization}' is invalid.`)}return I}var fHI,LRt=m(()=>{fHI=["authorization","authorization_url","resource","scope","tenantId","claims","error"]});async function kHI(t,e,I){async function l(){if(Date.now()<I)try{return await t()}catch{return null}else{let r=await t();if(r===null)throw new Error("Failed to refresh access token.");return r}}let n=await l();for(;n===null;)await Y0(e),n=await l();return n}function kRt(t,e){let I=null,l=null,n,r=Object.assign(Object.assign({},LHI),e),a={get isRefreshing(){return I!==null},get shouldRefresh(){var c;return a.isRefreshing?!1:l?.refreshAfterTimestamp&&l.refreshAfterTimestamp<Date.now()?!0:((c=l?.expiresOnTimestamp)!==null&&c!==void 0?c:0)-r.refreshWindowInMs<Date.now()},get mustRefresh(){return l===null||l.expiresOnTimestamp-r.forcedRefreshWindowInMs<Date.now()}};function s(c,o){var i;return a.isRefreshing||(I=kHI(()=>t.getToken(c,o),r.retryIntervalInMs,(i=l?.expiresOnTimestamp)!==null&&i!==void 0?i:Date.now()).then(G=>(I=null,l=G,n=o.tenantId,l)).catch(G=>{throw I=null,l=null,n=void 0,G})),I}return async(c,o)=>{let i=!!o.claims,d=n!==o.tenantId;return i&&(l=null),d||i||a.mustRefresh?s(c,o):(a.shouldRefresh&&s(c,o),l)}}var LHI,xRt=m(()=>{po();LHI={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2}});var BRt,zRt=m(()=>{Lh();BRt=mo("keyvault-common")});function xHI(t,e){let I;try{I=new URL(t)}catch{throw new Error(`The challenge contains invalid scope '${t}'`)}if(!new URL(e.url).hostname.endsWith(`.${I.hostname}`))throw new Error(`The challenge resource '${I.hostname}' does not match the requested domain. Set disableChallengeResourceVerification to true in your client options to disable. See https://aka.ms/azsdk/blog/vault-uri for more information.`)}function URt(t,e={}){let{disableChallengeResourceVerification:I}=e,l={status:"none"},n=kRt(t);function r(i){return{abortSignal:i.abortSignal,requestOptions:{timeout:i.timeout>0?i.timeout:void 0},tracingOptions:i.tracingOptions}}async function a(i){let d=r(i);switch(l.status){case"none":l={status:"started",originalBody:i.body},i.body=null;break;case"started":break;case"complete":{let G=await n(l.scopes,Object.assign(Object.assign({},d),{enableCae:!0,tenantId:l.tenantId}));G&&i.headers.set("authorization",`Bearer ${G.token}`);break}}}async function s(i,d,G){if(d.status!==401)return d;i.body===null&&l.status==="started"&&(i.body=l.originalBody);let b=r(i),h=d.headers.get("WWW-Authenticate");if(!h)return BRt.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),d;let p=mve(h),u=p.resource?p.resource+"/.default":p.scope;if(!u)return d;I||xHI(u,i);let W=await n([u],Object.assign(Object.assign({},b),{enableCae:!0,tenantId:p.tenantId}));return W?(i.headers.set("Authorization",`Bearer ${W.token}`),l={status:"complete",scopes:[u],tenantId:p.tenantId},G(i)):d}async function c(i,d,G){if(l.status!=="complete"||d.status!==401)return d;let b=r(i),h=d.headers.get("WWW-Authenticate");if(!h)return d;let{claims:p,error:u}=mve(h);if(u!=="insufficient_claims"||p===void 0)return d;let W=atob(p),N=await n(l.scopes,Object.assign(Object.assign({},b),{enableCae:!0,tenantId:l.tenantId,claims:W}));return i.headers.set("Authorization",`Bearer ${N.token}`),G(i)}async function o(i,d){await a(i);let G=await d(i);return G=await s(i,G,d),G=await c(i,G,d),G}return{name:BHI,sendRequest:o}}var BHI,SRt=m(()=>{LRt();xRt();zRt();BHI="keyVaultAuthenticationPolicy"});function ORt(t,e){if(typeof t!="string"||!(t=t.trim()))throw new Error("Invalid collection argument");if(typeof e!="string"||!(e=e.trim()))throw new Error("Invalid identifier argument");let I;try{I=new URL(e)}catch{throw new Error(`Invalid ${t} identifier: ${e}. Not a valid URI`)}let l=(I.pathname||"").split("/");if(l.length!==3&&l.length!==4)throw new Error(`Invalid ${t} identifier: ${e}. Bad number of segments: ${l.length}`);if(t!==l[1])throw new Error(`Invalid ${t} identifier: ${e}. segment [1] should be "${t}", found "${l[1]}"`);let n=`${I.protocol}//${I.host}`,r=l[2],a=l.length===4?l[3]:void 0;return{vaultUrl:n,name:r,version:a}}var MRt=m(()=>{});var hve=m(()=>{SRt();MRt()});var TRt=m(()=>{});var jRt=m(()=>{qHe()});var DRt=m(()=>{bve();jRt()});function pve(t){let I=t.split("/")[3];return Object.assign({sourceId:t},ORt(I,t))}var uve=m(()=>{hve()});function Ci(t){let e=t,I=t,l=pve(e.id),n=e.attributes;delete e.attributes;let r={value:e.value,name:l.name,properties:{expiresOn:n?.expires,createdOn:n?.created,updatedOn:n?.updated,enabled:n?.enabled,notBefore:n?.notBefore,recoverableDays:n?.recoverableDays,recoveryLevel:n?.recoveryLevel,id:e.id,contentType:e.contentType,tags:e.tags,managed:e.managed,vaultUrl:l.vaultUrl,version:l.version,name:l.name,certificateKeyId:e.kid}};return I.recoveryId&&(r.properties.recoveryId=I.recoveryId,r.properties.scheduledPurgeDate=I.scheduledPurgeDate,r.properties.deletedOn=I.deletedDate,r.recoveryId=I.recoveryId,r.scheduledPurgeDate=I.scheduledPurgeDate,r.deletedOn=I.deletedDate),n&&(n.vaultUrl&&delete r.properties.vaultUrl,n.expires&&delete r.properties.expires,n.created&&delete r.properties.created,n.updated&&delete r.properties.updated),r}function rse(t,e,I){let l;return{async next(){l??(l=t(Object.assign(Object.assign({},e),{maxresults:void 0})));let n=await l.next();return Object.assign(Object.assign({},n),{value:n.value&&I(n.value)})},[Symbol.asyncIterator](){return this},byPage(n){return R0(this,arguments,function*(){var a,s,c,o;let i=t(Object.assign(Object.assign({},e),{maxresults:n?.maxPageSize})).byPage(n);try{for(var d=!0,G=ew(i),b;b=yield Wr(G.next()),a=b.done,!a;d=!0)o=b.value,d=!1,yield yield Wr(o.map(I))}catch(h){s={error:h}}finally{try{!d&&!a&&(c=G.return)&&(yield Wr(c.call(G)))}finally{if(s)throw s.error}}})}}}var ase=m(()=>{RJ();uve()});var sse,Zve=m(()=>{sse="4.10.0"});var Ud,cse=m(()=>{cIe();Zve();Ud=_A({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:sse})});var Wve,ose=m(()=>{Lh();Wve=mo("core-lro")});var ise=m(()=>{});var dse=m(()=>{ose();ise()});var Nve=m(()=>{dse();ose()});var KRt=m(()=>{dse();ise();po()});var PRt=m(()=>{Nve();KRt()});var qRt=m(()=>{Nve();ose()});var Yve,Vve,nj,yve=m(()=>{Yve=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},Vve=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},nj=class{constructor(e){this.resolveOnUnsuccessful=!1,this.stopped=!0,this.pollProgressCallbacks=[],this.operation=e,this.promise=new Promise((I,l)=>{this.resolve=I,this.reject=l}),this.promise.catch(()=>{})}async startPolling(e={}){for(this.stopped&&(this.stopped=!1);!this.isStopped()&&!this.isDone();)await this.poll(e),await this.delay()}async pollOnce(e={}){this.isDone()||(this.operation=await this.operation.update({abortSignal:e.abortSignal,fireProgress:this.fireProgress.bind(this)})),this.processUpdatedState()}fireProgress(e){for(let I of this.pollProgressCallbacks)I(e)}async cancelOnce(e={}){this.operation=await this.operation.cancel(e)}poll(e={}){if(!this.pollOncePromise){this.pollOncePromise=this.pollOnce(e);let I=()=>{this.pollOncePromise=void 0};this.pollOncePromise.then(I,I).catch(this.reject)}return this.pollOncePromise}processUpdatedState(){if(this.operation.state.error&&(this.stopped=!0,!this.resolveOnUnsuccessful))throw this.reject(this.operation.state.error),this.operation.state.error;if(this.operation.state.isCancelled&&(this.stopped=!0,!this.resolveOnUnsuccessful)){let e=new Vve("Operation was canceled");throw this.reject(e),e}this.isDone()&&this.resolve&&this.resolve(this.getResult())}async pollUntilDone(e={}){return this.stopped&&this.startPolling(e).catch(this.reject),this.processUpdatedState(),this.promise}onProgress(e){return this.pollProgressCallbacks.push(e),()=>{this.pollProgressCallbacks=this.pollProgressCallbacks.filter(I=>I!==e)}}isDone(){let e=this.operation.state;return!!(e.isCompleted||e.isCancelled||e.error)}stopPolling(){this.stopped||(this.stopped=!0,this.reject&&this.reject(new Yve("This poller is already stopped")))}isStopped(){return this.stopped}cancelOperation(e={}){if(!this.cancelPromise)this.cancelPromise=this.cancelOnce(e);else if(e.abortSignal)throw new Error("A cancel request is currently pending");return this.cancelPromise}getOperationState(){return this.operation.state}getResult(){return this.operation.state.result}toString(){return this.operation.toString()}}});var _Rt=m(()=>{qRt();ise();yve();dse()});var $Rt=m(()=>{_Rt()});var egt=m(()=>{});var tgt=m(()=>{PRt();$Rt();yve();egt()});var M4,T4,rj=m(()=>{tgt();po();M4=class extends nj{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return Y0(this.intervalInMs)}},T4=class{constructor(e,I={}){this.state=e,this.cancelMessage="",I.cancelMessage&&(this.cancelMessage=I.cancelMessage)}async update(){throw new Error("Operation not supported.")}async cancel(){throw new Error(this.cancelMessage)}toString(){return JSON.stringify({state:this.state})}}});var Gse,Igt=m(()=>{rj();ase();cse();Gse=class extends T4{constructor(e,I,l={}){super(e,{cancelMessage:"Canceling the deletion of a secret is not supported."}),this.state=e,this.client=I,this.operationOptions=l}deleteSecret(e,I={}){return Ud.withSpan("DeleteSecretPoller.deleteSecret",I,async l=>{let n=await this.client.deleteSecret(e,l);return Ci(n)})}getDeletedSecret(e,I={}){return Ud.withSpan("DeleteSecretPoller.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Ci(n)})}async update(e={}){let I=this.state,{name:l}=I;if(e.abortSignal&&(this.operationOptions.abortSignal=e.abortSignal),!I.isStarted){let n=await this.deleteSecret(l,this.operationOptions);I.isStarted=!0,I.result=n,n.properties.recoveryId||(I.isCompleted=!0)}if(!I.isCompleted)try{I.result=await this.getDeletedSecret(l,this.operationOptions),I.isCompleted=!0}catch(n){if(n.statusCode===403)I.isCompleted=!0;else if(n.statusCode!==404)throw I.error=n,I.isCompleted=!0,n}return this}}});var bse,lgt=m(()=>{Igt();rj();bse=class extends M4{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:r=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let c=new Gse(Object.assign(Object.assign({},s),{name:l}),I,n);super(c),this.intervalInMs=r}}});var mse,ngt=m(()=>{rj();ase();cse();mse=class extends T4{constructor(e,I,l={}){super(e,{cancelMessage:"Canceling the recovery of a deleted secret is not supported."}),this.state=e,this.client=I,this.options=l}getSecret(e,I={}){return Ud.withSpan("RecoverDeletedSecretPoller.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Ci(n)})}recoverDeletedSecret(e,I={}){return Ud.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",I,async l=>{let n=await this.client.recoverDeletedSecret(e,l);return Ci(n)})}async update(e={}){let I=this.state,{name:l}=I;if(e.abortSignal&&(this.options.abortSignal=e.abortSignal),!I.isStarted){try{I.result=(await this.getSecret(l,this.options)).properties,I.isCompleted=!0}catch{}I.isCompleted||(I.result=(await this.recoverDeletedSecret(l,this.options)).properties,I.isStarted=!0)}if(!I.isCompleted)try{I.result=(await this.getSecret(l,this.options)).properties,I.isCompleted=!0}catch(n){if(n.statusCode===403)I.isCompleted=!0;else if(n.statusCode!==404)throw I.error=n,I.isCompleted=!0,n}return this}}});var hse,rgt=m(()=>{ngt();rj();hse=class extends M4{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:r=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let c=new mse(Object.assign(Object.assign({},s),{name:l}),I,n);super(c),this.intervalInMs=r}}});var pse,agt=m(()=>{RJ();rRt();bve();hve();TRt();DRt();uve();ase();cse();OG();Zve();lgt();rgt();pse=class{constructor(e,I,l={}){var n,r;this.vaultUrl=e;let a=Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:`${(r=(n=l.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix)!==null&&r!==void 0?r:""} azsdk-js-keyvault-secrets/${sse}`},apiVersion:l.serviceVersion||"7.6",loggingOptions:{logger:nRt.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new lj(this.vaultUrl,I,a),this.client.pipeline.removePolicy({name:Rne}),this.client.pipeline.addPolicy(URt(I,l),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(s,c){var o;return((o=s.headers.get("Content-Type"))!==null&&o!==void 0?o:"").startsWith("application/json")&&s.headers.set("Content-Type","application/json"),c(s)}})}setSecret(e,I,l={}){let{enabled:n,notBefore:r,expiresOn:a,tags:s}=l,c=qO(l,["enabled","notBefore","expiresOn","tags"]);return Ud.withSpan("SecretClient.setSecret",c,async o=>{let i=await this.client.setSecret(e,{value:I,secretAttributes:{enabled:n,notBefore:r,expires:a},tags:s},o);return Ci(i)})}async beginDeleteSecret(e,I={}){let l=new bse(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}async updateSecretProperties(e,I,l={}){let{enabled:n,notBefore:r,expiresOn:a,tags:s}=l,c=qO(l,["enabled","notBefore","expiresOn","tags"]);return Ud.withSpan("SecretClient.updateSecretProperties",c,async o=>{let i=await this.client.updateSecret(e,I,{secretAttributes:{enabled:n,notBefore:r,expires:a},tags:s},o);return Ci(i).properties})}getSecret(e,I={}){return Ud.withSpan("SecretClient.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Ci(n)})}getDeletedSecret(e,I={}){return Ud.withSpan("SecretClient.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Ci(n)})}purgeDeletedSecret(e,I={}){return Ud.withSpan("SecretClient.purgeDeletedSecret",I,async l=>{await this.client.purgeDeletedSecret(e,l)})}async beginRecoverDeletedSecret(e,I={}){let l=new hse(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}backupSecret(e,I={}){return Ud.withSpan("SecretClient.backupSecret",I,async l=>(await this.client.backupSecret(e,l)).value)}restoreSecretBackup(e,I={}){return Ud.withSpan("SecretClient.restoreSecretBackup",I,async l=>{let n=await this.client.restoreSecret({secretBundleBackup:e},l);return Ci(n).properties})}listPropertiesOfSecretVersions(e,I={}){return rse(l=>this.client.getSecretVersions(e,l),I,l=>Ci(l).properties)}listPropertiesOfSecrets(e={}){return rse(this.client.getSecrets.bind(this.client),e,I=>Ci(I).properties)}listDeletedSecrets(e={}){return rse(this.client.getDeletedSecrets.bind(this.client),e,Ci)}}});function sgt(t,e){let I=t.api?.copilot?.azureKeyVaultUri;return gve(I,e)}function gve(t,e){return new Rve(t,e)}var Rve,Fve=m(()=>{"use strict";zne();agt();Rve=class{client;logger;constructor(e,I){if(this.logger=I,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let l=new WZ;this.client=new pse(e,l)}else this.logger.debug("No Azure Key Vault URI provided, secret provider disabled")}async getSecret(e){if(this.client)try{return(await this.client.getSecret(e)).value}catch(I){if(this.logger.warning(`Error fetching secret ${e}: ${I}`),I?.code==="SecretNotFound")return;throw I}}}});import{createHmac as THI}from"crypto";var use,cgt=m(()=>{"use strict";use=class t{static encode(e){let I=t.hmacGetBytes(e),a=(Math.floor(Date.now()/1e3)+30).toString(),s=Buffer.from(a,"ascii"),i=THI("sha256",I).update(s).digest().toString("hex").toUpperCase();return`${a}.${i}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}}});import{readFileSync as jHI}from"fs";import{dirname as DHI,join as Ave}from"path";import{fileURLToPath as KHI}from"url";function Qve(){return ogt().version}function ogt(){if(aj!==null)return aj;try{let t=KHI(import.meta.url),e=DHI(t),I=[Ave(e,"package.json"),Ave(e,"../package.json"),Ave(e,"../../package.json")];for(let n of I)try{let r=JSON.parse(jHI(n,"utf8")),a={name:r.name||"unknown",version:r.version||"unknown",buildMetadata:r.buildMetadata};return aj=a,a}catch{continue}let l={name:"unknown",version:"unknown"};return aj=l,l}catch{let e={name:"unknown",version:"unknown"};return aj=e,e}}function PHI(t){return t.replace(/^@.*\//,"")}function Zse(){let t=ogt();return`${PHI(t.name)}/${t.version} (${process.platform} ${process.version})`}var aj,Wse=m(()=>{"use strict";aj=null});var qHI,_HI,igt,TY,j4,D4,K4=m(()=>{"use strict";_T();Fve();RG();Q2();Mc();cgt();EI();Wse();qHI="X-GitHub-Api-Version",_HI="2025-05-01",igt=["https://api.enterprise.githubcopilot.com","https://api.business.githubcopilot.com","https://api.individual.githubcopilot.com"],TY=class t extends Ot{constructor(I,l,n,r,a){let s=a?void 0:LL()?"debug":"info";super({baseURL:I,apiKey:"",logLevel:s});this.headers=l;this.runnerLogger=n;this.hmacKey=r}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[qHI]:_HI};hmacKey;additionalHeaders={};static createWithOAuthToken(I,l,n,r,a,s,c){let o={...this.defaultHeaders(n,a),Authorization:`Bearer ${r}`,...s??{}};return I.debug(`Creating copilot-client for integration ID ${n} with token authentication. User-agent: ${o["User-Agent"]}`),new t(l,o,I,void 0,c)}static createWithHmac(I,l,n,r,a,s,c,o){let i={...this.defaultHeaders(n,a),Authorization:"",...c??{}};return s&&(i["X-GitHub-User"]=s),I.debug(`Creating copilot-client for integration ID ${n} with key authentication. User-agent: ${i["User-Agent"]}`),new t(l,i,I,r,o)}static defaultHeaders(I,l){return{...t.baseHeaders,"Copilot-Integration-Id":I,"X-Interaction-Id":l,"User-Agent":Zse()}}async prepareOptions(I){this.hmacKey&&(this.headers["Request-HMAC"]=use.encode(this.hmacKey)),I.headers={...this.headers,...this.additionalHeaders,...I.headers},await super.prepareOptions(I)}setInitiatorHeader(I){this.headers["X-Initiator"]=I}setAdditionalHeaders(I){this.additionalHeaders=I}async listModels(){let I={method:"get",path:""};await this.prepareOptions(I);let l={};if(I.headers)for(let[r,a]of Object.entries(I.headers))typeof a=="string"&&(l[r]=a);let n=[this.baseURL];if(igt.includes(this.baseURL))for(let r of igt)r!==this.baseURL&&n.push(r);for(let r of n){let a=`${r}/models`,s=await fetch(a,{method:I.method,headers:l});if(s.ok){let c=await s.json();return this.runnerLogger.debug(`Successfully listed ${c.data.length} models`),c.data}if(s.status===421){this.runnerLogger.debug(`Failed to list models due to subscription-based route ${r}: ${s.status} ${s.statusText}: ${await s.text()}`);continue}return this.runnerLogger.error(`Failed to list models due to non-retryable error: ${s.status} ${s.statusText}: ${await s.text()}`),[]}return this.runnerLogger.error("Failed to list models"),[]}},j4=class{async createClient(e,I,l){I.startGroup("configured settings:",8),I.debug(JSON.stringify(e,null,2)),I.endGroup(8);let n=e.api?.copilot?.token,r=e.api?.copilot?.hmacKey,a=!!(r||n);if(!a){I.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let d=sgt(e,I);try{r=await d.getSecret("capi-hmac-key")}catch(G){I.debug(`Failed to get Copilot HMAC key from secret provider:
|
|
1446
|
+
Body doesn't contain an array property with name: ${e}`);return I??[]}function cHI(t,e){if(!e.includes(t.status))throw go(`Pagination failed with unexpected statusCode ${t.status}`,t)}var HRt=m(()=>{RJ();ese();OG()});function O4(t,e,I){return(e??I==="+")||I==="#"?vRt(t):CRt(t)}function vRt(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function CRt(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function Ij(t){return t!=null}function $He(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function nse(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function oHI(t){let e=t.isFirst,{op:I,varName:l,varValue:n,reserved:r}=t,a=[],[s,c]=$He(I);if(Array.isArray(n))for(let o of n.filter(Ij))a.push(`${nse(I,e)}`),s&&l&&(a.push(`${encodeURIComponent(l)}`),o===""?a.push(c):a.push("=")),a.push(O4(o,r,I)),e=!1;else if(typeof n=="object")for(let o of Object.keys(n)){let i=n[o];Ij(i)&&(a.push(`${nse(I,e)}`),o&&(a.push(`${encodeURIComponent(o)}`),s&&i===""?a.push(c):a.push("=")),a.push(O4(i,r,I)),e=!1)}return a.join("")}function iHI(t){let{op:e,varName:I,varValue:l,isFirst:n,reserved:r}=t,a=[],s=nse(e,n),[c,o]=$He(e);if(c&&I){if(a.push(O4(I,r,e)),l==="")return o||a.push(o),a.join("")?`${s}${a.join("")}`:void 0;a.push("=")}let i=[];if(Array.isArray(l))for(let d of l.filter(Ij))i.push(O4(d,r,e));else if(typeof l=="object")for(let d of Object.keys(l))Ij(l[d])&&(i.push(CRt(d)),i.push(O4(l[d],r,e)));return a.push(i.join(",")),a.join(",")?`${s}${a.join("")}`:void 0}function dHI(t){let{op:e,varName:I,modifier:l,isFirst:n,reserved:r,varValue:a}=t;if(Ij(a))if(["string","number","boolean"].includes(typeof a)){let s=a.toString(),[c,o]=$He(e),i=[nse(e,n)];return c&&I&&(i.push(I),s===""?i.push(o):i.push("=")),l&&l!=="*"&&(s=s.substring(0,parseInt(l,10))),i.push(O4(s,r,e)),i.join("")}else return l==="*"?oHI(t):iHI(t);else return}function Ib(t,e,I){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(l,n,r)=>{if(!n)return vRt(r);let a;["+","#",".","/",";","?","&"].includes(n[0])&&(a=n[0],n=n.slice(1));let s=n.split(/,/g),c=[];for(let o of s){let i=/([^:\*]*)(?::(\d+)|(\*))?/.exec(o);if(!i||!i[1])continue;let d=dHI({isFirst:c.length===0,op:a,varValue:e[i[1]],varName:i[1],modifier:i[2]||i[3],reserved:I?.allowReserved});d&&c.push(d)}return c.join("")})}var JRt=m(()=>{});function GHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},zd(I)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers),body:ERt(e)}))}async function bHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function eve(t,e,I={requestOptions:{}}){let l=await GHI(t,e,I);return bHI(l)}function mHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/secrets/{secret-name}/backup{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function hHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return XRt(t.body)}async function tve(t,e,I={requestOptions:{}}){let l=await mHI(t,e,I);return hHI(l)}function pHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/deletedsecrets/{secret-name}/recover{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function uHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function Ive(t,e,I={requestOptions:{}}){let l=await pHI(t,e,I);return uHI(l)}function ZHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/deletedsecrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).delete(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function WHI(t){if(!["204"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}}async function lve(t,e,I={requestOptions:{}}){let l=await ZHI(t,e,I);return WHI(l)}function NHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/deletedsecrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function YHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return KHe(t.body)}async function nve(t,e,I={requestOptions:{}}){let l=await NHI(t,e,I);return YHI(l)}function VHI(t,e={requestOptions:{}}){var I,l;let n=Ib("/deletedsecrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(I=e?.requestOptions)===null||I===void 0?void 0:I.skipUrlEncoding});return t.path(n).get(Object.assign(Object.assign({},zd(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function yHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return wRt(t.body)}function rve(t,e={requestOptions:{}}){return lse(t,()=>VHI(t,e),yHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function RHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/secrets/{secret-name}/versions{?api%2Dversion,maxresults}",{"secret-name":e,"api%2Dversion":t.apiVersion,maxresults:I?.maxresults},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function gHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return PHe(t.body)}function ave(t,e,I={requestOptions:{}}){return lse(t,()=>RHI(t,e,I),gHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function FHI(t,e={requestOptions:{}}){var I,l;let n=Ib("/secrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(I=e?.requestOptions)===null||I===void 0?void 0:I.skipUrlEncoding});return t.path(n).get(Object.assign(Object.assign({},zd(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function AHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return PHe(t.body)}function sve(t,e={requestOptions:{}}){return lse(t,()=>FHI(t,e),AHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function QHI(t,e,I,l={requestOptions:{}}){var n,r;let a=Ib("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(a).get(Object.assign(Object.assign({},zd(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function wHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function cve(t,e,I,l={requestOptions:{}}){let n=await QHI(t,e,I,l);return wHI(n)}function XHI(t,e,I,l,n={requestOptions:{}}){var r,a;let s=Ib("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(s).patch(Object.assign(Object.assign({},zd(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(a=n.requestOptions)===null||a===void 0?void 0:a.headers),body:QRt(l)}))}async function EHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function ove(t,e,I,l,n={requestOptions:{}}){let r=await XHI(t,e,I,l,n);return EHI(r)}function HHI(t,e,I={requestOptions:{}}){var l,n;let r=Ib("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).delete(Object.assign(Object.assign({},zd(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function vHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return KHe(t.body)}async function ive(t,e,I={requestOptions:{}}){let l=await HHI(t,e,I);return vHI(l)}function CHI(t,e,I,l={requestOptions:{}}){var n,r;let a=Ib("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(a).put(Object.assign(Object.assign({},zd(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers),body:gRt(I)}))}async function JHI(t){if(!["200"].includes(t.status)){let I=go(t);throw I.details=tb(t.body),I}return S4(t.body)}async function dve(t,e,I,l={requestOptions:{}}){let n=await CHI(t,e,I,l);return JHI(n)}var Gve=m(()=>{qHe();HRt();JRt();ese()});var fRt=m(()=>{RRt();Gve()});var lj,bve=m(()=>{fRt();Gve();lj=class{constructor(e,I,l={}){var n;let r=(n=l?.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix,a=r?`${r} azsdk-js-client`:"azsdk-js-client";this._client=DHe(e,I,Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:a}})),this.pipeline=this._client.pipeline}restoreSecret(e,I={requestOptions:{}}){return eve(this._client,e,I)}backupSecret(e,I={requestOptions:{}}){return tve(this._client,e,I)}recoverDeletedSecret(e,I={requestOptions:{}}){return Ive(this._client,e,I)}purgeDeletedSecret(e,I={requestOptions:{}}){return lve(this._client,e,I)}getDeletedSecret(e,I={requestOptions:{}}){return nve(this._client,e,I)}getDeletedSecrets(e={requestOptions:{}}){return rve(this._client,e)}getSecretVersions(e,I={requestOptions:{}}){return ave(this._client,e,I)}getSecrets(e={requestOptions:{}}){return sve(this._client,e)}getSecret(e,I,l={requestOptions:{}}){return cve(this._client,e,I,l)}updateSecret(e,I,l,n={requestOptions:{}}){return ove(this._client,e,I,l,n)}deleteSecret(e,I={requestOptions:{}}){return ive(this._client,e,I)}setSecret(e,I,l={requestOptions:{}}){return dve(this._client,e,I,l)}}});function mve(t){let e=/,? +/,I=t.split(e).reduce((l,n)=>{if(n.match(/\w="/)){let[r,...a]=n.split("=");if(fHI.includes(r))return Object.assign(Object.assign({},l),{[r]:a.join("=").slice(1,-1)})}return l},{});if(I.authorization)try{let l=new URL(I.authorization).pathname.substring(1);l&&(I.tenantId=l)}catch{throw new Error(`The challenge authorization URI '${I.authorization}' is invalid.`)}return I}var fHI,LRt=m(()=>{fHI=["authorization","authorization_url","resource","scope","tenantId","claims","error"]});async function kHI(t,e,I){async function l(){if(Date.now()<I)try{return await t()}catch{return null}else{let r=await t();if(r===null)throw new Error("Failed to refresh access token.");return r}}let n=await l();for(;n===null;)await Y0(e),n=await l();return n}function kRt(t,e){let I=null,l=null,n,r=Object.assign(Object.assign({},LHI),e),a={get isRefreshing(){return I!==null},get shouldRefresh(){var c;return a.isRefreshing?!1:l?.refreshAfterTimestamp&&l.refreshAfterTimestamp<Date.now()?!0:((c=l?.expiresOnTimestamp)!==null&&c!==void 0?c:0)-r.refreshWindowInMs<Date.now()},get mustRefresh(){return l===null||l.expiresOnTimestamp-r.forcedRefreshWindowInMs<Date.now()}};function s(c,o){var i;return a.isRefreshing||(I=kHI(()=>t.getToken(c,o),r.retryIntervalInMs,(i=l?.expiresOnTimestamp)!==null&&i!==void 0?i:Date.now()).then(G=>(I=null,l=G,n=o.tenantId,l)).catch(G=>{throw I=null,l=null,n=void 0,G})),I}return async(c,o)=>{let i=!!o.claims,d=n!==o.tenantId;return i&&(l=null),d||i||a.mustRefresh?s(c,o):(a.shouldRefresh&&s(c,o),l)}}var LHI,xRt=m(()=>{po();LHI={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2}});var BRt,zRt=m(()=>{Lh();BRt=mo("keyvault-common")});function xHI(t,e){let I;try{I=new URL(t)}catch{throw new Error(`The challenge contains invalid scope '${t}'`)}if(!new URL(e.url).hostname.endsWith(`.${I.hostname}`))throw new Error(`The challenge resource '${I.hostname}' does not match the requested domain. Set disableChallengeResourceVerification to true in your client options to disable. See https://aka.ms/azsdk/blog/vault-uri for more information.`)}function URt(t,e={}){let{disableChallengeResourceVerification:I}=e,l={status:"none"},n=kRt(t);function r(i){return{abortSignal:i.abortSignal,requestOptions:{timeout:i.timeout>0?i.timeout:void 0},tracingOptions:i.tracingOptions}}async function a(i){let d=r(i);switch(l.status){case"none":l={status:"started",originalBody:i.body},i.body=null;break;case"started":break;case"complete":{let G=await n(l.scopes,Object.assign(Object.assign({},d),{enableCae:!0,tenantId:l.tenantId}));G&&i.headers.set("authorization",`Bearer ${G.token}`);break}}}async function s(i,d,G){if(d.status!==401)return d;i.body===null&&l.status==="started"&&(i.body=l.originalBody);let b=r(i),h=d.headers.get("WWW-Authenticate");if(!h)return BRt.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),d;let p=mve(h),u=p.resource?p.resource+"/.default":p.scope;if(!u)return d;I||xHI(u,i);let W=await n([u],Object.assign(Object.assign({},b),{enableCae:!0,tenantId:p.tenantId}));return W?(i.headers.set("Authorization",`Bearer ${W.token}`),l={status:"complete",scopes:[u],tenantId:p.tenantId},G(i)):d}async function c(i,d,G){if(l.status!=="complete"||d.status!==401)return d;let b=r(i),h=d.headers.get("WWW-Authenticate");if(!h)return d;let{claims:p,error:u}=mve(h);if(u!=="insufficient_claims"||p===void 0)return d;let W=atob(p),N=await n(l.scopes,Object.assign(Object.assign({},b),{enableCae:!0,tenantId:l.tenantId,claims:W}));return i.headers.set("Authorization",`Bearer ${N.token}`),G(i)}async function o(i,d){await a(i);let G=await d(i);return G=await s(i,G,d),G=await c(i,G,d),G}return{name:BHI,sendRequest:o}}var BHI,SRt=m(()=>{LRt();xRt();zRt();BHI="keyVaultAuthenticationPolicy"});function ORt(t,e){if(typeof t!="string"||!(t=t.trim()))throw new Error("Invalid collection argument");if(typeof e!="string"||!(e=e.trim()))throw new Error("Invalid identifier argument");let I;try{I=new URL(e)}catch{throw new Error(`Invalid ${t} identifier: ${e}. Not a valid URI`)}let l=(I.pathname||"").split("/");if(l.length!==3&&l.length!==4)throw new Error(`Invalid ${t} identifier: ${e}. Bad number of segments: ${l.length}`);if(t!==l[1])throw new Error(`Invalid ${t} identifier: ${e}. segment [1] should be "${t}", found "${l[1]}"`);let n=`${I.protocol}//${I.host}`,r=l[2],a=l.length===4?l[3]:void 0;return{vaultUrl:n,name:r,version:a}}var MRt=m(()=>{});var hve=m(()=>{SRt();MRt()});var TRt=m(()=>{});var jRt=m(()=>{qHe()});var DRt=m(()=>{bve();jRt()});function pve(t){let I=t.split("/")[3];return Object.assign({sourceId:t},ORt(I,t))}var uve=m(()=>{hve()});function Ci(t){let e=t,I=t,l=pve(e.id),n=e.attributes;delete e.attributes;let r={value:e.value,name:l.name,properties:{expiresOn:n?.expires,createdOn:n?.created,updatedOn:n?.updated,enabled:n?.enabled,notBefore:n?.notBefore,recoverableDays:n?.recoverableDays,recoveryLevel:n?.recoveryLevel,id:e.id,contentType:e.contentType,tags:e.tags,managed:e.managed,vaultUrl:l.vaultUrl,version:l.version,name:l.name,certificateKeyId:e.kid}};return I.recoveryId&&(r.properties.recoveryId=I.recoveryId,r.properties.scheduledPurgeDate=I.scheduledPurgeDate,r.properties.deletedOn=I.deletedDate,r.recoveryId=I.recoveryId,r.scheduledPurgeDate=I.scheduledPurgeDate,r.deletedOn=I.deletedDate),n&&(n.vaultUrl&&delete r.properties.vaultUrl,n.expires&&delete r.properties.expires,n.created&&delete r.properties.created,n.updated&&delete r.properties.updated),r}function rse(t,e,I){let l;return{async next(){l??(l=t(Object.assign(Object.assign({},e),{maxresults:void 0})));let n=await l.next();return Object.assign(Object.assign({},n),{value:n.value&&I(n.value)})},[Symbol.asyncIterator](){return this},byPage(n){return R0(this,arguments,function*(){var a,s,c,o;let i=t(Object.assign(Object.assign({},e),{maxresults:n?.maxPageSize})).byPage(n);try{for(var d=!0,G=ew(i),b;b=yield Wr(G.next()),a=b.done,!a;d=!0)o=b.value,d=!1,yield yield Wr(o.map(I))}catch(h){s={error:h}}finally{try{!d&&!a&&(c=G.return)&&(yield Wr(c.call(G)))}finally{if(s)throw s.error}}})}}}var ase=m(()=>{RJ();uve()});var sse,Zve=m(()=>{sse="4.10.0"});var Ud,cse=m(()=>{cIe();Zve();Ud=_A({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:sse})});var Wve,ose=m(()=>{Lh();Wve=mo("core-lro")});var ise=m(()=>{});var dse=m(()=>{ose();ise()});var Nve=m(()=>{dse();ose()});var KRt=m(()=>{dse();ise();po()});var PRt=m(()=>{Nve();KRt()});var qRt=m(()=>{Nve();ose()});var Yve,Vve,nj,yve=m(()=>{Yve=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},Vve=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},nj=class{constructor(e){this.resolveOnUnsuccessful=!1,this.stopped=!0,this.pollProgressCallbacks=[],this.operation=e,this.promise=new Promise((I,l)=>{this.resolve=I,this.reject=l}),this.promise.catch(()=>{})}async startPolling(e={}){for(this.stopped&&(this.stopped=!1);!this.isStopped()&&!this.isDone();)await this.poll(e),await this.delay()}async pollOnce(e={}){this.isDone()||(this.operation=await this.operation.update({abortSignal:e.abortSignal,fireProgress:this.fireProgress.bind(this)})),this.processUpdatedState()}fireProgress(e){for(let I of this.pollProgressCallbacks)I(e)}async cancelOnce(e={}){this.operation=await this.operation.cancel(e)}poll(e={}){if(!this.pollOncePromise){this.pollOncePromise=this.pollOnce(e);let I=()=>{this.pollOncePromise=void 0};this.pollOncePromise.then(I,I).catch(this.reject)}return this.pollOncePromise}processUpdatedState(){if(this.operation.state.error&&(this.stopped=!0,!this.resolveOnUnsuccessful))throw this.reject(this.operation.state.error),this.operation.state.error;if(this.operation.state.isCancelled&&(this.stopped=!0,!this.resolveOnUnsuccessful)){let e=new Vve("Operation was canceled");throw this.reject(e),e}this.isDone()&&this.resolve&&this.resolve(this.getResult())}async pollUntilDone(e={}){return this.stopped&&this.startPolling(e).catch(this.reject),this.processUpdatedState(),this.promise}onProgress(e){return this.pollProgressCallbacks.push(e),()=>{this.pollProgressCallbacks=this.pollProgressCallbacks.filter(I=>I!==e)}}isDone(){let e=this.operation.state;return!!(e.isCompleted||e.isCancelled||e.error)}stopPolling(){this.stopped||(this.stopped=!0,this.reject&&this.reject(new Yve("This poller is already stopped")))}isStopped(){return this.stopped}cancelOperation(e={}){if(!this.cancelPromise)this.cancelPromise=this.cancelOnce(e);else if(e.abortSignal)throw new Error("A cancel request is currently pending");return this.cancelPromise}getOperationState(){return this.operation.state}getResult(){return this.operation.state.result}toString(){return this.operation.toString()}}});var _Rt=m(()=>{qRt();ise();yve();dse()});var $Rt=m(()=>{_Rt()});var egt=m(()=>{});var tgt=m(()=>{PRt();$Rt();yve();egt()});var M4,T4,rj=m(()=>{tgt();po();M4=class extends nj{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return Y0(this.intervalInMs)}},T4=class{constructor(e,I={}){this.state=e,this.cancelMessage="",I.cancelMessage&&(this.cancelMessage=I.cancelMessage)}async update(){throw new Error("Operation not supported.")}async cancel(){throw new Error(this.cancelMessage)}toString(){return JSON.stringify({state:this.state})}}});var Gse,Igt=m(()=>{rj();ase();cse();Gse=class extends T4{constructor(e,I,l={}){super(e,{cancelMessage:"Canceling the deletion of a secret is not supported."}),this.state=e,this.client=I,this.operationOptions=l}deleteSecret(e,I={}){return Ud.withSpan("DeleteSecretPoller.deleteSecret",I,async l=>{let n=await this.client.deleteSecret(e,l);return Ci(n)})}getDeletedSecret(e,I={}){return Ud.withSpan("DeleteSecretPoller.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Ci(n)})}async update(e={}){let I=this.state,{name:l}=I;if(e.abortSignal&&(this.operationOptions.abortSignal=e.abortSignal),!I.isStarted){let n=await this.deleteSecret(l,this.operationOptions);I.isStarted=!0,I.result=n,n.properties.recoveryId||(I.isCompleted=!0)}if(!I.isCompleted)try{I.result=await this.getDeletedSecret(l,this.operationOptions),I.isCompleted=!0}catch(n){if(n.statusCode===403)I.isCompleted=!0;else if(n.statusCode!==404)throw I.error=n,I.isCompleted=!0,n}return this}}});var bse,lgt=m(()=>{Igt();rj();bse=class extends M4{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:r=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let c=new Gse(Object.assign(Object.assign({},s),{name:l}),I,n);super(c),this.intervalInMs=r}}});var mse,ngt=m(()=>{rj();ase();cse();mse=class extends T4{constructor(e,I,l={}){super(e,{cancelMessage:"Canceling the recovery of a deleted secret is not supported."}),this.state=e,this.client=I,this.options=l}getSecret(e,I={}){return Ud.withSpan("RecoverDeletedSecretPoller.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Ci(n)})}recoverDeletedSecret(e,I={}){return Ud.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",I,async l=>{let n=await this.client.recoverDeletedSecret(e,l);return Ci(n)})}async update(e={}){let I=this.state,{name:l}=I;if(e.abortSignal&&(this.options.abortSignal=e.abortSignal),!I.isStarted){try{I.result=(await this.getSecret(l,this.options)).properties,I.isCompleted=!0}catch{}I.isCompleted||(I.result=(await this.recoverDeletedSecret(l,this.options)).properties,I.isStarted=!0)}if(!I.isCompleted)try{I.result=(await this.getSecret(l,this.options)).properties,I.isCompleted=!0}catch(n){if(n.statusCode===403)I.isCompleted=!0;else if(n.statusCode!==404)throw I.error=n,I.isCompleted=!0,n}return this}}});var hse,rgt=m(()=>{ngt();rj();hse=class extends M4{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:r=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let c=new mse(Object.assign(Object.assign({},s),{name:l}),I,n);super(c),this.intervalInMs=r}}});var pse,agt=m(()=>{RJ();rRt();bve();hve();TRt();DRt();uve();ase();cse();OG();Zve();lgt();rgt();pse=class{constructor(e,I,l={}){var n,r;this.vaultUrl=e;let a=Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:`${(r=(n=l.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix)!==null&&r!==void 0?r:""} azsdk-js-keyvault-secrets/${sse}`},apiVersion:l.serviceVersion||"7.6",loggingOptions:{logger:nRt.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new lj(this.vaultUrl,I,a),this.client.pipeline.removePolicy({name:Rne}),this.client.pipeline.addPolicy(URt(I,l),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(s,c){var o;return((o=s.headers.get("Content-Type"))!==null&&o!==void 0?o:"").startsWith("application/json")&&s.headers.set("Content-Type","application/json"),c(s)}})}setSecret(e,I,l={}){let{enabled:n,notBefore:r,expiresOn:a,tags:s}=l,c=qO(l,["enabled","notBefore","expiresOn","tags"]);return Ud.withSpan("SecretClient.setSecret",c,async o=>{let i=await this.client.setSecret(e,{value:I,secretAttributes:{enabled:n,notBefore:r,expires:a},tags:s},o);return Ci(i)})}async beginDeleteSecret(e,I={}){let l=new bse(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}async updateSecretProperties(e,I,l={}){let{enabled:n,notBefore:r,expiresOn:a,tags:s}=l,c=qO(l,["enabled","notBefore","expiresOn","tags"]);return Ud.withSpan("SecretClient.updateSecretProperties",c,async o=>{let i=await this.client.updateSecret(e,I,{secretAttributes:{enabled:n,notBefore:r,expires:a},tags:s},o);return Ci(i).properties})}getSecret(e,I={}){return Ud.withSpan("SecretClient.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Ci(n)})}getDeletedSecret(e,I={}){return Ud.withSpan("SecretClient.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Ci(n)})}purgeDeletedSecret(e,I={}){return Ud.withSpan("SecretClient.purgeDeletedSecret",I,async l=>{await this.client.purgeDeletedSecret(e,l)})}async beginRecoverDeletedSecret(e,I={}){let l=new hse(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}backupSecret(e,I={}){return Ud.withSpan("SecretClient.backupSecret",I,async l=>(await this.client.backupSecret(e,l)).value)}restoreSecretBackup(e,I={}){return Ud.withSpan("SecretClient.restoreSecretBackup",I,async l=>{let n=await this.client.restoreSecret({secretBundleBackup:e},l);return Ci(n).properties})}listPropertiesOfSecretVersions(e,I={}){return rse(l=>this.client.getSecretVersions(e,l),I,l=>Ci(l).properties)}listPropertiesOfSecrets(e={}){return rse(this.client.getSecrets.bind(this.client),e,I=>Ci(I).properties)}listDeletedSecrets(e={}){return rse(this.client.getDeletedSecrets.bind(this.client),e,Ci)}}});function sgt(t,e){let I=t.api?.copilot?.azureKeyVaultUri;return gve(I,e)}function gve(t,e){return new Rve(t,e)}var Rve,Fve=m(()=>{"use strict";zne();agt();Rve=class{client;logger;constructor(e,I){if(this.logger=I,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let l=new WZ;this.client=new pse(e,l)}else this.logger.debug("No Azure Key Vault URI provided, secret provider disabled")}async getSecret(e){if(this.client)try{return(await this.client.getSecret(e)).value}catch(I){if(this.logger.warning(`Error fetching secret ${e}: ${I}`),I?.code==="SecretNotFound")return;throw I}}}});import{createHmac as THI}from"crypto";var use,cgt=m(()=>{"use strict";use=class t{static encode(e){let I=t.hmacGetBytes(e),a=(Math.floor(Date.now()/1e3)+30).toString(),s=Buffer.from(a,"ascii"),i=THI("sha256",I).update(s).digest().toString("hex").toUpperCase();return`${a}.${i}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}}});import{readFileSync as jHI}from"fs";import{dirname as DHI,join as Ave}from"path";import{fileURLToPath as KHI}from"url";function Qve(){return ogt().version}function ogt(){if(aj!==null)return aj;try{let t=KHI(import.meta.url),e=DHI(t),I=[Ave(e,"package.json"),Ave(e,"../package.json"),Ave(e,"../../package.json")];for(let n of I)try{let r=JSON.parse(jHI(n,"utf8")),a={name:r.name||"unknown",version:r.version||"unknown",buildMetadata:r.buildMetadata};return aj=a,a}catch{continue}let l={name:"unknown",version:"unknown"};return aj=l,l}catch{let e={name:"unknown",version:"unknown"};return aj=e,e}}function PHI(t){return t.replace(/^@.*\//,"")}function Zse(t){let e=ogt(),I=PHI(e.name),l=t?.clientName?`client/${t.clientName} `:"";return`${I}/${e.version} (${l}${process.platform} ${process.version})`}var aj,Wse=m(()=>{"use strict";aj=null});var qHI,_HI,igt,TY,j4,D4,K4=m(()=>{"use strict";_T();Fve();RG();Q2();Mc();cgt();EI();Wse();qHI="X-GitHub-Api-Version",_HI="2025-05-01",igt=["https://api.enterprise.githubcopilot.com","https://api.business.githubcopilot.com","https://api.individual.githubcopilot.com"],TY=class t extends Ot{constructor(I,l,n,r,a){let s=a?void 0:LL()?"debug":"info";super({baseURL:I,apiKey:"",logLevel:s});this.headers=l;this.runnerLogger=n;this.hmacKey=r}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[qHI]:_HI};hmacKey;additionalHeaders={};static createWithOAuthToken(I,l,n,r,a,s,c,o){let i={...this.defaultHeaders(n,a,o),Authorization:`Bearer ${r}`,...s??{}};return I.debug(`Creating copilot-client for integration ID ${n} with token authentication. User-agent: ${i["User-Agent"]}`),new t(l,i,I,void 0,c)}static createWithHmac(I,l,n,r,a,s,c,o,i){let d={...this.defaultHeaders(n,a,i),Authorization:"",...c??{}};return s&&(d["X-GitHub-User"]=s),I.debug(`Creating copilot-client for integration ID ${n} with key authentication. User-agent: ${d["User-Agent"]}`),new t(l,d,I,r,o)}static defaultHeaders(I,l,n){return{...t.baseHeaders,"Copilot-Integration-Id":I,"X-Interaction-Id":l,"User-Agent":Zse(n)}}async prepareOptions(I){this.hmacKey&&(this.headers["Request-HMAC"]=use.encode(this.hmacKey)),I.headers={...this.headers,...this.additionalHeaders,...I.headers},await super.prepareOptions(I)}setInitiatorHeader(I){this.headers["X-Initiator"]=I}setAdditionalHeaders(I){this.additionalHeaders=I}async listModels(){let I={method:"get",path:""};await this.prepareOptions(I);let l={};if(I.headers)for(let[r,a]of Object.entries(I.headers))typeof a=="string"&&(l[r]=a);let n=[this.baseURL];if(igt.includes(this.baseURL))for(let r of igt)r!==this.baseURL&&n.push(r);for(let r of n){let a=`${r}/models`,s=await fetch(a,{method:I.method,headers:l});if(s.ok){let c=await s.json();return this.runnerLogger.debug(`Successfully listed ${c.data.length} models`),c.data}if(s.status===421){this.runnerLogger.debug(`Failed to list models due to subscription-based route ${r}: ${s.status} ${s.statusText}: ${await s.text()}`);continue}return this.runnerLogger.error(`Failed to list models due to non-retryable error: ${s.status} ${s.statusText}: ${await s.text()}`),[]}return this.runnerLogger.error("Failed to list models"),[]}},j4=class{async createClient(e,I,l){I.startGroup("configured settings:",8),I.debug(JSON.stringify(e,null,2)),I.endGroup(8);let n=e.api?.copilot?.token,r=e.api?.copilot?.hmacKey,a=!!(r||n);if(!a){I.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let d=sgt(e,I);try{r=await d.getSecret("capi-hmac-key")}catch(G){I.debug(`Failed to get Copilot HMAC key from secret provider:
|
|
1447
1447
|
${ue(G)}`)}try{n=await d.getSecret("capi-token")}catch(G){I.debug(`Failed to get Copilot GitHub OAuth token from secret provider:
|
|
1448
|
-
${ue(G)}`)}a=!!(r||n)}let s,c=qke(e),o=HL(e),i=e.api?.copilot?.sessionId??nW(e);if(I.debug(`Using Copilot API at ${c} with integration ID ${o}`),n&&(I.debug("Using GitHub OAuth token for Copilot API"),s=TY.createWithOAuthToken(I,c,o,n,i,l?.requestHeaders,l?.disableHttpLogging)),r){I.debug("Using Copilot HMAC key for Copilot API");let d=process.env.GITHUB_USER_ID;d?I.debug(`Using user ID ${d} for Copilot HMAC key`):I.debug("No user ID provided for Copilot HMAC key"),s=TY.createWithHmac(I,c,o,r,i,d,l?.requestHeaders,l?.disableHttpLogging)}if(s===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return s}},D4=class t extends ba{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.cause=e.cause,this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof ba)))return new t(e)}}});function evI(t){let e=t,I=!1;for(;e;){if(typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"&&(e instanceof TypeError&&e.message.includes("terminated")&&(I=!0),"name"in e&&e.name==="TypeError"&&e.message.includes("terminated")&&(I=!0),e.message.includes("GOAWAY")||e.message.includes("UND_ERR_SOCKET")))return!0;e=typeof e=="object"&&e!==null&&"cause"in e?e.cause:void 0}return I}function tvI(t){let e=new Ot.APIError(503,{error:{message:"HTTP/2 GOAWAY connection terminated",type:"connection_error"}},"HTTP/2 GOAWAY connection terminated",new Headers);return e.cause=t,e}function IvI(t){let e=0;return t.choices?.forEach(I=>{e+=new TextEncoder().encode(I.delta?.content??"").length,I.delta?.tool_calls?.forEach(l=>{l.function&&(e+=new TextEncoder().encode(l.function.name).length,e+=new TextEncoder().encode(l.function.arguments??"").length)})}),e}function lvI(t,e){let I=new Map,l=new Set;return new gm(async function*(){for await(let n of t)n.choices?.forEach(r=>{if(r.delta){let s=!!(r.delta.content||r.delta.tool_calls?.length||r.delta.refusal),c=!l.has(r.index);!r.delta.role&&(s||c)&&(r.delta.role="assistant",l.add(r.index))}if(!!r.delta?.tool_calls?.length){r.delta&&!r.delta.role&&(r.delta.role="assistant",l.add(r.index)),r.finish_reason??="tool_calls";let s=I.get(r.index);s||(s={nextSequenceNumber:0,mappings:new Map},I.set(r.index,s)),r.delta.tool_calls?.forEach(c=>{let o=s.mappings.get(c.index);if(o!==void 0)c.id&&o.callId!==c.id&&(o.sequenceNumber=s.nextSequenceNumber++,o.callId=c.id),c.index=o.sequenceNumber;else{let i={callId:c.id,sequenceNumber:s.nextSequenceNumber++};s.mappings.set(c.index,i),c.index=i.sequenceNumber}})}}),yield n},t.controller,e)}function nvI(t,e){t.forEach(I=>{I.function.name=I.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_");try{q0(I.function.arguments)}catch(l){if(l instanceof SyntaxError){let n=I.function.name,r=I.function.arguments;e.set(I.id,{textResultForLlm:`The arguments for the tool call '${n}' were not valid JSON. The arguments have been cleared. Arguments: ${r}. JSON parse error: ${l.message}`,resultType:"failure",error:`${l.message}`,sessionLog:`<error>Failed to execute \`${n}\` tool with arguments: ${r} due to syntax error: ${l.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}}),I.function.arguments="{}"}}})}var $HI,pR,Nse=m(()=>{"use strict";_T();K0t();fae();zHe();A2();$T();EI();gT();ON();eU();RG();Si();no();$z();SHe();lRt();K4();KH();ly();$HI={type:"ephemeral"};pR=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),l.info(" "),l.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(I,l,n),this.modelPromise=this.clientPromise.then(async()=>{let r=await this.getModel();return l.debug(`Got model info: ${JSON.stringify(r,null,2)}`),r})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||$ae["sweagent-capi"],toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??180}},thinkingMode:e?.thinkingMode??!1,requestHeaders:e?.requestHeaders??{},disableHttpLogging:e?.disableHttpLogging??!1,enableCacheControl:e?.enableCacheControl??!1}}getCompletionOptions(e,I){let l={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:I?.toolChoice,...l}}makeRequest(e,I,l,n,r,a,s){return e.chat.completions.create({model:I,messages:[...l],...n,tools:r},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}async makeRequestStreaming(e,I,l,n,r,a,s){let c=await e.chat.completions.create({model:I,messages:[...l],...n,tools:r,stream:!0,stream_options:{include_usage:!0}},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse(),o=lvI(c.data,e).toReadableStream(),i=UY.fromReadableStream(o),d=s?.processors?.onStreamingChunk;if(d?.length){let G=Es();for await(let b of i){s?.abortSignal?.throwIfAborted();let h=b.choices?.[0],p={content:h?.delta?.content??void 0,reportIntentArguments:void 0,size:IvI(b),streamingId:G};if(h?.delta?.tool_calls){for(let u of h.delta.tool_calls)if(u.function?.name===Uu&&u.function?.arguments){p.reportIntentArguments=u.function.arguments;break}}if(p.content||p.reportIntentArguments||p.size>0)for(let u of d)u.onStreamingChunk(p)}}return{data:await i.finalChatCompletion(),response:c.response,request_id:c.request_id}}async*getCompletionWithTools(e,I,l,n){let r=this.model,a=await this.clientPromise,s=await this.modelPromise,c=$C(l),o=this.clientOptions.enableCacheControl?$HI:void 0,i=[{role:"system",content:e,copilot_cache_control:o},...I.map(u=>m5(u))],d=l.map((u,W)=>({type:"function",function:{name:u.name,description:u.description,parameters:u.input_schema},copilot_cache_control:W===l.length-1?o:void 0}));this.logger.startGroup("Completion request configuration: ",8),this.logger.debug("Client options: "),this.logger.debug(JSON.stringify(this.clientOptions,null,2)),this.logger.debug("Request options: "),this.logger.debug(JSON.stringify(n??{},null,2)),this.logger.debug("Tools: "),this.logger.debug(JSON.stringify(d,null,2)),this.logger.endGroup(8);let G=this.getCompletionOptions(l,n),b=n?.initialTurnCount!==void 0?n.initialTurnCount+1:0,h=!1,p=!1;for(;!h&&!p;){let u=Date.now();yield{kind:"turn_started",model:r,modelInfo:s,turn:b,timestampMs:u};let W=0,N=0,R=0,F=[429,503,500,400],A=this.clientOptions.retryPolicy.maxRetries,H=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,w=0,v=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,C,O;try{let B=[],se;do{R>0&&(yield{kind:"turn_retry",model:r,modelInfo:s,turn:b,timestampMs:Date.now()});try{let Ze={};for(let ce of n?.processors?.preRequest||[]){let Me=ce.preRequest({turn:b,retry:R,messages:i,toolDefinitions:d,modelInfo:s,additionalRequestHeaders:Ze,getCompletionWithToolsOptions:n});for await(let pI of Me)yield pI}if(this.logger.startGroup("Sending request to the AI model",8),Ar(this.settings,"copilot_swe_agent_request_logging")){let ce=JSON.stringify(i,null,2),Me=JSON.stringify(G,null,2);this.logger.debug(`Request messages: ${ce}`),this.logger.debug(`Request options: ${Me}`)}B=i.map((ce,Me)=>Me===i.length-1?{...ce,copilot_cache_control:o}:ce),W=Date.now(),a.setAdditionalHeaders(Ze);let Ee;n?.stream?Ee=await this.makeRequestStreaming(a,r,B,G,d,A,n):Ee=await this.makeRequest(a,r,B,G,d,A,n),N=Date.now()-W,C=Ee.data,se={model:r,api_id:C.id,request_id:Ee.response.headers.get("x-github-request-id")||void 0,initiator:n?.requestHeaders?.["X-Initiator"]||Ze["X-Initiator"]};let Je={};Ee.response.headers.forEach((ce,Me)=>{if(Me.toLowerCase().startsWith(OHe)){let pI=IRt(ce);pI&&(Je[Me.replace(OHe,"")]=pI)}}),yield{kind:"model_call_success",turn:b,callId:n?.callId,modelCallDurationMs:N,modelCall:se,responseChunk:gte(C),responseUsage:C.usage,requestMessages:JSON.stringify(B),quotaSnapshots:Je},this.logger.debug(`response (Request-ID ${Ee.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(Ee.data,null,2))}catch(Ze){N=Date.now()-W;let Ee=Ze;evI(Ze)&&(Ee=tvI(Ze));let ce=D4.fromAPIError(Ee),Me=ce?.error;if(ce){yield{kind:"model_call_failure",turn:b,callId:n?.callId,modelCallDurationMs:N,requestMessages:JSON.stringify(B),modelCall:{model:r,status:ce.status,error:JSON.stringify(ce?.error||ce?.message||"unknown error"),api_id:ce.requestID||void 0,request_id:ce.headers?.get("x-github-request-id")||""}},O=ce;let fe=ce.ghRequestId||ce.headers?.get("x-github-request-id")||ce.requestID;this.logger.error(`error (Request-ID ${fe})`),this.logger.error(JSON.stringify(Tw(ce),null,2)),this.logger.debug(`Failed to get response from the AI model: ${ue(ce)}`),Me&&this.logger.debug(`Inner error: ${JSON.stringify(Tw(Me),null,2)}`);let zt;for(let JI of n?.processors?.onRequestError||[])zt=await JI.onRequestError({turn:b,retry:R,maxRetries:A,error:Me,modelInfo:s,getCompletionWithToolsOptions:n})||zt;let ut=ce.status,AI=ut?this.clientOptions.retryPolicy.errorCodesToRetry.some(JI=>Array.isArray(JI)?ut>=JI[0]&&(JI[1]===void 0||ut<=JI[1]):ut===JI):!1,dt;if(zt)dt=zt.retryAfter;else if(ce.status!==402){if(ce.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let JI=0;for(let Ne=i.length-1;Ne>=0;Ne--)Ku(i[Ne])&&(i.splice(Ne,1),JI++,yield{kind:"images_removed",turn:b,imagesRemoved:1,largeImagesRemoved:1});JI>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${xN(s.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${JI} image messages from the request`),dt=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof ce.status=="number"&&F.includes(ce.status)||AI)&&(dt=parseInt(ce.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+H,H*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,R==A-1))for(let JI=i.length-1;JI>=0;JI--)Ku(i[JI])&&(this.logger.debug(`Removing image message at index ${JI} to avoid failure`),i.splice(JI,1),yield{kind:"images_removed",turn:b,imagesRemoved:1})}if(dt!==void 0&&dt<=v){let JI=.8+Math.random()*.4,Ne=dt*JI;this.logger.debug(`Retrying after ${Ne} seconds...`),await new Promise(Jt=>setTimeout(Jt,Ne*1e3)),w+=Ne,this.logger.debug(`Retrying after ${dt} seconds... Will try again now!`);continue}else dt?this.logger.error(`Retry after ${dt} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let pI=ce||Ze;for(let fe of n?.processors?.onRequestError||[])await fe.preErrorThrow(Ze);throw this.logger.error("error"),this.logger.error(JSON.stringify(Tw(pI),null,2)),pI}finally{a.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!C&&R++<A);if(!C){this.logger.debug("Recent messages prior to failure:");for(let Ee=Math.max(0,i.length-6);Ee<i.length;Ee++)this.logger.debug(`${Ee}: ${JSON.stringify(i[Ee],null,2)}`);let Ze=new Error(`Failed to get response from the AI model; retried ${R-1} times (total retry wait time: ${w} seconds)`,{cause:O});throw this.isRateLimitExceededError(Ze)&&(this.logger.info(`Rate limit exceeded after ${R-1} retries, will fail job but skip Sentry reporting`),Ze.skipReport=!0),Ze}let we=new Map,Ye=C.choices||[];if(Ye.length===0){let Ze={role:"assistant",content:null,refusal:null};i.push(Ze),yield{kind:"message",turn:b,callId:n?.callId,modelCall:se,message:m5(MA(Ze))}}else for(let Ze of Ye.map(Ee=>Ee.message))Ze.tool_calls&&nvI(Ze.tool_calls,we),i.push(Ze),yield{kind:"message",turn:b,callId:n?.callId,modelCall:se,message:m5(MA(Ze))};if(this.isToolCallResponse(C)){let Ee=(s.capabilities.limits.max_prompt_tokens||s.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,Je=trt(r,Ee,this,this.settings,n?.abortSignal),Me=C.choices.filter(zt=>zt.message.tool_calls!==void 0).flatMap(zt=>zt.message.tool_calls||[]).filter(lo);for(let zt of n?.processors?.preToolsExecution||[]){let ut=await zt.preToolsExecution({turn:b,toolCalls:Me,modelInfo:s});if(ut)for(let[AI,dt]of ut)we.set(AI,dt)}let pI=Me.filter(zt=>!we.has(zt.id)),fe=this.mergeToolResults(we,Me,pI,c,Je,n?.executeToolsInParallel,n?.abortSignal);for await(let zt of fe){zt.toolResult.resultType==="rejected"&&(p=!0);let ut={role:"tool",tool_call_id:zt.originalCall.id,content:zt.toolResult.textResultForLlm};i.push(ut),yield{kind:"message",turn:b,callId:n?.callId,modelCall:se,message:m5(ut)},yield{kind:"tool_execution",turn:b,callId:n?.callId,toolCallId:zt.originalCall.id,toolResult:zt.toolResult,durationMs:zt.durationMs};for(let AI of n?.processors?.postToolExecution||[])await AI.postToolExecution({toolCall:zt.originalCall,toolResult:zt.toolResult,turn:b,modelInfo:s})}}else for(let Ze of C.choices.map(Ee=>Ee.message))yield{kind:"response",turn:b,callId:n?.callId,modelCall:{model:r,api_id:C.id},response:m5(MA(Ze))},h=!0}catch(B){let se;throw B instanceof Error&&B.cause&&B.cause instanceof D4?se=`${ue(B)} (Cause: ${ue(B.cause)})`:se=`${ue(B)}`,B instanceof TypeError&&se.includes("terminated")&&(this.logger.error(`Model call terminated unexpectedly during turn ${b}`),this.logger.error(`Serialized error: ${JSON.stringify(Tw(B),null,2)}`)),yield{kind:"turn_failed",model:r,modelInfo:s,turn:b,error:se,timestampMs:Date.now()},B}finally{let B=Date.now();yield{kind:"turn_ended",model:r,modelInfo:s,turn:b,timestampMs:B},b++}}}async*mergeToolResults(e,I,l,n,r,a=!1,s){for(let[c,o]of e){let i=I.find(d=>d.id===c);i&&(yield{durationMs:0,originalCall:i,toolResult:o})}l.length>0&&(yield*this.callTools(l,n,r,a,s))}async*callTools(e,I,l,n=!1,r){if(e.length===0)throw new Error("Tool call is missing");this.logger.debug(`Tool calls count: ${e.length}`);let a=e.some(c=>{let o=I[c.function.name];return mR(o)}),s=n&&!a;if(a&&n&&this.logger.debug("Custom agent detected in tool calls, forcing sequential execution"),s)this.logger.debug("Running tool calls in parallel"),yield*gMe(e.map(c=>()=>this.callTool(c,I,l)),r);else{this.logger.debug("Running tool calls sequentially");for(let c of e)r?.throwIfAborted(),yield await this.callTool(c,I,l)}}async callTool(e,I,l){let n=0,r=e?.function.name;if(!r)throw new Error("Tool name is missing");let a=e?.function.arguments;if(a==null)throw new Error("Tool call arguments are missing");let s=e?.id;if(!s)throw new Error("Tool call id is missing");let c,o=I[r];try{let i=q0(a);if(!o||!o.callback)c={textResultForLlm:`Tool '${r}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${r}' does not exist.`,sessionLog:`<error>Tool '${r}' does not exist.</error>`,toolTelemetry:{}};else{let d=o.callback,G=Date.now(),b={...l,toolCallId:s,toolOptions:this.settings.service?.tools?.[r]},h=await d({...i},b);n=Date.now()-G,c=typeof h=="string"?{textResultForLlm:h,resultType:"success",toolTelemetry:{}}:h}}catch(i){c={textResultForLlm:`Failed to execute \`${r}\` tool with arguments: ${a} due to error: ${ue(i)}`,resultType:"failure",error:i instanceof Error?i.message:`${ue(i)}`,sessionLog:`<error>Failed to execute \`${r}\` tool with arguments: ${a}</error>`,toolTelemetry:{}}}return{durationMs:n,originalCall:e,toolResult:c}}isToolCallResponse(e){return e.choices.find(I=>I.message.tool_calls!==void 0)!==void 0}isRateLimitExceededError(e){if(e instanceof Error){if(e.message?.includes("exceeded maximum number of retries")&&e.message?.includes("rate-limited requests"))return!0;if(e.message?.includes("Failed to get response from the AI model")&&e.cause instanceof D4)return e.cause.status===429}return!1}async getModel(){let e=this.clientOptions.model,I={id:e,name:e,capabilities:{supports:{vision:!1},limits:{max_prompt_tokens:9e4,max_context_window_tokens:128e3,vision:{max_prompt_image_size:3145728,max_prompt_images:1,supported_media_types:["image/jpeg","image/png","image/webp"]}}}};return(await(await this.clientPromise).listModels()).filter(a=>a.id===e).at(0)||I}}});var Yse,dgt=m(()=>{"use strict";Nse();K4();Yse=class extends pR{constructor(e,I,l){let n=new j4;super(n,e,I,l)}}});var P4,wve=m(()=>{"use strict";A2();ON();$z();Nse();P4=class extends pR{makeResponsesRequest(e,I,l,n,r,a,s,c){let o=l.find(p=>p.role==="system")?.content||"",i=Array.isArray(o)?o.join(`
|
|
1448
|
+
${ue(G)}`)}a=!!(r||n)}let s,c=qke(e),o=HL(e),i=e.api?.copilot?.sessionId??nW(e);if(I.debug(`Using Copilot API at ${c} with integration ID ${o}`),n&&(I.debug("Using GitHub OAuth token for Copilot API"),s=TY.createWithOAuthToken(I,c,o,n,i,l?.requestHeaders,l?.disableHttpLogging,e)),r){I.debug("Using Copilot HMAC key for Copilot API");let d=process.env.GITHUB_USER_ID;d?I.debug(`Using user ID ${d} for Copilot HMAC key`):I.debug("No user ID provided for Copilot HMAC key"),s=TY.createWithHmac(I,c,o,r,i,d,l?.requestHeaders,l?.disableHttpLogging,e)}if(s===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return s}},D4=class t extends ba{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.cause=e.cause,this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof ba)))return new t(e)}}});function evI(t){let e=t,I=!1;for(;e;){if(typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"&&(e instanceof TypeError&&e.message.includes("terminated")&&(I=!0),"name"in e&&e.name==="TypeError"&&e.message.includes("terminated")&&(I=!0),e.message.includes("GOAWAY")||e.message.includes("UND_ERR_SOCKET")))return!0;e=typeof e=="object"&&e!==null&&"cause"in e?e.cause:void 0}return I}function tvI(t){let e=new Ot.APIError(503,{error:{message:"HTTP/2 GOAWAY connection terminated",type:"connection_error"}},"HTTP/2 GOAWAY connection terminated",new Headers);return e.cause=t,e}function IvI(t){let e=0;return t.choices?.forEach(I=>{e+=new TextEncoder().encode(I.delta?.content??"").length,I.delta?.tool_calls?.forEach(l=>{l.function&&(e+=new TextEncoder().encode(l.function.name).length,e+=new TextEncoder().encode(l.function.arguments??"").length)})}),e}function lvI(t,e){let I=new Map,l=new Set;return new gm(async function*(){for await(let n of t)n.choices?.forEach(r=>{if(r.delta){let s=!!(r.delta.content||r.delta.tool_calls?.length||r.delta.refusal),c=!l.has(r.index);!r.delta.role&&(s||c)&&(r.delta.role="assistant",l.add(r.index))}if(!!r.delta?.tool_calls?.length){r.delta&&!r.delta.role&&(r.delta.role="assistant",l.add(r.index)),r.finish_reason??="tool_calls";let s=I.get(r.index);s||(s={nextSequenceNumber:0,mappings:new Map},I.set(r.index,s)),r.delta.tool_calls?.forEach(c=>{let o=s.mappings.get(c.index);if(o!==void 0)c.id&&o.callId!==c.id&&(o.sequenceNumber=s.nextSequenceNumber++,o.callId=c.id),c.index=o.sequenceNumber;else{let i={callId:c.id,sequenceNumber:s.nextSequenceNumber++};s.mappings.set(c.index,i),c.index=i.sequenceNumber}})}}),yield n},t.controller,e)}function nvI(t,e){t.forEach(I=>{I.function.name=I.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_");try{q0(I.function.arguments)}catch(l){if(l instanceof SyntaxError){let n=I.function.name,r=I.function.arguments;e.set(I.id,{textResultForLlm:`The arguments for the tool call '${n}' were not valid JSON. The arguments have been cleared. Arguments: ${r}. JSON parse error: ${l.message}`,resultType:"failure",error:`${l.message}`,sessionLog:`<error>Failed to execute \`${n}\` tool with arguments: ${r} due to syntax error: ${l.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}}),I.function.arguments="{}"}}})}var $HI,pR,Nse=m(()=>{"use strict";_T();K0t();fae();zHe();A2();$T();EI();gT();ON();eU();RG();Si();no();$z();SHe();lRt();K4();KH();ly();$HI={type:"ephemeral"};pR=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),l.info(" "),l.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(I,l,n),this.modelPromise=this.clientPromise.then(async()=>{let r=await this.getModel();return l.debug(`Got model info: ${JSON.stringify(r,null,2)}`),r})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||$ae["sweagent-capi"],toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??180}},thinkingMode:e?.thinkingMode??!1,requestHeaders:e?.requestHeaders??{},disableHttpLogging:e?.disableHttpLogging??!1,enableCacheControl:e?.enableCacheControl??!1}}getCompletionOptions(e,I){let l={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:I?.toolChoice,...l}}makeRequest(e,I,l,n,r,a,s){return e.chat.completions.create({model:I,messages:[...l],...n,tools:r},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}async makeRequestStreaming(e,I,l,n,r,a,s){let c=await e.chat.completions.create({model:I,messages:[...l],...n,tools:r,stream:!0,stream_options:{include_usage:!0}},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse(),o=lvI(c.data,e).toReadableStream(),i=UY.fromReadableStream(o),d=s?.processors?.onStreamingChunk;if(d?.length){let G=Es();for await(let b of i){s?.abortSignal?.throwIfAborted();let h=b.choices?.[0],p={content:h?.delta?.content??void 0,reportIntentArguments:void 0,size:IvI(b),streamingId:G};if(h?.delta?.tool_calls){for(let u of h.delta.tool_calls)if(u.function?.name===Uu&&u.function?.arguments){p.reportIntentArguments=u.function.arguments;break}}if(p.content||p.reportIntentArguments||p.size>0)for(let u of d)u.onStreamingChunk(p)}}return{data:await i.finalChatCompletion(),response:c.response,request_id:c.request_id}}async*getCompletionWithTools(e,I,l,n){let r=this.model,a=await this.clientPromise,s=await this.modelPromise,c=$C(l),o=this.clientOptions.enableCacheControl?$HI:void 0,i=[{role:"system",content:e,copilot_cache_control:o},...I.map(u=>m5(u))],d=l.map((u,W)=>({type:"function",function:{name:u.name,description:u.description,parameters:u.input_schema},copilot_cache_control:W===l.length-1?o:void 0}));this.logger.startGroup("Completion request configuration: ",8),this.logger.debug("Client options: "),this.logger.debug(JSON.stringify(this.clientOptions,null,2)),this.logger.debug("Request options: "),this.logger.debug(JSON.stringify(n??{},null,2)),this.logger.debug("Tools: "),this.logger.debug(JSON.stringify(d,null,2)),this.logger.endGroup(8);let G=this.getCompletionOptions(l,n),b=n?.initialTurnCount!==void 0?n.initialTurnCount+1:0,h=!1,p=!1;for(;!h&&!p;){let u=Date.now();yield{kind:"turn_started",model:r,modelInfo:s,turn:b,timestampMs:u};let W=0,N=0,R=0,F=[429,503,500,400],A=this.clientOptions.retryPolicy.maxRetries,H=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,w=0,v=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,C,O;try{let B=[],se;do{R>0&&(yield{kind:"turn_retry",model:r,modelInfo:s,turn:b,timestampMs:Date.now()});try{let Ze={};for(let ce of n?.processors?.preRequest||[]){let Me=ce.preRequest({turn:b,retry:R,messages:i,toolDefinitions:d,modelInfo:s,additionalRequestHeaders:Ze,getCompletionWithToolsOptions:n});for await(let pI of Me)yield pI}if(this.logger.startGroup("Sending request to the AI model",8),Ar(this.settings,"copilot_swe_agent_request_logging")){let ce=JSON.stringify(i,null,2),Me=JSON.stringify(G,null,2);this.logger.debug(`Request messages: ${ce}`),this.logger.debug(`Request options: ${Me}`)}B=i.map((ce,Me)=>Me===i.length-1?{...ce,copilot_cache_control:o}:ce),W=Date.now(),a.setAdditionalHeaders(Ze);let Ee;n?.stream?Ee=await this.makeRequestStreaming(a,r,B,G,d,A,n):Ee=await this.makeRequest(a,r,B,G,d,A,n),N=Date.now()-W,C=Ee.data,se={model:r,api_id:C.id,request_id:Ee.response.headers.get("x-github-request-id")||void 0,initiator:n?.requestHeaders?.["X-Initiator"]||Ze["X-Initiator"]};let Je={};Ee.response.headers.forEach((ce,Me)=>{if(Me.toLowerCase().startsWith(OHe)){let pI=IRt(ce);pI&&(Je[Me.replace(OHe,"")]=pI)}}),yield{kind:"model_call_success",turn:b,callId:n?.callId,modelCallDurationMs:N,modelCall:se,responseChunk:gte(C),responseUsage:C.usage,requestMessages:JSON.stringify(B),quotaSnapshots:Je},this.logger.debug(`response (Request-ID ${Ee.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(Ee.data,null,2))}catch(Ze){N=Date.now()-W;let Ee=Ze;evI(Ze)&&(Ee=tvI(Ze));let ce=D4.fromAPIError(Ee),Me=ce?.error;if(ce){yield{kind:"model_call_failure",turn:b,callId:n?.callId,modelCallDurationMs:N,requestMessages:JSON.stringify(B),modelCall:{model:r,status:ce.status,error:JSON.stringify(ce?.error||ce?.message||"unknown error"),api_id:ce.requestID||void 0,request_id:ce.headers?.get("x-github-request-id")||""}},O=ce;let fe=ce.ghRequestId||ce.headers?.get("x-github-request-id")||ce.requestID;this.logger.error(`error (Request-ID ${fe})`),this.logger.error(JSON.stringify(Tw(ce),null,2)),this.logger.debug(`Failed to get response from the AI model: ${ue(ce)}`),Me&&this.logger.debug(`Inner error: ${JSON.stringify(Tw(Me),null,2)}`);let zt;for(let JI of n?.processors?.onRequestError||[])zt=await JI.onRequestError({turn:b,retry:R,maxRetries:A,error:Me,modelInfo:s,getCompletionWithToolsOptions:n})||zt;let ut=ce.status,AI=ut?this.clientOptions.retryPolicy.errorCodesToRetry.some(JI=>Array.isArray(JI)?ut>=JI[0]&&(JI[1]===void 0||ut<=JI[1]):ut===JI):!1,dt;if(zt)dt=zt.retryAfter;else if(ce.status!==402){if(ce.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let JI=0;for(let Ne=i.length-1;Ne>=0;Ne--)Ku(i[Ne])&&(i.splice(Ne,1),JI++,yield{kind:"images_removed",turn:b,imagesRemoved:1,largeImagesRemoved:1});JI>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${xN(s.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${JI} image messages from the request`),dt=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof ce.status=="number"&&F.includes(ce.status)||AI)&&(dt=parseInt(ce.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+H,H*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,R==A-1))for(let JI=i.length-1;JI>=0;JI--)Ku(i[JI])&&(this.logger.debug(`Removing image message at index ${JI} to avoid failure`),i.splice(JI,1),yield{kind:"images_removed",turn:b,imagesRemoved:1})}if(dt!==void 0&&dt<=v){let JI=.8+Math.random()*.4,Ne=dt*JI;this.logger.debug(`Retrying after ${Ne} seconds...`),await new Promise(Jt=>setTimeout(Jt,Ne*1e3)),w+=Ne,this.logger.debug(`Retrying after ${dt} seconds... Will try again now!`);continue}else dt?this.logger.error(`Retry after ${dt} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let pI=ce||Ze;for(let fe of n?.processors?.onRequestError||[])await fe.preErrorThrow(Ze);throw this.logger.error("error"),this.logger.error(JSON.stringify(Tw(pI),null,2)),pI}finally{a.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!C&&R++<A);if(!C){this.logger.debug("Recent messages prior to failure:");for(let Ee=Math.max(0,i.length-6);Ee<i.length;Ee++)this.logger.debug(`${Ee}: ${JSON.stringify(i[Ee],null,2)}`);let Ze=new Error(`Failed to get response from the AI model; retried ${R-1} times (total retry wait time: ${w} seconds)`,{cause:O});throw this.isRateLimitExceededError(Ze)&&(this.logger.info(`Rate limit exceeded after ${R-1} retries, will fail job but skip Sentry reporting`),Ze.skipReport=!0),Ze}let we=new Map,Ye=C.choices||[];if(Ye.length===0){let Ze={role:"assistant",content:null,refusal:null};i.push(Ze),yield{kind:"message",turn:b,callId:n?.callId,modelCall:se,message:m5(MA(Ze))}}else for(let Ze of Ye.map(Ee=>Ee.message))Ze.tool_calls&&nvI(Ze.tool_calls,we),i.push(Ze),yield{kind:"message",turn:b,callId:n?.callId,modelCall:se,message:m5(MA(Ze))};if(this.isToolCallResponse(C)){let Ee=(s.capabilities.limits.max_prompt_tokens||s.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,Je=trt(r,Ee,this,this.settings,n?.abortSignal),Me=C.choices.filter(zt=>zt.message.tool_calls!==void 0).flatMap(zt=>zt.message.tool_calls||[]).filter(lo);for(let zt of n?.processors?.preToolsExecution||[]){let ut=await zt.preToolsExecution({turn:b,toolCalls:Me,modelInfo:s});if(ut)for(let[AI,dt]of ut)we.set(AI,dt)}let pI=Me.filter(zt=>!we.has(zt.id)),fe=this.mergeToolResults(we,Me,pI,c,Je,n?.executeToolsInParallel,n?.abortSignal);for await(let zt of fe){zt.toolResult.resultType==="rejected"&&(p=!0);let ut={role:"tool",tool_call_id:zt.originalCall.id,content:zt.toolResult.textResultForLlm};i.push(ut),yield{kind:"message",turn:b,callId:n?.callId,modelCall:se,message:m5(ut)},yield{kind:"tool_execution",turn:b,callId:n?.callId,toolCallId:zt.originalCall.id,toolResult:zt.toolResult,durationMs:zt.durationMs};for(let AI of n?.processors?.postToolExecution||[])await AI.postToolExecution({toolCall:zt.originalCall,toolResult:zt.toolResult,turn:b,modelInfo:s})}}else for(let Ze of C.choices.map(Ee=>Ee.message))yield{kind:"response",turn:b,callId:n?.callId,modelCall:{model:r,api_id:C.id},response:m5(MA(Ze))},h=!0}catch(B){let se;throw B instanceof Error&&B.cause&&B.cause instanceof D4?se=`${ue(B)} (Cause: ${ue(B.cause)})`:se=`${ue(B)}`,B instanceof TypeError&&se.includes("terminated")&&(this.logger.error(`Model call terminated unexpectedly during turn ${b}`),this.logger.error(`Serialized error: ${JSON.stringify(Tw(B),null,2)}`)),yield{kind:"turn_failed",model:r,modelInfo:s,turn:b,error:se,timestampMs:Date.now()},B}finally{let B=Date.now();yield{kind:"turn_ended",model:r,modelInfo:s,turn:b,timestampMs:B},b++}}}async*mergeToolResults(e,I,l,n,r,a=!1,s){for(let[c,o]of e){let i=I.find(d=>d.id===c);i&&(yield{durationMs:0,originalCall:i,toolResult:o})}l.length>0&&(yield*this.callTools(l,n,r,a,s))}async*callTools(e,I,l,n=!1,r){if(e.length===0)throw new Error("Tool call is missing");this.logger.debug(`Tool calls count: ${e.length}`);let a=e.some(c=>{let o=I[c.function.name];return mR(o)}),s=n&&!a;if(a&&n&&this.logger.debug("Custom agent detected in tool calls, forcing sequential execution"),s)this.logger.debug("Running tool calls in parallel"),yield*gMe(e.map(c=>()=>this.callTool(c,I,l)),r);else{this.logger.debug("Running tool calls sequentially");for(let c of e)r?.throwIfAborted(),yield await this.callTool(c,I,l)}}async callTool(e,I,l){let n=0,r=e?.function.name;if(!r)throw new Error("Tool name is missing");let a=e?.function.arguments;if(a==null)throw new Error("Tool call arguments are missing");let s=e?.id;if(!s)throw new Error("Tool call id is missing");let c,o=I[r];try{let i=q0(a);if(!o||!o.callback)c={textResultForLlm:`Tool '${r}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${r}' does not exist.`,sessionLog:`<error>Tool '${r}' does not exist.</error>`,toolTelemetry:{}};else{let d=o.callback,G=Date.now(),b={...l,toolCallId:s,toolOptions:this.settings.service?.tools?.[r]},h=await d({...i},b);n=Date.now()-G,c=typeof h=="string"?{textResultForLlm:h,resultType:"success",toolTelemetry:{}}:h}}catch(i){c={textResultForLlm:`Failed to execute \`${r}\` tool with arguments: ${a} due to error: ${ue(i)}`,resultType:"failure",error:i instanceof Error?i.message:`${ue(i)}`,sessionLog:`<error>Failed to execute \`${r}\` tool with arguments: ${a}</error>`,toolTelemetry:{}}}return{durationMs:n,originalCall:e,toolResult:c}}isToolCallResponse(e){return e.choices.find(I=>I.message.tool_calls!==void 0)!==void 0}isRateLimitExceededError(e){if(e instanceof Error){if(e.message?.includes("exceeded maximum number of retries")&&e.message?.includes("rate-limited requests"))return!0;if(e.message?.includes("Failed to get response from the AI model")&&e.cause instanceof D4)return e.cause.status===429}return!1}async getModel(){let e=this.clientOptions.model,I={id:e,name:e,capabilities:{supports:{vision:!1},limits:{max_prompt_tokens:9e4,max_context_window_tokens:128e3,vision:{max_prompt_image_size:3145728,max_prompt_images:1,supported_media_types:["image/jpeg","image/png","image/webp"]}}}};return(await(await this.clientPromise).listModels()).filter(a=>a.id===e).at(0)||I}}});var Yse,dgt=m(()=>{"use strict";Nse();K4();Yse=class extends pR{constructor(e,I,l){let n=new j4;super(n,e,I,l)}}});var P4,wve=m(()=>{"use strict";A2();ON();$z();Nse();P4=class extends pR{makeResponsesRequest(e,I,l,n,r,a,s,c){let o=l.find(p=>p.role==="system")?.content||"",i=Array.isArray(o)?o.join(`
|
|
1449
1449
|
`):o,G=l.filter(p=>p.role!=="system").flatMap(aot),b=r.filter(p=>p.type==="function").map(p=>({name:p.function.name,description:p.function.description,parameters:p.function.parameters||null,strict:!1,type:"function"}));this.logger.debug(`Making responses request with input: ${JSON.stringify(G,null,2)}`);let h={summary:"auto",effort:"medium"};return e.responses.create({model:I,previous_response_id:void 0,instructions:i,input:G,parallel_tool_calls:r.length>0?!0:void 0,tools:b,reasoning:h,store:!1,...c?{stream:!0}:{},include:["reasoning.encrypted_content"]},{maxRetries:a||this.clientOptions.retryPolicy.maxRetries,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}makeRequest(e,I,l,n,r,a,s){return this.makeResponsesRequest(e,I,l,n,r,a,s).then(c=>lRe(c))}async makeRequestStreaming(e,I,l,n,r,a,s){let c=await this.makeResponsesRequest(e,I,l,n,r,a,s,!0),o=null,i=new Map,d=0,G=new Set,b="",h=!1,p=s?.processors?.onStreamingChunk;try{let u=c.request_id??Es();for await(let W of c.data){if(s?.abortSignal?.throwIfAborted(),W.type==="response.completed"){o=W.response;continue}let N={content:void 0,reportIntentArguments:void 0,size:0,streamingId:u};if(W.type==="response.output_text.delta"&&(N.size+=new TextEncoder().encode(W.delta).length,N.content=W.delta),W.type==="response.reasoning_summary_part.added"&&(h&&b.length>0&&(b+=`
|
|
1450
1450
|
|
|
1451
1451
|
`,N.size+=new TextEncoder().encode(`
|
|
@@ -1683,9 +1683,9 @@ ${r}`;await n.createOrUpdateMCPStartupToolCall({serverName:e,content:c,toolNames
|
|
|
1683
1683
|
command: ${r.command}
|
|
1684
1684
|
args: ${r.args.join(" ")}
|
|
1685
1685
|
cwd: ${r.cwd}`);try{let a={...r,env:n};await this.registry.startLocalMcpClient(e,a),this.logger.log(`Started MCP client for ${e}`)}catch(a){throw this.logger.error(`Failed to start MCP client for ${e}: ${ue(a)}`),a}}convertPythonToPipx(e){if(!e||!e.args||e.args.length===0)return e;let I=e.args;if(I.length>1e3)throw new Error("Too many arguments provided to Python command");let l=I.indexOf("-m");if(l===-1||l===I.length-1)throw new Error("Python command with -m flag must specify a module");let n=I[l+1];this.logger.log(`Converting Python module: ${n} to pipx command`);let r=["run",n];for(let a=l+2;a<I.length;a++)r.push(I[a]);for(let a=0;a<l;a++)r.push(I[a]);return{...e,command:"pipx",args:r}}buildEnvironment(e){let I={};if(e.env)if(this.envValueMode==="direct")for(let[l,n]of Object.entries(e.env))I[l]=XR.resolveString(n,process.env);else for(let[l,n]of Object.entries(e.env)){let r=n.trim(),a=r;if(r.includes("$")&&(a=XR.resolveString(r,process.env)),a!==r){I[l]=a;continue}process.env[r]!==void 0&&(I[l]=process.env[r])}return I}async processServers(e){if(!e)throw new Error("No servers to process");let I=Object.entries(e.mcpServers).map(([l,n])=>this.processServer(l,n));await Promise.all(I)}async processServer(e,I){if(e=e.replace(/\//g,"__"),!this.validateServerConfig(e,I)){this.logger.error(`Skipping server "${e}" due to invalid configuration.`);return}xz.includes(e)||await this.sessionClient?.createOrUpdateMCPStartupToolCall({serverName:e});try{vC(I)?await this.processLocalServer(e,I):Bz(I)&&this.remoteEnabled?await this.processHttpServer(e,I):zz(I)&&this.remoteEnabled?await this.processSseServer(e,I):Uz(I)&&await this.processInMemoryServer(e,I)}catch(l){xz.includes(e)||await this.logServerFailure(e,l)}}async logServerFailure(e,I){if(this.sessionClient)try{await this.sessionClient.createOrUpdateMCPStartupToolCall({serverName:e,content:`<error>MCP server failed to start: ${I.message} - for the full output, see the verbose logs</error>`})}catch(l){this.logger.error(`Failed to log failure for MCP Server '${e}': '${ue(l)}'`)}}}});var Jf,PJe=m(()=>{"use strict";nN();TRe();qEt();$Et();EI();Jf=class{constructor(e,I,l,n="indirect"){this.logger=e;let r;if(typeof I=="string"){if(r=JSON.parse(I),typeof r!="object")throw new Error("Invalid MCP configuration: must be an object");if(r===null||!("mcpServers"in r)||typeof r.mcpServers!="object")throw new Error("Invalid MCP configuration: missing or invalid mcpServers property");this.config=r}else this.config=I;this.disabledServers=new Set(l||[]),this.registry=new coe(this.logger,void 0,void 0,n),this.registry.setToolsChangedCallback(a=>{this.handleToolsChanged(a)}),this.processor=new ooe(this.logger,this.registry,{mcp3pEnabled:!0,remoteEnabled:!0})}registry;processor;config;startServersPromise=null;transport=null;disabledServers;async handleToolsChanged(e){if(this.logger.log(`Handling tools changed notification for ${e}`),this.transport){let I=this.registry.clients[e];I?await this.transport.refreshProvider({mcpClient:I,clientName:e,tools:this.config.mcpServers[e]?.tools||["*"],filterMapping:this.config.mcpServers[e]?.filterMapping||"hidden_characters"}):this.logger.log(`No client found for ${e}, cannot refresh`)}}async startServers(){return this.startServersPromise||(this.startServersPromise=this.processServersWithExtensions()),this.startServersPromise}async injectDefaultServers(e){}async processServersWithExtensions(){await this.injectDefaultServers(this.config);let e;if(this.disabledServers.size>0){let I={};for(let[l,n]of Object.entries(this.config.mcpServers))this.disabledServers.has(l)?this.logger.log(`Skipping disabled MCP server: ${l}`):I[l]=n;e={...this.config,mcpServers:I}}else e=this.config;return this.processor.processServers(e)}async stopServers(){for(let[e,I]of Object.entries(this.registry.transports))try{await I.close()}catch(l){this.logger.error(`Error closing transport for ${e}: ${ue(l)}`)}this.startServersPromise=null,this.transport=null}async getTools(e,I,l){await this.startServers(),this.transport||(this.transport=new TU(e,I,!0));let n=[];for(let r of Object.keys(this.registry.clients)){let a=await this.transport.loadTools({mcpClient:this.registry.clients[r],clientName:r,tools:this.config.mcpServers[r]?.tools||["*"],filterMapping:this.config.mcpServers[r]?.filterMapping||"hidden_characters",timeout:this.config.mcpServers[r]?.timeout},l);n.push(...a)}return n}getConfig(){return this.config}getClients(){return this.registry.clients}async startServer(e,I){await this.startServers(),this.config.mcpServers[e]=I,await this.processor.processServer(e,I),this.transport=null}async stopServer(e){let I=this.registry.transports[e];if(I)try{await I.close(),delete this.registry.transports[e]}catch(l){this.logger.error(`Error closing transport for ${e}: ${ue(l)}`)}this.registry.clients[e]&&delete this.registry.clients[e],this.transport=null}async restartServer(e,I){this.isServerRunning(e)&&await this.stopServer(e),delete this.config.mcpServers[e],await this.startServer(e,I)}isServerRunning(e){return e in this.registry.transports&&e in this.registry.clients}isServerDisabled(e){return this.disabledServers.has(e)}async disableServer(e){if(this.disabledServers.has(e)){this.logger.log(`Server ${e} is already disabled`);return}this.disabledServers.add(e),this.logger.log(`Disabled server ${e} for this session`),this.isServerRunning(e)&&await this.stopServer(e),this.transport=null}async enableServer(e){if(!this.disabledServers.has(e)){this.logger.log(`Server ${e} is not disabled`);return}this.disabledServers.delete(e),this.logger.log(`Enabled server ${e} for this session`);let I=this.getServerConfig(e);I?await this.startServer(e,I):await this.startBuiltInServer(e),this.transport=null}async startBuiltInServer(e){}getServerConfig(e){return this.config.mcpServers[e]}}});var e1t,ioe,t1t=m(()=>{"use strict";e1t=fI(jf(),1);PJe();EI();ioe=class{hosts=new Map;logger;constructor(e){this.logger=e}async getOrCreateHost(e,I){if(!I||Object.keys(I).length===0)return;let l=this.hosts.get(e);if(l)return l;try{let n={mcpServers:I},r=new Jf(this.logger,n);return await r.startServers(),this.hosts.set(e,r),this.logger.info(`Started ${Object.keys(I).length} MCP server(s) for ${e}`),r}catch(n){this.logger.error(`Failed to start MCP servers for ${e}: ${ue(n)}`);return}}getHost(e){return this.hosts.get(e)}async cleanup(){let e=[];for(let[I,l]of this.hosts.entries())e.push(l.stopServers().catch(n=>{this.logger.error(`Error stopping MCP host for ${I}: ${n}`)}));await Promise.all(e),this.hosts.clear()}size(){return this.hosts.size}}});async function l1t(t,e,I,l){if(Dw())return{type:"success",list:[]};try{if(I.type==="hmac"){let o=await TY.createWithHmac(t,XL,l,I.hmac,e).listModels();return{type:"success",list:o.filter(i=>tm(i.id,o))}}let n=await Im(I);if(!n)return{type:"noauth"};let r=await g2(I.host,n,t),s=await TY.createWithOAuthToken(t,r,l,n,e).listModels();return{type:"success",list:s.filter(c=>tm(c.id,s))}}catch(n){return{type:"error",error:n}}}var I1t,n1t=m(()=>{"use strict";I1t=fI(jf(),1);K4();Mc();F2();QA();XA()});function qJe(t){return t.includes("not licensed to use Copilot")?{kind:"not-licensed",message:u9I}:t.includes("not authorized to use this Copilot feature")?{kind:"not-authorized",message:Z9I}:t.includes("Personal Access Token does not have Copilot Requests")?{kind:"not-authorized",message:W9I}:null}var u9I,Z9I,W9I,r1t=m(()=>{"use strict";u9I="You are not licensed to use Copilot.",Z9I="You are not authorized to use this Copilot feature, it requires an enterprise or organization policy to be enabled.",W9I="The provided personal access token (PAT) does not have Copilot Requests permission. Please generate a new Fine-Grained Access Token with Copilot Requests permission (not a Classic token), or log in using /login"});var C1t=y((ZD,ff)=>{var N9I=200,h1t="__lodash_hash_undefined__",Y9I=800,V9I=16,p1t=9007199254740991,u1t="[object Arguments]",y9I="[object Array]",R9I="[object AsyncFunction]",g9I="[object Boolean]",F9I="[object Date]",A9I="[object Error]",Z1t="[object Function]",Q9I="[object GeneratorFunction]",w9I="[object Map]",X9I="[object Number]",E9I="[object Null]",W1t="[object Object]",H9I="[object Proxy]",v9I="[object RegExp]",C9I="[object Set]",J9I="[object String]",f9I="[object Undefined]",L9I="[object WeakMap]",k9I="[object ArrayBuffer]",x9I="[object DataView]",B9I="[object Float32Array]",z9I="[object Float64Array]",U9I="[object Int8Array]",S9I="[object Int16Array]",O9I="[object Int32Array]",M9I="[object Uint8Array]",T9I="[object Uint8ClampedArray]",j9I="[object Uint16Array]",D9I="[object Uint32Array]",K9I=/[\\^$.*+?()[\]{}|]/g,P9I=/^\[object .+?Constructor\]$/,q9I=/^(?:0|[1-9]\d*)$/,Rr={};Rr[B9I]=Rr[z9I]=Rr[U9I]=Rr[S9I]=Rr[O9I]=Rr[M9I]=Rr[T9I]=Rr[j9I]=Rr[D9I]=!0;Rr[u1t]=Rr[y9I]=Rr[k9I]=Rr[g9I]=Rr[x9I]=Rr[F9I]=Rr[A9I]=Rr[Z1t]=Rr[w9I]=Rr[X9I]=Rr[W1t]=Rr[v9I]=Rr[C9I]=Rr[J9I]=Rr[L9I]=!1;var N1t=typeof global=="object"&&global&&global.Object===Object&&global,_9I=typeof self=="object"&&self&&self.Object===Object&&self,YD=N1t||_9I||Function("return this")(),Y1t=typeof ZD=="object"&&ZD&&!ZD.nodeType&&ZD,WD=Y1t&&typeof ff=="object"&&ff&&!ff.nodeType&&ff,V1t=WD&&WD.exports===Y1t,_Je=V1t&&N1t.process,a1t=(function(){try{var t=WD&&WD.require&&WD.require("util").types;return t||_Je&&_Je.binding&&_Je.binding("util")}catch{}})(),s1t=a1t&&a1t.isTypedArray;function $9I(t,e,I){switch(I.length){case 0:return t.call(e);case 1:return t.call(e,I[0]);case 2:return t.call(e,I[0],I[1]);case 3:return t.call(e,I[0],I[1],I[2])}return t.apply(e,I)}function eBI(t,e){for(var I=-1,l=Array(t);++I<t;)l[I]=e(I);return l}function tBI(t){return function(e){return t(e)}}function IBI(t,e){return t?.[e]}function lBI(t,e){return function(I){return t(e(I))}}var nBI=Array.prototype,rBI=Function.prototype,boe=Object.prototype,$Je=YD["__core-js_shared__"],moe=rBI.toString,t2=boe.hasOwnProperty,c1t=(function(){var t=/[^.]+$/.exec($Je&&$Je.keys&&$Je.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})(),y1t=boe.toString,aBI=moe.call(Object),sBI=RegExp("^"+moe.call(t2).replace(K9I,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),doe=V1t?YD.Buffer:void 0,o1t=YD.Symbol,i1t=YD.Uint8Array,d1t=doe?doe.allocUnsafe:void 0,R1t=lBI(Object.getPrototypeOf,Object),G1t=Object.create,cBI=boe.propertyIsEnumerable,oBI=nBI.splice,pX=o1t?o1t.toStringTag:void 0,Goe=(function(){try{var t=r4e(Object,"defineProperty");return t({},"",{}),t}catch{}})(),iBI=doe?doe.isBuffer:void 0,b1t=Math.max,dBI=Date.now,g1t=r4e(YD,"Map"),ND=r4e(Object,"create"),GBI=(function(){function t(){}return function(e){if(!ZX(e))return{};if(G1t)return G1t(e);t.prototype=e;var I=new t;return t.prototype=void 0,I}})();function uX(t){var e=-1,I=t==null?0:t.length;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function bBI(){this.__data__=ND?ND(null):{},this.size=0}function mBI(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}function hBI(t){var e=this.__data__;if(ND){var I=e[t];return I===h1t?void 0:I}return t2.call(e,t)?e[t]:void 0}function pBI(t){var e=this.__data__;return ND?e[t]!==void 0:t2.call(e,t)}function uBI(t,e){var I=this.__data__;return this.size+=this.has(t)?0:1,I[t]=ND&&e===void 0?h1t:e,this}uX.prototype.clear=bBI;uX.prototype.delete=mBI;uX.prototype.get=hBI;uX.prototype.has=pBI;uX.prototype.set=uBI;function I2(t){var e=-1,I=t==null?0:t.length;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function ZBI(){this.__data__=[],this.size=0}function WBI(t){var e=this.__data__,I=hoe(e,t);if(I<0)return!1;var l=e.length-1;return I==l?e.pop():oBI.call(e,I,1),--this.size,!0}function NBI(t){var e=this.__data__,I=hoe(e,t);return I<0?void 0:e[I][1]}function YBI(t){return hoe(this.__data__,t)>-1}function VBI(t,e){var I=this.__data__,l=hoe(I,t);return l<0?(++this.size,I.push([t,e])):I[l][1]=e,this}I2.prototype.clear=ZBI;I2.prototype.delete=WBI;I2.prototype.get=NBI;I2.prototype.has=YBI;I2.prototype.set=VBI;function Lf(t){var e=-1,I=t==null?0:t.length;for(this.clear();++e<I;){var l=t[e];this.set(l[0],l[1])}}function yBI(){this.size=0,this.__data__={hash:new uX,map:new(g1t||I2),string:new uX}}function RBI(t){var e=uoe(this,t).delete(t);return this.size-=e?1:0,e}function gBI(t){return uoe(this,t).get(t)}function FBI(t){return uoe(this,t).has(t)}function ABI(t,e){var I=uoe(this,t),l=I.size;return I.set(t,e),this.size+=I.size==l?0:1,this}Lf.prototype.clear=yBI;Lf.prototype.delete=RBI;Lf.prototype.get=gBI;Lf.prototype.has=FBI;Lf.prototype.set=ABI;function kf(t){var e=this.__data__=new I2(t);this.size=e.size}function QBI(){this.__data__=new I2,this.size=0}function wBI(t){var e=this.__data__,I=e.delete(t);return this.size=e.size,I}function XBI(t){return this.__data__.get(t)}function EBI(t){return this.__data__.has(t)}function HBI(t,e){var I=this.__data__;if(I instanceof I2){var l=I.__data__;if(!g1t||l.length<N9I-1)return l.push([t,e]),this.size=++I.size,this;I=this.__data__=new Lf(l)}return I.set(t,e),this.size=I.size,this}kf.prototype.clear=QBI;kf.prototype.delete=wBI;kf.prototype.get=XBI;kf.prototype.has=EBI;kf.prototype.set=HBI;function vBI(t,e){var I=l4e(t),l=!I&&I4e(t),n=!I&&!l&&w1t(t),r=!I&&!l&&!n&&E1t(t),a=I||l||n||r,s=a?eBI(t.length,String):[],c=s.length;for(var o in t)(e||t2.call(t,o))&&!(a&&(o=="length"||n&&(o=="offset"||o=="parent")||r&&(o=="buffer"||o=="byteLength"||o=="byteOffset")||A1t(o,c)))&&s.push(o);return s}function e4e(t,e,I){(I!==void 0&&!Zoe(t[e],I)||I===void 0&&!(e in t))&&n4e(t,e,I)}function CBI(t,e,I){var l=t[e];(!(t2.call(t,e)&&Zoe(l,I))||I===void 0&&!(e in t))&&n4e(t,e,I)}function hoe(t,e){for(var I=t.length;I--;)if(Zoe(t[I][0],e))return I;return-1}function n4e(t,e,I){e=="__proto__"&&Goe?Goe(t,e,{configurable:!0,enumerable:!0,value:I,writable:!0}):t[e]=I}var JBI=DBI();function poe(t){return t==null?t===void 0?f9I:E9I:pX&&pX in Object(t)?KBI(t):tzI(t)}function m1t(t){return VD(t)&&poe(t)==u1t}function fBI(t){if(!ZX(t)||$BI(t))return!1;var e=s4e(t)?sBI:P9I;return e.test(rzI(t))}function LBI(t){return VD(t)&&X1t(t.length)&&!!Rr[poe(t)]}function kBI(t){if(!ZX(t))return ezI(t);var e=Q1t(t),I=[];for(var l in t)l=="constructor"&&(e||!t2.call(t,l))||I.push(l);return I}function F1t(t,e,I,l,n){t!==e&&JBI(e,function(r,a){if(n||(n=new kf),ZX(r))xBI(t,e,a,I,F1t,l,n);else{var s=l?l(t4e(t,a),r,a+"",t,e,n):void 0;s===void 0&&(s=r),e4e(t,a,s)}},H1t)}function xBI(t,e,I,l,n,r,a){var s=t4e(t,I),c=t4e(e,I),o=a.get(c);if(o){e4e(t,I,o);return}var i=r?r(s,c,I+"",t,e,a):void 0,d=i===void 0;if(d){var G=l4e(c),b=!G&&w1t(c),h=!G&&!b&&E1t(c);i=c,G||b||h?l4e(s)?i=s:azI(s)?i=MBI(s):b?(d=!1,i=UBI(c,!0)):h?(d=!1,i=OBI(c,!0)):i=[]:szI(c)||I4e(c)?(i=s,I4e(s)?i=czI(s):(!ZX(s)||s4e(s))&&(i=PBI(c))):d=!1}d&&(a.set(c,i),n(i,c,l,r,a),a.delete(c)),e4e(t,I,i)}function BBI(t,e){return lzI(IzI(t,e,v1t),t+"")}var zBI=Goe?function(t,e){return Goe(t,"toString",{configurable:!0,enumerable:!1,value:izI(e),writable:!0})}:v1t;function UBI(t,e){if(e)return t.slice();var I=t.length,l=d1t?d1t(I):new t.constructor(I);return t.copy(l),l}function SBI(t){var e=new t.constructor(t.byteLength);return new i1t(e).set(new i1t(t)),e}function OBI(t,e){var I=e?SBI(t.buffer):t.buffer;return new t.constructor(I,t.byteOffset,t.length)}function MBI(t,e){var I=-1,l=t.length;for(e||(e=Array(l));++I<l;)e[I]=t[I];return e}function TBI(t,e,I,l){var n=!I;I||(I={});for(var r=-1,a=e.length;++r<a;){var s=e[r],c=l?l(I[s],t[s],s,I,t):void 0;c===void 0&&(c=t[s]),n?n4e(I,s,c):CBI(I,s,c)}return I}function jBI(t){return BBI(function(e,I){var l=-1,n=I.length,r=n>1?I[n-1]:void 0,a=n>2?I[2]:void 0;for(r=t.length>3&&typeof r=="function"?(n--,r):void 0,a&&qBI(I[0],I[1],a)&&(r=n<3?void 0:r,n=1),e=Object(e);++l<n;){var s=I[l];s&&t(e,s,l,r)}return e})}function DBI(t){return function(e,I,l){for(var n=-1,r=Object(e),a=l(e),s=a.length;s--;){var c=a[t?s:++n];if(I(r[c],c,r)===!1)break}return e}}function uoe(t,e){var I=t.__data__;return _BI(e)?I[typeof e=="string"?"string":"hash"]:I.map}function r4e(t,e){var I=IBI(t,e);return fBI(I)?I:void 0}function KBI(t){var e=t2.call(t,pX),I=t[pX];try{t[pX]=void 0;var l=!0}catch{}var n=y1t.call(t);return l&&(e?t[pX]=I:delete t[pX]),n}function PBI(t){return typeof t.constructor=="function"&&!Q1t(t)?GBI(R1t(t)):{}}function A1t(t,e){var I=typeof t;return e=e??p1t,!!e&&(I=="number"||I!="symbol"&&q9I.test(t))&&t>-1&&t%1==0&&t<e}function qBI(t,e,I){if(!ZX(I))return!1;var l=typeof e;return(l=="number"?a4e(I)&&A1t(e,I.length):l=="string"&&e in I)?Zoe(I[e],t):!1}function _BI(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function $BI(t){return!!c1t&&c1t in t}function Q1t(t){var e=t&&t.constructor,I=typeof e=="function"&&e.prototype||boe;return t===I}function ezI(t){var e=[];if(t!=null)for(var I in Object(t))e.push(I);return e}function tzI(t){return y1t.call(t)}function IzI(t,e,I){return e=b1t(e===void 0?t.length-1:e,0),function(){for(var l=arguments,n=-1,r=b1t(l.length-e,0),a=Array(r);++n<r;)a[n]=l[e+n];n=-1;for(var s=Array(e+1);++n<e;)s[n]=l[n];return s[e]=I(a),$9I(t,this,s)}}function t4e(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}var lzI=nzI(zBI);function nzI(t){var e=0,I=0;return function(){var l=dBI(),n=V9I-(l-I);if(I=l,n>0){if(++e>=Y9I)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function rzI(t){if(t!=null){try{return moe.call(t)}catch{}try{return t+""}catch{}}return""}function Zoe(t,e){return t===e||t!==t&&e!==e}var I4e=m1t((function(){return arguments})())?m1t:function(t){return VD(t)&&t2.call(t,"callee")&&!cBI.call(t,"callee")},l4e=Array.isArray;function a4e(t){return t!=null&&X1t(t.length)&&!s4e(t)}function azI(t){return VD(t)&&a4e(t)}var w1t=iBI||dzI;function s4e(t){if(!ZX(t))return!1;var e=poe(t);return e==Z1t||e==Q9I||e==R9I||e==H9I}function X1t(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=p1t}function ZX(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}function VD(t){return t!=null&&typeof t=="object"}function szI(t){if(!VD(t)||poe(t)!=W1t)return!1;var e=R1t(t);if(e===null)return!0;var I=t2.call(e,"constructor")&&e.constructor;return typeof I=="function"&&I instanceof I&&moe.call(I)==aBI}var E1t=s1t?tBI(s1t):LBI;function czI(t){return TBI(t,H1t(t))}function H1t(t){return a4e(t)?vBI(t,!0):kBI(t)}var ozI=jBI(function(t,e,I){F1t(t,e,I)});function izI(t){return function(){return t}}function v1t(t){return t}function dzI(){return!1}ff.exports=ozI});async function GzI(t={}){let e=await i3e();return I3e((0,J1t.default)({},e,t))}async function f1t(t={}){if(zK())throw new Error("Settings have already been initialized");return GzI(t)}var J1t,L1t=m(()=>{"use strict";J1t=fI(C1t(),1);UK();JL()});import{readdir as bzI,stat as mzI}from"fs/promises";async function hzI(t,e){try{let I=await mzI(t);if(I.isDirectory()){let l=await bzI(t);return{path:t,type:"directory",lines:l.length}}else{let l=I.size/1048576;if(I.size>k1t){let r=(k1t/1048576).toFixed(0);return e.debug(`File ${t} is too large (${l.toFixed(1)}MB). Maximum file size is ${r}MB. Skipping line count.`),{path:t,type:"file",sizeMB:l}}let{totalLineCount:n}=await H8(t,1,void 0);return{path:t,type:"file",lines:n}}}catch(I){return e.debug(`Error getting file info for ${t}: ${ue(I)}`),{path:t,type:"file",error:ue(I)}}}async function x1t(t,e){let I=t.filter(r=>!zN(r.path));if(I.length===0)return"";let l=await Promise.all(I.map(r=>hzI(r.path,e))),n=["<tagged_files>"];for(let r of l)r.error?n.push(`* ${r.path} (error: ${r.error})`):r.sizeMB!==void 0?n.push(`* ${r.path} (large file: ${r.sizeMB.toFixed(1)}MB)`):r.type==="directory"?n.push(`* ${r.path} (${r.lines} entries)`):n.push(`* ${r.path} (${r.lines} lines)`);return n.push("</tagged_files>"),n.join(`
|
|
1686
|
-
`)}async function B1t(t,e){let I=t.filter(n=>n.type==="file"&&zN(n.path));return(await Promise.all(I.map(async n=>{try{let r=await vee(n.path,e);return r?[{type:"text",text:`Image file at path ${n.path}`},{type:"image_url",image_url:{url:`data:${r.mimeType};base64,${r.base64Data}`}}]:void 0}catch(r){e.error(`Failed to process image ${n.path}: ${r instanceof Error?r.message:String(r)}`);return}}))).filter(n=>n!==void 0).flat()}var k1t,z1t=m(()=>{"use strict";EI();ny();Cee();k1t=10*1024*1024});async function ER(t,e,I){if(!t||t.length===0)return;let l=!1,n={};for(let r of t)try{let a=await r(e);a&&(l=!0,n={...n,...a})}catch(a){I.error(`Hook execution failed: ${ue(a)}`)}return l?n:void 0}var c4e=m(()=>{"use strict";EI()});function uzI(t,e){if(t.length===0)return t;let I=[],l=new Set,n=!1;for(let s=t.length-1;s>=0;s--){let c=t[s];if(c.role==="assistant"&&(n=!0),c.role==="assistant"&&"tool_calls"in c&&c.tool_calls&&c.tool_calls.length>0)for(let o of c.tool_calls)l.has(o.id)||I.push(o.id);else{if(n)break;c.role==="tool"&&c.tool_call_id&&l.add(c.tool_call_id)}}if(I.length===0)return t;let r="The execution of this tool, or a previous tool was interrupted.";e.info(`Completing ${I.length} orphaned tool calls.`);let a=I.map(s=>({role:"tool",tool_call_id:s,content:r}));return[...t,...a]}var yD,pzI,o4e,Woe,l2,Noe,xf=m(()=>{"use strict";YFt();A2();Hse();vve();sAt();Ase();ty();Dde();oAt();pAt();hj();F2();QA();uAt();ZAt();t1t();n1t();XA();r1t();CF();EI();gT();ON();Wse();PJe();fee();SRe();wse();q4();ag();jX();UK();L1t();Qde();no();dCe();i4e();z1t();c4e();yD=process.env.GITHUB_COPILOT_INTEGRATION_ID||"copilot-developer-cli",pzI=NFt(g2),o4e=class{constructor(e,I){this.logger=e;this.session=I}messageQueue=[];async*preRequest(e){this.logger.debug("ImmediatePromptProcessor: Injecting immediate prompts");let l=(await this.session.getChatMessages()).length;for(;this.messageQueue.length>0;){let a=this.messageQueue.shift();this.session.emit("user.message",{content:a.prompt,attachments:a.attachments})}let r=(await this.session.getChatMessages()).slice(l);for(let a of r)e.messages.push(a),yield{kind:"message",message:a,turn:e.turn,source:"immediate-prompt"}}addMessage(e){this.messageQueue.push(e)}toJSON(){return"ImmediatePromptProcessor"}},Woe=class{sessionId;startTime;modifiedTime;summary;logger;disableHttpLogging;events=[];_chatMessages=[];_selectedModel;eventProcessingQueue=Promise.resolve();eventHandlers={};wildcardEventHandlers=[];integrationId;allowedTools;disabledTools;executeToolsInParallel;shellConfig;requestPermission;mcpServers;hooks;customAgents;selectedCustomAgent;organizationCustomInstructions;skipCustomInstructions;workingDir;featureFlags;trajectoryFile;eventsLogDirectory;authInfo;copilotUrl;onToolsUpdate;enableStreaming=!1;handoffContext;externalToolDefinitions;externalToolDispatcher;constructor(e={}){this.logger=e.logger||new Hs,this.sessionId=e.sessionId||Es(),this.startTime=e.startTime||new Date,this.modifiedTime=e.modifiedTime||this.startTime,this.summary=e.summary,this.integrationId=e.integrationId||yD,this.skipCustomInstructions=e.skipCustomInstructions??!1,this.workingDir=e.workingDirectory||process.cwd(),this.disableHttpLogging=e.disableHttpLogging,this.updateOptions(e)}static async fromEvents(e,I){if(e.length===0)throw new Error("Cannot create session from empty events array");let l=e[0];if(l.type!=="session.start")throw new Error("First event must be session.start");let n=new this({...I,sessionId:l.data.sessionId,startTime:new Date(l.data.startTime)});n._selectedModel=l.data.selectedModel,n.events.push(l);for(let r=1;r<e.length;r++){let a=e[r];n.events.push(a),await n.processEventForState(a)}return n}setAuthInfo(e){this.updateOptions({authInfo:e})}updateOptions(e){e.model!==void 0&&(this._selectedModel=e.model),e.integrationId!==void 0&&(this.integrationId=e.integrationId),e.allowedTools!==void 0&&(this.allowedTools=e.allowedTools),e.disabledTools!==void 0&&(this.disabledTools=e.disabledTools),e.executeToolsInParallel!==void 0&&(this.executeToolsInParallel=e.executeToolsInParallel),e.shellConfig!==void 0&&(this.shellConfig=e.shellConfig),e.requestPermission!==void 0&&(this.requestPermission=e.requestPermission),e.featureFlags!==void 0&&(this.featureFlags=e.featureFlags),e.mcpServers!==void 0&&(this.mcpServers=e.mcpServers),e.customAgents!==void 0?this.customAgents=e.customAgents:this.loadCustomAgents().catch(I=>this.logger.error(`Failed to load custom agents: ${ue(I)}`)),e.selectedCustomAgent!==void 0&&(this.selectedCustomAgent=e.selectedCustomAgent),e.organizationCustomInstructions!==void 0&&(this.organizationCustomInstructions=e.organizationCustomInstructions),e.skipCustomInstructions!==void 0&&(this.skipCustomInstructions=e.skipCustomInstructions),e.hooks!==void 0&&(this.hooks=e.hooks),e.externalToolDefinitions!==void 0&&(this.externalToolDefinitions=e.externalToolDefinitions),e.externalToolDispatcher!==void 0&&(this.externalToolDispatcher=e.externalToolDispatcher),e.logger!==void 0&&(this.logger=e.logger),e.trajectoryFile!==void 0&&(this.trajectoryFile=e.trajectoryFile),e.eventsLogDirectory!==void 0&&(this.eventsLogDirectory=e.eventsLogDirectory),e.disableHttpLogging!==void 0&&(this.disableHttpLogging=e.disableHttpLogging),e.workingDirectory!==void 0&&(this.workingDir=e.workingDirectory),e.authInfo!==void 0&&(this.authInfo=e.authInfo),e.copilotUrl!==void 0&&(this.copilotUrl=e.copilotUrl),e.enableStreaming!==void 0&&(this.enableStreaming=e.enableStreaming)}setOnToolsUpdate(e){this.onToolsUpdate=e}getAvailableCustomAgents(){return this.customAgents||[]}async selectCustomAgent(e){let I=this.customAgents?.find(l=>l.name===e);if(!I)throw new Error(`Custom agent '${e}' not found`);this.selectedCustomAgent=I,this.emit("custom_agent.selected",{agentName:I.name,agentDisplayName:I.displayName,tools:I.tools})}clearCustomAgent(){this.selectedCustomAgent=void 0}on(e,I){return e==="*"?(this.wildcardEventHandlers.push(I),()=>{let l=this.wildcardEventHandlers.indexOf(I);l!==-1&&this.wildcardEventHandlers.splice(l,1)}):(this.eventHandlers[e]||(this.eventHandlers[e]=[]),this.eventHandlers[e].push(I),()=>{let l=this.eventHandlers[e];if(l){let n=l.indexOf(I);n!==-1&&l.splice(n,1)}})}emitInternal(e,I,l=!1){let n=Es(),r=new Date().toISOString(),a=this.getLastEventId(),s={type:e,data:I,id:n,timestamp:r,parentId:a,...l&&{ephemeral:l}};this.events.push(s),this.enqueueEventProcessing(()=>this.processEventForState(s)).catch(c=>{this.logger.error(`Error emitting event: ${c instanceof Error?c.message:String(c)}`)}).catch(c=>{this.logger.error(`Error emitting event ${c instanceof Error?c.message:String(c)}`)}),[...this.eventHandlers[s.type]||[],...this.wildcardEventHandlers].forEach(c=>{try{c(s)}catch(o){this.logger.error(`Error in event handler for event type ${s.type}: ${o instanceof Error?o.message:String(o)}`)}})}emit(e,I){this.emitInternal(e,I)}emitEphemeral(e,I){this.emitInternal(e,I,!0)}getEvents(){return this.events}async getChatMessages(){return this.enqueueEventProcessing(()=>this._chatMessages)}async getChatContextMessages(){return(await this.getChatMessages()).filter(I=>I.role!=="system")}async getSystemContextMessages(){return(await this.getChatMessages()).filter(I=>I.role==="system")}async getSelectedModel(){return this.enqueueEventProcessing(()=>this._selectedModel)}async setSelectedModel(e){let I=await this.getSelectedModel();this.emit("session.model_change",{previousModel:I,newModel:e})}getLastEventId(){return this.events.length===0?null:this.events[this.events.length-1].id}enqueueEventProcessing(e){let I=this.eventProcessingQueue.then(()=>e());return this.eventProcessingQueue=I,I}async processEventForState(e){switch(e.type){case"session.start":e.data.selectedModel&&(this._selectedModel=e.data.selectedModel);break;case"session.model_change":this._selectedModel=e.data.newModel;break;case"user.message":{let I=e.data.content,l=[];if(e.data.attachments&&e.data.attachments.length>0){let n=await B1t(e.data.attachments,this.logger);if(l.push(...n),e.data.attachments&&e.data.attachments.length>0){let r=await x1t(e.data.attachments,this.logger);r&&(I=`${I}
|
|
1686
|
+
`)}async function B1t(t,e){let I=t.filter(n=>n.type==="file"&&zN(n.path));return(await Promise.all(I.map(async n=>{try{let r=await vee(n.path,e);return r?[{type:"text",text:`Image file at path ${n.path}`},{type:"image_url",image_url:{url:`data:${r.mimeType};base64,${r.base64Data}`}}]:void 0}catch(r){e.error(`Failed to process image ${n.path}: ${r instanceof Error?r.message:String(r)}`);return}}))).filter(n=>n!==void 0).flat()}var k1t,z1t=m(()=>{"use strict";EI();ny();Cee();k1t=10*1024*1024});async function ER(t,e,I){if(!t||t.length===0)return;let l=!1,n={};for(let r of t)try{let a=await r(e);a&&(l=!0,n={...n,...a})}catch(a){I.error(`Hook execution failed: ${ue(a)}`)}return l?n:void 0}var c4e=m(()=>{"use strict";EI()});function uzI(t,e){if(t.length===0)return t;let I=[],l=new Set,n=!1;for(let s=t.length-1;s>=0;s--){let c=t[s];if(c.role==="assistant"&&(n=!0),c.role==="assistant"&&"tool_calls"in c&&c.tool_calls&&c.tool_calls.length>0)for(let o of c.tool_calls)l.has(o.id)||I.push(o.id);else{if(n)break;c.role==="tool"&&c.tool_call_id&&l.add(c.tool_call_id)}}if(I.length===0)return t;let r="The execution of this tool, or a previous tool was interrupted.";e.info(`Completing ${I.length} orphaned tool calls.`);let a=I.map(s=>({role:"tool",tool_call_id:s,content:r}));return[...t,...a]}var yD,pzI,o4e,Woe,l2,Noe,xf=m(()=>{"use strict";YFt();A2();Hse();vve();sAt();Ase();ty();Dde();oAt();pAt();hj();F2();QA();uAt();ZAt();t1t();n1t();XA();r1t();CF();EI();gT();ON();Wse();PJe();fee();SRe();wse();q4();ag();jX();UK();L1t();Qde();no();dCe();i4e();z1t();c4e();yD=process.env.GITHUB_COPILOT_INTEGRATION_ID||"copilot-developer-cli",pzI=NFt(g2),o4e=class{constructor(e,I){this.logger=e;this.session=I}messageQueue=[];async*preRequest(e){this.logger.debug("ImmediatePromptProcessor: Injecting immediate prompts");let l=(await this.session.getChatMessages()).length;for(;this.messageQueue.length>0;){let a=this.messageQueue.shift();this.session.emit("user.message",{content:a.prompt,attachments:a.attachments})}let r=(await this.session.getChatMessages()).slice(l);for(let a of r)e.messages.push(a),yield{kind:"message",message:a,turn:e.turn,source:"immediate-prompt"}}addMessage(e){this.messageQueue.push(e)}toJSON(){return"ImmediatePromptProcessor"}},Woe=class{sessionId;startTime;modifiedTime;summary;logger;disableHttpLogging;events=[];_chatMessages=[];_selectedModel;eventProcessingQueue=Promise.resolve();eventHandlers={};wildcardEventHandlers=[];integrationId;allowedTools;disabledTools;executeToolsInParallel;shellConfig;requestPermission;mcpServers;hooks;customAgents;selectedCustomAgent;organizationCustomInstructions;skipCustomInstructions;workingDir;featureFlags;trajectoryFile;eventsLogDirectory;authInfo;copilotUrl;onToolsUpdate;enableStreaming=!1;handoffContext;externalToolDefinitions;externalToolDispatcher;clientName;constructor(e={}){this.logger=e.logger||new Hs,this.sessionId=e.sessionId||Es(),this.startTime=e.startTime||new Date,this.modifiedTime=e.modifiedTime||this.startTime,this.summary=e.summary,this.integrationId=e.integrationId||yD,this.skipCustomInstructions=e.skipCustomInstructions??!1,this.workingDir=e.workingDirectory||process.cwd(),this.disableHttpLogging=e.disableHttpLogging,this.updateOptions(e)}static async fromEvents(e,I){if(e.length===0)throw new Error("Cannot create session from empty events array");let l=e[0];if(l.type!=="session.start")throw new Error("First event must be session.start");let n=new this({...I,sessionId:l.data.sessionId,startTime:new Date(l.data.startTime)});n._selectedModel=l.data.selectedModel,n.events.push(l);for(let r=1;r<e.length;r++){let a=e[r];n.events.push(a),await n.processEventForState(a)}return n}setAuthInfo(e){this.updateOptions({authInfo:e})}updateOptions(e){e.clientName!==void 0&&(this.clientName=e.clientName),e.model!==void 0&&(this._selectedModel=e.model),e.integrationId!==void 0&&(this.integrationId=e.integrationId),e.allowedTools!==void 0&&(this.allowedTools=e.allowedTools),e.disabledTools!==void 0&&(this.disabledTools=e.disabledTools),e.executeToolsInParallel!==void 0&&(this.executeToolsInParallel=e.executeToolsInParallel),e.shellConfig!==void 0&&(this.shellConfig=e.shellConfig),e.requestPermission!==void 0&&(this.requestPermission=e.requestPermission),e.featureFlags!==void 0&&(this.featureFlags=e.featureFlags),e.mcpServers!==void 0&&(this.mcpServers=e.mcpServers),e.customAgents!==void 0?this.customAgents=e.customAgents:this.loadCustomAgents().catch(I=>this.logger.error(`Failed to load custom agents: ${ue(I)}`)),e.selectedCustomAgent!==void 0&&(this.selectedCustomAgent=e.selectedCustomAgent),e.organizationCustomInstructions!==void 0&&(this.organizationCustomInstructions=e.organizationCustomInstructions),e.skipCustomInstructions!==void 0&&(this.skipCustomInstructions=e.skipCustomInstructions),e.hooks!==void 0&&(this.hooks=e.hooks),e.externalToolDefinitions!==void 0&&(this.externalToolDefinitions=e.externalToolDefinitions),e.externalToolDispatcher!==void 0&&(this.externalToolDispatcher=e.externalToolDispatcher),e.logger!==void 0&&(this.logger=e.logger),e.trajectoryFile!==void 0&&(this.trajectoryFile=e.trajectoryFile),e.eventsLogDirectory!==void 0&&(this.eventsLogDirectory=e.eventsLogDirectory),e.disableHttpLogging!==void 0&&(this.disableHttpLogging=e.disableHttpLogging),e.workingDirectory!==void 0&&(this.workingDir=e.workingDirectory),e.authInfo!==void 0&&(this.authInfo=e.authInfo),e.copilotUrl!==void 0&&(this.copilotUrl=e.copilotUrl),e.enableStreaming!==void 0&&(this.enableStreaming=e.enableStreaming)}setOnToolsUpdate(e){this.onToolsUpdate=e}getAvailableCustomAgents(){return this.customAgents||[]}async selectCustomAgent(e){let I=this.customAgents?.find(l=>l.name===e);if(!I)throw new Error(`Custom agent '${e}' not found`);this.selectedCustomAgent=I,this.emit("custom_agent.selected",{agentName:I.name,agentDisplayName:I.displayName,tools:I.tools})}clearCustomAgent(){this.selectedCustomAgent=void 0}on(e,I){return e==="*"?(this.wildcardEventHandlers.push(I),()=>{let l=this.wildcardEventHandlers.indexOf(I);l!==-1&&this.wildcardEventHandlers.splice(l,1)}):(this.eventHandlers[e]||(this.eventHandlers[e]=[]),this.eventHandlers[e].push(I),()=>{let l=this.eventHandlers[e];if(l){let n=l.indexOf(I);n!==-1&&l.splice(n,1)}})}emitInternal(e,I,l=!1){let n=Es(),r=new Date().toISOString(),a=this.getLastEventId(),s={type:e,data:I,id:n,timestamp:r,parentId:a,...l&&{ephemeral:l}};this.events.push(s),this.enqueueEventProcessing(()=>this.processEventForState(s)).catch(c=>{this.logger.error(`Error emitting event: ${c instanceof Error?c.message:String(c)}`)}).catch(c=>{this.logger.error(`Error emitting event ${c instanceof Error?c.message:String(c)}`)}),[...this.eventHandlers[s.type]||[],...this.wildcardEventHandlers].forEach(c=>{try{c(s)}catch(o){this.logger.error(`Error in event handler for event type ${s.type}: ${o instanceof Error?o.message:String(o)}`)}})}emit(e,I){this.emitInternal(e,I)}emitEphemeral(e,I){this.emitInternal(e,I,!0)}getEvents(){return this.events}async getChatMessages(){return this.enqueueEventProcessing(()=>this._chatMessages)}async getChatContextMessages(){return(await this.getChatMessages()).filter(I=>I.role!=="system")}async getSystemContextMessages(){return(await this.getChatMessages()).filter(I=>I.role==="system")}async getSelectedModel(){return this.enqueueEventProcessing(()=>this._selectedModel)}async setSelectedModel(e){let I=await this.getSelectedModel();this.emit("session.model_change",{previousModel:I,newModel:e})}getLastEventId(){return this.events.length===0?null:this.events[this.events.length-1].id}enqueueEventProcessing(e){let I=this.eventProcessingQueue.then(()=>e());return this.eventProcessingQueue=I,I}async processEventForState(e){switch(e.type){case"session.start":e.data.selectedModel&&(this._selectedModel=e.data.selectedModel);break;case"session.model_change":this._selectedModel=e.data.newModel;break;case"user.message":{let I=e.data.content,l=[];if(e.data.attachments&&e.data.attachments.length>0){let n=await B1t(e.data.attachments,this.logger);if(l.push(...n),e.data.attachments&&e.data.attachments.length>0){let r=await x1t(e.data.attachments,this.logger);r&&(I=`${I}
|
|
1687
1687
|
|
|
1688
|
-
${r}`)}}l.length>0?this._chatMessages.push({role:"user",content:[{type:"text",text:I},...l]}):this._chatMessages.push({role:"user",content:I});break}case"assistant.message":{if(e.ephemeral||e.data.parentToolCallId)break;let I={role:"assistant",content:e.data.content||null};e.data.toolRequests&&e.data.toolRequests.length>0&&(I.tool_calls=e.data.toolRequests.map(l=>({id:l.toolCallId,type:"function",function:{name:l.name,arguments:typeof l.arguments=="string"?l.arguments:JSON.stringify(l.arguments)}}))),this._chatMessages.push(I);break}case"tool.execution_complete":{if(e.data.parentToolCallId)break;e.data.isUserRequested||this._chatMessages.push({role:"tool",tool_call_id:e.data.toolCallId,content:e.data.success?e.data.result?.content||"":e.data.error?.message||"Tool execution failed"});break}case"system.message":this._chatMessages.push({role:e.data.role,content:e.data.content,...e.data.name&&{name:e.data.name}});break;case"session.import_legacy":this._chatMessages=[...e.data.legacySession.chatMessages],e.data.legacySession.selectedModel&&(this._selectedModel=e.data.legacySession.selectedModel);break;case"abort":case"session.resume":this._chatMessages=uzI(this._chatMessages,this.logger);break;case"session.handoff":e.data.context&&(this.handoffContext=e.data.context);break;case"assistant.intent":case"session.idle":case"session.error":case"session.info":case"session.truncation":case"assistant.turn_start":case"assistant.turn_end":case"assistant.usage":case"tool.user_requested":case"tool.execution_start":case"tool.execution_partial_result":case"custom_agent.started":case"custom_agent.completed":case"custom_agent.failed":case"custom_agent.selected":case"hook.start":case"hook.end":break;default:{let I=e;this.logger.error(`Unknown event type: ${I.type}`);break}}}async loadCustomAgents(){if(!this.authInfo){this.logger.debug("No auth info available, skipping custom agents load");return}this.customAgents=await U1t(this.authInfo,this.workingDir,this.integrationId,this.logger)}},l2=class extends Woe{callback=new uP;isProcessing=!1;messageQueue=[];immediatePromptProcessor;mcpHost;abortController;activeCustomAgents=new Map;mcpHostCache;modelListCache=void 0;constructor(e={}){super(e),this.immediatePromptProcessor=new o4e(this.logger,this),this.mcpHostCache=new ioe(this.logger)}updateOptions(e){if(super.updateOptions(e),e.trajectoryFile!==void 0){let I=new qse(this.logger,e.trajectoryFile);this.callback.addCallback(I)}if(e.eventsLogDirectory!==void 0){let I=new Dse(this.logger,e.eventsLogDirectory);this.callback.addCallback(I)}}getMetadata(){return{sessionId:this.sessionId,startTime:this.startTime,modifiedTime:this.modifiedTime,summary:this.summary,isRemote:!1}}async send(e){if(e.mode==="immediate"&&this.isProcessing)this.immediatePromptProcessor.addMessage(e);else{if(this.messageQueue.push(e),this.isProcessing)return;for(this.isProcessing=!0,await this.initializeMcpHost();this.messageQueue.length>0;){let I=this.messageQueue.shift();this.abortController=I.abortController||new AbortController,await this.runAgenticLoop(I.prompt,I.attachments)}this.isProcessing=!1,this.emitEphemeral("session.idle",{})}}async abort(){this.abortController?.abort()}async initializeMcpHost(){if(!this.mcpHost&&this.mcpServers&&Object.keys(this.mcpServers).length>0)try{this.mcpHost=new Jf(this.logger,{mcpServers:this.mcpServers},this.disabledTools),await this.mcpHost.startServers()}catch(e){this.logger.error(`Failed to initialize MCP host: ${ue(e)}`)}}async buildCustomAgentTools(e,I,l,n,r,a,s){let c=async i=>await $0e({location:r,version:Qve(),currentWorkingDirectory:this.workingDir,parts:{},capabilities:{...a,customAgents:!1},tools:i,organizationCustomInstructions:this.organizationCustomInstructions}),o=this.selectedCustomAgent?[this.selectedCustomAgent]:e;return await Promise.all(o.map(async i=>{let d;if(i.mcpServers&&Object.keys(i.mcpServers).length>0){let G=await this.mcpHostCache.getOrCreateHost(i.name,i.mcpServers);G&&(d=new Ese(G,I,s.permissions))}return wgt(c,Iot,i,this.workingDir,n,l,d)}))}filterToolsForSelectedAgent(e){return this.selectedCustomAgent?Jve(e,this.selectedCustomAgent,"top-level"):e}async invokeCallbacks(e){if(Yj(e))try{await this.callback.progress(e)}catch(I){this.logger.error(`Error in callback: ${ue(I)}`)}}async getModelList(){if(this.modelListCache)return this.modelListCache;if(!this.authInfo)return Promise.reject(new Error("Session was not created with authentication info"));let e=await l1t(this.logger,this.sessionId,this.authInfo,this.integrationId);if(e.type!=="success")throw new Error("Failed to list available models");return this.modelListCache=e.list,e.list}async runAgenticLoop(e,I=[]){if(!this.authInfo)throw new Error("Session was not created with authentication info");let l=new Map,n=new Map,r=[];try{let s=(await ER(this.hooks?.userPromptSubmitted,{timestamp:Date.now(),cwd:this.workingDir,prompt:e},this.logger))?.modifiedPrompt??e;this.emit("user.message",{content:s,attachments:I});let c=await Im(this.authInfo),o=this.copilotUrl;!o&&c&&this.authInfo.type!=="hmac"&&(o=await pzI(this.authInfo.host,c||"",this.logger));let i=await this.getModelList(),d=await Egt(this._selectedModel,this,i,this.logger);if(!d)throw new Error("No model available. Check policy enablement under GitHub Settings > Copilot");let G=await Xgt(d),h=new TX().setProblemStatement(s).setAgentModel(G).setGithubRepoName("copilot-sdk-session").setGithubRepoCommit("copilot-sdk-commit").setGithubRepoReadWrite(!1).setCopilotIntegrationId(this.integrationId).setCopilotUrl(o).setCopilotHmacKey(this.authInfo.type==="hmac"?this.authInfo.hmac:void 0).setGithubToken(c).setCopilotToken(c).setTrajectoryOutputFile(this.trajectoryFile).setEventsLogDirectory(this.eventsLogDirectory).build();l3e();let p=await f1t(h),u=p.service?.agent?.model,W=cj(u),N=rAt(W.agent,W.model),R=Hve(p,this.logger,W.agent,{...N.clientOptions,model:W.model,disableHttpLogging:this.disableHttpLogging}),F={location:this.workingDir,timeout:3e4,toolPartialResultCallback:(Ne,Jt)=>{this.emitEphemeral("tool.execution_partial_result",{toolCallId:Ne,partialOutput:Jt})},permissions:this.requestPermission?{requestRequired:!0,request:this.requestPermission}:{requestRequired:!1},shellConfig:this.shellConfig??(process.platform==="win32"?Mu.powerShell:Mu.bash).withScriptSafetyAssessor(async function(Ne){return{result:"completed",commands:[{identifier:Ne,readOnly:!1}],possiblePaths:[],hasWriteFileRedirection:!1,canOfferSessionApproval:!1}})},A=await nAt(F,this.logger,this.featureFlags),H=[];if(this.mcpHost)try{H=await this.mcpHost.getTools(p,this.logger,F.permissions)}catch(Ne){this.logger.error(`Failed to get MCP tools: ${ue(Ne)}`)}let w=[];if(this.externalToolDefinitions?.length){let Ne=this.externalToolDispatcher;if(!Ne)this.logger.warning("External tool definitions provided without a dispatcher; ignoring");else for(let Jt of this.externalToolDefinitions)w.push({name:Jt.name,description:Jt.description,input_schema:Jt.parameters??{type:"object",properties:{}},callback:async(Vl,Jl)=>{if(!Jl?.toolCallId)throw new Error("External tool invocation missing toolCallId");return await Ne({sessionId:this.sessionId,toolCallId:Jl.toolCallId,toolName:Jt.name,arguments:Vl,abortSignal:Jl.abortSignal})}})}let v=[...A,...H,...w].filter(Ne=>this.allowedTools?this.allowedTools.includes(Ne.name):this.disabledTools?!this.disabledTools.includes(Ne.name):!0),C=await ef(this.workingDir),O={...N.supports,reasoning:!0},B,se={progress:async Ne=>{if(Ne.kind==="message"&&Ne.turn===0){if(!Ne.callId)throw new Error("message on turn 0 event missing callId");B=Ne.callId}if(await this.invokeCallbacks(Ne),Ne.kind==="custom_agent_session_boundary"){let Jt=Ne.agentId;if(Jt)if(Ne.sessionBoundaryType==="start"){let Vl=this.customAgents?.find(Jl=>Jl.name===Ne.agentName);Vl&&(this.activeCustomAgents.set(Jt,{name:Ne.agentName,displayName:Vl.displayName}),this.emit("custom_agent.started",{toolCallId:Jt,agentName:Ne.agentName,agentDisplayName:Vl.displayName,agentDescription:Vl.description}))}else{let Vl=this.activeCustomAgents.get(Jt);Vl&&this.emit("custom_agent.completed",{toolCallId:Jt,agentName:Vl.name}),this.activeCustomAgents.delete(Jt)}return}if(Yj(Ne)){if(!B)throw new Error("Custom agent event received without parentToolCallId");switch(Ne.kind){case"message":if(jw(Ne)){let Jt=zt.endCurrentStreamingMessage(),Vl=ij(Ne)?Ne.message.tool_calls.map(Jl=>({toolCallId:Jl.id,name:Jl.function.name,arguments:q0(Jl.function.arguments)})):[];this.emit("assistant.message",{parentToolCallId:B,messageId:Jt??Es(),content:typeof Ne.message.content=="string"?Ne.message.content:"",toolRequests:Vl});for(let Jl of Vl)this.emit("tool.execution_start",{parentToolCallId:B,toolCallId:Jl.toolCallId,toolName:Jl.name,arguments:Jl.arguments})}break;case"tool_execution":this.emit("tool.execution_complete",{parentToolCallId:B,toolCallId:Ne.toolCallId,success:Ne.toolResult.resultType==="success",result:Ne.toolResult.resultType==="success"?{content:Ne.toolResult.sessionLog||Ne.toolResult.textResultForLlm||""}:void 0,error:Ne.toolResult.resultType!=="success"?{message:(Ne.toolResult.resultType==="failure"?Ne.toolResult.error:void 0)||Ne.toolResult.sessionLog||Ne.toolResult.textResultForLlm||"Tool execution failed",code:Ne.toolResult.resultType}:void 0});break;case"model_call_failure":case"model_call_success":case"image_processing":case"images_removed":case"response":case"history_truncated":case"turn_started":case"turn_ended":case"turn_failed":case"turn_retry":break;default:Cb(Ne,`Unknown event kind: ${JSON.stringify(Ne)}`)}}},partialResult:async()=>{},commentReply:async()=>{},result:async()=>{},error:async()=>{}},we={client:R,settings:p,logger:this.logger,exec:new ob(this.logger),customAgents:this.customAgents||[],organizationCustomInstructions:this.organizationCustomInstructions,callback:se},Ye=v;if(this.customAgents&&this.customAgents.length>0){let Ne=await this.buildCustomAgentTools(this.customAgents,p,v,we,C.found?C.gitRoot:"",O,F);Ye=[...v,...Ne]}r=this.filterToolsForSelectedAgent(Ye),this.onToolsUpdate&&this.onToolsUpdate(r);let Ze=await $0e({location:C.found?C.gitRoot:"",version:Qve(),currentWorkingDirectory:this.workingDir,parts:N.cli?.systemMessage||{},capabilities:O,tools:r,organizationCustomInstructions:this.organizationCustomInstructions,skipCustomInstructions:this.skipCustomInstructions}),Ee=await this.getChatMessages(),Je=Ee.findLastIndex(Ne=>Ne.role==="user"),ce=Ee.filter(Ne=>Ne.role==="user").at(-1);if(!ce)throw new Error("No user message found in session messages after sending prompt");let Me=Ku(ce),pI=await this.selectedCustomAgent?.prompt();typeof ce.content=="string"?ce={...ce,content:eRe({customAgentPrompt:pI,problemStatement:ce.content,capabilities:O,hasImages:Me,handoffContext:this.handoffContext})}:ce={...ce,content:ce.content.map(Ne=>Ne.type==="text"?{...Ne,text:eRe({customAgentPrompt:pI,problemStatement:Ne.text,capabilities:O,hasImages:Me,handoffContext:this.handoffContext})}:Ne)},this.handoffContext=void 0;let fe=Ee.map((Ne,Jt)=>Jt===Je?ce:Ne);await ER(this.hooks?.sessionStart,{timestamp:Date.now(),cwd:this.workingDir,source:"new",initialPrompt:e},this.logger);let zt=new _se(this,()=>{},!1,this.logger),ut=new $se(Ne=>{this.emitEphemeral("assistant.intent",{intent:Ne})}),AI=new A5(ce,this.logger),dt=new Dte(this.logger),JI=R.getCompletionWithTools(Ze,fe,r,{failIfInitialInputsTooLong:!1,processors:{preRequest:[AI,dt,this.immediatePromptProcessor,new oj(this.logger)],postToolExecution:[dt],onRequestError:[AI],onStreamingChunk:[zt,ut]},executeToolsInParallel:this.executeToolsInParallel??!0,abortSignal:this.abortController?.signal,stream:this.enableStreaming});for await(let Ne of JI){if(this.abortController?.signal.aborted){this.emit("abort",{reason:"user initiated"}),this.emitEphemeral("session.info",{infoType:"cancellation",message:"Operation cancelled by user"});break}switch(await this.invokeCallbacks(Ne),Ne.kind){case"message":{if(jw(Ne)){let Vl=zt.endCurrentStreamingMessage()??Es(),Jl=ij(Ne)?await Promise.all(Ne.message.tool_calls.map(async Dr=>{let zc=q0(Dr.function.arguments);l.set(Dr.id,Dr.function.name),n.set(Dr.id,zc);let Pd=await ER(this.hooks?.preToolUse,{timestamp:Date.now(),cwd:this.workingDir,toolName:Dr.function.name,toolArgs:zc},this.logger);return{toolCallId:Dr.id,name:Dr.function.name,arguments:Pd?.modifiedArgs??zc}})):[];this.emit("assistant.message",{parentToolCallId:void 0,messageId:Vl,content:typeof Ne.message.content=="string"?Ne.message.content:"",toolRequests:Jl});for(let Dr of Jl)this.emit("tool.execution_start",{toolCallId:Dr.toolCallId,toolName:Dr.name,arguments:Dr.arguments})}else(Ne.message.role==="system"||Ne.message.role==="developer")&&this.emit("system.message",{role:Ne.message.role,content:typeof Ne.message.content=="string"?Ne.message.content:JSON.stringify(Ne.message.content),name:"name"in Ne.message?Ne.message.name:void 0});break}case"model_call_failure":{let Jt=new Error(Ne.modelCall?.error||"Model call failed");if(await ER(this.hooks?.errorOccurred,{timestamp:Date.now(),cwd:this.workingDir,error:Jt,errorContext:"model_call",recoverable:!0},this.logger),qJe(Ne.modelCall?.error||""))return;let Jl=Ne.modelCall?.error||"Unknown error occurred";Ne.modelCall.request_id&&(Jl+=` (Request ID: ${Ne.modelCall.request_id})`),this.emit("session.error",{errorType:"model_call",message:`Model call failed: ${Jl}`,stack:Jt.stack});break}case"tool_execution":{let Vl=(await ER(this.hooks?.postToolUse,{timestamp:Date.now(),cwd:this.workingDir,toolName:l.get(Ne.toolCallId)||"unknown",toolArgs:n.get(Ne.toolCallId)||{},toolResult:Ne.toolResult},this.logger))?.modifiedResult??Ne.toolResult,Jl=(Vl.resultType==="failure"?Vl.error:void 0)||Vl.sessionLog||Vl.textResultForLlm;this.emit("tool.execution_complete",{parentToolCallId:void 0,toolCallId:Ne.toolCallId,success:Vl.resultType==="success",result:Vl.resultType==="success"?{content:Jl}:void 0,error:Vl.resultType!=="success"?{message:Jl,code:Vl.resultType}:void 0});break}case"turn_started":{this.emit("assistant.turn_start",{turnId:`${Ne.turn}`});break}case"turn_ended":{this.emit("assistant.turn_end",{turnId:`${Ne.turn}`});break}case"model_call_success":{let Jt=Ne.responseChunk.model||await this.getSelectedModel(),Vl=Ne.modelCallDurationMs||0,Jl=Ne.responseUsage,Dr=Jt?Lve(Jt,i):1;this.emitEphemeral("assistant.usage",{model:Jt||"unknown",inputTokens:Jl?.prompt_tokens||0,outputTokens:Jl?.completion_tokens||0,cacheReadTokens:Jl?.prompt_tokens_details?.cached_tokens||0,cacheWriteTokens:0,cost:Dr,duration:Vl,initiator:Ne.modelCall?.initiator,quotaSnapshots:Ne.quotaSnapshots});break}case"history_truncated":{this.emit("session.truncation",{...Ne.truncateResult,performedBy:Ne.performedBy});break}case"response":case"images_removed":case"image_processing":case"turn_failed":case"turn_retry":this.logger.debug(`Ignoring event of kind: ${Ne.kind}`);break;default:Cb(Ne,"Unhandled event type")}}}catch(a){if(await ER(this.hooks?.sessionEnd,{timestamp:Date.now(),cwd:this.workingDir,reason:"error",error:a instanceof Error?a:new Error(String(a))},this.logger),a&&typeof a=="object"&&"status"in a&&(a.status===401||a.status===403)){if("message"in a&&typeof a.message=="string"){let o=qJe(a.message);o&&this.emit("session.error",{errorType:"authentication",message:o.message})}this.emit("session.error",{errorType:"authorization",message:"Authorization error, you may need to run /login"})}a&&typeof a=="object"&&"status"in a&&a.status===402&&this.emit("session.error",{errorType:"quota",message:"Quota exceeded. Upgrade to increase your limit: https://github.com/features/copilot/plans"});let c=`Execution failed: ${a instanceof Error?a.message:a&&typeof a=="object"&&"toString"in a?ue(a):"Unknown error occurred"}`;this.emit("session.error",{errorType:"query",message:c,stack:a instanceof Error?a.stack:void 0})}finally{await ER(this.hooks?.sessionEnd,{timestamp:Date.now(),cwd:this.workingDir,reason:"complete"},this.logger);try{for(let a of r)a.shutdown&&await a.shutdown()}catch(a){this.logger.error(`Error during session shutdown: ${ue(a)}`)}}}},Noe=class extends Woe{repository;remoteSessionIds;constructor(e){super(e),this.repository=e.repository,this.remoteSessionIds=e.remoteSessionIds}async send(e){throw new Error("RemoteSession.send() is not implemented yet.")}async abort(){throw new Error("RemoteSession.abort() is not implemented yet.")}getMetadata(){return{sessionId:this.sessionId,startTime:this.startTime,modifiedTime:this.modifiedTime,summary:this.summary,isRemote:!0,repository:this.repository,remoteSessionIds:this.remoteSessionIds}}}});import ZzI from"node:path";async function U1t(t,e,I,l){I??=yD,l??=new Hs;let n=await rFt(e),{agents:r}=await GFt(l,I,t,ZzI.join(b8(),"agents"),n,!1);return r.map(a=>({name:a.id,displayName:a.displayName,description:a.description,tools:a.tools,prompt:a.prompt,mcpServers:a.mcpServers||{}}))}var i4e=m(()=>{"use strict";pFt();Ove();m8();Lse();xf()});import{spawn as WzI}from"child_process";import{join as NzI}from"path";async function S1t(t,e,I){let l,n;if(t.bash&&t.powershell)l=process.platform==="win32"?"powershell":"bash",n=l==="powershell"?t.powershell:t.bash;else if(t.bash)l="bash",n=t.bash;else if(t.powershell)l="powershell",n=t.powershell;else throw new Error("Neither 'bash' nor 'powershell' specified in hook command configuration");let r=YzI(l),a=(t.timeoutSec||30)*1e3,s=t.cwd&&I?NzI(I,t.cwd):I||process.cwd(),c={...process.env,...t.env||{}};return new Promise((o,i)=>{let G=WzI(r,[...l==="bash"?["--norc","--noprofile"]:["-nop","-nol"],"-c",n],{cwd:s,env:c,timeout:a}),b="",h="",p=!1,u=setTimeout(()=>{p=!0,G.kill()},a);G.stdout.on("data",W=>{b+=W.toString()}),G.stderr.on("data",W=>{h+=W.toString()}),G.on("error",W=>{clearTimeout(u),i(W)}),G.on("close",W=>{clearTimeout(u),p?i(new Error(`Hook command timed out after ${a/1e3} seconds`)):W!==0?i(new Error(`Hook command failed with code ${W}${h?`
|
|
1688
|
+
${r}`)}}l.length>0?this._chatMessages.push({role:"user",content:[{type:"text",text:I},...l]}):this._chatMessages.push({role:"user",content:I});break}case"assistant.message":{if(e.ephemeral||e.data.parentToolCallId)break;let I={role:"assistant",content:e.data.content||null};e.data.toolRequests&&e.data.toolRequests.length>0&&(I.tool_calls=e.data.toolRequests.map(l=>({id:l.toolCallId,type:"function",function:{name:l.name,arguments:typeof l.arguments=="string"?l.arguments:JSON.stringify(l.arguments)}}))),this._chatMessages.push(I);break}case"tool.execution_complete":{if(e.data.parentToolCallId)break;e.data.isUserRequested||this._chatMessages.push({role:"tool",tool_call_id:e.data.toolCallId,content:e.data.success?e.data.result?.content||"":e.data.error?.message||"Tool execution failed"});break}case"system.message":this._chatMessages.push({role:e.data.role,content:e.data.content,...e.data.name&&{name:e.data.name}});break;case"session.import_legacy":this._chatMessages=[...e.data.legacySession.chatMessages],e.data.legacySession.selectedModel&&(this._selectedModel=e.data.legacySession.selectedModel);break;case"abort":case"session.resume":this._chatMessages=uzI(this._chatMessages,this.logger);break;case"session.handoff":e.data.context&&(this.handoffContext=e.data.context);break;case"assistant.intent":case"session.idle":case"session.error":case"session.info":case"session.truncation":case"assistant.turn_start":case"assistant.turn_end":case"assistant.usage":case"tool.user_requested":case"tool.execution_start":case"tool.execution_partial_result":case"custom_agent.started":case"custom_agent.completed":case"custom_agent.failed":case"custom_agent.selected":case"hook.start":case"hook.end":break;default:{let I=e;this.logger.error(`Unknown event type: ${I.type}`);break}}}async loadCustomAgents(){if(!this.authInfo){this.logger.debug("No auth info available, skipping custom agents load");return}this.customAgents=await U1t(this.authInfo,this.workingDir,this.integrationId,this.logger)}},l2=class extends Woe{callback=new uP;isProcessing=!1;messageQueue=[];immediatePromptProcessor;mcpHost;abortController;activeCustomAgents=new Map;mcpHostCache;modelListCache=void 0;constructor(e={}){super(e),this.immediatePromptProcessor=new o4e(this.logger,this),this.mcpHostCache=new ioe(this.logger)}updateOptions(e){if(super.updateOptions(e),e.trajectoryFile!==void 0){let I=new qse(this.logger,e.trajectoryFile);this.callback.addCallback(I)}if(e.eventsLogDirectory!==void 0){let I=new Dse(this.logger,e.eventsLogDirectory);this.callback.addCallback(I)}}getMetadata(){return{sessionId:this.sessionId,startTime:this.startTime,modifiedTime:this.modifiedTime,summary:this.summary,isRemote:!1}}async send(e){if(e.mode==="immediate"&&this.isProcessing)this.immediatePromptProcessor.addMessage(e);else{if(this.messageQueue.push(e),this.isProcessing)return;for(this.isProcessing=!0,await this.initializeMcpHost();this.messageQueue.length>0;){let I=this.messageQueue.shift();this.abortController=I.abortController||new AbortController,await this.runAgenticLoop(I.prompt,I.attachments)}this.isProcessing=!1,this.emitEphemeral("session.idle",{})}}async abort(){this.abortController?.abort()}async initializeMcpHost(){if(!this.mcpHost&&this.mcpServers&&Object.keys(this.mcpServers).length>0)try{this.mcpHost=new Jf(this.logger,{mcpServers:this.mcpServers},this.disabledTools),await this.mcpHost.startServers()}catch(e){this.logger.error(`Failed to initialize MCP host: ${ue(e)}`)}}async buildCustomAgentTools(e,I,l,n,r,a,s){let c=async i=>await $0e({location:r,version:Qve(),currentWorkingDirectory:this.workingDir,parts:{},capabilities:{...a,customAgents:!1},tools:i,organizationCustomInstructions:this.organizationCustomInstructions}),o=this.selectedCustomAgent?[this.selectedCustomAgent]:e;return await Promise.all(o.map(async i=>{let d;if(i.mcpServers&&Object.keys(i.mcpServers).length>0){let G=await this.mcpHostCache.getOrCreateHost(i.name,i.mcpServers);G&&(d=new Ese(G,I,s.permissions))}return wgt(c,Iot,i,this.workingDir,n,l,d)}))}filterToolsForSelectedAgent(e){return this.selectedCustomAgent?Jve(e,this.selectedCustomAgent,"top-level"):e}async invokeCallbacks(e){if(Yj(e))try{await this.callback.progress(e)}catch(I){this.logger.error(`Error in callback: ${ue(I)}`)}}async getModelList(){if(this.modelListCache)return this.modelListCache;if(!this.authInfo)return Promise.reject(new Error("Session was not created with authentication info"));let e=await l1t(this.logger,this.sessionId,this.authInfo,this.integrationId);if(e.type!=="success")throw new Error("Failed to list available models");return this.modelListCache=e.list,e.list}async runAgenticLoop(e,I=[]){if(!this.authInfo)throw new Error("Session was not created with authentication info");let l=new Map,n=new Map,r=[];try{let s=(await ER(this.hooks?.userPromptSubmitted,{timestamp:Date.now(),cwd:this.workingDir,prompt:e},this.logger))?.modifiedPrompt??e;this.emit("user.message",{content:s,attachments:I});let c=await Im(this.authInfo),o=this.copilotUrl;!o&&c&&this.authInfo.type!=="hmac"&&(o=await pzI(this.authInfo.host,c||"",this.logger));let i=await this.getModelList(),d=await Egt(this._selectedModel,this,i,this.logger);if(!d)throw new Error("No model available. Check policy enablement under GitHub Settings > Copilot");let G=await Xgt(d),h=new TX().setProblemStatement(s).setAgentModel(G).setGithubRepoName("copilot-sdk-session").setGithubRepoCommit("copilot-sdk-commit").setGithubRepoReadWrite(!1).setCopilotIntegrationId(this.integrationId).setCopilotUrl(o).setCopilotHmacKey(this.authInfo.type==="hmac"?this.authInfo.hmac:void 0).setGithubToken(c).setCopilotToken(c).setTrajectoryOutputFile(this.trajectoryFile).setEventsLogDirectory(this.eventsLogDirectory).setClientName(this.clientName).build();l3e();let p=await f1t(h),u=p.service?.agent?.model,W=cj(u),N=rAt(W.agent,W.model),R=Hve(p,this.logger,W.agent,{...N.clientOptions,model:W.model,disableHttpLogging:this.disableHttpLogging}),F={location:this.workingDir,timeout:3e4,toolPartialResultCallback:(Ne,Jt)=>{this.emitEphemeral("tool.execution_partial_result",{toolCallId:Ne,partialOutput:Jt})},permissions:this.requestPermission?{requestRequired:!0,request:this.requestPermission}:{requestRequired:!1},shellConfig:this.shellConfig??(process.platform==="win32"?Mu.powerShell:Mu.bash).withScriptSafetyAssessor(async function(Ne){return{result:"completed",commands:[{identifier:Ne,readOnly:!1}],possiblePaths:[],hasWriteFileRedirection:!1,canOfferSessionApproval:!1}})},A=await nAt(F,this.logger,this.featureFlags),H=[];if(this.mcpHost)try{H=await this.mcpHost.getTools(p,this.logger,F.permissions)}catch(Ne){this.logger.error(`Failed to get MCP tools: ${ue(Ne)}`)}let w=[];if(this.externalToolDefinitions?.length){let Ne=this.externalToolDispatcher;if(!Ne)this.logger.warning("External tool definitions provided without a dispatcher; ignoring");else for(let Jt of this.externalToolDefinitions)w.push({name:Jt.name,description:Jt.description,input_schema:Jt.parameters??{type:"object",properties:{}},callback:async(Vl,Jl)=>{if(!Jl?.toolCallId)throw new Error("External tool invocation missing toolCallId");return await Ne({sessionId:this.sessionId,toolCallId:Jl.toolCallId,toolName:Jt.name,arguments:Vl,abortSignal:Jl.abortSignal})}})}let v=[...A,...H,...w].filter(Ne=>this.allowedTools?this.allowedTools.includes(Ne.name):this.disabledTools?!this.disabledTools.includes(Ne.name):!0),C=await ef(this.workingDir),O={...N.supports,reasoning:!0},B,se={progress:async Ne=>{if(Ne.kind==="message"&&Ne.turn===0){if(!Ne.callId)throw new Error("message on turn 0 event missing callId");B=Ne.callId}if(await this.invokeCallbacks(Ne),Ne.kind==="custom_agent_session_boundary"){let Jt=Ne.agentId;if(Jt)if(Ne.sessionBoundaryType==="start"){let Vl=this.customAgents?.find(Jl=>Jl.name===Ne.agentName);Vl&&(this.activeCustomAgents.set(Jt,{name:Ne.agentName,displayName:Vl.displayName}),this.emit("custom_agent.started",{toolCallId:Jt,agentName:Ne.agentName,agentDisplayName:Vl.displayName,agentDescription:Vl.description}))}else{let Vl=this.activeCustomAgents.get(Jt);Vl&&this.emit("custom_agent.completed",{toolCallId:Jt,agentName:Vl.name}),this.activeCustomAgents.delete(Jt)}return}if(Yj(Ne)){if(!B)throw new Error("Custom agent event received without parentToolCallId");switch(Ne.kind){case"message":if(jw(Ne)){let Jt=zt.endCurrentStreamingMessage(),Vl=ij(Ne)?Ne.message.tool_calls.map(Jl=>({toolCallId:Jl.id,name:Jl.function.name,arguments:q0(Jl.function.arguments)})):[];this.emit("assistant.message",{parentToolCallId:B,messageId:Jt??Es(),content:typeof Ne.message.content=="string"?Ne.message.content:"",toolRequests:Vl});for(let Jl of Vl)this.emit("tool.execution_start",{parentToolCallId:B,toolCallId:Jl.toolCallId,toolName:Jl.name,arguments:Jl.arguments})}break;case"tool_execution":this.emit("tool.execution_complete",{parentToolCallId:B,toolCallId:Ne.toolCallId,success:Ne.toolResult.resultType==="success",result:Ne.toolResult.resultType==="success"?{content:Ne.toolResult.sessionLog||Ne.toolResult.textResultForLlm||""}:void 0,error:Ne.toolResult.resultType!=="success"?{message:(Ne.toolResult.resultType==="failure"?Ne.toolResult.error:void 0)||Ne.toolResult.sessionLog||Ne.toolResult.textResultForLlm||"Tool execution failed",code:Ne.toolResult.resultType}:void 0});break;case"model_call_failure":case"model_call_success":case"image_processing":case"images_removed":case"response":case"history_truncated":case"turn_started":case"turn_ended":case"turn_failed":case"turn_retry":break;default:Cb(Ne,`Unknown event kind: ${JSON.stringify(Ne)}`)}}},partialResult:async()=>{},commentReply:async()=>{},result:async()=>{},error:async()=>{}},we={client:R,settings:p,logger:this.logger,exec:new ob(this.logger),customAgents:this.customAgents||[],organizationCustomInstructions:this.organizationCustomInstructions,callback:se},Ye=v;if(this.customAgents&&this.customAgents.length>0){let Ne=await this.buildCustomAgentTools(this.customAgents,p,v,we,C.found?C.gitRoot:"",O,F);Ye=[...v,...Ne]}r=this.filterToolsForSelectedAgent(Ye),this.onToolsUpdate&&this.onToolsUpdate(r);let Ze=await $0e({location:C.found?C.gitRoot:"",version:Qve(),currentWorkingDirectory:this.workingDir,parts:N.cli?.systemMessage||{},capabilities:O,tools:r,organizationCustomInstructions:this.organizationCustomInstructions,skipCustomInstructions:this.skipCustomInstructions}),Ee=await this.getChatMessages(),Je=Ee.findLastIndex(Ne=>Ne.role==="user"),ce=Ee.filter(Ne=>Ne.role==="user").at(-1);if(!ce)throw new Error("No user message found in session messages after sending prompt");let Me=Ku(ce),pI=await this.selectedCustomAgent?.prompt();typeof ce.content=="string"?ce={...ce,content:eRe({customAgentPrompt:pI,problemStatement:ce.content,capabilities:O,hasImages:Me,handoffContext:this.handoffContext})}:ce={...ce,content:ce.content.map(Ne=>Ne.type==="text"?{...Ne,text:eRe({customAgentPrompt:pI,problemStatement:Ne.text,capabilities:O,hasImages:Me,handoffContext:this.handoffContext})}:Ne)},this.handoffContext=void 0;let fe=Ee.map((Ne,Jt)=>Jt===Je?ce:Ne);await ER(this.hooks?.sessionStart,{timestamp:Date.now(),cwd:this.workingDir,source:"new",initialPrompt:e},this.logger);let zt=new _se(this,()=>{},!1,this.logger),ut=new $se(Ne=>{this.emitEphemeral("assistant.intent",{intent:Ne})}),AI=new A5(ce,this.logger),dt=new Dte(this.logger),JI=R.getCompletionWithTools(Ze,fe,r,{failIfInitialInputsTooLong:!1,processors:{preRequest:[AI,dt,this.immediatePromptProcessor,new oj(this.logger)],postToolExecution:[dt],onRequestError:[AI],onStreamingChunk:[zt,ut]},executeToolsInParallel:this.executeToolsInParallel??!0,abortSignal:this.abortController?.signal,stream:this.enableStreaming});for await(let Ne of JI){if(this.abortController?.signal.aborted){this.emit("abort",{reason:"user initiated"}),this.emitEphemeral("session.info",{infoType:"cancellation",message:"Operation cancelled by user"});break}switch(await this.invokeCallbacks(Ne),Ne.kind){case"message":{if(jw(Ne)){let Vl=zt.endCurrentStreamingMessage()??Es(),Jl=ij(Ne)?await Promise.all(Ne.message.tool_calls.map(async Dr=>{let zc=q0(Dr.function.arguments);l.set(Dr.id,Dr.function.name),n.set(Dr.id,zc);let Pd=await ER(this.hooks?.preToolUse,{timestamp:Date.now(),cwd:this.workingDir,toolName:Dr.function.name,toolArgs:zc},this.logger);return{toolCallId:Dr.id,name:Dr.function.name,arguments:Pd?.modifiedArgs??zc}})):[];this.emit("assistant.message",{parentToolCallId:void 0,messageId:Vl,content:typeof Ne.message.content=="string"?Ne.message.content:"",toolRequests:Jl});for(let Dr of Jl)this.emit("tool.execution_start",{toolCallId:Dr.toolCallId,toolName:Dr.name,arguments:Dr.arguments})}else(Ne.message.role==="system"||Ne.message.role==="developer")&&this.emit("system.message",{role:Ne.message.role,content:typeof Ne.message.content=="string"?Ne.message.content:JSON.stringify(Ne.message.content),name:"name"in Ne.message?Ne.message.name:void 0});break}case"model_call_failure":{let Jt=new Error(Ne.modelCall?.error||"Model call failed");if(await ER(this.hooks?.errorOccurred,{timestamp:Date.now(),cwd:this.workingDir,error:Jt,errorContext:"model_call",recoverable:!0},this.logger),qJe(Ne.modelCall?.error||""))return;let Jl=Ne.modelCall?.error||"Unknown error occurred";Ne.modelCall.request_id&&(Jl+=` (Request ID: ${Ne.modelCall.request_id})`),this.emit("session.error",{errorType:"model_call",message:`Model call failed: ${Jl}`,stack:Jt.stack});break}case"tool_execution":{let Vl=(await ER(this.hooks?.postToolUse,{timestamp:Date.now(),cwd:this.workingDir,toolName:l.get(Ne.toolCallId)||"unknown",toolArgs:n.get(Ne.toolCallId)||{},toolResult:Ne.toolResult},this.logger))?.modifiedResult??Ne.toolResult,Jl=(Vl.resultType==="failure"?Vl.error:void 0)||Vl.sessionLog||Vl.textResultForLlm;this.emit("tool.execution_complete",{parentToolCallId:void 0,toolCallId:Ne.toolCallId,success:Vl.resultType==="success",result:Vl.resultType==="success"?{content:Jl}:void 0,error:Vl.resultType!=="success"?{message:Jl,code:Vl.resultType}:void 0});break}case"turn_started":{this.emit("assistant.turn_start",{turnId:`${Ne.turn}`});break}case"turn_ended":{this.emit("assistant.turn_end",{turnId:`${Ne.turn}`});break}case"model_call_success":{let Jt=Ne.responseChunk.model||await this.getSelectedModel(),Vl=Ne.modelCallDurationMs||0,Jl=Ne.responseUsage,Dr=Jt?Lve(Jt,i):1;this.emitEphemeral("assistant.usage",{model:Jt||"unknown",inputTokens:Jl?.prompt_tokens||0,outputTokens:Jl?.completion_tokens||0,cacheReadTokens:Jl?.prompt_tokens_details?.cached_tokens||0,cacheWriteTokens:0,cost:Dr,duration:Vl,initiator:Ne.modelCall?.initiator,quotaSnapshots:Ne.quotaSnapshots});break}case"history_truncated":{this.emit("session.truncation",{...Ne.truncateResult,performedBy:Ne.performedBy});break}case"response":case"images_removed":case"image_processing":case"turn_failed":case"turn_retry":this.logger.debug(`Ignoring event of kind: ${Ne.kind}`);break;default:Cb(Ne,"Unhandled event type")}}}catch(a){if(await ER(this.hooks?.sessionEnd,{timestamp:Date.now(),cwd:this.workingDir,reason:"error",error:a instanceof Error?a:new Error(String(a))},this.logger),a&&typeof a=="object"&&"status"in a&&(a.status===401||a.status===403)){if("message"in a&&typeof a.message=="string"){let o=qJe(a.message);o&&this.emit("session.error",{errorType:"authentication",message:o.message})}this.emit("session.error",{errorType:"authorization",message:"Authorization error, you may need to run /login"})}a&&typeof a=="object"&&"status"in a&&a.status===402&&this.emit("session.error",{errorType:"quota",message:"Quota exceeded. Upgrade to increase your limit: https://github.com/features/copilot/plans"});let c=`Execution failed: ${a instanceof Error?a.message:a&&typeof a=="object"&&"toString"in a?ue(a):"Unknown error occurred"}`;this.emit("session.error",{errorType:"query",message:c,stack:a instanceof Error?a.stack:void 0})}finally{await ER(this.hooks?.sessionEnd,{timestamp:Date.now(),cwd:this.workingDir,reason:"complete"},this.logger);try{for(let a of r)a.shutdown&&await a.shutdown()}catch(a){this.logger.error(`Error during session shutdown: ${ue(a)}`)}}}},Noe=class extends Woe{repository;remoteSessionIds;constructor(e){super(e),this.repository=e.repository,this.remoteSessionIds=e.remoteSessionIds}async send(e){throw new Error("RemoteSession.send() is not implemented yet.")}async abort(){throw new Error("RemoteSession.abort() is not implemented yet.")}getMetadata(){return{sessionId:this.sessionId,startTime:this.startTime,modifiedTime:this.modifiedTime,summary:this.summary,isRemote:!0,repository:this.repository,remoteSessionIds:this.remoteSessionIds}}}});import ZzI from"node:path";async function U1t(t,e,I,l){I??=yD,l??=new Hs;let n=await rFt(e),{agents:r}=await GFt(l,I,t,ZzI.join(b8(),"agents"),n,!1);return r.map(a=>({name:a.id,displayName:a.displayName,description:a.description,tools:a.tools,prompt:a.prompt,mcpServers:a.mcpServers||{}}))}var i4e=m(()=>{"use strict";pFt();Ove();m8();Lse();xf()});import{spawn as WzI}from"child_process";import{join as NzI}from"path";async function S1t(t,e,I){let l,n;if(t.bash&&t.powershell)l=process.platform==="win32"?"powershell":"bash",n=l==="powershell"?t.powershell:t.bash;else if(t.bash)l="bash",n=t.bash;else if(t.powershell)l="powershell",n=t.powershell;else throw new Error("Neither 'bash' nor 'powershell' specified in hook command configuration");let r=YzI(l),a=(t.timeoutSec||30)*1e3,s=t.cwd&&I?NzI(I,t.cwd):I||process.cwd(),c={...process.env,...t.env||{}};return new Promise((o,i)=>{let G=WzI(r,[...l==="bash"?["--norc","--noprofile"]:["-nop","-nol"],"-c",n],{cwd:s,env:c,timeout:a}),b="",h="",p=!1,u=setTimeout(()=>{p=!0,G.kill()},a);G.stdout.on("data",W=>{b+=W.toString()}),G.stderr.on("data",W=>{h+=W.toString()}),G.on("error",W=>{clearTimeout(u),i(W)}),G.on("close",W=>{clearTimeout(u),p?i(new Error(`Hook command timed out after ${a/1e3} seconds`)):W!==0?i(new Error(`Hook command failed with code ${W}${h?`
|
|
1689
1689
|
Stderr: ${h}`:""}`)):o(b)}),e&&G.stdin.write(e),G.stdin.end()})}function YzI(t){return t==="bash"?process.platform==="win32"?"bash.exe":"bash":process.platform==="win32"?"pwsh.exe":"pwsh"}var O1t=m(()=>{"use strict"});var Bf,M1t,T1t=m(()=>{"use strict";qd();Bf=V.object({type:V.literal("command"),bash:V.string().optional(),powershell:V.string().optional(),cwd:V.string().optional(),env:V.record(V.string(),V.string()).optional(),timeoutSec:V.number().positive().optional()}).refine(t=>t.bash!==void 0||t.powershell!==void 0,{message:"At least one of 'bash' or 'powershell' must be specified"}),M1t=V.object({version:V.literal(1),hooks:V.object({sessionStart:V.array(Bf).optional(),sessionEnd:V.array(Bf).optional(),userPromptSubmitted:V.array(Bf).optional(),preToolUse:V.array(Bf).optional(),postToolUse:V.array(Bf).optional(),errorOccurred:V.array(Bf).optional()})})});import{readFile as VzI}from"fs/promises";import{join as yzI}from"path";async function j1t(t,e,I,l){I??={};let n=await RzI(t,l);if(n.length===0)return I;let r={sessionStart:I.sessionStart?[...I.sessionStart]:void 0,sessionEnd:I.sessionEnd?[...I.sessionEnd]:void 0,userPromptSubmitted:I.userPromptSubmitted?[...I.userPromptSubmitted]:void 0,preToolUse:I.preToolUse?[...I.preToolUse]:void 0,postToolUse:I.postToolUse?[...I.postToolUse]:void 0,errorOccurred:I.errorOccurred?[...I.errorOccurred]:void 0};for(let a of n)FzI(r,a,e);return r}async function RzI(t,e){let I=[],l=await gzI(t);for(let n of l)try{let r=await VzI(n,"utf-8"),a=JSON.parse(r),s=M1t.parse(a);I.push(s)}catch(r){e&&(r instanceof V.ZodError?e.error(`Invalid hook configuration in ${n}: ${JSON.stringify(r.errors)}`):r instanceof SyntaxError?e.error(`Invalid JSON in ${n}: ${r.message}`):e.error(`Error loading hook config from ${n}: ${String(r)}`))}return I}async function gzI(t){try{let e=gue(yzI(t,"**","*.json"));return await fH(e)}catch{return[]}}function FzI(t,e,I){if(e.version!==1)throw new Error(`Unsupported hooks config version: ${e.version}`);let l=e.hooks;for(let n of l.sessionStart??[])(t.sessionStart??=[]).push(zf(n,I,r=>({timestamp:r.timestamp,cwd:r.cwd,source:r.source,initialPrompt:r.initialPrompt}),r=>{}));for(let n of l.sessionEnd??[])(t.sessionEnd??=[]).push(zf(n,I,r=>({timestamp:r.timestamp,cwd:r.cwd,reason:r.reason}),r=>{}));for(let n of l.userPromptSubmitted??[])(t.userPromptSubmitted??=[]).push(zf(n,I,r=>({timestamp:r.timestamp,cwd:r.cwd,prompt:r.prompt}),r=>{}));for(let n of l.preToolUse??[])(t.preToolUse??=[]).push(zf(n,I,r=>({timestamp:r.timestamp,cwd:r.cwd,toolName:r.toolName,toolArgs:r.toolArgs}),r=>({permissionDecision:r?.permissionDecision,permissionDecisionReason:r?.permissionDecisionReason})));for(let n of l.postToolUse??[])(t.postToolUse??=[]).push(zf(n,I,r=>({timestamp:r.timestamp,cwd:r.cwd,toolName:r.toolName,toolArgs:r.toolArgs,toolResult:{resultType:r.toolResult.resultType,textResultForLlm:r.toolResult.textResultForLlm}}),r=>{}));for(let n of l.errorOccurred??[])(t.errorOccurred??=[]).push(zf(n,I,r=>({timestamp:r.timestamp,cwd:r.cwd,error:{message:r.error.message,name:r.error.name,stack:r.error.stack}}),r=>{}))}function zf(t,e,I,l){return async n=>{let r=JSON.stringify(I(n)),a=await e(t,r),s=AzI(a);return l(s)}}function AzI(t){let e=t.trim();if(e)try{return JSON.parse(e)}catch{return}}var D1t=m(()=>{"use strict";_pe();qd();h8();T1t()});var RD,wzI,XzI,EzI,HzI,vzI,CzI,JzI,fzI,LzI,kzI,xzI,BzI,zzI,UzI,SzI,OzI,MzI,TzI,jzI,DzI,KzI,PzI,qzI,_zI,$zI,eUI,tUI,d4e,HR,G4e=m(()=>{"use strict";qd();XA();LVe();zL();RD=ve({type:ct("text"),text:j()}),wzI=ve({type:ct("refusal"),refusal:j()}),XzI=ve({type:ct("image_url"),image_url:ve({url:j(),detail:wo(["auto","low","high"]).optional()})}),EzI=ve({type:ct("input_audio"),input_audio:ve({data:j(),format:ct("wav").or(ct("mp3"))})}),HzI=ve({type:ct("file"),file:ve({file_date:j().optional(),file_id:j().optional(),filename:j().optional()})}),vzI=Oc([RD,XzI,EzI,HzI]),CzI=ve({name:j(),arguments:j()}),JzI=ve({name:j(),input:j()}),fzI=ve({id:j(),type:ct("function"),function:CzI}),LzI=ve({id:j(),type:ct("custom"),custom:JzI}),kzI=Oc([fzI,LzI]),xzI=ve({name:j(),arguments:j()}),BzI=ve({id:j()}),zzI=ve({content:Oc([j(),Kr(RD)]),role:ct("developer"),name:j().optional()}),UzI=ve({content:Oc([j(),Kr(RD)]),role:ct("system"),name:j().optional()}),SzI=ve({content:Oc([j(),Kr(vzI)]),role:ct("user"),name:j().optional()}),OzI=ve({content:Oc([j(),Kr(Oc([RD,wzI]))]).nullable().optional(),role:ct("assistant"),name:j().optional(),refusal:j().nullable().optional(),audio:BzI.nullable().optional(),function_call:xzI.nullable().optional(),tool_calls:Kr(kzI).optional()}),MzI=ve({content:Oc([j(),Kr(RD)]),role:ct("tool"),tool_call_id:j()}),TzI=ve({content:j().nullable(),role:ct("function"),name:j()}),jzI=Oc([zzI,UzI,SzI,OzI,MzI,TzI]),DzI=ve({type:ct("copilot"),text:j(),isStreaming:xI().optional()}),KzI=ve({type:ct("error"),text:j()}),PzI=ve({type:ct("info"),text:j()}),qzI=ve({type:ct("user"),text:j()}),_zI=ve({type:ct("tool_call_requested"),callId:j(),name:j(),toolTitle:j().optional(),intentionSummary:j().nullable(),arguments:fVe,partialOutput:j().optional(),isHidden:xI().optional(),isAlwaysExpanded:xI().optional(),showNoContent:xI().optional()}),$zI=ve({type:ct("tool_call_completed"),callId:j(),name:j(),toolTitle:j().optional(),intentionSummary:j().nullable(),result:Oc([ve({type:ct("success"),log:j(),markdown:xI().optional()}),ve({type:ct("failure"),log:j(),markdown:xI().optional()}),ve({type:ct("rejected"),markdown:xI().optional()}),ve({type:ct("denied"),log:j(),markdown:xI().optional()})]),arguments:fVe,isHidden:xI().optional(),isAlwaysExpanded:xI().optional(),showNoContent:xI().optional()}),eUI=Oc([DzI,KzI,PzI,qzI,_zI,$zI]),tUI=eUI.and(ve({id:j(),timestamp:vK.date()})),d4e=ve({sessionId:j(),startTime:vK.date(),chatMessages:Kr(jzI),timeline:Kr(tUI),selectedModel:wo(zC).optional()}),HR=cxe(d4e.parse,"history-session")});var jn,b4e,IUI,lUI,nUI,rUI,aUI,sUI,cUI,oUI,iUI,dUI,GUI,bUI,mUI,hUI,pUI,uUI,ZUI,WUI,NUI,YUI,VUI,yUI,RUI,gUI,FUI,AUI,QUI,wUI,K1t,m4e=m(()=>{"use strict";qd();G4e();jn=ve({id:j().uuid(),timestamp:j().datetime(),parentId:j().uuid().nullable(),ephemeral:xI().optional()}),b4e=ve({parentToolCallId:j().optional()}),IUI=jn.extend({type:ct("session.start"),data:ve({sessionId:j(),version:al(),producer:j(),copilotVersion:j(),startTime:j().datetime(),selectedModel:j().optional()})}),lUI=jn.extend({type:ct("session.resume"),data:ve({resumeTime:j().datetime(),eventCount:al()})}),nUI=jn.extend({type:ct("session.error"),data:ve({errorType:j(),message:j(),stack:j().optional()})}),rUI=jn.extend({type:ct("session.info"),data:ve({infoType:j(),message:j()})}),aUI=jn.extend({type:ct("session.model_change"),data:ve({previousModel:j().optional(),newModel:j()})}),sUI=jn.extend({type:ct("session.import_legacy"),data:ve({legacySession:d4e,importTime:j().datetime(),sourceFile:j()})}),cUI=jn.extend({type:ct("session.handoff"),data:ve({handoffTime:j().datetime(),sourceType:wo(["remote","local"]),repository:ve({owner:j(),name:j(),branch:j().optional()}).optional(),context:j().optional(),summary:j().optional(),remoteSessionId:j().optional()})}),oUI=jn.extend({type:ct("session.idle"),ephemeral:ct(!0),data:ve({})}),iUI=jn.extend({type:ct("session.truncation"),data:ve({tokenLimit:al(),preTruncationTokensInMessages:al(),preTruncationMessagesLength:al(),postTruncationTokensInMessages:al(),postTruncationMessagesLength:al(),tokensRemovedDuringTruncation:al(),messagesRemovedDuringTruncation:al(),performedBy:j()})}),dUI=ve({type:wo(["file","directory"]),path:j(),displayName:j()}),GUI=jn.extend({type:ct("user.message"),data:ve({content:j(),attachments:Kr(dUI).optional()})}),bUI=jn.extend({type:ct("assistant.turn_start"),data:ve({turnId:j()})}),mUI=jn.extend({type:ct("assistant.message"),data:ve({messageId:j(),content:j(),chunkContent:j().optional(),totalResponseSizeBytes:al().optional(),toolRequests:Kr(ve({toolCallId:j(),name:j(),arguments:hp()})).optional()}).merge(b4e)}),hUI=jn.extend({type:ct("assistant.intent"),ephemeral:ct(!0),data:ve({intent:j()})}),pUI=jn.extend({type:ct("assistant.turn_end"),data:ve({turnId:j()})}),uUI=jn.extend({type:ct("assistant.usage"),ephemeral:ct(!0),data:ve({model:j().optional(),inputTokens:al().optional(),outputTokens:al().optional(),cacheReadTokens:al().optional(),cacheWriteTokens:al().optional(),cost:al().optional(),duration:al().optional(),initiator:j().optional(),quotaSnapshots:cb(j(),ve({isUnlimitedEntitlement:xI(),entitlementRequests:al(),usedRequests:al(),usageAllowedWithExhaustedQuota:xI(),overage:al(),overageAllowedWithExhaustedQuota:xI(),remainingPercentage:al(),resetDate:Nde().optional()})).optional()})}),ZUI=jn.extend({type:ct("abort"),data:ve({reason:j()})}),WUI=jn.extend({type:ct("tool.user_requested"),data:ve({toolCallId:j(),toolName:j(),arguments:hp()})}),NUI=jn.extend({type:ct("tool.execution_start"),data:ve({toolCallId:j(),toolName:j(),arguments:hp()}).merge(b4e)}),YUI=jn.extend({type:ct("tool.execution_partial_result"),ephemeral:ct(!0),data:ve({toolCallId:j(),partialOutput:j()})}),VUI=jn.extend({type:ct("tool.execution_complete"),data:ve({toolCallId:j(),success:xI(),isUserRequested:xI().optional(),result:ve({content:j()}).optional(),error:ve({message:j(),code:j().optional()}).optional()}).merge(b4e)}),yUI=jn.extend({type:ct("custom_agent.started"),data:ve({toolCallId:j(),agentName:j(),agentDisplayName:j(),agentDescription:j()})}),RUI=jn.extend({type:ct("custom_agent.completed"),data:ve({toolCallId:j(),agentName:j()})}),gUI=jn.extend({type:ct("custom_agent.failed"),data:ve({toolCallId:j(),agentName:j(),error:j()})}),FUI=jn.extend({type:ct("custom_agent.selected"),data:ve({agentName:j(),agentDisplayName:j(),tools:Kr(j()).nullable()})}),AUI=jn.extend({type:ct("hook.start"),data:ve({hookInvocationId:j(),hookType:j(),input:hp()})}),QUI=jn.extend({type:ct("hook.end"),data:ve({hookInvocationId:j(),hookType:j(),output:hp(),success:xI(),error:ve({message:j(),stack:j().optional()}).optional()})}),wUI=jn.extend({type:ct("system.message"),data:ve({content:j(),role:wo(["system","developer"]),name:j().optional(),metadata:ve({promptVersion:j().optional(),variables:cb(hp()).optional()}).optional()})}),K1t=wL("type",[IUI,lUI,nUI,oUI,rUI,aUI,sUI,cUI,iUI,GUI,bUI,hUI,mUI,pUI,uUI,ZUI,WUI,NUI,YUI,VUI,yUI,RUI,gUI,FUI,AUI,QUI,wUI])});var vR,P1t=m(()=>{"use strict";m4e();zL();vR=oxe(K1t.parse,"session")});var q1t,h4e,_1t,$1t,eHt,tHt,IHt=m(()=>{q1t=t=>{t=1831565813+(t|=0)|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296},h4e=class{constructor(e){this.dictionaries=void 0,this.length=void 0,this.separator=void 0,this.style=void 0,this.seed=void 0;let{length:I,separator:l,dictionaries:n,style:r,seed:a}=e;this.dictionaries=n,this.separator=l,this.length=I,this.style=r,this.seed=a}generate(){if(!this.dictionaries)throw new Error('Cannot find any dictionary. Please provide at least one, or leave the "dictionary" field empty in the config object');if(this.length<=0)throw new Error("Invalid length provided");if(this.length>this.dictionaries.length)throw new Error(`The length cannot be bigger than the number of dictionaries.
|
|
1690
1690
|
Length provided: ${this.length}. Number of dictionaries provided: ${this.dictionaries.length}`);let e=this.seed;return this.dictionaries.slice(0,this.length).reduce((I,l)=>{let n;e?(n=(a=>{if(typeof a=="string"){let s=a.split("").map(o=>o.charCodeAt(0)).reduce((o,i)=>o+i,1),c=Math.floor(Number(s));return q1t(c)}return q1t(a)})(e),e=4294967296*n):n=Math.random();let r=l[Math.floor(n*l.length)]||"";if(this.style==="lowerCase")r=r.toLowerCase();else if(this.style==="capital"){let[a,...s]=r.split("");r=a.toUpperCase()+s.join("")}else this.style==="upperCase"&&(r=r.toUpperCase());return I?`${I}${this.separator}${r}`:`${r}`},"")}},_1t={separator:"_",dictionaries:[]},$1t=t=>{let e=[...t&&t.dictionaries||_1t.dictionaries],I={..._1t,...t,length:t&&t.length||e.length,dictionaries:e};if(!t||!t.dictionaries||!t.dictionaries.length)throw new Error('A "dictionaries" array must be provided. This is a breaking change introduced starting from Unique Name Generator v4. Read more about the breaking change here: https://github.com/andreasonny83/unique-names-generator#migration-guide');return new h4e(I).generate()},eHt=["able","above","absent","absolute","abstract","abundant","academic","acceptable","accepted","accessible","accurate","accused","active","actual","acute","added","additional","adequate","adjacent","administrative","adorable","advanced","adverse","advisory","aesthetic","afraid","aggregate","aggressive","agreeable","agreed","agricultural","alert","alive","alleged","allied","alone","alright","alternative","amateur","amazing","ambitious","amused","ancient","angry","annoyed","annual","anonymous","anxious","appalling","apparent","applicable","appropriate","arbitrary","architectural","armed","arrogant","artificial","artistic","ashamed","asleep","assistant","associated","atomic","attractive","automatic","autonomous","available","average","awake","aware","awful","awkward","back","bad","balanced","bare","basic","beautiful","beneficial","better","bewildered","big","binding","biological","bitter","bizarre","blank","blonde","blushing","boiling","bold","bored","boring","bottom","brainy","brave","breakable","breezy","brief","bright","brilliant","broad","broken","bumpy","burning","busy","calm","capable","careful","casual","causal","cautious","central","certain","changing","characteristic","charming","cheap","cheerful","chemical","chief","chilly","chosen","chronic","chubby","circular","civic","civil","classic","classical","clean","clear","clever","clinical","close","closed","cloudy","clumsy","coastal","cognitive","coherent","cold","collective","colorful","colossal","coloured","colourful","combined","comfortable","commercial","common","compact","comparable","comparative","compatible","competent","competitive","complete","complex","complicated","comprehensive","compulsory","conceptual","concerned","concrete","condemned","confident","confidential","confused","conscious","conservation","considerable","consistent","constant","constitutional","contemporary","content","continental","continued","continuing","continuous","controlled","controversial","convenient","conventional","convinced","convincing","cooing","cool","cooperative","corporate","correct","corresponding","costly","courageous","creative","creepy","criminal","critical","crooked","crowded","crucial","crude","cruel","cuddly","cultural","curious","curly","current","curved","cute","daily","damaged","damp","dangerous","dark","dead","deafening","dear","decent","decisive","deep","defeated","defensive","defiant","definite","deliberate","delicate","delicious","delighted","delightful","democratic","dependent","depressed","desirable","desperate","detailed","determined","developed","developing","devoted","different","difficult","digital","diplomatic","direct","dirty","disappointed","disastrous","disciplinary","disgusted","distant","distinct","distinctive","distinguished","disturbed","disturbing","diverse","divine","dizzy","domestic","dominant","double","doubtful","drab","dramatic","dreadful","driving","dry","dual","due","dull","dusty","dutch","dying","dynamic","eager","early","eastern","easy","economic","educational","eerie","effective","efficient","elaborate","elated","elderly","eldest","electoral","electric","electrical","electronic","elegant","eligible","embarrassed","embarrassing","emotional","empirical","empty","enchanting","encouraging","endless","energetic","enormous","enthusiastic","entire","entitled","envious","environmental","equal","equivalent","essential","established","estimated","ethical","eventual","everyday","evident","evil","evolutionary","exact","excellent","exceptional","excess","excessive","excited","exciting","exclusive","existing","exotic","expected","expensive","experienced","experimental","explicit","extended","extensive","external","extra","extraordinary","extreme","exuberant","faint","fair","faithful","familiar","famous","fancy","fantastic","far","fascinating","fashionable","fast","fatal","favourable","favourite","federal","fellow","few","fierce","final","financial","fine","firm","fiscal","fit","fixed","flaky","flat","flexible","fluffy","fluttering","flying","following","fond","foolish","foreign","formal","formidable","forthcoming","fortunate","forward","fragile","frail","frantic","free","frequent","fresh","friendly","frightened","front","frozen","full","fun","functional","fundamental","funny","furious","future","fuzzy","gastric","general","generous","genetic","gentle","genuine","geographical","giant","gigantic","given","glad","glamorous","gleaming","global","glorious","golden","good","gorgeous","gothic","governing","graceful","gradual","grand","grateful","greasy","great","grieving","grim","gross","grotesque","growing","grubby","grumpy","guilty","handsome","happy","hard","harsh","head","healthy","heavy","helpful","helpless","hidden","high","hilarious","hissing","historic","historical","hollow","holy","homely","hon","honest","horizontal","horrible","hostile","hot","huge","human","hungry","hurt","hushed","husky","icy","ideal","identical","ideological","ill","illegal","imaginative","immediate","immense","implicit","important","impossible","impressed","impressive","improved","inadequate","inc","inclined","increased","increasing","incredible","independent","indirect","individual","industrial","inevitable","influential","informal","inherent","initial","injured","inland","inner","innocent","innovative","inquisitive","instant","institutional","insufficient","intact","integral","integrated","intellectual","intelligent","intense","intensive","interested","interesting","interim","interior","intermediate","internal","international","invisible","involved","irrelevant","isolated","itchy","jealous","jittery","joint","jolly","joyous","judicial","juicy","junior","just","keen","key","kind","known","labour","large","late","latin","lazy","leading","left","legal","legislative","legitimate","lengthy","lesser","level","lexical","liable","light","like","likely","limited","linear","linguistic","liquid","literary","little","live","lively","living","local","logical","lonely","long","loose","lost","loud","lovely","low","loyal","ltd","lucky","mad","magic","magnetic","magnificent","main","major","mammoth","managerial","managing","manual","many","marginal","marine","marked","married","marvellous","mass","massive","mathematical","mature","maximum","mean","meaningful","mechanical","medical","medieval","melodic","melted","mental","mere","metropolitan","mid","middle","mighty","mild","military","miniature","minimal","minimum","ministerial","minor","miserable","misleading","missing","misty","mixed","moaning","mobile","moderate","modern","modest","molecular","monetary","monthly","moral","motionless","muddy","multiple","mushy","musical","mutual","mysterious","naked","narrow","nasty","national","natural","naughty","naval","near","nearby","neat","necessary","negative","neighbouring","nervous","net","neutral","new","nice","noble","noisy","normal","northern","nosy","notable","novel","nuclear","numerous","nursing","nutritious","nutty","obedient","objective","obliged","obnoxious","obvious","occasional","occupational","odd","official","ok","okay","old","only","open","operational","opposite","optimistic","ordinary","organic","organisational","original","orthodox","other","outdoor","outer","outrageous","outside","outstanding","overall","overseas","overwhelming","painful","pale","panicky","parallel","parental","parliamentary","partial","particular","passing","passive","past","patient","payable","peaceful","peculiar","perfect","permanent","persistent","personal","petite","philosophical","physical","plain","planned","plastic","pleasant","pleased","poised","polite","poor","popular","positive","possible","potential","powerful","practical","precious","precise","preferred","pregnant","preliminary","premier","prepared","present","presidential","pretty","previous","prickly","primary","prime","principal","printed","prior","private","probable","productive","professional","profitable","profound","progressive","prominent","promising","proper","proposed","prospective","protective","proud","provincial","psychiatric","psychological","public","puny","pure","purring","puzzled","quaint","qualified","quarrelsome","querulous","quick","quickest","quiet","quintessential","quixotic","racial","radical","rainy","random","rapid","rare","raspy","rational","ratty","raw","ready","real","realistic","rear","reasonable","recent","reduced","redundant","regional","registered","regular","regulatory","related","relative","relaxed","relevant","reliable","relieved","religious","reluctant","remaining","remarkable","remote","renewed","representative","repulsive","required","resident","residential","resonant","respectable","respective","responsible","resulting","retail","retired","revolutionary","rich","ridiculous","right","rigid","ripe","rising","rival","roasted","robust","rolling","romantic","rotten","rough","round","royal","rubber","rude","ruling","running","rural","sacred","sad","safe","salty","satisfactory","satisfied","scared","scary","scattered","scientific","scornful","scrawny","screeching","secondary","secret","secure","select","selected","selective","selfish","semantic","senior","sensible","sensitive","separate","serious","severe","shaggy","shaky","shallow","shared","sharp","sheer","shiny","shivering","shocked","short","shrill","shy","sick","significant","silent","silky","silly","similar","simple","single","skilled","skinny","sleepy","slight","slim","slimy","slippery","slow","small","smart","smiling","smoggy","smooth","social","soft","solar","sole","solid","sophisticated","sore","sorry","sound","sour","southern","spare","sparkling","spatial","special","specific","specified","spectacular","spicy","spiritual","splendid","spontaneous","sporting","spotless","spotty","square","squealing","stable","stale","standard","static","statistical","statutory","steady","steep","sticky","stiff","still","stingy","stormy","straight","straightforward","strange","strategic","strict","striking","striped","strong","structural","stuck","subjective","subsequent","substantial","subtle","successful","successive","sudden","sufficient","suitable","sunny","super","superb","superior","supporting","supposed","supreme","sure","surprised","surprising","surrounding","surviving","suspicious","sweet","swift","symbolic","sympathetic","systematic","tall","tame","tart","tasteless","tasty","technical","technological","teenage","temporary","tender","tense","terrible","territorial","testy","then","theoretical","thick","thin","thorough","thoughtful","thoughtless","thundering","tight","tiny","tired","top","total","tough","toxic","traditional","tragic","tremendous","tricky","tropical","troubled","typical","ugliest","ugly","ultimate","unable","unacceptable","unaware","uncertain","unchanged","uncomfortable","unconscious","underground","underlying","unemployed","uneven","unexpected","unfair","unfortunate","unhappy","uniform","uninterested","unique","united","universal","unknown","unlikely","unnecessary","unpleasant","unsightly","unusual","unwilling","upper","upset","uptight","urban","urgent","used","useful","useless","usual","vague","valid","valuable","variable","varied","various","varying","vast","verbal","vertical","very","vicarious","vicious","victorious","violent","visible","visiting","visual","vital","vitreous","vivacious","vivid","vocal","vocational","voiceless","voluminous","voluntary","vulnerable","wandering","warm","wasteful","watery","weak","wealthy","weary","wee","weekly","weird","welcome","well","western","wet","whispering","whole","wicked","wide","widespread","wild","wilful","willing","willowy","wily","wise","wispy","wittering","witty","wonderful","wooden","working","worldwide","worried","worrying","worthwhile","worthy","written","wrong","xenacious","xenial","xenogeneic","xeric","xerothermic","yabbering","yammering","yappiest","yappy","yawning","yearling","yearning","yeasty","yelling","yelping","yielding","yodelling","young","youngest","youthful","ytterbic","yucky","yummy","zany","zealous","zeroth","zestful","zesty","zippy","zonal","zoophagous","zygomorphic","zygotic"],tHt=["aardvark","aardwolf","albatross","alligator","alpaca","amphibian","anaconda","angelfish","anglerfish","ant","anteater","antelope","antlion","ape","aphid","armadillo","asp","baboon","badger","bandicoot","barnacle","barracuda","basilisk","bass","bat","bear","beaver","bedbug","bee","beetle","bird","bison","blackbird","boa","boar","bobcat","bobolink","bonobo","bovid","bug","butterfly","buzzard","camel","canid","canidae","capybara","cardinal","caribou","carp","cat","caterpillar","catfish","catshark","cattle","centipede","cephalopod","chameleon","cheetah","chickadee","chicken","chimpanzee","chinchilla","chipmunk","cicada","clam","clownfish","cobra","cockroach","cod","condor","constrictor","coral","cougar","cow","coyote","crab","crane","crawdad","crayfish","cricket","crocodile","crow","cuckoo","damselfly","deer","dingo","dinosaur","dog","dolphin","donkey","dormouse","dove","dragon","dragonfly","duck","eagle","earthworm","earwig","echidna","eel","egret","elephant","elk","emu","ermine","falcon","felidae","ferret","finch","firefly","fish","flamingo","flea","fly","flyingfish","fowl","fox","frog","galliform","gamefowl","gayal","gazelle","gecko","gerbil","gibbon","giraffe","goat","goldfish","goose","gopher","gorilla","grasshopper","grouse","guan","guanaco","guineafowl","gull","guppy","haddock","halibut","hamster","hare","harrier","hawk","hedgehog","heron","herring","hippopotamus","hookworm","hornet","horse","hoverfly","hummingbird","hyena","iguana","impala","jackal","jaguar","jay","jellyfish","junglefowl","kangaroo","kingfisher","kite","kiwi","koala","koi","krill","ladybug","lamprey","landfowl","lark","leech","lemming","lemur","leopard","leopon","limpet","lion","lizard","llama","lobster","locust","loon","louse","lungfish","lynx","macaw","mackerel","magpie","mammal","manatee","mandrill","marlin","marmoset","marmot","marsupial","marten","mastodon","meadowlark","meerkat","mink","minnow","mite","mockingbird","mole","mollusk","mongoose","monkey","moose","mosquito","moth","mouse","mule","muskox","narwhal","newt","nightingale","ocelot","octopus","opossum","orangutan","orca","ostrich","otter","owl","ox","panda","panther","parakeet","parrot","parrotfish","partridge","peacock","peafowl","pelican","penguin","perch","pheasant","pig","pigeon","pike","pinniped","piranha","planarian","platypus","pony","porcupine","porpoise","possum","prawn","primate","ptarmigan","puffin","puma","python","quail","quelea","quokka","rabbit","raccoon","rat","rattlesnake","raven","reindeer","reptile","rhinoceros","roadrunner","rodent","rook","rooster","roundworm","sailfish","salamander","salmon","sawfish","scallop","scorpion","seahorse","shark","sheep","shrew","shrimp","silkworm","silverfish","skink","skunk","sloth","slug","smelt","snail","snake","snipe","sole","sparrow","spider","spoonbill","squid","squirrel","starfish","stingray","stoat","stork","sturgeon","swallow","swan","swift","swordfish","swordtail","tahr","takin","tapir","tarantula","tarsier","termite","tern","thrush","tick","tiger","tiglon","toad","tortoise","toucan","trout","tuna","turkey","turtle","tyrannosaurus","unicorn","urial","vicuna","viper","vole","vulture","wallaby","walrus","warbler","wasp","weasel","whale","whippet","whitefish","wildcat","wildebeest","wildfowl","wolf","wolverine","wombat","woodpecker","worm","wren","xerinae","yak","zebra"]});import{execFile as XUI}from"node:child_process";import{promisify as EUI}from"node:util";async function lHt(t){try{let{stdout:e}=await n2("git",["status","--porcelain"],{cwd:t,encoding:"utf8",timeout:5e3,maxBuffer:1048576}),I=e.split(`
|
|
1691
1691
|
`).filter(a=>a.length>0),l=0,n=0,r=0;for(let a of I){if(a.length<2)continue;let s=a[0],c=a[1];s==="?"&&c==="?"?r++:(s!==" "&&s!=="?"&&l++,c!==" "&&c!=="?"&&n++)}return{staged:l,unstaged:n,untracked:r,hasChanges:I.length>0}}catch{return{staged:0,unstaged:0,untracked:0,hasChanges:!1}}}async function HUI(t){let{stdout:e}=await n2("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:t,encoding:"utf8",timeout:5e3});return e.trim()}async function vUI(t){try{let{stdout:e}=await n2("git",["rev-parse","--abbrev-ref","HEAD"],{cwd:t,encoding:"utf8",timeout:5e3}),I=e.trim();if(!I||I==="HEAD")return"origin";let{stdout:l}=await n2("git",["config",`branch.${I}.remote`],{cwd:t,encoding:"utf8",timeout:5e3});return l.trim()||"origin"}catch{return"origin"}}async function CUI(t){let e=await vUI(t);try{let{stdout:I}=await n2("git",["symbolic-ref",`refs/remotes/${e}/HEAD`],{cwd:t,encoding:"utf8",timeout:5e3}),l=I.match(new RegExp(`refs/remotes/${e}/(.+)`));if(l)return l[1].trim()}catch{}try{return await n2("git",["rev-parse","--verify",`refs/remotes/${e}/main`],{cwd:t,encoding:"utf8",timeout:5e3}),"main"}catch{}try{return await n2("git",["rev-parse","--verify",`refs/remotes/${e}/master`],{cwd:t,encoding:"utf8",timeout:5e3}),"master"}catch{return"main"}}async function JUI(t,e){try{return await n2("git",["rev-parse","--verify",`refs/heads/${e}`],{cwd:t,encoding:"utf8",timeout:5e3}),!0}catch{return!1}}async function fUI(t,e){let l=["adjectives","animals"],r=[];for(let a of l)a.toLowerCase()==="adjectives"&&r.push(eHt),a.toLowerCase()==="animals"&&r.push(tHt);if(r.length===0)return`${e}/session${Date.now()}`;for(let a=0;a<5;a++){let s=`${e}/${$1t({dictionaries:r,length:r.length,separator:"-"})}`;if(!await JUI(t,s))return s}return`${e}/session${Date.now()}`}async function LUI(t){return fUI(t,"copilot")}async function nHt(t){try{let[e,I,l,n]=await Promise.all([HUI(t),fse(t),CUI(t),LUI(t)]);if(!I)throw new Error("Could not determine GitHub repository from git remotes");return{repository:`${I.owner}/${I.name}`,baseBranch:l,headBranch:e,asyncBranch:n}}catch(e){throw new Error(`Failed to get repository info: ${e instanceof Error?e.message:String(e)}`)}}async function rHt(t,e=process.cwd()){try{await n2("git",["checkout",t],{cwd:e,encoding:"utf8",timeout:5e3,maxBuffer:10*1024*1024})}catch(I){let l=I instanceof Error?I.message:String(I);throw new Error(`Failed to switch to branch '${t}': ${l}`)}}var n2,aHt=m(()=>{"use strict";IHt();Sve();n2=EUI(XUI)});import{existsSync as kUI}from"fs";import{unlink as p4e}from"fs/promises";import{join as sHt}from"path";function cHt(t){if(t.role==="user")return typeof t.content=="string"?t.content:t.content.find(e=>e.type==="text")?.text}async function xUI(t){if(kUI(t))try{return await wje(t,e=>{if(e.trim())try{let I=JSON.parse(e);if(I.type==="session.import_legacy"){let l=I.data.legacySession.chatMessages.find(n=>n.role==="user");if(l?.content){let n=cHt(l);if(n)return u4e(n)}}if(I.type==="user.message"){let l=I.data.content;if(l)return u4e(l)}return}catch{return}})}catch{return}}function u4e(t){let e=t.lastIndexOf("<reminder>");e!==-1&&(t=t.substring(0,e).trim());let I=t.replace(/\s+/g," ").trim();return I.length>75&&(I=I.substring(0,55).trim()+"..."),I=I.split("").filter(l=>{let n=l.charCodeAt(0);return n>=32&&n!==127}).join(""),I}var Yoe,Z4e,oHt=m(()=>{"use strict";EI();ny();O1t();qVe();D1t();xf();G4e();P1t();hj();aHt();Yoe=class{constructor(e,I,l,n=!1,r){this.session=e;this.logger=I;this.flushDebounceMs=l;this.shouldSaveSession=n;this.legacySourceFile=r;this.unsubscribe=this.session.on("*",a=>{a.ephemeral||(this.unflushedEvents.push(a),!this.shouldSaveSession&&a.type==="user.message"&&(this.shouldSaveSession=!0),a.type!=="session.resume"&&this.shouldSaveSession&&(this.flushTimer&&clearTimeout(this.flushTimer),this.flushTimer=setTimeout(()=>{this.flush().catch(s=>{this.logger.error(`Error flushing session ${this.session.sessionId}: ${s instanceof Error?s.message:String(s)}`)})},this.flushDebounceMs)))})}flushTimer=null;unflushedEvents=[];migratedLegacy=!1;isFlushing=!1;needsFlushAfterCurrent=!1;unsubscribe;dispose(){this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),this.unsubscribe()}async flush(){if(!this.shouldSaveSession||this.unflushedEvents.length===0)return;if(this.isFlushing){this.needsFlushAfterCurrent=!0;return}this.isFlushing=!0,this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null);let e=this.unflushedEvents;this.unflushedEvents=[];try{if(await vR.append(e,this.session.sessionId),this.logger.debug(`Flushed ${e.length} events to session ${this.session.sessionId}`),this.legacySourceFile&&!this.migratedLegacy){this.logger.debug(`Migrated legacy session ${this.session.sessionId} from ${this.legacySourceFile}`);try{await p4e(this.legacySourceFile)}catch(I){this.logger.error(`Failed to delete legacy session file ${this.legacySourceFile}: ${ue(I)}`)}this.migratedLegacy=!0}}catch(I){this.logger.error(`Failed to flush events for ${this.session.sessionId}: ${I instanceof Error?I.message:String(I)}`),this.unflushedEvents.unshift(...e)}finally{this.isFlushing=!1,this.needsFlushAfterCurrent&&(this.needsFlushAfterCurrent=!1,await this.flush())}}};Z4e=class{sessionWriters={};copilotVersion;flushDebounceMs;logger;constructor({version:e,flushDebounceMs:I,...l}){this.logger=l.logger||new Hs,this.copilotVersion=e||"unknown",this.flushDebounceMs=I||100}async createSession(e,I=!0){let l=await this.loadHooks(e),n=new l2({...e,hooks:l,startTime:e?.startTime||new Date});return this.sessionWriters[n.sessionId]=new Yoe(n,this.logger,this.flushDebounceMs),I&&n.emit("session.start",{sessionId:n.sessionId,version:1,producer:"copilot-agent",copilotVersion:this.copilotVersion,startTime:n.startTime.toISOString(),selectedModel:e?.model}),n}async loadHooks(e){let I=e?.workingDirectory||process.cwd(),l=await ef(I),n=l.found?l.gitRoot:I,r=sHt(n,".github","hooks");return j1t(r,(s,c)=>S1t(s,c,n),e?.hooks,this.logger)}async getSession(e,I=!0){let l,n;try{l=await this.loadSession(e)}catch{try{let r=await this.loadLegacySession(e);l=r.session,n=r.legacySourceFile}catch{return}}return this.sessionWriters[e.sessionId]||(this.sessionWriters[e.sessionId]=new Yoe(l,this.logger,this.flushDebounceMs,!0,n)),I&&l.emit("session.resume",{resumeTime:new Date().toISOString(),eventCount:l.getEvents().length}),l}async getLastSession(e={}){let I=await this.listSessions();if(I.length===0)return;I.sort((n,r)=>r.modifiedTime.getTime()-n.modifiedTime.getTime());let l=I[0].sessionId;return await this.getSession({...e,sessionId:l})}async saveSession(e){e instanceof l2&&await this.sessionWriters[e.sessionId]?.flush()}async loadSession(e){let I=await vR.load(e.sessionId);return await l2.fromEvents(I,e)}async loadLegacySession(e){let l=(await HR.directoryFiles()).filter(c=>{let o=c.match(/^session_(.+)_(\d+)\.json$/);return o&&o[1]===e.sessionId});if(l.length===0)throw new Error(`Legacy session ${e.sessionId} not found`);let n=l[0];l.length>1&&this.logger.info(`Multiple legacy sessions found for ${e.sessionId}, using newest`);let r=await HR.load(n);if(!r)throw new Error(`Failed to load legacy session from ${n}`);let a=new Date(r.startTime),s=new l2({...e,sessionId:r.sessionId,startTime:a});return s.emit("session.start",{sessionId:r.sessionId,version:1,producer:"copilot-agent",copilotVersion:this.copilotVersion,startTime:a.toISOString(),selectedModel:r.selectedModel}),s.emit("session.import_legacy",{legacySession:{sessionId:r.sessionId,startTime:a,chatMessages:r.chatMessages,timeline:r.timeline,selectedModel:r.selectedModel},importTime:new Date().toISOString(),sourceFile:n}),this.logger.info(`Loaded legacy session ${e.sessionId} from ${n}`),{session:s,legacySourceFile:HR.path(n.replace(/\.json$/,""))}}async listSessions(){let e=await vR.directoryFilesWithMetadata(),I=await HR.directoryFilesWithMetadata(),l=await Promise.all(e.map(async a=>{let s=a.file.replace(".jsonl",""),c=vR.path(s),o=await xUI(c);return{sessionId:s,startTime:a.birthtime,modifiedTime:a.mtime,summary:o,isRemote:!1}})),n=(await Promise.all(I.map(async a=>{let s=a.file.match(/^session_(.+)_(\d+)\.json$/);if(!s)return null;let c=s[1],o;try{let i=await HR.load(a.file.replace(/\.json$/,""));if(i){let d=i.chatMessages?.find(G=>G.role==="user");if(d?.content){let G=cHt(d);G&&(o=u4e(G))}}}catch{}return{sessionId:c,startTime:a.birthtime,modifiedTime:a.mtime,summary:o,isRemote:!1}}))).filter(a=>a!==null);this.logger.debug(`Found ${l.length} JSONL sessions and ${n.length} legacy sessions`);let r=new Map;for(let a of n)r.set(a.sessionId,a);for(let a of l)r.set(a.sessionId,a);return Array.from(r.values()).sort((a,s)=>s.modifiedTime.getTime()-a.modifiedTime.getTime())}async deleteSession(e){await this.closeSession(e);let I=vR.path(e);try{await p4e(I),this.logger.info(`Deleted session file ${I}`);return}catch{let r=(await HR.directoryFiles()).filter(a=>{let s=a.match(/^session_(.+)_(\d+)\.json$/);return s&&s[1]===e});if(r.length===0)throw new Error(`Session file not found for ${e}`);for(let a of r){let s=HR.path(a.replace(/\.json$/,""));this.logger.info(`Deleting legacy session file ${s}`),await p4e(s)}}}async closeSession(e){this.logger.info(`Closing session ${e}`);let I=this.sessionWriters[e];I&&(await I.flush(),I.dispose(),delete this.sessionWriters[e])}getSessionsDirectory(){return sHt(vR.home(),vR.directory())}setLogger(e){this.logger=e}async*handoffSession(e,I){if(!(e instanceof Noe))throw new Error("Can only handoff RemoteSession instances to local");let l=e.getMetadata();if(!l.repository)throw new Error("Remote session missing repository information");this.logger.info(`Handing off remote session ${l.sessionId} to local...`),yield{step:"validate-repo",status:"in-progress"};let n=process.cwd(),r;try{r=await nHt(n)}catch(d){throw new Error(`Not in a git repository. Please navigate to your repository directory.
|