@github/copilot 0.0.342-2 → 0.0.342-3

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 CHANGED
@@ -1807,7 +1807,7 @@ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
1807
1807
 
1808
1808
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
1809
1809
  `);this.baseURL=s.baseURL,this.timeout=s.timeout??gDe.DEFAULT_TIMEOUT,this.logger=s.logger??console;let o="warn";this.logLevel=o,this.logLevel=S_e(s.logLevel,"ClientOptions.logLevel",this)??S_e(N2("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??o,this.fetchOptions=s.fetchOptions,this.maxRetries=s.maxRetries??2,this.fetch=s.fetch??O4t(),Wr(this,fRe,Akt,"f"),this._options=s,this.apiKey=typeof l=="string"?l:"Missing Key",this.organization=n,this.project=r,this.webhookSecret=I}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:l}){}async authHeaders(e){return En([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return uDe(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${qV}`}defaultIdempotencyKey(){return`stainless-node-retry-${aDe()}`}makeStatusError(e,l,n,r){return uu.generate(e,l,n,r)}async _callApiKey(){let e=this._options.apiKey;if(typeof e!="function")return!1;let l;try{l=await e()}catch(n){throw n instanceof yn?n:new yn(`Failed to get token from 'apiKey' function: ${n.message}`,{cause:n})}if(typeof l!="string"||!l)throw new yn(`Expected 'apiKey' function argument to return a string but it returned ${l}`);return this.apiKey=l,!0}buildURL(e,l,n){let r=!At(this,ZDe,"m",Tkt).call(this)&&n||this.baseURL,I=z4t(e)?new URL(e):new URL(r+(r.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery();return P4t(a)||(l={...a,...l}),typeof l=="object"&&l&&!Array.isArray(l)&&(I.search=this.stringifyQuery(l)),I.toString()}async prepareOptions(e){await this._callApiKey()}async prepareRequest(e,{url:l,options:n}){}get(e,l){return this.methodRequest("get",e,l)}post(e,l){return this.methodRequest("post",e,l)}patch(e,l){return this.methodRequest("patch",e,l)}put(e,l){return this.methodRequest("put",e,l)}delete(e,l){return this.methodRequest("delete",e,l)}methodRequest(e,l,n){return this.request(Promise.resolve(n).then(r=>({method:e,path:l,...r})))}request(e,l=null){return new OS(this,this.makeRequest(e,l,void 0))}async makeRequest(e,l,n){let r=await e,I=r.maxRetries??this.maxRetries;l==null&&(l=I),await this.prepareOptions(r);let{req:a,url:s,timeout:o}=await this.buildRequest(r,{retryCount:I-l});await this.prepareRequest(a,{url:s,options:r});let d="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),u=n===void 0?"":`, retryOf: ${n}`,b=Date.now();if(zu(this).debug(`[${d}] sending request`,gv({retryOfRequestLogID:n,method:r.method,url:s,options:r,headers:a.headers})),r.signal?.aborted)throw new Lm;let p=new AbortController,h=await this.fetchWithTimeout(s,a,o,p).catch(sie),W=Date.now();if(h instanceof globalThis.Error){let Q=`retrying, ${l} attempts remaining`;if(r.signal?.aborted)throw new Lm;let C=aie(h)||/timed? ?out/i.test(String(h)+("cause"in h?String(h.cause):""));if(l)return zu(this).info(`[${d}] connection ${C?"timed out":"failed"} - ${Q}`),zu(this).debug(`[${d}] connection ${C?"timed out":"failed"} (${Q})`,gv({retryOfRequestLogID:n,url:s,durationMs:W-b,message:h.message})),this.retryRequest(r,l,n??d);throw zu(this).info(`[${d}] connection ${C?"timed out":"failed"} - error; no more retries left`),zu(this).debug(`[${d}] connection ${C?"timed out":"failed"} (error; no more retries left)`,gv({retryOfRequestLogID:n,url:s,durationMs:W-b,message:h.message})),C?new ak:new Ik({cause:h})}let y=[...h.headers.entries()].filter(([Q])=>Q==="x-request-id").map(([Q,C])=>", "+Q+": "+JSON.stringify(C)).join(""),R=`[${d}${u}${y}] ${a.method} ${s} ${h.ok?"succeeded":"failed"} with status ${h.status} in ${W-b}ms`;if(!h.ok){let Q=await this.shouldRetry(h);if(l&&Q){let P=`retrying, ${l} attempts remaining`;return await T4t(h.body),zu(this).info(`${R} - ${P}`),zu(this).debug(`[${d}] response error (${P})`,gv({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,durationMs:W-b})),this.retryRequest(r,l,n??d,h.headers)}let C=Q?"error; no more retries left":"error; not retryable";zu(this).info(`${R} - ${C}`);let L=await h.text().catch(P=>sie(P).message),x=q4t(L),U=x?void 0:L;throw zu(this).debug(`[${d}] response error (${C})`,gv({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,message:U,durationMs:Date.now()-b})),this.makeStatusError(h.status,x,U,h.headers)}return zu(this).info(R),zu(this).debug(`[${d}] response start`,gv({retryOfRequestLogID:n,url:h.url,status:h.status,headers:h.headers,durationMs:W-b})),{response:h,options:r,controller:p,requestLogID:d,retryOfRequestLogID:n,startTime:b}}getAPIList(e,l,n){return this.requestAPIList(l,{method:"get",path:e,...n})}requestAPIList(e,l){let n=this.makeRequest(l,null,void 0);return new uie(this,n,e)}async fetchWithTimeout(e,l,n,r){let{signal:I,method:a,...s}=l||{};I&&I.addEventListener("abort",()=>r.abort());let o=setTimeout(()=>r.abort(),n),d=globalThis.ReadableStream&&s.body instanceof globalThis.ReadableStream||typeof s.body=="object"&&s.body!==null&&Symbol.asyncIterator in s.body,u={signal:r.signal,...d?{duplex:"half"}:{},method:"GET",...s};a&&(u.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,u)}finally{clearTimeout(o)}}async shouldRetry(e){let l=e.headers.get("x-should-retry");return l==="true"?!0:l==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,l,n,r){let I,a=r?.get("retry-after-ms");if(a){let o=parseFloat(a);Number.isNaN(o)||(I=o)}let s=r?.get("retry-after");if(s&&!I){let o=parseFloat(s);Number.isNaN(o)?I=Date.parse(s)-Date.now():I=o*1e3}if(!(I&&0<=I&&I<60*1e3)){let o=e.maxRetries??this.maxRetries;I=this.calculateDefaultRetryTimeoutMillis(l,o)}return await KV(I),this.makeRequest(e,l-1,n)}calculateDefaultRetryTimeoutMillis(e,l){let I=l-e,a=Math.min(.5*Math.pow(2,I),8),s=1-Math.random()*.25;return a*s*1e3}async buildRequest(e,{retryCount:l=0}={}){let n={...e},{method:r,path:I,query:a,defaultBaseURL:s}=n,o=this.buildURL(I,a,s);"timeout"in n&&K4t("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:d,body:u}=this.buildBody({options:n}),b=await this.buildHeaders({options:e,method:r,bodyHeaders:d,retryCount:l});return{req:{method:r,headers:b,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&u instanceof globalThis.ReadableStream&&{duplex:"half"},...u&&{body:u},...this.fetchOptions??{},...n.fetchOptions??{}},url:o,timeout:n.timeout}}async buildHeaders({options:e,method:l,bodyHeaders:n,retryCount:r}){let I={};this.idempotencyHeader&&l!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),I[this.idempotencyHeader]=e.idempotencyKey);let a=En([I,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...hkt(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(a),a.values}buildBody({options:{body:e,headers:l}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=En([l]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.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:IRe(e)}:At(this,fRe,"f").call(this,{body:e,headers:n})}};gDe=lI,fRe=new WeakMap,ZDe=new WeakSet,Tkt=function(){return this.baseURL!=="https://api.openai.com/v1"};lI.OpenAI=gDe;lI.DEFAULT_TIMEOUT=6e5;lI.OpenAIError=yn;lI.APIError=uu;lI.APIConnectionError=Ik;lI.APIConnectionTimeoutError=ak;lI.APIUserAbortError=Lm;lI.NotFoundError=I6;lI.ConflictError=a6;lI.RateLimitError=o6;lI.BadRequestError=l6;lI.AuthenticationError=n6;lI.InternalServerError=i6;lI.PermissionDeniedError=r6;lI.UnprocessableEntityError=s6;lI.InvalidWebhookSignatureError=PV;lI.toFile=yRe;lI.Completions=jS;lI.Chat=ik;lI.Embeddings=qS;lI.Files=e9;lI.Images=r9;lI.Audio=eQ;lI.Moderations=a9;lI.Models=I9;lI.FineTuning=y2;lI.Graders=Gk;lI.VectorStores=Yv;lI.Webhooks=s9;lI.Beta=lQ;lI.Batches=MS;lI.Uploads=Zk;lI.Responses=Ak;lI.Realtime=pk;lI.Conversations=mk;lI.Evals=bk;lI.Containers=uk;c();var Yie=class extends lI{constructor({baseURL:e=N2("OPENAI_BASE_URL"),apiKey:l=N2("AZURE_OPENAI_API_KEY"),apiVersion:n=N2("OPENAI_API_VERSION"),endpoint:r,deployment:I,azureADTokenProvider:a,dangerouslyAllowBrowser:s,...o}={}){if(!n)throw new yn("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&&!l)throw new yn("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(a&&l)throw new yn("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(o.defaultQuery={...o.defaultQuery,"api-version":n},e){if(r)throw new yn("baseURL and endpoint are mutually exclusive")}else{if(r||(r=process.env.AZURE_OPENAI_ENDPOINT),!r)throw new yn("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${r}/openai`}super({apiKey:a??l,baseURL:e,...o,...s!==void 0?{dangerouslyAllowBrowser:s}:{}}),this.apiVersion="",this.apiVersion=n,this.deploymentName=I}async buildRequest(e,l={}){if(Won.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!m6(e.body))throw new Error("Expected request body to be an object");let n=this.deploymentName||e.body.model||e.__metadata?.model;n!==void 0&&!this.baseURL.includes("/deployments")&&(e.path=`/deployments/${n}${e.path}`)}return super.buildRequest(e,l)}async authHeaders(e){return typeof this._options.apiKey=="string"?En([{"api-key":this.apiKey}]):super.authHeaders(e)}},Won=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"]);c();import{readFileSync as yon}from"fs";import{dirname as Eon,join as HRe}from"path";import{fileURLToPath as Ron}from"url";var Vie=null;function Vv(){return E2().version}function E2(){if(Vie!==null)return Vie;try{let t=Ron(import.meta.url),e=Eon(t),l=[HRe(e,"package.json"),HRe(e,"../package.json"),HRe(e,"../../package.json"),HRe(e,"../runtime/package.json")];for(let r of l)try{let I=JSON.parse(yon(r,"utf8")),a={name:I.name||"unknown",nameNoScope:Yon(I.name||"unknown"),version:I.version||"unknown",buildMetadata:I.buildMetadata};return Vie=a,a}catch{continue}let n={name:"unknown",nameNoScope:"unknown",version:"unknown"};return Vie=n,n}catch{let e={name:"unknown",nameNoScope:"unknown",version:"unknown"};return Vie=e,e}}function Yon(t){return t.replace(/^@.*\//,"")}c();c();c();var Ukt=Gh("keyvault-secrets");c();c();c();c();var Mkt=Gh("keyvault-secrets");c();c();function Rh(t,e){return typeof t=="string"?bEe(t,e):bEe(t)}c();c();c();c();function NDe(t){return gse(t,["key"])&&typeof t.key=="string"}c();c();c();function Qie(t){let e=t;return e&&typeof e.getToken=="function"&&(e.signRequest===void 0||e.getToken.length>0)}c();var Von="ApiVersionPolicy";function _kt(t){return{name:Von,sendRequest:(e,l)=>{let n=new URL(e.url);return!n.searchParams.get("api-version")&&t.apiVersion&&(e.url=`${e.url}${Array.from(n.searchParams.keys()).length>0?"&":"?"}api-version=${t.apiVersion}`),l(e)}}}c();var Qon="keyCredentialAuthenticationPolicy";function Dkt(t,e){return{name:Qon,async sendRequest(l,n){return l.headers.set(e,t.key),n(l)}}}function zkt(t,e,l={}){var n,r,I,a;let{credential:s,clientOptions:o}=l;if(s){if(Qie(s)){let d=hS({credential:s,scopes:(r=(n=o?.credentials)===null||n===void 0?void 0:n.scopes)!==null&&r!==void 0?r:`${e}/.default`});t.addPolicy(d)}else if(won(s)){if(!(!((I=o?.credentials)===null||I===void 0)&&I.apiKeyHeaderName))throw new Error("Missing API Key Header Name");let d=Dkt(s,(a=o?.credentials)===null||a===void 0?void 0:a.apiKeyHeaderName);t.addPolicy(d)}}}function Pkt(t,e,l={}){let n=Sse(l);return n.addPolicy(_kt(l)),zkt(n,t,{credential:e,clientOptions:l}),n}function won(t){return t.key!==void 0}c();function Bg(t){return cUe(t)}c();function gk(t){return t.onResponse?Object.assign(Object.assign({},t),{onResponse(e,l){var n;(n=t.onResponse)===null||n===void 0||n.call(t,e,l,l)}}):t}function jkt(t,e,l={}){let n;e&&(Fon(e)?n=e:l=e??{});let r=Pkt(t,n,l),I=iUe(t,Object.assign(Object.assign({},l),{pipeline:r})),a=(s,...o)=>({get:(d={})=>I.path(s,...o).get(gk(d)),post:(d={})=>I.path(s,...o).post(gk(d)),put:(d={})=>I.path(s,...o).put(gk(d)),patch:(d={})=>I.path(s,...o).patch(gk(d)),delete:(d={})=>I.path(s,...o).delete(gk(d)),head:(d={})=>I.path(s,...o).head(gk(d)),options:(d={})=>I.path(s,...o).options(gk(d)),trace:(d={})=>I.path(s,...o).trace(gk(d))});return{path:a,pathUnchecked:a,pipeline:I.pipeline}}function Fon(t){return NDe(t)||Qie(t)}c();function WDe(t,e,l={}){var n,r,I,a,s,o,d,u;let b=(r=(n=l.endpoint)!==null&&n!==void 0?n:l.baseUrl)!==null&&r!==void 0?r:String(t),p=(I=l?.userAgentOptions)===null||I===void 0?void 0:I.userAgentPrefix,h="azsdk-js-keyvault-secrets/1.0.0-beta.1",W=p?`${p} azsdk-js-api ${h}`:`azsdk-js-api ${h}`,y=Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:W},loggingOptions:{logger:(s=(a=l.loggingOptions)===null||a===void 0?void 0:a.logger)!==null&&s!==void 0?s:Mkt.info},credentials:{scopes:(d=(o=l.credentials)===null||o===void 0?void 0:o.scopes)!==null&&d!==void 0?d:["https://vault.azure.net/.default"]}}),{apiVersion:R}=y,Q=Lse(y,["apiVersion"]),C=jkt(b,e,Q);C.pipeline.removePolicy({name:"ApiVersionPolicy"});let L=(u=l.apiVersion)!==null&&u!==void 0?u:"7.6";return C.pipeline.addPolicy({name:"ClientApiVersionPolicy",sendRequest:(x,U)=>{let j=new URL(x.url);return j.searchParams.get("api-version")||(x.url=`${x.url}${Array.from(j.searchParams.keys()).length>0?"&":"?"}api-version=${L}`),U(x)}}),Object.assign(Object.assign({},C),{apiVersion:L})}c();c();function Kkt(t){return{value:t.value,tags:t.tags,contentType:t.contentType,attributes:t.secretAttributes?qkt(t.secretAttributes):t.secretAttributes}}function qkt(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 kRe(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}}var wie;(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"})(wie||(wie={}));function U6(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?kRe(t.attributes):t.attributes,tags:t.tags,kid:t.kid,managed:t.managed}}function JW(t){return{error:t.error?$kt(t.error):t.error}}function $kt(t){return{code:t.code,message:t.message,innerError:t.innererror?$kt(t.innererror):t.innererror}}function yDe(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?kRe(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 eLt(t){return{contentType:t.contentType,attributes:t.secretAttributes?qkt(t.secretAttributes):t.secretAttributes,tags:t.tags}}function EDe(t){return{value:t.value?Con(t.value):t.value,nextLink:t.nextLink}}function Con(t){return t.map(e=>von(e))}function von(t){return{id:t.id,attributes:t.attributes?kRe(t.attributes):t.attributes,tags:t.tags,contentType:t.contentType,managed:t.managed}}function tLt(t){return{value:t.value?fon(t.value):t.value,nextLink:t.nextLink}}function fon(t){return t.map(e=>Hon(e))}function Hon(t){return{id:t.id,attributes:t.attributes?kRe(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 lLt(t){return{value:t.value&&typeof t.value=="string"?XCt(t.value,"base64url"):t.value}}function nLt(t){return{value:HCt(t.secretBundleBackup,"base64url")}}var XRe;(function(t){t.V75="7.5",t.V76Preview2="7.6-preview.2",t.V76="7.6"})(XRe||(XRe={}));c();function LRe(t,e,l,n,r={}){var I,a;let s=(I=r.itemName)!==null&&I!==void 0?I:"value",o=(a=r.nextLinkName)!==null&&a!==void 0?a:"nextLink",d={getPage:async u=>{let b=u===void 0?await e():await t.pathUnchecked(u).get();Bon(b,n);let p=await l(b),h=Lon(p,o);return{page:Jon(p,s),nextPageLink:h}},byPage:u=>{let{continuationToken:b}=u??{};return RDe(d,{pageLink:b})}};return Xon(d)}function Xon(t){var e;let l=kon(t);return{next(){return l.next()},[Symbol.asyncIterator](){return this},byPage:(e=t?.byPage)!==null&&e!==void 0?e:n=>{let{continuationToken:r}=n??{};return RDe(t,{pageLink:r})}}}function kon(t){return F4(this,arguments,function*(){var l,n,r,I;let a=RDe(t);try{for(var s=!0,o=pS(a),d;d=yield Lc(o.next()),l=d.done,!l;s=!0)I=d.value,s=!1,yield Lc(yield*Vvt(pS(I)))}catch(u){n={error:u}}finally{try{!s&&!l&&(r=o.return)&&(yield Lc(r.call(o)))}finally{if(n)throw n.error}}})}function RDe(t){return F4(this,arguments,function*(l,n={}){let{pageLink:r}=n,I=yield Lc(l.getPage(r??l.firstPageLink));if(!I)return yield Lc(void 0);let a=I.page;for(a.continuationToken=I.nextPageLink,yield yield Lc(a);I.nextPageLink;){if(I=yield Lc(l.getPage(I.nextPageLink)),!I)return yield Lc(void 0);a=I.page,a.continuationToken=I.nextPageLink,yield yield Lc(a)}})}function Lon(t,e){if(!e)return;let l=t[e];if(typeof l!="string"&&typeof l<"u"&&l!==null)throw new qC(`Body Property ${e} should be a string or undefined or null but got ${typeof l}`);if(l!==null)return l}function Jon(t,e){let l=t[e];if(!Array.isArray(l))throw new qC(`Couldn't paginate response
1810
- Body doesn't contain an array property with name: ${e}`);return l??[]}function Bon(t,e){if(!e.includes(t.status))throw Rh(`Pagination failed with unexpected statusCode ${t.status}`,t)}c();function M6(t,e,l){return(e??l==="+")||l==="#"?rLt(t):ILt(t)}function rLt(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function ILt(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function Fie(t){return t!=null}function YDe(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function JRe(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function xon(t){let e=t.isFirst,{op:l,varName:n,varValue:r,reserved:I}=t,a=[],[s,o]=YDe(l);if(Array.isArray(r))for(let d of r.filter(Fie))a.push(`${JRe(l,e)}`),s&&n&&(a.push(`${encodeURIComponent(n)}`),d===""?a.push(o):a.push("=")),a.push(M6(d,I,l)),e=!1;else if(typeof r=="object")for(let d of Object.keys(r)){let u=r[d];Fie(u)&&(a.push(`${JRe(l,e)}`),d&&(a.push(`${encodeURIComponent(d)}`),s&&u===""?a.push(o):a.push("=")),a.push(M6(u,I,l)),e=!1)}return a.join("")}function Son(t){let{op:e,varName:l,varValue:n,isFirst:r,reserved:I}=t,a=[],s=JRe(e,r),[o,d]=YDe(e);if(o&&l){if(a.push(M6(l,I,e)),n==="")return d||a.push(d),a.join("")?`${s}${a.join("")}`:void 0;a.push("=")}let u=[];if(Array.isArray(n))for(let b of n.filter(Fie))u.push(M6(b,I,e));else if(typeof n=="object")for(let b of Object.keys(n))Fie(n[b])&&(u.push(ILt(b)),u.push(M6(n[b],I,e)));return a.push(u.join(",")),a.join(",")?`${s}${a.join("")}`:void 0}function Oon(t){let{op:e,varName:l,modifier:n,isFirst:r,reserved:I,varValue:a}=t;if(Fie(a))if(["string","number","boolean"].includes(typeof a)){let s=a.toString(),[o,d]=YDe(e),u=[JRe(e,r)];return o&&l&&(u.push(l),s===""?u.push(d):u.push("=")),n&&n!=="*"&&(s=s.substring(0,parseInt(n,10))),u.push(M6(s,I,e)),u.join("")}else return n==="*"?xon(t):Son(t);else return}function BW(t,e,l){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(n,r,I)=>{if(!r)return rLt(I);let a;["+","#",".","/",";","?","&"].includes(r[0])&&(a=r[0],r=r.slice(1));let s=r.split(/,/g),o=[];for(let d of s){let u=/([^:\*]*)(?::(\d+)|(\*))?/.exec(d);if(!u||!u[1])continue;let b=Oon({isFirst:o.length===0,op:a,varValue:e[u[1]],varName:u[1],modifier:u[2]||u[3],reserved:l?.allowReserved});b&&o.push(b)}return o.join("")})}function Ton(t,e,l={requestOptions:{}}){var n,r;let I=BW("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(I).post(Object.assign(Object.assign({},Bg(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers),body:nLt(e)}))}async function Uon(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function VDe(t,e,l={requestOptions:{}}){let n=await Ton(t,e,l);return Uon(n)}function Mon(t,e,l={requestOptions:{}}){var n,r;let I=BW("/secrets/{secret-name}/backup{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(I).post(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function _on(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return lLt(t.body)}async function QDe(t,e,l={requestOptions:{}}){let n=await Mon(t,e,l);return _on(n)}function Don(t,e,l={requestOptions:{}}){var n,r;let I=BW("/deletedsecrets/{secret-name}/recover{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(I).post(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function zon(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function wDe(t,e,l={requestOptions:{}}){let n=await Don(t,e,l);return zon(n)}function Pon(t,e,l={requestOptions:{}}){var n,r;let I=BW("/deletedsecrets/{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(I).delete(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function jon(t){if(!["204"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}}async function FDe(t,e,l={requestOptions:{}}){let n=await Pon(t,e,l);return jon(n)}function Kon(t,e,l={requestOptions:{}}){var n,r;let I=BW("/deletedsecrets/{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(I).get(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function qon(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return yDe(t.body)}async function CDe(t,e,l={requestOptions:{}}){let n=await Kon(t,e,l);return qon(n)}function $on(t,e={requestOptions:{}}){var l,n;let r=BW("/deletedsecrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(l=e?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},Bg(e)),{headers:Object.assign({accept:"application/json"},(n=e.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function ein(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return tLt(t.body)}function vDe(t,e={requestOptions:{}}){return LRe(t,()=>$on(t,e),ein,["200"],{itemName:"value",nextLinkName:"nextLink"})}function tin(t,e,l={requestOptions:{}}){var n,r;let I=BW("/secrets/{secret-name}/versions{?api%2Dversion,maxresults}",{"secret-name":e,"api%2Dversion":t.apiVersion,maxresults:l?.maxresults},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(I).get(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function lin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return EDe(t.body)}function fDe(t,e,l={requestOptions:{}}){return LRe(t,()=>tin(t,e,l),lin,["200"],{itemName:"value",nextLinkName:"nextLink"})}function nin(t,e={requestOptions:{}}){var l,n;let r=BW("/secrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(l=e?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},Bg(e)),{headers:Object.assign({accept:"application/json"},(n=e.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function rin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return EDe(t.body)}function HDe(t,e={requestOptions:{}}){return LRe(t,()=>nin(t,e),rin,["200"],{itemName:"value",nextLinkName:"nextLink"})}function Iin(t,e,l,n={requestOptions:{}}){var r,I;let a=BW("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":l,"api%2Dversion":t.apiVersion},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(a).get(Object.assign(Object.assign({},Bg(n)),{headers:Object.assign({accept:"application/json"},(I=n.requestOptions)===null||I===void 0?void 0:I.headers)}))}async function ain(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function XDe(t,e,l,n={requestOptions:{}}){let r=await Iin(t,e,l,n);return ain(r)}function sin(t,e,l,n,r={requestOptions:{}}){var I,a;let s=BW("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":l,"api%2Dversion":t.apiVersion},{allowReserved:(I=r?.requestOptions)===null||I===void 0?void 0:I.skipUrlEncoding});return t.path(s).patch(Object.assign(Object.assign({},Bg(r)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(a=r.requestOptions)===null||a===void 0?void 0:a.headers),body:eLt(n)}))}async function oin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function kDe(t,e,l,n,r={requestOptions:{}}){let I=await sin(t,e,l,n,r);return oin(I)}function iin(t,e,l={requestOptions:{}}){var n,r;let I=BW("/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(I).delete(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function cin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return yDe(t.body)}async function LDe(t,e,l={requestOptions:{}}){let n=await iin(t,e,l);return cin(n)}function din(t,e,l,n={requestOptions:{}}){var r,I;let a=BW("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(a).put(Object.assign(Object.assign({},Bg(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(I=n.requestOptions)===null||I===void 0?void 0:I.headers),body:Kkt(l)}))}async function uin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function JDe(t,e,l,n={requestOptions:{}}){let r=await din(t,e,l,n);return uin(r)}var Cie=class{constructor(e,l,n={}){var r;let I=(r=n?.userAgentOptions)===null||r===void 0?void 0:r.userAgentPrefix,a=I?`${I} azsdk-js-client`:"azsdk-js-client";this._client=WDe(e,l,Object.assign(Object.assign({},n),{userAgentOptions:{userAgentPrefix:a}})),this.pipeline=this._client.pipeline}restoreSecret(e,l={requestOptions:{}}){return VDe(this._client,e,l)}backupSecret(e,l={requestOptions:{}}){return QDe(this._client,e,l)}recoverDeletedSecret(e,l={requestOptions:{}}){return wDe(this._client,e,l)}purgeDeletedSecret(e,l={requestOptions:{}}){return FDe(this._client,e,l)}getDeletedSecret(e,l={requestOptions:{}}){return CDe(this._client,e,l)}getDeletedSecrets(e={requestOptions:{}}){return vDe(this._client,e)}getSecretVersions(e,l={requestOptions:{}}){return fDe(this._client,e,l)}getSecrets(e={requestOptions:{}}){return HDe(this._client,e)}getSecret(e,l,n={requestOptions:{}}){return XDe(this._client,e,l,n)}updateSecret(e,l,n,r={requestOptions:{}}){return kDe(this._client,e,l,n,r)}deleteSecret(e,l={requestOptions:{}}){return LDe(this._client,e,l)}setSecret(e,l,n={requestOptions:{}}){return JDe(this._client,e,l,n)}};c();c();c();var min=["authorization","authorization_url","resource","scope","tenantId","claims","error"];function BDe(t){let e=/,? +/,l=t.split(e).reduce((n,r)=>{if(r.match(/\w="/)){let[I,...a]=r.split("=");if(min.includes(I))return Object.assign(Object.assign({},n),{[I]:a.join("=").slice(1,-1)})}return n},{});if(l.authorization)try{let n=new URL(l.authorization).pathname.substring(1);n&&(l.tenantId=n)}catch{throw new Error(`The challenge authorization URI '${l.authorization}' is invalid.`)}return l}c();var bin={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2};async function Gin(t,e,l){async function n(){if(Date.now()<l)try{return await t()}catch{return null}else{let I=await t();if(I===null)throw new Error("Failed to refresh access token.");return I}}let r=await n();for(;r===null;)await Q4(e),r=await n();return r}function aLt(t,e){let l=null,n=null,r,I=Object.assign(Object.assign({},bin),e),a={get isRefreshing(){return l!==null},get shouldRefresh(){var o;return a.isRefreshing?!1:n?.refreshAfterTimestamp&&n.refreshAfterTimestamp<Date.now()?!0:((o=n?.expiresOnTimestamp)!==null&&o!==void 0?o:0)-I.refreshWindowInMs<Date.now()},get mustRefresh(){return n===null||n.expiresOnTimestamp-I.forcedRefreshWindowInMs<Date.now()}};function s(o,d){var u;return a.isRefreshing||(l=Gin(()=>t.getToken(o,d),I.retryIntervalInMs,(u=n?.expiresOnTimestamp)!==null&&u!==void 0?u:Date.now()).then(p=>(l=null,n=p,r=d.tenantId,n)).catch(p=>{throw l=null,n=null,r=void 0,p})),l}return async(o,d)=>{let u=!!d.claims,b=r!==d.tenantId;return u&&(n=null),b||u||a.mustRefresh?s(o,d):(a.shouldRefresh&&s(o,d),n)}}c();var sLt=Gh("keyvault-common");function pin(t,e){let l;try{l=new URL(t)}catch{throw new Error(`The challenge contains invalid scope '${t}'`)}if(!new URL(e.url).hostname.endsWith(`.${l.hostname}`))throw new Error(`The challenge resource '${l.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.`)}var hin="keyVaultAuthenticationPolicy";function oLt(t,e={}){let{disableChallengeResourceVerification:l}=e,n={status:"none"},r=aLt(t);function I(u){return{abortSignal:u.abortSignal,requestOptions:{timeout:u.timeout>0?u.timeout:void 0},tracingOptions:u.tracingOptions}}async function a(u){let b=I(u);switch(n.status){case"none":n={status:"started",originalBody:u.body},u.body=null;break;case"started":break;case"complete":{let p=await r(n.scopes,Object.assign(Object.assign({},b),{enableCae:!0,tenantId:n.tenantId}));p&&u.headers.set("authorization",`Bearer ${p.token}`);break}}}async function s(u,b,p){if(b.status!==401)return b;u.body===null&&n.status==="started"&&(u.body=n.originalBody);let h=I(u),W=b.headers.get("WWW-Authenticate");if(!W)return sLt.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),b;let y=BDe(W),R=y.resource?y.resource+"/.default":y.scope;if(!R)return b;l||pin(R,u);let Q=await r([R],Object.assign(Object.assign({},h),{enableCae:!0,tenantId:y.tenantId}));return Q?(u.headers.set("Authorization",`Bearer ${Q.token}`),n={status:"complete",scopes:[R],tenantId:y.tenantId},p(u)):b}async function o(u,b,p){if(n.status!=="complete"||b.status!==401)return b;let h=I(u),W=b.headers.get("WWW-Authenticate");if(!W)return b;let{claims:y,error:R}=BDe(W);if(R!=="insufficient_claims"||y===void 0)return b;let Q=atob(y),C=await r(n.scopes,Object.assign(Object.assign({},h),{enableCae:!0,tenantId:n.tenantId,claims:Q}));return u.headers.set("Authorization",`Bearer ${C.token}`),p(u)}async function d(u,b){await a(u);let p=await b(u);return p=await s(u,p,b),p=await o(u,p,b),p}return{name:hin,sendRequest:d}}c();function iLt(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 l;try{l=new URL(e)}catch{throw new Error(`Invalid ${t} identifier: ${e}. Not a valid URI`)}let n=(l.pathname||"").split("/");if(n.length!==3&&n.length!==4)throw new Error(`Invalid ${t} identifier: ${e}. Bad number of segments: ${n.length}`);if(t!==n[1])throw new Error(`Invalid ${t} identifier: ${e}. segment [1] should be "${t}", found "${n[1]}"`);let r=`${l.protocol}//${l.host}`,I=n[2],a=n.length===4?n[3]:void 0;return{vaultUrl:r,name:I,version:a}}c();c();c();c();function xDe(t){let l=t.split("/")[3];return Object.assign({sourceId:t},iLt(l,t))}c();function oZ(t){let e=t,l=t,n=xDe(e.id),r=e.attributes;delete e.attributes;let I={value:e.value,name:n.name,properties:{expiresOn:r?.expires,createdOn:r?.created,updatedOn:r?.updated,enabled:r?.enabled,notBefore:r?.notBefore,recoverableDays:r?.recoverableDays,recoveryLevel:r?.recoveryLevel,id:e.id,contentType:e.contentType,tags:e.tags,managed:e.managed,vaultUrl:n.vaultUrl,version:n.version,name:n.name,certificateKeyId:e.kid}};return l.recoveryId&&(I.properties.recoveryId=l.recoveryId,I.properties.scheduledPurgeDate=l.scheduledPurgeDate,I.properties.deletedOn=l.deletedDate,I.recoveryId=l.recoveryId,I.scheduledPurgeDate=l.scheduledPurgeDate,I.deletedOn=l.deletedDate),r&&(r.vaultUrl&&delete I.properties.vaultUrl,r.expires&&delete I.properties.expires,r.created&&delete I.properties.created,r.updated&&delete I.properties.updated),I}function BRe(t,e,l){let n;return{async next(){n??(n=t(Object.assign(Object.assign({},e),{maxresults:void 0})));let r=await n.next();return Object.assign(Object.assign({},r),{value:r.value&&l(r.value)})},[Symbol.asyncIterator](){return this},byPage(r){return F4(this,arguments,function*(){var a,s,o,d;let u=t(Object.assign(Object.assign({},e),{maxresults:r?.maxPageSize})).byPage(r);try{for(var b=!0,p=pS(u),h;h=yield Lc(p.next()),a=h.done,!a;b=!0)d=h.value,b=!1,yield yield Lc(d.map(l))}catch(W){s={error:W}}finally{try{!b&&!a&&(o=p.return)&&(yield Lc(o.call(p)))}finally{if(s)throw s.error}}})}}}c();c();var xRe="4.10.0";var xg=gx({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:xRe});c();c();c();c();c();c();c();c();var SDe=Gh("core-lro");c();c();c();c();c();c();var ODe=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},TDe=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},vie=class{constructor(e){this.resolveOnUnsuccessful=!1,this.stopped=!0,this.pollProgressCallbacks=[],this.operation=e,this.promise=new Promise((l,n)=>{this.resolve=l,this.reject=n}),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 l of this.pollProgressCallbacks)l(e)}async cancelOnce(e={}){this.operation=await this.operation.cancel(e)}poll(e={}){if(!this.pollOncePromise){this.pollOncePromise=this.pollOnce(e);let l=()=>{this.pollOncePromise=void 0};this.pollOncePromise.then(l,l).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 TDe("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(l=>l!==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 ODe("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()}};c();var _6=class extends vie{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return Q4(this.intervalInMs)}},D6=class{constructor(e,l={}){this.state=e,this.cancelMessage="",l.cancelMessage&&(this.cancelMessage=l.cancelMessage)}async update(){throw new Error("Operation not supported.")}async cancel(){throw new Error(this.cancelMessage)}toString(){return JSON.stringify({state:this.state})}};var SRe=class extends D6{constructor(e,l,n={}){super(e,{cancelMessage:"Canceling the deletion of a secret is not supported."}),this.state=e,this.client=l,this.operationOptions=n}deleteSecret(e,l={}){return xg.withSpan("DeleteSecretPoller.deleteSecret",l,async n=>{let r=await this.client.deleteSecret(e,n);return oZ(r)})}getDeletedSecret(e,l={}){return xg.withSpan("DeleteSecretPoller.getDeletedSecret",l,async n=>{let r=await this.client.getDeletedSecret(e,n);return oZ(r)})}async update(e={}){let l=this.state,{name:n}=l;if(e.abortSignal&&(this.operationOptions.abortSignal=e.abortSignal),!l.isStarted){let r=await this.deleteSecret(n,this.operationOptions);l.isStarted=!0,l.result=r,r.properties.recoveryId||(l.isCompleted=!0)}if(!l.isCompleted)try{l.result=await this.getDeletedSecret(n,this.operationOptions),l.isCompleted=!0}catch(r){if(r.statusCode===403)l.isCompleted=!0;else if(r.statusCode!==404)throw l.error=r,l.isCompleted=!0,r}return this}};var ORe=class extends _6{constructor(e){let{client:l,name:n,operationOptions:r,intervalInMs:I=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let o=new SRe(Object.assign(Object.assign({},s),{name:n}),l,r);super(o),this.intervalInMs=I}};c();c();var TRe=class extends D6{constructor(e,l,n={}){super(e,{cancelMessage:"Canceling the recovery of a deleted secret is not supported."}),this.state=e,this.client=l,this.options=n}getSecret(e,l={}){return xg.withSpan("RecoverDeletedSecretPoller.getSecret",l,async n=>{let r=await this.client.getSecret(e,l&&l.version?l.version:"",n);return oZ(r)})}recoverDeletedSecret(e,l={}){return xg.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",l,async n=>{let r=await this.client.recoverDeletedSecret(e,n);return oZ(r)})}async update(e={}){let l=this.state,{name:n}=l;if(e.abortSignal&&(this.options.abortSignal=e.abortSignal),!l.isStarted){try{l.result=(await this.getSecret(n,this.options)).properties,l.isCompleted=!0}catch{}l.isCompleted||(l.result=(await this.recoverDeletedSecret(n,this.options)).properties,l.isStarted=!0)}if(!l.isCompleted)try{l.result=(await this.getSecret(n,this.options)).properties,l.isCompleted=!0}catch(r){if(r.statusCode===403)l.isCompleted=!0;else if(r.statusCode!==404)throw l.error=r,l.isCompleted=!0,r}return this}};var URe=class extends _6{constructor(e){let{client:l,name:n,operationOptions:r,intervalInMs:I=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let o=new TRe(Object.assign(Object.assign({},s),{name:n}),l,r);super(o),this.intervalInMs=I}};var MRe=class{constructor(e,l,n={}){var r,I;this.vaultUrl=e;let a=Object.assign(Object.assign({},n),{userAgentOptions:{userAgentPrefix:`${(I=(r=n.userAgentOptions)===null||r===void 0?void 0:r.userAgentPrefix)!==null&&I!==void 0?I:""} azsdk-js-keyvault-secrets/${xRe}`},apiVersion:n.serviceVersion||"7.6",loggingOptions:{logger:Ukt.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new Cie(this.vaultUrl,l,a),this.client.pipeline.removePolicy({name:WEe}),this.client.pipeline.addPolicy(oLt(l,n),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(s,o){var d;return((d=s.headers.get("Content-Type"))!==null&&d!==void 0?d:"").startsWith("application/json")&&s.headers.set("Content-Type","application/json"),o(s)}})}setSecret(e,l,n={}){let{enabled:r,notBefore:I,expiresOn:a,tags:s}=n,o=Lse(n,["enabled","notBefore","expiresOn","tags"]);return xg.withSpan("SecretClient.setSecret",o,async d=>{let u=await this.client.setSecret(e,{value:l,secretAttributes:{enabled:r,notBefore:I,expires:a},tags:s},d);return oZ(u)})}async beginDeleteSecret(e,l={}){let n=new ORe(Object.assign(Object.assign({name:e,client:this.client},l),{operationOptions:l}));return await n.poll(),n}async updateSecretProperties(e,l,n={}){let{enabled:r,notBefore:I,expiresOn:a,tags:s}=n,o=Lse(n,["enabled","notBefore","expiresOn","tags"]);return xg.withSpan("SecretClient.updateSecretProperties",o,async d=>{let u=await this.client.updateSecret(e,l,{secretAttributes:{enabled:r,notBefore:I,expires:a},tags:s},d);return oZ(u).properties})}getSecret(e,l={}){return xg.withSpan("SecretClient.getSecret",l,async n=>{let r=await this.client.getSecret(e,l&&l.version?l.version:"",n);return oZ(r)})}getDeletedSecret(e,l={}){return xg.withSpan("SecretClient.getDeletedSecret",l,async n=>{let r=await this.client.getDeletedSecret(e,n);return oZ(r)})}purgeDeletedSecret(e,l={}){return xg.withSpan("SecretClient.purgeDeletedSecret",l,async n=>{await this.client.purgeDeletedSecret(e,n)})}async beginRecoverDeletedSecret(e,l={}){let n=new URe(Object.assign(Object.assign({name:e,client:this.client},l),{operationOptions:l}));return await n.poll(),n}backupSecret(e,l={}){return xg.withSpan("SecretClient.backupSecret",l,async n=>(await this.client.backupSecret(e,n)).value)}restoreSecretBackup(e,l={}){return xg.withSpan("SecretClient.restoreSecretBackup",l,async n=>{let r=await this.client.restoreSecret({secretBundleBackup:e},n);return oZ(r).properties})}listPropertiesOfSecretVersions(e,l={}){return BRe(n=>this.client.getSecretVersions(e,n),l,n=>oZ(n).properties)}listPropertiesOfSecrets(e={}){return BRe(this.client.getSecrets.bind(this.client),e,l=>oZ(l).properties)}listDeletedSecrets(e={}){return BRe(this.client.getDeletedSecrets.bind(this.client),e,oZ)}};var UDe=class{client;logger;constructor(e,l){if(this.logger=l,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let n=new kV;this.client=new MRe(e,n)}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(l){if(this.logger.warning(`Error fetching secret ${e}: ${l}`),l?.code==="SecretNotFound")return;throw l}}};function cLt(t,e){let l=t.api?.copilot?.azureKeyVaultUri;return MDe(l,e)}function MDe(t,e){return new UDe(t,e)}c();import{createHmac as yin}from"crypto";var _Re=class t{static encode(e){let l=t.hmacGetBytes(e),a=(Math.floor(Date.now()/1e3)+30).toString(),s=Buffer.from(a,"ascii"),u=yin("sha256",l).update(s).digest().toString("hex").toUpperCase();return`${a}.${u}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}};var Ein="X-GitHub-Api-Version",Rin="2025-05-01",o9=class t extends lI{constructor(l,n,r,I){super({baseURL:l,apiKey:"",logLevel:whe()?"debug":"info"});this.headers=n;this.runnerLogger=r;this.hmacKey=I}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[Ein]:Rin};hmacKey;additionalHeaders={};static createWithOAuthToken(l,n,r,I,a,s){let o={...this.defaultHeaders(r,a),Authorization:`Bearer ${I}`,...s??{}};return l.debug(`Creating copilot-client for integration ID ${r} with token authentication. User-agent: ${o["User-Agent"]}`),new t(n,o,l)}static createWithHmac(l,n,r,I,a,s,o){let d={...this.defaultHeaders(r,a),Authorization:"",...o??{}};return s&&(d["X-GitHub-User"]=s),l.debug(`Creating copilot-client for integration ID ${r} with key authentication. User-agent: ${d["User-Agent"]}`),new t(n,d,l,I)}static defaultHeaders(l,n){let r=E2();return{...t.baseHeaders,"Copilot-Integration-Id":l,"User-Agent":`${r.nameNoScope}/${r.version} (${process.platform} ${process.version}) OpenAI/${qV}`,"X-Interaction-Id":n}}async prepareOptions(l){this.hmacKey&&(this.headers["Request-HMAC"]=_Re.encode(this.hmacKey)),l.headers={...this.headers,...this.additionalHeaders,...l.headers},await super.prepareOptions(l)}setInitiatorHeader(l){this.headers["X-Initiator"]=l}setAdditionalHeaders(l){this.additionalHeaders=l}async listModels(){let l={method:"get",path:""};await this.prepareOptions(l);let n={};if(l.headers)for(let[s,o]of Object.entries(l.headers))typeof o=="string"&&(n[s]=o);let r=`${this.baseURL}/models`,I=await fetch(r,{method:l.method,headers:n});if(!I.ok)return this.runnerLogger.error(`Failed to list models: ${I.statusText}`),[];let a=await I.json();return this.runnerLogger.debug(`Successfully listed ${a.data.length} models`),a.data}},z6=class{async createClient(e,l,n){l.startGroup("configured settings:",8),l.debug(JSON.stringify(e,null,2)),l.endGroup(8);let r=e.api?.copilot?.token,I=e.api?.copilot?.hmacKey,a=!!(I||r);if(!a){l.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let b=cLt(e,l);try{I=await b.getSecret("capi-hmac-key")}catch(p){l.debug(`Failed to get Copilot HMAC key from secret provider:
1810
+ Body doesn't contain an array property with name: ${e}`);return l??[]}function Bon(t,e){if(!e.includes(t.status))throw Rh(`Pagination failed with unexpected statusCode ${t.status}`,t)}c();function M6(t,e,l){return(e??l==="+")||l==="#"?rLt(t):ILt(t)}function rLt(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function ILt(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function Fie(t){return t!=null}function YDe(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function JRe(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function xon(t){let e=t.isFirst,{op:l,varName:n,varValue:r,reserved:I}=t,a=[],[s,o]=YDe(l);if(Array.isArray(r))for(let d of r.filter(Fie))a.push(`${JRe(l,e)}`),s&&n&&(a.push(`${encodeURIComponent(n)}`),d===""?a.push(o):a.push("=")),a.push(M6(d,I,l)),e=!1;else if(typeof r=="object")for(let d of Object.keys(r)){let u=r[d];Fie(u)&&(a.push(`${JRe(l,e)}`),d&&(a.push(`${encodeURIComponent(d)}`),s&&u===""?a.push(o):a.push("=")),a.push(M6(u,I,l)),e=!1)}return a.join("")}function Son(t){let{op:e,varName:l,varValue:n,isFirst:r,reserved:I}=t,a=[],s=JRe(e,r),[o,d]=YDe(e);if(o&&l){if(a.push(M6(l,I,e)),n==="")return d||a.push(d),a.join("")?`${s}${a.join("")}`:void 0;a.push("=")}let u=[];if(Array.isArray(n))for(let b of n.filter(Fie))u.push(M6(b,I,e));else if(typeof n=="object")for(let b of Object.keys(n))Fie(n[b])&&(u.push(ILt(b)),u.push(M6(n[b],I,e)));return a.push(u.join(",")),a.join(",")?`${s}${a.join("")}`:void 0}function Oon(t){let{op:e,varName:l,modifier:n,isFirst:r,reserved:I,varValue:a}=t;if(Fie(a))if(["string","number","boolean"].includes(typeof a)){let s=a.toString(),[o,d]=YDe(e),u=[JRe(e,r)];return o&&l&&(u.push(l),s===""?u.push(d):u.push("=")),n&&n!=="*"&&(s=s.substring(0,parseInt(n,10))),u.push(M6(s,I,e)),u.join("")}else return n==="*"?xon(t):Son(t);else return}function BW(t,e,l){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(n,r,I)=>{if(!r)return rLt(I);let a;["+","#",".","/",";","?","&"].includes(r[0])&&(a=r[0],r=r.slice(1));let s=r.split(/,/g),o=[];for(let d of s){let u=/([^:\*]*)(?::(\d+)|(\*))?/.exec(d);if(!u||!u[1])continue;let b=Oon({isFirst:o.length===0,op:a,varValue:e[u[1]],varName:u[1],modifier:u[2]||u[3],reserved:l?.allowReserved});b&&o.push(b)}return o.join("")})}function Ton(t,e,l={requestOptions:{}}){var n,r;let I=BW("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(I).post(Object.assign(Object.assign({},Bg(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers),body:nLt(e)}))}async function Uon(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function VDe(t,e,l={requestOptions:{}}){let n=await Ton(t,e,l);return Uon(n)}function Mon(t,e,l={requestOptions:{}}){var n,r;let I=BW("/secrets/{secret-name}/backup{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(I).post(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function _on(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return lLt(t.body)}async function QDe(t,e,l={requestOptions:{}}){let n=await Mon(t,e,l);return _on(n)}function Don(t,e,l={requestOptions:{}}){var n,r;let I=BW("/deletedsecrets/{secret-name}/recover{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(I).post(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function zon(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function wDe(t,e,l={requestOptions:{}}){let n=await Don(t,e,l);return zon(n)}function Pon(t,e,l={requestOptions:{}}){var n,r;let I=BW("/deletedsecrets/{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(I).delete(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function jon(t){if(!["204"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}}async function FDe(t,e,l={requestOptions:{}}){let n=await Pon(t,e,l);return jon(n)}function Kon(t,e,l={requestOptions:{}}){var n,r;let I=BW("/deletedsecrets/{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(I).get(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function qon(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return yDe(t.body)}async function CDe(t,e,l={requestOptions:{}}){let n=await Kon(t,e,l);return qon(n)}function $on(t,e={requestOptions:{}}){var l,n;let r=BW("/deletedsecrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(l=e?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},Bg(e)),{headers:Object.assign({accept:"application/json"},(n=e.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function ein(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return tLt(t.body)}function vDe(t,e={requestOptions:{}}){return LRe(t,()=>$on(t,e),ein,["200"],{itemName:"value",nextLinkName:"nextLink"})}function tin(t,e,l={requestOptions:{}}){var n,r;let I=BW("/secrets/{secret-name}/versions{?api%2Dversion,maxresults}",{"secret-name":e,"api%2Dversion":t.apiVersion,maxresults:l?.maxresults},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(I).get(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function lin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return EDe(t.body)}function fDe(t,e,l={requestOptions:{}}){return LRe(t,()=>tin(t,e,l),lin,["200"],{itemName:"value",nextLinkName:"nextLink"})}function nin(t,e={requestOptions:{}}){var l,n;let r=BW("/secrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(l=e?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},Bg(e)),{headers:Object.assign({accept:"application/json"},(n=e.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function rin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return EDe(t.body)}function HDe(t,e={requestOptions:{}}){return LRe(t,()=>nin(t,e),rin,["200"],{itemName:"value",nextLinkName:"nextLink"})}function Iin(t,e,l,n={requestOptions:{}}){var r,I;let a=BW("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":l,"api%2Dversion":t.apiVersion},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(a).get(Object.assign(Object.assign({},Bg(n)),{headers:Object.assign({accept:"application/json"},(I=n.requestOptions)===null||I===void 0?void 0:I.headers)}))}async function ain(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function XDe(t,e,l,n={requestOptions:{}}){let r=await Iin(t,e,l,n);return ain(r)}function sin(t,e,l,n,r={requestOptions:{}}){var I,a;let s=BW("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":l,"api%2Dversion":t.apiVersion},{allowReserved:(I=r?.requestOptions)===null||I===void 0?void 0:I.skipUrlEncoding});return t.path(s).patch(Object.assign(Object.assign({},Bg(r)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(a=r.requestOptions)===null||a===void 0?void 0:a.headers),body:eLt(n)}))}async function oin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function kDe(t,e,l,n,r={requestOptions:{}}){let I=await sin(t,e,l,n,r);return oin(I)}function iin(t,e,l={requestOptions:{}}){var n,r;let I=BW("/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(I).delete(Object.assign(Object.assign({},Bg(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function cin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return yDe(t.body)}async function LDe(t,e,l={requestOptions:{}}){let n=await iin(t,e,l);return cin(n)}function din(t,e,l,n={requestOptions:{}}){var r,I;let a=BW("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(a).put(Object.assign(Object.assign({},Bg(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(I=n.requestOptions)===null||I===void 0?void 0:I.headers),body:Kkt(l)}))}async function uin(t){if(!["200"].includes(t.status)){let l=Rh(t);throw l.details=JW(t.body),l}return U6(t.body)}async function JDe(t,e,l,n={requestOptions:{}}){let r=await din(t,e,l,n);return uin(r)}var Cie=class{constructor(e,l,n={}){var r;let I=(r=n?.userAgentOptions)===null||r===void 0?void 0:r.userAgentPrefix,a=I?`${I} azsdk-js-client`:"azsdk-js-client";this._client=WDe(e,l,Object.assign(Object.assign({},n),{userAgentOptions:{userAgentPrefix:a}})),this.pipeline=this._client.pipeline}restoreSecret(e,l={requestOptions:{}}){return VDe(this._client,e,l)}backupSecret(e,l={requestOptions:{}}){return QDe(this._client,e,l)}recoverDeletedSecret(e,l={requestOptions:{}}){return wDe(this._client,e,l)}purgeDeletedSecret(e,l={requestOptions:{}}){return FDe(this._client,e,l)}getDeletedSecret(e,l={requestOptions:{}}){return CDe(this._client,e,l)}getDeletedSecrets(e={requestOptions:{}}){return vDe(this._client,e)}getSecretVersions(e,l={requestOptions:{}}){return fDe(this._client,e,l)}getSecrets(e={requestOptions:{}}){return HDe(this._client,e)}getSecret(e,l,n={requestOptions:{}}){return XDe(this._client,e,l,n)}updateSecret(e,l,n,r={requestOptions:{}}){return kDe(this._client,e,l,n,r)}deleteSecret(e,l={requestOptions:{}}){return LDe(this._client,e,l)}setSecret(e,l,n={requestOptions:{}}){return JDe(this._client,e,l,n)}};c();c();c();var min=["authorization","authorization_url","resource","scope","tenantId","claims","error"];function BDe(t){let e=/,? +/,l=t.split(e).reduce((n,r)=>{if(r.match(/\w="/)){let[I,...a]=r.split("=");if(min.includes(I))return Object.assign(Object.assign({},n),{[I]:a.join("=").slice(1,-1)})}return n},{});if(l.authorization)try{let n=new URL(l.authorization).pathname.substring(1);n&&(l.tenantId=n)}catch{throw new Error(`The challenge authorization URI '${l.authorization}' is invalid.`)}return l}c();var bin={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2};async function Gin(t,e,l){async function n(){if(Date.now()<l)try{return await t()}catch{return null}else{let I=await t();if(I===null)throw new Error("Failed to refresh access token.");return I}}let r=await n();for(;r===null;)await Q4(e),r=await n();return r}function aLt(t,e){let l=null,n=null,r,I=Object.assign(Object.assign({},bin),e),a={get isRefreshing(){return l!==null},get shouldRefresh(){var o;return a.isRefreshing?!1:n?.refreshAfterTimestamp&&n.refreshAfterTimestamp<Date.now()?!0:((o=n?.expiresOnTimestamp)!==null&&o!==void 0?o:0)-I.refreshWindowInMs<Date.now()},get mustRefresh(){return n===null||n.expiresOnTimestamp-I.forcedRefreshWindowInMs<Date.now()}};function s(o,d){var u;return a.isRefreshing||(l=Gin(()=>t.getToken(o,d),I.retryIntervalInMs,(u=n?.expiresOnTimestamp)!==null&&u!==void 0?u:Date.now()).then(p=>(l=null,n=p,r=d.tenantId,n)).catch(p=>{throw l=null,n=null,r=void 0,p})),l}return async(o,d)=>{let u=!!d.claims,b=r!==d.tenantId;return u&&(n=null),b||u||a.mustRefresh?s(o,d):(a.shouldRefresh&&s(o,d),n)}}c();var sLt=Gh("keyvault-common");function pin(t,e){let l;try{l=new URL(t)}catch{throw new Error(`The challenge contains invalid scope '${t}'`)}if(!new URL(e.url).hostname.endsWith(`.${l.hostname}`))throw new Error(`The challenge resource '${l.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.`)}var hin="keyVaultAuthenticationPolicy";function oLt(t,e={}){let{disableChallengeResourceVerification:l}=e,n={status:"none"},r=aLt(t);function I(u){return{abortSignal:u.abortSignal,requestOptions:{timeout:u.timeout>0?u.timeout:void 0},tracingOptions:u.tracingOptions}}async function a(u){let b=I(u);switch(n.status){case"none":n={status:"started",originalBody:u.body},u.body=null;break;case"started":break;case"complete":{let p=await r(n.scopes,Object.assign(Object.assign({},b),{enableCae:!0,tenantId:n.tenantId}));p&&u.headers.set("authorization",`Bearer ${p.token}`);break}}}async function s(u,b,p){if(b.status!==401)return b;u.body===null&&n.status==="started"&&(u.body=n.originalBody);let h=I(u),W=b.headers.get("WWW-Authenticate");if(!W)return sLt.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),b;let y=BDe(W),R=y.resource?y.resource+"/.default":y.scope;if(!R)return b;l||pin(R,u);let Q=await r([R],Object.assign(Object.assign({},h),{enableCae:!0,tenantId:y.tenantId}));return Q?(u.headers.set("Authorization",`Bearer ${Q.token}`),n={status:"complete",scopes:[R],tenantId:y.tenantId},p(u)):b}async function o(u,b,p){if(n.status!=="complete"||b.status!==401)return b;let h=I(u),W=b.headers.get("WWW-Authenticate");if(!W)return b;let{claims:y,error:R}=BDe(W);if(R!=="insufficient_claims"||y===void 0)return b;let Q=atob(y),C=await r(n.scopes,Object.assign(Object.assign({},h),{enableCae:!0,tenantId:n.tenantId,claims:Q}));return u.headers.set("Authorization",`Bearer ${C.token}`),p(u)}async function d(u,b){await a(u);let p=await b(u);return p=await s(u,p,b),p=await o(u,p,b),p}return{name:hin,sendRequest:d}}c();function iLt(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 l;try{l=new URL(e)}catch{throw new Error(`Invalid ${t} identifier: ${e}. Not a valid URI`)}let n=(l.pathname||"").split("/");if(n.length!==3&&n.length!==4)throw new Error(`Invalid ${t} identifier: ${e}. Bad number of segments: ${n.length}`);if(t!==n[1])throw new Error(`Invalid ${t} identifier: ${e}. segment [1] should be "${t}", found "${n[1]}"`);let r=`${l.protocol}//${l.host}`,I=n[2],a=n.length===4?n[3]:void 0;return{vaultUrl:r,name:I,version:a}}c();c();c();c();function xDe(t){let l=t.split("/")[3];return Object.assign({sourceId:t},iLt(l,t))}c();function oZ(t){let e=t,l=t,n=xDe(e.id),r=e.attributes;delete e.attributes;let I={value:e.value,name:n.name,properties:{expiresOn:r?.expires,createdOn:r?.created,updatedOn:r?.updated,enabled:r?.enabled,notBefore:r?.notBefore,recoverableDays:r?.recoverableDays,recoveryLevel:r?.recoveryLevel,id:e.id,contentType:e.contentType,tags:e.tags,managed:e.managed,vaultUrl:n.vaultUrl,version:n.version,name:n.name,certificateKeyId:e.kid}};return l.recoveryId&&(I.properties.recoveryId=l.recoveryId,I.properties.scheduledPurgeDate=l.scheduledPurgeDate,I.properties.deletedOn=l.deletedDate,I.recoveryId=l.recoveryId,I.scheduledPurgeDate=l.scheduledPurgeDate,I.deletedOn=l.deletedDate),r&&(r.vaultUrl&&delete I.properties.vaultUrl,r.expires&&delete I.properties.expires,r.created&&delete I.properties.created,r.updated&&delete I.properties.updated),I}function BRe(t,e,l){let n;return{async next(){n??(n=t(Object.assign(Object.assign({},e),{maxresults:void 0})));let r=await n.next();return Object.assign(Object.assign({},r),{value:r.value&&l(r.value)})},[Symbol.asyncIterator](){return this},byPage(r){return F4(this,arguments,function*(){var a,s,o,d;let u=t(Object.assign(Object.assign({},e),{maxresults:r?.maxPageSize})).byPage(r);try{for(var b=!0,p=pS(u),h;h=yield Lc(p.next()),a=h.done,!a;b=!0)d=h.value,b=!1,yield yield Lc(d.map(l))}catch(W){s={error:W}}finally{try{!b&&!a&&(o=p.return)&&(yield Lc(o.call(p)))}finally{if(s)throw s.error}}})}}}c();c();var xRe="4.10.0";var xg=gx({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:xRe});c();c();c();c();c();c();c();c();var SDe=Gh("core-lro");c();c();c();c();c();c();var ODe=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},TDe=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},vie=class{constructor(e){this.resolveOnUnsuccessful=!1,this.stopped=!0,this.pollProgressCallbacks=[],this.operation=e,this.promise=new Promise((l,n)=>{this.resolve=l,this.reject=n}),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 l of this.pollProgressCallbacks)l(e)}async cancelOnce(e={}){this.operation=await this.operation.cancel(e)}poll(e={}){if(!this.pollOncePromise){this.pollOncePromise=this.pollOnce(e);let l=()=>{this.pollOncePromise=void 0};this.pollOncePromise.then(l,l).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 TDe("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(l=>l!==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 ODe("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()}};c();var _6=class extends vie{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return Q4(this.intervalInMs)}},D6=class{constructor(e,l={}){this.state=e,this.cancelMessage="",l.cancelMessage&&(this.cancelMessage=l.cancelMessage)}async update(){throw new Error("Operation not supported.")}async cancel(){throw new Error(this.cancelMessage)}toString(){return JSON.stringify({state:this.state})}};var SRe=class extends D6{constructor(e,l,n={}){super(e,{cancelMessage:"Canceling the deletion of a secret is not supported."}),this.state=e,this.client=l,this.operationOptions=n}deleteSecret(e,l={}){return xg.withSpan("DeleteSecretPoller.deleteSecret",l,async n=>{let r=await this.client.deleteSecret(e,n);return oZ(r)})}getDeletedSecret(e,l={}){return xg.withSpan("DeleteSecretPoller.getDeletedSecret",l,async n=>{let r=await this.client.getDeletedSecret(e,n);return oZ(r)})}async update(e={}){let l=this.state,{name:n}=l;if(e.abortSignal&&(this.operationOptions.abortSignal=e.abortSignal),!l.isStarted){let r=await this.deleteSecret(n,this.operationOptions);l.isStarted=!0,l.result=r,r.properties.recoveryId||(l.isCompleted=!0)}if(!l.isCompleted)try{l.result=await this.getDeletedSecret(n,this.operationOptions),l.isCompleted=!0}catch(r){if(r.statusCode===403)l.isCompleted=!0;else if(r.statusCode!==404)throw l.error=r,l.isCompleted=!0,r}return this}};var ORe=class extends _6{constructor(e){let{client:l,name:n,operationOptions:r,intervalInMs:I=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let o=new SRe(Object.assign(Object.assign({},s),{name:n}),l,r);super(o),this.intervalInMs=I}};c();c();var TRe=class extends D6{constructor(e,l,n={}){super(e,{cancelMessage:"Canceling the recovery of a deleted secret is not supported."}),this.state=e,this.client=l,this.options=n}getSecret(e,l={}){return xg.withSpan("RecoverDeletedSecretPoller.getSecret",l,async n=>{let r=await this.client.getSecret(e,l&&l.version?l.version:"",n);return oZ(r)})}recoverDeletedSecret(e,l={}){return xg.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",l,async n=>{let r=await this.client.recoverDeletedSecret(e,n);return oZ(r)})}async update(e={}){let l=this.state,{name:n}=l;if(e.abortSignal&&(this.options.abortSignal=e.abortSignal),!l.isStarted){try{l.result=(await this.getSecret(n,this.options)).properties,l.isCompleted=!0}catch{}l.isCompleted||(l.result=(await this.recoverDeletedSecret(n,this.options)).properties,l.isStarted=!0)}if(!l.isCompleted)try{l.result=(await this.getSecret(n,this.options)).properties,l.isCompleted=!0}catch(r){if(r.statusCode===403)l.isCompleted=!0;else if(r.statusCode!==404)throw l.error=r,l.isCompleted=!0,r}return this}};var URe=class extends _6{constructor(e){let{client:l,name:n,operationOptions:r,intervalInMs:I=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let o=new TRe(Object.assign(Object.assign({},s),{name:n}),l,r);super(o),this.intervalInMs=I}};var MRe=class{constructor(e,l,n={}){var r,I;this.vaultUrl=e;let a=Object.assign(Object.assign({},n),{userAgentOptions:{userAgentPrefix:`${(I=(r=n.userAgentOptions)===null||r===void 0?void 0:r.userAgentPrefix)!==null&&I!==void 0?I:""} azsdk-js-keyvault-secrets/${xRe}`},apiVersion:n.serviceVersion||"7.6",loggingOptions:{logger:Ukt.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new Cie(this.vaultUrl,l,a),this.client.pipeline.removePolicy({name:WEe}),this.client.pipeline.addPolicy(oLt(l,n),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(s,o){var d;return((d=s.headers.get("Content-Type"))!==null&&d!==void 0?d:"").startsWith("application/json")&&s.headers.set("Content-Type","application/json"),o(s)}})}setSecret(e,l,n={}){let{enabled:r,notBefore:I,expiresOn:a,tags:s}=n,o=Lse(n,["enabled","notBefore","expiresOn","tags"]);return xg.withSpan("SecretClient.setSecret",o,async d=>{let u=await this.client.setSecret(e,{value:l,secretAttributes:{enabled:r,notBefore:I,expires:a},tags:s},d);return oZ(u)})}async beginDeleteSecret(e,l={}){let n=new ORe(Object.assign(Object.assign({name:e,client:this.client},l),{operationOptions:l}));return await n.poll(),n}async updateSecretProperties(e,l,n={}){let{enabled:r,notBefore:I,expiresOn:a,tags:s}=n,o=Lse(n,["enabled","notBefore","expiresOn","tags"]);return xg.withSpan("SecretClient.updateSecretProperties",o,async d=>{let u=await this.client.updateSecret(e,l,{secretAttributes:{enabled:r,notBefore:I,expires:a},tags:s},d);return oZ(u).properties})}getSecret(e,l={}){return xg.withSpan("SecretClient.getSecret",l,async n=>{let r=await this.client.getSecret(e,l&&l.version?l.version:"",n);return oZ(r)})}getDeletedSecret(e,l={}){return xg.withSpan("SecretClient.getDeletedSecret",l,async n=>{let r=await this.client.getDeletedSecret(e,n);return oZ(r)})}purgeDeletedSecret(e,l={}){return xg.withSpan("SecretClient.purgeDeletedSecret",l,async n=>{await this.client.purgeDeletedSecret(e,n)})}async beginRecoverDeletedSecret(e,l={}){let n=new URe(Object.assign(Object.assign({name:e,client:this.client},l),{operationOptions:l}));return await n.poll(),n}backupSecret(e,l={}){return xg.withSpan("SecretClient.backupSecret",l,async n=>(await this.client.backupSecret(e,n)).value)}restoreSecretBackup(e,l={}){return xg.withSpan("SecretClient.restoreSecretBackup",l,async n=>{let r=await this.client.restoreSecret({secretBundleBackup:e},n);return oZ(r).properties})}listPropertiesOfSecretVersions(e,l={}){return BRe(n=>this.client.getSecretVersions(e,n),l,n=>oZ(n).properties)}listPropertiesOfSecrets(e={}){return BRe(this.client.getSecrets.bind(this.client),e,l=>oZ(l).properties)}listDeletedSecrets(e={}){return BRe(this.client.getDeletedSecrets.bind(this.client),e,oZ)}};var UDe=class{client;logger;constructor(e,l){if(this.logger=l,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let n=new kV;this.client=new MRe(e,n)}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(l){if(this.logger.warning(`Error fetching secret ${e}: ${l}`),l?.code==="SecretNotFound")return;throw l}}};function cLt(t,e){let l=t.api?.copilot?.azureKeyVaultUri;return MDe(l,e)}function MDe(t,e){return new UDe(t,e)}c();import{createHmac as yin}from"crypto";var _Re=class t{static encode(e){let l=t.hmacGetBytes(e),a=(Math.floor(Date.now()/1e3)+30).toString(),s=Buffer.from(a,"ascii"),u=yin("sha256",l).update(s).digest().toString("hex").toUpperCase();return`${a}.${u}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}};var Ein="X-GitHub-Api-Version",Rin="2025-05-01",o9=class t extends lI{constructor(l,n,r,I){super({baseURL:l,apiKey:"",logLevel:whe()?"debug":"info"});this.headers=n;this.runnerLogger=r;this.hmacKey=I}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[Ein]:Rin};hmacKey;additionalHeaders={};static createWithOAuthToken(l,n,r,I,a,s){let o={...this.defaultHeaders(r,a),Authorization:`Bearer ${I}`,...s??{}};return l.debug(`Creating copilot-client for integration ID ${r} with token authentication. User-agent: ${o["User-Agent"]}`),new t(n,o,l)}static createWithHmac(l,n,r,I,a,s,o){let d={...this.defaultHeaders(r,a),Authorization:"",...o??{}};return s&&(d["X-GitHub-User"]=s),l.debug(`Creating copilot-client for integration ID ${r} with key authentication. User-agent: ${d["User-Agent"]}`),new t(n,d,l,I)}static defaultHeaders(l,n){let r=E2();return{...t.baseHeaders,"Copilot-Integration-Id":l,"User-Agent":`${r.nameNoScope}/${r.version} (${process.platform} ${process.version}) OpenAI/${qV}`,"X-Interaction-Id":n}}async prepareOptions(l){this.hmacKey&&(this.headers["Request-HMAC"]=_Re.encode(this.hmacKey)),l.headers={...this.headers,...this.additionalHeaders,...l.headers},await super.prepareOptions(l)}setInitiatorHeader(l){this.headers["X-Initiator"]=l}setAdditionalHeaders(l){this.additionalHeaders=l}async listModels(){let l={method:"get",path:""};await this.prepareOptions(l);let n={};if(l.headers)for(let[s,o]of Object.entries(l.headers))typeof o=="string"&&(n[s]=o);let r=`${this.baseURL}/models`,I=await fetch(r,{method:l.method,headers:n});if(!I.ok)return this.runnerLogger.error(`Failed to list models: ${I.status} ${I.statusText}: ${await I.text()}`),[];let a=await I.json();return this.runnerLogger.debug(`Successfully listed ${a.data.length} models`),a.data}},z6=class{async createClient(e,l,n){l.startGroup("configured settings:",8),l.debug(JSON.stringify(e,null,2)),l.endGroup(8);let r=e.api?.copilot?.token,I=e.api?.copilot?.hmacKey,a=!!(I||r);if(!a){l.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let b=cLt(e,l);try{I=await b.getSecret("capi-hmac-key")}catch(p){l.debug(`Failed to get Copilot HMAC key from secret provider:
1811
1811
  ${p}`)}try{r=await b.getSecret("capi-token")}catch(p){l.debug(`Failed to get Copilot GitHub OAuth token from secret provider:
1812
1812
  ${p}`)}a=!!(I||r)}let s,o=_Gt(e),d=j$(e),u=e.api?.copilot?.sessionId??V3(e);if(l.debug(`Using Copilot API at ${o} with integration ID ${d}`),r&&(l.debug("Using GitHub OAuth token for Copilot API"),s=o9.createWithOAuthToken(l,o,d,r,u,n?.requestHeaders)),I){l.debug("Using Copilot HMAC key for Copilot API");let b=process.env.GITHUB_USER_ID;b?l.debug(`Using user ID ${b} for Copilot HMAC key`):l.debug("No user ID provided for Copilot HMAC key"),s=o9.createWithHmac(l,o,d,I,u,b,n?.requestHeaders)}if(s===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return s}},P6=class t extends uu{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof uu)))return new t(e)}};var _De={type:"ephemeral"},j6=class t{constructor(e,l,n,r){this.settings=l;this.logger=n;this.clientOptions=t.initDefaultOptions(r),n.info(" "),n.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(l,n,r),this.modelPromise=this.clientPromise.then(async()=>{let I=await this.getModel();return n.debug(`Got model info: ${JSON.stringify(I,null,2)}`),I})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||i9e.model,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??{}}}getCompletionOptions(e,l){let n={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:l?.toolChoice,...n}}makeRequest(e,l,n,r,I,a,s){return e.chat.completions.create({model:l,messages:[...n],...r,tools:I},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}makeRequestStreaming(e,l,n,r,I,a,s){return e.chat.completions.create({model:l,messages:[...n],...r,tools:I,stream:!0,stream_options:{include_usage:!0}},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}async*getCompletionWithTools(e,l,n,r){let I=this.model,a=await this.clientPromise,s=await this.modelPromise,o=JX(n),d=[{role:"system",content:e,copilot_cache_control:_De},...l.map(y=>LIe(y))],u=n.map((y,R)=>({type:"function",function:{name:y.name,description:y.description,parameters:y.input_schema},copilot_cache_control:R===n.length-1?_De: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(r??{},null,2)),this.logger.debug("Tools: "),this.logger.debug(JSON.stringify(u,null,2)),this.logger.endGroup(8);let b=this.getCompletionOptions(n,r),p=r?.initialTurnCount!==void 0?r.initialTurnCount+1:0,h=!1,W=!1;for(;!h&&!W;){let y=Date.now();yield{kind:"turn_started",model:I,modelInfo:s,turn:p,timestampMs:y};let R=0,Q=0,C=0,L=[429,503,500,400],x=this.clientOptions.retryPolicy.maxRetries,U=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,j=0,P=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,q,T;try{let D=[],se;do{C>0&&(yield{kind:"turn_retry",model:I,modelInfo:s,turn:p,timestampMs:Date.now()});try{let Ze={};for(let _ of r?.processors?.preRequest||[]){let Ge=_.preRequest({turn:p,retry:C,messages:d,toolDefinitions:u,modelInfo:s,additionalRequestHeaders:Ze,getCompletionWithToolsOptions:r});for await(let ie of Ge)yield ie}if(this.logger.startGroup("Sending request to the AI model",8),So(this.settings,"copilot_swe_agent_request_logging")){let _=JSON.stringify(d,null,2),Ge=JSON.stringify(b,null,2);this.logger.debug(`Request messages: ${_}`),this.logger.debug(`Request options: ${Ge}`)}D=d.map((_,Ge)=>Ge===d.length-1?{..._,copilot_cache_control:_De}:_),R=Date.now(),a.setAdditionalHeaders(Ze);let ye;if(r?.stream){let _=await this.makeRequestStreaming(a,I,D,b,u,x,r);ye=await Vin(_,a,r)}else ye=await this.makeRequest(a,I,D,b,u,x,r);Q=Date.now()-R,q=ye.data,se={model:I,api_id:q.id,request_id:ye.response.headers.get("x-github-request-id")||void 0};let ne={};ye.response.headers.forEach((_,Ge)=>{if(Ge.toLowerCase().startsWith(IDe)){let ie=ukt(_);ie&&(ne[Ge.replace(IDe,"")]=ie)}}),yield{kind:"model_call_success",turn:p,modelCallDurationMs:Q,modelCall:se,responseChunk:R1t(q),responseUsage:q.usage,requestMessages:JSON.stringify(D),quotaSnapshots:ne},this.logger.debug(`response (Request-ID ${ye.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(ye.data,null,2))}catch(Ze){Q=Date.now()-R;let ye=P6.fromAPIError(Ze),ne=ye?.error;if(ye){yield{kind:"model_call_failure",turn:p,modelCallDurationMs:Q,requestMessages:JSON.stringify(D),modelCall:{model:I,status:ye.status,error:JSON.stringify(ye?.error||ye?.message||"unknown error"),api_id:ye.requestID||void 0,request_id:ye.headers?.get("x-github-request-id")||""}},T=ye;let Ge=ye.ghRequestId||ye.headers?.get("x-github-request-id")||ye.requestID;this.logger.error(`error (Request-ID ${Ge})`),this.logger.error(JSON.stringify(ye,null,2)),this.logger.debug(`Failed to get response from the AI model: ${ye}`),ne&&this.logger.debug(`Inner error: ${JSON.stringify(ne,null,2)}`);let ie;for(let Qe of r?.processors?.onRequestError||[])ie=await Qe.onRequestError({turn:p,retry:C,maxRetries:x,error:ne,modelInfo:s,getCompletionWithToolsOptions:r})||ie;let Ve=ye.status,he=Ve?this.clientOptions.retryPolicy.errorCodesToRetry.some(Qe=>Array.isArray(Qe)?Ve>=Qe[0]&&(Qe[1]===void 0||Ve<=Qe[1]):Ve===Qe):!1,Le;if(ie)Le=ie.retryAfter;else if(ye.status!==402){if(ye.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let Qe=0;for(let Re=d.length-1;Re>=0;Re--)r4(d[Re])&&(d.splice(Re,1),Qe++,yield{kind:"images_removed",turn:p,imagesRemoved:1,largeImagesRemoved:1});Qe>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${$y(s.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${Qe} image messages from the request`),Le=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof ye.status=="number"&&L.includes(ye.status)||he)&&(Le=parseInt(ye.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+U,U*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,C==x-1))for(let Qe=d.length-1;Qe>=0;Qe--)r4(d[Qe])&&(this.logger.debug(`Removing image message at index ${Qe} to avoid failure`),d.splice(Qe,1),yield{kind:"images_removed",turn:p,imagesRemoved:1})}if(Le!==void 0&&Le<=P){let Qe=.8+Math.random()*.4,Re=Le*Qe;this.logger.debug(`Retrying after ${Re} seconds...`),await new Promise(oe=>setTimeout(oe,Re*1e3)),j+=Re,this.logger.debug(`Retrying after ${Le} seconds... Will try again now!`);continue}else Le?this.logger.error(`Retry after ${Le} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let _=ye||Ze;for(let Ge of r?.processors?.onRequestError||[])await Ge.preErrorThrow(Ze);throw this.logger.error("error"),this.logger.error(JSON.stringify(_,null,2)),_}finally{a.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!q&&C++<x);if(!q){this.logger.debug("Recent messages prior to failure:");for(let ye=Math.max(0,d.length-6);ye<d.length;ye++)this.logger.debug(`${ye}: ${JSON.stringify(d[ye],null,2)}`);let Ze=new Error(`Failed to get response from the AI model; retried ${C-1} times (total retry wait time: ${j} seconds)`,{cause:T});throw this.isRateLimitExceededError(Ze)&&(this.logger.info(`Rate limit exceeded after ${C-1} retries, will fail job but skip Sentry reporting`),Ze.skipReport=!0),Ze}for(let Ze of q.choices.map(ye=>ye.message))Yin(Ze.tool_calls||[]),d.push(Ze),yield{kind:"message",modelCall:se,message:LIe(fP(Ze)),turn:p};if(this.isToolCallResponse(q)){let ye=(s.capabilities.limits.max_prompt_tokens||s.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,ne=ZWt(I,ye,this,this.settings),Ge=q.choices.filter(Le=>Le.message.tool_calls!==void 0).flatMap(Le=>Le.message.tool_calls||[]).filter(AA),ie=new Map;for(let Le of r?.processors?.preToolsExecution||[]){let Qe=await Le.preToolsExecution({turn:p,toolCalls:Ge,modelInfo:s});if(Qe)for(let[Re,oe]of Qe)ie.set(Re,oe)}let Ve=Ge.filter(Le=>!ie.has(Le.id)),he=this.mergeToolResults(ie,Ge,Ve,o,ne,r?.executeToolsInParallel);for await(let Le of he){Le.toolResult.resultType==="rejected"&&(W=!0);let Qe={role:"tool",tool_call_id:Le.originalCall.id,content:Le.toolResult.textResultForLlm};d.push(Qe),yield{kind:"message",modelCall:se,message:LIe(Qe),turn:p},yield{kind:"tool_execution",turn:p,toolCallId:Le.originalCall.id,toolResult:Le.toolResult,durationMs:Le.durationMs};for(let Re of r?.processors?.postToolExecution||[])await Re.postToolExecution({toolCall:Le.originalCall,toolResult:Le.toolResult,turn:p,modelInfo:s})}}else for(let Ze of q.choices.map(ye=>ye.message))yield{kind:"response",modelCall:{model:I,api_id:q.id},response:LIe(fP(Ze)),turn:p},h=!0;a.setInitiatorHeader("agent")}catch(D){let se;throw D instanceof Error&&D.cause&&D.cause instanceof P6?se=`${D} (Cause: ${D.cause})`:se=`${D}`,yield{kind:"turn_failed",model:I,modelInfo:s,turn:p,error:se,timestampMs:Date.now()},D}finally{let D=Date.now();yield{kind:"turn_ended",model:I,modelInfo:s,turn:p,timestampMs:D},p++}}}async*mergeToolResults(e,l,n,r,I,a=!1){for(let[s,o]of e){let d=l.find(u=>u.id===s);d&&(yield{durationMs:0,originalCall:d,toolResult:o})}n.length>0&&(yield*this.callTools(n,r,I,a))}async*callTools(e,l,n,r=!1){if(e.length===0)throw new Error("Tool call is missing");if(this.logger.debug(`Tool calls count: ${e.length}`),r)this.logger.debug("Running tool calls in parallel"),yield*mWt(e.map(I=>()=>this.callTool(I,l,n)));else{this.logger.debug("Running tool calls sequentially");for(let I of e)yield await this.callTool(I,l,n)}}async callTool(e,l,n){let r=0,I=e?.function.name;if(!I)throw new Error("Tool name is missing");let a=e?.function.arguments;if(!a)throw new Error("Tool call arguments are missing");let s=e?.id;if(!s)throw new Error("Tool call id is missing");let o,d=l[I];try{let u=A6(a);if(!d||!d.callback)o={textResultForLlm:`Tool '${I}' does not exist. Available tools that can be called are ${Object.keys(l).join(", ")}.`,resultType:"failure",error:`Tool '${I}' does not exist.`,sessionLog:`<error>Tool '${I}' does not exist.</error>`,toolTelemetry:{}};else{let b=d.callback,p=Date.now(),h={...n,toolCallId:s,toolOptions:this.settings.service?.tools?.[I]},W=await b({...u},h);r=Date.now()-p,o=typeof W=="string"?{textResultForLlm:W,resultType:"success",toolTelemetry:{}}:W}}catch(u){u instanceof SyntaxError?(o={textResultForLlm:`The arguments for the tool call '${I}' were not valid JSON. The arguments have been cleared. Arguments: ${a}. JSON parse error: ${u.message}`,resultType:"failure",error:`${u.message}`,sessionLog:`<error>Failed to execute \`${I}\` tool with arguments: ${a} due to syntax error: ${u.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}},e.function.arguments="{}"):o={textResultForLlm:`Failed to execute \`${I}\` tool with arguments: ${a} due to error: ${u}`,resultType:"failure",error:u instanceof Error?u.message:`${u}`,sessionLog:`<error>Failed to execute \`${I}\` tool with arguments: ${a}</error>`,toolTelemetry:{}}}return{durationMs:r,originalCall:e,toolResult:o}}isToolCallResponse(e){return e.choices.find(l=>l.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 P6)return e.cause.status===429}return!1}async getModel(){let e=this.clientOptions.model,l={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)||l}};function Yin(t){for(let e of t)e.function.name=e.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_")}async function Vin(t,e,l){let n=Qin(t.data,e).toReadableStream(),r=yv.fromReadableStream(n),I=l?.processors?.onStreamingChunk;if(I?.length)for await(let a of r){l?.abortSignal?.throwIfAborted();let s={chunk:a};for(let o of I)o.onStreamingChunk(s)}return{data:await r.finalChatCompletion(),response:t.response,request_id:t.request_id}}function Qin(t,e){let l=new Map;return new xE(async function*(){for await(let n of t)n.choices?.forEach(r=>{r.delta.role??="assistant",!!r.delta?.tool_calls?.length&&(r.finish_reason??="tool_calls",r.delta.tool_calls?.forEach(a=>{if(a.index===0){let s=l.get(r.index);a.id&&(s=s===void 0?0:s+1,l.set(r.index,s)),s!==void 0&&(a.index=s)}}))}),yield n},t.controller,e)}var DRe=class extends j6{constructor(e,l,n){let r=new z6;super(r,e,l,n)}};c();c();var K6=class t{constructor(e,l,n,r){this.settings=l;this.logger=n;this.clientOptions=t.initDefaultOptions(r),this.logger.info(`Using responses with model: ${this.model}`),this.clientPromise=e.createClient(l,n,this.clientOptions)}clientOptions;clientPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||"o4-mini",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??60}},thinkingMode:e?.thinkingMode??!0,requestHeaders:e?.requestHeaders??{}}}makeRequest(e,l,n,r,I,a,s,o){return e.responses.create({model:l,previous_response_id:a,instructions:n,input:r,parallel_tool_calls:I.length>0?!0:void 0,tools:I,reasoning:{summary:"auto",effort:"medium"},store:!1,include:["reasoning.encrypted_content"]},{maxRetries:s||this.clientOptions.retryPolicy.maxRetries,headers:o?.requestHeaders,signal:o?.abortSignal}).withResponse()}async*getCompletionWithTools(e,l,n,r){let I=await this.clientPromise,a=JX(n),s=n.map(R=>({name:R.name,description:R.description,parameters:R.input_schema,strict:!1,type:"function"})),o=0,d=this.clientOptions.retryPolicy.maxRetries,u=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,b=0,p=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,h=l.flatMap(win),W,y=!1;for(;!y;){let R;do{R=void 0;try{let Q=await this.makeRequest(I,this.model,e,h,s,void 0,d,r);W=Q.data,h.push(...W.output),this.logger.debug(`response (Request-ID ${Q.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(Q.data,null,2))}catch(Q){let C=Q,L=C.error;if(C){R=C,this.logger.error(`error (Request-ID ${C.requestID})`),this.logger.error(JSON.stringify(C,null,2)),this.logger.debug(`Failed to get response from the AI model: ${C}`),L&&this.logger.debug(`Inner error: ${JSON.stringify(L,null,2)}`);let x=C.status,U=x?this.clientOptions.retryPolicy.errorCodesToRetry.some(P=>Array.isArray(P)?x>=P[0]&&(P[1]===void 0||x<=P[1]):x===P):!1,j;if((C.status===429||U)&&(j=parseInt(C.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+u,u*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth),j!==void 0&&j<=p){this.logger.debug(`Retrying after ${j} seconds...`),await new Promise(P=>setTimeout(P,j*1e3)),b+=j,this.logger.debug(`Retrying after ${j} seconds... Will try again now!`);continue}else j?this.logger.error(`Retry after ${j} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}throw this.logger.error("error"),this.logger.error(JSON.stringify(Q,null,2)),Q}finally{this.logger.endGroup(8)}}while(R&&o++<d);if(!W||R){this.logger.debug("Recent messages prior to failure:");for(let Q=Math.max(0,h.length-6);Q<h.length;Q++)this.logger.debug(`${Q}: ${JSON.stringify(h[Q],null,2)}`);throw new Error(`Failed to get response from the AI model; retried ${o-1} times (total retry wait time: ${b} seconds)`,{cause:R})}for(let Q of W.output)yield{kind:"message",message:dLt(Q)};if(this.requiresToolOutput(W)){let C=(await this.runTool(W,a)).map(L=>({type:"function_call_output",call_id:L.toolCallId,output:L.textResultForLlm}));h.push(...C);for(let L of C)yield{kind:"message",message:dLt(L)}}else yield{kind:"response",response:{content:W.output_text,refusal:null,role:"assistant"}},y=!0}}async runTool(e,l,n){let r=e.output.filter(a=>a.type==="function_call");if(!r||r.length===0)throw new Error("Tool calls in response are missing");let I=[];for(let a of r){let s=a.name;if(!s)throw new Error("Tool name is missing");let o=a.arguments;if(!o)throw new Error("Tool call arguments are missing");let d=a.call_id;if(!d)throw new Error("Tool call id is missing");let u,b=l[s];try{let p=A6(o);if(!b||!b.callback)u={textResultForLlm:`Tool '${s}' does not exist. Available tools that can be called are ${Object.keys(l).join(", ")}.`,resultType:"failure",error:`Tool '${s}' does not exist.`,sessionLog:`<error>Tool '${s}' does not exist.</error>`,toolTelemetry:{}};else{let h=b.callback,W={...n,toolOptions:this.settings.service?.tools?.[s],settings:this.settings},y=await h({...p},W);u=typeof y=="string"?{textResultForLlm:y,resultType:"success",toolTelemetry:{}}:y}}catch(p){u={textResultForLlm:`Failed to execute \`${s}\` tool with arguments: ${o} due to error: ${p}`,resultType:"failure",error:p instanceof Error?p.message:`${p}`,sessionLog:`<error>Failed to execute \`${s}\` tool with arguments: ${o}</error>`,toolTelemetry:{properties:{wasSyntaxError:p instanceof SyntaxError?"true":"false"}}}}I.push({toolCallId:d,textResultForLlm:u.textResultForLlm,sessionLog:u.resultType=="success"?u.sessionLog:u.error?`<error>${u.error}</error>`:void 0})}return I}requiresToolOutput(e){return e.output.filter(l=>l.type==="function_call").length>0}};function win(t){if(t.role==="function")throw new Error("Function role is not supported");let e=[];if(t.reasoning_opaque&&e.push({id:t.reasoning_opaque,type:"reasoning",summary:t.reasoning_text?[{text:t.reasoning_text,type:"summary_text"}]:[],encrypted_content:t.encrypted_content}),t.role==="assistant"&&t.tool_calls&&t.tool_calls.length>0&&AA(t.tool_calls[0])){let l=t.tool_calls[0];return[...e,{type:"function_call",id:t.id,name:l.function.name,arguments:l.function.arguments,call_id:l.id}]}return t.role==="tool"?[...e,{type:"function_call_output",call_id:t.tool_call_id,output:typeof t.content=="string"?t.content:t.content?.map(l=>l.type==="text"?l:{type:"text",text:""}).join(" ")??""}]:t.content?t.role==="assistant"?[...e,{type:"message",id:t.id,role:t.role,content:[{annotations:[],type:"output_text",text:typeof t.content=="string"?t.content:t.content?.map(l=>l.type==="text"?l.text:"").join(" ")??""}]}]:[...e,{role:t.role,content:typeof t.content=="string"?t.content:t.content?.map(l=>l.type==="text"?l.text:"").join(" ")??"",type:"message"}]:e}function dLt(t){if(t.type==="reasoning")return{role:"assistant",reasoning_opaque:t.id,reasoning_text:t.summary?t.summary.map(e=>e.text).join(" "):void 0,content:"",encrypted_content:t.encrypted_content};if(t.type==="function_call")return{role:"assistant",id:t.id,tool_calls:[{id:t.call_id,type:"function",function:{name:t.name,arguments:t.arguments}}],content:""};if(t.type==="function_call_output")return{role:"tool",content:t.output,tool_call_id:t.call_id};if(t.type==="message")return{id:"id"in t?t.id:void 0,role:t.role,content:typeof t.content=="string"?t.content:t.content?.map(e=>e.type==="input_text"||e.type==="output_text"?e.text:"").join(" ")??""};throw new Error(`Unknown item type: ${t.type}`)}var zRe=class extends K6{constructor(e,l,n){let r=new z6;super(r,e,l,n)}};var fie=class{constructor(e,l,n){this.settings=e;this.logger=l;this.clientOptions=n;this.chatClient=new DRe(e,l,n)}chatClient;get model(){return this.chatClient.model}async*getCompletionWithTools(e,l,n,r){let I=await this.chatClient.modelPromise;(this.clientOptions?.thinkingMode||So(this.settings,"copilot_swe_agent_enable_responses_api"))&&I&&I.supported_endpoints?.includes("/responses")?yield*new zRe(this.settings,this.logger,{model:this.chatClient.model,...this.clientOptions}).getCompletionWithTools(e,l,n,r):yield*this.chatClient.getCompletionWithTools(e,l,n,r)}};c();var PRe=class extends j6{constructor(e,l,n,r){super(e,l,n,r)}getCompletionOptions(e,l){return{...this.model.startsWith("gpt-4")?{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,parallel_tool_calls:e?!1:void 0}:{},tool_choice:l?.toolChoice}}async*getCompletionWithTools(e,l,n,r){let I=await super.getCompletionWithTools(e,l,n,r);for await(let a of I)a.kind==="message"?yield{...a,message:fP({...a.message,reasoning_text:a.message?.cot_summary})}:yield a}};c();var jRe=class extends K6{constructor(e,l,n,r){super(e,l,n,r)}};c();var DDe=class extends Yie{constructor(e){super(e)}setInitiatorHeader(e){}setAdditionalHeaders(e){}listModels(){return Promise.resolve([])}},KRe=class{async createClient(e,l,n){l.startGroup("configured settings:",8),l.debug(JSON.stringify(e,null,2)),l.endGroup(8);let r=e.api?.openai?.apiKey,I=e.api?.openai?.azureKeyVaultUri,a=e.api?.openai?.azureSecretName;if(!r&&I){l.debug("No API_KEY provided, trying secret provider");let u=MDe(I,l);try{r=await u.getSecret(a||"azure-openai-api-key")}catch(b){l.debug(`Failed to get API Key from secret provider:
1813
1813
  ${b}`)}}let s=MGt(e);l.debug(`Using Azure Open API at ${s}`);let d={baseURL:`${new URL(s).origin}/openai`,apiVersion:e.api?.openai?.azure?.apiVersion||"2024-10-21",deployment:n?.model,defaultHeaders:n?.requestHeaders};if(r)d={...d,apiKey:r},l.debug("Using Azure OpenAI API Key");else{let u=new kV,p=nMe(u,"https://cognitiveservices.azure.com/.default");d={...d,azureADTokenProvider:p},l.debug("Using Azure Managed Identity")}return new DDe(d)}};c();var zDe=class extends lI{constructor(e){super(e)}setInitiatorHeader(e){}setAdditionalHeaders(e){}listModels(){return Promise.resolve([])}},qRe=class{async createClient(e,l,n){l.startGroup("configured settings:",8),l.debug(JSON.stringify(e,null,2)),l.endGroup(8);let r=UGt(e),I=e.api?.openai?.baseUrl,a=n?.requestHeaders;return new zDe({baseURL:I,apiKey:r,defaultHeaders:a})}};function PDe(t,e,l,n){switch(l){case"sweagent-aip":return new kEe(t,e,n);case"sweagent-anthropic":return new rRe(t,e,n);case"sweagent-capi":return new fie(t,e,n);case"sweagent-openai":return n?.thinkingMode?new jRe(uLt(t),t,e,n):new PRe(uLt(t),t,e,n);default:return new fie(t,e,n)}}function uLt(t){return t.api?.openai?.azure?.url?new KRe:new qRe}c();c();function q6(t){return t.kind==="message"&&t.message.role==="assistant"}function mLt(t){return t.kind==="message"&&t.message.role==="user"}function $Re(t){return t.kind==="message"&&t.message.role==="assistant"&&!!t.message.tool_calls}function e2e(t){return t.kind==="message"&&t.message.role==="tool"}function Fin(t,e){return t.toolCalls.find(l=>l.toolCallId===e)}function Cin(t,e){let l=e.function.name;try{let n=JSON.parse(e.function.arguments||"{}"),I=t.find(a=>a.name===l)?.safeForTelemetry||{name:!1,inputsNames:!1};return{toolCallId:e.id,toolName:l,arguments:e.function.arguments,safeForTelemetryToolName:I===!0||I.name?l:lB(l),safeForTelemetryArguments:I===!0||I.inputsNames?dkt(n):""}}catch{return{toolCallId:e.id,toolName:l,arguments:e.function.arguments,safeForTelemetryToolName:lB(l),safeForTelemetryArguments:""}}}var t2e=class{forAgent;turnDataCache;emittedTurns=new Set;callback;settings;toolsInUse;constructor(e,l,n,r){this.forAgent=e,this.turnDataCache=new Map,this.emittedTurns=new Set,this.callback=l,this.settings=n,this.toolsInUse=r}getTurnData(){return this.turnDataCache}async ingestEvent(e){let l,n;if("turn"in e&&typeof e.turn=="number"){if(l=e.turn+1,this.emittedTurns.has(l))return;this.turnDataCache.has(l)||this.turnDataCache.set(l,{featureFlagsAsString:p4e(this.settings),toolCalls:[],toolCallExecutions:[],turn:l}),n=this.turnDataCache.get(l)}else return;e.kind==="tool_execution"?await this.ingestToolExecutionEventAndEmitToolCallExecutedTelemetry(n,e):e.kind==="turn_started"||e.kind==="turn_failed"||e.kind==="turn_retry"||e.kind==="turn_ended"?(n={...n,model:e.model,modelInfo:JSON.stringify(e.modelInfo)},e.kind==="turn_started"?n={...n,startTimeMs:e.timestampMs}:e.kind==="turn_retry"?n={...n,endTimeMs:e.timestampMs,retriesUsed:(n.retriesUsed??0)+1}:e.kind==="turn_failed"?n={...n,endTimeMs:e.timestampMs,error:e.error}:e.kind==="turn_ended"&&(n={...n,endTimeMs:e.timestampMs})):e.kind==="history_truncated"?n={...n,truncateEvent:e}:e.kind==="image_processing"?n={...n,imageProcessingMetrics:e.imageProcessingMetrics}:e.kind==="images_removed"?n={...n,largeImagesRemoved:(n.largeImagesRemoved??0)+(e.largeImagesRemoved?1:0),imagesRemoved:(n.imagesRemoved??0)+(e.imagesRemoved?1:0)}:e.kind==="model_call_success"||e.kind==="model_call_failure"?(n={...n,modelCallDurationMs:e.modelCallDurationMs,api_call_id:e.modelCall.api_id,provider_call_id:e.modelCall.request_id,conversationStructureSummary:E1t(e.requestMessages)},e.kind==="model_call_success"&&(n={...n,responsePromptTokens:e.responseUsage?.prompt_tokens,responseCompletionTokens:e.responseUsage?.completion_tokens,responseTotalTokens:e.responseUsage?.total_tokens})):mLt(e)&&e.source==="jit-instruction"?n={...n,jitInstructionsAdded:(n?.jitInstructionsAdded??0)+1}:q6(e)&&e.message.tool_calls?n={...n,toolCalls:n.toolCalls.concat(e.message.tool_calls.map(r=>({...Cin(this.toolsInUse,r)})))}:e2e(e)&&(n={...n,toolCallExecutions:n.toolCallExecutions.concat([e.message.tool_call_id])}),this.turnDataCache.set(l,n),e.kind==="turn_ended"&&(await this.emitTurnTelemetry(l),this.emittedTurns.add(l),this.turnDataCache.delete(l))}async emitTurnTelemetry(e){let l=this.turnDataCache.get(e);if(l){let n={kind:"telemetry",telemetry:{event:"get_completion_with_tools_turn",properties:{model:l.model||"default",modelInfo:l.modelInfo||"{}",api_call_id:l.api_call_id,provider_call_id:l.provider_call_id,agent:this.forAgent,toolCalls:JSON.stringify(l.toolCalls.map(r=>({toolCallId:r.toolCallId,toolName:r.safeForTelemetryToolName}))),toolCallExecutions:JSON.stringify(l.toolCallExecutions),error:l.error,featureFlags:p4e(this.settings),conversationStructureSummary:l.conversationStructureSummary,truncationPerformedBy:l.truncateEvent?.performedBy},metrics:{turn:e,turnDurationMs:l.endTimeMs!==void 0&&l.startTimeMs!==void 0?l.endTimeMs-l.startTimeMs:0,modelCallDurationMs:l.modelCallDurationMs,retriesUsed:l.retriesUsed??0,numToolCalls:l.toolCalls.length,numToolExecutions:l.toolCallExecutions.length,largeImagesRemoved:l.largeImagesRemoved,imagesRemoved:l.imagesRemoved,responsePromptTokens:l.responsePromptTokens,responseCompletionTokens:l.responseCompletionTokens,responseTotalTokens:l.responseTotalTokens,jitInstructionsAdded:l.jitInstructionsAdded,...l.truncateEvent?.truncateResult,...l.imageProcessingMetrics},restrictedProperties:{}}};await this.callback.progress(n)}}async ingestToolExecutionEventAndEmitToolCallExecutedTelemetry(e,l){let n=l.toolCallId,r=Fin(e,n);if(r){let I=l.toolResult,a={kind:"telemetry",telemetry:{event:"tool_call_executed",properties:{...I.toolTelemetry.properties,resultType:I.resultType,toolCallId:n,arguments:r.safeForTelemetryArguments,toolName:r.safeForTelemetryToolName,api_call_id:e.api_call_id},restrictedProperties:{...I.toolTelemetry.restrictedProperties,arguments:r.arguments,result:I.textResultForLlm,toolName:r.toolName,error:I.error},metrics:{...I.toolTelemetry.metrics,durationMs:l.durationMs}}};await this.callback.progress(a)}}};c();c();var Hie=class{async*preRequest(e){yield*[]}handleCallbackResponse(e){}getUserMessages(){return[]}clearUserMessages(){}canProcessUserMessages(){return!1}toJSON(){return JSON.stringify({type:"NoopUserMessageProcessor"})}};var l2e=class{constructor(e,l){this.runtimeContext=e;this.customAgentName=l;this.gitHandlers={silent:new tg(new PA,this.runtimeContext.exec),logging:new tg(this.runtimeContext.logger,this.runtimeContext.exec)}}gitHandlers;async agent(e,l,n,r,I,a,s=new Hie,o){let d=async(h,W,y)=>{let R={role:"user",content:h};return await this.runtimeContext.callback?.progress({kind:"message",message:R,turn:0}),await this.runCompletionWithTools(e,l,[...W??[],R],a,I,{executeToolsInParallel:So(this.runtimeContext.settings,"copilot_swe_agent_parallel_tool_execution"),initialTurnCount:y},o,s)},u=r,b=n??[],p;for(;u;){let h=await d(u,b,p);p=h.finalTurnCount,b=h.messages,u=await o?.onResult(h.postCompletionWithToolsCommitHash)}for(let h of a)if(h.shutdown){let W=await h.shutdown();W&&await this.runtimeContext.callback?.progress(W)}return{finalTurnCount:p||0,messages:b}}async runCompletionWithTools(e,l,n,r,I,a,s,o=new Hie){let d=this.runtimeContext.callback?new t2e("sweagent-capi",this.runtimeContext.callback,this.runtimeContext.settings,r):void 0,u=this.gitHandlers.logging,b=await u.getCurrentCommitHash(e),p=n.filter(L=>L.role==="user").at(-1),h=this.createCompletionWithToolsProcessors(e,b,r,o,I,s,p),W=this.runtimeContext.client.getCompletionWithTools(l,n,r,{...a,processors:h}),y=0,R=[...n],Q=[];for await(let L of W){if(So(this.runtimeContext.settings,"copilot_swe_agent_progress_commands")){let x=await this.runtimeContext.callback?.progress(L,{accepts_user_messages:o.canProcessUserMessages()});o.handleCallbackResponse(x)}else L.kind==="response"||L.kind==="message"?await this.runtimeContext.callback?.progress({...L,customAgentName:this.customAgentName}):await this.runtimeContext.callback?.progress(L);d&&await d.ingestEvent(L),(L.kind==="message"||L.kind==="response")&&(L.kind==="message"&&R.push(L.message),L.kind==="response"&&Q.push(L.response),y=Math.max(y,L.turn??0))}let C=await u.getCurrentCommitHash(e);return{finalTurnCount:y,messages:R,resultMessages:Q,preCompletionWithToolsCommitHash:b,postCompletionWithToolsCommitHash:C}}createCompletionWithToolsProcessors(e,l,n,r,I,a,s){let o=new cWe(this.runtimeContext.logger,this.runtimeContext.settings,n.find(p=>p.name==="github-mcp-server-get_file_contents")),d=new mWe(this.runtimeContext.settings,this.runtimeContext.logger,this.gitHandlers.silent,e,l,I),u=new HP(s,this.runtimeContext.logger),b=[d,o,u];return So(this.runtimeContext.settings,"copilot_swe_agent_progress_commands")&&b.push(r),{preRequest:b.filter(p=>p!==void 0),preToolsExecution:[a].filter(p=>p!==void 0),postToolExecution:[o,a].filter(p=>p!==void 0),onRequestError:[o,u].filter(p=>p!==void 0)}}};c();async function jDe(t,e,l,n,r){try{return(await n.invokeTool("blackbird-mcp-server/search_repository_with_agent",{task:t,depth:2,owner:e,repo:l,numSnippets:10},"hidden_characters")).textResultForLlm}catch(I){return r.error(`Error during Blackbird search: ${I}`),""}}var GLt=t=>So(t,"copilot_swe_agent_search")||FGt(t,"SearchAgentExperiment")==="enabled",bLt="search";function KDe(t){return t!==null&&typeof t=="object"&&"question"in t&&"reason"in t&&"searchCommand"in t}var vin=(t,e,l)=>`
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@github/copilot",
3
3
  "description": "GitHub Copilot CLI brings the power of Copilot coding agent directly to your terminal.",
4
- "version": "0.0.342-2",
4
+ "version": "0.0.342-3",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  "sdk/**/*"
34
34
  ],
35
35
  "buildMetadata": {
36
- "gitCommit": "0678192"
36
+ "gitCommit": "cc4c52c"
37
37
  },
38
38
  "dependencies": {
39
39
  "node-pty": "npm:@devm33/node-pty@^1.0.8",
package/sdk/index.js CHANGED
@@ -514,7 +514,7 @@ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
514
514
 
515
515
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
516
516
  `);this.baseURL=a.baseURL,this.timeout=a.timeout??MGe.DEFAULT_TIMEOUT,this.logger=a.logger??console;let r="warn";this.logLevel=r,this.logLevel=dGe(a.logLevel,"ClientOptions.logLevel",this)??dGe(qi("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??r,this.fetchOptions=a.fetchOptions,this.maxRetries=a.maxRetries??2,this.fetch=a.fetch??Wke(),bI(this,_D,$ke,"f"),this._options=a,this.apiKey=typeof I=="string"?I:"Missing Key",this.organization=l,this.project=n,this.webhookSecret=c}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 Oe([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return kGe(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Km}`}defaultIdempotencyKey(){return`stainless-node-retry-${EGe()}`}makeStatusError(e,I,l,n){return cc.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 Se?l:new Se(`Failed to get token from 'apiKey' function: ${l.message}`,{cause:l})}if(typeof I!="string"||!I)throw new Se(`Expected 'apiKey' function argument to return a string but it returned ${I}`);return this.apiKey=I,!0}buildURL(e,I,l){let n=!j(this,OGe,"m",yfe).call(this)&&l||this.baseURL,c=Fke(e)?new URL(e):new URL(n+(n.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),s=this.defaultQuery();return gke(s)||(I={...s,...I}),typeof I=="object"&&I&&!Array.isArray(I)&&(c.search=this.stringifyQuery(I)),c.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 ny(this,this.makeRequest(e,I,void 0))}async makeRequest(e,I,l){let n=await e,c=n.maxRetries??this.maxRetries;I==null&&(I=c),await this.prepareOptions(n);let{req:s,url:a,timeout:r}=await this.buildRequest(n,{retryCount:c-I});await this.prepareRequest(s,{url:a,options:n});let o="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),d=l===void 0?"":`, retryOf: ${l}`,i=Date.now();if(Vc(this).debug(`[${o}] sending request`,wZ({retryOfRequestLogID:l,method:n.method,url:a,options:n,headers:s.headers})),n.signal?.aborted)throw new xc;let h=new AbortController,p=await this.fetchWithTimeout(a,s,r,h).catch(O4),Z=Date.now();if(p instanceof globalThis.Error){let Y=`retrying, ${I} attempts remaining`;if(n.signal?.aborted)throw new xc;let y=S4(p)||/timed? ?out/i.test(String(p)+("cause"in p?String(p.cause):""));if(I)return Vc(this).info(`[${o}] connection ${y?"timed out":"failed"} - ${Y}`),Vc(this).debug(`[${o}] connection ${y?"timed out":"failed"} (${Y})`,wZ({retryOfRequestLogID:l,url:a,durationMs:Z-i,message:p.message})),this.retryRequest(n,I,l??o);throw Vc(this).info(`[${o}] connection ${y?"timed out":"failed"} - error; no more retries left`),Vc(this).debug(`[${o}] connection ${y?"timed out":"failed"} (error; no more retries left)`,wZ({retryOfRequestLogID:l,url:a,durationMs:Z-i,message:p.message})),y?new vN:new HN({cause:p})}let u=[...p.headers.entries()].filter(([Y])=>Y==="x-request-id").map(([Y,y])=>", "+Y+": "+JSON.stringify(y)).join(""),N=`[${o}${d}${u}] ${s.method} ${a} ${p.ok?"succeeded":"failed"} with status ${p.status} in ${Z-i}ms`;if(!p.ok){let Y=await this.shouldRetry(p);if(I&&Y){let C=`retrying, ${I} attempts remaining`;return await Nke(p.body),Vc(this).info(`${N} - ${C}`),Vc(this).debug(`[${o}] response error (${C})`,wZ({retryOfRequestLogID:l,url:p.url,status:p.status,headers:p.headers,durationMs:Z-i})),this.retryRequest(n,I,l??o,p.headers)}let y=Y?"error; no more retries left":"error; not retryable";Vc(this).info(`${N} - ${y}`);let Q=await p.text().catch(C=>O4(C).message),A=wke(Q),w=A?void 0:Q;throw Vc(this).debug(`[${o}] response error (${y})`,wZ({retryOfRequestLogID:l,url:p.url,status:p.status,headers:p.headers,message:w,durationMs:Date.now()-i})),this.makeStatusError(p.status,A,w,p.headers)}return Vc(this).info(N),Vc(this).debug(`[${o}] response start`,wZ({retryOfRequestLogID:l,url:p.url,status:p.status,headers:p.headers,durationMs:Z-i})),{response:p,options:n,controller:h,requestLogID:o,retryOfRequestLogID:l,startTime:i}}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 K4(this,l,e)}async fetchWithTimeout(e,I,l,n){let{signal:c,method:s,...a}=I||{};c&&c.addEventListener("abort",()=>n.abort());let r=setTimeout(()=>n.abort(),l),o=globalThis.ReadableStream&&a.body instanceof globalThis.ReadableStream||typeof a.body=="object"&&a.body!==null&&Symbol.asyncIterator in a.body,d={signal:n.signal,...o?{duplex:"half"}:{},method:"GET",...a};s&&(d.method=s.toUpperCase());try{return await this.fetch.call(void 0,e,d)}finally{clearTimeout(r)}}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 c,s=n?.get("retry-after-ms");if(s){let r=parseFloat(s);Number.isNaN(r)||(c=r)}let a=n?.get("retry-after");if(a&&!c){let r=parseFloat(a);Number.isNaN(r)?c=Date.parse(a)-Date.now():c=r*1e3}if(!(c&&0<=c&&c<60*1e3)){let r=e.maxRetries??this.maxRetries;c=this.calculateDefaultRetryTimeoutMillis(I,r)}return await Dm(c),this.makeRequest(e,I-1,l)}calculateDefaultRetryTimeoutMillis(e,I){let c=I-e,s=Math.min(.5*Math.pow(2,c),8),a=1-Math.random()*.25;return s*a*1e3}async buildRequest(e,{retryCount:I=0}={}){let l={...e},{method:n,path:c,query:s,defaultBaseURL:a}=l,r=this.buildURL(c,s,a);"timeout"in l&&Ake("timeout",l.timeout),l.timeout=l.timeout??this.timeout;let{bodyHeaders:o,body:d}=this.buildBody({options:l}),i=await this.buildHeaders({options:e,method:n,bodyHeaders:o,retryCount:I});return{req:{method:n,headers:i,...l.signal&&{signal:l.signal},...globalThis.ReadableStream&&d instanceof globalThis.ReadableStream&&{duplex:"half"},...d&&{body:d},...this.fetchOptions??{},...l.fetchOptions??{}},url:r,timeout:l.timeout}}async buildHeaders({options:e,method:I,bodyHeaders:l,retryCount:n}){let c={};this.idempotencyHeader&&I!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),c[this.idempotencyHeader]=e.idempotencyKey);let s=Oe([c,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(n),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},..._ke(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,l,e.headers]);return this.validateHeaders(s),s.values}buildBody({options:{body:e,headers:I}}){if(!e)return{bodyHeaders:void 0,body:void 0};let l=Oe([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:yD(e)}:j(this,_D,"f").call(this,{body:e,headers:l})}};MGe=XI,_D=new WeakMap,OGe=new WeakSet,yfe=function(){return this.baseURL!=="https://api.openai.com/v1"};XI.OpenAI=MGe;XI.DEFAULT_TIMEOUT=6e5;XI.OpenAIError=Se;XI.APIError=cc;XI.APIConnectionError=HN;XI.APIConnectionTimeoutError=vN;XI.APIUserAbortError=xc;XI.NotFoundError=OA;XI.ConflictError=MA;XI.RateLimitError=jA;XI.BadRequestError=zA;XI.AuthenticationError=UA;XI.InternalServerError=DA;XI.PermissionDeniedError=SA;XI.UnprocessableEntityError=TA;XI.InvalidWebhookSignatureError=Tm;XI.toFile=UD;XI.Completions=by;XI.Chat=LN;XI.Embeddings=hy;XI.Files=Zy;XI.Images=Yy;XI.Audio=qm;XI.Moderations=Ry;XI.Models=Vy;XI.FineTuning=$i;XI.Graders=UN;XI.VectorStores=JZ;XI.Webhooks=yy;XI.Beta=$m;XI.Batches=ry;XI.Uploads=TN;XI.Responses=MN;XI.Realtime=SN;XI.Conversations=BN;XI.Evals=zN;XI.Containers=xN;G();var oL=class extends XI{constructor({baseURL:e=qi("OPENAI_BASE_URL"),apiKey:I=qi("AZURE_OPENAI_API_KEY"),apiVersion:l=qi("OPENAI_API_VERSION"),endpoint:n,deployment:c,azureADTokenProvider:s,dangerouslyAllowBrowser:a,...r}={}){if(!l)throw new Se("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 s=="function"&&(a=!0),!s&&!I)throw new Se("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(s&&I)throw new Se("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(r.defaultQuery={...r.defaultQuery,"api-version":l},e){if(n)throw new Se("baseURL and endpoint are mutually exclusive")}else{if(n||(n=process.env.AZURE_OPENAI_ENDPOINT),!n)throw new Se("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${n}/openai`}super({apiKey:s??I,baseURL:e,...r,...a!==void 0?{dangerouslyAllowBrowser:a}:{}}),this.apiVersion="",this.apiVersion=l,this.deploymentName=c}async buildRequest(e,I={}){if(OEI.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!_A(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"?Oe([{"api-key":this.apiKey}]):super.authHeaders(e)}},OEI=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"]);G();import{readFileSync as MEI}from"fs";import{dirname as TEI,join as $D}from"path";import{fileURLToPath as jEI}from"url";var dL=null;function Ffe(){return TGe().version}function TGe(){if(dL!==null)return dL;try{let t=jEI(import.meta.url),e=TEI(t),I=[$D(e,"package.json"),$D(e,"../package.json"),$D(e,"../../package.json"),$D(e,"../runtime/package.json")];for(let n of I)try{let c=JSON.parse(MEI(n,"utf8")),s={name:c.name||"unknown",nameNoScope:DEI(c.name||"unknown"),version:c.version||"unknown",buildMetadata:c.buildMetadata};return dL=s,s}catch{continue}let l={name:"unknown",nameNoScope:"unknown",version:"unknown"};return dL=l,l}catch{let e={name:"unknown",nameNoScope:"unknown",version:"unknown"};return dL=e,e}}function DEI(t){return t.replace(/^@.*\//,"")}G();G();G();var gfe=Xa("keyvault-secrets");G();G();G();G();var Qfe=Xa("keyvault-secrets");G();G();function Ba(t,e){return typeof t=="string"?CT(t,e):CT(t)}G();G();G();G();function jGe(t){return lJ(t,["key"])&&typeof t.key=="string"}G();G();G();function iL(t){let e=t;return e&&typeof e.getToken=="function"&&(e.signRequest===void 0||e.getToken.length>0)}G();var KEI="ApiVersionPolicy";function Afe(t){return{name:KEI,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)}}}G();var PEI="keyCredentialAuthenticationPolicy";function wfe(t,e){return{name:PEI,async sendRequest(I,l){return I.headers.set(e,t.key),l(I)}}}function Xfe(t,e,I={}){var l,n,c,s;let{credential:a,clientOptions:r}=I;if(a){if(iL(a)){let o=vR({credential:a,scopes:(n=(l=r?.credentials)===null||l===void 0?void 0:l.scopes)!==null&&n!==void 0?n:`${e}/.default`});t.addPolicy(o)}else if(qEI(a)){if(!(!((c=r?.credentials)===null||c===void 0)&&c.apiKeyHeaderName))throw new Error("Missing API Key Header Name");let o=wfe(a,(s=r?.credentials)===null||s===void 0?void 0:s.apiKeyHeaderName);t.addPolicy(o)}}}function Efe(t,e,I={}){let l=FJ(I);return l.addPolicy(Afe(I)),Xfe(l,t,{credential:e,clientOptions:I}),l}function qEI(t){return t.key!==void 0}G();function gG(t){return Cse(t)}G();function jN(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 Hfe(t,e,I={}){let l;e&&(_EI(e)?l=e:I=e??{});let n=Efe(t,l,I),c=vse(t,Object.assign(Object.assign({},I),{pipeline:n})),s=(a,...r)=>({get:(o={})=>c.path(a,...r).get(jN(o)),post:(o={})=>c.path(a,...r).post(jN(o)),put:(o={})=>c.path(a,...r).put(jN(o)),patch:(o={})=>c.path(a,...r).patch(jN(o)),delete:(o={})=>c.path(a,...r).delete(jN(o)),head:(o={})=>c.path(a,...r).head(jN(o)),options:(o={})=>c.path(a,...r).options(jN(o)),trace:(o={})=>c.path(a,...r).trace(jN(o))});return{path:s,pathUnchecked:s,pipeline:c.pipeline}}function _EI(t){return jGe(t)||iL(t)}G();function DGe(t,e,I={}){var l,n,c,s,a,r,o,d;let i=(n=(l=I.endpoint)!==null&&l!==void 0?l:I.baseUrl)!==null&&n!==void 0?n:String(t),h=(c=I?.userAgentOptions)===null||c===void 0?void 0:c.userAgentPrefix,p="azsdk-js-keyvault-secrets/1.0.0-beta.1",Z=h?`${h} azsdk-js-api ${p}`:`azsdk-js-api ${p}`,u=Object.assign(Object.assign({},I),{userAgentOptions:{userAgentPrefix:Z},loggingOptions:{logger:(a=(s=I.loggingOptions)===null||s===void 0?void 0:s.logger)!==null&&a!==void 0?a:Qfe.info},credentials:{scopes:(o=(r=I.credentials)===null||r===void 0?void 0:r.scopes)!==null&&o!==void 0?o:["https://vault.azure.net/.default"]}}),{apiVersion:N}=u,Y=YJ(u,["apiVersion"]),y=Hfe(i,e,Y);y.pipeline.removePolicy({name:"ApiVersionPolicy"});let Q=(d=I.apiVersion)!==null&&d!==void 0?d:"7.6";return y.pipeline.addPolicy({name:"ClientApiVersionPolicy",sendRequest:(A,w)=>{let x=new URL(A.url);return x.searchParams.get("api-version")||(A.url=`${A.url}${Array.from(x.searchParams.keys()).length>0?"&":"?"}api-version=${Q}`),w(A)}}),Object.assign(Object.assign({},y),{apiVersion:Q})}G();G();function vfe(t){return{value:t.value,tags:t.tags,contentType:t.contentType,attributes:t.secretAttributes?Cfe(t.secretAttributes):t.secretAttributes}}function Cfe(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 IK(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}}var bL;(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"})(bL||(bL={}));function Xw(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?IK(t.attributes):t.attributes,tags:t.tags,kid:t.kid,managed:t.managed}}function xo(t){return{error:t.error?Jfe(t.error):t.error}}function Jfe(t){return{code:t.code,message:t.message,innerError:t.innererror?Jfe(t.innererror):t.innererror}}function KGe(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?IK(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 Lfe(t){return{contentType:t.contentType,attributes:t.secretAttributes?Cfe(t.secretAttributes):t.secretAttributes,tags:t.tags}}function PGe(t){return{value:t.value?$EI(t.value):t.value,nextLink:t.nextLink}}function $EI(t){return t.map(e=>eHI(e))}function eHI(t){return{id:t.id,attributes:t.attributes?IK(t.attributes):t.attributes,tags:t.tags,contentType:t.contentType,managed:t.managed}}function kfe(t){return{value:t.value?IHI(t.value):t.value,nextLink:t.nextLink}}function IHI(t){return t.map(e=>tHI(e))}function tHI(t){return{id:t.id,attributes:t.attributes?IK(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 ffe(t){return{value:t.value&&typeof t.value=="string"?tCe(t.value,"base64url"):t.value}}function xfe(t){return{value:ICe(t.secretBundleBackup,"base64url")}}var eK;(function(t){t.V75="7.5",t.V76Preview2="7.6-preview.2",t.V76="7.6"})(eK||(eK={}));G();function tK(t,e,I,l,n={}){var c,s;let a=(c=n.itemName)!==null&&c!==void 0?c:"value",r=(s=n.nextLinkName)!==null&&s!==void 0?s:"nextLink",o={getPage:async d=>{let i=d===void 0?await e():await t.pathUnchecked(d).get();aHI(i,l);let h=await I(i),p=cHI(h,r);return{page:sHI(h,a),nextPageLink:p}},byPage:d=>{let{continuationToken:i}=d??{};return qGe(o,{pageLink:i})}};return lHI(o)}function lHI(t){var e;let I=nHI(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 qGe(t,{pageLink:n})}}}function nHI(t){return lN(this,arguments,function*(){var I,l,n,c;let s=qGe(t);try{for(var a=!0,r=HR(s),o;o=yield Nn(r.next()),I=o.done,!I;a=!0)c=o.value,a=!1,yield Nn(yield*l5e(HR(c)))}catch(d){l={error:d}}finally{try{!a&&!I&&(n=r.return)&&(yield Nn(n.call(r)))}finally{if(l)throw l.error}}})}function qGe(t){return lN(this,arguments,function*(I,l={}){let{pageLink:n}=l,c=yield Nn(I.getPage(n??I.firstPageLink));if(!c)return yield Nn(void 0);let s=c.page;for(s.continuationToken=c.nextPageLink,yield yield Nn(s);c.nextPageLink;){if(c=yield Nn(I.getPage(c.nextPageLink)),!c)return yield Nn(void 0);s=c.page,s.continuationToken=c.nextPageLink,yield yield Nn(s)}})}function cHI(t,e){if(!e)return;let I=t[e];if(typeof I!="string"&&typeof I<"u"&&I!==null)throw new aZ(`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 aZ(`Couldn't paginate response
517
- Body doesn't contain an array property with name: ${e}`);return I??[]}function aHI(t,e){if(!e.includes(t.status))throw Ba(`Pagination failed with unexpected statusCode ${t.status}`,t)}G();function Ew(t,e,I){return(e??I==="+")||I==="#"?Bfe(t):zfe(t)}function Bfe(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function zfe(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function mL(t){return t!=null}function _Ge(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function lK(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function rHI(t){let e=t.isFirst,{op:I,varName:l,varValue:n,reserved:c}=t,s=[],[a,r]=_Ge(I);if(Array.isArray(n))for(let o of n.filter(mL))s.push(`${lK(I,e)}`),a&&l&&(s.push(`${encodeURIComponent(l)}`),o===""?s.push(r):s.push("=")),s.push(Ew(o,c,I)),e=!1;else if(typeof n=="object")for(let o of Object.keys(n)){let d=n[o];mL(d)&&(s.push(`${lK(I,e)}`),o&&(s.push(`${encodeURIComponent(o)}`),a&&d===""?s.push(r):s.push("=")),s.push(Ew(d,c,I)),e=!1)}return s.join("")}function GHI(t){let{op:e,varName:I,varValue:l,isFirst:n,reserved:c}=t,s=[],a=lK(e,n),[r,o]=_Ge(e);if(r&&I){if(s.push(Ew(I,c,e)),l==="")return o||s.push(o),s.join("")?`${a}${s.join("")}`:void 0;s.push("=")}let d=[];if(Array.isArray(l))for(let i of l.filter(mL))d.push(Ew(i,c,e));else if(typeof l=="object")for(let i of Object.keys(l))mL(l[i])&&(d.push(zfe(i)),d.push(Ew(l[i],c,e)));return s.push(d.join(",")),s.join(",")?`${a}${s.join("")}`:void 0}function oHI(t){let{op:e,varName:I,modifier:l,isFirst:n,reserved:c,varValue:s}=t;if(mL(s))if(["string","number","boolean"].includes(typeof s)){let a=s.toString(),[r,o]=_Ge(e),d=[lK(e,n)];return r&&I&&(d.push(I),a===""?d.push(o):d.push("=")),l&&l!=="*"&&(a=a.substring(0,parseInt(l,10))),d.push(Ew(a,c,e)),d.join("")}else return l==="*"?rHI(t):GHI(t);else return}function Bo(t,e,I){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(l,n,c)=>{if(!n)return Bfe(c);let s;["+","#",".","/",";","?","&"].includes(n[0])&&(s=n[0],n=n.slice(1));let a=n.split(/,/g),r=[];for(let o of a){let d=/([^:\*]*)(?::(\d+)|(\*))?/.exec(o);if(!d||!d[1])continue;let i=oHI({isFirst:r.length===0,op:s,varValue:e[d[1]],varName:d[1],modifier:d[2]||d[3],reserved:I?.allowReserved});i&&r.push(i)}return r.join("")})}function dHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).post(Object.assign(Object.assign({},gG(I)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers),body:xfe(e)}))}async function iHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function $Ge(t,e,I={requestOptions:{}}){let l=await dHI(t,e,I);return iHI(l)}function bHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).post(Object.assign(Object.assign({},gG(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function mHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return ffe(t.body)}async function eoe(t,e,I={requestOptions:{}}){let l=await bHI(t,e,I);return mHI(l)}function hHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).post(Object.assign(Object.assign({},gG(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function pHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function Ioe(t,e,I={requestOptions:{}}){let l=await hHI(t,e,I);return pHI(l)}function ZHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).delete(Object.assign(Object.assign({},gG(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function uHI(t){if(!["204"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}}async function toe(t,e,I={requestOptions:{}}){let l=await ZHI(t,e,I);return uHI(l)}function WHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).get(Object.assign(Object.assign({},gG(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function NHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return KGe(t.body)}async function loe(t,e,I={requestOptions:{}}){let l=await WHI(t,e,I);return NHI(l)}function YHI(t,e={requestOptions:{}}){var I,l;let n=Bo("/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({},gG(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function VHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return kfe(t.body)}function noe(t,e={requestOptions:{}}){return tK(t,()=>YHI(t,e),VHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function RHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).get(Object.assign(Object.assign({},gG(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=Ba(t);throw I.details=xo(t.body),I}return PGe(t.body)}function coe(t,e,I={requestOptions:{}}){return tK(t,()=>RHI(t,e,I),yHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function FHI(t,e={requestOptions:{}}){var I,l;let n=Bo("/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({},gG(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function gHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return PGe(t.body)}function soe(t,e={requestOptions:{}}){return tK(t,()=>FHI(t,e),gHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function QHI(t,e,I,l={requestOptions:{}}){var n,c;let s=Bo("/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(s).get(Object.assign(Object.assign({},gG(l)),{headers:Object.assign({accept:"application/json"},(c=l.requestOptions)===null||c===void 0?void 0:c.headers)}))}async function AHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function aoe(t,e,I,l={requestOptions:{}}){let n=await QHI(t,e,I,l);return AHI(n)}function wHI(t,e,I,l,n={requestOptions:{}}){var c,s;let a=Bo("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(c=n?.requestOptions)===null||c===void 0?void 0:c.skipUrlEncoding});return t.path(a).patch(Object.assign(Object.assign({},gG(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(s=n.requestOptions)===null||s===void 0?void 0:s.headers),body:Lfe(l)}))}async function XHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function roe(t,e,I,l,n={requestOptions:{}}){let c=await wHI(t,e,I,l,n);return XHI(c)}function EHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).delete(Object.assign(Object.assign({},gG(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=Ba(t);throw I.details=xo(t.body),I}return KGe(t.body)}async function Goe(t,e,I={requestOptions:{}}){let l=await EHI(t,e,I);return HHI(l)}function vHI(t,e,I,l={requestOptions:{}}){var n,c;let s=Bo("/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(s).put(Object.assign(Object.assign({},gG(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(c=l.requestOptions)===null||c===void 0?void 0:c.headers),body:vfe(I)}))}async function CHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function ooe(t,e,I,l={requestOptions:{}}){let n=await vHI(t,e,I,l);return CHI(n)}var hL=class{constructor(e,I,l={}){var n;let c=(n=l?.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix,s=c?`${c} azsdk-js-client`:"azsdk-js-client";this._client=DGe(e,I,Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:s}})),this.pipeline=this._client.pipeline}restoreSecret(e,I={requestOptions:{}}){return $Ge(this._client,e,I)}backupSecret(e,I={requestOptions:{}}){return eoe(this._client,e,I)}recoverDeletedSecret(e,I={requestOptions:{}}){return Ioe(this._client,e,I)}purgeDeletedSecret(e,I={requestOptions:{}}){return toe(this._client,e,I)}getDeletedSecret(e,I={requestOptions:{}}){return loe(this._client,e,I)}getDeletedSecrets(e={requestOptions:{}}){return noe(this._client,e)}getSecretVersions(e,I={requestOptions:{}}){return coe(this._client,e,I)}getSecrets(e={requestOptions:{}}){return soe(this._client,e)}getSecret(e,I,l={requestOptions:{}}){return aoe(this._client,e,I,l)}updateSecret(e,I,l,n={requestOptions:{}}){return roe(this._client,e,I,l,n)}deleteSecret(e,I={requestOptions:{}}){return Goe(this._client,e,I)}setSecret(e,I,l={requestOptions:{}}){return ooe(this._client,e,I,l)}};G();G();G();var JHI=["authorization","authorization_url","resource","scope","tenantId","claims","error"];function doe(t){let e=/,? +/,I=t.split(e).reduce((l,n)=>{if(n.match(/\w="/)){let[c,...s]=n.split("=");if(JHI.includes(c))return Object.assign(Object.assign({},l),{[c]:s.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}G();var LHI={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2};async function kHI(t,e,I){async function l(){if(Date.now()<I)try{return await t()}catch{return null}else{let c=await t();if(c===null)throw new Error("Failed to refresh access token.");return c}}let n=await l();for(;n===null;)await eN(e),n=await l();return n}function Ufe(t,e){let I=null,l=null,n,c=Object.assign(Object.assign({},LHI),e),s={get isRefreshing(){return I!==null},get shouldRefresh(){var r;return s.isRefreshing?!1:l?.refreshAfterTimestamp&&l.refreshAfterTimestamp<Date.now()?!0:((r=l?.expiresOnTimestamp)!==null&&r!==void 0?r:0)-c.refreshWindowInMs<Date.now()},get mustRefresh(){return l===null||l.expiresOnTimestamp-c.forcedRefreshWindowInMs<Date.now()}};function a(r,o){var d;return s.isRefreshing||(I=kHI(()=>t.getToken(r,o),c.retryIntervalInMs,(d=l?.expiresOnTimestamp)!==null&&d!==void 0?d:Date.now()).then(h=>(I=null,l=h,n=o.tenantId,l)).catch(h=>{throw I=null,l=null,n=void 0,h})),I}return async(r,o)=>{let d=!!o.claims,i=n!==o.tenantId;return d&&(l=null),i||d||s.mustRefresh?a(r,o):(s.shouldRefresh&&a(r,o),l)}}G();var Sfe=Xa("keyvault-common");function fHI(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.`)}var xHI="keyVaultAuthenticationPolicy";function Ofe(t,e={}){let{disableChallengeResourceVerification:I}=e,l={status:"none"},n=Ufe(t);function c(d){return{abortSignal:d.abortSignal,requestOptions:{timeout:d.timeout>0?d.timeout:void 0},tracingOptions:d.tracingOptions}}async function s(d){let i=c(d);switch(l.status){case"none":l={status:"started",originalBody:d.body},d.body=null;break;case"started":break;case"complete":{let h=await n(l.scopes,Object.assign(Object.assign({},i),{enableCae:!0,tenantId:l.tenantId}));h&&d.headers.set("authorization",`Bearer ${h.token}`);break}}}async function a(d,i,h){if(i.status!==401)return i;d.body===null&&l.status==="started"&&(d.body=l.originalBody);let p=c(d),Z=i.headers.get("WWW-Authenticate");if(!Z)return Sfe.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),i;let u=doe(Z),N=u.resource?u.resource+"/.default":u.scope;if(!N)return i;I||fHI(N,d);let Y=await n([N],Object.assign(Object.assign({},p),{enableCae:!0,tenantId:u.tenantId}));return Y?(d.headers.set("Authorization",`Bearer ${Y.token}`),l={status:"complete",scopes:[N],tenantId:u.tenantId},h(d)):i}async function r(d,i,h){if(l.status!=="complete"||i.status!==401)return i;let p=c(d),Z=i.headers.get("WWW-Authenticate");if(!Z)return i;let{claims:u,error:N}=doe(Z);if(N!=="insufficient_claims"||u===void 0)return i;let Y=atob(u),y=await n(l.scopes,Object.assign(Object.assign({},p),{enableCae:!0,tenantId:l.tenantId,claims:Y}));return d.headers.set("Authorization",`Bearer ${y.token}`),h(d)}async function o(d,i){await s(d);let h=await i(d);return h=await a(d,h,i),h=await r(d,h,i),h}return{name:xHI,sendRequest:o}}G();function Mfe(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}`,c=l[2],s=l.length===4?l[3]:void 0;return{vaultUrl:n,name:c,version:s}}G();G();G();G();function ioe(t){let I=t.split("/")[3];return Object.assign({sourceId:t},Mfe(I,t))}G();function Rr(t){let e=t,I=t,l=ioe(e.id),n=e.attributes;delete e.attributes;let c={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&&(c.properties.recoveryId=I.recoveryId,c.properties.scheduledPurgeDate=I.scheduledPurgeDate,c.properties.deletedOn=I.deletedDate,c.recoveryId=I.recoveryId,c.scheduledPurgeDate=I.scheduledPurgeDate,c.deletedOn=I.deletedDate),n&&(n.vaultUrl&&delete c.properties.vaultUrl,n.expires&&delete c.properties.expires,n.created&&delete c.properties.created,n.updated&&delete c.properties.updated),c}function nK(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 lN(this,arguments,function*(){var s,a,r,o;let d=t(Object.assign(Object.assign({},e),{maxresults:n?.maxPageSize})).byPage(n);try{for(var i=!0,h=HR(d),p;p=yield Nn(h.next()),s=p.done,!s;i=!0)o=p.value,i=!1,yield yield Nn(o.map(I))}catch(Z){a={error:Z}}finally{try{!i&&!s&&(r=h.return)&&(yield Nn(r.call(h)))}finally{if(a)throw a.error}}})}}}G();G();var cK="4.10.0";var QG=J2({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:cK});G();G();G();G();G();G();G();G();var boe=Xa("core-lro");G();G();G();G();G();G();var moe=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},hoe=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},pL=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 hoe("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 moe("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()}};G();var Hw=class extends pL{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return eN(this.intervalInMs)}},vw=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 sK=class extends vw{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 QG.withSpan("DeleteSecretPoller.deleteSecret",I,async l=>{let n=await this.client.deleteSecret(e,l);return Rr(n)})}getDeletedSecret(e,I={}){return QG.withSpan("DeleteSecretPoller.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Rr(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 aK=class extends Hw{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:c=2e3,resumeFrom:s}=e,a;s&&(a=JSON.parse(s).state);let r=new sK(Object.assign(Object.assign({},a),{name:l}),I,n);super(r),this.intervalInMs=c}};G();G();var rK=class extends vw{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 QG.withSpan("RecoverDeletedSecretPoller.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Rr(n)})}recoverDeletedSecret(e,I={}){return QG.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",I,async l=>{let n=await this.client.recoverDeletedSecret(e,l);return Rr(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 GK=class extends Hw{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:c=2e3,resumeFrom:s}=e,a;s&&(a=JSON.parse(s).state);let r=new rK(Object.assign(Object.assign({},a),{name:l}),I,n);super(r),this.intervalInMs=c}};var oK=class{constructor(e,I,l={}){var n,c;this.vaultUrl=e;let s=Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:`${(c=(n=l.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix)!==null&&c!==void 0?c:""} azsdk-js-keyvault-secrets/${cK}`},apiVersion:l.serviceVersion||"7.6",loggingOptions:{logger:gfe.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new hL(this.vaultUrl,I,s),this.client.pipeline.removePolicy({name:UT}),this.client.pipeline.addPolicy(Ofe(I,l),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(a,r){var o;return((o=a.headers.get("Content-Type"))!==null&&o!==void 0?o:"").startsWith("application/json")&&a.headers.set("Content-Type","application/json"),r(a)}})}setSecret(e,I,l={}){let{enabled:n,notBefore:c,expiresOn:s,tags:a}=l,r=YJ(l,["enabled","notBefore","expiresOn","tags"]);return QG.withSpan("SecretClient.setSecret",r,async o=>{let d=await this.client.setSecret(e,{value:I,secretAttributes:{enabled:n,notBefore:c,expires:s},tags:a},o);return Rr(d)})}async beginDeleteSecret(e,I={}){let l=new aK(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:c,expiresOn:s,tags:a}=l,r=YJ(l,["enabled","notBefore","expiresOn","tags"]);return QG.withSpan("SecretClient.updateSecretProperties",r,async o=>{let d=await this.client.updateSecret(e,I,{secretAttributes:{enabled:n,notBefore:c,expires:s},tags:a},o);return Rr(d).properties})}getSecret(e,I={}){return QG.withSpan("SecretClient.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Rr(n)})}getDeletedSecret(e,I={}){return QG.withSpan("SecretClient.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Rr(n)})}purgeDeletedSecret(e,I={}){return QG.withSpan("SecretClient.purgeDeletedSecret",I,async l=>{await this.client.purgeDeletedSecret(e,l)})}async beginRecoverDeletedSecret(e,I={}){let l=new GK(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}backupSecret(e,I={}){return QG.withSpan("SecretClient.backupSecret",I,async l=>(await this.client.backupSecret(e,l)).value)}restoreSecretBackup(e,I={}){return QG.withSpan("SecretClient.restoreSecretBackup",I,async l=>{let n=await this.client.restoreSecret({secretBundleBackup:e},l);return Rr(n).properties})}listPropertiesOfSecretVersions(e,I={}){return nK(l=>this.client.getSecretVersions(e,l),I,l=>Rr(l).properties)}listPropertiesOfSecrets(e={}){return nK(this.client.getSecrets.bind(this.client),e,I=>Rr(I).properties)}listDeletedSecrets(e={}){return nK(this.client.getDeletedSecrets.bind(this.client),e,Rr)}};var poe=class{client;logger;constructor(e,I){if(this.logger=I,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let l=new vm;this.client=new oK(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}}};function Tfe(t,e){let I=t.api?.copilot?.azureKeyVaultUri;return Zoe(I,e)}function Zoe(t,e){return new poe(t,e)}G();import{createHmac as MHI}from"crypto";var dK=class t{static encode(e){let I=t.hmacGetBytes(e),s=(Math.floor(Date.now()/1e3)+30).toString(),a=Buffer.from(s,"ascii"),d=MHI("sha256",I).update(a).digest().toString("hex").toUpperCase();return`${s}.${d}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}};var THI="X-GitHub-Api-Version",jHI="2025-05-01",iK=class t extends XI{constructor(I,l,n,c){super({baseURL:I,apiKey:"",logLevel:W1()?"debug":"info"});this.headers=l;this.runnerLogger=n;this.hmacKey=c}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[THI]:jHI};hmacKey;additionalHeaders={};static createWithOAuthToken(I,l,n,c,s,a){let r={...this.defaultHeaders(n,s),Authorization:`Bearer ${c}`,...a??{}};return I.debug(`Creating copilot-client for integration ID ${n} with token authentication. User-agent: ${r["User-Agent"]}`),new t(l,r,I)}static createWithHmac(I,l,n,c,s,a,r){let o={...this.defaultHeaders(n,s),Authorization:"",...r??{}};return a&&(o["X-GitHub-User"]=a),I.debug(`Creating copilot-client for integration ID ${n} with key authentication. User-agent: ${o["User-Agent"]}`),new t(l,o,I,c)}static defaultHeaders(I,l){let n=TGe();return{...t.baseHeaders,"Copilot-Integration-Id":I,"User-Agent":`${n.nameNoScope}/${n.version} (${process.platform} ${process.version}) OpenAI/${Km}`,"X-Interaction-Id":l}}async prepareOptions(I){this.hmacKey&&(this.headers["Request-HMAC"]=dK.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[a,r]of Object.entries(I.headers))typeof r=="string"&&(l[a]=r);let n=`${this.baseURL}/models`,c=await fetch(n,{method:I.method,headers:l});if(!c.ok)return this.runnerLogger.error(`Failed to list models: ${c.statusText}`),[];let s=await c.json();return this.runnerLogger.debug(`Successfully listed ${s.data.length} models`),s.data}},Cw=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,c=e.api?.copilot?.hmacKey,s=!!(c||n);if(!s){I.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let i=Tfe(e,I);try{c=await i.getSecret("capi-hmac-key")}catch(h){I.debug(`Failed to get Copilot HMAC key from secret provider:
517
+ Body doesn't contain an array property with name: ${e}`);return I??[]}function aHI(t,e){if(!e.includes(t.status))throw Ba(`Pagination failed with unexpected statusCode ${t.status}`,t)}G();function Ew(t,e,I){return(e??I==="+")||I==="#"?Bfe(t):zfe(t)}function Bfe(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function zfe(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function mL(t){return t!=null}function _Ge(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function lK(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function rHI(t){let e=t.isFirst,{op:I,varName:l,varValue:n,reserved:c}=t,s=[],[a,r]=_Ge(I);if(Array.isArray(n))for(let o of n.filter(mL))s.push(`${lK(I,e)}`),a&&l&&(s.push(`${encodeURIComponent(l)}`),o===""?s.push(r):s.push("=")),s.push(Ew(o,c,I)),e=!1;else if(typeof n=="object")for(let o of Object.keys(n)){let d=n[o];mL(d)&&(s.push(`${lK(I,e)}`),o&&(s.push(`${encodeURIComponent(o)}`),a&&d===""?s.push(r):s.push("=")),s.push(Ew(d,c,I)),e=!1)}return s.join("")}function GHI(t){let{op:e,varName:I,varValue:l,isFirst:n,reserved:c}=t,s=[],a=lK(e,n),[r,o]=_Ge(e);if(r&&I){if(s.push(Ew(I,c,e)),l==="")return o||s.push(o),s.join("")?`${a}${s.join("")}`:void 0;s.push("=")}let d=[];if(Array.isArray(l))for(let i of l.filter(mL))d.push(Ew(i,c,e));else if(typeof l=="object")for(let i of Object.keys(l))mL(l[i])&&(d.push(zfe(i)),d.push(Ew(l[i],c,e)));return s.push(d.join(",")),s.join(",")?`${a}${s.join("")}`:void 0}function oHI(t){let{op:e,varName:I,modifier:l,isFirst:n,reserved:c,varValue:s}=t;if(mL(s))if(["string","number","boolean"].includes(typeof s)){let a=s.toString(),[r,o]=_Ge(e),d=[lK(e,n)];return r&&I&&(d.push(I),a===""?d.push(o):d.push("=")),l&&l!=="*"&&(a=a.substring(0,parseInt(l,10))),d.push(Ew(a,c,e)),d.join("")}else return l==="*"?rHI(t):GHI(t);else return}function Bo(t,e,I){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(l,n,c)=>{if(!n)return Bfe(c);let s;["+","#",".","/",";","?","&"].includes(n[0])&&(s=n[0],n=n.slice(1));let a=n.split(/,/g),r=[];for(let o of a){let d=/([^:\*]*)(?::(\d+)|(\*))?/.exec(o);if(!d||!d[1])continue;let i=oHI({isFirst:r.length===0,op:s,varValue:e[d[1]],varName:d[1],modifier:d[2]||d[3],reserved:I?.allowReserved});i&&r.push(i)}return r.join("")})}function dHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).post(Object.assign(Object.assign({},gG(I)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers),body:xfe(e)}))}async function iHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function $Ge(t,e,I={requestOptions:{}}){let l=await dHI(t,e,I);return iHI(l)}function bHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).post(Object.assign(Object.assign({},gG(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function mHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return ffe(t.body)}async function eoe(t,e,I={requestOptions:{}}){let l=await bHI(t,e,I);return mHI(l)}function hHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).post(Object.assign(Object.assign({},gG(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function pHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function Ioe(t,e,I={requestOptions:{}}){let l=await hHI(t,e,I);return pHI(l)}function ZHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).delete(Object.assign(Object.assign({},gG(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function uHI(t){if(!["204"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}}async function toe(t,e,I={requestOptions:{}}){let l=await ZHI(t,e,I);return uHI(l)}function WHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).get(Object.assign(Object.assign({},gG(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function NHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return KGe(t.body)}async function loe(t,e,I={requestOptions:{}}){let l=await WHI(t,e,I);return NHI(l)}function YHI(t,e={requestOptions:{}}){var I,l;let n=Bo("/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({},gG(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function VHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return kfe(t.body)}function noe(t,e={requestOptions:{}}){return tK(t,()=>YHI(t,e),VHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function RHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).get(Object.assign(Object.assign({},gG(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=Ba(t);throw I.details=xo(t.body),I}return PGe(t.body)}function coe(t,e,I={requestOptions:{}}){return tK(t,()=>RHI(t,e,I),yHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function FHI(t,e={requestOptions:{}}){var I,l;let n=Bo("/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({},gG(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function gHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return PGe(t.body)}function soe(t,e={requestOptions:{}}){return tK(t,()=>FHI(t,e),gHI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function QHI(t,e,I,l={requestOptions:{}}){var n,c;let s=Bo("/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(s).get(Object.assign(Object.assign({},gG(l)),{headers:Object.assign({accept:"application/json"},(c=l.requestOptions)===null||c===void 0?void 0:c.headers)}))}async function AHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function aoe(t,e,I,l={requestOptions:{}}){let n=await QHI(t,e,I,l);return AHI(n)}function wHI(t,e,I,l,n={requestOptions:{}}){var c,s;let a=Bo("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(c=n?.requestOptions)===null||c===void 0?void 0:c.skipUrlEncoding});return t.path(a).patch(Object.assign(Object.assign({},gG(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(s=n.requestOptions)===null||s===void 0?void 0:s.headers),body:Lfe(l)}))}async function XHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function roe(t,e,I,l,n={requestOptions:{}}){let c=await wHI(t,e,I,l,n);return XHI(c)}function EHI(t,e,I={requestOptions:{}}){var l,n;let c=Bo("/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(c).delete(Object.assign(Object.assign({},gG(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=Ba(t);throw I.details=xo(t.body),I}return KGe(t.body)}async function Goe(t,e,I={requestOptions:{}}){let l=await EHI(t,e,I);return HHI(l)}function vHI(t,e,I,l={requestOptions:{}}){var n,c;let s=Bo("/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(s).put(Object.assign(Object.assign({},gG(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(c=l.requestOptions)===null||c===void 0?void 0:c.headers),body:vfe(I)}))}async function CHI(t){if(!["200"].includes(t.status)){let I=Ba(t);throw I.details=xo(t.body),I}return Xw(t.body)}async function ooe(t,e,I,l={requestOptions:{}}){let n=await vHI(t,e,I,l);return CHI(n)}var hL=class{constructor(e,I,l={}){var n;let c=(n=l?.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix,s=c?`${c} azsdk-js-client`:"azsdk-js-client";this._client=DGe(e,I,Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:s}})),this.pipeline=this._client.pipeline}restoreSecret(e,I={requestOptions:{}}){return $Ge(this._client,e,I)}backupSecret(e,I={requestOptions:{}}){return eoe(this._client,e,I)}recoverDeletedSecret(e,I={requestOptions:{}}){return Ioe(this._client,e,I)}purgeDeletedSecret(e,I={requestOptions:{}}){return toe(this._client,e,I)}getDeletedSecret(e,I={requestOptions:{}}){return loe(this._client,e,I)}getDeletedSecrets(e={requestOptions:{}}){return noe(this._client,e)}getSecretVersions(e,I={requestOptions:{}}){return coe(this._client,e,I)}getSecrets(e={requestOptions:{}}){return soe(this._client,e)}getSecret(e,I,l={requestOptions:{}}){return aoe(this._client,e,I,l)}updateSecret(e,I,l,n={requestOptions:{}}){return roe(this._client,e,I,l,n)}deleteSecret(e,I={requestOptions:{}}){return Goe(this._client,e,I)}setSecret(e,I,l={requestOptions:{}}){return ooe(this._client,e,I,l)}};G();G();G();var JHI=["authorization","authorization_url","resource","scope","tenantId","claims","error"];function doe(t){let e=/,? +/,I=t.split(e).reduce((l,n)=>{if(n.match(/\w="/)){let[c,...s]=n.split("=");if(JHI.includes(c))return Object.assign(Object.assign({},l),{[c]:s.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}G();var LHI={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2};async function kHI(t,e,I){async function l(){if(Date.now()<I)try{return await t()}catch{return null}else{let c=await t();if(c===null)throw new Error("Failed to refresh access token.");return c}}let n=await l();for(;n===null;)await eN(e),n=await l();return n}function Ufe(t,e){let I=null,l=null,n,c=Object.assign(Object.assign({},LHI),e),s={get isRefreshing(){return I!==null},get shouldRefresh(){var r;return s.isRefreshing?!1:l?.refreshAfterTimestamp&&l.refreshAfterTimestamp<Date.now()?!0:((r=l?.expiresOnTimestamp)!==null&&r!==void 0?r:0)-c.refreshWindowInMs<Date.now()},get mustRefresh(){return l===null||l.expiresOnTimestamp-c.forcedRefreshWindowInMs<Date.now()}};function a(r,o){var d;return s.isRefreshing||(I=kHI(()=>t.getToken(r,o),c.retryIntervalInMs,(d=l?.expiresOnTimestamp)!==null&&d!==void 0?d:Date.now()).then(h=>(I=null,l=h,n=o.tenantId,l)).catch(h=>{throw I=null,l=null,n=void 0,h})),I}return async(r,o)=>{let d=!!o.claims,i=n!==o.tenantId;return d&&(l=null),i||d||s.mustRefresh?a(r,o):(s.shouldRefresh&&a(r,o),l)}}G();var Sfe=Xa("keyvault-common");function fHI(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.`)}var xHI="keyVaultAuthenticationPolicy";function Ofe(t,e={}){let{disableChallengeResourceVerification:I}=e,l={status:"none"},n=Ufe(t);function c(d){return{abortSignal:d.abortSignal,requestOptions:{timeout:d.timeout>0?d.timeout:void 0},tracingOptions:d.tracingOptions}}async function s(d){let i=c(d);switch(l.status){case"none":l={status:"started",originalBody:d.body},d.body=null;break;case"started":break;case"complete":{let h=await n(l.scopes,Object.assign(Object.assign({},i),{enableCae:!0,tenantId:l.tenantId}));h&&d.headers.set("authorization",`Bearer ${h.token}`);break}}}async function a(d,i,h){if(i.status!==401)return i;d.body===null&&l.status==="started"&&(d.body=l.originalBody);let p=c(d),Z=i.headers.get("WWW-Authenticate");if(!Z)return Sfe.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),i;let u=doe(Z),N=u.resource?u.resource+"/.default":u.scope;if(!N)return i;I||fHI(N,d);let Y=await n([N],Object.assign(Object.assign({},p),{enableCae:!0,tenantId:u.tenantId}));return Y?(d.headers.set("Authorization",`Bearer ${Y.token}`),l={status:"complete",scopes:[N],tenantId:u.tenantId},h(d)):i}async function r(d,i,h){if(l.status!=="complete"||i.status!==401)return i;let p=c(d),Z=i.headers.get("WWW-Authenticate");if(!Z)return i;let{claims:u,error:N}=doe(Z);if(N!=="insufficient_claims"||u===void 0)return i;let Y=atob(u),y=await n(l.scopes,Object.assign(Object.assign({},p),{enableCae:!0,tenantId:l.tenantId,claims:Y}));return d.headers.set("Authorization",`Bearer ${y.token}`),h(d)}async function o(d,i){await s(d);let h=await i(d);return h=await a(d,h,i),h=await r(d,h,i),h}return{name:xHI,sendRequest:o}}G();function Mfe(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}`,c=l[2],s=l.length===4?l[3]:void 0;return{vaultUrl:n,name:c,version:s}}G();G();G();G();function ioe(t){let I=t.split("/")[3];return Object.assign({sourceId:t},Mfe(I,t))}G();function Rr(t){let e=t,I=t,l=ioe(e.id),n=e.attributes;delete e.attributes;let c={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&&(c.properties.recoveryId=I.recoveryId,c.properties.scheduledPurgeDate=I.scheduledPurgeDate,c.properties.deletedOn=I.deletedDate,c.recoveryId=I.recoveryId,c.scheduledPurgeDate=I.scheduledPurgeDate,c.deletedOn=I.deletedDate),n&&(n.vaultUrl&&delete c.properties.vaultUrl,n.expires&&delete c.properties.expires,n.created&&delete c.properties.created,n.updated&&delete c.properties.updated),c}function nK(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 lN(this,arguments,function*(){var s,a,r,o;let d=t(Object.assign(Object.assign({},e),{maxresults:n?.maxPageSize})).byPage(n);try{for(var i=!0,h=HR(d),p;p=yield Nn(h.next()),s=p.done,!s;i=!0)o=p.value,i=!1,yield yield Nn(o.map(I))}catch(Z){a={error:Z}}finally{try{!i&&!s&&(r=h.return)&&(yield Nn(r.call(h)))}finally{if(a)throw a.error}}})}}}G();G();var cK="4.10.0";var QG=J2({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:cK});G();G();G();G();G();G();G();G();var boe=Xa("core-lro");G();G();G();G();G();G();var moe=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},hoe=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},pL=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 hoe("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 moe("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()}};G();var Hw=class extends pL{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return eN(this.intervalInMs)}},vw=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 sK=class extends vw{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 QG.withSpan("DeleteSecretPoller.deleteSecret",I,async l=>{let n=await this.client.deleteSecret(e,l);return Rr(n)})}getDeletedSecret(e,I={}){return QG.withSpan("DeleteSecretPoller.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Rr(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 aK=class extends Hw{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:c=2e3,resumeFrom:s}=e,a;s&&(a=JSON.parse(s).state);let r=new sK(Object.assign(Object.assign({},a),{name:l}),I,n);super(r),this.intervalInMs=c}};G();G();var rK=class extends vw{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 QG.withSpan("RecoverDeletedSecretPoller.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Rr(n)})}recoverDeletedSecret(e,I={}){return QG.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",I,async l=>{let n=await this.client.recoverDeletedSecret(e,l);return Rr(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 GK=class extends Hw{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:c=2e3,resumeFrom:s}=e,a;s&&(a=JSON.parse(s).state);let r=new rK(Object.assign(Object.assign({},a),{name:l}),I,n);super(r),this.intervalInMs=c}};var oK=class{constructor(e,I,l={}){var n,c;this.vaultUrl=e;let s=Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:`${(c=(n=l.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix)!==null&&c!==void 0?c:""} azsdk-js-keyvault-secrets/${cK}`},apiVersion:l.serviceVersion||"7.6",loggingOptions:{logger:gfe.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new hL(this.vaultUrl,I,s),this.client.pipeline.removePolicy({name:UT}),this.client.pipeline.addPolicy(Ofe(I,l),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(a,r){var o;return((o=a.headers.get("Content-Type"))!==null&&o!==void 0?o:"").startsWith("application/json")&&a.headers.set("Content-Type","application/json"),r(a)}})}setSecret(e,I,l={}){let{enabled:n,notBefore:c,expiresOn:s,tags:a}=l,r=YJ(l,["enabled","notBefore","expiresOn","tags"]);return QG.withSpan("SecretClient.setSecret",r,async o=>{let d=await this.client.setSecret(e,{value:I,secretAttributes:{enabled:n,notBefore:c,expires:s},tags:a},o);return Rr(d)})}async beginDeleteSecret(e,I={}){let l=new aK(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:c,expiresOn:s,tags:a}=l,r=YJ(l,["enabled","notBefore","expiresOn","tags"]);return QG.withSpan("SecretClient.updateSecretProperties",r,async o=>{let d=await this.client.updateSecret(e,I,{secretAttributes:{enabled:n,notBefore:c,expires:s},tags:a},o);return Rr(d).properties})}getSecret(e,I={}){return QG.withSpan("SecretClient.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Rr(n)})}getDeletedSecret(e,I={}){return QG.withSpan("SecretClient.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Rr(n)})}purgeDeletedSecret(e,I={}){return QG.withSpan("SecretClient.purgeDeletedSecret",I,async l=>{await this.client.purgeDeletedSecret(e,l)})}async beginRecoverDeletedSecret(e,I={}){let l=new GK(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}backupSecret(e,I={}){return QG.withSpan("SecretClient.backupSecret",I,async l=>(await this.client.backupSecret(e,l)).value)}restoreSecretBackup(e,I={}){return QG.withSpan("SecretClient.restoreSecretBackup",I,async l=>{let n=await this.client.restoreSecret({secretBundleBackup:e},l);return Rr(n).properties})}listPropertiesOfSecretVersions(e,I={}){return nK(l=>this.client.getSecretVersions(e,l),I,l=>Rr(l).properties)}listPropertiesOfSecrets(e={}){return nK(this.client.getSecrets.bind(this.client),e,I=>Rr(I).properties)}listDeletedSecrets(e={}){return nK(this.client.getDeletedSecrets.bind(this.client),e,Rr)}};var poe=class{client;logger;constructor(e,I){if(this.logger=I,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let l=new vm;this.client=new oK(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}}};function Tfe(t,e){let I=t.api?.copilot?.azureKeyVaultUri;return Zoe(I,e)}function Zoe(t,e){return new poe(t,e)}G();import{createHmac as MHI}from"crypto";var dK=class t{static encode(e){let I=t.hmacGetBytes(e),s=(Math.floor(Date.now()/1e3)+30).toString(),a=Buffer.from(s,"ascii"),d=MHI("sha256",I).update(a).digest().toString("hex").toUpperCase();return`${s}.${d}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}};var THI="X-GitHub-Api-Version",jHI="2025-05-01",iK=class t extends XI{constructor(I,l,n,c){super({baseURL:I,apiKey:"",logLevel:W1()?"debug":"info"});this.headers=l;this.runnerLogger=n;this.hmacKey=c}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[THI]:jHI};hmacKey;additionalHeaders={};static createWithOAuthToken(I,l,n,c,s,a){let r={...this.defaultHeaders(n,s),Authorization:`Bearer ${c}`,...a??{}};return I.debug(`Creating copilot-client for integration ID ${n} with token authentication. User-agent: ${r["User-Agent"]}`),new t(l,r,I)}static createWithHmac(I,l,n,c,s,a,r){let o={...this.defaultHeaders(n,s),Authorization:"",...r??{}};return a&&(o["X-GitHub-User"]=a),I.debug(`Creating copilot-client for integration ID ${n} with key authentication. User-agent: ${o["User-Agent"]}`),new t(l,o,I,c)}static defaultHeaders(I,l){let n=TGe();return{...t.baseHeaders,"Copilot-Integration-Id":I,"User-Agent":`${n.nameNoScope}/${n.version} (${process.platform} ${process.version}) OpenAI/${Km}`,"X-Interaction-Id":l}}async prepareOptions(I){this.hmacKey&&(this.headers["Request-HMAC"]=dK.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[a,r]of Object.entries(I.headers))typeof r=="string"&&(l[a]=r);let n=`${this.baseURL}/models`,c=await fetch(n,{method:I.method,headers:l});if(!c.ok)return this.runnerLogger.error(`Failed to list models: ${c.status} ${c.statusText}: ${await c.text()}`),[];let s=await c.json();return this.runnerLogger.debug(`Successfully listed ${s.data.length} models`),s.data}},Cw=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,c=e.api?.copilot?.hmacKey,s=!!(c||n);if(!s){I.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let i=Tfe(e,I);try{c=await i.getSecret("capi-hmac-key")}catch(h){I.debug(`Failed to get Copilot HMAC key from secret provider:
518
518
  ${h}`)}try{n=await i.getSecret("capi-token")}catch(h){I.debug(`Failed to get Copilot GitHub OAuth token from secret provider:
519
519
  ${h}`)}s=!!(c||n)}let a,r=Fue(e),o=N1(e),d=e.api?.copilot?.sessionId??kV(e);if(I.debug(`Using Copilot API at ${r} with integration ID ${o}`),n&&(I.debug("Using GitHub OAuth token for Copilot API"),a=iK.createWithOAuthToken(I,r,o,n,d,l?.requestHeaders)),c){I.debug("Using Copilot HMAC key for Copilot API");let i=process.env.GITHUB_USER_ID;i?I.debug(`Using user ID ${i} for Copilot HMAC key`):I.debug("No user ID provided for Copilot HMAC key"),a=iK.createWithHmac(I,r,o,c,d,i,l?.requestHeaders)}if(a===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return a}},Jw=class t extends cc{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof cc)))return new t(e)}};var uoe={type:"ephemeral"},Lw=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 c=await this.getModel();return l.debug(`Got model info: ${JSON.stringify(c,null,2)}`),c})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||wGe.model,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??{}}}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,c,s,a){return e.chat.completions.create({model:I,messages:[...l],...n,tools:c},{maxRetries:s,headers:a?.requestHeaders,signal:a?.abortSignal}).withResponse()}makeRequestStreaming(e,I,l,n,c,s,a){return e.chat.completions.create({model:I,messages:[...l],...n,tools:c,stream:!0,stream_options:{include_usage:!0}},{maxRetries:s,headers:a?.requestHeaders,signal:a?.abortSignal}).withResponse()}async*getCompletionWithTools(e,I,l,n){let c=this.model,s=await this.clientPromise,a=await this.modelPromise,r=XW(l),o=[{role:"system",content:e,copilot_cache_control:uoe},...I.map(u=>cL(u))],d=l.map((u,N)=>({type:"function",function:{name:u.name,description:u.description,parameters:u.input_schema},copilot_cache_control:N===l.length-1?uoe: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 i=this.getCompletionOptions(l,n),h=n?.initialTurnCount!==void 0?n.initialTurnCount+1:0,p=!1,Z=!1;for(;!p&&!Z;){let u=Date.now();yield{kind:"turn_started",model:c,modelInfo:a,turn:h,timestampMs:u};let N=0,Y=0,y=0,Q=[429,503,500,400],A=this.clientOptions.retryPolicy.maxRetries,w=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,x=0,C=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,E,J;try{let f=[],S;do{y>0&&(yield{kind:"turn_retry",model:c,modelInfo:a,turn:h,timestampMs:Date.now()});try{let te={};for(let ye of n?.processors?.preRequest||[]){let He=ye.preRequest({turn:h,retry:y,messages:o,toolDefinitions:d,modelInfo:a,additionalRequestHeaders:te,getCompletionWithToolsOptions:n});for await(let Qe of He)yield Qe}if(this.logger.startGroup("Sending request to the AI model",8),Xl(this.settings,"copilot_swe_agent_request_logging")){let ye=JSON.stringify(o,null,2),He=JSON.stringify(i,null,2);this.logger.debug(`Request messages: ${ye}`),this.logger.debug(`Request options: ${He}`)}f=o.map((ye,He)=>He===o.length-1?{...ye,copilot_cache_control:uoe}:ye),N=Date.now(),s.setAdditionalHeaders(te);let oe;if(n?.stream){let ye=await this.makeRequestStreaming(s,c,f,i,d,A,n);oe=await KHI(ye,s,n)}else oe=await this.makeRequest(s,c,f,i,d,A,n);Y=Date.now()-N,E=oe.data,S={model:c,api_id:E.id,request_id:oe.response.headers.get("x-github-request-id")||void 0};let Fe={};oe.response.headers.forEach((ye,He)=>{if(He.toLowerCase().startsWith(XGe)){let Qe=jke(ye);Qe&&(Fe[He.replace(XGe,"")]=Qe)}}),yield{kind:"model_call_success",turn:h,modelCallDurationMs:Y,modelCall:S,responseChunk:Oke(E),responseUsage:E.usage,requestMessages:JSON.stringify(f),quotaSnapshots:Fe},this.logger.debug(`response (Request-ID ${oe.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(oe.data,null,2))}catch(te){Y=Date.now()-N;let oe=Jw.fromAPIError(te),Fe=oe?.error;if(oe){yield{kind:"model_call_failure",turn:h,modelCallDurationMs:Y,requestMessages:JSON.stringify(f),modelCall:{model:c,status:oe.status,error:JSON.stringify(oe?.error||oe?.message||"unknown error"),api_id:oe.requestID||void 0,request_id:oe.headers?.get("x-github-request-id")||""}},J=oe;let He=oe.ghRequestId||oe.headers?.get("x-github-request-id")||oe.requestID;this.logger.error(`error (Request-ID ${He})`),this.logger.error(JSON.stringify(oe,null,2)),this.logger.debug(`Failed to get response from the AI model: ${oe}`),Fe&&this.logger.debug(`Inner error: ${JSON.stringify(Fe,null,2)}`);let Qe;for(let Pe of n?.processors?.onRequestError||[])Qe=await Pe.onRequestError({turn:h,retry:y,maxRetries:A,error:Fe,modelInfo:a,getCompletionWithToolsOptions:n})||Qe;let Ne=oe.status,WI=Ne?this.clientOptions.retryPolicy.errorCodesToRetry.some(Pe=>Array.isArray(Pe)?Ne>=Pe[0]&&(Pe[1]===void 0||Ne<=Pe[1]):Ne===Pe):!1,Ae;if(Qe)Ae=Qe.retryAfter;else if(oe.status!==402){if(oe.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let Pe=0;for(let ml=o.length-1;ml>=0;ml--)ay(o[ml])&&(o.splice(ml,1),Pe++,yield{kind:"images_removed",turn:h,imagesRemoved:1,largeImagesRemoved:1});Pe>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${pm(a.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${Pe} image messages from the request`),Ae=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof oe.status=="number"&&Q.includes(oe.status)||WI)&&(Ae=parseInt(oe.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+w,w*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,y==A-1))for(let Pe=o.length-1;Pe>=0;Pe--)ay(o[Pe])&&(this.logger.debug(`Removing image message at index ${Pe} to avoid failure`),o.splice(Pe,1),yield{kind:"images_removed",turn:h,imagesRemoved:1})}if(Ae!==void 0&&Ae<=C){let Pe=.8+Math.random()*.4,ml=Ae*Pe;this.logger.debug(`Retrying after ${ml} seconds...`),await new Promise(CI=>setTimeout(CI,ml*1e3)),x+=ml,this.logger.debug(`Retrying after ${Ae} seconds... Will try again now!`);continue}else Ae?this.logger.error(`Retry after ${Ae} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let ye=oe||te;for(let He of n?.processors?.onRequestError||[])await He.preErrorThrow(te);throw this.logger.error("error"),this.logger.error(JSON.stringify(ye,null,2)),ye}finally{s.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!E&&y++<A);if(!E){this.logger.debug("Recent messages prior to failure:");for(let oe=Math.max(0,o.length-6);oe<o.length;oe++)this.logger.debug(`${oe}: ${JSON.stringify(o[oe],null,2)}`);let te=new Error(`Failed to get response from the AI model; retried ${y-1} times (total retry wait time: ${x} seconds)`,{cause:J});throw this.isRateLimitExceededError(te)&&(this.logger.info(`Rate limit exceeded after ${y-1} retries, will fail job but skip Sentry reporting`),te.skipReport=!0),te}for(let te of E.choices.map(oe=>oe.message))DHI(te.tool_calls||[]),o.push(te),yield{kind:"message",modelCall:S,message:cL(nw(te)),turn:h};if(this.isToolCallResponse(E)){let oe=(a.capabilities.limits.max_prompt_tokens||a.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,Fe=qwe(c,oe,this,this.settings),He=E.choices.filter(Ae=>Ae.message.tool_calls!==void 0).flatMap(Ae=>Ae.message.tool_calls||[]).filter(no),Qe=new Map;for(let Ae of n?.processors?.preToolsExecution||[]){let Pe=await Ae.preToolsExecution({turn:h,toolCalls:He,modelInfo:a});if(Pe)for(let[ml,CI]of Pe)Qe.set(ml,CI)}let Ne=He.filter(Ae=>!Qe.has(Ae.id)),WI=this.mergeToolResults(Qe,He,Ne,r,Fe,n?.executeToolsInParallel);for await(let Ae of WI){Ae.toolResult.resultType==="rejected"&&(Z=!0);let Pe={role:"tool",tool_call_id:Ae.originalCall.id,content:Ae.toolResult.textResultForLlm};o.push(Pe),yield{kind:"message",modelCall:S,message:cL(Pe),turn:h},yield{kind:"tool_execution",turn:h,toolCallId:Ae.originalCall.id,toolResult:Ae.toolResult,durationMs:Ae.durationMs};for(let ml of n?.processors?.postToolExecution||[])await ml.postToolExecution({toolCall:Ae.originalCall,toolResult:Ae.toolResult,turn:h,modelInfo:a})}}else for(let te of E.choices.map(oe=>oe.message))yield{kind:"response",modelCall:{model:c,api_id:E.id},response:cL(nw(te)),turn:h},p=!0;s.setInitiatorHeader("agent")}catch(f){let S;throw f instanceof Error&&f.cause&&f.cause instanceof Jw?S=`${f} (Cause: ${f.cause})`:S=`${f}`,yield{kind:"turn_failed",model:c,modelInfo:a,turn:h,error:S,timestampMs:Date.now()},f}finally{let f=Date.now();yield{kind:"turn_ended",model:c,modelInfo:a,turn:h,timestampMs:f},h++}}}async*mergeToolResults(e,I,l,n,c,s=!1){for(let[a,r]of e){let o=I.find(d=>d.id===a);o&&(yield{durationMs:0,originalCall:o,toolResult:r})}l.length>0&&(yield*this.callTools(l,n,c,s))}async*callTools(e,I,l,n=!1){if(e.length===0)throw new Error("Tool call is missing");if(this.logger.debug(`Tool calls count: ${e.length}`),n)this.logger.debug("Running tool calls in parallel"),yield*Mwe(e.map(c=>()=>this.callTool(c,I,l)));else{this.logger.debug("Running tool calls sequentially");for(let c of e)yield await this.callTool(c,I,l)}}async callTool(e,I,l){let n=0,c=e?.function.name;if(!c)throw new Error("Tool name is missing");let s=e?.function.arguments;if(!s)throw new Error("Tool call arguments are missing");let a=e?.id;if(!a)throw new Error("Tool call id is missing");let r,o=I[c];try{let d=lw(s);if(!o||!o.callback)r={textResultForLlm:`Tool '${c}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${c}' does not exist.`,sessionLog:`<error>Tool '${c}' does not exist.</error>`,toolTelemetry:{}};else{let i=o.callback,h=Date.now(),p={...l,toolCallId:a,toolOptions:this.settings.service?.tools?.[c]},Z=await i({...d},p);n=Date.now()-h,r=typeof Z=="string"?{textResultForLlm:Z,resultType:"success",toolTelemetry:{}}:Z}}catch(d){d instanceof SyntaxError?(r={textResultForLlm:`The arguments for the tool call '${c}' were not valid JSON. The arguments have been cleared. Arguments: ${s}. JSON parse error: ${d.message}`,resultType:"failure",error:`${d.message}`,sessionLog:`<error>Failed to execute \`${c}\` tool with arguments: ${s} due to syntax error: ${d.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}},e.function.arguments="{}"):r={textResultForLlm:`Failed to execute \`${c}\` tool with arguments: ${s} due to error: ${d}`,resultType:"failure",error:d instanceof Error?d.message:`${d}`,sessionLog:`<error>Failed to execute \`${c}\` tool with arguments: ${s}</error>`,toolTelemetry:{}}}return{durationMs:n,originalCall:e,toolResult:r}}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 Jw)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(s=>s.id===e).at(0)||I}};function DHI(t){for(let e of t)e.function.name=e.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_")}async function KHI(t,e,I){let l=PHI(t.data,e).toReadableStream(),n=HZ.fromReadableStream(l),c=I?.processors?.onStreamingChunk;if(c?.length)for await(let s of n){I?.abortSignal?.throwIfAborted();let a={chunk:s};for(let r of c)r.onStreamingChunk(a)}return{data:await n.finalChatCompletion(),response:t.response,request_id:t.request_id}}function PHI(t,e){let I=new Map;return new Ud(async function*(){for await(let l of t)l.choices?.forEach(n=>{n.delta.role??="assistant",!!n.delta?.tool_calls?.length&&(n.finish_reason??="tool_calls",n.delta.tool_calls?.forEach(s=>{if(s.index===0){let a=I.get(n.index);s.id&&(a=a===void 0?0:a+1,I.set(n.index,a)),a!==void 0&&(s.index=a)}}))}),yield l},t.controller,e)}var bK=class extends Lw{constructor(e,I,l){let n=new Cw;super(n,e,I,l)}};G();G();var kw=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),this.logger.info(`Using responses with model: ${this.model}`),this.clientPromise=e.createClient(I,l,this.clientOptions)}clientOptions;clientPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||"o4-mini",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??60}},thinkingMode:e?.thinkingMode??!0,requestHeaders:e?.requestHeaders??{}}}makeRequest(e,I,l,n,c,s,a,r){return e.responses.create({model:I,previous_response_id:s,instructions:l,input:n,parallel_tool_calls:c.length>0?!0:void 0,tools:c,reasoning:{summary:"auto",effort:"medium"},store:!1,include:["reasoning.encrypted_content"]},{maxRetries:a||this.clientOptions.retryPolicy.maxRetries,headers:r?.requestHeaders,signal:r?.abortSignal}).withResponse()}async*getCompletionWithTools(e,I,l,n){let c=await this.clientPromise,s=XW(l),a=l.map(N=>({name:N.name,description:N.description,parameters:N.input_schema,strict:!1,type:"function"})),r=0,o=this.clientOptions.retryPolicy.maxRetries,d=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,i=0,h=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,p=I.flatMap(qHI),Z,u=!1;for(;!u;){let N;do{N=void 0;try{let Y=await this.makeRequest(c,this.model,e,p,a,void 0,o,n);Z=Y.data,p.push(...Z.output),this.logger.debug(`response (Request-ID ${Y.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(Y.data,null,2))}catch(Y){let y=Y,Q=y.error;if(y){N=y,this.logger.error(`error (Request-ID ${y.requestID})`),this.logger.error(JSON.stringify(y,null,2)),this.logger.debug(`Failed to get response from the AI model: ${y}`),Q&&this.logger.debug(`Inner error: ${JSON.stringify(Q,null,2)}`);let A=y.status,w=A?this.clientOptions.retryPolicy.errorCodesToRetry.some(C=>Array.isArray(C)?A>=C[0]&&(C[1]===void 0||A<=C[1]):A===C):!1,x;if((y.status===429||w)&&(x=parseInt(y.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+d,d*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth),x!==void 0&&x<=h){this.logger.debug(`Retrying after ${x} seconds...`),await new Promise(C=>setTimeout(C,x*1e3)),i+=x,this.logger.debug(`Retrying after ${x} seconds... Will try again now!`);continue}else x?this.logger.error(`Retry after ${x} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}throw this.logger.error("error"),this.logger.error(JSON.stringify(Y,null,2)),Y}finally{this.logger.endGroup(8)}}while(N&&r++<o);if(!Z||N){this.logger.debug("Recent messages prior to failure:");for(let Y=Math.max(0,p.length-6);Y<p.length;Y++)this.logger.debug(`${Y}: ${JSON.stringify(p[Y],null,2)}`);throw new Error(`Failed to get response from the AI model; retried ${r-1} times (total retry wait time: ${i} seconds)`,{cause:N})}for(let Y of Z.output)yield{kind:"message",message:jfe(Y)};if(this.requiresToolOutput(Z)){let y=(await this.runTool(Z,s)).map(Q=>({type:"function_call_output",call_id:Q.toolCallId,output:Q.textResultForLlm}));p.push(...y);for(let Q of y)yield{kind:"message",message:jfe(Q)}}else yield{kind:"response",response:{content:Z.output_text,refusal:null,role:"assistant"}},u=!0}}async runTool(e,I,l){let n=e.output.filter(s=>s.type==="function_call");if(!n||n.length===0)throw new Error("Tool calls in response are missing");let c=[];for(let s of n){let a=s.name;if(!a)throw new Error("Tool name is missing");let r=s.arguments;if(!r)throw new Error("Tool call arguments are missing");let o=s.call_id;if(!o)throw new Error("Tool call id is missing");let d,i=I[a];try{let h=lw(r);if(!i||!i.callback)d={textResultForLlm:`Tool '${a}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${a}' does not exist.`,sessionLog:`<error>Tool '${a}' does not exist.</error>`,toolTelemetry:{}};else{let p=i.callback,Z={...l,toolOptions:this.settings.service?.tools?.[a],settings:this.settings},u=await p({...h},Z);d=typeof u=="string"?{textResultForLlm:u,resultType:"success",toolTelemetry:{}}:u}}catch(h){d={textResultForLlm:`Failed to execute \`${a}\` tool with arguments: ${r} due to error: ${h}`,resultType:"failure",error:h instanceof Error?h.message:`${h}`,sessionLog:`<error>Failed to execute \`${a}\` tool with arguments: ${r}</error>`,toolTelemetry:{properties:{wasSyntaxError:h instanceof SyntaxError?"true":"false"}}}}c.push({toolCallId:o,textResultForLlm:d.textResultForLlm,sessionLog:d.resultType=="success"?d.sessionLog:d.error?`<error>${d.error}</error>`:void 0})}return c}requiresToolOutput(e){return e.output.filter(I=>I.type==="function_call").length>0}};function qHI(t){if(t.role==="function")throw new Error("Function role is not supported");let e=[];if(t.reasoning_opaque&&e.push({id:t.reasoning_opaque,type:"reasoning",summary:t.reasoning_text?[{text:t.reasoning_text,type:"summary_text"}]:[],encrypted_content:t.encrypted_content}),t.role==="assistant"&&t.tool_calls&&t.tool_calls.length>0&&no(t.tool_calls[0])){let I=t.tool_calls[0];return[...e,{type:"function_call",id:t.id,name:I.function.name,arguments:I.function.arguments,call_id:I.id}]}return t.role==="tool"?[...e,{type:"function_call_output",call_id:t.tool_call_id,output:typeof t.content=="string"?t.content:t.content?.map(I=>I.type==="text"?I:{type:"text",text:""}).join(" ")??""}]:t.content?t.role==="assistant"?[...e,{type:"message",id:t.id,role:t.role,content:[{annotations:[],type:"output_text",text:typeof t.content=="string"?t.content:t.content?.map(I=>I.type==="text"?I.text:"").join(" ")??""}]}]:[...e,{role:t.role,content:typeof t.content=="string"?t.content:t.content?.map(I=>I.type==="text"?I.text:"").join(" ")??"",type:"message"}]:e}function jfe(t){if(t.type==="reasoning")return{role:"assistant",reasoning_opaque:t.id,reasoning_text:t.summary?t.summary.map(e=>e.text).join(" "):void 0,content:"",encrypted_content:t.encrypted_content};if(t.type==="function_call")return{role:"assistant",id:t.id,tool_calls:[{id:t.call_id,type:"function",function:{name:t.name,arguments:t.arguments}}],content:""};if(t.type==="function_call_output")return{role:"tool",content:t.output,tool_call_id:t.call_id};if(t.type==="message")return{id:"id"in t?t.id:void 0,role:t.role,content:typeof t.content=="string"?t.content:t.content?.map(e=>e.type==="input_text"||e.type==="output_text"?e.text:"").join(" ")??""};throw new Error(`Unknown item type: ${t.type}`)}var mK=class extends kw{constructor(e,I,l){let n=new Cw;super(n,e,I,l)}};var ZL=class{constructor(e,I,l){this.settings=e;this.logger=I;this.clientOptions=l;this.chatClient=new bK(e,I,l)}chatClient;get model(){return this.chatClient.model}async*getCompletionWithTools(e,I,l,n){let c=await this.chatClient.modelPromise;(this.clientOptions?.thinkingMode||Xl(this.settings,"copilot_swe_agent_enable_responses_api"))&&c&&c.supported_endpoints?.includes("/responses")?yield*new mK(this.settings,this.logger,{model:this.chatClient.model,...this.clientOptions}).getCompletionWithTools(e,I,l,n):yield*this.chatClient.getCompletionWithTools(e,I,l,n)}};G();var hK=class extends Lw{constructor(e,I,l,n){super(e,I,l,n)}getCompletionOptions(e,I){return{...this.model.startsWith("gpt-4")?{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,parallel_tool_calls:e?!1:void 0}:{},tool_choice:I?.toolChoice}}async*getCompletionWithTools(e,I,l,n){let c=await super.getCompletionWithTools(e,I,l,n);for await(let s of c)s.kind==="message"?yield{...s,message:nw({...s.message,reasoning_text:s.message?.cot_summary})}:yield s}};G();var pK=class extends kw{constructor(e,I,l,n){super(e,I,l,n)}};G();var Woe=class extends oL{constructor(e){super(e)}setInitiatorHeader(e){}setAdditionalHeaders(e){}listModels(){return Promise.resolve([])}},ZK=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?.openai?.apiKey,c=e.api?.openai?.azureKeyVaultUri,s=e.api?.openai?.azureSecretName;if(!n&&c){I.debug("No API_KEY provided, trying secret provider");let d=Zoe(c,I);try{n=await d.getSecret(s||"azure-openai-api-key")}catch(i){I.debug(`Failed to get API Key from secret provider:
520
520
  ${i}`)}}let a=yue(e);I.debug(`Using Azure Open API at ${a}`);let o={baseURL:`${new URL(a).origin}/openai`,apiVersion:e.api?.openai?.azure?.apiVersion||"2024-10-21",deployment:l?.model,defaultHeaders:l?.requestHeaders};if(n)o={...o,apiKey:n},I.debug("Using Azure OpenAI API Key");else{let d=new vm,h=Qae(d,"https://cognitiveservices.azure.com/.default");o={...o,azureADTokenProvider:h},I.debug("Using Azure Managed Identity")}return new Woe(o)}};G();var Noe=class extends XI{constructor(e){super(e)}setInitiatorHeader(e){}setAdditionalHeaders(e){}listModels(){return Promise.resolve([])}},uK=class{async createClient(e,I,l){I.startGroup("configured settings:",8),I.debug(JSON.stringify(e,null,2)),I.endGroup(8);let n=Rue(e),c=e.api?.openai?.baseUrl,s=l?.requestHeaders;return new Noe({baseURL:c,apiKey:n,defaultHeaders:s})}};function Yoe(t,e,I,l){switch(I){case"sweagent-aip":return new Ij(t,e,l);case"sweagent-anthropic":return new RD(t,e,l);case"sweagent-capi":return new ZL(t,e,l);case"sweagent-openai":return l?.thinkingMode?new pK(Dfe(t),t,e,l):new hK(Dfe(t),t,e,l);default:return new ZL(t,e,l)}}function Dfe(t){return t.api?.openai?.azure?.url?new ZK:new uK}G();G();G();import{exec as $HI}from"child_process";import{spawn as e1I}from"node-pty";G();G();function Voe({onlyFirst:t=!1}={}){let I=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(I,t?void 0:"g")}var _HI=Voe();function Roe(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(_HI,"")}import{promisify as I1I}from"util";var LZ="___BEGIN___COMMAND_OUTPUT_MARKER___",Kfe=`