@github/copilot 0.0.366-6 → 0.0.366-8
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 +2 -2
- package/package.json +2 -2
- package/sdk/index.js +1 -1
package/index.js
CHANGED
|
@@ -1180,7 +1180,7 @@ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
|
1180
1180
|
`);this.baseURL=o.baseURL,this.timeout=o.timeout??xAt.DEFAULT_TIMEOUT,this.logger=o.logger??console;let I="warn";this.logLevel=I,this.logLevel=aGt(o.logLevel,"ClientOptions.logLevel",this)??aGt(qw("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??I,this.fetchOptions=o.fetchOptions,this.maxRetries=o.maxRetries??2,this.fetch=o.fetch??ayn(),sa(this,SLe,oyn,"f"),this._options=o,this.apiKey=typeof n=="string"?n:"Missing Key",this.organization=r,this.project=l,this.webhookSecret=a}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:n}){}async authHeaders(e){return $r([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return rGt(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${EB}`}defaultIdempotencyKey(){return`stainless-node-retry-${_ht()}`}makeStatusError(e,n,r,l){return zu.generate(e,n,r,l)}async _callApiKey(){let e=this._options.apiKey;if(typeof e!="function")return!1;let n;try{n=await e()}catch(r){throw r instanceof qr?r:new qr(`Failed to get token from 'apiKey' function: ${r.message}`,{cause:r})}if(typeof n!="string"||!n)throw new qr(`Expected 'apiKey' function argument to return a string but it returned ${n}`);return this.apiKey=n,!0}buildURL(e,n,r){let l=!Ct(this,kAt,"m",oWn).call(this)&&r||this.baseURL,a=PNn(e)?new URL(e):new URL(l+(l.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),s=this.defaultQuery();return jNn(s)||(n={...s,...n}),typeof n=="object"&&n&&!Array.isArray(n)&&(a.search=this.stringifyQuery(n)),a.toString()}async prepareOptions(e){await this._callApiKey()}async prepareRequest(e,{url:n,options:r}){}get(e,n){return this.methodRequest("get",e,n)}post(e,n){return this.methodRequest("post",e,n)}patch(e,n){return this.methodRequest("patch",e,n)}put(e,n){return this.methodRequest("put",e,n)}delete(e,n){return this.methodRequest("delete",e,n)}methodRequest(e,n,r){return this.request(Promise.resolve(r).then(l=>({method:e,path:n,...l})))}request(e,n=null){return new fz(this,this.makeRequest(e,n,void 0))}async makeRequest(e,n,r){let l=await e,a=l.maxRetries??this.maxRetries;n==null&&(n=a),await this.prepareOptions(l);let{req:s,url:o,timeout:I}=await this.buildRequest(l,{retryCount:a-n});await this.prepareRequest(s,{url:o,options:l});let c="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),d=r===void 0?"":`, retryOf: ${r}`,u=Date.now();if(lp(this).debug(`[${c}] sending request`,lk({retryOfRequestLogID:r,method:l.method,url:o,options:l,headers:s.headers})),l.signal?.aborted)throw new ah;let b=new AbortController,p=await this.fetchWithTimeout(o,s,I,b).catch(B0e),A=Date.now();if(p instanceof globalThis.Error){let f=`retrying, ${n} attempts remaining`;if(l.signal?.aborted)throw new ah;let w=S0e(p)||/timed? ?out/i.test(String(p)+("cause"in p?String(p.cause):""));if(n)return lp(this).info(`[${c}] connection ${w?"timed out":"failed"} - ${f}`),lp(this).debug(`[${c}] connection ${w?"timed out":"failed"} (${f})`,lk({retryOfRequestLogID:r,url:o,durationMs:A-u,message:p.message})),this.retryRequest(l,n,r??c);throw lp(this).info(`[${c}] connection ${w?"timed out":"failed"} - error; no more retries left`),lp(this).debug(`[${c}] connection ${w?"timed out":"failed"} (error; no more retries left)`,lk({retryOfRequestLogID:r,url:o,durationMs:A-u,message:p.message})),w?new WB:new yB({cause:p})}let Z=[...p.headers.entries()].filter(([f])=>f==="x-request-id").map(([f,w])=>", "+f+": "+JSON.stringify(w)).join(""),y=`[${c}${d}${Z}] ${s.method} ${o} ${p.ok?"succeeded":"failed"} with status ${p.status} in ${A-u}ms`;if(!p.ok){let f=await this.shouldRetry(p);if(n&&f){let T=`retrying, ${n} attempts remaining`;return await syn(p.body),lp(this).info(`${y} - ${T}`),lp(this).debug(`[${c}] response error (${T})`,lk({retryOfRequestLogID:r,url:p.url,status:p.status,headers:p.headers,durationMs:A-u})),this.retryRequest(l,n,r??c,p.headers)}let w=f?"error; no more retries left":"error; not retryable";lp(this).info(`${y} - ${w}`);let Q=await p.text().catch(T=>B0e(T).message),H=$Nn(Q),S=H?void 0:Q;throw lp(this).debug(`[${c}] response error (${w})`,lk({retryOfRequestLogID:r,url:p.url,status:p.status,headers:p.headers,message:S,durationMs:Date.now()-u})),this.makeStatusError(p.status,H,S,p.headers)}return lp(this).info(y),lp(this).debug(`[${c}] response start`,lk({retryOfRequestLogID:r,url:p.url,status:p.status,headers:p.headers,durationMs:A-u})),{response:p,options:l,controller:b,requestLogID:c,retryOfRequestLogID:r,startTime:u}}getAPIList(e,n,r){return this.requestAPIList(n,{method:"get",path:e,...r})}requestAPIList(e,n){let r=this.makeRequest(n,null,void 0);return new z0e(this,r,e)}async fetchWithTimeout(e,n,r,l){let{signal:a,method:s,...o}=n||{};a&&a.addEventListener("abort",()=>l.abort());let I=setTimeout(()=>l.abort(),r),c=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body=="object"&&o.body!==null&&Symbol.asyncIterator in o.body,d={signal:l.signal,...c?{duplex:"half"}:{},method:"GET",...o};s&&(d.method=s.toUpperCase());try{return await this.fetch.call(void 0,e,d)}finally{clearTimeout(I)}}async shouldRetry(e){let n=e.headers.get("x-should-retry");return n==="true"?!0:n==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,n,r,l){let a,s=l?.get("retry-after-ms");if(s){let I=parseFloat(s);Number.isNaN(I)||(a=I)}let o=l?.get("retry-after");if(o&&!a){let I=parseFloat(o);Number.isNaN(I)?a=Date.parse(o)-Date.now():a=I*1e3}if(!(a&&0<=a&&a<60*1e3)){let I=e.maxRetries??this.maxRetries;a=this.calculateDefaultRetryTimeoutMillis(n,I)}return await tv(a),this.makeRequest(e,n-1,r)}calculateDefaultRetryTimeoutMillis(e,n){let a=n-e,s=Math.min(.5*Math.pow(2,a),8),o=1-Math.random()*.25;return s*o*1e3}async buildRequest(e,{retryCount:n=0}={}){let r={...e},{method:l,path:a,query:s,defaultBaseURL:o}=r,I=this.buildURL(a,s,o);"timeout"in r&&qNn("timeout",r.timeout),r.timeout=r.timeout??this.timeout;let{bodyHeaders:c,body:d}=this.buildBody({options:r}),u=await this.buildHeaders({options:e,method:l,bodyHeaders:c,retryCount:n});return{req:{method:l,headers:u,...r.signal&&{signal:r.signal},...globalThis.ReadableStream&&d instanceof globalThis.ReadableStream&&{duplex:"half"},...d&&{body:d},...this.fetchOptions??{},...r.fetchOptions??{}},url:I,timeout:r.timeout}}async buildHeaders({options:e,method:n,bodyHeaders:r,retryCount:l}){let a={};this.idempotencyHeader&&n!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),a[this.idempotencyHeader]=e.idempotencyKey);let s=$r([a,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(l),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...lyn(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,r,e.headers]);return this.validateHeaders(s),s.values}buildBody({options:{body:e,headers:n}}){if(!e)return{bodyHeaders:void 0,body:void 0};let r=$r([n]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&r.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:aLe(e)}:Ct(this,SLe,"f").call(this,{body:e,headers:r})}};xAt=xa,SLe=new WeakMap,kAt=new WeakSet,oWn=function(){return this.baseURL!=="https://api.openai.com/v1"};xa.OpenAI=xAt;xa.DEFAULT_TIMEOUT=6e5;xa.OpenAIError=qr;xa.APIError=zu;xa.APIConnectionError=yB;xa.APIConnectionTimeoutError=WB;xa.APIUserAbortError=ah;xa.NotFoundError=gre;xa.ConflictError=Zre;xa.RateLimitError=yre;xa.BadRequestError=hre;xa.AuthenticationError=Gre;xa.InternalServerError=Wre;xa.PermissionDeniedError=Are;xa.UnprocessableEntityError=Nre;xa.InvalidWebhookSignatureError=$F;xa.toFile=GLe;xa.Completions=Hz;xa.Chat=YB;xa.Embeddings=kz;xa.Files=Lz;xa.Images=Tz;xa.Audio=lv;xa.Moderations=_z;xa.Models=Oz;xa.FineTuning=eV;xa.Graders=vB;xa.VectorStores=dk;xa.Webhooks=Uz;xa.Beta=sv;xa.Batches=Vz;xa.Uploads=xB;xa.Responses=kB;xa.Realtime=HB;xa.Conversations=CB;xa.Evals=FB;xa.Containers=QB});var dZe,vul,iWn=W(()=>{sh();DR();oZe();BLe();dZe=class extends xa{constructor({baseURL:e=qw("OPENAI_BASE_URL"),apiKey:n=qw("AZURE_OPENAI_API_KEY"),apiVersion:r=qw("OPENAI_API_VERSION"),endpoint:l,deployment:a,azureADTokenProvider:s,dangerouslyAllowBrowser:o,...I}={}){if(!r)throw new qr("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"&&(o=!0),!s&&!n)throw new qr("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(s&&n)throw new qr("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(I.defaultQuery={...I.defaultQuery,"api-version":r},e){if(l)throw new qr("baseURL and endpoint are mutually exclusive")}else{if(l||(l=process.env.AZURE_OPENAI_ENDPOINT),!l)throw new qr("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${l}/openai`}super({apiKey:s??n,baseURL:e,...I,...o!==void 0?{dangerouslyAllowBrowser:o}:{}}),this.apiVersion="",this.apiVersion=r,this.deploymentName=a}async buildRequest(e,n={}){if(vul.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!fre(e.body))throw new Error("Expected request body to be an object");let r=this.deploymentName||e.body.model||e.__metadata?.model;r!==void 0&&!this.baseURL.includes("/deployments")&&(e.path=`/deployments/${r}${e.path}`)}return super.buildRequest(e,n)}async authHeaders(e){return typeof this._options.apiKey=="string"?$r([{"api-key":this.apiKey}]):super.authHeaders(e)}},vul=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"])});var uZe=W(()=>{BLe();bGt();bLe();BLe();fu();ev();iWn()});var IWn=W(()=>{kGt()});var Hul,cWn,dWn=W(()=>{Hul=[Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError,globalThis.DOMException,globalThis.AssertionError,globalThis.SystemError].filter(Boolean).map(t=>[t.name,t]),cWn=new Map(Hul)});function Mz(t,e={}){let{maxDepth:n=Number.POSITIVE_INFINITY,useToJSON:r=!0}=e;return typeof t=="object"&&t!==null?mWn({from:t,seen:[],forceEnumerable:!0,maxDepth:n,depth:0,useToJSON:r,serialize:!0}):typeof t=="function"?`[Function: ${t.name||"anonymous"}]`:t}function uWn(t){return!!t&&typeof t=="object"&&typeof t.name=="string"&&typeof t.message=="string"&&typeof t.stack=="string"}var Xul,LAt,kul,xul,mWn,JAt=W(()=>{dWn();Xul=[{property:"name",enumerable:!1},{property:"message",enumerable:!1},{property:"stack",enumerable:!1},{property:"code",enumerable:!0},{property:"cause",enumerable:!1},{property:"errors",enumerable:!1}],LAt=new WeakSet,kul=t=>{LAt.add(t);let e=t.toJSON();return LAt.delete(t),e},xul=t=>{let e=cWn.get(t)??Error;return e===AggregateError?new e([]):new e},mWn=({from:t,seen:e,to:n,forceEnumerable:r,maxDepth:l,depth:a,useToJSON:s,serialize:o})=>{if(n||(Array.isArray(t)?n=[]:!o&&uWn(t)?n=xul(t.name):n={}),e.push(t),a>=l)return n;if(s&&typeof t.toJSON=="function"&&!LAt.has(t))return kul(t);let I=c=>mWn({from:c,seen:[...e],forceEnumerable:r,maxDepth:l,depth:a,useToJSON:s,serialize:o});for(let[c,d]of Object.entries(t)){if(d&&d instanceof Uint8Array&&d.constructor.name==="Buffer"){n[c]="[object Buffer]";continue}if(d!==null&&typeof d=="object"&&typeof d.pipe=="function"){n[c]="[object Stream]";continue}if(typeof d!="function"){if(!d||typeof d!="object"){try{n[c]=d}catch{}continue}if(!e.includes(t[c])){a++,n[c]=I(t[c]);continue}n[c]="[Circular]"}}if(o||n instanceof Error)for(let{property:c,enumerable:d}of Xul)t[c]!==void 0&&t[c]!==null&&Object.defineProperty(n,c,{value:uWn(t[c])||Array.isArray(t[c])?I(t[c]):t[c],enumerable:r?!0:d,configurable:!0,writable:!0});return n}});function LB(t){return t?.description?.startsWith(SAt)??!1}var SAt,mZe=W(()=>{"use strict";SAt="Custom agent:"});function pWn(t){return{agent:t,model:OLe[t]}}var OLe,TLe,bWn,BAt=W(()=>{"use strict";OLe={"sweagent-capi":"claude-sonnet-4.5","sweagent-aip":"swe-mini2-genai-v2","sweagent-anthropic":"claude-sonnet-4-5-20250929","sweagent-openai":"gpt-5"},TLe="sweagent-capi",bWn={agent:TLe,model:OLe[TLe]}});function hWn(t){if(t)try{let e=new URLSearchParams(t),n=parseInt(e.get("ent")||"0",10),r=parseFloat(e.get("ov")||"0.0"),l=e.get("ovPerm")==="true",a=parseFloat(e.get("rem")||"0.0"),s=e.get("rst"),o;s?o=new Date(s):(o=new Date,o.setMonth(o.getMonth()+1));let I=Math.round(Math.max(0,n*(1-a/100)));return isNaN(n)||isNaN(r)||isNaN(a)?void 0:{isUnlimitedEntitlement:n===-1,entitlementRequests:n,usedRequests:I,usageAllowedWithExhaustedQuota:l,overage:r,overageAllowedWithExhaustedQuota:l,remainingPercentage:a,resetDate:o}}catch{return}}var TAt,GWn=W(()=>{"use strict";TAt="x-quota-snapshot-"});var AWn,gWn=W(()=>{xw();AWn=g0("keyvault-secrets")});var ZWn,NWn=W(()=>{xw();ZWn=g0("keyvault-secrets")});function Q0(t,e){return typeof t=="string"?rke(t,e):rke(t)}var yWn=W(()=>{Q4()});var WWn=W(()=>{});function OAt(t){return SAe(t,["key"])&&typeof t.key=="string"}var EWn=W(()=>{N0()});var RWn=W(()=>{N0()});var fWn=W(()=>{N0()});function bZe(t){let e=t;return e&&typeof e.getToken=="function"&&(e.signRequest===void 0||e.getToken.length>0)}var YWn=W(()=>{});var _At=W(()=>{WWn();EWn();RWn();fWn();YWn()});function wWn(t){return{name:Lul,sendRequest:(e,n)=>{let r=new URL(e.url);return!r.searchParams.get("api-version")&&t.apiVersion&&(e.url=`${e.url}${Array.from(r.searchParams.keys()).length>0?"&":"?"}api-version=${t.apiVersion}`),n(e)}}}var Lul,VWn=W(()=>{Lul="ApiVersionPolicy"});function QWn(t,e){return{name:Jul,async sendRequest(n,r){return n.headers.set(e,t.key),r(n)}}}var Jul,CWn=W(()=>{Jul="keyCredentialAuthenticationPolicy"});function FWn(t,e,n={}){var r,l,a,s;let{credential:o,clientOptions:I}=n;if(o){if(bZe(o)){let c=tz({credential:o,scopes:(l=(r=I?.credentials)===null||r===void 0?void 0:r.scopes)!==null&&l!==void 0?l:`${e}/.default`});t.addPolicy(c)}else if(Sul(o)){if(!(!((a=I?.credentials)===null||a===void 0)&&a.apiKeyHeaderName))throw new Error("Missing API Key Header Name");let c=QWn(o,(s=I?.credentials)===null||s===void 0?void 0:s.apiKeyHeaderName);t.addPolicy(c)}}}function vWn(t,e,n={}){let r=pge(n);return r.addPolicy(wWn(n)),FWn(r,t,{credential:e,clientOptions:n}),r}function Sul(t){return t.key!==void 0}var UAt=W(()=>{u2();_At();VWn();CWn()});function mW(t){return gmt(t)}var HWn=W(()=>{Q4()});function JB(t){return t.onResponse?Object.assign(Object.assign({},t),{onResponse(e,n){var r;(r=t.onResponse)===null||r===void 0||r.call(t,e,n,n)}}):t}function XWn(t,e,n={}){let r;e&&(Bul(e)?r=e:n=e??{});let l=vWn(t,r,n),a=Amt(t,Object.assign(Object.assign({},n),{pipeline:l})),s=(o,...I)=>({get:(c={})=>a.path(o,...I).get(JB(c)),post:(c={})=>a.path(o,...I).post(JB(c)),put:(c={})=>a.path(o,...I).put(JB(c)),patch:(c={})=>a.path(o,...I).patch(JB(c)),delete:(c={})=>a.path(o,...I).delete(JB(c)),head:(c={})=>a.path(o,...I).head(JB(c)),options:(c={})=>a.path(o,...I).options(JB(c)),trace:(c={})=>a.path(o,...I).trace(JB(c))});return{path:s,pathUnchecked:s,pipeline:a.pipeline}}function Bul(t){return OAt(t)||bZe(t)}var kWn=W(()=>{_At();UAt();Q4()});var xWn=W(()=>{});var _Le=W(()=>{yWn();UAt();HWn();kWn();xWn()});function MAt(t,e,n={}){var r,l,a,s,o,I,c,d;let u=(l=(r=n.endpoint)!==null&&r!==void 0?r:n.baseUrl)!==null&&l!==void 0?l:String(t),b=(a=n?.userAgentOptions)===null||a===void 0?void 0:a.userAgentPrefix,p="azsdk-js-keyvault-secrets/1.0.0-beta.1",A=b?`${b} azsdk-js-api ${p}`:`azsdk-js-api ${p}`,Z=Object.assign(Object.assign({},n),{userAgentOptions:{userAgentPrefix:A},loggingOptions:{logger:(o=(s=n.loggingOptions)===null||s===void 0?void 0:s.logger)!==null&&o!==void 0?o:ZWn.info},credentials:{scopes:(c=(I=n.credentials)===null||I===void 0?void 0:I.scopes)!==null&&c!==void 0?c:["https://vault.azure.net/.default"]}}),{apiVersion:y}=Z,f=Ige(Z,["apiVersion"]),w=XWn(u,e,f);w.pipeline.removePolicy({name:"ApiVersionPolicy"});let Q=(d=n.apiVersion)!==null&&d!==void 0?d:"7.6";return w.pipeline.addPolicy({name:"ClientApiVersionPolicy",sendRequest:(H,S)=>{let _=new URL(H.url);return _.searchParams.get("api-version")||(H.url=`${H.url}${Array.from(_.searchParams.keys()).length>0?"&":"?"}api-version=${Q}`),S(H)}}),Object.assign(Object.assign({},w),{apiVersion:Q})}var LWn=W(()=>{Lne();NWn();_Le()});function JWn(t){return{value:t.value,tags:t.tags,contentType:t.contentType,attributes:t.secretAttributes?SWn(t.secretAttributes):t.secretAttributes}}function SWn(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 MLe(t){return{enabled:t.enabled,notBefore:t.nbf?new Date(t.nbf*1e3):t.nbf,expires:t.exp?new Date(t.exp*1e3):t.exp,created:t.created?new Date(t.created*1e3):t.created,updated:t.updated?new Date(t.updated*1e3):t.updated,recoverableDays:t.recoverableDays,recoveryLevel:t.recoveryLevel}}function lle(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?MLe(t.attributes):t.attributes,tags:t.tags,kid:t.kid,managed:t.managed}}function W2(t){return{error:t.error?BWn(t.error):t.error}}function BWn(t){return{code:t.code,message:t.message,innerError:t.innererror?BWn(t.innererror):t.innererror}}function DAt(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?MLe(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 TWn(t){return{contentType:t.contentType,attributes:t.secretAttributes?SWn(t.secretAttributes):t.secretAttributes,tags:t.tags}}function zAt(t){return{value:t.value?Tul(t.value):t.value,nextLink:t.nextLink}}function Tul(t){return t.map(e=>Oul(e))}function Oul(t){return{id:t.id,attributes:t.attributes?MLe(t.attributes):t.attributes,tags:t.tags,contentType:t.contentType,managed:t.managed}}function OWn(t){return{value:t.value?_ul(t.value):t.value,nextLink:t.nextLink}}function _ul(t){return t.map(e=>Uul(e))}function Uul(t){return{id:t.id,attributes:t.attributes?MLe(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 _Wn(t){return{value:t.value&&typeof t.value=="string"?ipn(t.value,"base64url"):t.value}}function UWn(t){return{value:opn(t.secretBundleBackup,"base64url")}}var pZe,ULe,PAt=W(()=>{N0();(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"})(pZe||(pZe={}));(function(t){t.V75="7.5",t.V76Preview2="7.6-preview.2",t.V76="7.6"})(ULe||(ULe={}))});function DLe(t,e,n,r,l={}){var a,s;let o=(a=l.itemName)!==null&&a!==void 0?a:"value",I=(s=l.nextLinkName)!==null&&s!==void 0?s:"nextLink",c={getPage:async d=>{let u=d===void 0?await e():await t.pathUnchecked(d).get();jul(u,r);let b=await n(u),p=zul(b,I);return{page:Pul(b,o),nextPageLink:p}},byPage:d=>{let{continuationToken:u}=d??{};return jAt(c,{pageLink:u})}};return Mul(c)}function Mul(t){var e;let n=Dul(t);return{next(){return n.next()},[Symbol.asyncIterator](){return this},byPage:(e=t?.byPage)!==null&&e!==void 0?e:(r=>{let{continuationToken:l}=r??{};return jAt(t,{pageLink:l})})}}function Dul(t){return zS(this,arguments,function*(){var n,r,l,a;let s=jAt(t);try{for(var o=!0,I=ez(s),c;c=yield Eu(I.next()),n=c.done,!n;o=!0)a=c.value,o=!1,yield Eu(yield*ohn(ez(a)))}catch(d){r={error:d}}finally{try{!o&&!n&&(l=I.return)&&(yield Eu(l.call(I)))}finally{if(r)throw r.error}}})}function jAt(t){return zS(this,arguments,function*(n,r={}){let{pageLink:l}=r,a=yield Eu(n.getPage(l??n.firstPageLink));if(!a)return yield Eu(void 0);let s=a.page;for(s.continuationToken=a.nextPageLink,yield yield Eu(s);a.nextPageLink;){if(a=yield Eu(n.getPage(a.nextPageLink)),!a)return yield Eu(void 0);s=a.page,s.continuationToken=a.nextPageLink,yield yield Eu(s)}})}function zul(t,e){if(!e)return;let n=t[e];if(typeof n!="string"&&typeof n<"u"&&n!==null)throw new C4(`Body Property ${e} should be a string or undefined or null but got ${typeof n}`);if(n!==null)return n}function Pul(t,e){let n=t[e];if(!Array.isArray(n))throw new C4(`Couldn't paginate response
|
|
1181
1181
|
Body doesn't contain an array property with name: ${e}`);return n??[]}function jul(t,e){if(!e.includes(t.status))throw Q0(`Pagination failed with unexpected statusCode ${t.status}`,t)}var MWn=W(()=>{Lne();_Le();u2()});function ale(t,e,n){return(e??n==="+")||n==="#"?DWn(t):zWn(t)}function DWn(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function zWn(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function hZe(t){return t!=null}function KAt(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function zLe(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function Kul(t){let e=t.isFirst,{op:n,varName:r,varValue:l,reserved:a}=t,s=[],[o,I]=KAt(n);if(Array.isArray(l))for(let c of l.filter(hZe))s.push(`${zLe(n,e)}`),o&&r&&(s.push(`${encodeURIComponent(r)}`),c===""?s.push(I):s.push("=")),s.push(ale(c,a,n)),e=!1;else if(typeof l=="object")for(let c of Object.keys(l)){let d=l[c];hZe(d)&&(s.push(`${zLe(n,e)}`),c&&(s.push(`${encodeURIComponent(c)}`),o&&d===""?s.push(I):s.push("=")),s.push(ale(d,a,n)),e=!1)}return s.join("")}function qul(t){let{op:e,varName:n,varValue:r,isFirst:l,reserved:a}=t,s=[],o=zLe(e,l),[I,c]=KAt(e);if(I&&n){if(s.push(ale(n,a,e)),r==="")return c||s.push(c),s.join("")?`${o}${s.join("")}`:void 0;s.push("=")}let d=[];if(Array.isArray(r))for(let u of r.filter(hZe))d.push(ale(u,a,e));else if(typeof r=="object")for(let u of Object.keys(r))hZe(r[u])&&(d.push(zWn(u)),d.push(ale(r[u],a,e)));return s.push(d.join(",")),s.join(",")?`${o}${s.join("")}`:void 0}function $ul(t){let{op:e,varName:n,modifier:r,isFirst:l,reserved:a,varValue:s}=t;if(hZe(s))if(["string","number","boolean"].includes(typeof s)){let o=s.toString(),[I,c]=KAt(e),d=[zLe(e,l)];return I&&n&&(d.push(n),o===""?d.push(c):d.push("=")),r&&r!=="*"&&(o=o.substring(0,parseInt(r,10))),d.push(ale(o,a,e)),d.join("")}else return r==="*"?Kul(t):qul(t);else return}function E2(t,e,n){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(r,l,a)=>{if(!l)return DWn(a);let s;["+","#",".","/",";","?","&"].includes(l[0])&&(s=l[0],l=l.slice(1));let o=l.split(/,/g),I=[];for(let c of o){let d=/([^:\*]*)(?::(\d+)|(\*))?/.exec(c);if(!d||!d[1])continue;let u=$ul({isFirst:I.length===0,op:s,varValue:e[d[1]],varName:d[1],modifier:d[2]||d[3],reserved:n?.allowReserved});u&&I.push(u)}return I.join("")})}var PWn=W(()=>{});function eml(t,e,n={requestOptions:{}}){var r,l;let a=E2("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(a).post(Object.assign(Object.assign({},mW(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(l=n.requestOptions)===null||l===void 0?void 0:l.headers),body:UWn(e)}))}async function tml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return lle(t.body)}async function qAt(t,e,n={requestOptions:{}}){let r=await eml(t,e,n);return tml(r)}function nml(t,e,n={requestOptions:{}}){var r,l;let a=E2("/secrets/{secret-name}/backup{?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).post(Object.assign(Object.assign({},mW(n)),{headers:Object.assign({accept:"application/json"},(l=n.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function rml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return _Wn(t.body)}async function $At(t,e,n={requestOptions:{}}){let r=await nml(t,e,n);return rml(r)}function lml(t,e,n={requestOptions:{}}){var r,l;let a=E2("/deletedsecrets/{secret-name}/recover{?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).post(Object.assign(Object.assign({},mW(n)),{headers:Object.assign({accept:"application/json"},(l=n.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function aml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return lle(t.body)}async function egt(t,e,n={requestOptions:{}}){let r=await lml(t,e,n);return aml(r)}function sml(t,e,n={requestOptions:{}}){var r,l;let a=E2("/deletedsecrets/{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).delete(Object.assign(Object.assign({},mW(n)),{headers:Object.assign({accept:"application/json"},(l=n.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function oml(t){if(!["204"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}}async function tgt(t,e,n={requestOptions:{}}){let r=await sml(t,e,n);return oml(r)}function iml(t,e,n={requestOptions:{}}){var r,l;let a=E2("/deletedsecrets/{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).get(Object.assign(Object.assign({},mW(n)),{headers:Object.assign({accept:"application/json"},(l=n.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function Iml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return DAt(t.body)}async function ngt(t,e,n={requestOptions:{}}){let r=await iml(t,e,n);return Iml(r)}function cml(t,e={requestOptions:{}}){var n,r;let l=E2("/deletedsecrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(n=e?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(l).get(Object.assign(Object.assign({},mW(e)),{headers:Object.assign({accept:"application/json"},(r=e.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function dml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return OWn(t.body)}function rgt(t,e={requestOptions:{}}){return DLe(t,()=>cml(t,e),dml,["200"],{itemName:"value",nextLinkName:"nextLink"})}function uml(t,e,n={requestOptions:{}}){var r,l;let a=E2("/secrets/{secret-name}/versions{?api%2Dversion,maxresults}",{"secret-name":e,"api%2Dversion":t.apiVersion,maxresults:n?.maxresults},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(a).get(Object.assign(Object.assign({},mW(n)),{headers:Object.assign({accept:"application/json"},(l=n.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function mml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return zAt(t.body)}function lgt(t,e,n={requestOptions:{}}){return DLe(t,()=>uml(t,e,n),mml,["200"],{itemName:"value",nextLinkName:"nextLink"})}function bml(t,e={requestOptions:{}}){var n,r;let l=E2("/secrets{?api%2Dversion,maxresults}",{"api%2Dversion":t.apiVersion,maxresults:e?.maxresults},{allowReserved:(n=e?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(l).get(Object.assign(Object.assign({},mW(e)),{headers:Object.assign({accept:"application/json"},(r=e.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function pml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return zAt(t.body)}function agt(t,e={requestOptions:{}}){return DLe(t,()=>bml(t,e),pml,["200"],{itemName:"value",nextLinkName:"nextLink"})}function hml(t,e,n,r={requestOptions:{}}){var l,a;let s=E2("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":n,"api%2Dversion":t.apiVersion},{allowReserved:(l=r?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(s).get(Object.assign(Object.assign({},mW(r)),{headers:Object.assign({accept:"application/json"},(a=r.requestOptions)===null||a===void 0?void 0:a.headers)}))}async function Gml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return lle(t.body)}async function sgt(t,e,n,r={requestOptions:{}}){let l=await hml(t,e,n,r);return Gml(l)}function Aml(t,e,n,r,l={requestOptions:{}}){var a,s;let o=E2("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":n,"api%2Dversion":t.apiVersion},{allowReserved:(a=l?.requestOptions)===null||a===void 0?void 0:a.skipUrlEncoding});return t.path(o).patch(Object.assign(Object.assign({},mW(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(s=l.requestOptions)===null||s===void 0?void 0:s.headers),body:TWn(r)}))}async function gml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return lle(t.body)}async function ogt(t,e,n,r,l={requestOptions:{}}){let a=await Aml(t,e,n,r,l);return gml(a)}function Zml(t,e,n={requestOptions:{}}){var r,l;let a=E2("/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).delete(Object.assign(Object.assign({},mW(n)),{headers:Object.assign({accept:"application/json"},(l=n.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function Nml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return DAt(t.body)}async function igt(t,e,n={requestOptions:{}}){let r=await Zml(t,e,n);return Nml(r)}function yml(t,e,n,r={requestOptions:{}}){var l,a;let s=E2("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=r?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(s).put(Object.assign(Object.assign({},mW(r)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(a=r.requestOptions)===null||a===void 0?void 0:a.headers),body:JWn(n)}))}async function Wml(t){if(!["200"].includes(t.status)){let n=Q0(t);throw n.details=W2(t.body),n}return lle(t.body)}async function Igt(t,e,n,r={requestOptions:{}}){let l=await yml(t,e,n,r);return Wml(l)}var cgt=W(()=>{PAt();MWn();PWn();_Le()});var jWn=W(()=>{LWn();cgt()});var GZe,dgt=W(()=>{jWn();cgt();GZe=class{constructor(e,n,r={}){var l;let a=(l=r?.userAgentOptions)===null||l===void 0?void 0:l.userAgentPrefix,s=a?`${a} azsdk-js-client`:"azsdk-js-client";this._client=MAt(e,n,Object.assign(Object.assign({},r),{userAgentOptions:{userAgentPrefix:s}})),this.pipeline=this._client.pipeline}restoreSecret(e,n={requestOptions:{}}){return qAt(this._client,e,n)}backupSecret(e,n={requestOptions:{}}){return $At(this._client,e,n)}recoverDeletedSecret(e,n={requestOptions:{}}){return egt(this._client,e,n)}purgeDeletedSecret(e,n={requestOptions:{}}){return tgt(this._client,e,n)}getDeletedSecret(e,n={requestOptions:{}}){return ngt(this._client,e,n)}getDeletedSecrets(e={requestOptions:{}}){return rgt(this._client,e)}getSecretVersions(e,n={requestOptions:{}}){return lgt(this._client,e,n)}getSecrets(e={requestOptions:{}}){return agt(this._client,e)}getSecret(e,n,r={requestOptions:{}}){return sgt(this._client,e,n,r)}updateSecret(e,n,r,l={requestOptions:{}}){return ogt(this._client,e,n,r,l)}deleteSecret(e,n={requestOptions:{}}){return igt(this._client,e,n)}setSecret(e,n,r={requestOptions:{}}){return Igt(this._client,e,n,r)}}});function ugt(t){let e=/,? +/,n=t.split(e).reduce((r,l)=>{if(l.match(/\w="/)){let[a,...s]=l.split("=");if(Eml.includes(a))return Object.assign(Object.assign({},r),{[a]:s.join("=").slice(1,-1)})}return r},{});if(n.authorization)try{let r=new URL(n.authorization).pathname.substring(1);r&&(n.tenantId=r)}catch{throw new Error(`The challenge authorization URI '${n.authorization}' is invalid.`)}return n}var Eml,KWn=W(()=>{Eml=["authorization","authorization_url","resource","scope","tenantId","claims","error"]});async function fml(t,e,n){async function r(){if(Date.now()<n)try{return await t()}catch{return null}else{let a=await t();if(a===null)throw new Error("Failed to refresh access token.");return a}}let l=await r();for(;l===null;)await US(e),l=await r();return l}function qWn(t,e){let n=null,r=null,l,a=Object.assign(Object.assign({},Rml),e),s={get isRefreshing(){return n!==null},get shouldRefresh(){var I;return s.isRefreshing?!1:r?.refreshAfterTimestamp&&r.refreshAfterTimestamp<Date.now()?!0:((I=r?.expiresOnTimestamp)!==null&&I!==void 0?I:0)-a.refreshWindowInMs<Date.now()},get mustRefresh(){return r===null||r.expiresOnTimestamp-a.forcedRefreshWindowInMs<Date.now()}};function o(I,c){var d;return s.isRefreshing||(n=fml(()=>t.getToken(I,c),a.retryIntervalInMs,(d=r?.expiresOnTimestamp)!==null&&d!==void 0?d:Date.now()).then(b=>(n=null,r=b,l=c.tenantId,r)).catch(b=>{throw n=null,r=null,l=void 0,b})),n}return async(I,c)=>{let d=!!c.claims,u=l!==c.tenantId;return d&&(r=null),u||d||s.mustRefresh?o(I,c):(s.shouldRefresh&&o(I,c),r)}}var Rml,$Wn=W(()=>{N0();Rml={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2}});var eEn,tEn=W(()=>{xw();eEn=g0("keyvault-common")});function Yml(t,e){let n;try{n=new URL(t)}catch{throw new Error(`The challenge contains invalid scope '${t}'`)}if(!new URL(e.url).hostname.endsWith(`.${n.hostname}`))throw new Error(`The challenge resource '${n.hostname}' does not match the requested domain. Set disableChallengeResourceVerification to true in your client options to disable. See https://aka.ms/azsdk/blog/vault-uri for more information.`)}function nEn(t,e={}){let{disableChallengeResourceVerification:n}=e,r={status:"none"},l=qWn(t);function a(d){return{abortSignal:d.abortSignal,requestOptions:{timeout:d.timeout>0?d.timeout:void 0},tracingOptions:d.tracingOptions}}async function s(d){let u=a(d);switch(r.status){case"none":r={status:"started",originalBody:d.body},d.body=null;break;case"started":break;case"complete":{let b=await l(r.scopes,Object.assign(Object.assign({},u),{enableCae:!0,tenantId:r.tenantId}));b&&d.headers.set("authorization",`Bearer ${b.token}`);break}}}async function o(d,u,b){if(u.status!==401)return u;d.body===null&&r.status==="started"&&(d.body=r.originalBody);let p=a(d),A=u.headers.get("WWW-Authenticate");if(!A)return eEn.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),u;let Z=ugt(A),y=Z.resource?Z.resource+"/.default":Z.scope;if(!y)return u;n||Yml(y,d);let f=await l([y],Object.assign(Object.assign({},p),{enableCae:!0,tenantId:Z.tenantId}));return f?(d.headers.set("Authorization",`Bearer ${f.token}`),r={status:"complete",scopes:[y],tenantId:Z.tenantId},b(d)):u}async function I(d,u,b){if(r.status!=="complete"||u.status!==401)return u;let p=a(d),A=u.headers.get("WWW-Authenticate");if(!A)return u;let{claims:Z,error:y}=ugt(A);if(y!=="insufficient_claims"||Z===void 0)return u;let f=atob(Z),w=await l(r.scopes,Object.assign(Object.assign({},p),{enableCae:!0,tenantId:r.tenantId,claims:f}));return d.headers.set("Authorization",`Bearer ${w.token}`),b(d)}async function c(d,u){await s(d);let b=await u(d);return b=await o(d,b,u),b=await I(d,b,u),b}return{name:wml,sendRequest:c}}var wml,rEn=W(()=>{KWn();$Wn();tEn();wml="keyVaultAuthenticationPolicy"});function lEn(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 n;try{n=new URL(e)}catch{throw new Error(`Invalid ${t} identifier: ${e}. Not a valid URI`)}let r=(n.pathname||"").split("/");if(r.length!==3&&r.length!==4)throw new Error(`Invalid ${t} identifier: ${e}. Bad number of segments: ${r.length}`);if(t!==r[1])throw new Error(`Invalid ${t} identifier: ${e}. segment [1] should be "${t}", found "${r[1]}"`);let l=`${n.protocol}//${n.host}`,a=r[2],s=r.length===4?r[3]:void 0;return{vaultUrl:l,name:a,version:s}}var aEn=W(()=>{});var mgt=W(()=>{rEn();aEn()});var sEn=W(()=>{});var oEn=W(()=>{PAt()});var iEn=W(()=>{dgt();oEn()});function bgt(t){let n=t.split("/")[3];return Object.assign({sourceId:t},lEn(n,t))}var pgt=W(()=>{mgt()});function wN(t){let e=t,n=t,r=bgt(e.id),l=e.attributes;delete e.attributes;let a={value:e.value,name:r.name,properties:{expiresOn:l?.expires,createdOn:l?.created,updatedOn:l?.updated,enabled:l?.enabled,notBefore:l?.notBefore,recoverableDays:l?.recoverableDays,recoveryLevel:l?.recoveryLevel,id:e.id,contentType:e.contentType,tags:e.tags,managed:e.managed,vaultUrl:r.vaultUrl,version:r.version,name:r.name,certificateKeyId:e.kid}};return n.recoveryId&&(a.properties.recoveryId=n.recoveryId,a.properties.scheduledPurgeDate=n.scheduledPurgeDate,a.properties.deletedOn=n.deletedDate,a.recoveryId=n.recoveryId,a.scheduledPurgeDate=n.scheduledPurgeDate,a.deletedOn=n.deletedDate),l&&(l.vaultUrl&&delete a.properties.vaultUrl,l.expires&&delete a.properties.expires,l.created&&delete a.properties.created,l.updated&&delete a.properties.updated),a}function PLe(t,e,n){let r;return{async next(){r??(r=t(Object.assign(Object.assign({},e),{maxresults:void 0})));let l=await r.next();return Object.assign(Object.assign({},l),{value:l.value&&n(l.value)})},[Symbol.asyncIterator](){return this},byPage(l){return zS(this,arguments,function*(){var s,o,I,c;let d=t(Object.assign(Object.assign({},e),{maxresults:l?.maxPageSize})).byPage(l);try{for(var u=!0,b=ez(d),p;p=yield Eu(b.next()),s=p.done,!s;u=!0)c=p.value,u=!1,yield yield Eu(c.map(n))}catch(A){o={error:A}}finally{try{!u&&!s&&(I=b.return)&&(yield Eu(I.call(b)))}finally{if(o)throw o.error}}})}}}var jLe=W(()=>{Lne();pgt()});var KLe,hgt=W(()=>{KLe="4.10.0"});var bW,qLe=W(()=>{qXe();hgt();bW=qM({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:KLe})});var Ggt,$Le=W(()=>{xw();Ggt=g0("core-lro")});var e3e=W(()=>{});var t3e=W(()=>{$Le();e3e()});var Agt=W(()=>{t3e();$Le()});var IEn=W(()=>{t3e();e3e();N0()});var cEn=W(()=>{Agt();IEn()});var dEn=W(()=>{Agt();$Le()});var ggt,Zgt,AZe,Ngt=W(()=>{ggt=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},Zgt=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},AZe=class{constructor(e){this.resolveOnUnsuccessful=!1,this.stopped=!0,this.pollProgressCallbacks=[],this.operation=e,this.promise=new Promise((n,r)=>{this.resolve=n,this.reject=r}),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 n of this.pollProgressCallbacks)n(e)}async cancelOnce(e={}){this.operation=await this.operation.cancel(e)}poll(e={}){if(!this.pollOncePromise){this.pollOncePromise=this.pollOnce(e);let n=()=>{this.pollOncePromise=void 0};this.pollOncePromise.then(n,n).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 Zgt("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(n=>n!==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 ggt("This poller is already stopped")))}isStopped(){return this.stopped}cancelOperation(e={}){if(!this.cancelPromise)this.cancelPromise=this.cancelOnce(e);else if(e.abortSignal)throw new Error("A cancel request is currently pending");return this.cancelPromise}getOperationState(){return this.operation.state}getResult(){return this.operation.state.result}toString(){return this.operation.toString()}}});var uEn=W(()=>{dEn();e3e();Ngt();t3e()});var mEn=W(()=>{uEn()});var bEn=W(()=>{});var pEn=W(()=>{cEn();mEn();Ngt();bEn()});var sle,ole,gZe=W(()=>{pEn();N0();sle=class extends AZe{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return US(this.intervalInMs)}},ole=class{constructor(e,n={}){this.state=e,this.cancelMessage="",n.cancelMessage&&(this.cancelMessage=n.cancelMessage)}async update(){throw new Error("Operation not supported.")}async cancel(){throw new Error(this.cancelMessage)}toString(){return JSON.stringify({state:this.state})}}});var n3e,hEn=W(()=>{gZe();jLe();qLe();n3e=class extends ole{constructor(e,n,r={}){super(e,{cancelMessage:"Canceling the deletion of a secret is not supported."}),this.state=e,this.client=n,this.operationOptions=r}deleteSecret(e,n={}){return bW.withSpan("DeleteSecretPoller.deleteSecret",n,async r=>{let l=await this.client.deleteSecret(e,r);return wN(l)})}getDeletedSecret(e,n={}){return bW.withSpan("DeleteSecretPoller.getDeletedSecret",n,async r=>{let l=await this.client.getDeletedSecret(e,r);return wN(l)})}async update(e={}){let n=this.state,{name:r}=n;if(e.abortSignal&&(this.operationOptions.abortSignal=e.abortSignal),!n.isStarted){let l=await this.deleteSecret(r,this.operationOptions);n.isStarted=!0,n.result=l,l.properties.recoveryId||(n.isCompleted=!0)}if(!n.isCompleted)try{n.result=await this.getDeletedSecret(r,this.operationOptions),n.isCompleted=!0}catch(l){if(l.statusCode===403)n.isCompleted=!0;else if(l.statusCode!==404)throw n.error=l,n.isCompleted=!0,l}return this}}});var r3e,GEn=W(()=>{hEn();gZe();r3e=class extends sle{constructor(e){let{client:n,name:r,operationOptions:l,intervalInMs:a=2e3,resumeFrom:s}=e,o;s&&(o=JSON.parse(s).state);let I=new n3e(Object.assign(Object.assign({},o),{name:r}),n,l);super(I),this.intervalInMs=a}}});var l3e,AEn=W(()=>{gZe();jLe();qLe();l3e=class extends ole{constructor(e,n,r={}){super(e,{cancelMessage:"Canceling the recovery of a deleted secret is not supported."}),this.state=e,this.client=n,this.options=r}getSecret(e,n={}){return bW.withSpan("RecoverDeletedSecretPoller.getSecret",n,async r=>{let l=await this.client.getSecret(e,n&&n.version?n.version:"",r);return wN(l)})}recoverDeletedSecret(e,n={}){return bW.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",n,async r=>{let l=await this.client.recoverDeletedSecret(e,r);return wN(l)})}async update(e={}){let n=this.state,{name:r}=n;if(e.abortSignal&&(this.options.abortSignal=e.abortSignal),!n.isStarted){try{n.result=(await this.getSecret(r,this.options)).properties,n.isCompleted=!0}catch{}n.isCompleted||(n.result=(await this.recoverDeletedSecret(r,this.options)).properties,n.isStarted=!0)}if(!n.isCompleted)try{n.result=(await this.getSecret(r,this.options)).properties,n.isCompleted=!0}catch(l){if(l.statusCode===403)n.isCompleted=!0;else if(l.statusCode!==404)throw n.error=l,n.isCompleted=!0,l}return this}}});var a3e,gEn=W(()=>{AEn();gZe();a3e=class extends sle{constructor(e){let{client:n,name:r,operationOptions:l,intervalInMs:a=2e3,resumeFrom:s}=e,o;s&&(o=JSON.parse(s).state);let I=new l3e(Object.assign(Object.assign({},o),{name:r}),n,l);super(I),this.intervalInMs=a}}});var s3e,ZEn=W(()=>{Lne();gWn();dgt();mgt();sEn();iEn();pgt();jLe();qLe();u2();hgt();GEn();gEn();s3e=class{constructor(e,n,r={}){var l,a;this.vaultUrl=e;let s=Object.assign(Object.assign({},r),{userAgentOptions:{userAgentPrefix:`${(a=(l=r.userAgentOptions)===null||l===void 0?void 0:l.userAgentPrefix)!==null&&a!==void 0?a:""} azsdk-js-keyvault-secrets/${KLe}`},apiVersion:r.serviceVersion||"7.6",loggingOptions:{logger:AWn.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new GZe(this.vaultUrl,n,s),this.client.pipeline.removePolicy({name:mke}),this.client.pipeline.addPolicy(nEn(n,r),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(o,I){var c;return((c=o.headers.get("Content-Type"))!==null&&c!==void 0?c:"").startsWith("application/json")&&o.headers.set("Content-Type","application/json"),I(o)}})}setSecret(e,n,r={}){let{enabled:l,notBefore:a,expiresOn:s,tags:o}=r,I=Ige(r,["enabled","notBefore","expiresOn","tags"]);return bW.withSpan("SecretClient.setSecret",I,async c=>{let d=await this.client.setSecret(e,{value:n,secretAttributes:{enabled:l,notBefore:a,expires:s},tags:o},c);return wN(d)})}async beginDeleteSecret(e,n={}){let r=new r3e(Object.assign(Object.assign({name:e,client:this.client},n),{operationOptions:n}));return await r.poll(),r}async updateSecretProperties(e,n,r={}){let{enabled:l,notBefore:a,expiresOn:s,tags:o}=r,I=Ige(r,["enabled","notBefore","expiresOn","tags"]);return bW.withSpan("SecretClient.updateSecretProperties",I,async c=>{let d=await this.client.updateSecret(e,n,{secretAttributes:{enabled:l,notBefore:a,expires:s},tags:o},c);return wN(d).properties})}getSecret(e,n={}){return bW.withSpan("SecretClient.getSecret",n,async r=>{let l=await this.client.getSecret(e,n&&n.version?n.version:"",r);return wN(l)})}getDeletedSecret(e,n={}){return bW.withSpan("SecretClient.getDeletedSecret",n,async r=>{let l=await this.client.getDeletedSecret(e,r);return wN(l)})}purgeDeletedSecret(e,n={}){return bW.withSpan("SecretClient.purgeDeletedSecret",n,async r=>{await this.client.purgeDeletedSecret(e,r)})}async beginRecoverDeletedSecret(e,n={}){let r=new a3e(Object.assign(Object.assign({name:e,client:this.client},n),{operationOptions:n}));return await r.poll(),r}backupSecret(e,n={}){return bW.withSpan("SecretClient.backupSecret",n,async r=>(await this.client.backupSecret(e,r)).value)}restoreSecretBackup(e,n={}){return bW.withSpan("SecretClient.restoreSecretBackup",n,async r=>{let l=await this.client.restoreSecret({secretBundleBackup:e},r);return wN(l).properties})}listPropertiesOfSecretVersions(e,n={}){return PLe(r=>this.client.getSecretVersions(e,r),n,r=>wN(r).properties)}listPropertiesOfSecrets(e={}){return PLe(this.client.getSecrets.bind(this.client),e,n=>wN(n).properties)}listDeletedSecrets(e={}){return PLe(this.client.getDeletedSecrets.bind(this.client),e,wN)}}});function Wgt(t,e){let n=t.api?.copilot?.azureKeyVaultUri;return Egt(n,e)}function Egt(t,e){return new ygt(t,e)}var ygt,o3e=W(()=>{"use strict";Cke();ZEn();ygt=class{client;logger;constructor(e,n){if(this.logger=n,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let r=new SF;this.client=new s3e(e,r)}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(n){if(this.logger.warning(`Error fetching secret ${e}: ${n}`),n?.code==="SecretNotFound")return;throw n}}}});import{createHmac as Hml}from"crypto";var i3e,NEn=W(()=>{"use strict";i3e=class t{static encode(e){let n=t.hmacGetBytes(e),s=(Math.floor(Date.now()/1e3)+30).toString(),o=Buffer.from(s,"ascii"),d=Hml("sha256",n).update(o).digest().toString("hex").toUpperCase();return`${s}.${d}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}}});import{readFileSync as Xml}from"fs";import{dirname as kml,join as Rgt}from"path";import{fileURLToPath as xml}from"url";function fgt(){return R2().version}function R2(){if(ZZe!==null)return ZZe;try{let t=xml(import.meta.url),e=kml(t),n=[Rgt(e,"package.json"),Rgt(e,"../package.json"),Rgt(e,"../../package.json")];for(let l of n)try{let a=JSON.parse(Xml(l,"utf8")),s={name:a.name||"unknown",version:a.version||"unknown",buildMetadata:a.buildMetadata};return ZZe=s,s}catch{continue}let r={name:"unknown",version:"unknown"};return ZZe=r,r}catch{let e={name:"unknown",version:"unknown"};return ZZe=e,e}}function Lml(t){return t.replace(/^@.*\//,"")}function ile(t){let e=R2(),n=Lml(e.name),r=t?.clientName?`client/${t.clientName} `:"";return`${n}/${e.version} (${r}${process.platform} ${process.version})`}var ZZe,ov=W(()=>{"use strict";ZZe=null});var Jml,Sml,yEn,SB,Ile,Dz,zz=W(()=>{"use strict";uZe();o3e();Wy();vX();xA();NEn();Ra();ov();Jml="X-GitHub-Api-Version",Sml="2025-05-01",yEn=["https://api.enterprise.githubcopilot.com","https://api.business.githubcopilot.com","https://api.individual.githubcopilot.com"],SB=class t extends xa{constructor(n,r,l,a,s){let o=s?void 0:ice()?"debug":"info";super({baseURL:n,apiKey:"",logLevel:o});this.headers=r;this.runnerLogger=l;this.hmacKey=a}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[Jml]:Sml};hmacKey;additionalHeaders={};static createWithOAuthToken(n,r,l,a,s,o,I,c){let d={...this.defaultHeaders(l,s,c),Authorization:`Bearer ${a}`,...o??{}};return n.debug(`Creating copilot-client for integration ID ${l} with token authentication. User-agent: ${d["User-Agent"]}`),new t(r,d,n,void 0,I)}static createWithHmac(n,r,l,a,s,o,I,c,d){let u={...this.defaultHeaders(l,s,d),Authorization:"",...I??{}};return o&&(u["X-GitHub-User"]=o),n.debug(`Creating copilot-client for integration ID ${l} with key authentication. User-agent: ${u["User-Agent"]}`),new t(r,u,n,a,c)}static defaultHeaders(n,r,l){return{...t.baseHeaders,"Copilot-Integration-Id":n,"X-Interaction-Id":r,"User-Agent":ile(l)}}async prepareOptions(n){this.hmacKey&&(this.headers["Request-HMAC"]=i3e.encode(this.hmacKey)),n.headers={...this.headers,...this.additionalHeaders,...n.headers},await super.prepareOptions(n)}setInitiatorHeader(n){this.headers["X-Initiator"]=n}setAdditionalHeaders(n){this.additionalHeaders=n}async listModels(){let n={method:"get",path:""};await this.prepareOptions(n);let r={};if(n.headers)for(let[a,s]of Object.entries(n.headers))typeof s=="string"&&(r[a]=s);let l=[this.baseURL];if(yEn.includes(this.baseURL))for(let a of yEn)a!==this.baseURL&&l.push(a);for(let a of l){let s=`${a}/models`,o=await fetch(s,{method:n.method,headers:r});if(o.ok){let I=await o.json();return this.runnerLogger.debug(`Successfully listed ${I.data.length} models`),I.data}if(o.status===421){this.runnerLogger.debug(`Failed to list models due to subscription-based route ${a}: ${o.status} ${o.statusText}: ${await o.text()}`);continue}return this.runnerLogger.error(`Failed to list models due to non-retryable error: ${o.status} ${o.statusText}: ${await o.text()}`),[]}return this.runnerLogger.error("Failed to list models"),[]}},Ile=class{async createClient(e,n,r){n.startGroup("configured settings:",8),n.debug(JSON.stringify(e,null,2)),n.endGroup(8);let l=e.api?.copilot?.token,a=e.api?.copilot?.hmacKey,s=!!(a||l);if(!s){n.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let u=Wgt(e,n);try{a=await u.getSecret("capi-hmac-key")}catch(b){n.debug(`Failed to get Copilot HMAC key from secret provider:
|
|
1182
1182
|
${Ft(b)}`)}try{l=await u.getSecret("capi-token")}catch(b){n.debug(`Failed to get Copilot GitHub OAuth token from secret provider:
|
|
1183
|
-
${Ft(b)}`)}s=!!(a||l)}let o,I=x8e(e),c=S8(e),d=e.api?.copilot?.sessionId??XX(e);if(n.debug(`Using Copilot API at ${I} with integration ID ${c}`),l&&(n.debug("Using GitHub OAuth token for Copilot API"),o=SB.createWithOAuthToken(n,I,c,l,d,r?.requestHeaders,r?.disableHttpLogging,e)),a){n.debug("Using Copilot HMAC key for Copilot API");let u=process.env.GITHUB_USER_ID;u?n.debug(`Using user ID ${u} for Copilot HMAC key`):n.debug("No user ID provided for Copilot HMAC key"),o=SB.createWithHmac(n,I,c,a,d,u,r?.requestHeaders,r?.disableHttpLogging,e)}if(o===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return o}},Dz=class t extends zu{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.cause=e.cause,this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof zu)))return new t(e)}}});function Tml(t){let e=t,n=!1;for(;e;){if(typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"&&(e instanceof TypeError&&e.message.includes("terminated")&&(n=!0),"name"in e&&e.name==="TypeError"&&e.message.includes("terminated")&&(n=!0),e.message.includes("GOAWAY")||e.message.includes("UND_ERR_SOCKET")))return!0;e=typeof e=="object"&&e!==null&&"cause"in e?e.cause:void 0}return n}function Oml(t){let e=new xa.APIError(503,{error:{message:"HTTP/2 GOAWAY connection terminated",type:"connection_error"}},"HTTP/2 GOAWAY connection terminated",new Headers);return e.cause=t,e}function _ml(t){let e=0;return t.choices?.forEach(n=>{e+=new TextEncoder().encode(n.delta?.content??"").length,n.delta?.tool_calls?.forEach(r=>{r.function&&(e+=new TextEncoder().encode(r.function.name).length,e+=new TextEncoder().encode(r.function.arguments??"").length)})}),e}function Uml(t,e){let n=new Map,r=new Set;return new MR(async function*(){for await(let l of t)l.choices?.forEach(a=>{if(a.delta){let o=!!(a.delta.content||a.delta.tool_calls?.length||a.delta.refusal),I=!r.has(a.index);!a.delta.role&&(o||I)&&(a.delta.role="assistant",r.add(a.index))}if(!!a.delta?.tool_calls?.length){a.delta&&!a.delta.role&&(a.delta.role="assistant",r.add(a.index)),a.finish_reason??="tool_calls";let o=n.get(a.index);o||(o={nextSequenceNumber:0,mappings:new Map},n.set(a.index,o)),a.delta.tool_calls?.forEach(I=>{let c=o.mappings.get(I.index);if(c!==void 0)I.id&&c.callId!==I.id&&(c.sequenceNumber=o.nextSequenceNumber++,c.callId=I.id),I.index=c.sequenceNumber;else{let d={callId:I.id,sequenceNumber:o.nextSequenceNumber++};o.mappings.set(I.index,d),I.index=d.sequenceNumber}})}}),yield l},t.controller,e)}function Mml(t,e){t.forEach(n=>{n.function.name=n.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_");try{NB(n.function.arguments)}catch(r){if(r instanceof SyntaxError){let l=n.function.name,a=n.function.arguments;e.set(n.id,{textResultForLlm:`The arguments for the tool call '${l}' were not valid JSON. The arguments have been cleared. Arguments: ${a}. JSON parse error: ${r.message}`,resultType:"failure",error:`${r.message}`,sessionLog:`<error>Failed to execute \`${l}\` tool with arguments: ${a} due to syntax error: ${r.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}}),n.function.arguments="{}"}}})}var Bml,BB,I3e=W(()=>{"use strict";uZe();IWn();fLe();JAt();_Q();mZe();Ra();J0e();Hw();Ate();Wy();jg();Dp();xte();BAt();GWn();zz();dte();yJ();Bml={type:"ephemeral"};BB=class t{constructor(e,n,r,l){this.settings=n;this.logger=r;this.clientOptions=t.initDefaultOptions(l),r.info(" "),r.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(n,r,l),this.modelPromise=this.clientPromise.then(async()=>{let a=await this.getModel();return r.debug(`Got model info: ${JSON.stringify(a,null,2)}`),a})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||OLe["sweagent-capi"],toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??180}},thinkingMode:e?.thinkingMode??!1,requestHeaders:e?.requestHeaders??{},disableHttpLogging:e?.disableHttpLogging??!1,enableCacheControl:e?.enableCacheControl??!1}}getCompletionOptions(e,n){let r={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:n?.toolChoice,...r}}makeRequest(e,n,r,l,a,s,o){return e.chat.completions.create({model:n,messages:[...r],...l,tools:a},{maxRetries:s,headers:o?.requestHeaders,signal:o?.abortSignal}).withResponse()}async makeRequestStreaming(e,n,r,l,a,s,o){let I=Date.now(),c=await e.chat.completions.create({model:n,messages:[...r],...l,tools:a,stream:!0,stream_options:{include_usage:!0}},{maxRetries:s,headers:o?.requestHeaders,signal:o?.abortSignal}).withResponse(),d=Uml(c.data,e).toReadableStream(),u=ik.fromReadableStream(d),b=o?.processors?.onStreamingChunk,p,A,Z,y=0,f=0;if(b?.length){let w=Fc();for await(let Q of u){o?.abortSignal?.throwIfAborted();let H=Date.now();if(p===void 0)p=H-I;else if(Z!==void 0){let T=H-Z;f+=T,y++}Z=H;let S=Q.choices?.[0],_={content:S?.delta?.content??void 0,reportIntentArguments:void 0,size:_ml(Q),streamingId:w};if(S?.delta?.tool_calls){for(let T of S.delta.tool_calls)if(T.function?.name===yF&&T.function?.arguments){_.reportIntentArguments=T.function.arguments;break}}if(_.content||_.reportIntentArguments||_.size>0)for(let T of b)T.onStreamingChunk(_)}}return y>0&&(A=f/y),{data:await u.finalChatCompletion(),response:c.response,request_id:c.request_id,ttftMs:p,interTokenLatencyMs:A}}async*getCompletionWithTools(e,n,r,l){let a=this.model,s=await this.clientPromise,o=await this.modelPromise,I=Mne(r),c=this.clientOptions.enableCacheControl?Bml:void 0,d=[{role:"system",content:e,copilot_cache_control:c},...n.map(y=>Gte(y))],u=r.map((y,f)=>({type:"function",function:{name:y.name,description:y.description,parameters:y.input_schema},copilot_cache_control:f===r.length-1?c: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(l??{},null,2)),this.logger.debug("Tools: "),this.logger.debug(JSON.stringify(u,null,2)),this.logger.endGroup(8);let b=this.getCompletionOptions(r,l),p=l?.initialTurnCount!==void 0?l.initialTurnCount+1:0,A=!1,Z=!1;for(;!A&&!Z;){let y=Date.now();yield{kind:"turn_started",model:a,modelInfo:o,turn:p,timestampMs:y};let f=0,w=0,Q=0,H=[429,503,500,400],S=this.clientOptions.retryPolicy.maxRetries,_=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,T=0,M=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,B,z;try{let P=[],me;do{Q>0&&(yield{kind:"turn_retry",model:a,modelInfo:o,turn:p,timestampMs:Date.now()});try{let D={};for(let be of l?.processors?.preRequest||[]){let ue=be.preRequest({turn:p,retry:Q,messages:d,toolDefinitions:u,modelInfo:o,additionalRequestHeaders:D,getCompletionWithToolsOptions:l});for await(let Pe of ue)yield Pe}if(this.logger.startGroup("Sending request to the AI model",8),Dc(this.settings,"copilot_swe_agent_request_logging")){let be=JSON.stringify(d,null,2),ue=JSON.stringify(b,null,2);this.logger.debug(`Request messages: ${be}`),this.logger.debug(`Request options: ${ue}`)}P=d.map((be,ue)=>ue===d.length-1?{...be,copilot_cache_control:c}:be),f=Date.now(),s.setAdditionalHeaders(D);let he;l?.stream?he=await this.makeRequestStreaming(s,a,P,b,u,S,l):he=await this.makeRequest(s,a,P,b,u,S,l),w=Date.now()-f,B=he.data,me={model:a,api_id:B.id,request_id:he.response.headers.get("x-github-request-id")||void 0,initiator:l?.requestHeaders?.["X-Initiator"]||D["X-Initiator"]};let ce={};he.response.headers.forEach((be,ue)=>{if(ue.toLowerCase().startsWith(TAt)){let Pe=hWn(be);Pe&&(ce[ue.replace(TAt,"")]=Pe)}}),yield{kind:"model_call_success",turn:p,callId:l?.callId,modelCallDurationMs:w,ttftMs:he.ttftMs,interTokenLatencyMs:he.interTokenLatencyMs,modelCall:me,responseChunk:KHe(B),responseUsage:B.usage,requestMessages:JSON.stringify(P),quotaSnapshots:ce},this.logger.debug(`response (Request-ID ${he.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(he.data,null,2))}catch(D){w=Date.now()-f;let he=D;Tml(D)&&(he=Oml(D));let be=Dz.fromAPIError(he),ue=be?.error;if(be){yield{kind:"model_call_failure",turn:p,callId:l?.callId,modelCallDurationMs:w,requestMessages:JSON.stringify(P),modelCall:{model:a,status:be.status,error:JSON.stringify(be?.error||be?.message||"unknown error"),api_id:be.requestID||void 0,request_id:be.headers?.get("x-github-request-id")||""}},z=be;let ye=be.ghRequestId||be.headers?.get("x-github-request-id")||be.requestID;this.logger.error(`error (Request-ID ${ye})`),this.logger.error(JSON.stringify(Mz(be),null,2)),this.logger.debug(`Failed to get response from the AI model: ${Ft(be)}`),ue&&this.logger.debug(`Inner error: ${JSON.stringify(Mz(ue),null,2)}`);let Ae;for(let ft of l?.processors?.onRequestError||[])Ae=await ft.onRequestError({turn:p,retry:Q,maxRetries:S,error:ue,modelInfo:o,getCompletionWithToolsOptions:l})||Ae;let de=be.status,Ne=de?this.clientOptions.retryPolicy.errorCodesToRetry.some(ft=>Array.isArray(ft)?de>=ft[0]&&(ft[1]===void 0||de<=ft[1]):de===ft):!1,ke;if(Ae)ke=Ae.retryAfter;else if(be.status!==402){if(be.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let ft=0;for(let Ke=d.length-1;Ke>=0;Ke--)uF(d[Ke])&&(d.splice(Ke,1),ft++,yield{kind:"images_removed",turn:p,imagesRemoved:1,largeImagesRemoved:1});ft>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${Xw(o.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${ft} image messages from the request`),ke=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof be.status=="number"&&H.includes(be.status)||Ne)&&(ke=parseInt(be.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+_,_*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,Q==S-1))for(let ft=d.length-1;ft>=0;ft--)uF(d[ft])&&(this.logger.debug(`Removing image message at index ${ft} to avoid failure`),d.splice(ft,1),yield{kind:"images_removed",turn:p,imagesRemoved:1})}if(ke!==void 0&&ke<=M){let ft=.8+Math.random()*.4,Ke=ke*ft;this.logger.debug(`Retrying after ${Ke} seconds...`),await new Promise(et=>setTimeout(et,Ke*1e3)),T+=Ke,this.logger.debug(`Retrying after ${ke} seconds... Will try again now!`);continue}else ke?this.logger.error(`Retry after ${ke} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let Pe=be||D;for(let ye of l?.processors?.onRequestError||[])await ye.preErrorThrow(D);throw this.logger.error("error"),this.logger.error(JSON.stringify(Mz(Pe),null,2)),Pe}finally{s.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!B&&Q++<S);if(!B){this.logger.debug("Recent messages prior to failure:");for(let he=Math.max(0,d.length-6);he<d.length;he++)this.logger.debug(`${he}: ${JSON.stringify(d[he],null,2)}`);let D=new Error(`Failed to get response from the AI model; retried ${Q-1} times (total retry wait time: ${T} seconds)`,{cause:z});throw this.isRateLimitExceededError(D)&&(this.logger.info(`Rate limit exceeded after ${Q-1} retries, will fail job but skip Sentry reporting`),D.skipReport=!0),D}let Ve=new Map,O=B.choices||[];if(O.length===0){let D={role:"assistant",content:null,refusal:null};d.push(D),yield{kind:"message",turn:p,callId:l?.callId,modelCall:me,message:Gte(TM(D))}}else for(let D of O.map(he=>he.message))D.tool_calls&&Mml(D.tool_calls,Ve),d.push(D),yield{kind:"message",turn:p,callId:l?.callId,modelCall:me,message:Gte(TM(D))};if(this.isToolCallResponse(B)){let he=(o.capabilities.limits.max_prompt_tokens||o.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,ce=WEn(a,he,this,this.settings,l?.abortSignal),ue=B.choices.filter(Ae=>Ae.message.tool_calls!==void 0).flatMap(Ae=>Ae.message.tool_calls||[]).filter(s0);for(let Ae of l?.processors?.preToolsExecution||[]){let de=await Ae.preToolsExecution({turn:p,toolCalls:ue,modelInfo:o});if(de)for(let[Ne,ke]of de)Ve.set(Ne,ke)}let Pe=ue.filter(Ae=>!Ve.has(Ae.id)),ye=this.mergeToolResults(Ve,ue,Pe,I,ce,l?.executeToolsInParallel,l?.abortSignal);for await(let Ae of ye){Ae.toolResult.resultType==="rejected"&&(Z=!0);let de={role:"tool",tool_call_id:Ae.originalCall.id,content:Ae.toolResult.textResultForLlm};d.push(de),yield{kind:"message",turn:p,callId:l?.callId,modelCall:me,message:Gte(de)},yield{kind:"tool_execution",turn:p,callId:l?.callId,toolCallId:Ae.originalCall.id,toolResult:Ae.toolResult,durationMs:Ae.durationMs};for(let Ne of l?.processors?.postToolExecution||[])await Ne.postToolExecution({toolCall:Ae.originalCall,toolResult:Ae.toolResult,turn:p,modelInfo:o})}}else for(let D of B.choices.map(he=>he.message))yield{kind:"response",turn:p,callId:l?.callId,modelCall:{model:a,api_id:B.id},response:Gte(TM(D))},A=!0}catch(P){let me;throw P instanceof Error&&P.cause&&P.cause instanceof Dz?me=`${Ft(P)} (Cause: ${Ft(P.cause)})`:me=`${Ft(P)}`,P instanceof TypeError&&me.includes("terminated")&&(this.logger.error(`Model call terminated unexpectedly during turn ${p}`),this.logger.error(`Serialized error: ${JSON.stringify(Mz(P),null,2)}`)),yield{kind:"turn_failed",model:a,modelInfo:o,turn:p,error:me,timestampMs:Date.now()},P}finally{let P=Date.now();yield{kind:"turn_ended",model:a,modelInfo:o,turn:p,timestampMs:P},p++}}}async*mergeToolResults(e,n,r,l,a,s=!1,o){for(let[I,c]of e){let d=n.find(u=>u.id===I);d&&(yield{durationMs:0,originalCall:d,toolResult:c})}r.length>0&&(yield*this.callTools(r,l,a,s,o))}async*callTools(e,n,r,l=!1,a){if(e.length===0)throw new Error("Tool call is missing");this.logger.debug(`Tool calls count: ${e.length}`);let s=e.some(I=>{let c=n[I.function.name];return LB(c)}),o=l&&!s;if(s&&l&&this.logger.debug("Custom agent detected in tool calls, forcing sequential execution"),o)this.logger.debug("Running tool calls in parallel"),yield*yln(e.map(I=>()=>this.callTool(I,n,r)),a);else{this.logger.debug("Running tool calls sequentially");for(let I of e)a?.throwIfAborted(),yield await this.callTool(I,n,r)}}async callTool(e,n,r){let l=0,a=e?.function.name;if(!a)throw new Error("Tool name is missing");let s=e?.function.arguments;if(s==null)throw new Error("Tool call arguments are missing");let o=e?.id;if(!o)throw new Error("Tool call id is missing");let I,c=n[a];try{let d=NB(s);if(!c||!c.callback)I={textResultForLlm:`Tool '${a}' does not exist. Available tools that can be called are ${Object.keys(n).join(", ")}.`,resultType:"failure",error:`Tool '${a}' does not exist.`,sessionLog:`<error>Tool '${a}' does not exist.</error>`,toolTelemetry:{}};else{let u=c.callback,b=Date.now(),p={...r,toolCallId:o,toolOptions:this.settings.service?.tools?.[a]},A=await u({...d},p);l=Date.now()-b,I=typeof A=="string"?{textResultForLlm:A,resultType:"success",toolTelemetry:{}}:A}}catch(d){I={textResultForLlm:`Failed to execute \`${a}\` tool with arguments: ${s} due to error: ${Ft(d)}`,resultType:"failure",error:d instanceof Error?d.message:`${Ft(d)}`,sessionLog:`<error>Failed to execute \`${a}\` tool with arguments: ${s}</error>`,toolTelemetry:{}}}return{durationMs:l,originalCall:e,toolResult:I}}isToolCallResponse(e){return e.choices.find(n=>n.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 Dz)return e.cause.status===429}return!1}async getModel(){let e=this.clientOptions.model,n={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)||n}}});var c3e,EEn=W(()=>{"use strict";I3e();zz();c3e=class extends BB{constructor(e,n,r){let l=new Ile;super(l,e,n,r)}}});var cle,Ygt=W(()=>{"use strict";_Q();Hw();xte();I3e();cle=class extends BB{makeResponsesRequest(e,n,r,l,a,s,o,I){let c=r.find(Z=>Z.role==="system")?.content||"",d=Array.isArray(c)?c.join(`
|
|
1183
|
+
${Ft(b)}`)}s=!!(a||l)}let o,I=x8e(e),c=S8(e),d=e.api?.copilot?.sessionId??XX(e);if(n.debug(`Using Copilot API at ${I} with integration ID ${c}`),l&&(n.debug("Using GitHub OAuth token for Copilot API"),o=SB.createWithOAuthToken(n,I,c,l,d,r?.requestHeaders,r?.disableHttpLogging,e)),a){n.debug("Using Copilot HMAC key for Copilot API");let u=process.env.GITHUB_USER_ID;u?n.debug(`Using user ID ${u} for Copilot HMAC key`):n.debug("No user ID provided for Copilot HMAC key"),o=SB.createWithHmac(n,I,c,a,d,u,r?.requestHeaders,r?.disableHttpLogging,e)}if(o===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return o}},Dz=class t extends zu{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.cause=e.cause,this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof zu)))return new t(e)}}});function Tml(t){let e=t,n=!1;for(;e;){if(typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"&&(e instanceof TypeError&&e.message.includes("terminated")&&(n=!0),"name"in e&&e.name==="TypeError"&&e.message.includes("terminated")&&(n=!0),e.message.includes("GOAWAY")||e.message.includes("UND_ERR_SOCKET")))return!0;e=typeof e=="object"&&e!==null&&"cause"in e?e.cause:void 0}return n}function Oml(t){let e=new xa.APIError(503,{error:{message:"HTTP/2 GOAWAY connection terminated",type:"connection_error"}},"HTTP/2 GOAWAY connection terminated",new Headers);return e.cause=t,e}function _ml(t){let e=0;return t.choices?.forEach(n=>{e+=new TextEncoder().encode(n.delta?.content??"").length,n.delta?.tool_calls?.forEach(r=>{r.function&&(e+=new TextEncoder().encode(r.function.name).length,e+=new TextEncoder().encode(r.function.arguments??"").length)})}),e}function Uml(t,e,n){let r=new Map,l=new Set;return new MR(async function*(){for await(let a of t)a.choices?.forEach(s=>{if(s.delta){let I=!!(s.delta.content||s.delta.tool_calls?.length||s.delta.refusal),c=!l.has(s.index);!s.delta.role&&(I||c)&&(s.delta.role="assistant",l.add(s.index))}if(!!s.delta?.tool_calls?.length){s.delta&&!s.delta.role&&(s.delta.role="assistant",l.add(s.index)),s.finish_reason??="tool_calls";let I=r.get(s.index);I||(I={nextSequenceNumber:0,mappings:new Map},r.set(s.index,I)),s.delta.tool_calls?.forEach(c=>{let d=I.mappings.get(c.index);if(d!==void 0)c.id&&d.callId!==c.id&&(d.sequenceNumber=I.nextSequenceNumber++,d.callId=c.id),c.index=d.sequenceNumber;else{let u={callId:c.id,sequenceNumber:I.nextSequenceNumber++};I.mappings.set(c.index,u),c.index=u.sequenceNumber}})}}),a.choices?.some(s=>!s.finish_reason)&&n.debug(`Chunk received with choices missing finish_reason: ${JSON.stringify(a,null,2)}`),yield a},t.controller,e)}function Mml(t,e){t.forEach(n=>{n.function.name=n.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_");try{NB(n.function.arguments)}catch(r){if(r instanceof SyntaxError){let l=n.function.name,a=n.function.arguments;e.set(n.id,{textResultForLlm:`The arguments for the tool call '${l}' were not valid JSON. The arguments have been cleared. Arguments: ${a}. JSON parse error: ${r.message}`,resultType:"failure",error:`${r.message}`,sessionLog:`<error>Failed to execute \`${l}\` tool with arguments: ${a} due to syntax error: ${r.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}}),n.function.arguments="{}"}}})}var Bml,BB,I3e=W(()=>{"use strict";uZe();IWn();fLe();JAt();_Q();mZe();Ra();J0e();Hw();Ate();Wy();jg();Dp();xte();BAt();GWn();zz();dte();yJ();Bml={type:"ephemeral"};BB=class t{constructor(e,n,r,l){this.settings=n;this.logger=r;this.clientOptions=t.initDefaultOptions(l),r.info(" "),r.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(n,r,l),this.modelPromise=this.clientPromise.then(async()=>{let a=await this.getModel();return r.debug(`Got model info: ${JSON.stringify(a,null,2)}`),a})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||OLe["sweagent-capi"],toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??180}},thinkingMode:e?.thinkingMode??!1,requestHeaders:e?.requestHeaders??{},disableHttpLogging:e?.disableHttpLogging??!1,enableCacheControl:e?.enableCacheControl??!1}}getCompletionOptions(e,n){let r={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:n?.toolChoice,...r}}makeRequest(e,n,r,l,a,s,o){return e.chat.completions.create({model:n,messages:[...r],...l,tools:a},{maxRetries:s,headers:o?.requestHeaders,signal:o?.abortSignal}).withResponse()}async makeRequestStreaming(e,n,r,l,a,s,o){let I=Date.now(),c=await e.chat.completions.create({model:n,messages:[...r],...l,tools:a,stream:!0,stream_options:{include_usage:!0}},{maxRetries:s,headers:o?.requestHeaders,signal:o?.abortSignal}).withResponse(),d=Uml(c.data,e,this.logger).toReadableStream(),u=ik.fromReadableStream(d),b=o?.processors?.onStreamingChunk,p,A,Z,y=0,f=0;if(b?.length){let w=Fc();for await(let Q of u){o?.abortSignal?.throwIfAborted();let H=Date.now();if(p===void 0)p=H-I;else if(Z!==void 0){let T=H-Z;f+=T,y++}Z=H;let S=Q.choices?.[0],_={content:S?.delta?.content??void 0,reportIntentArguments:void 0,size:_ml(Q),streamingId:w};if(S?.delta?.tool_calls){for(let T of S.delta.tool_calls)if(T.function?.name===yF&&T.function?.arguments){_.reportIntentArguments=T.function.arguments;break}}if(_.content||_.reportIntentArguments||_.size>0)for(let T of b)T.onStreamingChunk(_)}}return y>0&&(A=f/y),{data:await u.finalChatCompletion(),response:c.response,request_id:c.request_id,ttftMs:p,interTokenLatencyMs:A}}async*getCompletionWithTools(e,n,r,l){let a=this.model,s=await this.clientPromise,o=await this.modelPromise,I=Mne(r),c=this.clientOptions.enableCacheControl?Bml:void 0,d=[{role:"system",content:e,copilot_cache_control:c},...n.map(y=>Gte(y))],u=r.map((y,f)=>({type:"function",function:{name:y.name,description:y.description,parameters:y.input_schema},copilot_cache_control:f===r.length-1?c: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(l??{},null,2)),this.logger.debug("Tools: "),this.logger.debug(JSON.stringify(u,null,2)),this.logger.endGroup(8);let b=this.getCompletionOptions(r,l),p=l?.initialTurnCount!==void 0?l.initialTurnCount+1:0,A=!1,Z=!1;for(;!A&&!Z;){let y=Date.now();yield{kind:"turn_started",model:a,modelInfo:o,turn:p,timestampMs:y};let f=0,w=0,Q=0,H=[429,503,500,400],S=this.clientOptions.retryPolicy.maxRetries,_=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,T=0,M=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,B,z;try{let P=[],me;do{Q>0&&(yield{kind:"turn_retry",model:a,modelInfo:o,turn:p,timestampMs:Date.now()});try{let D={};for(let be of l?.processors?.preRequest||[]){let ue=be.preRequest({turn:p,retry:Q,messages:d,toolDefinitions:u,modelInfo:o,additionalRequestHeaders:D,getCompletionWithToolsOptions:l});for await(let Pe of ue)yield Pe}if(this.logger.startGroup("Sending request to the AI model",8),Dc(this.settings,"copilot_swe_agent_request_logging")){let be=JSON.stringify(d,null,2),ue=JSON.stringify(b,null,2);this.logger.debug(`Request messages: ${be}`),this.logger.debug(`Request options: ${ue}`)}P=d.map((be,ue)=>ue===d.length-1?{...be,copilot_cache_control:c}:be),f=Date.now(),s.setAdditionalHeaders(D);let he;l?.stream?he=await this.makeRequestStreaming(s,a,P,b,u,S,l):he=await this.makeRequest(s,a,P,b,u,S,l),w=Date.now()-f,B=he.data,me={model:a,api_id:B.id,request_id:he.response.headers.get("x-github-request-id")||void 0,initiator:l?.requestHeaders?.["X-Initiator"]||D["X-Initiator"]};let ce={};he.response.headers.forEach((be,ue)=>{if(ue.toLowerCase().startsWith(TAt)){let Pe=hWn(be);Pe&&(ce[ue.replace(TAt,"")]=Pe)}}),yield{kind:"model_call_success",turn:p,callId:l?.callId,modelCallDurationMs:w,ttftMs:he.ttftMs,interTokenLatencyMs:he.interTokenLatencyMs,modelCall:me,responseChunk:KHe(B),responseUsage:B.usage,requestMessages:JSON.stringify(P),quotaSnapshots:ce},this.logger.debug(`response (Request-ID ${he.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(he.data,null,2))}catch(D){w=Date.now()-f;let he=D;Tml(D)&&(he=Oml(D));let be=Dz.fromAPIError(he),ue=be?.error;if(be){yield{kind:"model_call_failure",turn:p,callId:l?.callId,modelCallDurationMs:w,requestMessages:JSON.stringify(P),modelCall:{model:a,status:be.status,error:JSON.stringify(be?.error||be?.message||"unknown error"),api_id:be.requestID||void 0,request_id:be.headers?.get("x-github-request-id")||""}},z=be;let ye=be.ghRequestId||be.headers?.get("x-github-request-id")||be.requestID;this.logger.error(`error (Request-ID ${ye})`),this.logger.error(JSON.stringify(Mz(be),null,2)),this.logger.debug(`Failed to get response from the AI model: ${Ft(be)}`),ue&&this.logger.debug(`Inner error: ${JSON.stringify(Mz(ue),null,2)}`);let Ae;for(let ft of l?.processors?.onRequestError||[])Ae=await ft.onRequestError({turn:p,retry:Q,maxRetries:S,error:ue,modelInfo:o,getCompletionWithToolsOptions:l})||Ae;let de=be.status,Ne=de?this.clientOptions.retryPolicy.errorCodesToRetry.some(ft=>Array.isArray(ft)?de>=ft[0]&&(ft[1]===void 0||de<=ft[1]):de===ft):!1,ke;if(Ae)ke=Ae.retryAfter;else if(be.status!==402){if(be.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let ft=0;for(let Ke=d.length-1;Ke>=0;Ke--)uF(d[Ke])&&(d.splice(Ke,1),ft++,yield{kind:"images_removed",turn:p,imagesRemoved:1,largeImagesRemoved:1});ft>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${Xw(o.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${ft} image messages from the request`),ke=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof be.status=="number"&&H.includes(be.status)||Ne)&&(ke=parseInt(be.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+_,_*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,Q==S-1))for(let ft=d.length-1;ft>=0;ft--)uF(d[ft])&&(this.logger.debug(`Removing image message at index ${ft} to avoid failure`),d.splice(ft,1),yield{kind:"images_removed",turn:p,imagesRemoved:1})}if(ke!==void 0&&ke<=M){let ft=.8+Math.random()*.4,Ke=ke*ft;this.logger.debug(`Retrying after ${Ke} seconds...`),await new Promise(et=>setTimeout(et,Ke*1e3)),T+=Ke,this.logger.debug(`Retrying after ${ke} seconds... Will try again now!`);continue}else ke?this.logger.error(`Retry after ${ke} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let Pe=be||D;for(let ye of l?.processors?.onRequestError||[])await ye.preErrorThrow(D);throw this.logger.error("error"),this.logger.error(JSON.stringify(Mz(Pe),null,2)),Pe}finally{s.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!B&&Q++<S);if(!B){this.logger.debug("Recent messages prior to failure:");for(let he=Math.max(0,d.length-6);he<d.length;he++)this.logger.debug(`${he}: ${JSON.stringify(d[he],null,2)}`);let D=new Error(`Failed to get response from the AI model; retried ${Q-1} times (total retry wait time: ${T} seconds)`,{cause:z});throw this.isRateLimitExceededError(D)&&(this.logger.info(`Rate limit exceeded after ${Q-1} retries, will fail job but skip Sentry reporting`),D.skipReport=!0),D}let Ve=new Map,O=B.choices||[];if(O.length===0){let D={role:"assistant",content:null,refusal:null};d.push(D),yield{kind:"message",turn:p,callId:l?.callId,modelCall:me,message:Gte(TM(D))}}else for(let D of O.map(he=>he.message))D.tool_calls&&Mml(D.tool_calls,Ve),d.push(D),yield{kind:"message",turn:p,callId:l?.callId,modelCall:me,message:Gte(TM(D))};if(this.isToolCallResponse(B)){let he=(o.capabilities.limits.max_prompt_tokens||o.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,ce=WEn(a,he,this,this.settings,l?.abortSignal),ue=B.choices.filter(Ae=>Ae.message.tool_calls!==void 0).flatMap(Ae=>Ae.message.tool_calls||[]).filter(s0);for(let Ae of l?.processors?.preToolsExecution||[]){let de=await Ae.preToolsExecution({turn:p,toolCalls:ue,modelInfo:o});if(de)for(let[Ne,ke]of de)Ve.set(Ne,ke)}let Pe=ue.filter(Ae=>!Ve.has(Ae.id)),ye=this.mergeToolResults(Ve,ue,Pe,I,ce,l?.executeToolsInParallel,l?.abortSignal);for await(let Ae of ye){Ae.toolResult.resultType==="rejected"&&(Z=!0);let de={role:"tool",tool_call_id:Ae.originalCall.id,content:Ae.toolResult.textResultForLlm};d.push(de),yield{kind:"message",turn:p,callId:l?.callId,modelCall:me,message:Gte(de)},yield{kind:"tool_execution",turn:p,callId:l?.callId,toolCallId:Ae.originalCall.id,toolResult:Ae.toolResult,durationMs:Ae.durationMs};for(let Ne of l?.processors?.postToolExecution||[])await Ne.postToolExecution({toolCall:Ae.originalCall,toolResult:Ae.toolResult,turn:p,modelInfo:o})}}else for(let D of B.choices.map(he=>he.message))yield{kind:"response",turn:p,callId:l?.callId,modelCall:{model:a,api_id:B.id},response:Gte(TM(D))},A=!0}catch(P){let me;throw P instanceof Error&&P.cause&&P.cause instanceof Dz?me=`${Ft(P)} (Cause: ${Ft(P.cause)})`:me=`${Ft(P)}`,P instanceof TypeError&&me.includes("terminated")&&(this.logger.error(`Model call terminated unexpectedly during turn ${p}`),this.logger.error(`Serialized error: ${JSON.stringify(Mz(P),null,2)}`)),yield{kind:"turn_failed",model:a,modelInfo:o,turn:p,error:me,timestampMs:Date.now()},P}finally{let P=Date.now();yield{kind:"turn_ended",model:a,modelInfo:o,turn:p,timestampMs:P},p++}}}async*mergeToolResults(e,n,r,l,a,s=!1,o){for(let[I,c]of e){let d=n.find(u=>u.id===I);d&&(yield{durationMs:0,originalCall:d,toolResult:c})}r.length>0&&(yield*this.callTools(r,l,a,s,o))}async*callTools(e,n,r,l=!1,a){if(e.length===0)throw new Error("Tool call is missing");this.logger.debug(`Tool calls count: ${e.length}`);let s=e.some(I=>{let c=n[I.function.name];return LB(c)}),o=l&&!s;if(s&&l&&this.logger.debug("Custom agent detected in tool calls, forcing sequential execution"),o)this.logger.debug("Running tool calls in parallel"),yield*yln(e.map(I=>()=>this.callTool(I,n,r)),a);else{this.logger.debug("Running tool calls sequentially");for(let I of e)a?.throwIfAborted(),yield await this.callTool(I,n,r)}}async callTool(e,n,r){let l=0,a=e?.function.name;if(!a)throw new Error("Tool name is missing");let s=e?.function.arguments;if(s==null)throw new Error("Tool call arguments are missing");let o=e?.id;if(!o)throw new Error("Tool call id is missing");let I,c=n[a];try{let d=NB(s);if(!c||!c.callback)I={textResultForLlm:`Tool '${a}' does not exist. Available tools that can be called are ${Object.keys(n).join(", ")}.`,resultType:"failure",error:`Tool '${a}' does not exist.`,sessionLog:`<error>Tool '${a}' does not exist.</error>`,toolTelemetry:{}};else{let u=c.callback,b=Date.now(),p={...r,toolCallId:o,toolOptions:this.settings.service?.tools?.[a]},A=await u({...d},p);l=Date.now()-b,I=typeof A=="string"?{textResultForLlm:A,resultType:"success",toolTelemetry:{}}:A}}catch(d){I={textResultForLlm:`Failed to execute \`${a}\` tool with arguments: ${s} due to error: ${Ft(d)}`,resultType:"failure",error:d instanceof Error?d.message:`${Ft(d)}`,sessionLog:`<error>Failed to execute \`${a}\` tool with arguments: ${s}</error>`,toolTelemetry:{}}}return{durationMs:l,originalCall:e,toolResult:I}}isToolCallResponse(e){return e.choices.find(n=>n.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 Dz)return e.cause.status===429}return!1}async getModel(){let e=this.clientOptions.model,n={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)||n}}});var c3e,EEn=W(()=>{"use strict";I3e();zz();c3e=class extends BB{constructor(e,n,r){let l=new Ile;super(l,e,n,r)}}});var cle,Ygt=W(()=>{"use strict";_Q();Hw();xte();I3e();cle=class extends BB{makeResponsesRequest(e,n,r,l,a,s,o,I){let c=r.find(Z=>Z.role==="system")?.content||"",d=Array.isArray(c)?c.join(`
|
|
1184
1184
|
`):c,b=r.filter(Z=>Z.role!=="system").flatMap(asn),p=a.filter(Z=>Z.type==="function").map(Z=>({name:Z.function.name,description:Z.function.description,parameters:Z.function.parameters||null,strict:!1,type:"function"}));this.logger.debug(`Making responses request with input: ${JSON.stringify(b,null,2)}`);let A={summary:"auto",effort:"medium"};return e.responses.create({model:n,previous_response_id:void 0,instructions:d,input:b,parallel_tool_calls:a.length>0?!0:void 0,tools:p,reasoning:A,store:!1,...I?{stream:!0}:{},include:["reasoning.encrypted_content"]},{maxRetries:s||this.clientOptions.retryPolicy.maxRetries,headers:o?.requestHeaders,signal:o?.abortSignal}).withResponse()}makeRequest(e,n,r,l,a,s,o){return this.makeResponsesRequest(e,n,r,l,a,s,o).then(I=>Fit(I))}async makeRequestStreaming(e,n,r,l,a,s,o){let I=Date.now(),c=await this.makeResponsesRequest(e,n,r,l,a,s,o,!0),d=null,u,b,p,A=0,Z=0,y=new Map,f=0,w=new Set,Q="",H=!1,S=o?.processors?.onStreamingChunk,_=()=>{let T=Date.now();u===void 0?u=T-I:p!==void 0&&(Z+=T-p,A++),p=T};try{let T=c.request_id??Fc();for await(let M of c.data){if(o?.abortSignal?.throwIfAborted(),M.type==="response.completed"){d=M.response;continue}let B={content:void 0,reportIntentArguments:void 0,size:0,streamingId:T};if(M.type==="response.output_text.delta"&&(_(),B.size+=new TextEncoder().encode(M.delta).length,B.content=M.delta),M.type==="response.reasoning_summary_part.added"&&(H&&Q.length>0&&(Q+=`
|
|
1185
1185
|
|
|
1186
1186
|
`,B.size+=new TextEncoder().encode(`
|
|
@@ -2727,7 +2727,7 @@ To authenticate, you can use any of the following methods:
|
|
|
2727
2727
|
`),o.error("No authentication information found."),process.exit(1));let B=await kZe(process.cwd()),{agents:z,warnings:P}=await xZe(o,e,M,Mjl.join(WR(),"agents"),B,S);P.forEach(O=>o.warning(O));let me=await(async()=>{if(!Q)return;let O=z.find(D=>D.id===Q);return O||Nrr(`No such agent: ${Q}, available: ${z.map(D=>D.id).join(", ")}`,o),O})(),Ve=await zjl({integrationId:e,prompt:T,allowAllTools:n,allowAllPaths:r,rules:l,authInfo:M,session:s,sessionManager:a,logger:o,customAgents:z,enableStreaming:I,trajectoryOutputFile:c,additionalDirs:d,disabledMcpServers:u,additionalMcpConfig:b,cliModel:p,showLlmTiming:A,noCustomInstructions:Z,disableParallelToolsExecution:y,disallowTempDir:f,enableAllGithubMcpTools:w,selectedCustomAgent:me,hasDarkTerminalBackground:H,silent:_});o.debug(`runPromptMode: executePromptDirectly returned succeeded=${Ve}`),o.debug(`runPromptMode: exiting with code ${Ve?0:1}`),process.exit(Ve?0:1)}catch(M){let B=`Error executing prompt: ${String(M)}`;process.stderr.write(B+`
|
|
2728
2728
|
`),o.error(B),M instanceof Error&&M.stack&&o.debug(`runPromptMode caught exception stack: ${M.stack}`),o.debug("runPromptMode: exiting with code 1 due to exception"),process.exit(1)}}async function zjl({integrationId:t,prompt:e,allowAllTools:n,allowAllPaths:r,rules:l,authInfo:a,session:s,sessionManager:o,logger:I,customAgents:c,enableStreaming:d,trajectoryOutputFile:u,additionalDirs:b,disabledMcpServers:p,additionalMcpConfig:A,cliModel:Z,showLlmTiming:y,noCustomInstructions:f,disableParallelToolsExecution:w,disallowTempDir:Q,enableAllGithubMcpTools:H,selectedCustomAgent:S,hasDarkTerminalBackground:_,silent:T}){let M=!1,B=y?new nT:void 0,z=r?new Yoe(process.cwd()):new foe(process.cwd(),b||[],{includeTempDirectory:!Q}),P,me=[],Ve=[],O=$Ee(),D=new Set,he=s.on("*",ce=>{if(O=XUe(ce,O,D),ce.type==="session.error"&&(process.stderr.write(`
|
|
2729
2729
|
${ce.data.message}
|
|
2730
|
-
`),I.debug(`session.error event received: errorType=${ce.data.errorType}, message=${ce.data.message}`),M=!0,I.debug("hasError set to true due to session.error event")),B&&!T)if(ce.type==="assistant.turn_start")B.startTurn(0,Date.parse(ce.timestamp));else if(ce.type==="assistant.turn_end"){let be=B.finishTurn(0,Date.parse(ce.timestamp));if(be){let ue=nT.formatTimingBreakdown(be);process.stdout.write(`
|
|
2730
|
+
`),I.debug(`session.error event received: errorType=${ce.data.errorType}, message=${ce.data.message}`),ce.data.errorType!=="model_call"?(M=!0,I.debug("hasError set to true due to session.error event")):I.debug("model_call error treated as warning, not setting hasError")),B&&!T)if(ce.type==="assistant.turn_start")B.startTurn(0,Date.parse(ce.timestamp));else if(ce.type==="assistant.turn_end"){let be=B.finishTurn(0,Date.parse(ce.timestamp));if(be){let ue=nT.formatTimingBreakdown(be);process.stdout.write(`
|
|
2731
2731
|
\u{1F552} ${ue}
|
|
2732
2732
|
|
|
2733
2733
|
`)}}else ce.type==="assistant.usage"&&ce.data.duration!==void 0&&B.recordModelCall(0,ce.data.duration);if(d&&ce.type==="assistant.message"&&ce.data.chunkContent){process.stdout.write(ce.data.chunkContent);return}Ve=yMe(ce,Ve,me).flatMap(be=>{if(be.type==="tool_call_requested")return[be];if(be.type==="tool_call_completed"||be.type==="copilot"){if(be.type==="copilot"&&d)process.stdout.write(`
|
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.366-
|
|
4
|
+
"version": "0.0.366-8",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
@@ -39,6 +39,6 @@
|
|
|
39
39
|
"ripgrep/**/*"
|
|
40
40
|
],
|
|
41
41
|
"buildMetadata": {
|
|
42
|
-
"gitCommit": "
|
|
42
|
+
"gitCommit": "58bd28c"
|
|
43
43
|
}
|
|
44
44
|
}
|
package/sdk/index.js
CHANGED
|
@@ -1445,7 +1445,7 @@ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
|
1445
1445
|
`);this.baseURL=s.baseURL,this.timeout=s.timeout??Wxe.DEFAULT_TIMEOUT,this.logger=s.logger??console;let c="warn";this.logLevel=c,this.logLevel=SLe(s.logLevel,"ClientOptions.logLevel",this)??SLe(gZ("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??c,this.fetchOptions=s.fetchOptions,this.maxRetries=s.maxRetries??2,this.fetch=s.fetch??c5t(),_t(this,wbe,i5t,"f"),this._options=s,this.apiKey=typeof I=="string"?I:"Missing Key",this.organization=l,this.project=n,this.webhookSecret=r}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:I}){}async authHeaders(e){return ht([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return xLe(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${GF}`}defaultIdempotencyKey(){return`stainless-node-retry-${ALe()}`}makeStatusError(e,I,l,n){return ms.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 ut?l:new ut(`Failed to get token from 'apiKey' function: ${l.message}`,{cause:l})}if(typeof I!="string"||!I)throw new ut(`Expected 'apiKey' function argument to return a string but it returned ${I}`);return this.apiKey=I,!0}buildURL(e,I,l){let n=!le(this,Zxe,"m",ift).call(this)&&l||this.baseURL,r=_Ct(e)?new URL(e):new URL(n+(n.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),a=this.defaultQuery();return $Ct(a)||(I={...a,...I}),typeof I=="object"&&I&&!Array.isArray(I)&&(r.search=this.stringifyQuery(I)),r.toString()}async prepareOptions(e){await this._callApiKey()}async prepareRequest(e,{url:I,options:l}){}get(e,I){return this.methodRequest("get",e,I)}post(e,I){return this.methodRequest("post",e,I)}patch(e,I){return this.methodRequest("patch",e,I)}put(e,I){return this.methodRequest("put",e,I)}delete(e,I){return this.methodRequest("delete",e,I)}methodRequest(e,I,l){return this.request(Promise.resolve(l).then(n=>({method:e,path:I,...n})))}request(e,I=null){return new lv(this,this.makeRequest(e,I,void 0))}async makeRequest(e,I,l){let n=await e,r=n.maxRetries??this.maxRetries;I==null&&(I=r),await this.prepareOptions(n);let{req:a,url:s,timeout:c}=await this.buildRequest(n,{retryCount:r-I});await this.prepareRequest(a,{url:s,options:n});let o="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),i=l===void 0?"":`, retryOf: ${l}`,d=Date.now();if(zs(this).debug(`[${o}] sending request`,fy({retryOfRequestLogID:l,method:n.method,url:s,options:n,headers:a.headers})),n.signal?.aborted)throw new hc;let b=new AbortController,G=await this.fetchWithTimeout(s,a,c,b).catch(WP),u=Date.now();if(G instanceof globalThis.Error){let W=`retrying, ${I} attempts remaining`;if(n.signal?.aborted)throw new hc;let N=ZP(G)||/timed? ?out/i.test(String(G)+("cause"in G?String(G.cause):""));if(I)return zs(this).info(`[${o}] connection ${N?"timed out":"failed"} - ${W}`),zs(this).debug(`[${o}] connection ${N?"timed out":"failed"} (${W})`,fy({retryOfRequestLogID:l,url:s,durationMs:u-d,message:G.message})),this.retryRequest(n,I,l??o);throw zs(this).info(`[${o}] connection ${N?"timed out":"failed"} - error; no more retries left`),zs(this).debug(`[${o}] connection ${N?"timed out":"failed"} (error; no more retries left)`,fy({retryOfRequestLogID:l,url:s,durationMs:u-d,message:G.message})),N?new dF:new iF({cause:G})}let h=[...G.headers.entries()].filter(([W])=>W==="x-request-id").map(([W,N])=>", "+W+": "+JSON.stringify(N)).join(""),p=`[${o}${i}${h}] ${a.method} ${s} ${G.ok?"succeeded":"failed"} with status ${G.status} in ${u-d}ms`;if(!G.ok){let W=await this.shouldRetry(G);if(I&&W){let X=`retrying, ${I} attempts remaining`;return await o5t(G.body),zs(this).info(`${p} - ${X}`),zs(this).debug(`[${o}] response error (${X})`,fy({retryOfRequestLogID:l,url:G.url,status:G.status,headers:G.headers,durationMs:u-d})),this.retryRequest(n,I,l??o,G.headers)}let N=W?"error; no more retries left":"error; not retryable";zs(this).info(`${p} - ${N}`);let y=await G.text().catch(X=>WP(X).message),g=I5t(y),Q=g?void 0:y;throw zs(this).debug(`[${o}] response error (${N})`,fy({retryOfRequestLogID:l,url:G.url,status:G.status,headers:G.headers,message:Q,durationMs:Date.now()-d})),this.makeStatusError(G.status,g,Q,G.headers)}return zs(this).info(p),zs(this).debug(`[${o}] response start`,fy({retryOfRequestLogID:l,url:G.url,status:G.status,headers:G.headers,durationMs:u-d})),{response:G,options:n,controller:b,requestLogID:o,retryOfRequestLogID:l,startTime:d}}getAPIList(e,I,l){return this.requestAPIList(I,{method:"get",path:e,...l})}requestAPIList(e,I){let l=this.makeRequest(I,null,void 0);return new AP(this,l,e)}async fetchWithTimeout(e,I,l,n){let{signal:r,method:a,...s}=I||{};r&&r.addEventListener("abort",()=>n.abort());let c=setTimeout(()=>n.abort(),l),o=globalThis.ReadableStream&&s.body instanceof globalThis.ReadableStream||typeof s.body=="object"&&s.body!==null&&Symbol.asyncIterator in s.body,i={signal:n.signal,...o?{duplex:"half"}:{},method:"GET",...s};a&&(i.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,i)}finally{clearTimeout(c)}}async shouldRetry(e){let I=e.headers.get("x-should-retry");return I==="true"?!0:I==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,I,l,n){let r,a=n?.get("retry-after-ms");if(a){let c=parseFloat(a);Number.isNaN(c)||(r=c)}let s=n?.get("retry-after");if(s&&!r){let c=parseFloat(s);Number.isNaN(c)?r=Date.parse(s)-Date.now():r=c*1e3}if(!(r&&0<=r&&r<60*1e3)){let c=e.maxRetries??this.maxRetries;r=this.calculateDefaultRetryTimeoutMillis(I,c)}return await Z0(r),this.makeRequest(e,I-1,l)}calculateDefaultRetryTimeoutMillis(e,I){let r=I-e,a=Math.min(.5*Math.pow(2,r),8),s=1-Math.random()*.25;return a*s*1e3}async buildRequest(e,{retryCount:I=0}={}){let l={...e},{method:n,path:r,query:a,defaultBaseURL:s}=l,c=this.buildURL(r,a,s);"timeout"in l&&t5t("timeout",l.timeout),l.timeout=l.timeout??this.timeout;let{bodyHeaders:o,body:i}=this.buildBody({options:l}),d=await this.buildHeaders({options:e,method:n,bodyHeaders:o,retryCount:I});return{req:{method:n,headers:d,...l.signal&&{signal:l.signal},...globalThis.ReadableStream&&i instanceof globalThis.ReadableStream&&{duplex:"half"},...i&&{body:i},...this.fetchOptions??{},...l.fetchOptions??{}},url:c,timeout:l.timeout}}async buildHeaders({options:e,method:I,bodyHeaders:l,retryCount:n}){let r={};this.idempotencyHeader&&I!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),r[this.idempotencyHeader]=e.idempotencyKey);let a=ht([r,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(n),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...s5t(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,l,e.headers]);return this.validateHeaders(a),a.values}buildBody({options:{body:e,headers:I}}){if(!e)return{bodyHeaders:void 0,body:void 0};let l=ht([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:jGe(e)}:le(this,wbe,"f").call(this,{body:e,headers:l})}};Wxe=pI,wbe=new WeakMap,Zxe=new WeakSet,ift=function(){return this.baseURL!=="https://api.openai.com/v1"};pI.OpenAI=Wxe;pI.DEFAULT_TIMEOUT=6e5;pI.OpenAIError=ut;pI.APIError=ms;pI.APIConnectionError=iF;pI.APIConnectionTimeoutError=dF;pI.APIUserAbortError=hc;pI.NotFoundError=ck;pI.ConflictError=ok;pI.RateLimitError=dk;pI.BadRequestError=rk;pI.AuthenticationError=ak;pI.InternalServerError=Gk;pI.PermissionDeniedError=sk;pI.UnprocessableEntityError=ik;pI.InvalidWebhookSignatureError=h0;pI.toFile=rbe;pI.Completions=dv;pI.Chat=uF;pI.Embeddings=bv;pI.Files=uv;pI.Images=Wv;pI.Audio=Y0;pI.Moderations=Yv;pI.Models=Nv;pI.FineTuning=AZ;pI.Graders=YF;pI.VectorStores=zy;pI.Webhooks=yv;pI.Beta=V0;pI.Batches=av;pI.Uploads=RF;pI.Responses=gF;pI.Realtime=yF;pI.Conversations=WF;pI.Evals=NF;pI.Containers=ZF});var UP,C6I,dft=m(()=>{pc();VZ();xP();Qbe();UP=class extends pI{constructor({baseURL:e=gZ("OPENAI_BASE_URL"),apiKey:I=gZ("AZURE_OPENAI_API_KEY"),apiVersion:l=gZ("OPENAI_API_VERSION"),endpoint:n,deployment:r,azureADTokenProvider:a,dangerouslyAllowBrowser:s,...c}={}){if(!l)throw new ut("The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).");if(typeof a=="function"&&(s=!0),!a&&!I)throw new ut("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(a&&I)throw new ut("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(c.defaultQuery={...c.defaultQuery,"api-version":l},e){if(n)throw new ut("baseURL and endpoint are mutually exclusive")}else{if(n||(n=process.env.AZURE_OPENAI_ENDPOINT),!n)throw new ut("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${n}/openai`}super({apiKey:a??I,baseURL:e,...c,...s!==void 0?{dangerouslyAllowBrowser:s}:{}}),this.apiVersion="",this.apiVersion=l,this.deploymentName=r}async buildRequest(e,I={}){if(C6I.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!uk(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"?ht([{"api-key":this.apiKey}]):super.authHeaders(e)}},C6I=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"])});var OP=m(()=>{Qbe();PLe();Ibe();Qbe();pa();p0();dft()});var Gft=m(()=>{Zke()});var f6I,bft,mft=m(()=>{f6I=[Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,AggregateError,globalThis.DOMException,globalThis.AssertionError,globalThis.SystemError].filter(Boolean).map(t=>[t.name,t]),bft=new Map(f6I)});function Vv(t,e={}){let{maxDepth:I=Number.POSITIVE_INFINITY,useToJSON:l=!0}=e;return typeof t=="object"&&t!==null?hft({from:t,seen:[],forceEnumerable:!0,maxDepth:I,depth:0,useToJSON:l,serialize:!0}):typeof t=="function"?`[Function: ${t.name||"anonymous"}]`:t}function uft(t){return!!t&&typeof t=="object"&&typeof t.name=="string"&&typeof t.message=="string"&&typeof t.stack=="string"}var J6I,Nxe,L6I,k6I,hft,Yxe=m(()=>{mft();J6I=[{property:"name",enumerable:!1},{property:"message",enumerable:!1},{property:"stack",enumerable:!1},{property:"code",enumerable:!0},{property:"cause",enumerable:!1},{property:"errors",enumerable:!1}],Nxe=new WeakSet,L6I=t=>{Nxe.add(t);let e=t.toJSON();return Nxe.delete(t),e},k6I=t=>{let e=bft.get(t)??Error;return e===AggregateError?new e([]):new e},hft=({from:t,seen:e,to:I,forceEnumerable:l,maxDepth:n,depth:r,useToJSON:a,serialize:s})=>{if(I||(Array.isArray(t)?I=[]:!s&&uft(t)?I=k6I(t.name):I={}),e.push(t),r>=n)return I;if(a&&typeof t.toJSON=="function"&&!Nxe.has(t))return L6I(t);let c=o=>hft({from:o,seen:[...e],forceEnumerable:l,maxDepth:n,depth:r,useToJSON:a,serialize:s});for(let[o,i]of Object.entries(t)){if(i&&i instanceof Uint8Array&&i.constructor.name==="Buffer"){I[o]="[object Buffer]";continue}if(i!==null&&typeof i=="object"&&typeof i.pipe=="function"){I[o]="[object Stream]";continue}if(typeof i!="function"){if(!i||typeof i!="object"){try{I[o]=i}catch{}continue}if(!e.includes(t[o])){r++,I[o]=c(t[o]);continue}I[o]="[Circular]"}}if(s||I instanceof Error)for(let{property:o,enumerable:i}of J6I)t[o]!==void 0&&t[o]!==null&&Object.defineProperty(I,o,{value:uft(t[o])||Array.isArray(t[o])?c(t[o]):t[o],enumerable:l?!0:i,configurable:!0,writable:!0});return I}});function AF(t){return t?.description?.startsWith(yxe)??!1}var yxe,MP=m(()=>{"use strict";yxe="Custom agent:"});function Zft(t){return{agent:t,model:Xbe[t]}}var Xbe,Ebe,pft,Vxe=m(()=>{"use strict";Xbe={"sweagent-capi":"claude-sonnet-4.5","sweagent-aip":"swe-mini2-genai-v2","sweagent-anthropic":"claude-sonnet-4-5-20250929","sweagent-openai":"gpt-5"},Ebe="sweagent-capi",pft={agent:Ebe,model:Xbe[Ebe]}});function Wft(t){if(t)try{let e=new URLSearchParams(t),I=parseInt(e.get("ent")||"0",10),l=parseFloat(e.get("ov")||"0.0"),n=e.get("ovPerm")==="true",r=parseFloat(e.get("rem")||"0.0"),a=e.get("rst"),s;a?s=new Date(a):(s=new Date,s.setMonth(s.getMonth()+1));let c=Math.round(Math.max(0,I*(1-r/100)));return isNaN(I)||isNaN(l)||isNaN(r)?void 0:{isUnlimitedEntitlement:I===-1,entitlementRequests:I,usedRequests:c,usageAllowedWithExhaustedQuota:n,overage:l,overageAllowedWithExhaustedQuota:n,remainingPercentage:r,resetDate:s}}catch{return}}var gxe,Nft=m(()=>{"use strict";gxe="x-quota-snapshot-"});var Yft,yft=m(()=>{cZ();Yft=Ki("keyvault-secrets")});var Vft,gft=m(()=>{cZ();Vft=Ki("keyvault-secrets")});function ad(t,e){return typeof t=="string"?Tie(t,e):Tie(t)}var Rft=m(()=>{cy()});var Aft=m(()=>{});function Rxe(t){return N6(t,["key"])&&typeof t.key=="string"}var Fft=m(()=>{qi()});var wft=m(()=>{qi()});var Qft=m(()=>{qi()});function TP(t){let e=t;return e&&typeof e.getToken=="function"&&(e.signRequest===void 0||e.getToken.length>0)}var Eft=m(()=>{});var Axe=m(()=>{Aft();Fft();wft();Qft();Eft()});function Xft(t){return{name:x6I,sendRequest:(e,I)=>{let l=new URL(e.url);return!l.searchParams.get("api-version")&&t.apiVersion&&(e.url=`${e.url}${Array.from(l.searchParams.keys()).length>0?"&":"?"}api-version=${t.apiVersion}`),I(e)}}}var x6I,vft=m(()=>{x6I="ApiVersionPolicy"});function Hft(t,e){return{name:B6I,async sendRequest(I,l){return I.headers.set(e,t.key),l(I)}}}var B6I,Cft=m(()=>{B6I="keyCredentialAuthenticationPolicy"});function fft(t,e,I={}){var l,n,r,a;let{credential:s,clientOptions:c}=I;if(s){if(TP(s)){let o=vX({credential:s,scopes:(n=(l=c?.credentials)===null||l===void 0?void 0:l.scopes)!==null&&n!==void 0?n:`${e}/.default`});t.addPolicy(o)}else if(S6I(s)){if(!(!((r=c?.credentials)===null||r===void 0)&&r.apiKeyHeaderName))throw new Error("Missing API Key Header Name");let o=Hft(s,(a=c?.credentials)===null||a===void 0?void 0:a.apiKeyHeaderName);t.addPolicy(o)}}}function Jft(t,e,I={}){let l=K6(I);return l.addPolicy(Xft(I)),fft(l,t,{credential:e,clientOptions:I}),l}function S6I(t){return t.key!==void 0}var Fxe=m(()=>{jm();Axe();vft();Cft()});function fb(t){return tJe(t)}var Lft=m(()=>{cy()});function FF(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 kft(t,e,I={}){let l;e&&(z6I(e)?l=e:I=e??{});let n=Jft(t,l,I),r=eJe(t,Object.assign(Object.assign({},I),{pipeline:n})),a=(s,...c)=>({get:(o={})=>r.path(s,...c).get(FF(o)),post:(o={})=>r.path(s,...c).post(FF(o)),put:(o={})=>r.path(s,...c).put(FF(o)),patch:(o={})=>r.path(s,...c).patch(FF(o)),delete:(o={})=>r.path(s,...c).delete(FF(o)),head:(o={})=>r.path(s,...c).head(FF(o)),options:(o={})=>r.path(s,...c).options(FF(o)),trace:(o={})=>r.path(s,...c).trace(FF(o))});return{path:a,pathUnchecked:a,pipeline:r.pipeline}}function z6I(t){return Rxe(t)||TP(t)}var xft=m(()=>{Axe();Fxe();cy()});var Bft=m(()=>{});var vbe=m(()=>{Rft();Fxe();Lft();xft();Bft()});function wxe(t,e,I={}){var l,n,r,a,s,c,o,i;let d=(n=(l=I.endpoint)!==null&&l!==void 0?l:I.baseUrl)!==null&&n!==void 0?n:String(t),b=(r=I?.userAgentOptions)===null||r===void 0?void 0:r.userAgentPrefix,G="azsdk-js-keyvault-secrets/1.0.0-beta.1",u=b?`${b} azsdk-js-api ${G}`:`azsdk-js-api ${G}`,h=Object.assign(Object.assign({},I),{userAgentOptions:{userAgentPrefix:u},loggingOptions:{logger:(s=(a=I.loggingOptions)===null||a===void 0?void 0:a.logger)!==null&&s!==void 0?s:Vft.info},credentials:{scopes:(o=(c=I.credentials)===null||c===void 0?void 0:c.scopes)!==null&&o!==void 0?o:["https://vault.azure.net/.default"]}}),{apiVersion:p}=h,W=U6(h,["apiVersion"]),N=kft(d,e,W);N.pipeline.removePolicy({name:"ApiVersionPolicy"});let y=(i=I.apiVersion)!==null&&i!==void 0?i:"7.6";return N.pipeline.addPolicy({name:"ClientApiVersionPolicy",sendRequest:(g,Q)=>{let f=new URL(g.url);return f.searchParams.get("api-version")||(g.url=`${g.url}${Array.from(f.searchParams.keys()).length>0?"&":"?"}api-version=${y}`),Q(g)}}),Object.assign(Object.assign({},N),{apiVersion:y})}var Sft=m(()=>{wL();gft();vbe()});function zft(t){return{value:t.value,tags:t.tags,contentType:t.contentType,attributes:t.secretAttributes?Uft(t.secretAttributes):t.secretAttributes}}function Uft(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 Cbe(t){return{enabled:t.enabled,notBefore:t.nbf?new Date(t.nbf*1e3):t.nbf,expires:t.exp?new Date(t.exp*1e3):t.exp,created:t.created?new Date(t.created*1e3):t.created,updated:t.updated?new Date(t.updated*1e3):t.updated,recoverableDays:t.recoverableDays,recoveryLevel:t.recoveryLevel}}function jk(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?Cbe(t.attributes):t.attributes,tags:t.tags,kid:t.kid,managed:t.managed}}function nu(t){return{error:t.error?Oft(t.error):t.error}}function Oft(t){return{code:t.code,message:t.message,innerError:t.innererror?Oft(t.innererror):t.innererror}}function Qxe(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?Cbe(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 Mft(t){return{contentType:t.contentType,attributes:t.secretAttributes?Uft(t.secretAttributes):t.secretAttributes,tags:t.tags}}function Exe(t){return{value:t.value?U6I(t.value):t.value,nextLink:t.nextLink}}function U6I(t){return t.map(e=>O6I(e))}function O6I(t){return{id:t.id,attributes:t.attributes?Cbe(t.attributes):t.attributes,tags:t.tags,contentType:t.contentType,managed:t.managed}}function Tft(t){return{value:t.value?M6I(t.value):t.value,nextLink:t.nextLink}}function M6I(t){return t.map(e=>T6I(e))}function T6I(t){return{id:t.id,attributes:t.attributes?Cbe(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 jft(t){return{value:t.value&&typeof t.value=="string"?d1t(t.value,"base64url"):t.value}}function Dft(t){return{value:i1t(t.secretBundleBackup,"base64url")}}var jP,Hbe,Xxe=m(()=>{qi();(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"})(jP||(jP={}));(function(t){t.V75="7.5",t.V76Preview2="7.6-preview.2",t.V76="7.6"})(Hbe||(Hbe={}))});function fbe(t,e,I,l,n={}){var r,a;let s=(r=n.itemName)!==null&&r!==void 0?r:"value",c=(a=n.nextLinkName)!==null&&a!==void 0?a:"nextLink",o={getPage:async i=>{let d=i===void 0?await e():await t.pathUnchecked(i).get();q6I(d,l);let b=await I(d),G=K6I(b,c);return{page:P6I(b,s),nextPageLink:G}},byPage:i=>{let{continuationToken:d}=i??{};return vxe(o,{pageLink:d})}};return j6I(o)}function j6I(t){var e;let I=D6I(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 vxe(t,{pageLink:n})})}}function D6I(t){return JA(this,arguments,function*(){var I,l,n,r;let a=vxe(t);try{for(var s=!0,c=XX(a),o;o=yield ua(c.next()),I=o.done,!I;s=!0)r=o.value,s=!1,yield ua(yield*iwt(XX(r)))}catch(i){l={error:i}}finally{try{!s&&!I&&(n=c.return)&&(yield ua(n.call(c)))}finally{if(l)throw l.error}}})}function vxe(t){return JA(this,arguments,function*(I,l={}){let{pageLink:n}=l,r=yield ua(I.getPage(n??I.firstPageLink));if(!r)return yield ua(void 0);let a=r.page;for(a.continuationToken=r.nextPageLink,yield yield ua(a);r.nextPageLink;){if(r=yield ua(I.getPage(r.nextPageLink)),!r)return yield ua(void 0);a=r.page,a.continuationToken=r.nextPageLink,yield yield ua(a)}})}function K6I(t,e){if(!e)return;let I=t[e];if(typeof I!="string"&&typeof I<"u"&&I!==null)throw new oy(`Body Property ${e} should be a string or undefined or null but got ${typeof I}`);if(I!==null)return I}function P6I(t,e){let I=t[e];if(!Array.isArray(I))throw new oy(`Couldn't paginate response
|
|
1446
1446
|
Body doesn't contain an array property with name: ${e}`);return I??[]}function q6I(t,e){if(!e.includes(t.status))throw ad(`Pagination failed with unexpected statusCode ${t.status}`,t)}var Kft=m(()=>{wL();vbe();jm()});function Dk(t,e,I){return(e??I==="+")||I==="#"?Pft(t):qft(t)}function Pft(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function qft(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function DP(t){return t!=null}function Hxe(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function Jbe(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function _6I(t){let e=t.isFirst,{op:I,varName:l,varValue:n,reserved:r}=t,a=[],[s,c]=Hxe(I);if(Array.isArray(n))for(let o of n.filter(DP))a.push(`${Jbe(I,e)}`),s&&l&&(a.push(`${encodeURIComponent(l)}`),o===""?a.push(c):a.push("=")),a.push(Dk(o,r,I)),e=!1;else if(typeof n=="object")for(let o of Object.keys(n)){let i=n[o];DP(i)&&(a.push(`${Jbe(I,e)}`),o&&(a.push(`${encodeURIComponent(o)}`),s&&i===""?a.push(c):a.push("=")),a.push(Dk(i,r,I)),e=!1)}return a.join("")}function $6I(t){let{op:e,varName:I,varValue:l,isFirst:n,reserved:r}=t,a=[],s=Jbe(e,n),[c,o]=Hxe(e);if(c&&I){if(a.push(Dk(I,r,e)),l==="")return o||a.push(o),a.join("")?`${s}${a.join("")}`:void 0;a.push("=")}let i=[];if(Array.isArray(l))for(let d of l.filter(DP))i.push(Dk(d,r,e));else if(typeof l=="object")for(let d of Object.keys(l))DP(l[d])&&(i.push(qft(d)),i.push(Dk(l[d],r,e)));return a.push(i.join(",")),a.join(",")?`${s}${a.join("")}`:void 0}function eKI(t){let{op:e,varName:I,modifier:l,isFirst:n,reserved:r,varValue:a}=t;if(DP(a))if(["string","number","boolean"].includes(typeof a)){let s=a.toString(),[c,o]=Hxe(e),i=[Jbe(e,n)];return c&&I&&(i.push(I),s===""?i.push(o):i.push("=")),l&&l!=="*"&&(s=s.substring(0,parseInt(l,10))),i.push(Dk(s,r,e)),i.join("")}else return l==="*"?_6I(t):$6I(t);else return}function ru(t,e,I){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(l,n,r)=>{if(!n)return Pft(r);let a;["+","#",".","/",";","?","&"].includes(n[0])&&(a=n[0],n=n.slice(1));let s=n.split(/,/g),c=[];for(let o of s){let i=/([^:\*]*)(?::(\d+)|(\*))?/.exec(o);if(!i||!i[1])continue;let d=eKI({isFirst:c.length===0,op:a,varValue:e[i[1]],varName:i[1],modifier:i[2]||i[3],reserved:I?.allowReserved});d&&c.push(d)}return c.join("")})}var _ft=m(()=>{});function tKI(t,e,I={requestOptions:{}}){var l,n;let r=ru("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},fb(I)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers),body:Dft(e)}))}async function IKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return jk(t.body)}async function Cxe(t,e,I={requestOptions:{}}){let l=await tKI(t,e,I);return IKI(l)}function lKI(t,e,I={requestOptions:{}}){var l,n;let r=ru("/secrets/{secret-name}/backup{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},fb(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function nKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return jft(t.body)}async function fxe(t,e,I={requestOptions:{}}){let l=await lKI(t,e,I);return nKI(l)}function rKI(t,e,I={requestOptions:{}}){var l,n;let r=ru("/deletedsecrets/{secret-name}/recover{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).post(Object.assign(Object.assign({},fb(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function aKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return jk(t.body)}async function Jxe(t,e,I={requestOptions:{}}){let l=await rKI(t,e,I);return aKI(l)}function sKI(t,e,I={requestOptions:{}}){var l,n;let r=ru("/deletedsecrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).delete(Object.assign(Object.assign({},fb(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function cKI(t){if(!["204"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}}async function Lxe(t,e,I={requestOptions:{}}){let l=await sKI(t,e,I);return cKI(l)}function oKI(t,e,I={requestOptions:{}}){var l,n;let r=ru("/deletedsecrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},fb(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function iKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return Qxe(t.body)}async function kxe(t,e,I={requestOptions:{}}){let l=await oKI(t,e,I);return iKI(l)}function dKI(t,e={requestOptions:{}}){var I,l;let n=ru("/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({},fb(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function GKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return Tft(t.body)}function xxe(t,e={requestOptions:{}}){return fbe(t,()=>dKI(t,e),GKI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function bKI(t,e,I={requestOptions:{}}){var l,n;let r=ru("/secrets/{secret-name}/versions{?api%2Dversion,maxresults}",{"secret-name":e,"api%2Dversion":t.apiVersion,maxresults:I?.maxresults},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).get(Object.assign(Object.assign({},fb(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function mKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return Exe(t.body)}function Bxe(t,e,I={requestOptions:{}}){return fbe(t,()=>bKI(t,e,I),mKI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function uKI(t,e={requestOptions:{}}){var I,l;let n=ru("/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({},fb(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function hKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return Exe(t.body)}function Sxe(t,e={requestOptions:{}}){return fbe(t,()=>uKI(t,e),hKI,["200"],{itemName:"value",nextLinkName:"nextLink"})}function pKI(t,e,I,l={requestOptions:{}}){var n,r;let a=ru("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(a).get(Object.assign(Object.assign({},fb(l)),{headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers)}))}async function ZKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return jk(t.body)}async function zxe(t,e,I,l={requestOptions:{}}){let n=await pKI(t,e,I,l);return ZKI(n)}function WKI(t,e,I,l,n={requestOptions:{}}){var r,a;let s=ru("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(r=n?.requestOptions)===null||r===void 0?void 0:r.skipUrlEncoding});return t.path(s).patch(Object.assign(Object.assign({},fb(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(a=n.requestOptions)===null||a===void 0?void 0:a.headers),body:Mft(l)}))}async function NKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return jk(t.body)}async function Uxe(t,e,I,l,n={requestOptions:{}}){let r=await WKI(t,e,I,l,n);return NKI(r)}function YKI(t,e,I={requestOptions:{}}){var l,n;let r=ru("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(r).delete(Object.assign(Object.assign({},fb(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function yKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return Qxe(t.body)}async function Oxe(t,e,I={requestOptions:{}}){let l=await YKI(t,e,I);return yKI(l)}function VKI(t,e,I,l={requestOptions:{}}){var n,r;let a=ru("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(n=l?.requestOptions)===null||n===void 0?void 0:n.skipUrlEncoding});return t.path(a).put(Object.assign(Object.assign({},fb(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(r=l.requestOptions)===null||r===void 0?void 0:r.headers),body:zft(I)}))}async function gKI(t){if(!["200"].includes(t.status)){let I=ad(t);throw I.details=nu(t.body),I}return jk(t.body)}async function Mxe(t,e,I,l={requestOptions:{}}){let n=await VKI(t,e,I,l);return gKI(n)}var Txe=m(()=>{Xxe();Kft();_ft();vbe()});var $ft=m(()=>{Sft();Txe()});var KP,jxe=m(()=>{$ft();Txe();KP=class{constructor(e,I,l={}){var n;let r=(n=l?.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix,a=r?`${r} azsdk-js-client`:"azsdk-js-client";this._client=wxe(e,I,Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:a}})),this.pipeline=this._client.pipeline}restoreSecret(e,I={requestOptions:{}}){return Cxe(this._client,e,I)}backupSecret(e,I={requestOptions:{}}){return fxe(this._client,e,I)}recoverDeletedSecret(e,I={requestOptions:{}}){return Jxe(this._client,e,I)}purgeDeletedSecret(e,I={requestOptions:{}}){return Lxe(this._client,e,I)}getDeletedSecret(e,I={requestOptions:{}}){return kxe(this._client,e,I)}getDeletedSecrets(e={requestOptions:{}}){return xxe(this._client,e)}getSecretVersions(e,I={requestOptions:{}}){return Bxe(this._client,e,I)}getSecrets(e={requestOptions:{}}){return Sxe(this._client,e)}getSecret(e,I,l={requestOptions:{}}){return zxe(this._client,e,I,l)}updateSecret(e,I,l,n={requestOptions:{}}){return Uxe(this._client,e,I,l,n)}deleteSecret(e,I={requestOptions:{}}){return Oxe(this._client,e,I)}setSecret(e,I,l={requestOptions:{}}){return Mxe(this._client,e,I,l)}}});function Dxe(t){let e=/,? +/,I=t.split(e).reduce((l,n)=>{if(n.match(/\w="/)){let[r,...a]=n.split("=");if(RKI.includes(r))return Object.assign(Object.assign({},l),{[r]:a.join("=").slice(1,-1)})}return l},{});if(I.authorization)try{let l=new URL(I.authorization).pathname.substring(1);l&&(I.tenantId=l)}catch{throw new Error(`The challenge authorization URI '${I.authorization}' is invalid.`)}return I}var RKI,eJt=m(()=>{RKI=["authorization","authorization_url","resource","scope","tenantId","claims","error"]});async function FKI(t,e,I){async function l(){if(Date.now()<I)try{return await t()}catch{return null}else{let r=await t();if(r===null)throw new Error("Failed to refresh access token.");return r}}let n=await l();for(;n===null;)await HA(e),n=await l();return n}function tJt(t,e){let I=null,l=null,n,r=Object.assign(Object.assign({},AKI),e),a={get isRefreshing(){return I!==null},get shouldRefresh(){var c;return a.isRefreshing?!1:l?.refreshAfterTimestamp&&l.refreshAfterTimestamp<Date.now()?!0:((c=l?.expiresOnTimestamp)!==null&&c!==void 0?c:0)-r.refreshWindowInMs<Date.now()},get mustRefresh(){return l===null||l.expiresOnTimestamp-r.forcedRefreshWindowInMs<Date.now()}};function s(c,o){var i;return a.isRefreshing||(I=FKI(()=>t.getToken(c,o),r.retryIntervalInMs,(i=l?.expiresOnTimestamp)!==null&&i!==void 0?i:Date.now()).then(b=>(I=null,l=b,n=o.tenantId,l)).catch(b=>{throw I=null,l=null,n=void 0,b})),I}return async(c,o)=>{let i=!!o.claims,d=n!==o.tenantId;return i&&(l=null),d||i||a.mustRefresh?s(c,o):(a.shouldRefresh&&s(c,o),l)}}var AKI,IJt=m(()=>{qi();AKI={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2}});var lJt,nJt=m(()=>{cZ();lJt=Ki("keyvault-common")});function wKI(t,e){let I;try{I=new URL(t)}catch{throw new Error(`The challenge contains invalid scope '${t}'`)}if(!new URL(e.url).hostname.endsWith(`.${I.hostname}`))throw new Error(`The challenge resource '${I.hostname}' does not match the requested domain. Set disableChallengeResourceVerification to true in your client options to disable. See https://aka.ms/azsdk/blog/vault-uri for more information.`)}function rJt(t,e={}){let{disableChallengeResourceVerification:I}=e,l={status:"none"},n=tJt(t);function r(i){return{abortSignal:i.abortSignal,requestOptions:{timeout:i.timeout>0?i.timeout:void 0},tracingOptions:i.tracingOptions}}async function a(i){let d=r(i);switch(l.status){case"none":l={status:"started",originalBody:i.body},i.body=null;break;case"started":break;case"complete":{let b=await n(l.scopes,Object.assign(Object.assign({},d),{enableCae:!0,tenantId:l.tenantId}));b&&i.headers.set("authorization",`Bearer ${b.token}`);break}}}async function s(i,d,b){if(d.status!==401)return d;i.body===null&&l.status==="started"&&(i.body=l.originalBody);let G=r(i),u=d.headers.get("WWW-Authenticate");if(!u)return lJt.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),d;let h=Dxe(u),p=h.resource?h.resource+"/.default":h.scope;if(!p)return d;I||wKI(p,i);let W=await n([p],Object.assign(Object.assign({},G),{enableCae:!0,tenantId:h.tenantId}));return W?(i.headers.set("Authorization",`Bearer ${W.token}`),l={status:"complete",scopes:[p],tenantId:h.tenantId},b(i)):d}async function c(i,d,b){if(l.status!=="complete"||d.status!==401)return d;let G=r(i),u=d.headers.get("WWW-Authenticate");if(!u)return d;let{claims:h,error:p}=Dxe(u);if(p!=="insufficient_claims"||h===void 0)return d;let W=atob(h),N=await n(l.scopes,Object.assign(Object.assign({},G),{enableCae:!0,tenantId:l.tenantId,claims:W}));return i.headers.set("Authorization",`Bearer ${N.token}`),b(i)}async function o(i,d){await a(i);let b=await d(i);return b=await s(i,b,d),b=await c(i,b,d),b}return{name:QKI,sendRequest:o}}var QKI,aJt=m(()=>{eJt();IJt();nJt();QKI="keyVaultAuthenticationPolicy"});function sJt(t,e){if(typeof t!="string"||!(t=t.trim()))throw new Error("Invalid collection argument");if(typeof e!="string"||!(e=e.trim()))throw new Error("Invalid identifier argument");let I;try{I=new URL(e)}catch{throw new Error(`Invalid ${t} identifier: ${e}. Not a valid URI`)}let l=(I.pathname||"").split("/");if(l.length!==3&&l.length!==4)throw new Error(`Invalid ${t} identifier: ${e}. Bad number of segments: ${l.length}`);if(t!==l[1])throw new Error(`Invalid ${t} identifier: ${e}. segment [1] should be "${t}", found "${l[1]}"`);let n=`${I.protocol}//${I.host}`,r=l[2],a=l.length===4?l[3]:void 0;return{vaultUrl:n,name:r,version:a}}var cJt=m(()=>{});var Kxe=m(()=>{aJt();cJt()});var oJt=m(()=>{});var iJt=m(()=>{Xxe()});var dJt=m(()=>{jxe();iJt()});function Pxe(t){let I=t.split("/")[3];return Object.assign({sourceId:t},sJt(I,t))}var qxe=m(()=>{Kxe()});function AG(t){let e=t,I=t,l=Pxe(e.id),n=e.attributes;delete e.attributes;let r={value:e.value,name:l.name,properties:{expiresOn:n?.expires,createdOn:n?.created,updatedOn:n?.updated,enabled:n?.enabled,notBefore:n?.notBefore,recoverableDays:n?.recoverableDays,recoveryLevel:n?.recoveryLevel,id:e.id,contentType:e.contentType,tags:e.tags,managed:e.managed,vaultUrl:l.vaultUrl,version:l.version,name:l.name,certificateKeyId:e.kid}};return I.recoveryId&&(r.properties.recoveryId=I.recoveryId,r.properties.scheduledPurgeDate=I.scheduledPurgeDate,r.properties.deletedOn=I.deletedDate,r.recoveryId=I.recoveryId,r.scheduledPurgeDate=I.scheduledPurgeDate,r.deletedOn=I.deletedDate),n&&(n.vaultUrl&&delete r.properties.vaultUrl,n.expires&&delete r.properties.expires,n.created&&delete r.properties.created,n.updated&&delete r.properties.updated),r}function Lbe(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 JA(this,arguments,function*(){var a,s,c,o;let i=t(Object.assign(Object.assign({},e),{maxresults:n?.maxPageSize})).byPage(n);try{for(var d=!0,b=XX(i),G;G=yield ua(b.next()),a=G.done,!a;d=!0)o=G.value,d=!1,yield yield ua(o.map(I))}catch(u){s={error:u}}finally{try{!d&&!a&&(c=b.return)&&(yield ua(c.call(b)))}finally{if(s)throw s.error}}})}}}var kbe=m(()=>{wL();qxe()});var xbe,_xe=m(()=>{xbe="4.10.0"});var Jb,Bbe=m(()=>{Bce();_xe();Jb=QE({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:xbe})});var $xe,Sbe=m(()=>{cZ();$xe=Ki("core-lro")});var zbe=m(()=>{});var Ube=m(()=>{Sbe();zbe()});var e9e=m(()=>{Ube();Sbe()});var GJt=m(()=>{Ube();zbe();qi()});var bJt=m(()=>{e9e();GJt()});var mJt=m(()=>{e9e();Sbe()});var t9e,I9e,PP,l9e=m(()=>{t9e=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},I9e=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},PP=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 I9e("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 t9e("This poller is already stopped")))}isStopped(){return this.stopped}cancelOperation(e={}){if(!this.cancelPromise)this.cancelPromise=this.cancelOnce(e);else if(e.abortSignal)throw new Error("A cancel request is currently pending");return this.cancelPromise}getOperationState(){return this.operation.state}getResult(){return this.operation.state.result}toString(){return this.operation.toString()}}});var uJt=m(()=>{mJt();zbe();l9e();Ube()});var hJt=m(()=>{uJt()});var pJt=m(()=>{});var ZJt=m(()=>{bJt();hJt();l9e();pJt()});var Kk,Pk,qP=m(()=>{ZJt();qi();Kk=class extends PP{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return HA(this.intervalInMs)}},Pk=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 Obe,WJt=m(()=>{qP();kbe();Bbe();Obe=class extends Pk{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 Jb.withSpan("DeleteSecretPoller.deleteSecret",I,async l=>{let n=await this.client.deleteSecret(e,l);return AG(n)})}getDeletedSecret(e,I={}){return Jb.withSpan("DeleteSecretPoller.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return AG(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 Mbe,NJt=m(()=>{WJt();qP();Mbe=class extends Kk{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:r=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let c=new Obe(Object.assign(Object.assign({},s),{name:l}),I,n);super(c),this.intervalInMs=r}}});var Tbe,YJt=m(()=>{qP();kbe();Bbe();Tbe=class extends Pk{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 Jb.withSpan("RecoverDeletedSecretPoller.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return AG(n)})}recoverDeletedSecret(e,I={}){return Jb.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",I,async l=>{let n=await this.client.recoverDeletedSecret(e,l);return AG(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 jbe,yJt=m(()=>{YJt();qP();jbe=class extends Kk{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:r=2e3,resumeFrom:a}=e,s;a&&(s=JSON.parse(a).state);let c=new Tbe(Object.assign(Object.assign({},s),{name:l}),I,n);super(c),this.intervalInMs=r}}});var Dbe,VJt=m(()=>{wL();yft();jxe();Kxe();oJt();dJt();qxe();kbe();Bbe();jm();_xe();NJt();yJt();Dbe=class{constructor(e,I,l={}){var n,r;this.vaultUrl=e;let a=Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:`${(r=(n=l.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix)!==null&&r!==void 0?r:""} azsdk-js-keyvault-secrets/${xbe}`},apiVersion:l.serviceVersion||"7.6",loggingOptions:{logger:Yft.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new KP(this.vaultUrl,I,a),this.client.pipeline.removePolicy({name:Ide}),this.client.pipeline.addPolicy(rJt(I,l),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(s,c){var o;return((o=s.headers.get("Content-Type"))!==null&&o!==void 0?o:"").startsWith("application/json")&&s.headers.set("Content-Type","application/json"),c(s)}})}setSecret(e,I,l={}){let{enabled:n,notBefore:r,expiresOn:a,tags:s}=l,c=U6(l,["enabled","notBefore","expiresOn","tags"]);return Jb.withSpan("SecretClient.setSecret",c,async o=>{let i=await this.client.setSecret(e,{value:I,secretAttributes:{enabled:n,notBefore:r,expires:a},tags:s},o);return AG(i)})}async beginDeleteSecret(e,I={}){let l=new Mbe(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}async updateSecretProperties(e,I,l={}){let{enabled:n,notBefore:r,expiresOn:a,tags:s}=l,c=U6(l,["enabled","notBefore","expiresOn","tags"]);return Jb.withSpan("SecretClient.updateSecretProperties",c,async o=>{let i=await this.client.updateSecret(e,I,{secretAttributes:{enabled:n,notBefore:r,expires:a},tags:s},o);return AG(i).properties})}getSecret(e,I={}){return Jb.withSpan("SecretClient.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return AG(n)})}getDeletedSecret(e,I={}){return Jb.withSpan("SecretClient.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return AG(n)})}purgeDeletedSecret(e,I={}){return Jb.withSpan("SecretClient.purgeDeletedSecret",I,async l=>{await this.client.purgeDeletedSecret(e,l)})}async beginRecoverDeletedSecret(e,I={}){let l=new jbe(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}backupSecret(e,I={}){return Jb.withSpan("SecretClient.backupSecret",I,async l=>(await this.client.backupSecret(e,l)).value)}restoreSecretBackup(e,I={}){return Jb.withSpan("SecretClient.restoreSecretBackup",I,async l=>{let n=await this.client.restoreSecret({secretBundleBackup:e},l);return AG(n).properties})}listPropertiesOfSecretVersions(e,I={}){return Lbe(l=>this.client.getSecretVersions(e,l),I,l=>AG(l).properties)}listPropertiesOfSecrets(e={}){return Lbe(this.client.getSecrets.bind(this.client),e,I=>AG(I).properties)}listDeletedSecrets(e={}){return Lbe(this.client.getDeletedSecrets.bind(this.client),e,AG)}}});function gJt(t,e){let I=t.api?.copilot?.azureKeyVaultUri;return r9e(I,e)}function r9e(t,e){return new n9e(t,e)}var n9e,a9e=m(()=>{"use strict";Wde();VJt();n9e=class{client;logger;constructor(e,I){if(this.logger=I,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let l=new l0;this.client=new Dbe(e,l)}else this.logger.debug("No Azure Key Vault URI provided, secret provider disabled")}async getSecret(e){if(this.client)try{return(await this.client.getSecret(e)).value}catch(I){if(this.logger.warning(`Error fetching secret ${e}: ${I}`),I?.code==="SecretNotFound")return;throw I}}}});import{createHmac as fKI}from"crypto";var Kbe,RJt=m(()=>{"use strict";Kbe=class t{static encode(e){let I=t.hmacGetBytes(e),a=(Math.floor(Date.now()/1e3)+30).toString(),s=Buffer.from(a,"ascii"),i=fKI("sha256",I).update(s).digest().toString("hex").toUpperCase();return`${a}.${i}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}}});import{readFileSync as JKI}from"fs";import{dirname as LKI,join as s9e}from"path";import{fileURLToPath as kKI}from"url";function c9e(){return AJt().version}function AJt(){if(_P!==null)return _P;try{let t=kKI(import.meta.url),e=LKI(t),I=[s9e(e,"package.json"),s9e(e,"../package.json"),s9e(e,"../../package.json")];for(let n of I)try{let r=JSON.parse(JKI(n,"utf8")),a={name:r.name||"unknown",version:r.version||"unknown",buildMetadata:r.buildMetadata};return _P=a,a}catch{continue}let l={name:"unknown",version:"unknown"};return _P=l,l}catch{let e={name:"unknown",version:"unknown"};return _P=e,e}}function xKI(t){return t.replace(/^@.*\//,"")}function Pbe(t){let e=AJt(),I=xKI(e.name),l=t?.clientName?`client/${t.clientName} `:"";return`${I}/${e.version} (${l}${process.platform} ${process.version})`}var _P,qbe=m(()=>{"use strict";_P=null});var BKI,SKI,FJt,Uy,qk,_k,$k=m(()=>{"use strict";OP();a9e();Fm();BV();Fi();RJt();KI();qbe();BKI="X-GitHub-Api-Version",SKI="2025-05-01",FJt=["https://api.enterprise.githubcopilot.com","https://api.business.githubcopilot.com","https://api.individual.githubcopilot.com"],Uy=class t extends pI{constructor(I,l,n,r,a){let s=a?void 0:wB()?"debug":"info";super({baseURL:I,apiKey:"",logLevel:s});this.headers=l;this.runnerLogger=n;this.hmacKey=r}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[BKI]:SKI};hmacKey;additionalHeaders={};static createWithOAuthToken(I,l,n,r,a,s,c,o){let i={...this.defaultHeaders(n,a,o),Authorization:`Bearer ${r}`,...s??{}};return I.debug(`Creating copilot-client for integration ID ${n} with token authentication. User-agent: ${i["User-Agent"]}`),new t(l,i,I,void 0,c)}static createWithHmac(I,l,n,r,a,s,c,o,i){let d={...this.defaultHeaders(n,a,i),Authorization:"",...c??{}};return s&&(d["X-GitHub-User"]=s),I.debug(`Creating copilot-client for integration ID ${n} with key authentication. User-agent: ${d["User-Agent"]}`),new t(l,d,I,r,o)}static defaultHeaders(I,l,n){return{...t.baseHeaders,"Copilot-Integration-Id":I,"X-Interaction-Id":l,"User-Agent":Pbe(n)}}async prepareOptions(I){this.hmacKey&&(this.headers["Request-HMAC"]=Kbe.encode(this.hmacKey)),I.headers={...this.headers,...this.additionalHeaders,...I.headers},await super.prepareOptions(I)}setInitiatorHeader(I){this.headers["X-Initiator"]=I}setAdditionalHeaders(I){this.additionalHeaders=I}async listModels(){let I={method:"get",path:""};await this.prepareOptions(I);let l={};if(I.headers)for(let[r,a]of Object.entries(I.headers))typeof a=="string"&&(l[r]=a);let n=[this.baseURL];if(FJt.includes(this.baseURL))for(let r of FJt)r!==this.baseURL&&n.push(r);for(let r of n){let a=`${r}/models`,s=await fetch(a,{method:I.method,headers:l});if(s.ok){let c=await s.json();return this.runnerLogger.debug(`Successfully listed ${c.data.length} models`),c.data}if(s.status===421){this.runnerLogger.debug(`Failed to list models due to subscription-based route ${r}: ${s.status} ${s.statusText}: ${await s.text()}`);continue}return this.runnerLogger.error(`Failed to list models due to non-retryable error: ${s.status} ${s.statusText}: ${await s.text()}`),[]}return this.runnerLogger.error("Failed to list models"),[]}},qk=class{async createClient(e,I,l){I.startGroup("configured settings:",8),I.debug(JSON.stringify(e,null,2)),I.endGroup(8);let n=e.api?.copilot?.token,r=e.api?.copilot?.hmacKey,a=!!(r||n);if(!a){I.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let d=gJt(e,I);try{r=await d.getSecret("capi-hmac-key")}catch(b){I.debug(`Failed to get Copilot HMAC key from secret provider:
|
|
1447
1447
|
${Re(b)}`)}try{n=await d.getSecret("capi-token")}catch(b){I.debug(`Failed to get Copilot GitHub OAuth token from secret provider:
|
|
1448
|
-
${Re(b)}`)}a=!!(r||n)}let s,c=mKe(e),o=VB(e),i=e.api?.copilot?.sessionId??e2(e);if(I.debug(`Using Copilot API at ${c} with integration ID ${o}`),n&&(I.debug("Using GitHub OAuth token for Copilot API"),s=Uy.createWithOAuthToken(I,c,o,n,i,l?.requestHeaders,l?.disableHttpLogging,e)),r){I.debug("Using Copilot HMAC key for Copilot API");let d=process.env.GITHUB_USER_ID;d?I.debug(`Using user ID ${d} for Copilot HMAC key`):I.debug("No user ID provided for Copilot HMAC key"),s=Uy.createWithHmac(I,c,o,r,i,d,l?.requestHeaders,l?.disableHttpLogging,e)}if(s===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return s}},_k=class t extends ms{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.cause=e.cause,this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof ms)))return new t(e)}}});function UKI(t){let e=t,I=!1;for(;e;){if(typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"&&(e instanceof TypeError&&e.message.includes("terminated")&&(I=!0),"name"in e&&e.name==="TypeError"&&e.message.includes("terminated")&&(I=!0),e.message.includes("GOAWAY")||e.message.includes("UND_ERR_SOCKET")))return!0;e=typeof e=="object"&&e!==null&&"cause"in e?e.cause:void 0}return I}function OKI(t){let e=new pI.APIError(503,{error:{message:"HTTP/2 GOAWAY connection terminated",type:"connection_error"}},"HTTP/2 GOAWAY connection terminated",new Headers);return e.cause=t,e}function MKI(t){let e=0;return t.choices?.forEach(I=>{e+=new TextEncoder().encode(I.delta?.content??"").length,I.delta?.tool_calls?.forEach(l=>{l.function&&(e+=new TextEncoder().encode(l.function.name).length,e+=new TextEncoder().encode(l.function.arguments??"").length)})}),e}function TKI(t,e){let I=new Map,l=new Set;return new Ch(async function*(){for await(let n of t)n.choices?.forEach(r=>{if(r.delta){let s=!!(r.delta.content||r.delta.tool_calls?.length||r.delta.refusal),c=!l.has(r.index);!r.delta.role&&(s||c)&&(r.delta.role="assistant",l.add(r.index))}if(!!r.delta?.tool_calls?.length){r.delta&&!r.delta.role&&(r.delta.role="assistant",l.add(r.index)),r.finish_reason??="tool_calls";let s=I.get(r.index);s||(s={nextSequenceNumber:0,mappings:new Map},I.set(r.index,s)),r.delta.tool_calls?.forEach(c=>{let o=s.mappings.get(c.index);if(o!==void 0)c.id&&o.callId!==c.id&&(o.sequenceNumber=s.nextSequenceNumber++,o.callId=c.id),c.index=o.sequenceNumber;else{let i={callId:c.id,sequenceNumber:s.nextSequenceNumber++};s.mappings.set(c.index,i),c.index=i.sequenceNumber}})}}),yield n},t.controller,e)}function jKI(t,e){t.forEach(I=>{I.function.name=I.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_");try{oF(I.function.arguments)}catch(l){if(l instanceof SyntaxError){let n=I.function.name,r=I.function.arguments;e.set(I.id,{textResultForLlm:`The arguments for the tool call '${n}' were not valid JSON. The arguments have been cleared. Arguments: ${r}. JSON parse error: ${l.message}`,resultType:"failure",error:`${l.message}`,sessionLog:`<error>Failed to execute \`${n}\` tool with arguments: ${r} due to syntax error: ${l.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}}),I.function.arguments="{}"}}})}var zKI,wF,_be=m(()=>{"use strict";OP();Gft();mbe();Yxe();xV();MP();KI();pP();SY();TT();Fm();Yd();Bi();OT();Vxe();Nft();$k();$f();uR();zKI={type:"ephemeral"};wF=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),l.info(" "),l.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(I,l,n),this.modelPromise=this.clientPromise.then(async()=>{let r=await this.getModel();return l.debug(`Got model info: ${JSON.stringify(r,null,2)}`),r})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||Xbe["sweagent-capi"],toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??180}},thinkingMode:e?.thinkingMode??!1,requestHeaders:e?.requestHeaders??{},disableHttpLogging:e?.disableHttpLogging??!1,enableCacheControl:e?.enableCacheControl??!1}}getCompletionOptions(e,I){let l={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:I?.toolChoice,...l}}makeRequest(e,I,l,n,r,a,s){return e.chat.completions.create({model:I,messages:[...l],...n,tools:r},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}async makeRequestStreaming(e,I,l,n,r,a,s){let c=Date.now(),o=await e.chat.completions.create({model:I,messages:[...l],...n,tools:r,stream:!0,stream_options:{include_usage:!0}},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse(),i=TKI(o.data,e).toReadableStream(),d=xy.fromReadableStream(i),b=s?.processors?.onStreamingChunk,G,u,h,p=0,W=0;if(b?.length){let N=qc();for await(let y of d){s?.abortSignal?.throwIfAborted();let g=Date.now();if(G===void 0)G=g-c;else if(h!==void 0){let X=g-h;W+=X,p++}h=g;let Q=y.choices?.[0],f={content:Q?.delta?.content??void 0,reportIntentArguments:void 0,size:MKI(y),streamingId:N};if(Q?.delta?.tool_calls){for(let X of Q.delta.tool_calls)if(X.function?.name===AN&&X.function?.arguments){f.reportIntentArguments=X.function.arguments;break}}if(f.content||f.reportIntentArguments||f.size>0)for(let X of b)X.onStreamingChunk(f)}}return p>0&&(u=W/p),{data:await d.finalChatCompletion(),response:o.response,request_id:o.request_id,ttftMs:G,interTokenLatencyMs:u}}async*getCompletionWithTools(e,I,l,n){let r=this.model,a=await this.clientPromise,s=await this.modelPromise,c=l3(l),o=this.clientOptions.enableCacheControl?zKI:void 0,i=[{role:"system",content:e,copilot_cache_control:o},...I.map(p=>Z3(p))],d=l.map((p,W)=>({type:"function",function:{name:p.name,description:p.description,parameters:p.input_schema},copilot_cache_control:W===l.length-1?o:void 0}));this.logger.startGroup("Completion request configuration: ",8),this.logger.debug("Client options: "),this.logger.debug(JSON.stringify(this.clientOptions,null,2)),this.logger.debug("Request options: "),this.logger.debug(JSON.stringify(n??{},null,2)),this.logger.debug("Tools: "),this.logger.debug(JSON.stringify(d,null,2)),this.logger.endGroup(8);let b=this.getCompletionOptions(l,n),G=n?.initialTurnCount!==void 0?n.initialTurnCount+1:0,u=!1,h=!1;for(;!u&&!h;){let p=Date.now();yield{kind:"turn_started",model:r,modelInfo:s,turn:G,timestampMs:p};let W=0,N=0,y=0,g=[429,503,500,400],Q=this.clientOptions.retryPolicy.maxRetries,f=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,X=0,v=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,J,x;try{let H=[],ne;do{y>0&&(yield{kind:"turn_retry",model:r,modelInfo:s,turn:G,timestampMs:Date.now()});try{let ee={};for(let Ge of n?.processors?.preRequest||[]){let Te=Ge.preRequest({turn:G,retry:y,messages:i,toolDefinitions:d,modelInfo:s,additionalRequestHeaders:ee,getCompletionWithToolsOptions:n});for await(let Rt of Te)yield Rt}if(this.logger.startGroup("Sending request to the AI model",8),Fr(this.settings,"copilot_swe_agent_request_logging")){let Ge=JSON.stringify(i,null,2),Te=JSON.stringify(b,null,2);this.logger.debug(`Request messages: ${Ge}`),this.logger.debug(`Request options: ${Te}`)}H=i.map((Ge,Te)=>Te===i.length-1?{...Ge,copilot_cache_control:o}:Ge),W=Date.now(),a.setAdditionalHeaders(ee);let ve;n?.stream?ve=await this.makeRequestStreaming(a,r,H,b,d,Q,n):ve=await this.makeRequest(a,r,H,b,d,Q,n),N=Date.now()-W,J=ve.data,ne={model:r,api_id:J.id,request_id:ve.response.headers.get("x-github-request-id")||void 0,initiator:n?.requestHeaders?.["X-Initiator"]||ee["X-Initiator"]};let Je={};ve.response.headers.forEach((Ge,Te)=>{if(Te.toLowerCase().startsWith(gxe)){let Rt=Wft(Ge);Rt&&(Je[Te.replace(gxe,"")]=Rt)}}),yield{kind:"model_call_success",turn:G,callId:n?.callId,modelCallDurationMs:N,ttftMs:ve.ttftMs,interTokenLatencyMs:ve.interTokenLatencyMs,modelCall:ne,responseChunk:lce(J),responseUsage:J.usage,requestMessages:JSON.stringify(H),quotaSnapshots:Je},this.logger.debug(`response (Request-ID ${ve.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(ve.data,null,2))}catch(ee){N=Date.now()-W;let ve=ee;UKI(ee)&&(ve=OKI(ee));let Ge=_k.fromAPIError(ve),Te=Ge?.error;if(Ge){yield{kind:"model_call_failure",turn:G,callId:n?.callId,modelCallDurationMs:N,requestMessages:JSON.stringify(H),modelCall:{model:r,status:Ge.status,error:JSON.stringify(Ge?.error||Ge?.message||"unknown error"),api_id:Ge.requestID||void 0,request_id:Ge.headers?.get("x-github-request-id")||""}},x=Ge;let ze=Ge.ghRequestId||Ge.headers?.get("x-github-request-id")||Ge.requestID;this.logger.error(`error (Request-ID ${ze})`),this.logger.error(JSON.stringify(Vv(Ge),null,2)),this.logger.debug(`Failed to get response from the AI model: ${Re(Ge)}`),Te&&this.logger.debug(`Inner error: ${JSON.stringify(Vv(Te),null,2)}`);let zt;for(let iI of n?.processors?.onRequestError||[])zt=await iI.onRequestError({turn:G,retry:y,maxRetries:Q,error:Te,modelInfo:s,getCompletionWithToolsOptions:n})||zt;let Wt=Ge.status,ue=Wt?this.clientOptions.retryPolicy.errorCodesToRetry.some(iI=>Array.isArray(iI)?Wt>=iI[0]&&(iI[1]===void 0||Wt<=iI[1]):Wt===iI):!1,It;if(zt)It=zt.retryAfter;else if(Ge.status!==402){if(Ge.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let iI=0;for(let Ae=i.length-1;Ae>=0;Ae--)HN(i[Ae])&&(i.splice(Ae,1),iI++,yield{kind:"images_removed",turn:G,imagesRemoved:1,largeImagesRemoved:1});iI>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${JY(s.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${iI} image messages from the request`),It=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof Ge.status=="number"&&g.includes(Ge.status)||ue)&&(It=parseInt(Ge.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+f,f*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,y==Q-1))for(let iI=i.length-1;iI>=0;iI--)HN(i[iI])&&(this.logger.debug(`Removing image message at index ${iI} to avoid failure`),i.splice(iI,1),yield{kind:"images_removed",turn:G,imagesRemoved:1})}if(It!==void 0&&It<=v){let iI=.8+Math.random()*.4,Ae=It*iI;this.logger.debug(`Retrying after ${Ae} seconds...`),await new Promise(Pe=>setTimeout(Pe,Ae*1e3)),X+=Ae,this.logger.debug(`Retrying after ${It} seconds... Will try again now!`);continue}else It?this.logger.error(`Retry after ${It} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let Rt=Ge||ee;for(let ze of n?.processors?.onRequestError||[])await ze.preErrorThrow(ee);throw this.logger.error("error"),this.logger.error(JSON.stringify(Vv(Rt),null,2)),Rt}finally{a.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!J&&y++<Q);if(!J){this.logger.debug("Recent messages prior to failure:");for(let ve=Math.max(0,i.length-6);ve<i.length;ve++)this.logger.debug(`${ve}: ${JSON.stringify(i[ve],null,2)}`);let ee=new Error(`Failed to get response from the AI model; retried ${y-1} times (total retry wait time: ${X} seconds)`,{cause:x});throw this.isRateLimitExceededError(ee)&&(this.logger.info(`Rate limit exceeded after ${y-1} retries, will fail job but skip Sentry reporting`),ee.skipReport=!0),ee}let Ee=new Map,C=J.choices||[];if(C.length===0){let ee={role:"assistant",content:null,refusal:null};i.push(ee),yield{kind:"message",turn:G,callId:n?.callId,modelCall:ne,message:Z3(yE(ee))}}else for(let ee of C.map(ve=>ve.message))ee.tool_calls&&jKI(ee.tool_calls,Ee),i.push(ee),yield{kind:"message",turn:G,callId:n?.callId,modelCall:ne,message:Z3(yE(ee))};if(this.isToolCallResponse(J)){let ve=(s.capabilities.limits.max_prompt_tokens||s.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,Je=ZZt(r,ve,this,this.settings,n?.abortSignal),Te=J.choices.filter(zt=>zt.message.tool_calls!==void 0).flatMap(zt=>zt.message.tool_calls||[]).filter(xi);for(let zt of n?.processors?.preToolsExecution||[]){let Wt=await zt.preToolsExecution({turn:G,toolCalls:Te,modelInfo:s});if(Wt)for(let[ue,It]of Wt)Ee.set(ue,It)}let Rt=Te.filter(zt=>!Ee.has(zt.id)),ze=this.mergeToolResults(Ee,Te,Rt,c,Je,n?.executeToolsInParallel,n?.abortSignal);for await(let zt of ze){zt.toolResult.resultType==="rejected"&&(h=!0);let Wt={role:"tool",tool_call_id:zt.originalCall.id,content:zt.toolResult.textResultForLlm};i.push(Wt),yield{kind:"message",turn:G,callId:n?.callId,modelCall:ne,message:Z3(Wt)},yield{kind:"tool_execution",turn:G,callId:n?.callId,toolCallId:zt.originalCall.id,toolResult:zt.toolResult,durationMs:zt.durationMs};for(let ue of n?.processors?.postToolExecution||[])await ue.postToolExecution({toolCall:zt.originalCall,toolResult:zt.toolResult,turn:G,modelInfo:s})}}else for(let ee of J.choices.map(ve=>ve.message))yield{kind:"response",turn:G,callId:n?.callId,modelCall:{model:r,api_id:J.id},response:Z3(yE(ee))},u=!0}catch(H){let ne;throw H instanceof Error&&H.cause&&H.cause instanceof _k?ne=`${Re(H)} (Cause: ${Re(H.cause)})`:ne=`${Re(H)}`,H instanceof TypeError&&ne.includes("terminated")&&(this.logger.error(`Model call terminated unexpectedly during turn ${G}`),this.logger.error(`Serialized error: ${JSON.stringify(Vv(H),null,2)}`)),yield{kind:"turn_failed",model:r,modelInfo:s,turn:G,error:ne,timestampMs:Date.now()},H}finally{let H=Date.now();yield{kind:"turn_ended",model:r,modelInfo:s,turn:G,timestampMs:H},G++}}}async*mergeToolResults(e,I,l,n,r,a=!1,s){for(let[c,o]of e){let i=I.find(d=>d.id===c);i&&(yield{durationMs:0,originalCall:i,toolResult:o})}l.length>0&&(yield*this.callTools(l,n,r,a,s))}async*callTools(e,I,l,n=!1,r){if(e.length===0)throw new Error("Tool call is missing");this.logger.debug(`Tool calls count: ${e.length}`);let a=e.some(c=>{let o=I[c.function.name];return AF(o)}),s=n&&!a;if(a&&n&&this.logger.debug("Custom agent detected in tool calls, forcing sequential execution"),s)this.logger.debug("Running tool calls in parallel"),yield*Ott(e.map(c=>()=>this.callTool(c,I,l)),r);else{this.logger.debug("Running tool calls sequentially");for(let c of e)r?.throwIfAborted(),yield await this.callTool(c,I,l)}}async callTool(e,I,l){let n=0,r=e?.function.name;if(!r)throw new Error("Tool name is missing");let a=e?.function.arguments;if(a==null)throw new Error("Tool call arguments are missing");let s=e?.id;if(!s)throw new Error("Tool call id is missing");let c,o=I[r];try{let i=oF(a);if(!o||!o.callback)c={textResultForLlm:`Tool '${r}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${r}' does not exist.`,sessionLog:`<error>Tool '${r}' does not exist.</error>`,toolTelemetry:{}};else{let d=o.callback,b=Date.now(),G={...l,toolCallId:s,toolOptions:this.settings.service?.tools?.[r]},u=await d({...i},G);n=Date.now()-b,c=typeof u=="string"?{textResultForLlm:u,resultType:"success",toolTelemetry:{}}:u}}catch(i){c={textResultForLlm:`Failed to execute \`${r}\` tool with arguments: ${a} due to error: ${Re(i)}`,resultType:"failure",error:i instanceof Error?i.message:`${Re(i)}`,sessionLog:`<error>Failed to execute \`${r}\` tool with arguments: ${a}</error>`,toolTelemetry:{}}}return{durationMs:n,originalCall:e,toolResult:c}}isToolCallResponse(e){return e.choices.find(I=>I.message.tool_calls!==void 0)!==void 0}isRateLimitExceededError(e){if(e instanceof Error){if(e.message?.includes("exceeded maximum number of retries")&&e.message?.includes("rate-limited requests"))return!0;if(e.message?.includes("Failed to get response from the AI model")&&e.cause instanceof _k)return e.cause.status===429}return!1}async getModel(){let e=this.clientOptions.model,I={id:e,name:e,capabilities:{supports:{vision:!1},limits:{max_prompt_tokens:9e4,max_context_window_tokens:128e3,vision:{max_prompt_image_size:3145728,max_prompt_images:1,supported_media_types:["image/jpeg","image/png","image/webp"]}}}};return(await(await this.clientPromise).listModels()).filter(a=>a.id===e).at(0)||I}}});var $be,wJt=m(()=>{"use strict";_be();$k();$be=class extends wF{constructor(e,I,l){let n=new qk;super(n,e,I,l)}}});var ex,o9e=m(()=>{"use strict";xV();SY();OT();_be();ex=class extends wF{makeResponsesRequest(e,I,l,n,r,a,s,c){let o=l.find(h=>h.role==="system")?.content||"",i=Array.isArray(o)?o.join(`
|
|
1448
|
+
${Re(b)}`)}a=!!(r||n)}let s,c=mKe(e),o=VB(e),i=e.api?.copilot?.sessionId??e2(e);if(I.debug(`Using Copilot API at ${c} with integration ID ${o}`),n&&(I.debug("Using GitHub OAuth token for Copilot API"),s=Uy.createWithOAuthToken(I,c,o,n,i,l?.requestHeaders,l?.disableHttpLogging,e)),r){I.debug("Using Copilot HMAC key for Copilot API");let d=process.env.GITHUB_USER_ID;d?I.debug(`Using user ID ${d} for Copilot HMAC key`):I.debug("No user ID provided for Copilot HMAC key"),s=Uy.createWithHmac(I,c,o,r,i,d,l?.requestHeaders,l?.disableHttpLogging,e)}if(s===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return s}},_k=class t extends ms{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.cause=e.cause,this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof ms)))return new t(e)}}});function UKI(t){let e=t,I=!1;for(;e;){if(typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"&&(e instanceof TypeError&&e.message.includes("terminated")&&(I=!0),"name"in e&&e.name==="TypeError"&&e.message.includes("terminated")&&(I=!0),e.message.includes("GOAWAY")||e.message.includes("UND_ERR_SOCKET")))return!0;e=typeof e=="object"&&e!==null&&"cause"in e?e.cause:void 0}return I}function OKI(t){let e=new pI.APIError(503,{error:{message:"HTTP/2 GOAWAY connection terminated",type:"connection_error"}},"HTTP/2 GOAWAY connection terminated",new Headers);return e.cause=t,e}function MKI(t){let e=0;return t.choices?.forEach(I=>{e+=new TextEncoder().encode(I.delta?.content??"").length,I.delta?.tool_calls?.forEach(l=>{l.function&&(e+=new TextEncoder().encode(l.function.name).length,e+=new TextEncoder().encode(l.function.arguments??"").length)})}),e}function TKI(t,e,I){let l=new Map,n=new Set;return new Ch(async function*(){for await(let r of t)r.choices?.forEach(a=>{if(a.delta){let c=!!(a.delta.content||a.delta.tool_calls?.length||a.delta.refusal),o=!n.has(a.index);!a.delta.role&&(c||o)&&(a.delta.role="assistant",n.add(a.index))}if(!!a.delta?.tool_calls?.length){a.delta&&!a.delta.role&&(a.delta.role="assistant",n.add(a.index)),a.finish_reason??="tool_calls";let c=l.get(a.index);c||(c={nextSequenceNumber:0,mappings:new Map},l.set(a.index,c)),a.delta.tool_calls?.forEach(o=>{let i=c.mappings.get(o.index);if(i!==void 0)o.id&&i.callId!==o.id&&(i.sequenceNumber=c.nextSequenceNumber++,i.callId=o.id),o.index=i.sequenceNumber;else{let d={callId:o.id,sequenceNumber:c.nextSequenceNumber++};c.mappings.set(o.index,d),o.index=d.sequenceNumber}})}}),r.choices?.some(a=>!a.finish_reason)&&I.debug(`Chunk received with choices missing finish_reason: ${JSON.stringify(r,null,2)}`),yield r},t.controller,e)}function jKI(t,e){t.forEach(I=>{I.function.name=I.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_");try{oF(I.function.arguments)}catch(l){if(l instanceof SyntaxError){let n=I.function.name,r=I.function.arguments;e.set(I.id,{textResultForLlm:`The arguments for the tool call '${n}' were not valid JSON. The arguments have been cleared. Arguments: ${r}. JSON parse error: ${l.message}`,resultType:"failure",error:`${l.message}`,sessionLog:`<error>Failed to execute \`${n}\` tool with arguments: ${r} due to syntax error: ${l.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}}),I.function.arguments="{}"}}})}var zKI,wF,_be=m(()=>{"use strict";OP();Gft();mbe();Yxe();xV();MP();KI();pP();SY();TT();Fm();Yd();Bi();OT();Vxe();Nft();$k();$f();uR();zKI={type:"ephemeral"};wF=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),l.info(" "),l.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(I,l,n),this.modelPromise=this.clientPromise.then(async()=>{let r=await this.getModel();return l.debug(`Got model info: ${JSON.stringify(r,null,2)}`),r})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||Xbe["sweagent-capi"],toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??180}},thinkingMode:e?.thinkingMode??!1,requestHeaders:e?.requestHeaders??{},disableHttpLogging:e?.disableHttpLogging??!1,enableCacheControl:e?.enableCacheControl??!1}}getCompletionOptions(e,I){let l={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:I?.toolChoice,...l}}makeRequest(e,I,l,n,r,a,s){return e.chat.completions.create({model:I,messages:[...l],...n,tools:r},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}async makeRequestStreaming(e,I,l,n,r,a,s){let c=Date.now(),o=await e.chat.completions.create({model:I,messages:[...l],...n,tools:r,stream:!0,stream_options:{include_usage:!0}},{maxRetries:a,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse(),i=TKI(o.data,e,this.logger).toReadableStream(),d=xy.fromReadableStream(i),b=s?.processors?.onStreamingChunk,G,u,h,p=0,W=0;if(b?.length){let N=qc();for await(let y of d){s?.abortSignal?.throwIfAborted();let g=Date.now();if(G===void 0)G=g-c;else if(h!==void 0){let X=g-h;W+=X,p++}h=g;let Q=y.choices?.[0],f={content:Q?.delta?.content??void 0,reportIntentArguments:void 0,size:MKI(y),streamingId:N};if(Q?.delta?.tool_calls){for(let X of Q.delta.tool_calls)if(X.function?.name===AN&&X.function?.arguments){f.reportIntentArguments=X.function.arguments;break}}if(f.content||f.reportIntentArguments||f.size>0)for(let X of b)X.onStreamingChunk(f)}}return p>0&&(u=W/p),{data:await d.finalChatCompletion(),response:o.response,request_id:o.request_id,ttftMs:G,interTokenLatencyMs:u}}async*getCompletionWithTools(e,I,l,n){let r=this.model,a=await this.clientPromise,s=await this.modelPromise,c=l3(l),o=this.clientOptions.enableCacheControl?zKI:void 0,i=[{role:"system",content:e,copilot_cache_control:o},...I.map(p=>Z3(p))],d=l.map((p,W)=>({type:"function",function:{name:p.name,description:p.description,parameters:p.input_schema},copilot_cache_control:W===l.length-1?o:void 0}));this.logger.startGroup("Completion request configuration: ",8),this.logger.debug("Client options: "),this.logger.debug(JSON.stringify(this.clientOptions,null,2)),this.logger.debug("Request options: "),this.logger.debug(JSON.stringify(n??{},null,2)),this.logger.debug("Tools: "),this.logger.debug(JSON.stringify(d,null,2)),this.logger.endGroup(8);let b=this.getCompletionOptions(l,n),G=n?.initialTurnCount!==void 0?n.initialTurnCount+1:0,u=!1,h=!1;for(;!u&&!h;){let p=Date.now();yield{kind:"turn_started",model:r,modelInfo:s,turn:G,timestampMs:p};let W=0,N=0,y=0,g=[429,503,500,400],Q=this.clientOptions.retryPolicy.maxRetries,f=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,X=0,v=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,J,x;try{let H=[],ne;do{y>0&&(yield{kind:"turn_retry",model:r,modelInfo:s,turn:G,timestampMs:Date.now()});try{let ee={};for(let Ge of n?.processors?.preRequest||[]){let Te=Ge.preRequest({turn:G,retry:y,messages:i,toolDefinitions:d,modelInfo:s,additionalRequestHeaders:ee,getCompletionWithToolsOptions:n});for await(let Rt of Te)yield Rt}if(this.logger.startGroup("Sending request to the AI model",8),Fr(this.settings,"copilot_swe_agent_request_logging")){let Ge=JSON.stringify(i,null,2),Te=JSON.stringify(b,null,2);this.logger.debug(`Request messages: ${Ge}`),this.logger.debug(`Request options: ${Te}`)}H=i.map((Ge,Te)=>Te===i.length-1?{...Ge,copilot_cache_control:o}:Ge),W=Date.now(),a.setAdditionalHeaders(ee);let ve;n?.stream?ve=await this.makeRequestStreaming(a,r,H,b,d,Q,n):ve=await this.makeRequest(a,r,H,b,d,Q,n),N=Date.now()-W,J=ve.data,ne={model:r,api_id:J.id,request_id:ve.response.headers.get("x-github-request-id")||void 0,initiator:n?.requestHeaders?.["X-Initiator"]||ee["X-Initiator"]};let Je={};ve.response.headers.forEach((Ge,Te)=>{if(Te.toLowerCase().startsWith(gxe)){let Rt=Wft(Ge);Rt&&(Je[Te.replace(gxe,"")]=Rt)}}),yield{kind:"model_call_success",turn:G,callId:n?.callId,modelCallDurationMs:N,ttftMs:ve.ttftMs,interTokenLatencyMs:ve.interTokenLatencyMs,modelCall:ne,responseChunk:lce(J),responseUsage:J.usage,requestMessages:JSON.stringify(H),quotaSnapshots:Je},this.logger.debug(`response (Request-ID ${ve.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(ve.data,null,2))}catch(ee){N=Date.now()-W;let ve=ee;UKI(ee)&&(ve=OKI(ee));let Ge=_k.fromAPIError(ve),Te=Ge?.error;if(Ge){yield{kind:"model_call_failure",turn:G,callId:n?.callId,modelCallDurationMs:N,requestMessages:JSON.stringify(H),modelCall:{model:r,status:Ge.status,error:JSON.stringify(Ge?.error||Ge?.message||"unknown error"),api_id:Ge.requestID||void 0,request_id:Ge.headers?.get("x-github-request-id")||""}},x=Ge;let ze=Ge.ghRequestId||Ge.headers?.get("x-github-request-id")||Ge.requestID;this.logger.error(`error (Request-ID ${ze})`),this.logger.error(JSON.stringify(Vv(Ge),null,2)),this.logger.debug(`Failed to get response from the AI model: ${Re(Ge)}`),Te&&this.logger.debug(`Inner error: ${JSON.stringify(Vv(Te),null,2)}`);let zt;for(let iI of n?.processors?.onRequestError||[])zt=await iI.onRequestError({turn:G,retry:y,maxRetries:Q,error:Te,modelInfo:s,getCompletionWithToolsOptions:n})||zt;let Wt=Ge.status,ue=Wt?this.clientOptions.retryPolicy.errorCodesToRetry.some(iI=>Array.isArray(iI)?Wt>=iI[0]&&(iI[1]===void 0||Wt<=iI[1]):Wt===iI):!1,It;if(zt)It=zt.retryAfter;else if(Ge.status!==402){if(Ge.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let iI=0;for(let Ae=i.length-1;Ae>=0;Ae--)HN(i[Ae])&&(i.splice(Ae,1),iI++,yield{kind:"images_removed",turn:G,imagesRemoved:1,largeImagesRemoved:1});iI>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${JY(s.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${iI} image messages from the request`),It=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof Ge.status=="number"&&g.includes(Ge.status)||ue)&&(It=parseInt(Ge.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+f,f*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,y==Q-1))for(let iI=i.length-1;iI>=0;iI--)HN(i[iI])&&(this.logger.debug(`Removing image message at index ${iI} to avoid failure`),i.splice(iI,1),yield{kind:"images_removed",turn:G,imagesRemoved:1})}if(It!==void 0&&It<=v){let iI=.8+Math.random()*.4,Ae=It*iI;this.logger.debug(`Retrying after ${Ae} seconds...`),await new Promise(Pe=>setTimeout(Pe,Ae*1e3)),X+=Ae,this.logger.debug(`Retrying after ${It} seconds... Will try again now!`);continue}else It?this.logger.error(`Retry after ${It} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let Rt=Ge||ee;for(let ze of n?.processors?.onRequestError||[])await ze.preErrorThrow(ee);throw this.logger.error("error"),this.logger.error(JSON.stringify(Vv(Rt),null,2)),Rt}finally{a.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!J&&y++<Q);if(!J){this.logger.debug("Recent messages prior to failure:");for(let ve=Math.max(0,i.length-6);ve<i.length;ve++)this.logger.debug(`${ve}: ${JSON.stringify(i[ve],null,2)}`);let ee=new Error(`Failed to get response from the AI model; retried ${y-1} times (total retry wait time: ${X} seconds)`,{cause:x});throw this.isRateLimitExceededError(ee)&&(this.logger.info(`Rate limit exceeded after ${y-1} retries, will fail job but skip Sentry reporting`),ee.skipReport=!0),ee}let Ee=new Map,C=J.choices||[];if(C.length===0){let ee={role:"assistant",content:null,refusal:null};i.push(ee),yield{kind:"message",turn:G,callId:n?.callId,modelCall:ne,message:Z3(yE(ee))}}else for(let ee of C.map(ve=>ve.message))ee.tool_calls&&jKI(ee.tool_calls,Ee),i.push(ee),yield{kind:"message",turn:G,callId:n?.callId,modelCall:ne,message:Z3(yE(ee))};if(this.isToolCallResponse(J)){let ve=(s.capabilities.limits.max_prompt_tokens||s.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,Je=ZZt(r,ve,this,this.settings,n?.abortSignal),Te=J.choices.filter(zt=>zt.message.tool_calls!==void 0).flatMap(zt=>zt.message.tool_calls||[]).filter(xi);for(let zt of n?.processors?.preToolsExecution||[]){let Wt=await zt.preToolsExecution({turn:G,toolCalls:Te,modelInfo:s});if(Wt)for(let[ue,It]of Wt)Ee.set(ue,It)}let Rt=Te.filter(zt=>!Ee.has(zt.id)),ze=this.mergeToolResults(Ee,Te,Rt,c,Je,n?.executeToolsInParallel,n?.abortSignal);for await(let zt of ze){zt.toolResult.resultType==="rejected"&&(h=!0);let Wt={role:"tool",tool_call_id:zt.originalCall.id,content:zt.toolResult.textResultForLlm};i.push(Wt),yield{kind:"message",turn:G,callId:n?.callId,modelCall:ne,message:Z3(Wt)},yield{kind:"tool_execution",turn:G,callId:n?.callId,toolCallId:zt.originalCall.id,toolResult:zt.toolResult,durationMs:zt.durationMs};for(let ue of n?.processors?.postToolExecution||[])await ue.postToolExecution({toolCall:zt.originalCall,toolResult:zt.toolResult,turn:G,modelInfo:s})}}else for(let ee of J.choices.map(ve=>ve.message))yield{kind:"response",turn:G,callId:n?.callId,modelCall:{model:r,api_id:J.id},response:Z3(yE(ee))},u=!0}catch(H){let ne;throw H instanceof Error&&H.cause&&H.cause instanceof _k?ne=`${Re(H)} (Cause: ${Re(H.cause)})`:ne=`${Re(H)}`,H instanceof TypeError&&ne.includes("terminated")&&(this.logger.error(`Model call terminated unexpectedly during turn ${G}`),this.logger.error(`Serialized error: ${JSON.stringify(Vv(H),null,2)}`)),yield{kind:"turn_failed",model:r,modelInfo:s,turn:G,error:ne,timestampMs:Date.now()},H}finally{let H=Date.now();yield{kind:"turn_ended",model:r,modelInfo:s,turn:G,timestampMs:H},G++}}}async*mergeToolResults(e,I,l,n,r,a=!1,s){for(let[c,o]of e){let i=I.find(d=>d.id===c);i&&(yield{durationMs:0,originalCall:i,toolResult:o})}l.length>0&&(yield*this.callTools(l,n,r,a,s))}async*callTools(e,I,l,n=!1,r){if(e.length===0)throw new Error("Tool call is missing");this.logger.debug(`Tool calls count: ${e.length}`);let a=e.some(c=>{let o=I[c.function.name];return AF(o)}),s=n&&!a;if(a&&n&&this.logger.debug("Custom agent detected in tool calls, forcing sequential execution"),s)this.logger.debug("Running tool calls in parallel"),yield*Ott(e.map(c=>()=>this.callTool(c,I,l)),r);else{this.logger.debug("Running tool calls sequentially");for(let c of e)r?.throwIfAborted(),yield await this.callTool(c,I,l)}}async callTool(e,I,l){let n=0,r=e?.function.name;if(!r)throw new Error("Tool name is missing");let a=e?.function.arguments;if(a==null)throw new Error("Tool call arguments are missing");let s=e?.id;if(!s)throw new Error("Tool call id is missing");let c,o=I[r];try{let i=oF(a);if(!o||!o.callback)c={textResultForLlm:`Tool '${r}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${r}' does not exist.`,sessionLog:`<error>Tool '${r}' does not exist.</error>`,toolTelemetry:{}};else{let d=o.callback,b=Date.now(),G={...l,toolCallId:s,toolOptions:this.settings.service?.tools?.[r]},u=await d({...i},G);n=Date.now()-b,c=typeof u=="string"?{textResultForLlm:u,resultType:"success",toolTelemetry:{}}:u}}catch(i){c={textResultForLlm:`Failed to execute \`${r}\` tool with arguments: ${a} due to error: ${Re(i)}`,resultType:"failure",error:i instanceof Error?i.message:`${Re(i)}`,sessionLog:`<error>Failed to execute \`${r}\` tool with arguments: ${a}</error>`,toolTelemetry:{}}}return{durationMs:n,originalCall:e,toolResult:c}}isToolCallResponse(e){return e.choices.find(I=>I.message.tool_calls!==void 0)!==void 0}isRateLimitExceededError(e){if(e instanceof Error){if(e.message?.includes("exceeded maximum number of retries")&&e.message?.includes("rate-limited requests"))return!0;if(e.message?.includes("Failed to get response from the AI model")&&e.cause instanceof _k)return e.cause.status===429}return!1}async getModel(){let e=this.clientOptions.model,I={id:e,name:e,capabilities:{supports:{vision:!1},limits:{max_prompt_tokens:9e4,max_context_window_tokens:128e3,vision:{max_prompt_image_size:3145728,max_prompt_images:1,supported_media_types:["image/jpeg","image/png","image/webp"]}}}};return(await(await this.clientPromise).listModels()).filter(a=>a.id===e).at(0)||I}}});var $be,wJt=m(()=>{"use strict";_be();$k();$be=class extends wF{constructor(e,I,l){let n=new qk;super(n,e,I,l)}}});var ex,o9e=m(()=>{"use strict";xV();SY();OT();_be();ex=class extends wF{makeResponsesRequest(e,I,l,n,r,a,s,c){let o=l.find(h=>h.role==="system")?.content||"",i=Array.isArray(o)?o.join(`
|
|
1449
1449
|
`):o,b=l.filter(h=>h.role!=="system").flatMap(V2t),G=r.filter(h=>h.type==="function").map(h=>({name:h.function.name,description:h.function.description,parameters:h.function.parameters||null,strict:!1,type:"function"}));this.logger.debug(`Making responses request with input: ${JSON.stringify(b,null,2)}`);let u={summary:"auto",effort:"medium"};return e.responses.create({model:I,previous_response_id:void 0,instructions:i,input:b,parallel_tool_calls:r.length>0?!0:void 0,tools:G,reasoning:u,store:!1,...c?{stream:!0}:{},include:["reasoning.encrypted_content"]},{maxRetries:a||this.clientOptions.retryPolicy.maxRetries,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}makeRequest(e,I,l,n,r,a,s){return this.makeResponsesRequest(e,I,l,n,r,a,s).then(c=>Lve(c))}async makeRequestStreaming(e,I,l,n,r,a,s){let c=Date.now(),o=await this.makeResponsesRequest(e,I,l,n,r,a,s,!0),i=null,d,b,G,u=0,h=0,p=new Map,W=0,N=new Set,y="",g=!1,Q=s?.processors?.onStreamingChunk,f=()=>{let X=Date.now();d===void 0?d=X-c:G!==void 0&&(h+=X-G,u++),G=X};try{let X=o.request_id??qc();for await(let v of o.data){if(s?.abortSignal?.throwIfAborted(),v.type==="response.completed"){i=v.response;continue}let J={content:void 0,reportIntentArguments:void 0,size:0,streamingId:X};if(v.type==="response.output_text.delta"&&(f(),J.size+=new TextEncoder().encode(v.delta).length,J.content=v.delta),v.type==="response.reasoning_summary_part.added"&&(g&&y.length>0&&(y+=`
|
|
1450
1450
|
|
|
1451
1451
|
`,J.size+=new TextEncoder().encode(`
|