@github/copilot 0.0.350-20 → 0.0.350-21

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/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.350-20",
4
+ "version": "0.0.350-21",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "type": "module",
7
7
  "repository": {
@@ -37,6 +37,6 @@
37
37
  "worker/**/*"
38
38
  ],
39
39
  "buildMetadata": {
40
- "gitCommit": "0165ac2"
40
+ "gitCommit": "6bd4106"
41
41
  }
42
42
  }
package/sdk/index.js CHANGED
@@ -586,7 +586,7 @@ ${d}`)}return r},Ze=_LI(SBe);var t0=class extends Ye{list(e,I={},l){return this.
586
586
  ${DP(t)}`);if(k==null)throw new Te(`missing choices[${d}].tool_calls[${g}].type
587
587
  ${DP(t)}`);if(f==null)throw new Te(`missing choices[${d}].tool_calls[${g}].function.name
588
588
  ${DP(t)}`);if(J==null)throw new Te(`missing choices[${d}].tool_calls[${g}].function.arguments
589
- ${DP(t)}`);return{...E,id:C,type:k,function:{...S,name:f,arguments:J}}})}}:{...m,message:{...W,content:h,role:Y,refusal:G.refusal??null},finish_reason:i,index:d,logprobs:b}}),created:n,model:c,object:"chat.completion",...r?{system_fingerprint:r}:{}};return OBe(a,e)}function DP(t){return JSON.stringify(t)}var zf=class t extends dZ{static fromReadableStream(e){let I=new t(null);return I._run(()=>I._fromReadableStream(e)),I}static runTools(e,I,l){let n=new t(I),c={...l,headers:{...l?.headers,"X-Stainless-Helper-Method":"runTools"}};return n._run(()=>n._runTools(e,I,c)),n}};var bZ=class extends Ye{constructor(){super(...arguments),this.messages=new t0(this._client)}create(e,I){return this._client.post("/chat/completions",{body:e,...I,stream:e.stream??!1})}retrieve(e,I){return this._client.get(Ze`/chat/completions/${e}`,I)}update(e,I,l){return this._client.post(Ze`/chat/completions/${e}`,{body:I,...l})}list(e={},I){return this._client.getAPIList("/chat/completions",bt,{query:e,...I})}delete(e,I){return this._client.delete(Ze`/chat/completions/${e}`,I)}parse(e,I){return jBe(e.tools),this._client.chat.completions.create(e,{...I,headers:{...I?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(l=>Jf(l,e))}runTools(e,I){return e.stream?zf.runTools(this._client,e,I):Bf.runTools(this._client,e,I)}stream(e,I){return dZ.createChatCompletion(this._client,e,I)}};bZ.Messages=t0;o();var $Be="Custom agent:";function bX(t){return t?.description?.startsWith($Be)??!1}o();function mX(t,e){let I=t;for(;typeof I!="object";){let l=JSON.parse(I,e);if(I===l)throw new Error("JSON parsing would result in infinite loop - input and output are identical");I=l}return I}function eze(t){let e={};for(let[I,l]of Object.entries(t)){let n=typeof l!="string"?JSON.stringify(l):l===void 0?"undefined":l;e[I]=XR(n)}return JSON.stringify(e)}o();function Ize(t){try{if(t)typeof t=="string"&&(t=JSON.parse(t));else return"no_messages";let e=t.map(I=>{let l="?";switch(I.role){case"system":l="s";break;case"assistant":l="a";break;case"user":l="u";break;case"tool":l="t";break}return{type:l,tool_call_id:I.role!=="tool"?void 0:I.tool_call_id,reasoning_text:I.role!=="assistant"?void 0:!!I.reasoning_text,content:typeof I.content=="string"?["text"]:I.content?.map(n=>n.type),tool_calls:I.role!=="assistant"?void 0:I.tool_calls?I.tool_calls.map(n=>n.id):[]}});return JSON.stringify(e,null,2)}catch{return"failed_to_summarize"}}function hX(t){let e=t.reasoning_text?.replace(/<\|im_sep\|>(\*\*.*?\*\*)?/g,`
589
+ ${DP(t)}`);return{...E,id:C,type:k,function:{...S,name:f,arguments:J}}})}}:{...m,message:{...W,content:h,role:Y,refusal:G.refusal??null},finish_reason:i,index:d,logprobs:b}}),created:n,model:c,object:"chat.completion",...r?{system_fingerprint:r}:{}};return OBe(a,e)}function DP(t){return JSON.stringify(t)}var zf=class t extends dZ{static fromReadableStream(e){let I=new t(null);return I._run(()=>I._fromReadableStream(e)),I}static runTools(e,I,l){let n=new t(I),c={...l,headers:{...l?.headers,"X-Stainless-Helper-Method":"runTools"}};return n._run(()=>n._runTools(e,I,c)),n}};var bZ=class extends Ye{constructor(){super(...arguments),this.messages=new t0(this._client)}create(e,I){return this._client.post("/chat/completions",{body:e,...I,stream:e.stream??!1})}retrieve(e,I){return this._client.get(Ze`/chat/completions/${e}`,I)}update(e,I,l){return this._client.post(Ze`/chat/completions/${e}`,{body:I,...l})}list(e={},I){return this._client.getAPIList("/chat/completions",bt,{query:e,...I})}delete(e,I){return this._client.delete(Ze`/chat/completions/${e}`,I)}parse(e,I){return jBe(e.tools),this._client.chat.completions.create(e,{...I,headers:{...I?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(l=>Jf(l,e))}runTools(e,I){return e.stream?zf.runTools(this._client,e,I):Bf.runTools(this._client,e,I)}stream(e,I){return dZ.createChatCompletion(this._client,e,I)}};bZ.Messages=t0;o();var $Be="Custom agent:";function bX(t){return t?.description?.startsWith($Be)??!1}o();function mX(t,e){if(t==="")return{};let I=t;for(;typeof I!="object";){let l=JSON.parse(I,e);if(I===l)throw new Error("JSON parsing would result in infinite loop - input and output are identical");I=l}return I}function eze(t){let e={};for(let[I,l]of Object.entries(t)){let n=typeof l!="string"?JSON.stringify(l):l===void 0?"undefined":l;e[I]=XR(n)}return JSON.stringify(e)}o();function Ize(t){try{if(t)typeof t=="string"&&(t=JSON.parse(t));else return"no_messages";let e=t.map(I=>{let l="?";switch(I.role){case"system":l="s";break;case"assistant":l="a";break;case"user":l="u";break;case"tool":l="t";break}return{type:l,tool_call_id:I.role!=="tool"?void 0:I.tool_call_id,reasoning_text:I.role!=="assistant"?void 0:!!I.reasoning_text,content:typeof I.content=="string"?["text"]:I.content?.map(n=>n.type),tool_calls:I.role!=="assistant"?void 0:I.tool_calls?I.tool_calls.map(n=>n.id):[]}});return JSON.stringify(e,null,2)}catch{return"failed_to_summarize"}}function hX(t){let e=t.reasoning_text?.replace(/<\|im_sep\|>(\*\*.*?\*\*)?/g,`
590
590
  `)?.trim();return{...t,reasoning_text:e}}function Uf(t){return structuredClone(t)}function tze(t){return{...t,choices:t.choices.map(e=>{let I=hX(e.message);return{delta:{role:I.role,content:I.content,reasoning_opaque:I.reasoning_opaque,reasoning_text:I.reasoning_text,tool_calls:e.message.tool_calls?.map(l=>({...l,index:0}))},finish_reason:e.finish_reason,index:e.index}}),object:"chat.completion.chunk"}}function n0(t){return t.role==="user"&&Array.isArray(t.content)&&t.content.some(e=>e.type==="image_url")}function lze(t,e){let I=e.indexOf(t);if(I!==-1)return I;let l=s=>(typeof s.content=="string"?[{type:"text",text:s.content}]:s.content).filter(a=>a.type==="text").map(a=>a.text).join("").trim(),n=l(t),c=e.map((s,a)=>s.role==="user"&&l(s)===n?a:-1).filter(s=>s!==-1),r=c.at(0)??-1;return c.length===1?r:-1}o();var xde={agent:"sweagent-capi",model:"claude-sonnet-4"},nze=xde;o();var Bde="x-quota-snapshot-";function cze(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",c=parseFloat(e.get("rem")||"0.0"),r=e.get("rst"),s;r?s=new Date(r):(s=new Date,s.setMonth(s.getMonth()+1));let a=Math.round(Math.max(0,I*(1-c/100)));return isNaN(I)||isNaN(l)||isNaN(c)?void 0:{isUnlimitedEntitlement:I===-1,entitlementRequests:I,usedRequests:a,usageAllowedWithExhaustedQuota:n,overage:l,overageAllowedWithExhaustedQuota:n,remainingPercentage:c,resetDate:s}}catch{return}}o();o();o();o();var zde=function(){let{crypto:t}=globalThis;if(t?.randomUUID)return zde=t.randomUUID.bind(t),t.randomUUID();let e=new Uint8Array(1),I=t?()=>t.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,l=>(+l^I()&15>>+l/4).toString(16))};o();var Nh=t=>new Promise(e=>setTimeout(e,t));o();o();var Yh="5.20.1";var oze=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function afI(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var ofI=()=>{let t=afI();if(t==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Yh,"X-Stainless-OS":sze(Deno.build.os),"X-Stainless-Arch":rze(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version=="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Yh,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(t==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Yh,"X-Stainless-OS":sze(globalThis.process.platform??"unknown"),"X-Stainless-Arch":rze(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let e=GfI();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Yh,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Yh,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function GfI(){if(typeof navigator>"u"||!navigator)return null;let t=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:I}of t){let l=I.exec(navigator.userAgent);if(l){let n=l[1]||0,c=l[2]||0,r=l[3]||0;return{browser:e,version:`${n}.${c}.${r}`}}}return null}var rze=t=>t==="x32"?"x32":t==="x86_64"||t==="x64"?"x64":t==="arm"?"arm":t==="aarch64"||t==="arm64"?"arm64":t?`other:${t}`:"unknown",sze=t=>(t=t.toLowerCase(),t.includes("ios")?"iOS":t==="android"?"Android":t==="darwin"?"MacOS":t==="win32"?"Windows":t==="freebsd"?"FreeBSD":t==="openbsd"?"OpenBSD":t==="linux"?"Linux":t?`Other:${t}`:"Unknown"),aze,Gze=()=>aze??(aze=ofI());o();var ize=({headers:t,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});o();o();var KP="RFC3986",Ude=t=>String(t),PP={RFC1738:t=>String(t).replace(/%20/g,"+"),RFC3986:Ude},Sde="RFC1738";o();o();var qP=(t,e)=>(qP=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),qP(t,e)),Vh=(()=>{let t=[];for(let e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t})();var Ode=1024,dze=(t,e,I,l,n)=>{if(t.length===0)return t;let c=t;if(typeof t=="symbol"?c=Symbol.prototype.toString.call(t):typeof t!="string"&&(c=String(t)),I==="iso-8859-1")return escape(c).replace(/%u[0-9a-f]{4}/gi,function(s){return"%26%23"+parseInt(s.slice(2),16)+"%3B"});let r="";for(let s=0;s<c.length;s+=Ode){let a=c.length>=Ode?c.slice(s,s+Ode):c,G=[];for(let i=0;i<a.length;++i){let d=a.charCodeAt(i);if(d===45||d===46||d===95||d===126||d>=48&&d<=57||d>=65&&d<=90||d>=97&&d<=122||n===Sde&&(d===40||d===41)){G[G.length]=a.charAt(i);continue}if(d<128){G[G.length]=Vh[d];continue}if(d<2048){G[G.length]=Vh[192|d>>6]+Vh[128|d&63];continue}if(d<55296||d>=57344){G[G.length]=Vh[224|d>>12]+Vh[128|d>>6&63]+Vh[128|d&63];continue}i+=1,d=65536+((d&1023)<<10|a.charCodeAt(i)&1023),G[G.length]=Vh[240|d>>18]+Vh[128|d>>12&63]+Vh[128|d>>6&63]+Vh[128|d&63]}r+=G.join("")}return r};function bze(t){return!t||typeof t!="object"?!1:!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))}function Mde(t,e){if(ta(t)){let I=[];for(let l=0;l<t.length;l+=1)I.push(e(t[l]));return I}return e(t)}var hze={brackets(t){return String(t)+"[]"},comma:"comma",indices(t,e){return String(t)+"["+e+"]"},repeat(t){return String(t)}},pze=function(t,e){Array.prototype.push.apply(t,ta(e)?e:[e])},mze,hr={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:dze,encodeValuesOnly:!1,format:KP,formatter:Ude,indices:!1,serializeDate(t){return(mze??(mze=Function.prototype.call.bind(Date.prototype.toISOString)))(t)},skipNulls:!1,strictNullHandling:!1};function dfI(t){return typeof t=="string"||typeof t=="number"||typeof t=="boolean"||typeof t=="symbol"||typeof t=="bigint"}var Tde={};function uze(t,e,I,l,n,c,r,s,a,G,i,d,b,m,h,p,Z,W){let Y=t,F=W,g=0,A=!1;for(;(F=F.get(Tde))!==void 0&&!A;){let f=F.get(t);if(g+=1,typeof f<"u"){if(f===g)throw new RangeError("Cyclic object value");A=!0}typeof F.get(Tde)>"u"&&(g=0)}if(typeof G=="function"?Y=G(e,Y):Y instanceof Date?Y=b?.(Y):I==="comma"&&ta(Y)&&(Y=Mde(Y,function(f){return f instanceof Date?b?.(f):f})),Y===null){if(c)return a&&!p?a(e,hr.encoder,Z,"key",m):e;Y=""}if(dfI(Y)||bze(Y)){if(a){let f=p?e:a(e,hr.encoder,Z,"key",m);return[h?.(f)+"="+h?.(a(Y,hr.encoder,Z,"value",m))]}return[h?.(e)+"="+h?.(String(Y))]}let k=[];if(typeof Y>"u")return k;let C;if(I==="comma"&&ta(Y))p&&a&&(Y=Mde(Y,a)),C=[{value:Y.length>0?Y.join(",")||null:void 0}];else if(ta(G))C=G;else{let f=Object.keys(Y);C=i?f.sort(i):f}let E=s?String(e).replace(/\./g,"%2E"):String(e),J=l&&ta(Y)&&Y.length===1?E+"[]":E;if(n&&ta(Y)&&Y.length===0)return J+"[]";for(let f=0;f<C.length;++f){let S=C[f],te=typeof S=="object"&&typeof S.value<"u"?S.value:Y[S];if(r&&te===null)continue;let de=d&&s?S.replace(/\./g,"%2E"):S,we=ta(Y)?typeof I=="function"?I(J,de):J:J+(d?"."+de:"["+de+"]");W.set(t,g);let Qe=new WeakMap;Qe.set(Tde,W),pze(k,uze(te,we,I,l,n,c,r,s,I==="comma"&&p&&ta(Y)?null:a,G,i,d,b,m,h,p,Z,Qe))}return k}function bfI(t=hr){if(typeof t.allowEmptyArrays<"u"&&typeof t.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof t.encodeDotInKeys<"u"&&typeof t.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(t.encoder!==null&&typeof t.encoder<"u"&&typeof t.encoder!="function")throw new TypeError("Encoder has to be a function.");let e=t.charset||hr.charset;if(typeof t.charset<"u"&&t.charset!=="utf-8"&&t.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let I=KP;if(typeof t.format<"u"){if(!qP(PP,t.format))throw new TypeError("Unknown format option provided.");I=t.format}let l=PP[I],n=hr.filter;(typeof t.filter=="function"||ta(t.filter))&&(n=t.filter);let c;if(t.arrayFormat&&t.arrayFormat in hze?c=t.arrayFormat:"indices"in t?c=t.indices?"indices":"repeat":c=hr.arrayFormat,"commaRoundTrip"in t&&typeof t.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let r=typeof t.allowDots>"u"?t.encodeDotInKeys?!0:hr.allowDots:!!t.allowDots;return{addQueryPrefix:typeof t.addQueryPrefix=="boolean"?t.addQueryPrefix:hr.addQueryPrefix,allowDots:r,allowEmptyArrays:typeof t.allowEmptyArrays=="boolean"?!!t.allowEmptyArrays:hr.allowEmptyArrays,arrayFormat:c,charset:e,charsetSentinel:typeof t.charsetSentinel=="boolean"?t.charsetSentinel:hr.charsetSentinel,commaRoundTrip:!!t.commaRoundTrip,delimiter:typeof t.delimiter>"u"?hr.delimiter:t.delimiter,encode:typeof t.encode=="boolean"?t.encode:hr.encode,encodeDotInKeys:typeof t.encodeDotInKeys=="boolean"?t.encodeDotInKeys:hr.encodeDotInKeys,encoder:typeof t.encoder=="function"?t.encoder:hr.encoder,encodeValuesOnly:typeof t.encodeValuesOnly=="boolean"?t.encodeValuesOnly:hr.encodeValuesOnly,filter:n,format:I,formatter:l,serializeDate:typeof t.serializeDate=="function"?t.serializeDate:hr.serializeDate,skipNulls:typeof t.skipNulls=="boolean"?t.skipNulls:hr.skipNulls,sort:typeof t.sort=="function"?t.sort:null,strictNullHandling:typeof t.strictNullHandling=="boolean"?t.strictNullHandling:hr.strictNullHandling}}function jde(t,e={}){let I=t,l=bfI(e),n,c;typeof l.filter=="function"?(c=l.filter,I=c("",I)):ta(l.filter)&&(c=l.filter,n=c);let r=[];if(typeof I!="object"||I===null)return"";let s=hze[l.arrayFormat],a=s==="comma"&&l.commaRoundTrip;n||(n=Object.keys(I)),l.sort&&n.sort(l.sort);let G=new WeakMap;for(let b=0;b<n.length;++b){let m=n[b];l.skipNulls&&I[m]===null||pze(r,uze(I[m],m,s,a,l.allowEmptyArrays,l.strictNullHandling,l.skipNulls,l.encodeDotInKeys,l.encode?l.encoder:null,l.filter,l.sort,l.allowDots,l.serializeDate,l.format,l.formatter,l.encodeValuesOnly,l.charset,G))}let i=r.join(l.delimiter),d=l.addQueryPrefix===!0?"?":"";return l.charsetSentinel&&(l.charset==="iso-8859-1"?d+="utf8=%26%2310003%3B&":d+="utf8=%E2%9C%93&"),i.length>0?d+i:""}o();o();o();var Kde=()=>{if(typeof File>"u"){let{process:t}=globalThis,e=typeof t?.versions?.node=="string"&&parseInt(t.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(e?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function pX(t,e,I){return Kde(),new File(t,e??"unknown_file",I)}function Sf(t){return(typeof t=="object"&&t!==null&&("name"in t&&t.name&&String(t.name)||"url"in t&&t.url&&String(t.url)||"filename"in t&&t.filename&&String(t.filename)||"path"in t&&t.path&&String(t.path))||"").split(/[\\/]/).pop()||void 0}var Pde=t=>t!=null&&typeof t=="object"&&typeof t[Symbol.asyncIterator]=="function";var ai=async(t,e)=>({...t,body:await pfI(t.body,e)}),Zze=new WeakMap;function hfI(t){let e=typeof t=="function"?t:t.fetch,I=Zze.get(e);if(I)return I;let l=(async()=>{try{let n="Response"in e?e.Response:(await e("data:,")).constructor,c=new FormData;return c.toString()!==await new n(c).text()}catch{return!0}})();return Zze.set(e,l),l}var pfI=async(t,e)=>{if(!await hfI(e))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let I=new FormData;return await Promise.all(Object.entries(t||{}).map(([l,n])=>Dde(I,l,n))),I},ufI=t=>t instanceof Blob&&"name"in t;var Dde=async(t,e,I)=>{if(I!==void 0){if(I==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof I=="string"||typeof I=="number"||typeof I=="boolean")t.append(e,String(I));else if(I instanceof Response)t.append(e,pX([await I.blob()],Sf(I)));else if(Pde(I))t.append(e,pX([await new Response(CP(I)).blob()],Sf(I)));else if(ufI(I))t.append(e,I,Sf(I));else if(Array.isArray(I))await Promise.all(I.map(l=>Dde(t,e+"[]",l)));else if(typeof I=="object")await Promise.all(Object.entries(I).map(([l,n])=>Dde(t,`${e}[${l}]`,n)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${I} instead`)}};var Wze=t=>t!=null&&typeof t=="object"&&typeof t.size=="number"&&typeof t.type=="string"&&typeof t.text=="function"&&typeof t.slice=="function"&&typeof t.arrayBuffer=="function",ZfI=t=>t!=null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.lastModified=="number"&&Wze(t),WfI=t=>t!=null&&typeof t=="object"&&typeof t.url=="string"&&typeof t.blob=="function";async function _P(t,e,I){if(Kde(),t=await t,ZfI(t))return t instanceof File?t:pX([await t.arrayBuffer()],t.name);if(WfI(t)){let n=await t.blob();return e||(e=new URL(t.url).pathname.split(/[\\/]/).pop()),pX(await qde(n),e,I)}let l=await qde(t);if(e||(e=Sf(t)),!I?.type){let n=l.find(c=>typeof c=="object"&&"type"in c&&c.type);typeof n=="string"&&(I={...I,type:n})}return pX(l,e,I)}async function qde(t){let e=[];if(typeof t=="string"||ArrayBuffer.isView(t)||t instanceof ArrayBuffer)e.push(t);else if(Wze(t))e.push(t instanceof Blob?t:await t.arrayBuffer());else if(Pde(t))for await(let I of t)e.push(...await qde(I));else{let I=t?.constructor?.name;throw new Error(`Unexpected data type: ${typeof t}${I?`; constructor: ${I}`:""}${NfI(t)}`)}return e}function NfI(t){return typeof t!="object"||t===null?"":`; props: [${Object.getOwnPropertyNames(t).map(I=>`"${I}"`).join(", ")}]`}o();o();o();var RY=class extends Ye{constructor(){super(...arguments),this.completions=new bZ(this._client)}};RY.Completions=bZ;o();o();o();o();var Nze=Symbol("brand.privateNullableHeaders");function*VfI(t){if(!t)return;if(Nze in t){let{values:l,nulls:n}=t;yield*l.entries();for(let c of n)yield[c,null];return}let e=!1,I;t instanceof Headers?I=t.entries():Wde(t)?I=t:(e=!0,I=Object.entries(t??{}));for(let l of I){let n=l[0];if(typeof n!="string")throw new TypeError("expected header name to be a string");let c=Wde(l[1])?l[1]:[l[1]],r=!1;for(let s of c)s!==void 0&&(e&&!r&&(r=!0,yield[n,null]),yield[n,s])}}var je=t=>{let e=new Headers,I=new Set;for(let l of t){let n=new Set;for(let[c,r]of VfI(l)){let s=c.toLowerCase();n.has(s)||(e.delete(c),n.add(s)),r===null?(e.delete(c),I.add(s)):(e.append(c,r),I.delete(s))}}return{[Nze]:!0,values:e,nulls:I}};var uX=class extends Ye{create(e,I){return this._client.post("/audio/speech",{body:e,...I,headers:je([{Accept:"application/octet-stream"},I?.headers]),__binaryResponse:!0})}};o();var ZX=class extends Ye{create(e,I){return this._client.post("/audio/transcriptions",ai({body:e,...I,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}};o();var WX=class extends Ye{create(e,I){return this._client.post("/audio/translations",ai({body:e,...I,__metadata:{model:e.model}},this._client))}};var Rh=class extends Ye{constructor(){super(...arguments),this.transcriptions=new ZX(this._client),this.translations=new WX(this._client),this.speech=new uX(this._client)}};Rh.Transcriptions=ZX;Rh.Translations=WX;Rh.Speech=uX;o();var c0=class extends Ye{create(e,I){return this._client.post("/batches",{body:e,...I})}retrieve(e,I){return this._client.get(Ze`/batches/${e}`,I)}list(e={},I){return this._client.getAPIList("/batches",bt,{query:e,...I})}cancel(e,I){return this._client.post(Ze`/batches/${e}/cancel`,I)}};o();o();var NX=class extends Ye{create(e,I){return this._client.post("/assistants",{body:e,...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}retrieve(e,I){return this._client.get(Ze`/assistants/${e}`,{...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}update(e,I,l){return this._client.post(Ze`/assistants/${e}`,{body:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}list(e={},I){return this._client.getAPIList("/assistants",bt,{query:e,...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}delete(e,I){return this._client.delete(Ze`/assistants/${e}`,{...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}};o();o();var YX=class extends Ye{create(e,I){return this._client.post("/realtime/sessions",{body:e,...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}};o();var VX=class extends Ye{create(e,I){return this._client.post("/realtime/transcription_sessions",{body:e,...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}};var yY=class extends Ye{constructor(){super(...arguments),this.sessions=new YX(this._client),this.transcriptionSessions=new VX(this._client)}};yY.Sessions=YX;yY.TranscriptionSessions=VX;o();o();var RX=class extends Ye{create(e,I,l){return this._client.post(Ze`/threads/${e}/messages`,{body:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}retrieve(e,I,l){let{thread_id:n}=I;return this._client.get(Ze`/threads/${n}/messages/${e}`,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}update(e,I,l){let{thread_id:n,...c}=I;return this._client.post(Ze`/threads/${n}/messages/${e}`,{body:c,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}list(e,I={},l){return this._client.getAPIList(Ze`/threads/${e}/messages`,bt,{query:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}delete(e,I,l){let{thread_id:n}=I;return this._client.delete(Ze`/threads/${n}/messages/${e}`,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}};o();o();var yX=class extends Ye{retrieve(e,I,l){let{thread_id:n,run_id:c,...r}=I;return this._client.get(Ze`/threads/${n}/runs/${c}/steps/${e}`,{query:r,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}list(e,I,l){let{thread_id:n,...c}=I;return this._client.getAPIList(Ze`/threads/${n}/runs/${e}/steps`,bt,{query:c,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}};o();o();o();var Yze=t=>{if(typeof Buffer<"u"){let e=Buffer.from(t,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{let e=atob(t),I=e.length,l=new Uint8Array(I);for(let n=0;n<I;n++)l[n]=e.charCodeAt(n);return Array.from(new Float32Array(l.buffer))}};o();var Vb=t=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[t]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(t)?.trim()};var Ys,s0,_de,yh,$P,Rb,a0,gX,r0,t6,oi,e6,I6,Tf,Of,Mf,Vze,Rze,yze,gze,Fze,Aze,Qze,mZ=class extends YY{constructor(){super(...arguments),Ys.add(this),_de.set(this,[]),yh.set(this,{}),$P.set(this,{}),Rb.set(this,void 0),a0.set(this,void 0),gX.set(this,void 0),r0.set(this,void 0),t6.set(this,void 0),oi.set(this,void 0),e6.set(this,void 0),I6.set(this,void 0),Tf.set(this,void 0)}[(_de=new WeakMap,yh=new WeakMap,$P=new WeakMap,Rb=new WeakMap,a0=new WeakMap,gX=new WeakMap,r0=new WeakMap,t6=new WeakMap,oi=new WeakMap,e6=new WeakMap,I6=new WeakMap,Tf=new WeakMap,Ys=new WeakSet,Symbol.asyncIterator)](){let e=[],I=[],l=!1;return this.on("event",n=>{let c=I.shift();c?c.resolve(n):e.push(n)}),this.on("end",()=>{l=!0;for(let n of I)n.resolve(void 0);I.length=0}),this.on("abort",n=>{l=!0;for(let c of I)c.reject(n);I.length=0}),this.on("error",n=>{l=!0;for(let c of I)c.reject(n);I.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:l?{value:void 0,done:!0}:new Promise((c,r)=>I.push({resolve:c,reject:r})).then(c=>c?{value:c,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){let I=new s0;return I._run(()=>I._fromReadableStream(e)),I}async _fromReadableStream(e,I){let l=I?.signal;l&&(l.aborted&&this.controller.abort(),l.addEventListener("abort",()=>this.controller.abort())),this._connected();let n=bd.fromReadableStream(e,this.controller);for await(let c of n)j(this,Ys,"m",Of).call(this,c);if(n.controller.signal?.aborted)throw new Kc;return this._addRun(j(this,Ys,"m",Mf).call(this))}toReadableStream(){return new bd(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,I,l,n){let c=new s0;return c._run(()=>c._runToolAssistantStream(e,I,l,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),c}async _createToolAssistantStream(e,I,l,n){let c=n?.signal;c&&(c.aborted&&this.controller.abort(),c.addEventListener("abort",()=>this.controller.abort()));let r={...l,stream:!0},s=await e.submitToolOutputs(I,r,{...n,signal:this.controller.signal});this._connected();for await(let a of s)j(this,Ys,"m",Of).call(this,a);if(s.controller.signal?.aborted)throw new Kc;return this._addRun(j(this,Ys,"m",Mf).call(this))}static createThreadAssistantStream(e,I,l){let n=new s0;return n._run(()=>n._threadAssistantStream(e,I,{...l,headers:{...l?.headers,"X-Stainless-Helper-Method":"stream"}})),n}static createAssistantStream(e,I,l,n){let c=new s0;return c._run(()=>c._runAssistantStream(e,I,l,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),c}currentEvent(){return j(this,e6,"f")}currentRun(){return j(this,I6,"f")}currentMessageSnapshot(){return j(this,Rb,"f")}currentRunStepSnapshot(){return j(this,Tf,"f")}async finalRunSteps(){return await this.done(),Object.values(j(this,yh,"f"))}async finalMessages(){return await this.done(),Object.values(j(this,$P,"f"))}async finalRun(){if(await this.done(),!j(this,a0,"f"))throw Error("Final run was not received.");return j(this,a0,"f")}async _createThreadAssistantStream(e,I,l){let n=l?.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort()));let c={...I,stream:!0},r=await e.createAndRun(c,{...l,signal:this.controller.signal});this._connected();for await(let s of r)j(this,Ys,"m",Of).call(this,s);if(r.controller.signal?.aborted)throw new Kc;return this._addRun(j(this,Ys,"m",Mf).call(this))}async _createAssistantStream(e,I,l,n){let c=n?.signal;c&&(c.aborted&&this.controller.abort(),c.addEventListener("abort",()=>this.controller.abort()));let r={...l,stream:!0},s=await e.create(I,r,{...n,signal:this.controller.signal});this._connected();for await(let a of s)j(this,Ys,"m",Of).call(this,a);if(s.controller.signal?.aborted)throw new Kc;return this._addRun(j(this,Ys,"m",Mf).call(this))}static accumulateDelta(e,I){for(let[l,n]of Object.entries(I)){if(!e.hasOwnProperty(l)){e[l]=n;continue}let c=e[l];if(c==null){e[l]=n;continue}if(l==="index"||l==="type"){e[l]=n;continue}if(typeof c=="string"&&typeof n=="string")c+=n;else if(typeof c=="number"&&typeof n=="number")c+=n;else if(aX(c)&&aX(n))c=this.accumulateDelta(c,n);else if(Array.isArray(c)&&Array.isArray(n)){if(c.every(r=>typeof r=="string"||typeof r=="number")){c.push(...n);continue}for(let r of n){if(!aX(r))throw new Error(`Expected array delta entry to be an object but got: ${r}`);let s=r.index;if(s==null)throw console.error(r),new Error("Expected array delta entry to have an `index` property");if(typeof s!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${s}`);let a=c[s];a==null?c.push(r):c[s]=this.accumulateDelta(a,r)}continue}else throw Error(`Unhandled record type: ${l}, deltaValue: ${n}, accValue: ${c}`);e[l]=c}return e}_addRun(e){return e}async _threadAssistantStream(e,I,l){return await this._createThreadAssistantStream(I,e,l)}async _runAssistantStream(e,I,l,n){return await this._createAssistantStream(I,e,l,n)}async _runToolAssistantStream(e,I,l,n){return await this._createToolAssistantStream(I,e,l,n)}};s0=mZ,Of=function(e){if(!this.ended)switch(WI(this,e6,e,"f"),j(this,Ys,"m",yze).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":j(this,Ys,"m",Qze).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":j(this,Ys,"m",Rze).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":j(this,Ys,"m",Vze).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:}},Mf=function(){if(this.ended)throw new Te("stream has ended, this shouldn't happen");if(!j(this,a0,"f"))throw Error("Final run has not been received");return j(this,a0,"f")},Vze=function(e){let[I,l]=j(this,Ys,"m",Fze).call(this,e,j(this,Rb,"f"));WI(this,Rb,I,"f"),j(this,$P,"f")[I.id]=I;for(let n of l){let c=I.content[n.index];c?.type=="text"&&this._emit("textCreated",c.text)}switch(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,I),e.data.delta.content)for(let n of e.data.delta.content){if(n.type=="text"&&n.text){let c=n.text,r=I.content[n.index];if(r&&r.type=="text")this._emit("textDelta",c,r.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(n.index!=j(this,gX,"f")){if(j(this,r0,"f"))switch(j(this,r0,"f").type){case"text":this._emit("textDone",j(this,r0,"f").text,j(this,Rb,"f"));break;case"image_file":this._emit("imageFileDone",j(this,r0,"f").image_file,j(this,Rb,"f"));break}WI(this,gX,n.index,"f")}WI(this,r0,I.content[n.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(j(this,gX,"f")!==void 0){let n=e.data.content[j(this,gX,"f")];if(n)switch(n.type){case"image_file":this._emit("imageFileDone",n.image_file,j(this,Rb,"f"));break;case"text":this._emit("textDone",n.text,j(this,Rb,"f"));break}}j(this,Rb,"f")&&this._emit("messageDone",e.data),WI(this,Rb,void 0,"f")}},Rze=function(e){let I=j(this,Ys,"m",gze).call(this,e);switch(WI(this,Tf,I,"f"),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":let l=e.data.delta;if(l.step_details&&l.step_details.type=="tool_calls"&&l.step_details.tool_calls&&I.step_details.type=="tool_calls")for(let c of l.step_details.tool_calls)c.index==j(this,t6,"f")?this._emit("toolCallDelta",c,I.step_details.tool_calls[c.index]):(j(this,oi,"f")&&this._emit("toolCallDone",j(this,oi,"f")),WI(this,t6,c.index,"f"),WI(this,oi,I.step_details.tool_calls[c.index],"f"),j(this,oi,"f")&&this._emit("toolCallCreated",j(this,oi,"f")));this._emit("runStepDelta",e.data.delta,I);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":WI(this,Tf,void 0,"f"),e.data.step_details.type=="tool_calls"&&j(this,oi,"f")&&(this._emit("toolCallDone",j(this,oi,"f")),WI(this,oi,void 0,"f")),this._emit("runStepDone",e.data,I);break;case"thread.run.step.in_progress":break}},yze=function(e){j(this,_de,"f").push(e),this._emit("event",e)},gze=function(e){switch(e.event){case"thread.run.step.created":return j(this,yh,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let I=j(this,yh,"f")[e.data.id];if(!I)throw Error("Received a RunStepDelta before creation of a snapshot");let l=e.data;if(l.delta){let n=s0.accumulateDelta(I,l.delta);j(this,yh,"f")[e.data.id]=n}return j(this,yh,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":j(this,yh,"f")[e.data.id]=e.data;break}if(j(this,yh,"f")[e.data.id])return j(this,yh,"f")[e.data.id];throw new Error("No snapshot available")},Fze=function(e,I){let l=[];switch(e.event){case"thread.message.created":return[e.data,l];case"thread.message.delta":if(!I)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let n=e.data;if(n.delta.content)for(let c of n.delta.content)if(c.index in I.content){let r=I.content[c.index];I.content[c.index]=j(this,Ys,"m",Aze).call(this,c,r)}else I.content[c.index]=c,l.push(c);return[I,l];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(I)return[I,l];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},Aze=function(e,I){return s0.accumulateDelta(I,e)},Qze=function(e){switch(WI(this,I6,e.data,"f"),e.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":WI(this,a0,e.data,"f"),j(this,oi,"f")&&(this._emit("toolCallDone",j(this,oi,"f")),WI(this,oi,void 0,"f"));break;case"thread.run.cancelling":break}};var o0=class extends Ye{constructor(){super(...arguments),this.steps=new yX(this._client)}create(e,I,l){let{include:n,...c}=I;return this._client.post(Ze`/threads/${e}/runs`,{query:{include:n},body:c,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers]),stream:I.stream??!1})}retrieve(e,I,l){let{thread_id:n}=I;return this._client.get(Ze`/threads/${n}/runs/${e}`,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}update(e,I,l){let{thread_id:n,...c}=I;return this._client.post(Ze`/threads/${n}/runs/${e}`,{body:c,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}list(e,I={},l){return this._client.getAPIList(Ze`/threads/${e}/runs`,bt,{query:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}cancel(e,I,l){let{thread_id:n}=I;return this._client.post(Ze`/threads/${n}/runs/${e}/cancel`,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}async createAndPoll(e,I,l){let n=await this.create(e,I,l);return await this.poll(n.id,{thread_id:e},l)}createAndStream(e,I,l){return mZ.createAssistantStream(e,this._client.beta.threads.runs,I,l)}async poll(e,I,l){let n=je([l?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":l?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:c,response:r}=await this.retrieve(e,I,{...l,headers:{...l?.headers,...n}}).withResponse();switch(c.status){case"queued":case"in_progress":case"cancelling":let s=5e3;if(l?.pollIntervalMs)s=l.pollIntervalMs;else{let a=r.headers.get("openai-poll-after-ms");if(a){let G=parseInt(a);isNaN(G)||(s=G)}}await Nh(s);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return c}}}stream(e,I,l){return mZ.createAssistantStream(e,this._client.beta.threads.runs,I,l)}submitToolOutputs(e,I,l){let{thread_id:n,...c}=I;return this._client.post(Ze`/threads/${n}/runs/${e}/submit_tool_outputs`,{body:c,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers]),stream:I.stream??!1})}async submitToolOutputsAndPoll(e,I,l){let n=await this.submitToolOutputs(e,I,l);return await this.poll(n.id,I,l)}submitToolOutputsStream(e,I,l){return mZ.createToolAssistantStream(e,this._client.beta.threads.runs,I,l)}};o0.Steps=yX;var gY=class extends Ye{constructor(){super(...arguments),this.runs=new o0(this._client),this.messages=new RX(this._client)}create(e={},I){return this._client.post("/threads",{body:e,...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}retrieve(e,I){return this._client.get(Ze`/threads/${e}`,{...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}update(e,I,l){return this._client.post(Ze`/threads/${e}`,{body:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}delete(e,I){return this._client.delete(Ze`/threads/${e}`,{...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}createAndRun(e,I){return this._client.post("/threads/runs",{body:e,...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers]),stream:e.stream??!1})}async createAndRunPoll(e,I){let l=await this.createAndRun(e,I);return await this.runs.poll(l.id,{thread_id:l.thread_id},I)}createAndRunStream(e,I){return mZ.createThreadAssistantStream(e,this._client.beta.threads,I)}};gY.Runs=o0;gY.Messages=RX;var gh=class extends Ye{constructor(){super(...arguments),this.realtime=new yY(this._client),this.assistants=new NX(this._client),this.threads=new gY(this._client)}};gh.Realtime=yY;gh.Assistants=NX;gh.Threads=gY;o();var G0=class extends Ye{create(e,I){return this._client.post("/completions",{body:e,...I,stream:e.stream??!1})}};o();o();o();var FX=class extends Ye{retrieve(e,I,l){let{container_id:n}=I;return this._client.get(Ze`/containers/${n}/files/${e}/content`,{...l,headers:je([{Accept:"application/binary"},l?.headers]),__binaryResponse:!0})}};var i0=class extends Ye{constructor(){super(...arguments),this.content=new FX(this._client)}create(e,I,l){return this._client.post(Ze`/containers/${e}/files`,ai({body:I,...l},this._client))}retrieve(e,I,l){let{container_id:n}=I;return this._client.get(Ze`/containers/${n}/files/${e}`,l)}list(e,I={},l){return this._client.getAPIList(Ze`/containers/${e}/files`,bt,{query:I,...l})}delete(e,I,l){let{container_id:n}=I;return this._client.delete(Ze`/containers/${n}/files/${e}`,{...l,headers:je([{Accept:"*/*"},l?.headers])})}};i0.Content=FX;var FY=class extends Ye{constructor(){super(...arguments),this.files=new i0(this._client)}create(e,I){return this._client.post("/containers",{body:e,...I})}retrieve(e,I){return this._client.get(Ze`/containers/${e}`,I)}list(e={},I){return this._client.getAPIList("/containers",bt,{query:e,...I})}delete(e,I){return this._client.delete(Ze`/containers/${e}`,{...I,headers:je([{Accept:"*/*"},I?.headers])})}};FY.Files=i0;o();o();var AX=class extends Ye{create(e,I,l){let{include:n,...c}=I;return this._client.post(Ze`/conversations/${e}/items`,{query:{include:n},body:c,...l})}retrieve(e,I,l){let{conversation_id:n,...c}=I;return this._client.get(Ze`/conversations/${n}/items/${e}`,{query:c,...l})}list(e,I={},l){return this._client.getAPIList(Ze`/conversations/${e}/items`,xP,{query:I,...l})}delete(e,I,l){let{conversation_id:n}=I;return this._client.delete(Ze`/conversations/${n}/items/${e}`,l)}};var AY=class extends Ye{constructor(){super(...arguments),this.items=new AX(this._client)}create(e,I){return this._client.post("/conversations",{body:e,...I})}retrieve(e,I){return this._client.get(Ze`/conversations/${e}`,I)}update(e,I,l){return this._client.post(Ze`/conversations/${e}`,{body:I,...l})}delete(e,I){return this._client.delete(Ze`/conversations/${e}`,I)}};AY.Items=AX;o();var d0=class extends Ye{create(e,I){let l=!!e.encoding_format,n=l?e.encoding_format:"base64";l&&Hc(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);let c=this._client.post("/embeddings",{body:{...e,encoding_format:n},...I});return l?c:(Hc(this._client).debug("embeddings/decoding base64 embeddings from base64"),c._thenUnwrap(r=>(r&&r.data&&r.data.forEach(s=>{let a=s.embedding;s.embedding=Yze(a)}),r)))}};o();o();o();var QX=class extends Ye{retrieve(e,I,l){let{eval_id:n,run_id:c}=I;return this._client.get(Ze`/evals/${n}/runs/${c}/output_items/${e}`,l)}list(e,I,l){let{eval_id:n,...c}=I;return this._client.getAPIList(Ze`/evals/${n}/runs/${e}/output_items`,bt,{query:c,...l})}};var b0=class extends Ye{constructor(){super(...arguments),this.outputItems=new QX(this._client)}create(e,I,l){return this._client.post(Ze`/evals/${e}/runs`,{body:I,...l})}retrieve(e,I,l){let{eval_id:n}=I;return this._client.get(Ze`/evals/${n}/runs/${e}`,l)}list(e,I={},l){return this._client.getAPIList(Ze`/evals/${e}/runs`,bt,{query:I,...l})}delete(e,I,l){let{eval_id:n}=I;return this._client.delete(Ze`/evals/${n}/runs/${e}`,l)}cancel(e,I,l){let{eval_id:n}=I;return this._client.post(Ze`/evals/${n}/runs/${e}`,l)}};b0.OutputItems=QX;var QY=class extends Ye{constructor(){super(...arguments),this.runs=new b0(this._client)}create(e,I){return this._client.post("/evals",{body:e,...I})}retrieve(e,I){return this._client.get(Ze`/evals/${e}`,I)}update(e,I,l){return this._client.post(Ze`/evals/${e}`,{body:I,...l})}list(e={},I){return this._client.getAPIList("/evals",bt,{query:e,...I})}delete(e,I){return this._client.delete(Ze`/evals/${e}`,I)}};QY.Runs=b0;o();var m0=class extends Ye{create(e,I){return this._client.post("/files",ai({body:e,...I},this._client))}retrieve(e,I){return this._client.get(Ze`/files/${e}`,I)}list(e={},I){return this._client.getAPIList("/files",bt,{query:e,...I})}delete(e,I){return this._client.delete(Ze`/files/${e}`,I)}content(e,I){return this._client.get(Ze`/files/${e}/content`,{...I,headers:je([{Accept:"application/binary"},I?.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:I=5e3,maxWait:l=1800*1e3}={}){let n=new Set(["processed","error","deleted"]),c=Date.now(),r=await this.retrieve(e);for(;!r.status||!n.has(r.status);)if(await Nh(I),r=await this.retrieve(e),Date.now()-c>l)throw new NY({message:`Giving up on waiting for file ${e} to finish processing after ${l} milliseconds.`});return r}};o();o();var wX=class extends Ye{};o();o();var XX=class extends Ye{run(e,I){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...I})}validate(e,I){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...I})}};var h0=class extends Ye{constructor(){super(...arguments),this.graders=new XX(this._client)}};h0.Graders=XX;o();o();var EX=class extends Ye{create(e,I,l){return this._client.getAPIList(Ze`/fine_tuning/checkpoints/${e}/permissions`,Wh,{body:I,method:"post",...l})}retrieve(e,I={},l){return this._client.get(Ze`/fine_tuning/checkpoints/${e}/permissions`,{query:I,...l})}delete(e,I,l){let{fine_tuned_model_checkpoint:n}=I;return this._client.delete(Ze`/fine_tuning/checkpoints/${n}/permissions/${e}`,l)}};var p0=class extends Ye{constructor(){super(...arguments),this.permissions=new EX(this._client)}};p0.Permissions=EX;o();o();var HX=class extends Ye{list(e,I={},l){return this._client.getAPIList(Ze`/fine_tuning/jobs/${e}/checkpoints`,bt,{query:I,...l})}};var u0=class extends Ye{constructor(){super(...arguments),this.checkpoints=new HX(this._client)}create(e,I){return this._client.post("/fine_tuning/jobs",{body:e,...I})}retrieve(e,I){return this._client.get(Ze`/fine_tuning/jobs/${e}`,I)}list(e={},I){return this._client.getAPIList("/fine_tuning/jobs",bt,{query:e,...I})}cancel(e,I){return this._client.post(Ze`/fine_tuning/jobs/${e}/cancel`,I)}listEvents(e,I={},l){return this._client.getAPIList(Ze`/fine_tuning/jobs/${e}/events`,bt,{query:I,...l})}pause(e,I){return this._client.post(Ze`/fine_tuning/jobs/${e}/pause`,I)}resume(e,I){return this._client.post(Ze`/fine_tuning/jobs/${e}/resume`,I)}};u0.Checkpoints=HX;var yb=class extends Ye{constructor(){super(...arguments),this.methods=new wX(this._client),this.jobs=new u0(this._client),this.checkpoints=new p0(this._client),this.alpha=new h0(this._client)}};yb.Methods=wX;yb.Jobs=u0;yb.Checkpoints=p0;yb.Alpha=h0;o();o();var vX=class extends Ye{};var wY=class extends Ye{constructor(){super(...arguments),this.graderModels=new vX(this._client)}};wY.GraderModels=vX;o();var Z0=class extends Ye{createVariation(e,I){return this._client.post("/images/variations",ai({body:e,...I},this._client))}edit(e,I){return this._client.post("/images/edits",ai({body:e,...I,stream:e.stream??!1},this._client))}generate(e,I){return this._client.post("/images/generations",{body:e,...I,stream:e.stream??!1})}};o();var W0=class extends Ye{retrieve(e,I){return this._client.get(Ze`/models/${e}`,I)}list(e){return this._client.getAPIList("/models",Wh,e)}delete(e,I){return this._client.delete(Ze`/models/${e}`,I)}};o();var N0=class extends Ye{create(e,I){return this._client.post("/moderations",{body:e,...I})}};o();o();var CX=class extends Ye{create(e,I){return this._client.post("/realtime/client_secrets",{body:e,...I})}};var XY=class extends Ye{constructor(){super(...arguments),this.clientSecrets=new CX(this._client)}};XY.ClientSecrets=CX;o();o();function wze(t,e){return!e||!KfI(e)?{...t,output_parsed:null,output:t.output.map(I=>I.type==="function_call"?{...I,parsed_arguments:null}:I.type==="message"?{...I,content:I.content.map(l=>({...l,parsed:null}))}:I)}:$de(t,e)}function $de(t,e){let I=t.output.map(n=>{if(n.type==="function_call")return{...n,parsed_arguments:_fI(e,n)};if(n.type==="message"){let c=n.content.map(r=>r.type==="output_text"?{...r,parsed:DfI(e,r.text)}:r);return{...n,content:c}}return n}),l=Object.assign({},t,{output:I});return Object.getOwnPropertyDescriptor(t,"output_text")||l6(l),Object.defineProperty(l,"output_parsed",{enumerable:!0,get(){for(let n of l.output)if(n.type==="message"){for(let c of n.content)if(c.type==="output_text"&&c.parsed!==null)return c.parsed}return null}}),l}function DfI(t,e){return t.text?.format?.type!=="json_schema"?null:"$parseRaw"in t.text?.format?(t.text?.format).$parseRaw(e):JSON.parse(e)}function KfI(t){return!!Cf(t.text?.format)}function PfI(t){return t?.$brand==="auto-parseable-tool"}function qfI(t,e){return t.find(I=>I.type==="function"&&I.name===e)}function _fI(t,e){let I=qfI(t.tools??[],e.name);return{...e,...e,parsed_arguments:PfI(I)?I.$parseRaw(e.arguments):I?.strict?JSON.parse(e.arguments):null}}function l6(t){let e=[];for(let I of t.output)if(I.type==="message")for(let l of I.content)l.type==="output_text"&&e.push(l.text);t.output_text=e.join("")}o();var JX,n6,EY,c6,Xze,Eze,Hze,vze,r6=class t extends YY{constructor(e){super(),JX.add(this),n6.set(this,void 0),EY.set(this,void 0),c6.set(this,void 0),WI(this,n6,e,"f")}static createResponse(e,I,l){let n=new t(I);return n._run(()=>n._createOrRetrieveResponse(e,I,{...l,headers:{...l?.headers,"X-Stainless-Helper-Method":"stream"}})),n}async _createOrRetrieveResponse(e,I,l){let n=l?.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),j(this,JX,"m",Xze).call(this);let c,r=null;"response_id"in I?(c=await e.responses.retrieve(I.response_id,{stream:!0},{...l,signal:this.controller.signal,stream:!0}),r=I.starting_after??null):c=await e.responses.create({...I,stream:!0},{...l,signal:this.controller.signal}),this._connected();for await(let s of c)j(this,JX,"m",Eze).call(this,s,r);if(c.controller.signal?.aborted)throw new Kc;return j(this,JX,"m",Hze).call(this)}[(n6=new WeakMap,EY=new WeakMap,c6=new WeakMap,JX=new WeakSet,Xze=function(){this.ended||WI(this,EY,void 0,"f")},Eze=function(I,l){if(this.ended)return;let n=(r,s)=>{(l==null||s.sequence_number>l)&&this._emit(r,s)},c=j(this,JX,"m",vze).call(this,I);switch(n("event",I),I.type){case"response.output_text.delta":{let r=c.output[I.output_index];if(!r)throw new Te(`missing output at index ${I.output_index}`);if(r.type==="message"){let s=r.content[I.content_index];if(!s)throw new Te(`missing content at index ${I.content_index}`);if(s.type!=="output_text")throw new Te(`expected content to be 'output_text', got ${s.type}`);n("response.output_text.delta",{...I,snapshot:s.text})}break}case"response.function_call_arguments.delta":{let r=c.output[I.output_index];if(!r)throw new Te(`missing output at index ${I.output_index}`);r.type==="function_call"&&n("response.function_call_arguments.delta",{...I,snapshot:r.arguments});break}default:n(I.type,I);break}},Hze=function(){if(this.ended)throw new Te("stream has ended, this shouldn't happen");let I=j(this,EY,"f");if(!I)throw new Te("request ended without sending any events");WI(this,EY,void 0,"f");let l=$fI(I,j(this,n6,"f"));return WI(this,c6,l,"f"),l},vze=function(I){let l=j(this,EY,"f");if(!l){if(I.type!=="response.created")throw new Te(`When snapshot hasn't been set yet, expected 'response.created' event, got ${I.type}`);return l=WI(this,EY,I.response,"f"),l}switch(I.type){case"response.output_item.added":{l.output.push(I.item);break}case"response.content_part.added":{let n=l.output[I.output_index];if(!n)throw new Te(`missing output at index ${I.output_index}`);n.type==="message"&&n.content.push(I.part);break}case"response.output_text.delta":{let n=l.output[I.output_index];if(!n)throw new Te(`missing output at index ${I.output_index}`);if(n.type==="message"){let c=n.content[I.content_index];if(!c)throw new Te(`missing content at index ${I.content_index}`);if(c.type!=="output_text")throw new Te(`expected content to be 'output_text', got ${c.type}`);c.text+=I.delta}break}case"response.function_call_arguments.delta":{let n=l.output[I.output_index];if(!n)throw new Te(`missing output at index ${I.output_index}`);n.type==="function_call"&&(n.arguments+=I.delta);break}case"response.completed":{WI(this,EY,I.response,"f");break}}return l},Symbol.asyncIterator)](){let e=[],I=[],l=!1;return this.on("event",n=>{let c=I.shift();c?c.resolve(n):e.push(n)}),this.on("end",()=>{l=!0;for(let n of I)n.resolve(void 0);I.length=0}),this.on("abort",n=>{l=!0;for(let c of I)c.reject(n);I.length=0}),this.on("error",n=>{l=!0;for(let c of I)c.reject(n);I.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:l?{value:void 0,done:!0}:new Promise((c,r)=>I.push({resolve:c,reject:r})).then(c=>c?{value:c,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();let e=j(this,c6,"f");if(!e)throw new Te("stream ended without producing a ChatCompletion");return e}};function $fI(t,e){return wze(t,e)}o();var LX=class extends Ye{list(e,I={},l){return this._client.getAPIList(Ze`/responses/${e}/input_items`,bt,{query:I,...l})}};var HY=class extends Ye{constructor(){super(...arguments),this.inputItems=new LX(this._client)}create(e,I){return this._client.post("/responses",{body:e,...I,stream:e.stream??!1})._thenUnwrap(l=>("object"in l&&l.object==="response"&&l6(l),l))}retrieve(e,I={},l){return this._client.get(Ze`/responses/${e}`,{query:I,...l,stream:I?.stream??!1})._thenUnwrap(n=>("object"in n&&n.object==="response"&&l6(n),n))}delete(e,I){return this._client.delete(Ze`/responses/${e}`,{...I,headers:je([{Accept:"*/*"},I?.headers])})}parse(e,I){return this._client.responses.create(e,I)._thenUnwrap(l=>$de(l,e))}stream(e,I){return r6.createResponse(this._client,e,I)}cancel(e,I){return this._client.post(Ze`/responses/${e}/cancel`,I)}};HY.InputItems=LX;o();o();var fX=class extends Ye{create(e,I,l){return this._client.post(Ze`/uploads/${e}/parts`,ai({body:I,...l},this._client))}};var vY=class extends Ye{constructor(){super(...arguments),this.parts=new fX(this._client)}create(e,I){return this._client.post("/uploads",{body:e,...I})}cancel(e,I){return this._client.post(Ze`/uploads/${e}/cancel`,I)}complete(e,I,l){return this._client.post(Ze`/uploads/${e}/complete`,{body:I,...l})}};vY.Parts=fX;o();o();o();var Cze=async t=>{let e=await Promise.allSettled(t),I=e.filter(n=>n.status==="rejected");if(I.length){for(let n of I)console.error(n.reason);throw new Error(`${I.length} promise(s) failed - see the above errors`)}let l=[];for(let n of e)n.status==="fulfilled"&&l.push(n.value);return l};var kX=class extends Ye{create(e,I,l){return this._client.post(Ze`/vector_stores/${e}/file_batches`,{body:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}retrieve(e,I,l){let{vector_store_id:n}=I;return this._client.get(Ze`/vector_stores/${n}/file_batches/${e}`,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}cancel(e,I,l){let{vector_store_id:n}=I;return this._client.post(Ze`/vector_stores/${n}/file_batches/${e}/cancel`,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}async createAndPoll(e,I,l){let n=await this.create(e,I);return await this.poll(e,n.id,l)}listFiles(e,I,l){let{vector_store_id:n,...c}=I;return this._client.getAPIList(Ze`/vector_stores/${n}/file_batches/${e}/files`,bt,{query:c,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}async poll(e,I,l){let n=je([l?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":l?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:c,response:r}=await this.retrieve(I,{vector_store_id:e},{...l,headers:n}).withResponse();switch(c.status){case"in_progress":let s=5e3;if(l?.pollIntervalMs)s=l.pollIntervalMs;else{let a=r.headers.get("openai-poll-after-ms");if(a){let G=parseInt(a);isNaN(G)||(s=G)}}await Nh(s);break;case"failed":case"cancelled":case"completed":return c}}}async uploadAndPoll(e,{files:I,fileIds:l=[]},n){if(I==null||I.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let c=n?.maxConcurrency??5,r=Math.min(c,I.length),s=this._client,a=I.values(),G=[...l];async function i(b){for(let m of b){let h=await s.files.create({file:m,purpose:"assistants"},n);G.push(h.id)}}let d=Array(r).fill(a).map(i);return await Cze(d),await this.createAndPoll(e,{file_ids:G})}};o();var xX=class extends Ye{create(e,I,l){return this._client.post(Ze`/vector_stores/${e}/files`,{body:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}retrieve(e,I,l){let{vector_store_id:n}=I;return this._client.get(Ze`/vector_stores/${n}/files/${e}`,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}update(e,I,l){let{vector_store_id:n,...c}=I;return this._client.post(Ze`/vector_stores/${n}/files/${e}`,{body:c,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}list(e,I={},l){return this._client.getAPIList(Ze`/vector_stores/${e}/files`,bt,{query:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}delete(e,I,l){let{vector_store_id:n}=I;return this._client.delete(Ze`/vector_stores/${n}/files/${e}`,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}async createAndPoll(e,I,l){let n=await this.create(e,I,l);return await this.poll(e,n.id,l)}async poll(e,I,l){let n=je([l?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":l?.pollIntervalMs?.toString()??void 0}]);for(;;){let c=await this.retrieve(I,{vector_store_id:e},{...l,headers:n}).withResponse(),r=c.data;switch(r.status){case"in_progress":let s=5e3;if(l?.pollIntervalMs)s=l.pollIntervalMs;else{let a=c.response.headers.get("openai-poll-after-ms");if(a){let G=parseInt(a);isNaN(G)||(s=G)}}await Nh(s);break;case"failed":case"completed":return r}}}async upload(e,I,l){let n=await this._client.files.create({file:I,purpose:"assistants"},l);return this.create(e,{file_id:n.id},l)}async uploadAndPoll(e,I,l){let n=await this.upload(e,I,l);return await this.poll(e,n.id,l)}content(e,I,l){let{vector_store_id:n}=I;return this._client.getAPIList(Ze`/vector_stores/${n}/files/${e}/content`,Wh,{...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}};var hZ=class extends Ye{constructor(){super(...arguments),this.files=new xX(this._client),this.fileBatches=new kX(this._client)}create(e,I){return this._client.post("/vector_stores",{body:e,...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}retrieve(e,I){return this._client.get(Ze`/vector_stores/${e}`,{...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}update(e,I,l){return this._client.post(Ze`/vector_stores/${e}`,{body:I,...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}list(e={},I){return this._client.getAPIList("/vector_stores",bt,{query:e,...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}delete(e,I){return this._client.delete(Ze`/vector_stores/${e}`,{...I,headers:je([{"OpenAI-Beta":"assistants=v2"},I?.headers])})}search(e,I,l){return this._client.getAPIList(Ze`/vector_stores/${e}/search`,Wh,{body:I,method:"post",...l,headers:je([{"OpenAI-Beta":"assistants=v2"},l?.headers])})}};hZ.Files=xX;hZ.FileBatches=kX;o();var BX,Jze,s6,Y0=class extends Ye{constructor(){super(...arguments),BX.add(this)}async unwrap(e,I,l=this._client.webhookSecret,n=300){return await this.verifySignature(e,I,l,n),JSON.parse(e)}async verifySignature(e,I,l=this._client.webhookSecret,n=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");j(this,BX,"m",Jze).call(this,l);let c=je([I]).values,r=j(this,BX,"m",s6).call(this,c,"webhook-signature"),s=j(this,BX,"m",s6).call(this,c,"webhook-timestamp"),a=j(this,BX,"m",s6).call(this,c,"webhook-id"),G=parseInt(s,10);if(isNaN(G))throw new Zh("Invalid webhook timestamp format");let i=Math.floor(Date.now()/1e3);if(i-G>n)throw new Zh("Webhook timestamp is too old");if(G>i+n)throw new Zh("Webhook timestamp is too new");let d=r.split(" ").map(p=>p.startsWith("v1,")?p.substring(3):p),b=l.startsWith("whsec_")?Buffer.from(l.replace("whsec_",""),"base64"):Buffer.from(l,"utf-8"),m=a?`${a}.${s}.${e}`:`${s}.${e}`,h=await crypto.subtle.importKey("raw",b,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let p of d)try{let Z=Buffer.from(p,"base64");if(await crypto.subtle.verify("HMAC",h,Z,new TextEncoder().encode(m)))return}catch{continue}throw new Zh("The given webhook signature does not match the expected signature")}};BX=new WeakSet,Jze=function(e){if(typeof e!="string"||e.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},s6=function(e,I){if(!e)throw new Error("Headers are required");let l=e.get(I);if(l==null)throw new Error(`Missing required header: ${I}`);return l};var ebe,Ibe,a6,Lze,LI=class{constructor({baseURL:e=Vb("OPENAI_BASE_URL"),apiKey:I=Vb("OPENAI_API_KEY"),organization:l=Vb("OPENAI_ORG_ID")??null,project:n=Vb("OPENAI_PROJECT_ID")??null,webhookSecret:c=Vb("OPENAI_WEBHOOK_SECRET")??null,...r}={}){if(ebe.add(this),a6.set(this,void 0),this.completions=new G0(this),this.chat=new RY(this),this.embeddings=new d0(this),this.files=new m0(this),this.images=new Z0(this),this.audio=new Rh(this),this.moderations=new N0(this),this.models=new W0(this),this.fineTuning=new yb(this),this.graders=new wY(this),this.vectorStores=new hZ(this),this.webhooks=new Y0(this),this.beta=new gh(this),this.batches=new c0(this),this.uploads=new vY(this),this.responses=new HY(this),this.realtime=new XY(this),this.conversations=new AY(this),this.evals=new QY(this),this.containers=new FY(this),I===void 0)throw new Te("Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.");let s={apiKey:I,organization:l,project:n,webhookSecret:c,...r,baseURL:e||"https://api.openai.com/v1"};if(!s.dangerouslyAllowBrowser&&oze())throw new Te(`It looks like you're running in a browser-like environment.
591
591
 
592
592
  This is disabled by default, as it risks exposing your secret API credentials to attackers.
@@ -599,7 +599,7 @@ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
599
599
  `);this.baseURL=s.baseURL,this.timeout=s.timeout??Ibe.DEFAULT_TIMEOUT,this.logger=s.logger??console;let a="warn";this.logLevel=a,this.logLevel=Yde(s.logLevel,"ClientOptions.logLevel",this)??Yde(Vb("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??a,this.fetchOptions=s.fetchOptions,this.maxRetries=s.maxRetries??2,this.fetch=s.fetch??XBe(),WI(this,a6,ize,"f"),this._options=s,this.apiKey=typeof I=="string"?I:"Missing Key",this.organization=l,this.project=n,this.webhookSecret=c}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:I}){}async authHeaders(e){return je([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return jde(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Yh}`}defaultIdempotencyKey(){return`stainless-node-retry-${zde()}`}makeStatusError(e,I,l,n){return bc.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 Te?l:new Te(`Failed to get token from 'apiKey' function: ${l.message}`,{cause:l})}if(typeof I!="string"||!I)throw new Te(`Expected 'apiKey' function argument to return a string but it returned ${I}`);return this.apiKey=I,!0}buildURL(e,I,l){let n=!j(this,ebe,"m",Lze).call(this)&&l||this.baseURL,c=LBe(e)?new URL(e):new URL(n+(n.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),r=this.defaultQuery();return fBe(r)||(I={...r,...I}),typeof I=="object"&&I&&!Array.isArray(I)&&(c.search=this.stringifyQuery(I)),c.toString()}async prepareOptions(e){await this._callApiKey()}async prepareRequest(e,{url:I,options:l}){}get(e,I){return this.methodRequest("get",e,I)}post(e,I){return this.methodRequest("post",e,I)}patch(e,I){return this.methodRequest("patch",e,I)}put(e,I){return this.methodRequest("put",e,I)}delete(e,I){return this.methodRequest("delete",e,I)}methodRequest(e,I,l){return this.request(Promise.resolve(l).then(n=>({method:e,path:I,...n})))}request(e,I=null){return new I0(this,this.makeRequest(e,I,void 0))}async makeRequest(e,I,l){let n=await e,c=n.maxRetries??this.maxRetries;I==null&&(I=c),await this.prepareOptions(n);let{req:r,url:s,timeout:a}=await this.buildRequest(n,{retryCount:c-I});await this.prepareRequest(r,{url:s,options:n});let G="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),i=l===void 0?"":`, retryOf: ${l}`,d=Date.now();if(Hc(this).debug(`[${G}] sending request`,oZ({retryOfRequestLogID:l,method:n.method,url:s,options:n,headers:r.headers})),n.signal?.aborted)throw new Kc;let b=new AbortController,m=await this.fetchWithTimeout(s,r,a,b).catch(Af),h=Date.now();if(m instanceof globalThis.Error){let W=`retrying, ${I} attempts remaining`;if(n.signal?.aborted)throw new Kc;let Y=Ff(m)||/timed? ?out/i.test(String(m)+("cause"in m?String(m.cause):""));if(I)return Hc(this).info(`[${G}] connection ${Y?"timed out":"failed"} - ${W}`),Hc(this).debug(`[${G}] connection ${Y?"timed out":"failed"} (${W})`,oZ({retryOfRequestLogID:l,url:s,durationMs:h-d,message:m.message})),this.retryRequest(n,I,l??G);throw Hc(this).info(`[${G}] connection ${Y?"timed out":"failed"} - error; no more retries left`),Hc(this).debug(`[${G}] connection ${Y?"timed out":"failed"} (error; no more retries left)`,oZ({retryOfRequestLogID:l,url:s,durationMs:h-d,message:m.message})),Y?new NY:new WY({cause:m})}let p=[...m.headers.entries()].filter(([W])=>W==="x-request-id").map(([W,Y])=>", "+W+": "+JSON.stringify(Y)).join(""),Z=`[${G}${i}${p}] ${r.method} ${s} ${m.ok?"succeeded":"failed"} with status ${m.status} in ${h-d}ms`;if(!m.ok){let W=await this.shouldRetry(m);if(I&&W){let C=`retrying, ${I} attempts remaining`;return await EBe(m.body),Hc(this).info(`${Z} - ${C}`),Hc(this).debug(`[${G}] response error (${C})`,oZ({retryOfRequestLogID:l,url:m.url,status:m.status,headers:m.headers,durationMs:h-d})),this.retryRequest(n,I,l??G,m.headers)}let Y=W?"error; no more retries left":"error; not retryable";Hc(this).info(`${Z} - ${Y}`);let F=await m.text().catch(C=>Af(C).message),g=BBe(F),A=g?void 0:F;throw Hc(this).debug(`[${G}] response error (${Y})`,oZ({retryOfRequestLogID:l,url:m.url,status:m.status,headers:m.headers,message:A,durationMs:Date.now()-d})),this.makeStatusError(m.status,g,A,m.headers)}return Hc(this).info(Z),Hc(this).debug(`[${G}] response start`,oZ({retryOfRequestLogID:l,url:m.url,status:m.status,headers:m.headers,durationMs:h-d})),{response:m,options:n,controller:b,requestLogID:G,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 Hf(this,l,e)}async fetchWithTimeout(e,I,l,n){let{signal:c,method:r,...s}=I||{};c&&c.addEventListener("abort",()=>n.abort());let a=setTimeout(()=>n.abort(),l),G=globalThis.ReadableStream&&s.body instanceof globalThis.ReadableStream||typeof s.body=="object"&&s.body!==null&&Symbol.asyncIterator in s.body,i={signal:n.signal,...G?{duplex:"half"}:{},method:"GET",...s};r&&(i.method=r.toUpperCase());try{return await this.fetch.call(void 0,e,i)}finally{clearTimeout(a)}}async shouldRetry(e){let I=e.headers.get("x-should-retry");return I==="true"?!0:I==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,I,l,n){let c,r=n?.get("retry-after-ms");if(r){let a=parseFloat(r);Number.isNaN(a)||(c=a)}let s=n?.get("retry-after");if(s&&!c){let a=parseFloat(s);Number.isNaN(a)?c=Date.parse(s)-Date.now():c=a*1e3}if(!(c&&0<=c&&c<60*1e3)){let a=e.maxRetries??this.maxRetries;c=this.calculateDefaultRetryTimeoutMillis(I,a)}return await Nh(c),this.makeRequest(e,I-1,l)}calculateDefaultRetryTimeoutMillis(e,I){let c=I-e,r=Math.min(.5*Math.pow(2,c),8),s=1-Math.random()*.25;return r*s*1e3}async buildRequest(e,{retryCount:I=0}={}){let l={...e},{method:n,path:c,query:r,defaultBaseURL:s}=l,a=this.buildURL(c,r,s);"timeout"in l&&xBe("timeout",l.timeout),l.timeout=l.timeout??this.timeout;let{bodyHeaders:G,body:i}=this.buildBody({options:l}),d=await this.buildHeaders({options:e,method:n,bodyHeaders:G,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:a,timeout:l.timeout}}async buildHeaders({options:e,method:I,bodyHeaders:l,retryCount:n}){let c={};this.idempotencyHeader&&I!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),c[this.idempotencyHeader]=e.idempotencyKey);let r=je([c,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(n),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...Gze(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,l,e.headers]);return this.validateHeaders(r),r.values}buildBody({options:{body:e,headers:I}}){if(!e)return{bodyHeaders:void 0,body:void 0};let l=je([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:CP(e)}:j(this,a6,"f").call(this,{body:e,headers:l})}};Ibe=LI,a6=new WeakMap,ebe=new WeakSet,Lze=function(){return this.baseURL!=="https://api.openai.com/v1"};LI.OpenAI=Ibe;LI.DEFAULT_TIMEOUT=6e5;LI.OpenAIError=Te;LI.APIError=bc;LI.APIConnectionError=WY;LI.APIConnectionTimeoutError=NY;LI.APIUserAbortError=Kc;LI.NotFoundError=eX;LI.ConflictError=IX;LI.RateLimitError=lX;LI.BadRequestError=qw;LI.AuthenticationError=_w;LI.InternalServerError=nX;LI.PermissionDeniedError=$w;LI.UnprocessableEntityError=tX;LI.InvalidWebhookSignatureError=Zh;LI.toFile=_P;LI.Completions=G0;LI.Chat=RY;LI.Embeddings=d0;LI.Files=m0;LI.Images=Z0;LI.Audio=Rh;LI.Moderations=N0;LI.Models=W0;LI.FineTuning=yb;LI.Graders=wY;LI.VectorStores=hZ;LI.Webhooks=Y0;LI.Beta=gh;LI.Batches=c0;LI.Uploads=vY;LI.Responses=HY;LI.Realtime=XY;LI.Conversations=AY;LI.Evals=QY;LI.Containers=FY;o();var jf=class extends LI{constructor({baseURL:e=Vb("OPENAI_BASE_URL"),apiKey:I=Vb("AZURE_OPENAI_API_KEY"),apiVersion:l=Vb("OPENAI_API_VERSION"),endpoint:n,deployment:c,azureADTokenProvider:r,dangerouslyAllowBrowser:s,...a}={}){if(!l)throw new Te("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 r=="function"&&(s=!0),!r&&!I)throw new Te("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(r&&I)throw new Te("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(a.defaultQuery={...a.defaultQuery,"api-version":l},e){if(n)throw new Te("baseURL and endpoint are mutually exclusive")}else{if(n||(n=process.env.AZURE_OPENAI_ENDPOINT),!n)throw new Te("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${n}/openai`}super({apiKey:r??I,baseURL:e,...a,...s!==void 0?{dangerouslyAllowBrowser:s}:{}}),this.apiVersion="",this.apiVersion=l,this.deploymentName=c}async buildRequest(e,I={}){if(c3I.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!aX(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"?je([{"api-key":this.apiKey}]):super.authHeaders(e)}},c3I=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"]);o();import{readFileSync as r3I}from"fs";import{dirname as s3I,join as o6}from"path";import{fileURLToPath as a3I}from"url";var Df=null;function fze(){return tbe().version}function tbe(){if(Df!==null)return Df;try{let t=a3I(import.meta.url),e=s3I(t),I=[o6(e,"package.json"),o6(e,"../package.json"),o6(e,"../../package.json"),o6(e,"../runtime/package.json")];for(let n of I)try{let c=JSON.parse(r3I(n,"utf8")),r={name:c.name||"unknown",nameNoScope:o3I(c.name||"unknown"),version:c.version||"unknown",buildMetadata:c.buildMetadata};return Df=r,r}catch{continue}let l={name:"unknown",nameNoScope:"unknown",version:"unknown"};return Df=l,l}catch{let e={name:"unknown",nameNoScope:"unknown",version:"unknown"};return Df=e,e}}function o3I(t){return t.replace(/^@.*\//,"")}o();o();o();var kze=Ts("keyvault-secrets");o();o();o();o();var xze=Ts("keyvault-secrets");o();o();function la(t,e){return typeof t=="string"?OD(t,e):OD(t)}o();o();o();o();function lbe(t){return k4(t,["key"])&&typeof t.key=="string"}o();o();o();function Kf(t){let e=t;return e&&typeof e.getToken=="function"&&(e.signRequest===void 0||e.getToken.length>0)}o();var G3I="ApiVersionPolicy";function Bze(t){return{name:G3I,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)}}}o();var i3I="keyCredentialAuthenticationPolicy";function zze(t,e){return{name:i3I,async sendRequest(I,l){return I.headers.set(e,t.key),l(I)}}}function Uze(t,e,I={}){var l,n,c,r;let{credential:s,clientOptions:a}=I;if(s){if(Kf(s)){let G=Xy({credential:s,scopes:(n=(l=a?.credentials)===null||l===void 0?void 0:l.scopes)!==null&&n!==void 0?n:`${e}/.default`});t.addPolicy(G)}else if(d3I(s)){if(!(!((c=a?.credentials)===null||c===void 0)&&c.apiKeyHeaderName))throw new Error("Missing API Key Header Name");let G=zze(s,(r=a?.credentials)===null||r===void 0?void 0:r.apiKeyHeaderName);t.addPolicy(G)}}}function Sze(t,e,I={}){let l=rL(I);return l.addPolicy(Bze(I)),Uze(l,t,{credential:e,clientOptions:I}),l}function d3I(t){return t.key!==void 0}o();function Do(t){return xoe(t)}o();function CY(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 Oze(t,e,I={}){let l;e&&(b3I(e)?l=e:I=e??{});let n=Sze(t,l,I),c=koe(t,Object.assign(Object.assign({},I),{pipeline:n})),r=(s,...a)=>({get:(G={})=>c.path(s,...a).get(CY(G)),post:(G={})=>c.path(s,...a).post(CY(G)),put:(G={})=>c.path(s,...a).put(CY(G)),patch:(G={})=>c.path(s,...a).patch(CY(G)),delete:(G={})=>c.path(s,...a).delete(CY(G)),head:(G={})=>c.path(s,...a).head(CY(G)),options:(G={})=>c.path(s,...a).options(CY(G)),trace:(G={})=>c.path(s,...a).trace(CY(G))});return{path:r,pathUnchecked:r,pipeline:c.pipeline}}function b3I(t){return lbe(t)||Kf(t)}o();function nbe(t,e,I={}){var l,n,c,r,s,a,G,i;let d=(n=(l=I.endpoint)!==null&&l!==void 0?l:I.baseUrl)!==null&&n!==void 0?n:String(t),b=(c=I?.userAgentOptions)===null||c===void 0?void 0:c.userAgentPrefix,m="azsdk-js-keyvault-secrets/1.0.0-beta.1",h=b?`${b} azsdk-js-api ${m}`:`azsdk-js-api ${m}`,p=Object.assign(Object.assign({},I),{userAgentOptions:{userAgentPrefix:h},loggingOptions:{logger:(s=(r=I.loggingOptions)===null||r===void 0?void 0:r.logger)!==null&&s!==void 0?s:xze.info},credentials:{scopes:(G=(a=I.credentials)===null||a===void 0?void 0:a.scopes)!==null&&G!==void 0?G:["https://vault.azure.net/.default"]}}),{apiVersion:Z}=p,W=tL(p,["apiVersion"]),Y=Oze(d,e,W);Y.pipeline.removePolicy({name:"ApiVersionPolicy"});let F=(i=I.apiVersion)!==null&&i!==void 0?i:"7.6";return Y.pipeline.addPolicy({name:"ClientApiVersionPolicy",sendRequest:(g,A)=>{let k=new URL(g.url);return k.searchParams.get("api-version")||(g.url=`${g.url}${Array.from(k.searchParams.keys()).length>0?"&":"?"}api-version=${F}`),A(g)}}),Object.assign(Object.assign({},Y),{apiVersion:F})}o();o();function Mze(t){return{value:t.value,tags:t.tags,contentType:t.contentType,attributes:t.secretAttributes?Tze(t.secretAttributes):t.secretAttributes}}function Tze(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 i6(t){return{enabled:t.enabled,notBefore:t.nbf?new Date(t.nbf*1e3):t.nbf,expires:t.exp?new Date(t.exp*1e3):t.exp,created:t.created?new Date(t.created*1e3):t.created,updated:t.updated?new Date(t.updated*1e3):t.updated,recoverableDays:t.recoverableDays,recoveryLevel:t.recoveryLevel}}var Pf;(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"})(Pf||(Pf={}));function zX(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?i6(t.attributes):t.attributes,tags:t.tags,kid:t.kid,managed:t.managed}}function Gi(t){return{error:t.error?jze(t.error):t.error}}function jze(t){return{code:t.code,message:t.message,innerError:t.innererror?jze(t.innererror):t.innererror}}function cbe(t){return{value:t.value,id:t.id,contentType:t.contentType,attributes:t.attributes?i6(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 Dze(t){return{contentType:t.contentType,attributes:t.secretAttributes?Tze(t.secretAttributes):t.secretAttributes,tags:t.tags}}function rbe(t){return{value:t.value?m3I(t.value):t.value,nextLink:t.nextLink}}function m3I(t){return t.map(e=>h3I(e))}function h3I(t){return{id:t.id,attributes:t.attributes?i6(t.attributes):t.attributes,tags:t.tags,contentType:t.contentType,managed:t.managed}}function Kze(t){return{value:t.value?p3I(t.value):t.value,nextLink:t.nextLink}}function p3I(t){return t.map(e=>u3I(e))}function u3I(t){return{id:t.id,attributes:t.attributes?i6(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 Pze(t){return{value:t.value&&typeof t.value=="string"?pLe(t.value,"base64url"):t.value}}function qze(t){return{value:hLe(t.secretBundleBackup,"base64url")}}var G6;(function(t){t.V75="7.5",t.V76Preview2="7.6-preview.2",t.V76="7.6"})(G6||(G6={}));o();function d6(t,e,I,l,n={}){var c,r;let s=(c=n.itemName)!==null&&c!==void 0?c:"value",a=(r=n.nextLinkName)!==null&&r!==void 0?r:"nextLink",G={getPage:async i=>{let d=i===void 0?await e():await t.pathUnchecked(i).get();V3I(d,l);let b=await I(d),m=N3I(b,a);return{page:Y3I(b,s),nextPageLink:m}},byPage:i=>{let{continuationToken:d}=i??{};return sbe(G,{pageLink:d})}};return Z3I(G)}function Z3I(t){var e;let I=W3I(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 sbe(t,{pageLink:n})}}}function W3I(t){return TN(this,arguments,function*(){var I,l,n,c;let r=sbe(t);try{for(var s=!0,a=wy(r),G;G=yield An(a.next()),I=G.done,!I;s=!0)c=G.value,s=!1,yield An(yield*ufe(wy(c)))}catch(i){l={error:i}}finally{try{!s&&!I&&(n=a.return)&&(yield An(n.call(a)))}finally{if(l)throw l.error}}})}function sbe(t){return TN(this,arguments,function*(I,l={}){let{pageLink:n}=l,c=yield An(I.getPage(n??I.firstPageLink));if(!c)return yield An(void 0);let r=c.page;for(r.continuationToken=c.nextPageLink,yield yield An(r);c.nextPageLink;){if(c=yield An(I.getPage(c.nextPageLink)),!c)return yield An(void 0);r=c.page,r.continuationToken=c.nextPageLink,yield yield An(r)}})}function N3I(t,e){if(!e)return;let I=t[e];if(typeof I!="string"&&typeof I<"u"&&I!==null)throw new Bu(`Body Property ${e} should be a string or undefined or null but got ${typeof I}`);if(I!==null)return I}function Y3I(t,e){let I=t[e];if(!Array.isArray(I))throw new Bu(`Couldn't paginate response
600
600
  Body doesn't contain an array property with name: ${e}`);return I??[]}function V3I(t,e){if(!e.includes(t.status))throw la(`Pagination failed with unexpected statusCode ${t.status}`,t)}o();function UX(t,e,I){return(e??I==="+")||I==="#"?_ze(t):$ze(t)}function _ze(t){return t.split(/(%[0-9A-Fa-f]{2})/g).map(e=>/%[0-9A-Fa-f]/.test(e)?e:encodeURI(e)).join("")}function $ze(t){return encodeURIComponent(t).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)}function qf(t){return t!=null}function abe(t){return[!!t&&[";","?","&"].includes(t),t&&["?","&"].includes(t)?"=":""]}function b6(t,e=!1){return e?!t||t==="+"?"":t:!t||t==="+"||t==="#"?",":t==="?"?"&":t}function R3I(t){let e=t.isFirst,{op:I,varName:l,varValue:n,reserved:c}=t,r=[],[s,a]=abe(I);if(Array.isArray(n))for(let G of n.filter(qf))r.push(`${b6(I,e)}`),s&&l&&(r.push(`${encodeURIComponent(l)}`),G===""?r.push(a):r.push("=")),r.push(UX(G,c,I)),e=!1;else if(typeof n=="object")for(let G of Object.keys(n)){let i=n[G];qf(i)&&(r.push(`${b6(I,e)}`),G&&(r.push(`${encodeURIComponent(G)}`),s&&i===""?r.push(a):r.push("=")),r.push(UX(i,c,I)),e=!1)}return r.join("")}function y3I(t){let{op:e,varName:I,varValue:l,isFirst:n,reserved:c}=t,r=[],s=b6(e,n),[a,G]=abe(e);if(a&&I){if(r.push(UX(I,c,e)),l==="")return G||r.push(G),r.join("")?`${s}${r.join("")}`:void 0;r.push("=")}let i=[];if(Array.isArray(l))for(let d of l.filter(qf))i.push(UX(d,c,e));else if(typeof l=="object")for(let d of Object.keys(l))qf(l[d])&&(i.push($ze(d)),i.push(UX(l[d],c,e)));return r.push(i.join(",")),r.join(",")?`${s}${r.join("")}`:void 0}function g3I(t){let{op:e,varName:I,modifier:l,isFirst:n,reserved:c,varValue:r}=t;if(qf(r))if(["string","number","boolean"].includes(typeof r)){let s=r.toString(),[a,G]=abe(e),i=[b6(e,n)];return a&&I&&(i.push(I),s===""?i.push(G):i.push("=")),l&&l!=="*"&&(s=s.substring(0,parseInt(l,10))),i.push(UX(s,c,e)),i.join("")}else return l==="*"?R3I(t):y3I(t);else return}function ii(t,e,I){return t.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(l,n,c)=>{if(!n)return _ze(c);let r;["+","#",".","/",";","?","&"].includes(n[0])&&(r=n[0],n=n.slice(1));let s=n.split(/,/g),a=[];for(let G of s){let i=/([^:\*]*)(?::(\d+)|(\*))?/.exec(G);if(!i||!i[1])continue;let d=g3I({isFirst:a.length===0,op:r,varValue:e[i[1]],varName:i[1],modifier:i[2]||i[3],reserved:I?.allowReserved});d&&a.push(d)}return a.join("")})}function F3I(t,e,I={requestOptions:{}}){var l,n;let c=ii("/secrets/restore{?api%2Dversion}",{"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).post(Object.assign(Object.assign({},Do(I)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers),body:qze(e)}))}async function A3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return zX(t.body)}async function obe(t,e,I={requestOptions:{}}){let l=await F3I(t,e,I);return A3I(l)}function Q3I(t,e,I={requestOptions:{}}){var l,n;let c=ii("/secrets/{secret-name}/backup{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).post(Object.assign(Object.assign({},Do(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function w3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return Pze(t.body)}async function Gbe(t,e,I={requestOptions:{}}){let l=await Q3I(t,e,I);return w3I(l)}function X3I(t,e,I={requestOptions:{}}){var l,n;let c=ii("/deletedsecrets/{secret-name}/recover{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).post(Object.assign(Object.assign({},Do(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function E3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return zX(t.body)}async function ibe(t,e,I={requestOptions:{}}){let l=await X3I(t,e,I);return E3I(l)}function H3I(t,e,I={requestOptions:{}}){var l,n;let c=ii("/deletedsecrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).delete(Object.assign(Object.assign({},Do(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function v3I(t){if(!["204"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}}async function dbe(t,e,I={requestOptions:{}}){let l=await H3I(t,e,I);return v3I(l)}function C3I(t,e,I={requestOptions:{}}){var l,n;let c=ii("/deletedsecrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).get(Object.assign(Object.assign({},Do(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function J3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return cbe(t.body)}async function bbe(t,e,I={requestOptions:{}}){let l=await C3I(t,e,I);return J3I(l)}function L3I(t,e={requestOptions:{}}){var I,l;let n=ii("/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({},Do(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function f3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return Kze(t.body)}function mbe(t,e={requestOptions:{}}){return d6(t,()=>L3I(t,e),f3I,["200"],{itemName:"value",nextLinkName:"nextLink"})}function k3I(t,e,I={requestOptions:{}}){var l,n;let c=ii("/secrets/{secret-name}/versions{?api%2Dversion,maxresults}",{"secret-name":e,"api%2Dversion":t.apiVersion,maxresults:I?.maxresults},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).get(Object.assign(Object.assign({},Do(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function x3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return rbe(t.body)}function hbe(t,e,I={requestOptions:{}}){return d6(t,()=>k3I(t,e,I),x3I,["200"],{itemName:"value",nextLinkName:"nextLink"})}function B3I(t,e={requestOptions:{}}){var I,l;let n=ii("/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({},Do(e)),{headers:Object.assign({accept:"application/json"},(l=e.requestOptions)===null||l===void 0?void 0:l.headers)}))}async function z3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return rbe(t.body)}function pbe(t,e={requestOptions:{}}){return d6(t,()=>B3I(t,e),z3I,["200"],{itemName:"value",nextLinkName:"nextLink"})}function U3I(t,e,I,l={requestOptions:{}}){var n,c;let r=ii("/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(r).get(Object.assign(Object.assign({},Do(l)),{headers:Object.assign({accept:"application/json"},(c=l.requestOptions)===null||c===void 0?void 0:c.headers)}))}async function S3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return zX(t.body)}async function ube(t,e,I,l={requestOptions:{}}){let n=await U3I(t,e,I,l);return S3I(n)}function O3I(t,e,I,l,n={requestOptions:{}}){var c,r;let s=ii("/secrets/{secret-name}/{secret-version}{?api%2Dversion}",{"secret-name":e,"secret-version":I,"api%2Dversion":t.apiVersion},{allowReserved:(c=n?.requestOptions)===null||c===void 0?void 0:c.skipUrlEncoding});return t.path(s).patch(Object.assign(Object.assign({},Do(n)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(r=n.requestOptions)===null||r===void 0?void 0:r.headers),body:Dze(l)}))}async function M3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return zX(t.body)}async function Zbe(t,e,I,l,n={requestOptions:{}}){let c=await O3I(t,e,I,l,n);return M3I(c)}function T3I(t,e,I={requestOptions:{}}){var l,n;let c=ii("/secrets/{secret-name}{?api%2Dversion}",{"secret-name":e,"api%2Dversion":t.apiVersion},{allowReserved:(l=I?.requestOptions)===null||l===void 0?void 0:l.skipUrlEncoding});return t.path(c).delete(Object.assign(Object.assign({},Do(I)),{headers:Object.assign({accept:"application/json"},(n=I.requestOptions)===null||n===void 0?void 0:n.headers)}))}async function j3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return cbe(t.body)}async function Wbe(t,e,I={requestOptions:{}}){let l=await T3I(t,e,I);return j3I(l)}function D3I(t,e,I,l={requestOptions:{}}){var n,c;let r=ii("/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(r).put(Object.assign(Object.assign({},Do(l)),{contentType:"application/json",headers:Object.assign({accept:"application/json"},(c=l.requestOptions)===null||c===void 0?void 0:c.headers),body:Mze(I)}))}async function K3I(t){if(!["200"].includes(t.status)){let I=la(t);throw I.details=Gi(t.body),I}return zX(t.body)}async function Nbe(t,e,I,l={requestOptions:{}}){let n=await D3I(t,e,I,l);return K3I(n)}var _f=class{constructor(e,I,l={}){var n;let c=(n=l?.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix,r=c?`${c} azsdk-js-client`:"azsdk-js-client";this._client=nbe(e,I,Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:r}})),this.pipeline=this._client.pipeline}restoreSecret(e,I={requestOptions:{}}){return obe(this._client,e,I)}backupSecret(e,I={requestOptions:{}}){return Gbe(this._client,e,I)}recoverDeletedSecret(e,I={requestOptions:{}}){return ibe(this._client,e,I)}purgeDeletedSecret(e,I={requestOptions:{}}){return dbe(this._client,e,I)}getDeletedSecret(e,I={requestOptions:{}}){return bbe(this._client,e,I)}getDeletedSecrets(e={requestOptions:{}}){return mbe(this._client,e)}getSecretVersions(e,I={requestOptions:{}}){return hbe(this._client,e,I)}getSecrets(e={requestOptions:{}}){return pbe(this._client,e)}getSecret(e,I,l={requestOptions:{}}){return ube(this._client,e,I,l)}updateSecret(e,I,l,n={requestOptions:{}}){return Zbe(this._client,e,I,l,n)}deleteSecret(e,I={requestOptions:{}}){return Wbe(this._client,e,I)}setSecret(e,I,l={requestOptions:{}}){return Nbe(this._client,e,I,l)}};o();o();o();var P3I=["authorization","authorization_url","resource","scope","tenantId","claims","error"];function Ybe(t){let e=/,? +/,I=t.split(e).reduce((l,n)=>{if(n.match(/\w="/)){let[c,...r]=n.split("=");if(P3I.includes(c))return Object.assign(Object.assign({},l),{[c]:r.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}o();var q3I={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:1e3*60*2};async function _3I(t,e,I){async function l(){if(Date.now()<I)try{return await t()}catch{return null}else{let c=await t();if(c===null)throw new Error("Failed to refresh access token.");return c}}let n=await l();for(;n===null;)await SN(e),n=await l();return n}function eUe(t,e){let I=null,l=null,n,c=Object.assign(Object.assign({},q3I),e),r={get isRefreshing(){return I!==null},get shouldRefresh(){var a;return r.isRefreshing?!1:l?.refreshAfterTimestamp&&l.refreshAfterTimestamp<Date.now()?!0:((a=l?.expiresOnTimestamp)!==null&&a!==void 0?a:0)-c.refreshWindowInMs<Date.now()},get mustRefresh(){return l===null||l.expiresOnTimestamp-c.forcedRefreshWindowInMs<Date.now()}};function s(a,G){var i;return r.isRefreshing||(I=_3I(()=>t.getToken(a,G),c.retryIntervalInMs,(i=l?.expiresOnTimestamp)!==null&&i!==void 0?i:Date.now()).then(b=>(I=null,l=b,n=G.tenantId,l)).catch(b=>{throw I=null,l=null,n=void 0,b})),I}return async(a,G)=>{let i=!!G.claims,d=n!==G.tenantId;return i&&(l=null),d||i||r.mustRefresh?s(a,G):(r.shouldRefresh&&s(a,G),l)}}o();var IUe=Ts("keyvault-common");function $3I(t,e){let I;try{I=new URL(t)}catch{throw new Error(`The challenge contains invalid scope '${t}'`)}if(!new URL(e.url).hostname.endsWith(`.${I.hostname}`))throw new Error(`The challenge resource '${I.hostname}' does not match the requested domain. Set disableChallengeResourceVerification to true in your client options to disable. See https://aka.ms/azsdk/blog/vault-uri for more information.`)}var ekI="keyVaultAuthenticationPolicy";function tUe(t,e={}){let{disableChallengeResourceVerification:I}=e,l={status:"none"},n=eUe(t);function c(i){return{abortSignal:i.abortSignal,requestOptions:{timeout:i.timeout>0?i.timeout:void 0},tracingOptions:i.tracingOptions}}async function r(i){let d=c(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 m=c(i),h=d.headers.get("WWW-Authenticate");if(!h)return IUe.warning("keyVaultAuthentication policy encountered a 401 response without a corresponding WWW-Authenticate header. This is unexpected. Not handling the 401 response."),d;let p=Ybe(h),Z=p.resource?p.resource+"/.default":p.scope;if(!Z)return d;I||$3I(Z,i);let W=await n([Z],Object.assign(Object.assign({},m),{enableCae:!0,tenantId:p.tenantId}));return W?(i.headers.set("Authorization",`Bearer ${W.token}`),l={status:"complete",scopes:[Z],tenantId:p.tenantId},b(i)):d}async function a(i,d,b){if(l.status!=="complete"||d.status!==401)return d;let m=c(i),h=d.headers.get("WWW-Authenticate");if(!h)return d;let{claims:p,error:Z}=Ybe(h);if(Z!=="insufficient_claims"||p===void 0)return d;let W=atob(p),Y=await n(l.scopes,Object.assign(Object.assign({},m),{enableCae:!0,tenantId:l.tenantId,claims:W}));return i.headers.set("Authorization",`Bearer ${Y.token}`),b(i)}async function G(i,d){await r(i);let b=await d(i);return b=await s(i,b,d),b=await a(i,b,d),b}return{name:ekI,sendRequest:G}}o();function lUe(t,e){if(typeof t!="string"||!(t=t.trim()))throw new Error("Invalid collection argument");if(typeof e!="string"||!(e=e.trim()))throw new Error("Invalid identifier argument");let I;try{I=new URL(e)}catch{throw new Error(`Invalid ${t} identifier: ${e}. Not a valid URI`)}let l=(I.pathname||"").split("/");if(l.length!==3&&l.length!==4)throw new Error(`Invalid ${t} identifier: ${e}. Bad number of segments: ${l.length}`);if(t!==l[1])throw new Error(`Invalid ${t} identifier: ${e}. segment [1] should be "${t}", found "${l[1]}"`);let n=`${I.protocol}//${I.host}`,c=l[2],r=l.length===4?l[3]:void 0;return{vaultUrl:n,name:c,version:r}}o();o();o();o();function Vbe(t){let I=t.split("/")[3];return Object.assign({sourceId:t},lUe(I,t))}o();function Ua(t){let e=t,I=t,l=Vbe(e.id),n=e.attributes;delete e.attributes;let c={value:e.value,name:l.name,properties:{expiresOn:n?.expires,createdOn:n?.created,updatedOn:n?.updated,enabled:n?.enabled,notBefore:n?.notBefore,recoverableDays:n?.recoverableDays,recoveryLevel:n?.recoveryLevel,id:e.id,contentType:e.contentType,tags:e.tags,managed:e.managed,vaultUrl:l.vaultUrl,version:l.version,name:l.name,certificateKeyId:e.kid}};return I.recoveryId&&(c.properties.recoveryId=I.recoveryId,c.properties.scheduledPurgeDate=I.scheduledPurgeDate,c.properties.deletedOn=I.deletedDate,c.recoveryId=I.recoveryId,c.scheduledPurgeDate=I.scheduledPurgeDate,c.deletedOn=I.deletedDate),n&&(n.vaultUrl&&delete c.properties.vaultUrl,n.expires&&delete c.properties.expires,n.created&&delete c.properties.created,n.updated&&delete c.properties.updated),c}function m6(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 TN(this,arguments,function*(){var r,s,a,G;let i=t(Object.assign(Object.assign({},e),{maxresults:n?.maxPageSize})).byPage(n);try{for(var d=!0,b=wy(i),m;m=yield An(b.next()),r=m.done,!r;d=!0)G=m.value,d=!1,yield yield An(G.map(I))}catch(h){s={error:h}}finally{try{!d&&!r&&(a=b.return)&&(yield An(a.call(b)))}finally{if(s)throw s.error}}})}}}o();o();var h6="4.10.0";var Ko=HR({namespace:"Microsoft.KeyVault",packageName:"@azure/keyvault-secrets",packageVersion:h6});o();o();o();o();o();o();o();o();var Rbe=Ts("core-lro");o();o();o();o();o();o();var ybe=class t extends Error{constructor(e){super(e),this.name="PollerStoppedError",Object.setPrototypeOf(this,t.prototype)}},gbe=class t extends Error{constructor(e){super(e),this.name="PollerCancelledError",Object.setPrototypeOf(this,t.prototype)}},$f=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 gbe("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 ybe("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()}};o();var SX=class extends $f{constructor(){super(...arguments),this.intervalInMs=2e3}async delay(){return SN(this.intervalInMs)}},OX=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 p6=class extends OX{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 Ko.withSpan("DeleteSecretPoller.deleteSecret",I,async l=>{let n=await this.client.deleteSecret(e,l);return Ua(n)})}getDeletedSecret(e,I={}){return Ko.withSpan("DeleteSecretPoller.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Ua(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 u6=class extends SX{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:c=2e3,resumeFrom:r}=e,s;r&&(s=JSON.parse(r).state);let a=new p6(Object.assign(Object.assign({},s),{name:l}),I,n);super(a),this.intervalInMs=c}};o();o();var Z6=class extends OX{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 Ko.withSpan("RecoverDeletedSecretPoller.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Ua(n)})}recoverDeletedSecret(e,I={}){return Ko.withSpan("RecoverDeletedSecretPoller.recoverDeletedSecret",I,async l=>{let n=await this.client.recoverDeletedSecret(e,l);return Ua(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 W6=class extends SX{constructor(e){let{client:I,name:l,operationOptions:n,intervalInMs:c=2e3,resumeFrom:r}=e,s;r&&(s=JSON.parse(r).state);let a=new Z6(Object.assign(Object.assign({},s),{name:l}),I,n);super(a),this.intervalInMs=c}};var N6=class{constructor(e,I,l={}){var n,c;this.vaultUrl=e;let r=Object.assign(Object.assign({},l),{userAgentOptions:{userAgentPrefix:`${(c=(n=l.userAgentOptions)===null||n===void 0?void 0:n.userAgentPrefix)!==null&&c!==void 0?c:""} azsdk-js-keyvault-secrets/${h6}`},apiVersion:l.serviceVersion||"7.6",loggingOptions:{logger:kze.info,additionalAllowedHeaderNames:["x-ms-keyvault-region","x-ms-keyvault-network-info","x-ms-keyvault-service-version"]}});this.client=new _f(this.vaultUrl,I,r),this.client.pipeline.removePolicy({name:_D}),this.client.pipeline.addPolicy(tUe(I,l),{}),this.client.pipeline.addPolicy({name:"ContentTypePolicy",sendRequest(s,a){var G;return((G=s.headers.get("Content-Type"))!==null&&G!==void 0?G:"").startsWith("application/json")&&s.headers.set("Content-Type","application/json"),a(s)}})}setSecret(e,I,l={}){let{enabled:n,notBefore:c,expiresOn:r,tags:s}=l,a=tL(l,["enabled","notBefore","expiresOn","tags"]);return Ko.withSpan("SecretClient.setSecret",a,async G=>{let i=await this.client.setSecret(e,{value:I,secretAttributes:{enabled:n,notBefore:c,expires:r},tags:s},G);return Ua(i)})}async beginDeleteSecret(e,I={}){let l=new u6(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}async updateSecretProperties(e,I,l={}){let{enabled:n,notBefore:c,expiresOn:r,tags:s}=l,a=tL(l,["enabled","notBefore","expiresOn","tags"]);return Ko.withSpan("SecretClient.updateSecretProperties",a,async G=>{let i=await this.client.updateSecret(e,I,{secretAttributes:{enabled:n,notBefore:c,expires:r},tags:s},G);return Ua(i).properties})}getSecret(e,I={}){return Ko.withSpan("SecretClient.getSecret",I,async l=>{let n=await this.client.getSecret(e,I&&I.version?I.version:"",l);return Ua(n)})}getDeletedSecret(e,I={}){return Ko.withSpan("SecretClient.getDeletedSecret",I,async l=>{let n=await this.client.getDeletedSecret(e,l);return Ua(n)})}purgeDeletedSecret(e,I={}){return Ko.withSpan("SecretClient.purgeDeletedSecret",I,async l=>{await this.client.purgeDeletedSecret(e,l)})}async beginRecoverDeletedSecret(e,I={}){let l=new W6(Object.assign(Object.assign({name:e,client:this.client},I),{operationOptions:I}));return await l.poll(),l}backupSecret(e,I={}){return Ko.withSpan("SecretClient.backupSecret",I,async l=>(await this.client.backupSecret(e,l)).value)}restoreSecretBackup(e,I={}){return Ko.withSpan("SecretClient.restoreSecretBackup",I,async l=>{let n=await this.client.restoreSecret({secretBundleBackup:e},l);return Ua(n).properties})}listPropertiesOfSecretVersions(e,I={}){return m6(l=>this.client.getSecretVersions(e,l),I,l=>Ua(l).properties)}listPropertiesOfSecrets(e={}){return m6(this.client.getSecrets.bind(this.client),e,I=>Ua(I).properties)}listDeletedSecrets(e={}){return m6(this.client.getDeletedSecrets.bind(this.client),e,Ua)}};var Fbe=class{client;logger;constructor(e,I){if(this.logger=I,e){this.logger.debug(`Using Azure Key Vault at ${e}`);let l=new ch;this.client=new N6(e,l)}else this.logger.debug("No Azure Key Vault URI provided, secret provider disabled")}async getSecret(e){if(this.client)try{return(await this.client.getSecret(e)).value}catch(I){if(this.logger.warning(`Error fetching secret ${e}: ${I}`),I?.code==="SecretNotFound")return;throw I}}};function nUe(t,e){let I=t.api?.copilot?.azureKeyVaultUri;return Abe(I,e)}function Abe(t,e){return new Fbe(t,e)}o();import{createHmac as rkI}from"crypto";var Y6=class t{static encode(e){let I=t.hmacGetBytes(e),r=(Math.floor(Date.now()/1e3)+30).toString(),s=Buffer.from(r,"ascii"),i=rkI("sha256",I).update(s).digest().toString("hex").toUpperCase();return`${r}.${i}`}static hmacGetBytes(e){return Buffer.from(e,"ascii")}};var skI="X-GitHub-Api-Version",akI="2025-05-01",V6=class t extends LI{constructor(I,l,n,c){super({baseURL:I,apiKey:"",logLevel:$v()?"debug":"info"});this.headers=l;this.runnerLogger=n;this.hmacKey=c}static baseHeaders={"Content-Type":"application/json",Accept:"application/json","X-Interaction-Type":"conversation-agent","Openai-Intent":"conversation-agent","X-Initiator":"user",[skI]:akI};hmacKey;additionalHeaders={};static createWithOAuthToken(I,l,n,c,r,s){let a={...this.defaultHeaders(n,r),Authorization:`Bearer ${c}`,...s??{}};return I.debug(`Creating copilot-client for integration ID ${n} with token authentication. User-agent: ${a["User-Agent"]}`),new t(l,a,I)}static createWithHmac(I,l,n,c,r,s,a){let G={...this.defaultHeaders(n,r),Authorization:"",...a??{}};return s&&(G["X-GitHub-User"]=s),I.debug(`Creating copilot-client for integration ID ${n} with key authentication. User-agent: ${G["User-Agent"]}`),new t(l,G,I,c)}static defaultHeaders(I,l){let n=tbe();return{...t.baseHeaders,"Copilot-Integration-Id":I,"User-Agent":`${n.nameNoScope}/${n.version} (${process.platform} ${process.version}) OpenAI/${Yh}`,"X-Interaction-Id":l}}async prepareOptions(I){this.hmacKey&&(this.headers["Request-HMAC"]=Y6.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[s,a]of Object.entries(I.headers))typeof a=="string"&&(l[s]=a);let n=`${this.baseURL}/models`,c=await fetch(n,{method:I.method,headers:l});if(!c.ok)return this.runnerLogger.error(`Failed to list models: ${c.status} ${c.statusText}: ${await c.text()}`),c.status===421&&this.runnerLogger.error(`Verify the authenticated user against subscription-based Copilot API endpoint used: ${this.baseURL}`),[];let r=await c.json();return this.runnerLogger.debug(`Successfully listed ${r.data.length} models`),r.data}},MX=class{async createClient(e,I,l){I.startGroup("configured settings:",8),I.debug(JSON.stringify(e,null,2)),I.endGroup(8);let n=e.api?.copilot?.token,c=e.api?.copilot?.hmacKey,r=!!(c||n);if(!r){I.debug("No Copilot HMAC key or GitHub OAuth token provided, trying secret provider");let d=nUe(e,I);try{c=await d.getSecret("capi-hmac-key")}catch(b){I.debug(`Failed to get Copilot HMAC key from secret provider:
601
601
  ${b}`)}try{n=await d.getSecret("capi-token")}catch(b){I.debug(`Failed to get Copilot GitHub OAuth token from secret provider:
602
- ${b}`)}r=!!(c||n)}let s,a=x2e(e),G=eC(e),i=e.api?.copilot?.sessionId??Kp(e);if(I.debug(`Using Copilot API at ${a} with integration ID ${G}`),n&&(I.debug("Using GitHub OAuth token for Copilot API"),s=V6.createWithOAuthToken(I,a,G,n,i,l?.requestHeaders)),c){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=V6.createWithHmac(I,a,G,c,i,d,l?.requestHeaders)}if(s===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return s}},TX=class t extends bc{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof bc)))return new t(e)}};var Qbe={type:"ephemeral"},JY=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),l.info(" "),l.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(I,l,n),this.modelPromise=this.clientPromise.then(async()=>{let c=await this.getModel();return l.debug(`Got model info: ${JSON.stringify(c,null,2)}`),c})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||xde.model,toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??180}},thinkingMode:e?.thinkingMode??!1,requestHeaders:e?.requestHeaders??{}}}getCompletionOptions(e,I){let l={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:I?.toolChoice,...l}}makeRequest(e,I,l,n,c,r,s){return e.chat.completions.create({model:I,messages:[...l],...n,tools:c},{maxRetries:r,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}makeRequestStreaming(e,I,l,n,c,r,s){return e.chat.completions.create({model:I,messages:[...l],...n,tools:c,stream:!0,stream_options:{include_usage:!0}},{maxRetries:r,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}async*getCompletionWithTools(e,I,l,n){let c=this.model,r=await this.clientPromise,s=await this.modelPromise,a=WN(l),G=[{role:"system",content:e,copilot_cache_control:Qbe},...I.map(p=>Uf(p))],i=l.map((p,Z)=>({type:"function",function:{name:p.name,description:p.description,parameters:p.input_schema},copilot_cache_control:Z===l.length-1?Qbe: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(i,null,2)),this.logger.endGroup(8);let d=this.getCompletionOptions(l,n),b=n?.initialTurnCount!==void 0?n.initialTurnCount+1:0,m=!1,h=!1;for(;!m&&!h;){let p=Date.now();yield{kind:"turn_started",model:c,modelInfo:s,turn:b,timestampMs:p};let Z=0,W=0,Y=0,F=[429,503,500,400],g=this.clientOptions.retryPolicy.maxRetries,A=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,k=0,C=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,E,J;try{let f=[],S;do{Y>0&&(yield{kind:"turn_retry",model:c,modelInfo:s,turn:b,timestampMs:Date.now()});try{let te={};for(let Qe of n?.processors?.preRequest||[]){let ue=Qe.preRequest({turn:b,retry:Y,messages:G,toolDefinitions:i,modelInfo:s,additionalRequestHeaders:te,getCompletionWithToolsOptions:n});for await(let Ae of ue)yield Ae}if(this.logger.startGroup("Sending request to the AI model",8),pl(this.settings,"copilot_swe_agent_request_logging")){let Qe=JSON.stringify(G,null,2),ue=JSON.stringify(d,null,2);this.logger.debug(`Request messages: ${Qe}`),this.logger.debug(`Request options: ${ue}`)}f=G.map((Qe,ue)=>ue===G.length-1?{...Qe,copilot_cache_control:Qbe}:Qe),Z=Date.now(),r.setAdditionalHeaders(te);let de;if(n?.stream){let Qe=await this.makeRequestStreaming(r,c,f,d,i,g,n);de=await GkI(Qe,r,n)}else de=await this.makeRequest(r,c,f,d,i,g,n);W=Date.now()-Z,E=de.data,S={model:c,api_id:E.id,request_id:de.response.headers.get("x-github-request-id")||void 0,initiator:n?.requestHeaders?.["X-Initiator"]||te["X-Initiator"]};let we={};de.response.headers.forEach((Qe,ue)=>{if(ue.toLowerCase().startsWith(Bde)){let Ae=cze(Qe);Ae&&(we[ue.replace(Bde,"")]=Ae)}}),yield{kind:"model_call_success",turn:b,callId:n?.callId,modelCallDurationMs:W,modelCall:S,responseChunk:tze(E),responseUsage:E.usage,requestMessages:JSON.stringify(f),quotaSnapshots:we},this.logger.debug(`response (Request-ID ${de.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(de.data,null,2))}catch(te){W=Date.now()-Z;let de=TX.fromAPIError(te),we=de?.error;if(de){yield{kind:"model_call_failure",turn:b,modelCallDurationMs:W,requestMessages:JSON.stringify(f),modelCall:{model:c,status:de.status,error:JSON.stringify(de?.error||de?.message||"unknown error"),api_id:de.requestID||void 0,request_id:de.headers?.get("x-github-request-id")||""}},J=de;let ue=de.ghRequestId||de.headers?.get("x-github-request-id")||de.requestID;this.logger.error(`error (Request-ID ${ue})`),this.logger.error(JSON.stringify(de,null,2)),this.logger.debug(`Failed to get response from the AI model: ${de}`),we&&this.logger.debug(`Inner error: ${JSON.stringify(we,null,2)}`);let Ae;for(let $e of n?.processors?.onRequestError||[])Ae=await $e.onRequestError({turn:b,retry:Y,maxRetries:g,error:we,modelInfo:s,getCompletionWithToolsOptions:n})||Ae;let he=de.status,ZI=he?this.clientOptions.retryPolicy.errorCodesToRetry.some($e=>Array.isArray($e)?he>=$e[0]&&($e[1]===void 0||he<=$e[1]):he===$e):!1,Ce;if(Ae)Ce=Ae.retryAfter;else if(de.status!==402){if(de.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let $e=0;for(let Yl=G.length-1;Yl>=0;Yl--)n0(G[Yl])&&(G.splice(Yl,1),$e++,yield{kind:"images_removed",turn:b,imagesRemoved:1,largeImagesRemoved:1});$e>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${Um(s.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${$e} image messages from the request`),Ce=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof de.status=="number"&&F.includes(de.status)||ZI)&&(Ce=parseInt(de.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+A,A*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,Y==g-1))for(let $e=G.length-1;$e>=0;$e--)n0(G[$e])&&(this.logger.debug(`Removing image message at index ${$e} to avoid failure`),G.splice($e,1),yield{kind:"images_removed",turn:b,imagesRemoved:1})}if(Ce!==void 0&&Ce<=C){let $e=.8+Math.random()*.4,Yl=Ce*$e;this.logger.debug(`Retrying after ${Yl} seconds...`),await new Promise(BI=>setTimeout(BI,Yl*1e3)),k+=Yl,this.logger.debug(`Retrying after ${Ce} seconds... Will try again now!`);continue}else Ce?this.logger.error(`Retry after ${Ce} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let Qe=de||te;for(let ue of n?.processors?.onRequestError||[])await ue.preErrorThrow(te);throw this.logger.error("error"),this.logger.error(JSON.stringify(Qe,null,2)),Qe}finally{r.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!E&&Y++<g);if(!E){this.logger.debug("Recent messages prior to failure:");for(let de=Math.max(0,G.length-6);de<G.length;de++)this.logger.debug(`${de}: ${JSON.stringify(G[de],null,2)}`);let te=new Error(`Failed to get response from the AI model; retried ${Y-1} times (total retry wait time: ${k} seconds)`,{cause:J});throw this.isRateLimitExceededError(te)&&(this.logger.info(`Rate limit exceeded after ${Y-1} retries, will fail job but skip Sentry reporting`),te.skipReport=!0),te}for(let te of E.choices.map(de=>de.message))okI(te.tool_calls||[]),G.push(te),yield{kind:"message",turn:b,callId:n?.callId,modelCall:S,message:Uf(hX(te))};if(this.isToolCallResponse(E)){let de=(s.capabilities.limits.max_prompt_tokens||s.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,we=dve(c,de,this,this.settings),ue=E.choices.filter(Ce=>Ce.message.tool_calls!==void 0).flatMap(Ce=>Ce.message.tool_calls||[]).filter(QG),Ae=new Map;for(let Ce of n?.processors?.preToolsExecution||[]){let $e=await Ce.preToolsExecution({turn:b,toolCalls:ue,modelInfo:s});if($e)for(let[Yl,BI]of $e)Ae.set(Yl,BI)}let he=ue.filter(Ce=>!Ae.has(Ce.id)),ZI=this.mergeToolResults(Ae,ue,he,a,we,n?.executeToolsInParallel);for await(let Ce of ZI){Ce.toolResult.resultType==="rejected"&&(h=!0);let $e={role:"tool",tool_call_id:Ce.originalCall.id,content:Ce.toolResult.textResultForLlm};G.push($e),yield{kind:"message",turn:b,callId:n?.callId,modelCall:S,message:Uf($e)},yield{kind:"tool_execution",turn:b,callId:n?.callId,toolCallId:Ce.originalCall.id,toolResult:Ce.toolResult,durationMs:Ce.durationMs};for(let Yl of n?.processors?.postToolExecution||[])await Yl.postToolExecution({toolCall:Ce.originalCall,toolResult:Ce.toolResult,turn:b,modelInfo:s})}}else for(let te of E.choices.map(de=>de.message))yield{kind:"response",turn:b,callId:n?.callId,modelCall:{model:c,api_id:E.id},response:Uf(hX(te))},m=!0}catch(f){let S;throw f instanceof Error&&f.cause&&f.cause instanceof TX?S=`${f} (Cause: ${f.cause})`:S=`${f}`,yield{kind:"turn_failed",model:c,modelInfo:s,turn:b,error:S,timestampMs:Date.now()},f}finally{let f=Date.now();yield{kind:"turn_ended",model:c,modelInfo:s,turn:b,timestampMs:f},b++}}}async*mergeToolResults(e,I,l,n,c,r=!1){for(let[s,a]of e){let G=I.find(i=>i.id===s);G&&(yield{durationMs:0,originalCall:G,toolResult:a})}l.length>0&&(yield*this.callTools(l,n,c,r))}async*callTools(e,I,l,n=!1){if(e.length===0)throw new Error("Tool call is missing");this.logger.debug(`Tool calls count: ${e.length}`);let c=e.some(s=>{let a=I[s.function.name];return bX(a)}),r=n&&!c;if(c&&n&&this.logger.debug("Custom agent detected in tool calls, forcing sequential execution"),r)this.logger.debug("Running tool calls in parallel"),yield*rve(e.map(s=>()=>this.callTool(s,I,l)));else{this.logger.debug("Running tool calls sequentially");for(let s of e)yield await this.callTool(s,I,l)}}async callTool(e,I,l){let n=0,c=e?.function.name;if(!c)throw new Error("Tool name is missing");let r=e?.function.arguments;if(!r)throw new Error("Tool call arguments are missing");let s=e?.id;if(!s)throw new Error("Tool call id is missing");let a,G=I[c];try{let i=mX(r);if(!G||!G.callback)a={textResultForLlm:`Tool '${c}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${c}' does not exist.`,sessionLog:`<error>Tool '${c}' does not exist.</error>`,toolTelemetry:{}};else{let d=G.callback,b=Date.now(),m={...l,toolCallId:s,toolOptions:this.settings.service?.tools?.[c]},h=await d({...i},m);n=Date.now()-b,a=typeof h=="string"?{textResultForLlm:h,resultType:"success",toolTelemetry:{}}:h}}catch(i){i instanceof SyntaxError?(a={textResultForLlm:`The arguments for the tool call '${c}' were not valid JSON. The arguments have been cleared. Arguments: ${r}. JSON parse error: ${i.message}`,resultType:"failure",error:`${i.message}`,sessionLog:`<error>Failed to execute \`${c}\` tool with arguments: ${r} due to syntax error: ${i.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}},e.function.arguments="{}"):a={textResultForLlm:`Failed to execute \`${c}\` tool with arguments: ${r} due to error: ${i}`,resultType:"failure",error:i instanceof Error?i.message:`${i}`,sessionLog:`<error>Failed to execute \`${c}\` tool with arguments: ${r}</error>`,toolTelemetry:{}}}return{durationMs:n,originalCall:e,toolResult:a}}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 TX)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(r=>r.id===e).at(0)||I}};function okI(t){for(let e of t)e.function.name=e.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_")}async function GkI(t,e,I){let l=ikI(t.data,e).toReadableStream(),n=dZ.fromReadableStream(l),c=I?.processors?.onStreamingChunk;if(c?.length)for await(let r of n){I?.abortSignal?.throwIfAborted();let s={chunk:r};for(let a of c)a.onStreamingChunk(s)}return{data:await n.finalChatCompletion(),response:t.response,request_id:t.request_id}}function ikI(t,e){let I=new Map;return new bd(async function*(){for await(let l of t)l.choices?.forEach(n=>{if(n.delta.role??="assistant",!!n.delta?.tool_calls?.length){n.finish_reason??="tool_calls";let r=I.get(n.index);r||(r={nextSequenceNumber:0,mappings:new Map},I.set(n.index,r)),n.delta.tool_calls?.forEach(s=>{let a=r.mappings.get(s.index);if(a!==void 0)s.id&&a.callId!==s.id&&(a.sequenceNumber=r.nextSequenceNumber++,a.callId=s.id),s.index=a.sequenceNumber;else{let G={callId:s.id,sequenceNumber:r.nextSequenceNumber++};r.mappings.set(s.index,G),s.index=G.sequenceNumber}})}}),yield l},t.controller,e)}var R6=class extends JY{constructor(e,I,l){let n=new MX;super(n,e,I,l)}};o();o();o();var y6=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),this.logger.info(`Using responses with model: ${this.model}`),this.clientPromise=e.createClient(I,l,this.clientOptions)}clientOptions;clientPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||"o4-mini",toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??60}},thinkingMode:e?.thinkingMode??!0,requestHeaders:e?.requestHeaders??{}}}makeRequest(e,I,l,n,c,r,s,a){return e.responses.create({model:I,previous_response_id:r,instructions:l,input:n,parallel_tool_calls:c.length>0?!0:void 0,tools:c,reasoning:{summary:"auto",effort:"medium"},store:!1,include:["reasoning.encrypted_content"]},{maxRetries:s||this.clientOptions.retryPolicy.maxRetries,headers:a?.requestHeaders,signal:a?.abortSignal}).withResponse()}async*getCompletionWithTools(e,I,l,n){let c=await this.clientPromise,r=WN(l),s=l.map(Z=>({name:Z.name,description:Z.description,parameters:Z.input_schema,strict:!1,type:"function"})),a=0,G=this.clientOptions.retryPolicy.maxRetries,i=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,d=0,b=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,m=I.flatMap(Xbe),h,p=!1;for(;!p;){let Z;do{Z=void 0;try{let W=await this.makeRequest(c,this.model,e,m,s,void 0,G,n);h=W.data,m.push(...h.output),this.logger.debug(`response (Request-ID ${W.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(W.data,null,2))}catch(W){let Y=W,F=Y.error;if(Y){Z=Y,this.logger.error(`error (Request-ID ${Y.requestID})`),this.logger.error(JSON.stringify(Y,null,2)),this.logger.debug(`Failed to get response from the AI model: ${Y}`),F&&this.logger.debug(`Inner error: ${JSON.stringify(F,null,2)}`);let g=Y.status,A=g?this.clientOptions.retryPolicy.errorCodesToRetry.some(C=>Array.isArray(C)?g>=C[0]&&(C[1]===void 0||g<=C[1]):g===C):!1,k;if((Y.status===429||A)&&(k=parseInt(Y.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+i,i*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth),k!==void 0&&k<=b){this.logger.debug(`Retrying after ${k} seconds...`),await new Promise(C=>setTimeout(C,k*1e3)),d+=k,this.logger.debug(`Retrying after ${k} seconds... Will try again now!`);continue}else k?this.logger.error(`Retry after ${k} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}throw this.logger.error("error"),this.logger.error(JSON.stringify(W,null,2)),W}finally{this.logger.endGroup(8)}}while(Z&&a++<G);if(!h||Z){this.logger.debug("Recent messages prior to failure:");for(let W=Math.max(0,m.length-6);W<m.length;W++)this.logger.debug(`${W}: ${JSON.stringify(m[W],null,2)}`);throw new Error(`Failed to get response from the AI model; retried ${a-1} times (total retry wait time: ${d} seconds)`,{cause:Z})}for(let W of h.output)yield{kind:"message",message:wbe(W)};if(this.requiresToolOutput(h)){let Y=(await this.runTool(h,r)).map(F=>({type:"function_call_output",call_id:F.toolCallId,output:F.textResultForLlm}));m.push(...Y);for(let F of Y)yield{kind:"message",message:wbe(F)}}else yield{kind:"response",response:{content:h.output_text,refusal:null,role:"assistant"}},p=!0}}async runTool(e,I,l){let n=e.output.filter(r=>r.type==="function_call");if(!n||n.length===0)throw new Error("Tool calls in response are missing");let c=[];for(let r of n){let s=r.name;if(!s)throw new Error("Tool name is missing");let a=r.arguments;if(!a)throw new Error("Tool call arguments are missing");let G=r.call_id;if(!G)throw new Error("Tool call id is missing");let i,d=I[s];try{let b=mX(a);if(!d||!d.callback)i={textResultForLlm:`Tool '${s}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${s}' does not exist.`,sessionLog:`<error>Tool '${s}' does not exist.</error>`,toolTelemetry:{}};else{let m=d.callback,h={...l,toolCallId:G,toolOptions:this.settings.service?.tools?.[s],settings:this.settings},p=await m({...b},h);i=typeof p=="string"?{textResultForLlm:p,resultType:"success",toolTelemetry:{}}:p}}catch(b){i={textResultForLlm:`Failed to execute \`${s}\` tool with arguments: ${a} due to error: ${b}`,resultType:"failure",error:b instanceof Error?b.message:`${b}`,sessionLog:`<error>Failed to execute \`${s}\` tool with arguments: ${a}</error>`,toolTelemetry:{properties:{wasSyntaxError:b instanceof SyntaxError?"true":"false"}}}}c.push({toolCallId:G,textResultForLlm:i.textResultForLlm,sessionLog:i.resultType=="success"?i.sessionLog:i.error?`<error>${i.error}</error>`:void 0})}return c}requiresToolOutput(e){return e.output.filter(I=>I.type==="function_call").length>0}};function Xbe(t){if(t.role==="function")throw new Error("Function role is not supported");let e=[];if(t.reasoning_opaque&&e.push({id:t.reasoning_opaque,type:"reasoning",summary:t.reasoning_text?[{text:t.reasoning_text,type:"summary_text"}]:[],encrypted_content:t.encrypted_content}),t.role==="assistant"&&t.tool_calls&&t.tool_calls.length>0&&QG(t.tool_calls[0])){let I=t.tool_calls[0];return[...e,{type:"function_call",id:t.id,name:I.function.name,arguments:I.function.arguments,call_id:I.id}]}if(t.role==="tool")return[...e,{type:"function_call_output",id:`fc_${t.tool_call_id}`,call_id:t.tool_call_id,output:typeof t.content=="string"?t.content:t.content.map(I=>I.text).join(" ")??""}];if(!t.content)return e;if(t.role==="assistant"){let I=t.id||crypto.randomUUID();return I.startsWith("msg_")||(I=`msg_${I}`),[...e,{type:"message",id:I,role:t.role,content:[{annotations:[],type:"output_text",text:typeof t.content=="string"?t.content:t.content?.map(l=>l.type==="text"?l.text:"").join(" ")??""}],status:"completed"}]}return[...e,{role:t.role,content:typeof t.content=="string"?[{type:"input_text",text:t.content}]:t.content.map(I=>{if(I.type==="text")return{type:"input_text",text:I.text};if(I.type==="image_url")return{type:"input_image",detail:I.image_url.detail||"auto",image_url:I.image_url.url}}).filter(I=>I!==void 0),type:"message"}]}function wbe(t){if(t.type==="reasoning")return{role:"assistant",reasoning_opaque:t.id,reasoning_text:t.summary?t.summary.map(e=>e.text).join(" "):void 0,content:"",encrypted_content:t.encrypted_content};if(t.type==="function_call")return{role:"assistant",id:t.id,tool_calls:[{id:t.call_id,type:"function",function:{name:t.name,arguments:t.arguments}}],content:""};if(t.type==="function_call_output")return{role:"tool",content:t.output,tool_call_id:t.call_id};if(t.type==="message")return{id:"id"in t?t.id:void 0,role:t.role,content:typeof t.content=="string"?t.content:t.content?.map(e=>e.type==="input_text"||e.type==="output_text"?e.text:"").join(" ")??""};throw new Error(`Unknown item type: ${t.type}`)}function dkI(t){let e;t.incomplete_details?.reason==="content_filter"?e="content_filter":t.incomplete_details?.reason==="max_output_tokens"?e="length":e=t.output.some(n=>n.type==="function_call")?"tool_calls":"stop";let l=t.output.filter(n=>n.type==="message"||n.type==="reasoning"||n.type==="function_call").map(n=>wbe(n)).filter(n=>n.role==="assistant").map((n,c)=>({message:{content:Array.isArray(n.content)?n.content.map(r=>typeof r=="string"?r:"text"in r?r.text:"").join(" "):n.content||null,refusal:n.refusal||null,role:n.role||null,tool_calls:n.tool_calls?.filter(r=>r.type==="function"),reasoning_opaque:n.reasoning_opaque,reasoning_text:n.reasoning_text,encrypted_content:n.encrypted_content},index:c,finish_reason:e,logprobs:null}));return{id:t.id,choices:l,created:t.created_at,model:t.model,object:"chat.completion",usage:{completion_tokens:t.usage?.output_tokens||0,prompt_tokens:t.usage?.input_tokens||0,total_tokens:t.usage?.total_tokens||0}}}function cUe(t){return{request_id:t.request_id,data:dkI(t.data),response:t.response}}var g6=class extends JY{makeResponsesRequest(e,I,l,n,c,r,s){let a=l.find(m=>m.role==="system")?.content||"",G=Array.isArray(a)?a.join(`
602
+ ${b}`)}r=!!(c||n)}let s,a=x2e(e),G=eC(e),i=e.api?.copilot?.sessionId??Kp(e);if(I.debug(`Using Copilot API at ${a} with integration ID ${G}`),n&&(I.debug("Using GitHub OAuth token for Copilot API"),s=V6.createWithOAuthToken(I,a,G,n,i,l?.requestHeaders)),c){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=V6.createWithHmac(I,a,G,c,i,d,l?.requestHeaders)}if(s===void 0)throw new Error("No GitHub OAuth token or Copilot HMAC key provided");return s}},TX=class t extends bc{request_id;constructor(e){super(e.status,e.error,e.message,e.headers),this.name="CAPIError",this.ghRequestId=e.headers?.get("x-github-request-id")||this.requestID,this.request_id=this.requestID}ghRequestId;static fromAPIError(e){if(!(!e||!(e instanceof bc)))return new t(e)}};var Qbe={type:"ephemeral"},JY=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),l.info(" "),l.debug(`Using model: ${this.model}`),this.clientPromise=e.createClient(I,l,n),this.modelPromise=this.clientPromise.then(async()=>{let c=await this.getModel();return l.debug(`Got model info: ${JSON.stringify(c,null,2)}`),c})}clientOptions;clientPromise;modelPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||xde.model,toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??180}},thinkingMode:e?.thinkingMode??!1,requestHeaders:e?.requestHeaders??{}}}getCompletionOptions(e,I){let l={snippy:{enabled:!1}};return{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,tool_choice:I?.toolChoice,...l}}makeRequest(e,I,l,n,c,r,s){return e.chat.completions.create({model:I,messages:[...l],...n,tools:c},{maxRetries:r,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}makeRequestStreaming(e,I,l,n,c,r,s){return e.chat.completions.create({model:I,messages:[...l],...n,tools:c,stream:!0,stream_options:{include_usage:!0}},{maxRetries:r,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}async*getCompletionWithTools(e,I,l,n){let c=this.model,r=await this.clientPromise,s=await this.modelPromise,a=WN(l),G=[{role:"system",content:e,copilot_cache_control:Qbe},...I.map(p=>Uf(p))],i=l.map((p,Z)=>({type:"function",function:{name:p.name,description:p.description,parameters:p.input_schema},copilot_cache_control:Z===l.length-1?Qbe: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(i,null,2)),this.logger.endGroup(8);let d=this.getCompletionOptions(l,n),b=n?.initialTurnCount!==void 0?n.initialTurnCount+1:0,m=!1,h=!1;for(;!m&&!h;){let p=Date.now();yield{kind:"turn_started",model:c,modelInfo:s,turn:b,timestampMs:p};let Z=0,W=0,Y=0,F=[429,503,500,400],g=this.clientOptions.retryPolicy.maxRetries,A=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,k=0,C=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,E,J;try{let f=[],S;do{Y>0&&(yield{kind:"turn_retry",model:c,modelInfo:s,turn:b,timestampMs:Date.now()});try{let te={};for(let Qe of n?.processors?.preRequest||[]){let ue=Qe.preRequest({turn:b,retry:Y,messages:G,toolDefinitions:i,modelInfo:s,additionalRequestHeaders:te,getCompletionWithToolsOptions:n});for await(let Ae of ue)yield Ae}if(this.logger.startGroup("Sending request to the AI model",8),pl(this.settings,"copilot_swe_agent_request_logging")){let Qe=JSON.stringify(G,null,2),ue=JSON.stringify(d,null,2);this.logger.debug(`Request messages: ${Qe}`),this.logger.debug(`Request options: ${ue}`)}f=G.map((Qe,ue)=>ue===G.length-1?{...Qe,copilot_cache_control:Qbe}:Qe),Z=Date.now(),r.setAdditionalHeaders(te);let de;if(n?.stream){let Qe=await this.makeRequestStreaming(r,c,f,d,i,g,n);de=await GkI(Qe,r,n)}else de=await this.makeRequest(r,c,f,d,i,g,n);W=Date.now()-Z,E=de.data,S={model:c,api_id:E.id,request_id:de.response.headers.get("x-github-request-id")||void 0,initiator:n?.requestHeaders?.["X-Initiator"]||te["X-Initiator"]};let we={};de.response.headers.forEach((Qe,ue)=>{if(ue.toLowerCase().startsWith(Bde)){let Ae=cze(Qe);Ae&&(we[ue.replace(Bde,"")]=Ae)}}),yield{kind:"model_call_success",turn:b,callId:n?.callId,modelCallDurationMs:W,modelCall:S,responseChunk:tze(E),responseUsage:E.usage,requestMessages:JSON.stringify(f),quotaSnapshots:we},this.logger.debug(`response (Request-ID ${de.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(de.data,null,2))}catch(te){W=Date.now()-Z;let de=TX.fromAPIError(te),we=de?.error;if(de){yield{kind:"model_call_failure",turn:b,modelCallDurationMs:W,requestMessages:JSON.stringify(f),modelCall:{model:c,status:de.status,error:JSON.stringify(de?.error||de?.message||"unknown error"),api_id:de.requestID||void 0,request_id:de.headers?.get("x-github-request-id")||""}},J=de;let ue=de.ghRequestId||de.headers?.get("x-github-request-id")||de.requestID;this.logger.error(`error (Request-ID ${ue})`),this.logger.error(JSON.stringify(de,null,2)),this.logger.debug(`Failed to get response from the AI model: ${de}`),we&&this.logger.debug(`Inner error: ${JSON.stringify(we,null,2)}`);let Ae;for(let $e of n?.processors?.onRequestError||[])Ae=await $e.onRequestError({turn:b,retry:Y,maxRetries:g,error:we,modelInfo:s,getCompletionWithToolsOptions:n})||Ae;let he=de.status,ZI=he?this.clientOptions.retryPolicy.errorCodesToRetry.some($e=>Array.isArray($e)?he>=$e[0]&&($e[1]===void 0||he<=$e[1]):he===$e):!1,Ce;if(Ae)Ce=Ae.retryAfter;else if(de.status!==402){if(de.status===413){this.logger.debug("Request is too large, trying to remove images from the request");let $e=0;for(let Yl=G.length-1;Yl>=0;Yl--)n0(G[Yl])&&(G.splice(Yl,1),$e++,yield{kind:"images_removed",turn:b,imagesRemoved:1,largeImagesRemoved:1});$e>0?(this.logger.info(`Images have been removed from the request due to size constraints. Please resize images to be smaller than ${Um(s.capabilities.limits.vision?.max_prompt_image_size||0)}.`),this.logger.debug(`Removed ${$e} image messages from the request`),Ce=1):this.logger.debug("No image messages found in the request - unsure why the request is too large - will fail")}else if((typeof de.status=="number"&&F.includes(de.status)||ZI)&&(Ce=parseInt(de.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+A,A*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth,Y==g-1))for(let $e=G.length-1;$e>=0;$e--)n0(G[$e])&&(this.logger.debug(`Removing image message at index ${$e} to avoid failure`),G.splice($e,1),yield{kind:"images_removed",turn:b,imagesRemoved:1})}if(Ce!==void 0&&Ce<=C){let $e=.8+Math.random()*.4,Yl=Ce*$e;this.logger.debug(`Retrying after ${Yl} seconds...`),await new Promise(BI=>setTimeout(BI,Yl*1e3)),k+=Yl,this.logger.debug(`Retrying after ${Ce} seconds... Will try again now!`);continue}else Ce?this.logger.error(`Retry after ${Ce} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}let Qe=de||te;for(let ue of n?.processors?.onRequestError||[])await ue.preErrorThrow(te);throw this.logger.error("error"),this.logger.error(JSON.stringify(Qe,null,2)),Qe}finally{r.setAdditionalHeaders({}),this.logger.endGroup(8)}}while(!E&&Y++<g);if(!E){this.logger.debug("Recent messages prior to failure:");for(let de=Math.max(0,G.length-6);de<G.length;de++)this.logger.debug(`${de}: ${JSON.stringify(G[de],null,2)}`);let te=new Error(`Failed to get response from the AI model; retried ${Y-1} times (total retry wait time: ${k} seconds)`,{cause:J});throw this.isRateLimitExceededError(te)&&(this.logger.info(`Rate limit exceeded after ${Y-1} retries, will fail job but skip Sentry reporting`),te.skipReport=!0),te}for(let te of E.choices.map(de=>de.message))okI(te.tool_calls||[]),G.push(te),yield{kind:"message",turn:b,callId:n?.callId,modelCall:S,message:Uf(hX(te))};if(this.isToolCallResponse(E)){let de=(s.capabilities.limits.max_prompt_tokens||s.capabilities.limits.max_context_window_tokens)*this.clientOptions.toolTokenBudgetProportion,we=dve(c,de,this,this.settings),ue=E.choices.filter(Ce=>Ce.message.tool_calls!==void 0).flatMap(Ce=>Ce.message.tool_calls||[]).filter(QG),Ae=new Map;for(let Ce of n?.processors?.preToolsExecution||[]){let $e=await Ce.preToolsExecution({turn:b,toolCalls:ue,modelInfo:s});if($e)for(let[Yl,BI]of $e)Ae.set(Yl,BI)}let he=ue.filter(Ce=>!Ae.has(Ce.id)),ZI=this.mergeToolResults(Ae,ue,he,a,we,n?.executeToolsInParallel);for await(let Ce of ZI){Ce.toolResult.resultType==="rejected"&&(h=!0);let $e={role:"tool",tool_call_id:Ce.originalCall.id,content:Ce.toolResult.textResultForLlm};G.push($e),yield{kind:"message",turn:b,callId:n?.callId,modelCall:S,message:Uf($e)},yield{kind:"tool_execution",turn:b,callId:n?.callId,toolCallId:Ce.originalCall.id,toolResult:Ce.toolResult,durationMs:Ce.durationMs};for(let Yl of n?.processors?.postToolExecution||[])await Yl.postToolExecution({toolCall:Ce.originalCall,toolResult:Ce.toolResult,turn:b,modelInfo:s})}}else for(let te of E.choices.map(de=>de.message))yield{kind:"response",turn:b,callId:n?.callId,modelCall:{model:c,api_id:E.id},response:Uf(hX(te))},m=!0}catch(f){let S;throw f instanceof Error&&f.cause&&f.cause instanceof TX?S=`${f} (Cause: ${f.cause})`:S=`${f}`,yield{kind:"turn_failed",model:c,modelInfo:s,turn:b,error:S,timestampMs:Date.now()},f}finally{let f=Date.now();yield{kind:"turn_ended",model:c,modelInfo:s,turn:b,timestampMs:f},b++}}}async*mergeToolResults(e,I,l,n,c,r=!1){for(let[s,a]of e){let G=I.find(i=>i.id===s);G&&(yield{durationMs:0,originalCall:G,toolResult:a})}l.length>0&&(yield*this.callTools(l,n,c,r))}async*callTools(e,I,l,n=!1){if(e.length===0)throw new Error("Tool call is missing");this.logger.debug(`Tool calls count: ${e.length}`);let c=e.some(s=>{let a=I[s.function.name];return bX(a)}),r=n&&!c;if(c&&n&&this.logger.debug("Custom agent detected in tool calls, forcing sequential execution"),r)this.logger.debug("Running tool calls in parallel"),yield*rve(e.map(s=>()=>this.callTool(s,I,l)));else{this.logger.debug("Running tool calls sequentially");for(let s of e)yield await this.callTool(s,I,l)}}async callTool(e,I,l){let n=0,c=e?.function.name;if(!c)throw new Error("Tool name is missing");let r=e?.function.arguments;if(r==null)throw new Error("Tool call arguments are missing");let s=e?.id;if(!s)throw new Error("Tool call id is missing");let a,G=I[c];try{let i=mX(r);if(!G||!G.callback)a={textResultForLlm:`Tool '${c}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${c}' does not exist.`,sessionLog:`<error>Tool '${c}' does not exist.</error>`,toolTelemetry:{}};else{let d=G.callback,b=Date.now(),m={...l,toolCallId:s,toolOptions:this.settings.service?.tools?.[c]},h=await d({...i},m);n=Date.now()-b,a=typeof h=="string"?{textResultForLlm:h,resultType:"success",toolTelemetry:{}}:h}}catch(i){i instanceof SyntaxError?(a={textResultForLlm:`The arguments for the tool call '${c}' were not valid JSON. The arguments have been cleared. Arguments: ${r}. JSON parse error: ${i.message}`,resultType:"failure",error:`${i.message}`,sessionLog:`<error>Failed to execute \`${c}\` tool with arguments: ${r} due to syntax error: ${i.message}</error>`,toolTelemetry:{properties:{wasSyntaxError:"true"}}},e.function.arguments="{}"):a={textResultForLlm:`Failed to execute \`${c}\` tool with arguments: ${r} due to error: ${i}`,resultType:"failure",error:i instanceof Error?i.message:`${i}`,sessionLog:`<error>Failed to execute \`${c}\` tool with arguments: ${r}</error>`,toolTelemetry:{}}}return{durationMs:n,originalCall:e,toolResult:a}}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 TX)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(r=>r.id===e).at(0)||I}};function okI(t){for(let e of t)e.function.name=e.function.name.replace(/[^a-zA-Z0-9_-]+/g,"_")}async function GkI(t,e,I){let l=ikI(t.data,e).toReadableStream(),n=dZ.fromReadableStream(l),c=I?.processors?.onStreamingChunk;if(c?.length)for await(let r of n){I?.abortSignal?.throwIfAborted();let s={chunk:r};for(let a of c)a.onStreamingChunk(s)}return{data:await n.finalChatCompletion(),response:t.response,request_id:t.request_id}}function ikI(t,e){let I=new Map;return new bd(async function*(){for await(let l of t)l.choices?.forEach(n=>{if(n.delta.role??="assistant",!!n.delta?.tool_calls?.length){n.finish_reason??="tool_calls";let r=I.get(n.index);r||(r={nextSequenceNumber:0,mappings:new Map},I.set(n.index,r)),n.delta.tool_calls?.forEach(s=>{let a=r.mappings.get(s.index);if(a!==void 0)s.id&&a.callId!==s.id&&(a.sequenceNumber=r.nextSequenceNumber++,a.callId=s.id),s.index=a.sequenceNumber;else{let G={callId:s.id,sequenceNumber:r.nextSequenceNumber++};r.mappings.set(s.index,G),s.index=G.sequenceNumber}})}}),yield l},t.controller,e)}var R6=class extends JY{constructor(e,I,l){let n=new MX;super(n,e,I,l)}};o();o();o();var y6=class t{constructor(e,I,l,n){this.settings=I;this.logger=l;this.clientOptions=t.initDefaultOptions(n),this.logger.info(`Using responses with model: ${this.model}`),this.clientPromise=e.createClient(I,l,this.clientOptions)}clientOptions;clientPromise;get model(){return this.clientOptions.model}static initDefaultOptions(e){return{model:e?.model||"o4-mini",toolTokenBudgetProportion:e?.toolTokenBudgetProportion??.25,retryPolicy:{maxRetries:e?.retryPolicy?.maxRetries??5,errorCodesToRetry:e?.retryPolicy?.errorCodesToRetry??[],rateLimitRetryPolicy:{defaultRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.defaultRetryAfterSeconds??5,initialRetryBackoffExtraSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.initialRetryBackoffExtraSeconds??1,retryBackoffExtraGrowth:e?.retryPolicy?.rateLimitRetryPolicy?.retryBackoffExtraGrowth??2,maxRetryAfterSeconds:e?.retryPolicy?.rateLimitRetryPolicy?.maxRetryAfterSeconds??60}},thinkingMode:e?.thinkingMode??!0,requestHeaders:e?.requestHeaders??{}}}makeRequest(e,I,l,n,c,r,s,a){return e.responses.create({model:I,previous_response_id:r,instructions:l,input:n,parallel_tool_calls:c.length>0?!0:void 0,tools:c,reasoning:{summary:"auto",effort:"medium"},store:!1,include:["reasoning.encrypted_content"]},{maxRetries:s||this.clientOptions.retryPolicy.maxRetries,headers:a?.requestHeaders,signal:a?.abortSignal}).withResponse()}async*getCompletionWithTools(e,I,l,n){let c=await this.clientPromise,r=WN(l),s=l.map(Z=>({name:Z.name,description:Z.description,parameters:Z.input_schema,strict:!1,type:"function"})),a=0,G=this.clientOptions.retryPolicy.maxRetries,i=this.clientOptions.retryPolicy.rateLimitRetryPolicy.initialRetryBackoffExtraSeconds,d=0,b=this.clientOptions.retryPolicy.rateLimitRetryPolicy.maxRetryAfterSeconds,m=I.flatMap(Xbe),h,p=!1;for(;!p;){let Z;do{Z=void 0;try{let W=await this.makeRequest(c,this.model,e,m,s,void 0,G,n);h=W.data,m.push(...h.output),this.logger.debug(`response (Request-ID ${W.request_id}):`),this.logger.debug("data:"),this.logger.debug(JSON.stringify(W.data,null,2))}catch(W){let Y=W,F=Y.error;if(Y){Z=Y,this.logger.error(`error (Request-ID ${Y.requestID})`),this.logger.error(JSON.stringify(Y,null,2)),this.logger.debug(`Failed to get response from the AI model: ${Y}`),F&&this.logger.debug(`Inner error: ${JSON.stringify(F,null,2)}`);let g=Y.status,A=g?this.clientOptions.retryPolicy.errorCodesToRetry.some(C=>Array.isArray(C)?g>=C[0]&&(C[1]===void 0||g<=C[1]):g===C):!1,k;if((Y.status===429||A)&&(k=parseInt(Y.headers?.get("retry-after")||`${this.clientOptions.retryPolicy.rateLimitRetryPolicy.defaultRetryAfterSeconds}`,10)+i,i*=this.clientOptions.retryPolicy.rateLimitRetryPolicy.retryBackoffExtraGrowth),k!==void 0&&k<=b){this.logger.debug(`Retrying after ${k} seconds...`),await new Promise(C=>setTimeout(C,k*1e3)),d+=k,this.logger.debug(`Retrying after ${k} seconds... Will try again now!`);continue}else k?this.logger.error(`Retry after ${k} seconds is too long. Giving up.`):this.logger.error("Retry after is not set. Giving up.")}throw this.logger.error("error"),this.logger.error(JSON.stringify(W,null,2)),W}finally{this.logger.endGroup(8)}}while(Z&&a++<G);if(!h||Z){this.logger.debug("Recent messages prior to failure:");for(let W=Math.max(0,m.length-6);W<m.length;W++)this.logger.debug(`${W}: ${JSON.stringify(m[W],null,2)}`);throw new Error(`Failed to get response from the AI model; retried ${a-1} times (total retry wait time: ${d} seconds)`,{cause:Z})}for(let W of h.output)yield{kind:"message",message:wbe(W)};if(this.requiresToolOutput(h)){let Y=(await this.runTool(h,r)).map(F=>({type:"function_call_output",call_id:F.toolCallId,output:F.textResultForLlm}));m.push(...Y);for(let F of Y)yield{kind:"message",message:wbe(F)}}else yield{kind:"response",response:{content:h.output_text,refusal:null,role:"assistant"}},p=!0}}async runTool(e,I,l){let n=e.output.filter(r=>r.type==="function_call");if(!n||n.length===0)throw new Error("Tool calls in response are missing");let c=[];for(let r of n){let s=r.name;if(!s)throw new Error("Tool name is missing");let a=r.arguments;if(!a)throw new Error("Tool call arguments are missing");let G=r.call_id;if(!G)throw new Error("Tool call id is missing");let i,d=I[s];try{let b=mX(a);if(!d||!d.callback)i={textResultForLlm:`Tool '${s}' does not exist. Available tools that can be called are ${Object.keys(I).join(", ")}.`,resultType:"failure",error:`Tool '${s}' does not exist.`,sessionLog:`<error>Tool '${s}' does not exist.</error>`,toolTelemetry:{}};else{let m=d.callback,h={...l,toolCallId:G,toolOptions:this.settings.service?.tools?.[s],settings:this.settings},p=await m({...b},h);i=typeof p=="string"?{textResultForLlm:p,resultType:"success",toolTelemetry:{}}:p}}catch(b){i={textResultForLlm:`Failed to execute \`${s}\` tool with arguments: ${a} due to error: ${b}`,resultType:"failure",error:b instanceof Error?b.message:`${b}`,sessionLog:`<error>Failed to execute \`${s}\` tool with arguments: ${a}</error>`,toolTelemetry:{properties:{wasSyntaxError:b instanceof SyntaxError?"true":"false"}}}}c.push({toolCallId:G,textResultForLlm:i.textResultForLlm,sessionLog:i.resultType=="success"?i.sessionLog:i.error?`<error>${i.error}</error>`:void 0})}return c}requiresToolOutput(e){return e.output.filter(I=>I.type==="function_call").length>0}};function Xbe(t){if(t.role==="function")throw new Error("Function role is not supported");let e=[];if(t.reasoning_opaque&&e.push({id:t.reasoning_opaque,type:"reasoning",summary:t.reasoning_text?[{text:t.reasoning_text,type:"summary_text"}]:[],encrypted_content:t.encrypted_content}),t.role==="assistant"&&t.tool_calls&&t.tool_calls.length>0&&QG(t.tool_calls[0])){let I=t.tool_calls[0];return[...e,{type:"function_call",id:t.id,name:I.function.name,arguments:I.function.arguments,call_id:I.id}]}if(t.role==="tool")return[...e,{type:"function_call_output",id:`fc_${t.tool_call_id}`,call_id:t.tool_call_id,output:typeof t.content=="string"?t.content:t.content.map(I=>I.text).join(" ")??""}];if(!t.content)return e;if(t.role==="assistant"){let I=t.id||crypto.randomUUID();return I.startsWith("msg_")||(I=`msg_${I}`),[...e,{type:"message",id:I,role:t.role,content:[{annotations:[],type:"output_text",text:typeof t.content=="string"?t.content:t.content?.map(l=>l.type==="text"?l.text:"").join(" ")??""}],status:"completed"}]}return[...e,{role:t.role,content:typeof t.content=="string"?[{type:"input_text",text:t.content}]:t.content.map(I=>{if(I.type==="text")return{type:"input_text",text:I.text};if(I.type==="image_url")return{type:"input_image",detail:I.image_url.detail||"auto",image_url:I.image_url.url}}).filter(I=>I!==void 0),type:"message"}]}function wbe(t){if(t.type==="reasoning")return{role:"assistant",reasoning_opaque:t.id,reasoning_text:t.summary?t.summary.map(e=>e.text).join(" "):void 0,content:"",encrypted_content:t.encrypted_content};if(t.type==="function_call")return{role:"assistant",id:t.id,tool_calls:[{id:t.call_id,type:"function",function:{name:t.name,arguments:t.arguments}}],content:""};if(t.type==="function_call_output")return{role:"tool",content:t.output,tool_call_id:t.call_id};if(t.type==="message")return{id:"id"in t?t.id:void 0,role:t.role,content:typeof t.content=="string"?t.content:t.content?.map(e=>e.type==="input_text"||e.type==="output_text"?e.text:"").join(" ")??""};throw new Error(`Unknown item type: ${t.type}`)}function dkI(t){let e;t.incomplete_details?.reason==="content_filter"?e="content_filter":t.incomplete_details?.reason==="max_output_tokens"?e="length":e=t.output.some(n=>n.type==="function_call")?"tool_calls":"stop";let l=t.output.filter(n=>n.type==="message"||n.type==="reasoning"||n.type==="function_call").map(n=>wbe(n)).filter(n=>n.role==="assistant").map((n,c)=>({message:{content:Array.isArray(n.content)?n.content.map(r=>typeof r=="string"?r:"text"in r?r.text:"").join(" "):n.content||null,refusal:n.refusal||null,role:n.role||null,tool_calls:n.tool_calls?.filter(r=>r.type==="function"),reasoning_opaque:n.reasoning_opaque,reasoning_text:n.reasoning_text,encrypted_content:n.encrypted_content},index:c,finish_reason:e,logprobs:null}));return{id:t.id,choices:l,created:t.created_at,model:t.model,object:"chat.completion",usage:{completion_tokens:t.usage?.output_tokens||0,prompt_tokens:t.usage?.input_tokens||0,total_tokens:t.usage?.total_tokens||0}}}function cUe(t){return{request_id:t.request_id,data:dkI(t.data),response:t.response}}var g6=class extends JY{makeResponsesRequest(e,I,l,n,c,r,s){let a=l.find(m=>m.role==="system")?.content||"",G=Array.isArray(a)?a.join(`
603
603
  `):a,d=l.filter(m=>m.role!=="system").flatMap(Xbe),b=c.filter(m=>m.type==="function").map(m=>({name:m.function.name,description:m.function.description,parameters:m.function.parameters||null,strict:!1,type:"function"}));return this.logger.debug(`Making responses request with input: ${JSON.stringify(d,null,2)}`),e.responses.create({model:I,previous_response_id:void 0,instructions:G,input:d,parallel_tool_calls:c.length>0?!0:void 0,tools:b,reasoning:{summary:"auto",effort:"medium"},store:!1,include:["reasoning.encrypted_content"]},{maxRetries:r||this.clientOptions.retryPolicy.maxRetries,headers:s?.requestHeaders,signal:s?.abortSignal}).withResponse()}makeRequest(e,I,l,n,c,r,s){return this.makeResponsesRequest(e,I,l,n,c,r,s).then(cUe)}};var F6=class extends g6{constructor(e,I,l){let n=new MX;super(n,e,I,l)}};var e3=class{constructor(e,I,l){this.settings=e;this.logger=I;this.clientOptions=l;this.chatClient=new R6(e,I,l)}chatClient;get model(){return this.chatClient.model}async*getCompletionWithTools(e,I,l,n){let c=await this.chatClient.modelPromise;(this.clientOptions?.thinkingMode||pl(this.settings,"copilot_swe_agent_enable_responses_api"))&&c&&c.supported_endpoints?.includes("/responses")?yield*new F6(this.settings,this.logger,{model:this.chatClient.model,...this.clientOptions}).getCompletionWithTools(e,I,l,n):yield*this.chatClient.getCompletionWithTools(e,I,l,n)}};o();var A6=class extends JY{constructor(e,I,l,n){super(e,I,l,n)}getCompletionOptions(e,I){return{...this.model.startsWith("gpt-4")?{temperature:0,top_p:.95,frequency_penalty:0,presence_penalty:0,parallel_tool_calls:e?!1:void 0}:{},tool_choice:I?.toolChoice}}async*getCompletionWithTools(e,I,l,n){let c=await super.getCompletionWithTools(e,I,l,n);for await(let r of c)r.kind==="message"?yield{...r,message:hX({...r.message,reasoning_text:r.message?.cot_summary})}:yield r}};o();var Q6=class extends y6{constructor(e,I,l,n){super(e,I,l,n)}};o();var Ebe=class extends jf{constructor(e){super(e)}setInitiatorHeader(e){}setAdditionalHeaders(e){}listModels(){return Promise.resolve([])}},w6=class{async createClient(e,I,l){I.startGroup("configured settings:",8),I.debug(JSON.stringify(e,null,2)),I.endGroup(8);let n=e.api?.openai?.apiKey,c=e.api?.openai?.azureKeyVaultUri,r=e.api?.openai?.azureSecretName;if(!n&&c){I.debug("No API_KEY provided, trying secret provider");let i=Abe(c,I);try{n=await i.getSecret(r||"azure-openai-api-key")}catch(d){I.debug(`Failed to get API Key from secret provider:
604
604
  ${d}`)}}let s=k2e(e);I.debug(`Using Azure Open API at ${s}`);let G={baseURL:`${new URL(s).origin}/openai`,apiVersion:e.api?.openai?.azure?.apiVersion||"2024-10-21",deployment:l?.model,defaultHeaders:l?.requestHeaders};if(n)G={...G,apiKey:n},I.debug("Using Azure OpenAI API Key");else{let i=new ch,b=HGe(i,"https://cognitiveservices.azure.com/.default");G={...G,azureADTokenProvider:b},I.debug("Using Azure Managed Identity")}return new Ebe(G)}};o();var Hbe=class extends LI{constructor(e){super(e)}setInitiatorHeader(e){}setAdditionalHeaders(e){}listModels(){return Promise.resolve([])}},X6=class{async createClient(e,I,l){I.startGroup("configured settings:",8),I.debug(JSON.stringify(e,null,2)),I.endGroup(8);let n=f2e(e),c=e.api?.openai?.baseUrl,r=l?.requestHeaders;return new Hbe({baseURL:c,apiKey:n,defaultHeaders:r})}};function vbe(t,e,I,l){switch(I){case"sweagent-aip":return new iK(t,e,l);case"sweagent-anthropic":return new vP(t,e,l);case"sweagent-capi":return new e3(t,e,l);case"sweagent-openai":return l?.thinkingMode?new Q6(rUe(t),t,e,l):new A6(rUe(t),t,e,l);default:return new e3(t,e,l)}}function rUe(t){return t.api?.openai?.azure?.url?new w6:new X6}o();o();import{randomUUID as r9I}from"crypto";import{tmpdir as s9I}from"os";import a9I from"path";o();var YUe=fl(ZUe(),1);import{exec as I9I,spawn as t9I}from"child_process";o();o();function zbe({onlyFirst:t=!1}={}){let I=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(I,t?void 0:"g")}var e9I=zbe();function Ube(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(e9I,"")}import{promisify as l9I}from"util";var gb="___BEGIN___COMMAND_OUTPUT_MARKER___",WUe=`
605
605
  ${gb}`,R0="___BEGIN___COMMAND_DONE_MARKER___",n9I=new RegExp(`${R0}(\\d+)`),NUe=5e3,n3=100*1024,_X=class t{constructor(e,I,l={}){this.config=e;this.createdAtMs=Date.now(),this.lastUsedAtMs=Date.now();let n=this.config.shellType==="powershell",c=n?"pwsh.exe":"bash",r=n?["-nop","-nol"]:["--norc","--noprofile"],s=n?!1:void 0;this.process=(0,YUe.spawn)(c,r,{name:"xterm-color",cols:120,rows:80,cwd:I,env:l,useConpty:s}),this.process.onData(a=>{let i=Ube(a).replaceAll("\r","");if(this.outputBuffer.length+i.length>n3){this.wasTruncated=!0;let d=this.outputBuffer.lastIndexOf(gb);if(d!==-1){let b=this.outputBuffer.substring(0,d+gb.length),m=this.outputBuffer.substring(d+gb.length),h=n3-i.length-b.length;if(h>0){let p=Kn(m,"output",h,"start");this.outputBuffer=b+p}else{this.outputBuffer=b+Kn(i,"output",n3-b.length,"start");return}}else{let b=n3-i.length;if(b>0)this.outputBuffer=Kn(this.outputBuffer,"output",b,"start");else{this.outputBuffer=Kn(i,"output",n3,"start");return}}}this.outputBuffer+=i}),this.process.onExit(a=>this.shutdown())}process;outputBuffer="";isCommandInProgress=!1;wasTruncated=!1;createdAtMs;lastUsedAtMs;onPartialOutputChanged;static shellIsSupportedCache=new Map;writeDelay=Promise.resolve();static async create(e,I,l={}){await t.ensureShellIsSupported(e.shellType);let n=new t(e,I,l);return await n.initializeShellEnvironment(),n}setPartialOutputChangedCallback(e){this.onPartialOutputChanged=e}async executeCommand(e,I){if(this.updateLastUsedTime(),!this.process)throw new Error(`Failed to start ${this.config.shellType} process`);if(this.tryStartCommand(e))return await(I?this.waitForCommandCompletionOrTimeout(I):this.waitForCommandCompletion())}async cwd(){try{let e=this.config.shellType==="powershell"?"(pwd).Path":"pwd",I=await this.executeCommand(e,NUe);return I?.exitCode===0?I.output:void 0}catch{return}}async tryExecuteAsyncCommand(e){return this.updateLastUsedTime(),this.tryStartCommand(e)?(this.waitForCommandCompletion().catch(I=>{}),this.config.shellType==="powershell"&&await new Promise(I=>setTimeout(I,250)),!0):!1}async tryExecuteDetachedCommand(e,I){return this.updateLastUsedTime(),this.isCommandInProgress?!1:process.platform==="win32"?this.tryExecuteDetachedCommandWindows(e,I):this.tryExecuteDetachedCommandUnix(e,I)}async tryExecuteDetachedCommandWindows(e,I){if(!(this.config.shellType==="powershell"))throw new Error("Only PowerShell is supported for detached commands on Windows");try{let n=e.replace(/"/g,'""'),c=I.replace(/\\/g,"\\\\"),r=`Start-Process -FilePath "pwsh.exe" -ArgumentList "-NoProfile","-Command","${n} *>> '${c}' 2>&1" -WindowStyle Hidden`;return t9I("pwsh.exe",["-NoProfile","-Command",r],{stdio:"ignore",cwd:await this.cwd(),windowsHide:!0}).unref(),this.isCommandInProgress=!0,this.outputBuffer=`${gb}