@muxcodecli/cli 1.15.17 → 1.15.18

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.
Files changed (204) hide show
  1. package/dist/bip-bop-01-ga21wr3r.mp3 +0 -0
  2. package/dist/bip-bop-03-kgfd4rq4.mp3 +0 -0
  3. package/dist/chunk-0hqmdrjr.js +3 -0
  4. package/dist/chunk-0npjzye0.js +2 -0
  5. package/dist/chunk-0pe6y883.js +2 -0
  6. package/dist/chunk-0qqpjj2h.js +3 -0
  7. package/dist/chunk-0r3h8jgj.js +2 -0
  8. package/dist/chunk-11285jfy.js +3 -0
  9. package/dist/chunk-11ant2kk.js +3 -0
  10. package/dist/chunk-124qmktt.js +18 -0
  11. package/dist/chunk-138ntz3h.js +2 -0
  12. package/dist/chunk-1e73ypg5.js +3 -0
  13. package/dist/chunk-1evcc54z.js +3 -0
  14. package/dist/chunk-1mqsg5s7.js +75 -0
  15. package/dist/chunk-1pv2317e.js +7 -0
  16. package/dist/chunk-1y3ssxx6.js +2 -0
  17. package/dist/chunk-20x8vsdn.js +7 -0
  18. package/dist/chunk-21x3anp4.js +9 -0
  19. package/dist/chunk-22qpzg37.js +212 -0
  20. package/dist/chunk-2bt5mtgm.js +3 -0
  21. package/dist/chunk-2d95ene8.js +2 -0
  22. package/dist/chunk-2h2zq5cp.js +2 -0
  23. package/dist/chunk-2pc63est.js +2 -0
  24. package/dist/chunk-33gs9z8d.js +2 -0
  25. package/dist/chunk-33vwwxjk.js +2 -0
  26. package/dist/chunk-3dq7hfxc.js +9 -0
  27. package/dist/chunk-3jvft1k1.js +2 -0
  28. package/dist/chunk-4jqh4mpm.js +2 -0
  29. package/dist/chunk-4mgyaytc.js +672 -0
  30. package/dist/chunk-4va8fzq1.js +2 -0
  31. package/dist/chunk-4wkq9y2z.js +7 -0
  32. package/dist/chunk-526nbm9e.js +2 -0
  33. package/dist/chunk-5a6895cv.js +37 -0
  34. package/dist/chunk-5e9dq2av.js +2 -0
  35. package/dist/chunk-5jn2z3nf.js +3 -0
  36. package/dist/chunk-5npr1qyq.js +574 -0
  37. package/dist/chunk-5sfky0gz.js +8 -0
  38. package/dist/chunk-5t7xqdvk.js +3 -0
  39. package/dist/chunk-5tpqj6ag.js +10 -0
  40. package/dist/chunk-5v5015am.js +12 -0
  41. package/dist/chunk-5wawdxv2.js +7 -0
  42. package/dist/chunk-6btrg3ff.js +2 -0
  43. package/dist/chunk-6skbzman.js +6 -0
  44. package/dist/chunk-6sz698ew.js +11 -0
  45. package/dist/chunk-6xzrzmsr.js +2 -0
  46. package/dist/chunk-7848rf5q.js +63 -0
  47. package/dist/chunk-7ep2edcv.js +12 -0
  48. package/dist/chunk-7svw66kw.js +13 -0
  49. package/dist/chunk-7xgr8vx6.js +2 -0
  50. package/dist/chunk-7zjn6m1m.js +2 -0
  51. package/dist/chunk-8atqb297.js +12 -0
  52. package/dist/chunk-8ebkxjar.js +7 -0
  53. package/dist/chunk-8j3aw4qg.js +3 -0
  54. package/dist/chunk-8jy0dvcn.js +3 -0
  55. package/dist/chunk-8refh038.js +2 -0
  56. package/dist/chunk-93cszp8k.js +3 -0
  57. package/dist/chunk-93ze3gcb.js +2 -0
  58. package/dist/chunk-98yxzxtd.js +2 -0
  59. package/dist/chunk-9g64kggy.js +3 -0
  60. package/dist/chunk-9h1pwxb2.js +8 -0
  61. package/dist/chunk-9j4j9nrm.js +2 -0
  62. package/dist/chunk-9kzczwh0.js +3 -0
  63. package/dist/chunk-9n629gtn.js +3 -0
  64. package/dist/chunk-9y59sxde.js +2 -0
  65. package/dist/chunk-a2m5jyd8.js +2 -0
  66. package/dist/chunk-a595cp8s.js +2 -0
  67. package/dist/chunk-ak0k3m4q.js +3 -0
  68. package/dist/chunk-apksmrz9.js +3 -0
  69. package/dist/chunk-b05r09sj.js +10 -0
  70. package/dist/chunk-b47e563q.js +2 -0
  71. package/dist/chunk-b57avnse.js +2 -0
  72. package/dist/chunk-bfjq7w7k.js +2 -0
  73. package/dist/chunk-bhc70qet.js +3 -0
  74. package/dist/chunk-bvtscj68.js +2 -0
  75. package/dist/chunk-bw2cy5v0.js +8 -0
  76. package/dist/chunk-c7dvyh2x.js +2 -0
  77. package/dist/chunk-cbz8b7g5.js +3 -0
  78. package/dist/chunk-cw4vbnet.js +3 -0
  79. package/dist/chunk-czcj3j9y.js +2 -0
  80. package/dist/chunk-dg466kdp.js +2 -0
  81. package/dist/chunk-dmscgnhq.js +2 -0
  82. package/dist/chunk-dtk4m8rm.js +3 -0
  83. package/dist/chunk-dy7akyj3.js +2 -0
  84. package/dist/chunk-e2wv2sp4.js +2 -0
  85. package/dist/chunk-e8j03wnd.js +3 -0
  86. package/dist/chunk-egkp6tct.js +2 -0
  87. package/dist/chunk-emfc800a.js +2 -0
  88. package/dist/chunk-envnht72.js +4 -0
  89. package/dist/chunk-eskw1cj2.js +3 -0
  90. package/dist/chunk-ezz15tyg.js +2 -0
  91. package/dist/chunk-fkmzj0qt.js +16 -0
  92. package/dist/chunk-fqt3c3g5.js +4 -0
  93. package/dist/chunk-frbht418.js +19 -0
  94. package/dist/chunk-ftz8cqfq.js +2 -0
  95. package/dist/chunk-g4jxdrr6.js +2 -0
  96. package/dist/chunk-g52xzmrr.js +2 -0
  97. package/dist/chunk-gbtvkje9.js +4 -0
  98. package/dist/chunk-gm9msqq5.js +8 -0
  99. package/dist/chunk-gxat3dpd.js +3 -0
  100. package/dist/chunk-hfppq1w5.js +4 -0
  101. package/dist/chunk-jdg870gy.js +1683 -0
  102. package/dist/chunk-jfz77m78.js +3 -0
  103. package/dist/chunk-jg9r58pf.js +16 -0
  104. package/dist/chunk-jgzt4945.js +2 -0
  105. package/dist/chunk-jh2epywq.js +2 -0
  106. package/dist/chunk-jpj6a56k.js +2 -0
  107. package/dist/chunk-jw4sgq23.js +2 -0
  108. package/dist/chunk-jws11ngd.js +2 -0
  109. package/dist/chunk-jxhz82qt.js +2 -0
  110. package/dist/chunk-k19y2psf.js +4 -0
  111. package/dist/chunk-k6cj14zk.js +2 -0
  112. package/dist/chunk-kktm0pdc.js +3 -0
  113. package/dist/chunk-kmr27ake.js +160 -0
  114. package/dist/chunk-kyhwvbvq.js +2 -0
  115. package/dist/chunk-mgn5pejx.js +2 -0
  116. package/dist/chunk-mskyzxb3.js +3 -0
  117. package/dist/chunk-my9cfmvt.js +5 -0
  118. package/dist/chunk-n4vx7kvs.js +389 -0
  119. package/dist/chunk-nc44rvs7.js +23 -0
  120. package/dist/chunk-ng3vbpmy.js +3 -0
  121. package/dist/chunk-nmnp5g5p.js +228 -0
  122. package/dist/chunk-nn0t3xmn.js +2 -0
  123. package/dist/chunk-npr41z9a.js +19 -0
  124. package/dist/chunk-ntvr3177.js +25 -0
  125. package/dist/chunk-pkc5hkha.js +2 -0
  126. package/dist/chunk-ppg6zhae.js +3 -0
  127. package/dist/chunk-pqwm9zk1.js +6 -0
  128. package/dist/chunk-ptvjmfqx.js +2 -0
  129. package/dist/chunk-q1r48y0y.js +34 -0
  130. package/dist/chunk-q9yddd1r.js +3 -0
  131. package/dist/chunk-qavtgsrh.js +2 -0
  132. package/dist/chunk-qvh8ghjw.js +7 -0
  133. package/dist/chunk-qx6r187q.js +2 -0
  134. package/dist/chunk-r093mfa8.js +32 -0
  135. package/dist/chunk-rbaj9ktq.js +2 -0
  136. package/dist/chunk-rkf9ynkx.js +3 -0
  137. package/dist/chunk-rpp44jtx.js +3 -0
  138. package/dist/chunk-rrvwp351.js +2 -0
  139. package/dist/chunk-rs8fsgqt.js +81 -0
  140. package/dist/chunk-s4gy87ft.js +8 -0
  141. package/dist/chunk-s5qq2ch2.js +12 -0
  142. package/dist/chunk-s92578qx.js +71 -0
  143. package/dist/chunk-snsb760m.js +2 -0
  144. package/dist/chunk-sp1cvejp.js +2 -0
  145. package/dist/chunk-spb3tm25.js +4 -0
  146. package/dist/chunk-srnmswkj.js +2 -0
  147. package/dist/chunk-sxgbzwrs.js +2 -0
  148. package/dist/chunk-t2s6m9t2.js +35 -0
  149. package/dist/chunk-t98sdxty.js +2 -0
  150. package/dist/chunk-tbnxx5na.js +2 -0
  151. package/dist/chunk-tfxm3qz4.js +2 -0
  152. package/dist/chunk-treb38pz.js +3 -0
  153. package/dist/chunk-tvw8tfpr.js +6 -0
  154. package/dist/chunk-v107htgw.js +101 -0
  155. package/dist/chunk-v8at4gnt.js +2 -0
  156. package/dist/chunk-vmr3get8.js +2 -0
  157. package/dist/chunk-vqrnejgj.js +71 -0
  158. package/dist/chunk-vvwy955j.js +3 -0
  159. package/dist/chunk-w5jxffnq.js +2 -0
  160. package/dist/chunk-wcbh5jqy.js +3 -0
  161. package/dist/chunk-wfmrnep1.js +2 -0
  162. package/dist/chunk-wk11yy8h.js +3 -0
  163. package/dist/chunk-wn5f1tfj.js +2 -0
  164. package/dist/chunk-wpm2p1gq.js +3 -0
  165. package/dist/chunk-wxkyv5gj.js +2 -0
  166. package/dist/chunk-wyed730e.js +2 -0
  167. package/dist/chunk-x65zs89t.js +3 -0
  168. package/dist/chunk-x6zjq78z.js +2 -0
  169. package/dist/chunk-xedav0qx.js +3 -0
  170. package/dist/chunk-xmftb9ad.js +38 -0
  171. package/dist/chunk-xvtkw7hj.js +3 -0
  172. package/dist/chunk-xy0txg0n.js +2 -0
  173. package/dist/chunk-y7s5cpwr.js +34 -0
  174. package/dist/chunk-yg48tfvv.js +16 -0
  175. package/dist/chunk-ygpen625.js +3 -0
  176. package/dist/chunk-ymb45bt6.js +2 -0
  177. package/dist/chunk-yp2zfcvh.js +8 -0
  178. package/dist/chunk-z3mx7n44.js +3 -0
  179. package/dist/chunk-zaj612bw.js +3 -0
  180. package/dist/chunk-zb3179f9.js +3 -0
  181. package/dist/chunk-zhd8f4pc.js +759 -0
  182. package/dist/chunk-zjpnyah2.js +3 -0
  183. package/dist/cli/cmd/tui/worker.js +2 -0
  184. package/dist/highlights-eq9cgrbb.scm +604 -0
  185. package/dist/highlights-ghv9g403.scm +205 -0
  186. package/dist/highlights-hk7bwhj4.scm +284 -0
  187. package/dist/highlights-r812a2qc.scm +150 -0
  188. package/dist/highlights-x6tmsnaa.scm +115 -0
  189. package/dist/index.js +146 -5742
  190. package/dist/injections-73j83es3.scm +27 -0
  191. package/dist/muxcode-linux-x64 +0 -0
  192. package/dist/nope-03-2z8weyjw.mp3 +0 -0
  193. package/dist/photon_rs_bg-bq08arze.wasm +0 -0
  194. package/dist/staplebops-06-rz29m246.mp3 +0 -0
  195. package/dist/tree-sitter-3jzf13jk.wasm +0 -0
  196. package/dist/tree-sitter-bash-hq5s6fxb.wasm +0 -0
  197. package/dist/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  198. package/dist/tree-sitter-markdown-411r6y9b.wasm +0 -0
  199. package/dist/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  200. package/dist/tree-sitter-powershell-ryb2ffqs.wasm +0 -0
  201. package/dist/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  202. package/dist/tree-sitter-zig-e78zbjpm.wasm +0 -0
  203. package/dist/yup-01-30ecpeh9.mp3 +0 -0
  204. package/package.json +2 -2
@@ -0,0 +1,101 @@
1
+ // @bun
2
+ import{SF as BY,UF as G8}from"./chunk-8j3aw4qg.js";function j($,X,Y,J,Q){if(J==="m")throw TypeError("Private method is not writable");if(J==="a"&&!Q)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?$!==X||!Q:!X.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?Q.call($,Y):Q?Q.value=Y:X.set($,Y),Y}function N($,X,Y,J){if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?$!==X||!J:!X.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return Y==="m"?J:Y==="a"?J.call($):J?J.value:X.get($)}var D4=function(){let{crypto:$}=globalThis;if($?.randomUUID)return D4=$.randomUUID.bind($),$.randomUUID();let X=new Uint8Array(1),Y=$?()=>$.getRandomValues(X)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(J)=>(+J^Y()&15>>+J/4).toString(16))};function a$($){return typeof $==="object"&&$!==null&&(("name"in $)&&$.name==="AbortError"||("message"in $)&&String($.message).includes("FetchRequestCanceledException"))}var H1=($)=>{if($ instanceof Error)return $;if(typeof $==="object"&&$!==null){try{if(Object.prototype.toString.call($)==="[object Error]"){let X=Error($.message,$.cause?{cause:$.cause}:{});if($.stack)X.stack=$.stack;if($.cause&&!X.cause)X.cause=$.cause;if($.name)X.name=$.name;return X}}catch{}try{return Error(JSON.stringify($))}catch{}}return Error($)};class f extends Error{}class $$ extends f{constructor($,X,Y,J){super(`${$$.makeMessage($,X,Y)}`);this.status=$,this.headers=J,this.requestID=J?.get("request-id"),this.error=X}static makeMessage($,X,Y){let J=X?.message?typeof X.message==="string"?X.message:JSON.stringify(X.message):X?JSON.stringify(X):Y;if($&&J)return`${$} ${J}`;if($)return`${$} status code (no body)`;if(J)return J;return"(no status code or body)"}static generate($,X,Y,J){if(!$||!J)return new _0({message:Y,cause:H1(X)});let Q=X;if($===400)return new B1($,Q,Y,J);if($===401)return new q1($,Q,Y,J);if($===403)return new w1($,Q,Y,J);if($===404)return new N1($,Q,Y,J);if($===409)return new U1($,Q,Y,J);if($===422)return new M1($,Q,Y,J);if($===429)return new F1($,Q,Y,J);if($>=500)return new O1($,Q,Y,J);return new $$($,Q,Y,J)}}class K$ extends $${constructor({message:$}={}){super(void 0,void 0,$||"Request was aborted.",void 0)}}class _0 extends $${constructor({message:$,cause:X}){super(void 0,void 0,$||"Connection error.",void 0);if(X)this.cause=X}}class K1 extends _0{constructor({message:$}={}){super({message:$??"Request timed out."})}}class B1 extends $${}class q1 extends $${}class w1 extends $${}class N1 extends $${}class U1 extends $${}class M1 extends $${}class F1 extends $${}class O1 extends $${}var D5=/^[a-z][a-z0-9+.-]*:/i,pX=($)=>{return D5.test($)},Z4=($)=>(Z4=Array.isArray,Z4($)),S4=Z4;function q8($){if(typeof $!=="object")return{};return $??{}}function iX($){if(!$)return!0;for(let X in $)return!1;return!0}function nX($,X){return Object.prototype.hasOwnProperty.call($,X)}var aX=($,X)=>{if(typeof X!=="number"||!Number.isInteger(X))throw new f(`${$} must be an integer`);if(X<0)throw new f(`${$} must be a positive integer`);return X};var w8=($)=>{try{return JSON.parse($)}catch(X){return}};var rX=($)=>new Promise((X)=>setTimeout(X,$));var V0="0.71.2";var eX=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function Z5(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var S5=()=>{let $=Z5();if($==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":V0,"X-Stainless-OS":oX(Deno.build.os),"X-Stainless-Arch":sX(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":V0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if($==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":V0,"X-Stainless-OS":oX(globalThis.process.platform??"unknown"),"X-Stainless-Arch":sX(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let X=A5();if(X)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":V0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${X.browser}`,"X-Stainless-Runtime-Version":X.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":V0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function A5(){if(typeof navigator>"u"||!navigator)return null;let $=[{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:X,pattern:Y}of $){let J=Y.exec(navigator.userAgent);if(J){let Q=J[1]||0,z=J[2]||0,W=J[3]||0;return{browser:X,version:`${Q}.${z}.${W}`}}}return null}var sX=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},oX=($)=>{if($=$.toLowerCase(),$.includes("ios"))return"iOS";if($==="android")return"Android";if($==="darwin")return"MacOS";if($==="win32")return"Windows";if($==="freebsd")return"FreeBSD";if($==="openbsd")return"OpenBSD";if($==="linux")return"Linux";if($)return`Other:${$}`;return"Unknown"},tX,$7=()=>{return tX??(tX=S5())};function X7(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function A4(...$){let X=globalThis.ReadableStream;if(typeof X>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new X(...$)}function N8($){let X=Symbol.asyncIterator in $?$[Symbol.asyncIterator]():$[Symbol.iterator]();return A4({start(){},async pull(Y){let{done:J,value:Q}=await X.next();if(J)Y.close();else Y.enqueue(Q)},async cancel(){await X.return?.()}})}function E1($){if($[Symbol.asyncIterator])return $;let X=$.getReader();return{async next(){try{let Y=await X.read();if(Y?.done)X.releaseLock();return Y}catch(Y){throw X.releaseLock(),Y}},async return(){let Y=X.cancel();return X.releaseLock(),await Y,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Y7($){if($===null||typeof $!=="object")return;if($[Symbol.asyncIterator]){await $[Symbol.asyncIterator]().return?.();return}let X=$.getReader(),Y=X.cancel();X.releaseLock(),await Y}var J7=({headers:$,body:X})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(X)}};function W7($){let X=0;for(let Q of $)X+=Q.length;let Y=new Uint8Array(X),J=0;for(let Q of $)Y.set(Q,J),J+=Q.length;return Y}var Q7;function L1($){let X;return(Q7??(X=new globalThis.TextEncoder,Q7=X.encode.bind(X)))($)}var z7;function C4($){let X;return(z7??(X=new globalThis.TextDecoder,z7=X.decode.bind(X)))($)}var M$,F$;class H0{constructor(){M$.set(this,void 0),F$.set(this,void 0),j(this,M$,new Uint8Array,"f"),j(this,F$,null,"f")}decode($){if($==null)return[];let X=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?L1($):$;j(this,M$,W7([N(this,M$,"f"),X]),"f");let Y=[],J;while((J=R5(N(this,M$,"f"),N(this,F$,"f")))!=null){if(J.carriage&&N(this,F$,"f")==null){j(this,F$,J.index,"f");continue}if(N(this,F$,"f")!=null&&(J.index!==N(this,F$,"f")+1||J.carriage)){Y.push(C4(N(this,M$,"f").subarray(0,N(this,F$,"f")-1))),j(this,M$,N(this,M$,"f").subarray(N(this,F$,"f")),"f"),j(this,F$,null,"f");continue}let Q=N(this,F$,"f")!==null?J.preceding-1:J.preceding,z=C4(N(this,M$,"f").subarray(0,Q));Y.push(z),j(this,M$,N(this,M$,"f").subarray(J.index),"f"),j(this,F$,null,"f")}return Y}flush(){if(!N(this,M$,"f").length)return[];return this.decode(`
3
+ `)}}M$=new WeakMap,F$=new WeakMap;H0.NEWLINE_CHARS=new Set([`
4
+ `,"\r"]);H0.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function R5($,X){for(let Q=X??0;Q<$.length;Q++){if($[Q]===10)return{preceding:Q,index:Q+1,carriage:!1};if($[Q]===13)return{preceding:Q,index:Q+1,carriage:!0}}return null}function G7($){for(let J=0;J<$.length-1;J++){if($[J]===10&&$[J+1]===10)return J+2;if($[J]===13&&$[J+1]===13)return J+2;if($[J]===13&&$[J+1]===10&&J+3<$.length&&$[J+2]===13&&$[J+3]===10)return J+4}return-1}var M8={off:0,error:200,warn:300,info:400,debug:500},j4=($,X,Y)=>{if(!$)return;if(nX(M8,$))return $;z$(Y).warn(`${X} was set to ${JSON.stringify($)}, expected one of ${JSON.stringify(Object.keys(M8))}`);return};function D1(){}function U8($,X,Y){if(!X||M8[$]>M8[Y])return D1;else return X[$].bind(X)}var P5={error:D1,warn:D1,info:D1,debug:D1},V7=new WeakMap;function z$($){let X=$.logger,Y=$.logLevel??"off";if(!X)return P5;let J=V7.get(X);if(J&&J[0]===Y)return J[1];let Q={error:U8("error",X,Y),warn:U8("warn",X,Y),info:U8("info",X,Y),debug:U8("debug",X,Y)};return V7.set(X,[Y,Q]),Q}var r$=($)=>{if($.options)$.options={...$.options},delete $.options.headers;if($.headers)$.headers=Object.fromEntries(($.headers instanceof Headers?[...$.headers]:Object.entries($.headers)).map(([X,Y])=>[X,X.toLowerCase()==="x-api-key"||X.toLowerCase()==="authorization"||X.toLowerCase()==="cookie"||X.toLowerCase()==="set-cookie"?"***":Y]));if("retryOfRequestLogID"in $){if($.retryOfRequestLogID)$.retryOf=$.retryOfRequestLogID;delete $.retryOfRequestLogID}return $};var Z1;class O${constructor($,X,Y){this.iterator=$,Z1.set(this,void 0),this.controller=X,j(this,Z1,Y,"f")}static fromSSEResponse($,X,Y){let J=!1,Q=Y?z$(Y):console;async function*z(){if(J)throw new f("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let W=!1;try{for await(let G of T5($,X)){if(G.event==="completion")try{yield JSON.parse(G.data)}catch(V){throw Q.error("Could not parse message into JSON:",G.data),Q.error("From chunk:",G.raw),V}if(G.event==="message_start"||G.event==="message_delta"||G.event==="message_stop"||G.event==="content_block_start"||G.event==="content_block_delta"||G.event==="content_block_stop")try{yield JSON.parse(G.data)}catch(V){throw Q.error("Could not parse message into JSON:",G.data),Q.error("From chunk:",G.raw),V}if(G.event==="ping")continue;if(G.event==="error")throw new $$(void 0,w8(G.data)??G.data,void 0,$.headers)}W=!0}catch(G){if(a$(G))return;throw G}finally{if(!W)X.abort()}}return new O$(z,X,Y)}static fromReadableStream($,X,Y){let J=!1;async function*Q(){let W=new H0,G=E1($);for await(let V of G)for(let K of W.decode(V))yield K;for(let V of W.flush())yield V}async function*z(){if(J)throw new f("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let W=!1;try{for await(let G of Q()){if(W)continue;if(G)yield JSON.parse(G)}W=!0}catch(G){if(a$(G))return;throw G}finally{if(!W)X.abort()}}return new O$(z,X,Y)}[(Z1=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let $=[],X=[],Y=this.iterator(),J=(Q)=>{return{next:()=>{if(Q.length===0){let z=Y.next();$.push(z),X.push(z)}return Q.shift()}}};return[new O$(()=>J($),this.controller,N(this,Z1,"f")),new O$(()=>J(X),this.controller,N(this,Z1,"f"))]}toReadableStream(){let $=this,X;return A4({async start(){X=$[Symbol.asyncIterator]()},async pull(Y){try{let{value:J,done:Q}=await X.next();if(Q)return Y.close();let z=L1(JSON.stringify(J)+`
5
+ `);Y.enqueue(z)}catch(J){Y.error(J)}},async cancel(){await X.return?.()}})}}async function*T5($,X){if(!$.body){if(X.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new f("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new f("Attempted to iterate over a response with no body")}let Y=new H7,J=new H0,Q=E1($.body);for await(let z of _5(Q))for(let W of J.decode(z)){let G=Y.decode(W);if(G)yield G}for(let z of J.flush()){let W=Y.decode(z);if(W)yield W}}async function*_5($){let X=new Uint8Array;for await(let Y of $){if(Y==null)continue;let J=Y instanceof ArrayBuffer?new Uint8Array(Y):typeof Y==="string"?L1(Y):Y,Q=new Uint8Array(X.length+J.length);Q.set(X),Q.set(J,X.length),X=Q;let z;while((z=G7(X))!==-1)yield X.slice(0,z),X=X.slice(z)}if(X.length>0)yield X}class H7{constructor(){this.event=null,this.data=[],this.chunks=[]}decode($){if($.endsWith("\r"))$=$.substring(0,$.length-1);if(!$){if(!this.event&&!this.data.length)return null;let Q={event:this.event,data:this.data.join(`
6
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],Q}if(this.chunks.push($),$.startsWith(":"))return null;let[X,Y,J]=k5($,":");if(J.startsWith(" "))J=J.substring(1);if(X==="event")this.event=J;else if(X==="data")this.data.push(J);return null}}function k5($,X){let Y=$.indexOf(X);if(Y!==-1)return[$.substring(0,Y),X,$.substring(Y+X.length)];return[$,"",""]}async function F8($,X){let{response:Y,requestLogID:J,retryOfRequestLogID:Q,startTime:z}=X,W=await(async()=>{if(X.options.stream){if(z$($).debug("response",Y.status,Y.url,Y.headers,Y.body),X.options.__streamClass)return X.options.__streamClass.fromSSEResponse(Y,X.controller);return O$.fromSSEResponse(Y,X.controller)}if(Y.status===204)return null;if(X.options.__binaryResponse)return Y;let V=Y.headers.get("content-type")?.split(";")[0]?.trim();if(V?.includes("application/json")||V?.endsWith("+json")){let q=await Y.json();return R4(q,Y)}return await Y.text()})();return z$($).debug(`[${J}] response parsed`,r$({retryOfRequestLogID:Q,url:Y.url,status:Y.status,body:W,durationMs:Date.now()-z})),W}function R4($,X){if(!$||typeof $!=="object"||Array.isArray($))return $;return Object.defineProperty($,"_request_id",{value:X.headers.get("request-id"),enumerable:!1})}var S1;class k0 extends Promise{constructor($,X,Y=F8){super((J)=>{J(null)});this.responsePromise=X,this.parseResponse=Y,S1.set(this,void 0),j(this,S1,$,"f")}_thenUnwrap($){return new k0(N(this,S1,"f"),this.responsePromise,async(X,Y)=>R4($(await this.parseResponse(X,Y),Y),Y.response))}asResponse(){return this.responsePromise.then(($)=>$.response)}async withResponse(){let[$,X]=await Promise.all([this.parse(),this.asResponse()]);return{data:$,response:X,request_id:X.headers.get("request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(($)=>this.parseResponse(N(this,S1,"f"),$));return this.parsedPromise}then($,X){return this.parse().then($,X)}catch($){return this.parse().catch($)}finally($){return this.parse().finally($)}}S1=new WeakMap;var O8;class P4{constructor($,X,Y,J){O8.set(this,void 0),j(this,O8,$,"f"),this.options=J,this.response=X,this.body=Y}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let $=this.nextPageRequestOptions();if(!$)throw new f("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await N(this,O8,"f").requestAPIList(this.constructor,$)}async*iterPages(){let $=this;yield $;while($.hasNextPage())$=await $.getNextPage(),yield $}async*[(O8=new WeakMap,Symbol.asyncIterator)](){for await(let $ of this.iterPages())for(let X of $.getPaginatedItems())yield X}}class E8 extends k0{constructor($,X,Y){super($,X,async(J,Q)=>new Y(J,Q.response,await F8(J,Q),Q.options))}async*[Symbol.asyncIterator](){let $=await this;for await(let X of $)yield X}}class P$ extends P4{constructor($,X,Y,J){super($,X,Y,J);this.data=Y.data||[],this.has_more=Y.has_more||!1,this.first_id=Y.first_id||null,this.last_id=Y.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let X=this.first_id;if(!X)return null;return{...this.options,query:{...q8(this.options.query),before_id:X}}}let $=this.last_id;if(!$)return null;return{...this.options,query:{...q8(this.options.query),after_id:$}}}}class A1 extends P4{constructor($,X,Y,J){super($,X,Y,J);this.data=Y.data||[],this.has_more=Y.has_more||!1,this.next_page=Y.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let $=this.next_page;if(!$)return null;return{...this.options,query:{...q8(this.options.query),page:$}}}}var _4=()=>{if(typeof File>"u"){let{process:$}=globalThis,X=typeof $?.versions?.node==="string"&&parseInt($.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(X?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function x0($,X,Y){return _4(),new File($,X??"unknown_file",Y)}function C1($){return(typeof $==="object"&&$!==null&&(("name"in $)&&$.name&&String($.name)||("url"in $)&&$.url&&String($.url)||("filename"in $)&&$.filename&&String($.filename)||("path"in $)&&$.path&&String($.path))||"").split(/[\\/]/).pop()||void 0}var k4=($)=>$!=null&&typeof $==="object"&&typeof $[Symbol.asyncIterator]==="function";var H2=async($,X)=>{return{...$,body:await b5($.body,X)}},K7=new WeakMap;function f5($){let X=typeof $==="function"?$:$.fetch,Y=K7.get(X);if(Y)return Y;let J=(async()=>{try{let Q="Response"in X?X.Response:(await X("data:,")).constructor,z=new FormData;if(z.toString()===await new Q(z).text())return!1;return!0}catch{return!0}})();return K7.set(X,J),J}var b5=async($,X)=>{if(!await f5(X))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let Y=new FormData;return await Promise.all(Object.entries($||{}).map(([J,Q])=>T4(Y,J,Q))),Y},I5=($)=>$ instanceof Blob&&("name"in $);var T4=async($,X,Y)=>{if(Y===void 0)return;if(Y==null)throw TypeError(`Received null for "${X}"; to pass null in FormData, you must use the string 'null'`);if(typeof Y==="string"||typeof Y==="number"||typeof Y==="boolean")$.append(X,String(Y));else if(Y instanceof Response){let J={},Q=Y.headers.get("Content-Type");if(Q)J={type:Q};$.append(X,x0([await Y.blob()],C1(Y),J))}else if(k4(Y))$.append(X,x0([await new Response(N8(Y)).blob()],C1(Y)));else if(I5(Y))$.append(X,x0([Y],C1(Y),{type:Y.type}));else if(Array.isArray(Y))await Promise.all(Y.map((J)=>T4($,X+"[]",J)));else if(typeof Y==="object")await Promise.all(Object.entries(Y).map(([J,Q])=>T4($,`${X}[${J}]`,Q)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${Y} instead`)};var B7=($)=>$!=null&&typeof $==="object"&&typeof $.size==="number"&&typeof $.type==="string"&&typeof $.text==="function"&&typeof $.slice==="function"&&typeof $.arrayBuffer==="function",y5=($)=>$!=null&&typeof $==="object"&&typeof $.name==="string"&&typeof $.lastModified==="number"&&B7($),v5=($)=>$!=null&&typeof $==="object"&&typeof $.url==="string"&&typeof $.blob==="function";async function L8($,X,Y){if(_4(),$=await $,X||(X=C1($)),y5($)){if($ instanceof File&&X==null&&Y==null)return $;return x0([await $.arrayBuffer()],X??$.name,{type:$.type,lastModified:$.lastModified,...Y})}if(v5($)){let Q=await $.blob();return X||(X=new URL($.url).pathname.split(/[\\/]/).pop()),x0(await x4(Q),X,Y)}let J=await x4($);if(!Y?.type){let Q=J.find((z)=>typeof z==="object"&&("type"in z)&&z.type);if(typeof Q==="string")Y={...Y,type:Q}}return x0(J,X,Y)}async function x4($){let X=[];if(typeof $==="string"||ArrayBuffer.isView($)||$ instanceof ArrayBuffer)X.push($);else if(B7($))X.push($ instanceof Blob?$:await $.arrayBuffer());else if(k4($))for await(let Y of $)X.push(...await x4(Y));else{let Y=$?.constructor?.name;throw Error(`Unexpected data type: ${typeof $}${Y?`; constructor: ${Y}`:""}${g5($)}`)}return X}function g5($){if(typeof $!=="object"||$===null)return"";return`; props: [${Object.getOwnPropertyNames($).map((Y)=>`"${Y}"`).join(", ")}]`}class r{constructor($){this._client=$}}var q7=Symbol.for("brand.privateNullableHeaders");function*m5($){if(!$)return;if(q7 in $){let{values:J,nulls:Q}=$;yield*J.entries();for(let z of Q)yield[z,null];return}let X=!1,Y;if($ instanceof Headers)Y=$.entries();else if(S4($))Y=$;else X=!0,Y=Object.entries($??{});for(let J of Y){let Q=J[0];if(typeof Q!=="string")throw TypeError("expected header name to be a string");let z=S4(J[1])?J[1]:[J[1]],W=!1;for(let G of z){if(G===void 0)continue;if(X&&!W)W=!0,yield[Q,null];yield[Q,G]}}}var g=($)=>{let X=new Headers,Y=new Set;for(let J of $){let Q=new Set;for(let[z,W]of m5(J)){let G=z.toLowerCase();if(!Q.has(G))X.delete(z),Q.add(G);if(W===null)X.delete(z),Y.add(G);else X.append(z,W),Y.delete(G)}}return{[q7]:!0,values:X,nulls:Y}};function N7($){return $.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var w7=Object.freeze(Object.create(null)),u5=($=N7)=>function(Y,...J){if(Y.length===1)return Y[0];let Q=!1,z=[],W=Y.reduce((B,q,H)=>{if(/[?#]/.test(q))Q=!0;let M=J[H],O=(Q?encodeURIComponent:$)(""+M);if(H!==J.length&&(M==null||typeof M==="object"&&M.toString===Object.getPrototypeOf(Object.getPrototypeOf(M.hasOwnProperty??w7)??w7)?.toString))O=M+"",z.push({start:B.length+q.length,length:O.length,error:`Value of type ${Object.prototype.toString.call(M).slice(8,-1)} is not a valid path parameter`});return B+q+(H===J.length?"":O)},""),G=W.split(/[?#]/,1)[0],V=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,K;while((K=V.exec(G))!==null)z.push({start:K.index,length:K[0].length,error:`Value "${K[0]}" can't be safely passed as a path parameter`});if(z.sort((B,q)=>B.start-q.start),z.length>0){let B=0,q=z.reduce((H,M)=>{let O=" ".repeat(M.start-B),_="^".repeat(M.length);return B=M.start+M.length,H+O+_},"");throw new f(`Path parameters result in path with invalid segments:
7
+ ${z.map((H)=>H.error).join(`
8
+ `)}
9
+ ${W}
10
+ ${q}`)}return W},a=u5(N7);class j1 extends r{list($={},X){let{betas:Y,...J}=$??{};return this._client.getAPIList("/v1/files",P$,{query:J,...X,headers:g([{"anthropic-beta":[...Y??[],"files-api-2025-04-14"].toString()},X?.headers])})}delete($,X={},Y){let{betas:J}=X??{};return this._client.delete(a`/v1/files/${$}`,{...Y,headers:g([{"anthropic-beta":[...J??[],"files-api-2025-04-14"].toString()},Y?.headers])})}download($,X={},Y){let{betas:J}=X??{};return this._client.get(a`/v1/files/${$}/content`,{...Y,headers:g([{"anthropic-beta":[...J??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},Y?.headers]),__binaryResponse:!0})}retrieveMetadata($,X={},Y){let{betas:J}=X??{};return this._client.get(a`/v1/files/${$}`,{...Y,headers:g([{"anthropic-beta":[...J??[],"files-api-2025-04-14"].toString()},Y?.headers])})}upload($,X){let{betas:Y,...J}=$;return this._client.post("/v1/files",H2({body:J,...X,headers:g([{"anthropic-beta":[...Y??[],"files-api-2025-04-14"].toString()},X?.headers])},this._client))}}class R1 extends r{retrieve($,X={},Y){let{betas:J}=X??{};return this._client.get(a`/v1/models/${$}?beta=true`,{...Y,headers:g([{...J?.toString()!=null?{"anthropic-beta":J?.toString()}:void 0},Y?.headers])})}list($={},X){let{betas:Y,...J}=$??{};return this._client.getAPIList("/v1/models?beta=true",P$,{query:J,...X,headers:g([{...Y?.toString()!=null?{"anthropic-beta":Y?.toString()}:void 0},X?.headers])})}}var D8={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function f4($,X,Y){if(!X||!("parse"in(X.output_format??{})))return{...$,content:$.content.map((J)=>{if(J.type==="text"){let Q=Object.defineProperty({...J},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(Q,"parsed",{get(){return Y.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return J}),parsed_output:null};return b4($,X,Y)}function b4($,X,Y){let J=null,Q=$.content.map((z)=>{if(z.type==="text"){let W=l5(X,z.text);if(J===null)J=W;let G=Object.defineProperty({...z},"parsed_output",{value:W,enumerable:!1});return Object.defineProperty(G,"parsed",{get(){return Y.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),W},enumerable:!1})}return z});return{...$,content:Q,parsed_output:J}}function l5($,X){if($.output_format?.type!=="json_schema")return null;try{if("parse"in $.output_format)return $.output_format.parse(X);return JSON.parse(X)}catch(Y){throw new f(`Failed to parse structured output: ${Y}`)}}var p5=($)=>{let X=0,Y=[];while(X<$.length){let J=$[X];if(J==="\\"){X++;continue}if(J==="{"){Y.push({type:"brace",value:"{"}),X++;continue}if(J==="}"){Y.push({type:"brace",value:"}"}),X++;continue}if(J==="["){Y.push({type:"paren",value:"["}),X++;continue}if(J==="]"){Y.push({type:"paren",value:"]"}),X++;continue}if(J===":"){Y.push({type:"separator",value:":"}),X++;continue}if(J===","){Y.push({type:"delimiter",value:","}),X++;continue}if(J==='"'){let G="",V=!1;J=$[++X];while(J!=='"'){if(X===$.length){V=!0;break}if(J==="\\"){if(X++,X===$.length){V=!0;break}G+=J+$[X],J=$[++X]}else G+=J,J=$[++X]}if(J=$[++X],!V)Y.push({type:"string",value:G});continue}if(J&&/\s/.test(J)){X++;continue}let z=/[0-9]/;if(J&&z.test(J)||J==="-"||J==="."){let G="";if(J==="-")G+=J,J=$[++X];while(J&&z.test(J)||J===".")G+=J,J=$[++X];Y.push({type:"number",value:G});continue}let W=/[a-z]/i;if(J&&W.test(J)){let G="";while(J&&W.test(J)){if(X===$.length)break;G+=J,J=$[++X]}if(G=="true"||G=="false"||G==="null")Y.push({type:"name",value:G});else{X++;continue}continue}X++}return Y},K2=($)=>{if($.length===0)return $;let X=$[$.length-1];switch(X.type){case"separator":return $=$.slice(0,$.length-1),K2($);break;case"number":let Y=X.value[X.value.length-1];if(Y==="."||Y==="-")return $=$.slice(0,$.length-1),K2($);case"string":let J=$[$.length-2];if(J?.type==="delimiter")return $=$.slice(0,$.length-1),K2($);else if(J?.type==="brace"&&J.value==="{")return $=$.slice(0,$.length-1),K2($);break;case"delimiter":return $=$.slice(0,$.length-1),K2($);break}return $},i5=($)=>{let X=[];if($.map((Y)=>{if(Y.type==="brace")if(Y.value==="{")X.push("}");else X.splice(X.lastIndexOf("}"),1);if(Y.type==="paren")if(Y.value==="[")X.push("]");else X.splice(X.lastIndexOf("]"),1)}),X.length>0)X.reverse().map((Y)=>{if(Y==="}")$.push({type:"brace",value:"}"});else if(Y==="]")$.push({type:"paren",value:"]"})});return $},n5=($)=>{let X="";return $.map((Y)=>{switch(Y.type){case"string":X+='"'+Y.value+'"';break;default:X+=Y.value;break}}),X},Z8=($)=>JSON.parse(n5(i5(K2(p5($)))));var C$,K0,B2,P1,S8,T1,_1,A8,k1,s$,x1,C8,j8,f0,R8,P8,f1,I4,U7,T8,y4,v4,g4,M7,F7="__json_buf";function O7($){return $.type==="tool_use"||$.type==="server_tool_use"||$.type==="mcp_tool_use"}class b1{constructor($,X){C$.add(this),this.messages=[],this.receivedMessages=[],K0.set(this,void 0),B2.set(this,null),this.controller=new AbortController,P1.set(this,void 0),S8.set(this,()=>{}),T1.set(this,()=>{}),_1.set(this,void 0),A8.set(this,()=>{}),k1.set(this,()=>{}),s$.set(this,{}),x1.set(this,!1),C8.set(this,!1),j8.set(this,!1),f0.set(this,!1),R8.set(this,void 0),P8.set(this,void 0),f1.set(this,void 0),T8.set(this,(Y)=>{if(j(this,C8,!0,"f"),a$(Y))Y=new K$;if(Y instanceof K$)return j(this,j8,!0,"f"),this._emit("abort",Y);if(Y instanceof f)return this._emit("error",Y);if(Y instanceof Error){let J=new f(Y.message);return J.cause=Y,this._emit("error",J)}return this._emit("error",new f(String(Y)))}),j(this,P1,new Promise((Y,J)=>{j(this,S8,Y,"f"),j(this,T1,J,"f")}),"f"),j(this,_1,new Promise((Y,J)=>{j(this,A8,Y,"f"),j(this,k1,J,"f")}),"f"),N(this,P1,"f").catch(()=>{}),N(this,_1,"f").catch(()=>{}),j(this,B2,$,"f"),j(this,f1,X?.logger??console,"f")}get response(){return N(this,R8,"f")}get request_id(){return N(this,P8,"f")}async withResponse(){j(this,f0,!0,"f");let $=await N(this,P1,"f");if(!$)throw Error("Could not resolve a `Response` object");return{data:this,response:$,request_id:$.headers.get("request-id")}}static fromReadableStream($){let X=new b1(null);return X._run(()=>X._fromReadableStream($)),X}static createMessage($,X,Y,{logger:J}={}){let Q=new b1(X,{logger:J});for(let z of X.messages)Q._addMessageParam(z);return j(Q,B2,{...X,stream:!0},"f"),Q._run(()=>Q._createMessage($,{...X,stream:!0},{...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"stream"}})),Q}_run($){$().then(()=>{this._emitFinal(),this._emit("end")},N(this,T8,"f"))}_addMessageParam($){this.messages.push($)}_addMessage($,X=!0){if(this.receivedMessages.push($),X)this._emit("message",$)}async _createMessage($,X,Y){let J=Y?.signal,Q;if(J){if(J.aborted)this.controller.abort();Q=this.controller.abort.bind(this.controller),J.addEventListener("abort",Q)}try{N(this,C$,"m",y4).call(this);let{response:z,data:W}=await $.create({...X,stream:!0},{...Y,signal:this.controller.signal}).withResponse();this._connected(z);for await(let G of W)N(this,C$,"m",v4).call(this,G);if(W.controller.signal?.aborted)throw new K$;N(this,C$,"m",g4).call(this)}finally{if(J&&Q)J.removeEventListener("abort",Q)}}_connected($){if(this.ended)return;j(this,R8,$,"f"),j(this,P8,$?.headers.get("request-id"),"f"),N(this,S8,"f").call(this,$),this._emit("connect")}get ended(){return N(this,x1,"f")}get errored(){return N(this,C8,"f")}get aborted(){return N(this,j8,"f")}abort(){this.controller.abort()}on($,X){return(N(this,s$,"f")[$]||(N(this,s$,"f")[$]=[])).push({listener:X}),this}off($,X){let Y=N(this,s$,"f")[$];if(!Y)return this;let J=Y.findIndex((Q)=>Q.listener===X);if(J>=0)Y.splice(J,1);return this}once($,X){return(N(this,s$,"f")[$]||(N(this,s$,"f")[$]=[])).push({listener:X,once:!0}),this}emitted($){return new Promise((X,Y)=>{if(j(this,f0,!0,"f"),$!=="error")this.once("error",Y);this.once($,X)})}async done(){j(this,f0,!0,"f"),await N(this,_1,"f")}get currentMessage(){return N(this,K0,"f")}async finalMessage(){return await this.done(),N(this,C$,"m",I4).call(this)}async finalText(){return await this.done(),N(this,C$,"m",U7).call(this)}_emit($,...X){if(N(this,x1,"f"))return;if($==="end")j(this,x1,!0,"f"),N(this,A8,"f").call(this);let Y=N(this,s$,"f")[$];if(Y)N(this,s$,"f")[$]=Y.filter((J)=>!J.once),Y.forEach(({listener:J})=>J(...X));if($==="abort"){let J=X[0];if(!N(this,f0,"f")&&!Y?.length)Promise.reject(J);N(this,T1,"f").call(this,J),N(this,k1,"f").call(this,J),this._emit("end");return}if($==="error"){let J=X[0];if(!N(this,f0,"f")&&!Y?.length)Promise.reject(J);N(this,T1,"f").call(this,J),N(this,k1,"f").call(this,J),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",N(this,C$,"m",I4).call(this))}async _fromReadableStream($,X){let Y=X?.signal,J;if(Y){if(Y.aborted)this.controller.abort();J=this.controller.abort.bind(this.controller),Y.addEventListener("abort",J)}try{N(this,C$,"m",y4).call(this),this._connected(null);let Q=O$.fromReadableStream($,this.controller);for await(let z of Q)N(this,C$,"m",v4).call(this,z);if(Q.controller.signal?.aborted)throw new K$;N(this,C$,"m",g4).call(this)}finally{if(Y&&J)Y.removeEventListener("abort",J)}}[(K0=new WeakMap,B2=new WeakMap,P1=new WeakMap,S8=new WeakMap,T1=new WeakMap,_1=new WeakMap,A8=new WeakMap,k1=new WeakMap,s$=new WeakMap,x1=new WeakMap,C8=new WeakMap,j8=new WeakMap,f0=new WeakMap,R8=new WeakMap,P8=new WeakMap,f1=new WeakMap,T8=new WeakMap,C$=new WeakSet,I4=function(){if(this.receivedMessages.length===0)throw new f("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},U7=function(){if(this.receivedMessages.length===0)throw new f("stream ended without producing a Message with role=assistant");let X=this.receivedMessages.at(-1).content.filter((Y)=>Y.type==="text").map((Y)=>Y.text);if(X.length===0)throw new f("stream ended without producing a content block with type=text");return X.join(" ")},y4=function(){if(this.ended)return;j(this,K0,void 0,"f")},v4=function(X){if(this.ended)return;let Y=N(this,C$,"m",M7).call(this,X);switch(this._emit("streamEvent",X,Y),X.type){case"content_block_delta":{let J=Y.content.at(-1);switch(X.delta.type){case"text_delta":{if(J.type==="text")this._emit("text",X.delta.text,J.text||"");break}case"citations_delta":{if(J.type==="text")this._emit("citation",X.delta.citation,J.citations??[]);break}case"input_json_delta":{if(O7(J)&&J.input)this._emit("inputJson",X.delta.partial_json,J.input);break}case"thinking_delta":{if(J.type==="thinking")this._emit("thinking",X.delta.thinking,J.thinking);break}case"signature_delta":{if(J.type==="thinking")this._emit("signature",J.signature);break}default:E7(X.delta)}break}case"message_stop":{this._addMessageParam(Y),this._addMessage(f4(Y,N(this,B2,"f"),{logger:N(this,f1,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",Y.content.at(-1));break}case"message_start":{j(this,K0,Y,"f");break}case"content_block_start":case"message_delta":break}},g4=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let X=N(this,K0,"f");if(!X)throw new f("request ended without sending any chunks");return j(this,K0,void 0,"f"),f4(X,N(this,B2,"f"),{logger:N(this,f1,"f")})},M7=function(X){let Y=N(this,K0,"f");if(X.type==="message_start"){if(Y)throw new f(`Unexpected event order, got ${X.type} before receiving "message_stop"`);return X.message}if(!Y)throw new f(`Unexpected event order, got ${X.type} before "message_start"`);switch(X.type){case"message_stop":return Y;case"message_delta":if(Y.container=X.delta.container,Y.stop_reason=X.delta.stop_reason,Y.stop_sequence=X.delta.stop_sequence,Y.usage.output_tokens=X.usage.output_tokens,Y.context_management=X.context_management,X.usage.input_tokens!=null)Y.usage.input_tokens=X.usage.input_tokens;if(X.usage.cache_creation_input_tokens!=null)Y.usage.cache_creation_input_tokens=X.usage.cache_creation_input_tokens;if(X.usage.cache_read_input_tokens!=null)Y.usage.cache_read_input_tokens=X.usage.cache_read_input_tokens;if(X.usage.server_tool_use!=null)Y.usage.server_tool_use=X.usage.server_tool_use;return Y;case"content_block_start":return Y.content.push(X.content_block),Y;case"content_block_delta":{let J=Y.content.at(X.index);switch(X.delta.type){case"text_delta":{if(J?.type==="text")Y.content[X.index]={...J,text:(J.text||"")+X.delta.text};break}case"citations_delta":{if(J?.type==="text")Y.content[X.index]={...J,citations:[...J.citations??[],X.delta.citation]};break}case"input_json_delta":{if(J&&O7(J)){let Q=J[F7]||"";Q+=X.delta.partial_json;let z={...J};if(Object.defineProperty(z,F7,{value:Q,enumerable:!1,writable:!0}),Q)try{z.input=Z8(Q)}catch(W){let G=new f(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${W}. JSON: ${Q}`);N(this,T8,"f").call(this,G)}Y.content[X.index]=z}break}case"thinking_delta":{if(J?.type==="thinking")Y.content[X.index]={...J,thinking:J.thinking+X.delta.thinking};break}case"signature_delta":{if(J?.type==="thinking")Y.content[X.index]={...J,signature:X.delta.signature};break}default:E7(X.delta)}return Y}case"content_block_stop":return Y}},Symbol.asyncIterator)](){let $=[],X=[],Y=!1;return this.on("streamEvent",(J)=>{let Q=X.shift();if(Q)Q.resolve(J);else $.push(J)}),this.on("end",()=>{Y=!0;for(let J of X)J.resolve(void 0);X.length=0}),this.on("abort",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),this.on("error",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),{next:async()=>{if(!$.length){if(Y)return{value:void 0,done:!0};return new Promise((Q,z)=>X.push({resolve:Q,reject:z})).then((Q)=>Q?{value:Q,done:!1}:{value:void 0,done:!0})}return{value:$.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new O$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function E7($){}var L7=1e5,D7=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
11
+ 1. Task Overview
12
+ The user's core request and success criteria
13
+ Any clarifications or constraints they specified
14
+ 2. Current State
15
+ What has been completed so far
16
+ Files created, modified, or analyzed (with paths if relevant)
17
+ Key outputs or artifacts produced
18
+ 3. Important Discoveries
19
+ Technical constraints or requirements uncovered
20
+ Decisions made and their rationale
21
+ Errors encountered and how they were resolved
22
+ What approaches were tried that didn't work (and why)
23
+ 4. Next Steps
24
+ Specific actions needed to complete the task
25
+ Any blockers or open questions to resolve
26
+ Priority order if multiple steps remain
27
+ 5. Context to Preserve
28
+ User preferences or style requirements
29
+ Domain-specific details that aren't obvious
30
+ Any promises made to the user
31
+ Be concise but complete\u2014err on the side of including information that would prevent duplicate work or repeated mistakes. Write in a way that enables immediate resumption of the task.
32
+ Wrap your summary in <summary></summary> tags.`;var I1,q2,b0,X$,y1,E$,o$,B0,v1,Z7,h4;function S7(){let $,X;return{promise:new Promise((J,Q)=>{$=J,X=Q}),resolve:$,reject:X}}class g1{constructor($,X,Y){I1.add(this),this.client=$,q2.set(this,!1),b0.set(this,!1),X$.set(this,void 0),y1.set(this,void 0),E$.set(this,void 0),o$.set(this,void 0),B0.set(this,void 0),v1.set(this,0),j(this,X$,{params:{...X,messages:structuredClone(X.messages)}},"f"),j(this,y1,{...Y,headers:g([{"x-stainless-helper":"BetaToolRunner"},Y?.headers])},"f"),j(this,B0,S7(),"f")}async*[(q2=new WeakMap,b0=new WeakMap,X$=new WeakMap,y1=new WeakMap,E$=new WeakMap,o$=new WeakMap,B0=new WeakMap,v1=new WeakMap,I1=new WeakSet,Z7=async function(){let X=N(this,X$,"f").params.compactionControl;if(!X||!X.enabled)return!1;let Y=0;if(N(this,E$,"f")!==void 0)try{let V=await N(this,E$,"f");Y=V.usage.input_tokens+(V.usage.cache_creation_input_tokens??0)+(V.usage.cache_read_input_tokens??0)+V.usage.output_tokens}catch{return!1}let J=X.contextTokenThreshold??L7;if(Y<J)return!1;let Q=X.model??N(this,X$,"f").params.model,z=X.summaryPrompt??D7,W=N(this,X$,"f").params.messages;if(W[W.length-1].role==="assistant"){let V=W[W.length-1];if(Array.isArray(V.content)){let K=V.content.filter((B)=>B.type!=="tool_use");if(K.length===0)W.pop();else V.content=K}}let G=await this.client.beta.messages.create({model:Q,messages:[...W,{role:"user",content:[{type:"text",text:z}]}],max_tokens:N(this,X$,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(G.content[0]?.type!=="text")throw new f("Expected text response for compaction");return N(this,X$,"f").params.messages=[{role:"user",content:G.content}],!0},Symbol.asyncIterator)](){var $;if(N(this,q2,"f"))throw new f("Cannot iterate over a consumed stream");j(this,q2,!0,"f"),j(this,b0,!0,"f"),j(this,o$,void 0,"f");try{while(!0){let X;try{if(N(this,X$,"f").params.max_iterations&&N(this,v1,"f")>=N(this,X$,"f").params.max_iterations)break;j(this,b0,!1,"f"),j(this,o$,void 0,"f"),j(this,v1,($=N(this,v1,"f"),$++,$),"f"),j(this,E$,void 0,"f");let{max_iterations:Y,compactionControl:J,...Q}=N(this,X$,"f").params;if(Q.stream)X=this.client.beta.messages.stream({...Q},N(this,y1,"f")),j(this,E$,X.finalMessage(),"f"),N(this,E$,"f").catch(()=>{}),yield X;else j(this,E$,this.client.beta.messages.create({...Q,stream:!1},N(this,y1,"f")),"f"),yield N(this,E$,"f");if(!await N(this,I1,"m",Z7).call(this)){if(!N(this,b0,"f")){let{role:G,content:V}=await N(this,E$,"f");N(this,X$,"f").params.messages.push({role:G,content:V})}let W=await N(this,I1,"m",h4).call(this,N(this,X$,"f").params.messages.at(-1));if(W)N(this,X$,"f").params.messages.push(W);else if(!N(this,b0,"f"))break}}finally{if(X)X.abort()}}if(!N(this,E$,"f"))throw new f("ToolRunner concluded without a message from the server");N(this,B0,"f").resolve(await N(this,E$,"f"))}catch(X){throw j(this,q2,!1,"f"),N(this,B0,"f").promise.catch(()=>{}),N(this,B0,"f").reject(X),j(this,B0,S7(),"f"),X}}setMessagesParams($){if(typeof $==="function")N(this,X$,"f").params=$(N(this,X$,"f").params);else N(this,X$,"f").params=$;j(this,b0,!0,"f"),j(this,o$,void 0,"f")}async generateToolResponse(){let $=await N(this,E$,"f")??this.params.messages.at(-1);if(!$)return null;return N(this,I1,"m",h4).call(this,$)}done(){return N(this,B0,"f").promise}async runUntilDone(){if(!N(this,q2,"f"))for await(let $ of this);return this.done()}get params(){return N(this,X$,"f").params}pushMessages(...$){this.setMessagesParams((X)=>({...X,messages:[...X.messages,...$]}))}then($,X){return this.runUntilDone().then($,X)}}h4=async function(X){if(N(this,o$,"f")!==void 0)return N(this,o$,"f");return j(this,o$,a5(N(this,X$,"f").params,X),"f"),N(this,o$,"f")};async function a5($,X=$.messages.at(-1)){if(!X||X.role!=="assistant"||!X.content||typeof X.content==="string")return null;let Y=X.content.filter((Q)=>Q.type==="tool_use");if(Y.length===0)return null;return{role:"user",content:await Promise.all(Y.map(async(Q)=>{let z=$.tools.find((W)=>("name"in W?W.name:W.mcp_server_name)===Q.name);if(!z||!("run"in z))return{type:"tool_result",tool_use_id:Q.id,content:`Error: Tool '${Q.name}' not found`,is_error:!0};try{let W=Q.input;if("parse"in z&&z.parse)W=z.parse(W);let G=await z.run(W);return{type:"tool_result",tool_use_id:Q.id,content:G}}catch(W){return{type:"tool_result",tool_use_id:Q.id,content:`Error: ${W instanceof Error?W.message:String(W)}`,is_error:!0}}}))}}class w2{constructor($,X){this.iterator=$,this.controller=X}async*decoder(){let $=new H0;for await(let X of this.iterator)for(let Y of $.decode(X))yield JSON.parse(Y);for(let X of $.flush())yield JSON.parse(X)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse($,X){if(!$.body){if(X.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new f("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new f("Attempted to iterate over a response with no body")}return new w2(E1($.body),X)}}class h1 extends r{create($,X){let{betas:Y,...J}=$;return this._client.post("/v1/messages/batches?beta=true",{body:J,...X,headers:g([{"anthropic-beta":[...Y??[],"message-batches-2024-09-24"].toString()},X?.headers])})}retrieve($,X={},Y){let{betas:J}=X??{};return this._client.get(a`/v1/messages/batches/${$}?beta=true`,{...Y,headers:g([{"anthropic-beta":[...J??[],"message-batches-2024-09-24"].toString()},Y?.headers])})}list($={},X){let{betas:Y,...J}=$??{};return this._client.getAPIList("/v1/messages/batches?beta=true",P$,{query:J,...X,headers:g([{"anthropic-beta":[...Y??[],"message-batches-2024-09-24"].toString()},X?.headers])})}delete($,X={},Y){let{betas:J}=X??{};return this._client.delete(a`/v1/messages/batches/${$}?beta=true`,{...Y,headers:g([{"anthropic-beta":[...J??[],"message-batches-2024-09-24"].toString()},Y?.headers])})}cancel($,X={},Y){let{betas:J}=X??{};return this._client.post(a`/v1/messages/batches/${$}/cancel?beta=true`,{...Y,headers:g([{"anthropic-beta":[...J??[],"message-batches-2024-09-24"].toString()},Y?.headers])})}async results($,X={},Y){let J=await this.retrieve($);if(!J.results_url)throw new f(`No batch \`results_url\`; Has it finished processing? ${J.processing_status} - ${J.id}`);let{betas:Q}=X??{};return this._client.get(J.results_url,{...Y,headers:g([{"anthropic-beta":[...Q??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},Y?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((z,W)=>w2.fromResponse(W.response,W.controller))}}var A7={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};class I0 extends r{constructor(){super(...arguments);this.batches=new h1(this._client)}create($,X){let{betas:Y,...J}=$;if(J.model in A7)console.warn(`The model '${J.model}' is deprecated and will reach end-of-life on ${A7[J.model]}
33
+ Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let Q=this._client._options.timeout;if(!J.stream&&Q==null){let z=D8[J.model]??void 0;Q=this._client.calculateNonstreamingTimeout(J.max_tokens,z)}return this._client.post("/v1/messages?beta=true",{body:J,timeout:Q??600000,...X,headers:g([{...Y?.toString()!=null?{"anthropic-beta":Y?.toString()}:void 0},X?.headers]),stream:$.stream??!1})}parse($,X){return X={...X,headers:g([{"anthropic-beta":[...$.betas??[],"structured-outputs-2025-11-13"].toString()},X?.headers])},this.create($,X).then((Y)=>b4(Y,$,{logger:this._client.logger??console}))}stream($,X){return b1.createMessage(this,$,X)}countTokens($,X){let{betas:Y,...J}=$;return this._client.post("/v1/messages/count_tokens?beta=true",{body:J,...X,headers:g([{"anthropic-beta":[...Y??[],"token-counting-2024-11-01"].toString()},X?.headers])})}toolRunner($,X){return new g1(this._client,$,X)}}I0.Batches=h1;I0.BetaToolRunner=g1;class m1 extends r{create($,X={},Y){let{betas:J,...Q}=X??{};return this._client.post(a`/v1/skills/${$}/versions?beta=true`,H2({body:Q,...Y,headers:g([{"anthropic-beta":[...J??[],"skills-2025-10-02"].toString()},Y?.headers])},this._client))}retrieve($,X,Y){let{skill_id:J,betas:Q}=X;return this._client.get(a`/v1/skills/${J}/versions/${$}?beta=true`,{...Y,headers:g([{"anthropic-beta":[...Q??[],"skills-2025-10-02"].toString()},Y?.headers])})}list($,X={},Y){let{betas:J,...Q}=X??{};return this._client.getAPIList(a`/v1/skills/${$}/versions?beta=true`,A1,{query:Q,...Y,headers:g([{"anthropic-beta":[...J??[],"skills-2025-10-02"].toString()},Y?.headers])})}delete($,X,Y){let{skill_id:J,betas:Q}=X;return this._client.delete(a`/v1/skills/${J}/versions/${$}?beta=true`,{...Y,headers:g([{"anthropic-beta":[...Q??[],"skills-2025-10-02"].toString()},Y?.headers])})}}class N2 extends r{constructor(){super(...arguments);this.versions=new m1(this._client)}create($={},X){let{betas:Y,...J}=$??{};return this._client.post("/v1/skills?beta=true",H2({body:J,...X,headers:g([{"anthropic-beta":[...Y??[],"skills-2025-10-02"].toString()},X?.headers])},this._client))}retrieve($,X={},Y){let{betas:J}=X??{};return this._client.get(a`/v1/skills/${$}?beta=true`,{...Y,headers:g([{"anthropic-beta":[...J??[],"skills-2025-10-02"].toString()},Y?.headers])})}list($={},X){let{betas:Y,...J}=$??{};return this._client.getAPIList("/v1/skills?beta=true",A1,{query:J,...X,headers:g([{"anthropic-beta":[...Y??[],"skills-2025-10-02"].toString()},X?.headers])})}delete($,X={},Y){let{betas:J}=X??{};return this._client.delete(a`/v1/skills/${$}?beta=true`,{...Y,headers:g([{"anthropic-beta":[...J??[],"skills-2025-10-02"].toString()},Y?.headers])})}}N2.Versions=m1;class v$ extends r{constructor(){super(...arguments);this.models=new R1(this._client),this.messages=new I0(this._client),this.files=new j1(this._client),this.skills=new N2(this._client)}}v$.Models=R1;v$.Messages=I0;v$.Files=j1;v$.Skills=N2;class U2 extends r{create($,X){let{betas:Y,...J}=$;return this._client.post("/v1/complete",{body:J,timeout:this._client._options.timeout??600000,...X,headers:g([{...Y?.toString()!=null?{"anthropic-beta":Y?.toString()}:void 0},X?.headers]),stream:$.stream??!1})}}var j$,q0,u1,_8,d1,c1,k8,l1,t$,p1,x8,f8,y0,b8,I8,m4,C7,u4,d4,c4,l4,j7,R7="__json_buf";function P7($){return $.type==="tool_use"||$.type==="server_tool_use"}class i1{constructor(){j$.add(this),this.messages=[],this.receivedMessages=[],q0.set(this,void 0),this.controller=new AbortController,u1.set(this,void 0),_8.set(this,()=>{}),d1.set(this,()=>{}),c1.set(this,void 0),k8.set(this,()=>{}),l1.set(this,()=>{}),t$.set(this,{}),p1.set(this,!1),x8.set(this,!1),f8.set(this,!1),y0.set(this,!1),b8.set(this,void 0),I8.set(this,void 0),u4.set(this,($)=>{if(j(this,x8,!0,"f"),a$($))$=new K$;if($ instanceof K$)return j(this,f8,!0,"f"),this._emit("abort",$);if($ instanceof f)return this._emit("error",$);if($ instanceof Error){let X=new f($.message);return X.cause=$,this._emit("error",X)}return this._emit("error",new f(String($)))}),j(this,u1,new Promise(($,X)=>{j(this,_8,$,"f"),j(this,d1,X,"f")}),"f"),j(this,c1,new Promise(($,X)=>{j(this,k8,$,"f"),j(this,l1,X,"f")}),"f"),N(this,u1,"f").catch(()=>{}),N(this,c1,"f").catch(()=>{})}get response(){return N(this,b8,"f")}get request_id(){return N(this,I8,"f")}async withResponse(){j(this,y0,!0,"f");let $=await N(this,u1,"f");if(!$)throw Error("Could not resolve a `Response` object");return{data:this,response:$,request_id:$.headers.get("request-id")}}static fromReadableStream($){let X=new i1;return X._run(()=>X._fromReadableStream($)),X}static createMessage($,X,Y){let J=new i1;for(let Q of X.messages)J._addMessageParam(Q);return J._run(()=>J._createMessage($,{...X,stream:!0},{...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"stream"}})),J}_run($){$().then(()=>{this._emitFinal(),this._emit("end")},N(this,u4,"f"))}_addMessageParam($){this.messages.push($)}_addMessage($,X=!0){if(this.receivedMessages.push($),X)this._emit("message",$)}async _createMessage($,X,Y){let J=Y?.signal,Q;if(J){if(J.aborted)this.controller.abort();Q=this.controller.abort.bind(this.controller),J.addEventListener("abort",Q)}try{N(this,j$,"m",d4).call(this);let{response:z,data:W}=await $.create({...X,stream:!0},{...Y,signal:this.controller.signal}).withResponse();this._connected(z);for await(let G of W)N(this,j$,"m",c4).call(this,G);if(W.controller.signal?.aborted)throw new K$;N(this,j$,"m",l4).call(this)}finally{if(J&&Q)J.removeEventListener("abort",Q)}}_connected($){if(this.ended)return;j(this,b8,$,"f"),j(this,I8,$?.headers.get("request-id"),"f"),N(this,_8,"f").call(this,$),this._emit("connect")}get ended(){return N(this,p1,"f")}get errored(){return N(this,x8,"f")}get aborted(){return N(this,f8,"f")}abort(){this.controller.abort()}on($,X){return(N(this,t$,"f")[$]||(N(this,t$,"f")[$]=[])).push({listener:X}),this}off($,X){let Y=N(this,t$,"f")[$];if(!Y)return this;let J=Y.findIndex((Q)=>Q.listener===X);if(J>=0)Y.splice(J,1);return this}once($,X){return(N(this,t$,"f")[$]||(N(this,t$,"f")[$]=[])).push({listener:X,once:!0}),this}emitted($){return new Promise((X,Y)=>{if(j(this,y0,!0,"f"),$!=="error")this.once("error",Y);this.once($,X)})}async done(){j(this,y0,!0,"f"),await N(this,c1,"f")}get currentMessage(){return N(this,q0,"f")}async finalMessage(){return await this.done(),N(this,j$,"m",m4).call(this)}async finalText(){return await this.done(),N(this,j$,"m",C7).call(this)}_emit($,...X){if(N(this,p1,"f"))return;if($==="end")j(this,p1,!0,"f"),N(this,k8,"f").call(this);let Y=N(this,t$,"f")[$];if(Y)N(this,t$,"f")[$]=Y.filter((J)=>!J.once),Y.forEach(({listener:J})=>J(...X));if($==="abort"){let J=X[0];if(!N(this,y0,"f")&&!Y?.length)Promise.reject(J);N(this,d1,"f").call(this,J),N(this,l1,"f").call(this,J),this._emit("end");return}if($==="error"){let J=X[0];if(!N(this,y0,"f")&&!Y?.length)Promise.reject(J);N(this,d1,"f").call(this,J),N(this,l1,"f").call(this,J),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",N(this,j$,"m",m4).call(this))}async _fromReadableStream($,X){let Y=X?.signal,J;if(Y){if(Y.aborted)this.controller.abort();J=this.controller.abort.bind(this.controller),Y.addEventListener("abort",J)}try{N(this,j$,"m",d4).call(this),this._connected(null);let Q=O$.fromReadableStream($,this.controller);for await(let z of Q)N(this,j$,"m",c4).call(this,z);if(Q.controller.signal?.aborted)throw new K$;N(this,j$,"m",l4).call(this)}finally{if(Y&&J)Y.removeEventListener("abort",J)}}[(q0=new WeakMap,u1=new WeakMap,_8=new WeakMap,d1=new WeakMap,c1=new WeakMap,k8=new WeakMap,l1=new WeakMap,t$=new WeakMap,p1=new WeakMap,x8=new WeakMap,f8=new WeakMap,y0=new WeakMap,b8=new WeakMap,I8=new WeakMap,u4=new WeakMap,j$=new WeakSet,m4=function(){if(this.receivedMessages.length===0)throw new f("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},C7=function(){if(this.receivedMessages.length===0)throw new f("stream ended without producing a Message with role=assistant");let X=this.receivedMessages.at(-1).content.filter((Y)=>Y.type==="text").map((Y)=>Y.text);if(X.length===0)throw new f("stream ended without producing a content block with type=text");return X.join(" ")},d4=function(){if(this.ended)return;j(this,q0,void 0,"f")},c4=function(X){if(this.ended)return;let Y=N(this,j$,"m",j7).call(this,X);switch(this._emit("streamEvent",X,Y),X.type){case"content_block_delta":{let J=Y.content.at(-1);switch(X.delta.type){case"text_delta":{if(J.type==="text")this._emit("text",X.delta.text,J.text||"");break}case"citations_delta":{if(J.type==="text")this._emit("citation",X.delta.citation,J.citations??[]);break}case"input_json_delta":{if(P7(J)&&J.input)this._emit("inputJson",X.delta.partial_json,J.input);break}case"thinking_delta":{if(J.type==="thinking")this._emit("thinking",X.delta.thinking,J.thinking);break}case"signature_delta":{if(J.type==="thinking")this._emit("signature",J.signature);break}default:T7(X.delta)}break}case"message_stop":{this._addMessageParam(Y),this._addMessage(Y,!0);break}case"content_block_stop":{this._emit("contentBlock",Y.content.at(-1));break}case"message_start":{j(this,q0,Y,"f");break}case"content_block_start":case"message_delta":break}},l4=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let X=N(this,q0,"f");if(!X)throw new f("request ended without sending any chunks");return j(this,q0,void 0,"f"),X},j7=function(X){let Y=N(this,q0,"f");if(X.type==="message_start"){if(Y)throw new f(`Unexpected event order, got ${X.type} before receiving "message_stop"`);return X.message}if(!Y)throw new f(`Unexpected event order, got ${X.type} before "message_start"`);switch(X.type){case"message_stop":return Y;case"message_delta":if(Y.stop_reason=X.delta.stop_reason,Y.stop_sequence=X.delta.stop_sequence,Y.usage.output_tokens=X.usage.output_tokens,X.usage.input_tokens!=null)Y.usage.input_tokens=X.usage.input_tokens;if(X.usage.cache_creation_input_tokens!=null)Y.usage.cache_creation_input_tokens=X.usage.cache_creation_input_tokens;if(X.usage.cache_read_input_tokens!=null)Y.usage.cache_read_input_tokens=X.usage.cache_read_input_tokens;if(X.usage.server_tool_use!=null)Y.usage.server_tool_use=X.usage.server_tool_use;return Y;case"content_block_start":return Y.content.push({...X.content_block}),Y;case"content_block_delta":{let J=Y.content.at(X.index);switch(X.delta.type){case"text_delta":{if(J?.type==="text")Y.content[X.index]={...J,text:(J.text||"")+X.delta.text};break}case"citations_delta":{if(J?.type==="text")Y.content[X.index]={...J,citations:[...J.citations??[],X.delta.citation]};break}case"input_json_delta":{if(J&&P7(J)){let Q=J[R7]||"";Q+=X.delta.partial_json;let z={...J};if(Object.defineProperty(z,R7,{value:Q,enumerable:!1,writable:!0}),Q)z.input=Z8(Q);Y.content[X.index]=z}break}case"thinking_delta":{if(J?.type==="thinking")Y.content[X.index]={...J,thinking:J.thinking+X.delta.thinking};break}case"signature_delta":{if(J?.type==="thinking")Y.content[X.index]={...J,signature:X.delta.signature};break}default:T7(X.delta)}return Y}case"content_block_stop":return Y}},Symbol.asyncIterator)](){let $=[],X=[],Y=!1;return this.on("streamEvent",(J)=>{let Q=X.shift();if(Q)Q.resolve(J);else $.push(J)}),this.on("end",()=>{Y=!0;for(let J of X)J.resolve(void 0);X.length=0}),this.on("abort",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),this.on("error",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),{next:async()=>{if(!$.length){if(Y)return{value:void 0,done:!0};return new Promise((Q,z)=>X.push({resolve:Q,reject:z})).then((Q)=>Q?{value:Q,done:!1}:{value:void 0,done:!0})}return{value:$.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new O$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function T7($){}class n1 extends r{create($,X){return this._client.post("/v1/messages/batches",{body:$,...X})}retrieve($,X){return this._client.get(a`/v1/messages/batches/${$}`,X)}list($={},X){return this._client.getAPIList("/v1/messages/batches",P$,{query:$,...X})}delete($,X){return this._client.delete(a`/v1/messages/batches/${$}`,X)}cancel($,X){return this._client.post(a`/v1/messages/batches/${$}/cancel`,X)}async results($,X){let Y=await this.retrieve($);if(!Y.results_url)throw new f(`No batch \`results_url\`; Has it finished processing? ${Y.processing_status} - ${Y.id}`);return this._client.get(Y.results_url,{...X,headers:g([{Accept:"application/binary"},X?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((J,Q)=>w2.fromResponse(Q.response,Q.controller))}}class v0 extends r{constructor(){super(...arguments);this.batches=new n1(this._client)}create($,X){if($.model in _7)console.warn(`The model '${$.model}' is deprecated and will reach end-of-life on ${_7[$.model]}
34
+ Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let Y=this._client._options.timeout;if(!$.stream&&Y==null){let J=D8[$.model]??void 0;Y=this._client.calculateNonstreamingTimeout($.max_tokens,J)}return this._client.post("/v1/messages",{body:$,timeout:Y??600000,...X,stream:$.stream??!1})}stream($,X){return i1.createMessage(this,$,X)}countTokens($,X){return this._client.post("/v1/messages/count_tokens",{body:$,...X})}}var _7={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};v0.Batches=n1;class M2 extends r{retrieve($,X={},Y){let{betas:J}=X??{};return this._client.get(a`/v1/models/${$}`,{...Y,headers:g([{...J?.toString()!=null?{"anthropic-beta":J?.toString()}:void 0},Y?.headers])})}list($={},X){let{betas:Y,...J}=$??{};return this._client.getAPIList("/v1/models",P$,{query:J,...X,headers:g([{...Y?.toString()!=null?{"anthropic-beta":Y?.toString()}:void 0},X?.headers])})}}var a1=($)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[$]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.($)?.trim();return};var p4,i4,y8,k7,x7="\\n\\nHuman:",f7="\\n\\nAssistant:";class t{constructor({baseURL:$=a1("ANTHROPIC_BASE_URL"),apiKey:X=a1("ANTHROPIC_API_KEY")??null,authToken:Y=a1("ANTHROPIC_AUTH_TOKEN")??null,...J}={}){p4.add(this),y8.set(this,void 0);let Q={apiKey:X,authToken:Y,...J,baseURL:$||"https://api.anthropic.com"};if(!Q.dangerouslyAllowBrowser&&eX())throw new f(`It looks like you're running in a browser-like environment.
35
+
36
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
37
+ If you understand the risks and have appropriate mitigations in place,
38
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
39
+
40
+ new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
41
+ `);this.baseURL=Q.baseURL,this.timeout=Q.timeout??i4.DEFAULT_TIMEOUT,this.logger=Q.logger??console;let z="warn";this.logLevel=z,this.logLevel=j4(Q.logLevel,"ClientOptions.logLevel",this)??j4(a1("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??z,this.fetchOptions=Q.fetchOptions,this.maxRetries=Q.maxRetries??2,this.fetch=Q.fetch??X7(),j(this,y8,J7,"f"),this._options=Q,this.apiKey=typeof X==="string"?X:null,this.authToken=Y}withOptions($){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,authToken:this.authToken,...$})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:$,nulls:X}){if($.get("x-api-key")||$.get("authorization"))return;if(this.apiKey&&$.get("x-api-key"))return;if(X.has("x-api-key"))return;if(this.authToken&&$.get("authorization"))return;if(X.has("authorization"))return;throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders($){return g([await this.apiKeyAuth($),await this.bearerAuth($)])}async apiKeyAuth($){if(this.apiKey==null)return;return g([{"X-Api-Key":this.apiKey}])}async bearerAuth($){if(this.authToken==null)return;return g([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery($){return Object.entries($).filter(([X,Y])=>typeof Y<"u").map(([X,Y])=>{if(typeof Y==="string"||typeof Y==="number"||typeof Y==="boolean")return`${encodeURIComponent(X)}=${encodeURIComponent(Y)}`;if(Y===null)return`${encodeURIComponent(X)}=`;throw new f(`Cannot stringify type ${typeof Y}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${V0}`}defaultIdempotencyKey(){return`stainless-node-retry-${D4()}`}makeStatusError($,X,Y,J){return $$.generate($,X,Y,J)}buildURL($,X,Y){let J=!N(this,p4,"m",k7).call(this)&&Y||this.baseURL,Q=pX($)?new URL($):new URL(J+(J.endsWith("/")&&$.startsWith("/")?$.slice(1):$)),z=this.defaultQuery();if(!iX(z))X={...z,...X};if(typeof X==="object"&&X&&!Array.isArray(X))Q.search=this.stringifyQuery(X);return Q.toString()}_calculateNonstreamingTimeout($){if(3600*$/128000>600)throw new f("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions($){}async prepareRequest($,{url:X,options:Y}){}get($,X){return this.methodRequest("get",$,X)}post($,X){return this.methodRequest("post",$,X)}patch($,X){return this.methodRequest("patch",$,X)}put($,X){return this.methodRequest("put",$,X)}delete($,X){return this.methodRequest("delete",$,X)}methodRequest($,X,Y){return this.request(Promise.resolve(Y).then((J)=>{return{method:$,path:X,...J}}))}request($,X=null){return new k0(this,this.makeRequest($,X,void 0))}async makeRequest($,X,Y){let J=await $,Q=J.maxRetries??this.maxRetries;if(X==null)X=Q;await this.prepareOptions(J);let{req:z,url:W,timeout:G}=await this.buildRequest(J,{retryCount:Q-X});await this.prepareRequest(z,{url:W,options:J});let V="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),K=Y===void 0?"":`, retryOf: ${Y}`,B=Date.now();if(z$(this).debug(`[${V}] sending request`,r$({retryOfRequestLogID:Y,method:J.method,url:W,options:J,headers:z.headers})),J.signal?.aborted)throw new K$;let q=new AbortController,H=await this.fetchWithTimeout(W,z,G,q).catch(H1),M=Date.now();if(H instanceof globalThis.Error){let R=`retrying, ${X} attempts remaining`;if(J.signal?.aborted)throw new K$;let L=a$(H)||/timed? ?out/i.test(String(H)+("cause"in H?String(H.cause):""));if(X)return z$(this).info(`[${V}] connection ${L?"timed out":"failed"} - ${R}`),z$(this).debug(`[${V}] connection ${L?"timed out":"failed"} (${R})`,r$({retryOfRequestLogID:Y,url:W,durationMs:M-B,message:H.message})),this.retryRequest(J,X,Y??V);if(z$(this).info(`[${V}] connection ${L?"timed out":"failed"} - error; no more retries left`),z$(this).debug(`[${V}] connection ${L?"timed out":"failed"} (error; no more retries left)`,r$({retryOfRequestLogID:Y,url:W,durationMs:M-B,message:H.message})),L)throw new K1;throw new _0({cause:H})}let O=[...H.headers.entries()].filter(([R])=>R==="request-id").map(([R,L])=>", "+R+": "+JSON.stringify(L)).join(""),_=`[${V}${K}${O}] ${z.method} ${W} ${H.ok?"succeeded":"failed"} with status ${H.status} in ${M-B}ms`;if(!H.ok){let R=await this.shouldRetry(H);if(X&&R){let p=`retrying, ${X} attempts remaining`;return await Y7(H.body),z$(this).info(`${_} - ${p}`),z$(this).debug(`[${V}] response error (${p})`,r$({retryOfRequestLogID:Y,url:H.url,status:H.status,headers:H.headers,durationMs:M-B})),this.retryRequest(J,X,Y??V,H.headers)}let L=R?"error; no more retries left":"error; not retryable";z$(this).info(`${_} - ${L}`);let A=await H.text().catch((p)=>H1(p).message),E=w8(A),P=E?void 0:A;throw z$(this).debug(`[${V}] response error (${L})`,r$({retryOfRequestLogID:Y,url:H.url,status:H.status,headers:H.headers,message:P,durationMs:Date.now()-B})),this.makeStatusError(H.status,E,P,H.headers)}return z$(this).info(_),z$(this).debug(`[${V}] response start`,r$({retryOfRequestLogID:Y,url:H.url,status:H.status,headers:H.headers,durationMs:M-B})),{response:H,options:J,controller:q,requestLogID:V,retryOfRequestLogID:Y,startTime:B}}getAPIList($,X,Y){return this.requestAPIList(X,{method:"get",path:$,...Y})}requestAPIList($,X){let Y=this.makeRequest(X,null,void 0);return new E8(this,Y,$)}async fetchWithTimeout($,X,Y,J){let{signal:Q,method:z,...W}=X||{};if(Q)Q.addEventListener("abort",()=>J.abort());let G=setTimeout(()=>J.abort(),Y),V=globalThis.ReadableStream&&W.body instanceof globalThis.ReadableStream||typeof W.body==="object"&&W.body!==null&&Symbol.asyncIterator in W.body,K={signal:J.signal,...V?{duplex:"half"}:{},method:"GET",...W};if(z)K.method=z.toUpperCase();try{return await this.fetch.call(void 0,$,K)}finally{clearTimeout(G)}}async shouldRetry($){let X=$.headers.get("x-should-retry");if(X==="true")return!0;if(X==="false")return!1;if($.status===408)return!0;if($.status===409)return!0;if($.status===429)return!0;if($.status>=500)return!0;return!1}async retryRequest($,X,Y,J){let Q,z=J?.get("retry-after-ms");if(z){let G=parseFloat(z);if(!Number.isNaN(G))Q=G}let W=J?.get("retry-after");if(W&&!Q){let G=parseFloat(W);if(!Number.isNaN(G))Q=G*1000;else Q=Date.parse(W)-Date.now()}if(!(Q&&0<=Q&&Q<60000)){let G=$.maxRetries??this.maxRetries;Q=this.calculateDefaultRetryTimeoutMillis(X,G)}return await rX(Q),this.makeRequest($,X-1,Y)}calculateDefaultRetryTimeoutMillis($,X){let Q=X-$,z=Math.min(0.5*Math.pow(2,Q),8),W=1-Math.random()*0.25;return z*W*1000}calculateNonstreamingTimeout($,X){if(3600000*$/128000>600000||X!=null&&$>X)throw new f("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest($,{retryCount:X=0}={}){let Y={...$},{method:J,path:Q,query:z,defaultBaseURL:W}=Y,G=this.buildURL(Q,z,W);if("timeout"in Y)aX("timeout",Y.timeout);Y.timeout=Y.timeout??this.timeout;let{bodyHeaders:V,body:K}=this.buildBody({options:Y}),B=await this.buildHeaders({options:$,method:J,bodyHeaders:V,retryCount:X});return{req:{method:J,headers:B,...Y.signal&&{signal:Y.signal},...globalThis.ReadableStream&&K instanceof globalThis.ReadableStream&&{duplex:"half"},...K&&{body:K},...this.fetchOptions??{},...Y.fetchOptions??{}},url:G,timeout:Y.timeout}}async buildHeaders({options:$,method:X,bodyHeaders:Y,retryCount:J}){let Q={};if(this.idempotencyHeader&&X!=="get"){if(!$.idempotencyKey)$.idempotencyKey=this.defaultIdempotencyKey();Q[this.idempotencyHeader]=$.idempotencyKey}let z=g([Q,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(J),...$.timeout?{"X-Stainless-Timeout":String(Math.trunc($.timeout/1000))}:{},...$7(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders($),this._options.defaultHeaders,Y,$.headers]);return this.validateHeaders(z),z.values}buildBody({options:{body:$,headers:X}}){if(!$)return{bodyHeaders:void 0,body:void 0};let Y=g([X]);if(ArrayBuffer.isView($)||$ instanceof ArrayBuffer||$ instanceof DataView||typeof $==="string"&&Y.values.has("content-type")||globalThis.Blob&&$ instanceof globalThis.Blob||$ instanceof FormData||$ instanceof URLSearchParams||globalThis.ReadableStream&&$ instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:$};else if(typeof $==="object"&&((Symbol.asyncIterator in $)||(Symbol.iterator in $)&&("next"in $)&&typeof $.next==="function"))return{bodyHeaders:void 0,body:N8($)};else return N(this,y8,"f").call(this,{body:$,headers:Y})}}i4=t,y8=new WeakMap,p4=new WeakSet,k7=function(){return this.baseURL!=="https://api.anthropic.com"};t.Anthropic=i4;t.HUMAN_PROMPT=x7;t.AI_PROMPT=f7;t.DEFAULT_TIMEOUT=600000;t.AnthropicError=f;t.APIError=$$;t.APIConnectionError=_0;t.APIConnectionTimeoutError=K1;t.APIUserAbortError=K$;t.NotFoundError=N1;t.ConflictError=U1;t.RateLimitError=F1;t.BadRequestError=B1;t.AuthenticationError=q1;t.InternalServerError=O1;t.PermissionDeniedError=w1;t.UnprocessableEntityError=M1;t.toFile=L8;class L$ extends t{constructor(){super(...arguments);this.completions=new U2(this),this.messages=new v0(this),this.models=new M2(this),this.beta=new v$(this)}}L$.Completions=U2;L$.Messages=v0;L$.Models=M2;L$.Beta=v$;var c0={};BY(c0,{void:()=>g3,util:()=>c,unknown:()=>y3,union:()=>d3,undefined:()=>f3,tuple:()=>p3,transformer:()=>XY,symbol:()=>x3,string:()=>d7,strictObject:()=>u3,setErrorMap:()=>J3,set:()=>a3,record:()=>i3,quotelessJson:()=>X3,promise:()=>$Y,preprocess:()=>QY,pipeline:()=>zY,ostring:()=>WY,optional:()=>YY,onumber:()=>GY,oboolean:()=>VY,objectUtil:()=>n4,object:()=>m3,number:()=>c7,nullable:()=>JY,null:()=>b3,never:()=>v3,nativeEnum:()=>e3,nan:()=>T3,map:()=>n3,makeIssue:()=>r1,literal:()=>o3,lazy:()=>s3,late:()=>R3,isValid:()=>w0,isDirty:()=>g8,isAsync:()=>O2,isAborted:()=>v8,intersection:()=>l3,instanceof:()=>P3,getParsedType:()=>g$,getErrorMap:()=>F2,function:()=>r3,enum:()=>t3,effect:()=>XY,discriminatedUnion:()=>c3,defaultErrorMap:()=>e$,datetimeRegex:()=>h7,date:()=>k3,custom:()=>u7,coerce:()=>HY,boolean:()=>l7,bigint:()=>_3,array:()=>h3,any:()=>I3,addIssueToContext:()=>C,ZodVoid:()=>o1,ZodUnknown:()=>N0,ZodUnion:()=>A2,ZodUndefined:()=>Z2,ZodType:()=>d,ZodTuple:()=>m$,ZodTransformer:()=>f$,ZodSymbol:()=>s1,ZodString:()=>T$,ZodSet:()=>u0,ZodSchema:()=>d,ZodRecord:()=>t1,ZodReadonly:()=>k2,ZodPromise:()=>d0,ZodPipeline:()=>X6,ZodParsedType:()=>S,ZodOptional:()=>k$,ZodObject:()=>s,ZodNumber:()=>U0,ZodNullable:()=>X0,ZodNull:()=>S2,ZodNever:()=>h$,ZodNativeEnum:()=>P2,ZodNaN:()=>$6,ZodMap:()=>e1,ZodLiteral:()=>R2,ZodLazy:()=>j2,ZodIssueCode:()=>D,ZodIntersection:()=>C2,ZodFunction:()=>L2,ZodFirstPartyTypeKind:()=>v,ZodError:()=>U$,ZodEnum:()=>F0,ZodEffects:()=>f$,ZodDiscriminatedUnion:()=>h8,ZodDefault:()=>T2,ZodDate:()=>h0,ZodCatch:()=>_2,ZodBranded:()=>m8,ZodBoolean:()=>D2,ZodBigInt:()=>M0,ZodArray:()=>_$,ZodAny:()=>m0,Schema:()=>d,ParseStatus:()=>G$,OK:()=>B$,NEVER:()=>KY,INVALID:()=>y,EMPTY_PATH:()=>Q3,DIRTY:()=>g0,BRAND:()=>j3});var c;(function($){$.assertEqual=(Q)=>{};function X(Q){}$.assertIs=X;function Y(Q){throw Error()}$.assertNever=Y,$.arrayToEnum=(Q)=>{let z={};for(let W of Q)z[W]=W;return z},$.getValidEnumValues=(Q)=>{let z=$.objectKeys(Q).filter((G)=>typeof Q[Q[G]]!=="number"),W={};for(let G of z)W[G]=Q[G];return $.objectValues(W)},$.objectValues=(Q)=>{return $.objectKeys(Q).map(function(z){return Q[z]})},$.objectKeys=typeof Object.keys==="function"?(Q)=>Object.keys(Q):(Q)=>{let z=[];for(let W in Q)if(Object.prototype.hasOwnProperty.call(Q,W))z.push(W);return z},$.find=(Q,z)=>{for(let W of Q)if(z(W))return W;return},$.isInteger=typeof Number.isInteger==="function"?(Q)=>Number.isInteger(Q):(Q)=>typeof Q==="number"&&Number.isFinite(Q)&&Math.floor(Q)===Q;function J(Q,z=" | "){return Q.map((W)=>typeof W==="string"?`'${W}'`:W).join(z)}$.joinValues=J,$.jsonStringifyReplacer=(Q,z)=>{if(typeof z==="bigint")return z.toString();return z}})(c||(c={}));var n4;(function($){$.mergeShapes=(X,Y)=>{return{...X,...Y}}})(n4||(n4={}));var S=c.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),g$=($)=>{switch(typeof $){case"undefined":return S.undefined;case"string":return S.string;case"number":return Number.isNaN($)?S.nan:S.number;case"boolean":return S.boolean;case"function":return S.function;case"bigint":return S.bigint;case"symbol":return S.symbol;case"object":if(Array.isArray($))return S.array;if($===null)return S.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return S.promise;if(typeof Map<"u"&&$ instanceof Map)return S.map;if(typeof Set<"u"&&$ instanceof Set)return S.set;if(typeof Date<"u"&&$ instanceof Date)return S.date;return S.object;default:return S.unknown}};var D=c.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),X3=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class U$ extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(Y)=>{this.issues=[...this.issues,Y]},this.addIssues=(Y=[])=>{this.issues=[...this.issues,...Y]};let X=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,X);else this.__proto__=X;this.name="ZodError",this.issues=$}format($){let X=$||function(Q){return Q.message},Y={_errors:[]},J=(Q)=>{for(let z of Q.issues)if(z.code==="invalid_union")z.unionErrors.map(J);else if(z.code==="invalid_return_type")J(z.returnTypeError);else if(z.code==="invalid_arguments")J(z.argumentsError);else if(z.path.length===0)Y._errors.push(X(z));else{let W=Y,G=0;while(G<z.path.length){let V=z.path[G];if(G!==z.path.length-1)W[V]=W[V]||{_errors:[]};else W[V]=W[V]||{_errors:[]},W[V]._errors.push(X(z));W=W[V],G++}}};return J(this),Y}static assert($){if(!($ instanceof U$))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,c.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(X)=>X.message){let X={},Y=[];for(let J of this.issues)if(J.path.length>0){let Q=J.path[0];X[Q]=X[Q]||[],X[Q].push($(J))}else Y.push($(J));return{formErrors:Y,fieldErrors:X}}get formErrors(){return this.flatten()}}U$.create=($)=>{return new U$($)};var Y3=($,X)=>{let Y;switch($.code){case D.invalid_type:if($.received===S.undefined)Y="Required";else Y=`Expected ${$.expected}, received ${$.received}`;break;case D.invalid_literal:Y=`Invalid literal value, expected ${JSON.stringify($.expected,c.jsonStringifyReplacer)}`;break;case D.unrecognized_keys:Y=`Unrecognized key(s) in object: ${c.joinValues($.keys,", ")}`;break;case D.invalid_union:Y="Invalid input";break;case D.invalid_union_discriminator:Y=`Invalid discriminator value. Expected ${c.joinValues($.options)}`;break;case D.invalid_enum_value:Y=`Invalid enum value. Expected ${c.joinValues($.options)}, received '${$.received}'`;break;case D.invalid_arguments:Y="Invalid function arguments";break;case D.invalid_return_type:Y="Invalid function return type";break;case D.invalid_date:Y="Invalid date";break;case D.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(Y=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")Y=`${Y} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)Y=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)Y=`Invalid input: must end with "${$.validation.endsWith}"`;else c.assertNever($.validation);else if($.validation!=="regex")Y=`Invalid ${$.validation}`;else Y="Invalid";break;case D.too_small:if($.type==="array")Y=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")Y=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")Y=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")Y=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")Y=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else Y="Invalid input";break;case D.too_big:if($.type==="array")Y=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")Y=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")Y=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")Y=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")Y=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else Y="Invalid input";break;case D.custom:Y="Invalid input";break;case D.invalid_intersection_types:Y="Intersection results could not be merged";break;case D.not_multiple_of:Y=`Number must be a multiple of ${$.multipleOf}`;break;case D.not_finite:Y="Number must be finite";break;default:Y=X.defaultError,c.assertNever($)}return{message:Y}},e$=Y3;var b7=e$;function J3($){b7=$}function F2(){return b7}var r1=($)=>{let{data:X,path:Y,errorMaps:J,issueData:Q}=$,z=[...Y,...Q.path||[]],W={...Q,path:z};if(Q.message!==void 0)return{...Q,path:z,message:Q.message};let G="",V=J.filter((K)=>!!K).slice().reverse();for(let K of V)G=K(W,{data:X,defaultError:G}).message;return{...Q,path:z,message:G}},Q3=[];function C($,X){let Y=F2(),J=r1({issueData:X,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,Y,Y===e$?void 0:e$].filter((Q)=>!!Q)});$.common.issues.push(J)}class G${constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,X){let Y=[];for(let J of X){if(J.status==="aborted")return y;if(J.status==="dirty")$.dirty();Y.push(J.value)}return{status:$.value,value:Y}}static async mergeObjectAsync($,X){let Y=[];for(let J of X){let Q=await J.key,z=await J.value;Y.push({key:Q,value:z})}return G$.mergeObjectSync($,Y)}static mergeObjectSync($,X){let Y={};for(let J of X){let{key:Q,value:z}=J;if(Q.status==="aborted")return y;if(z.status==="aborted")return y;if(Q.status==="dirty")$.dirty();if(z.status==="dirty")$.dirty();if(Q.value!=="__proto__"&&(typeof z.value<"u"||J.alwaysSet))Y[Q.value]=z.value}return{status:$.value,value:Y}}}var y=Object.freeze({status:"aborted"}),g0=($)=>({status:"dirty",value:$}),B$=($)=>({status:"valid",value:$}),v8=($)=>$.status==="aborted",g8=($)=>$.status==="dirty",w0=($)=>$.status==="valid",O2=($)=>typeof Promise<"u"&&$ instanceof Promise;var k;(function($){$.errToObj=(X)=>typeof X==="string"?{message:X}:X||{},$.toString=(X)=>typeof X==="string"?X:X?.message})(k||(k={}));class x${constructor($,X,Y,J){this._cachedPath=[],this.parent=$,this.data=X,this._path=Y,this._key=J}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var I7=($,X)=>{if(w0(X))return{success:!0,data:X.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Y=new U$($.common.issues);return this._error=Y,this._error}}}};function m($){if(!$)return{};let{errorMap:X,invalid_type_error:Y,required_error:J,description:Q}=$;if(X&&(Y||J))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(X)return{errorMap:X,description:Q};return{errorMap:(W,G)=>{let{message:V}=$;if(W.code==="invalid_enum_value")return{message:V??G.defaultError};if(typeof G.data>"u")return{message:V??J??G.defaultError};if(W.code!=="invalid_type")return{message:G.defaultError};return{message:V??Y??G.defaultError}},description:Q}}class d{get description(){return this._def.description}_getType($){return g$($.data)}_getOrReturnCtx($,X){return X||{common:$.parent.common,data:$.data,parsedType:g$($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new G$,ctx:{common:$.parent.common,data:$.data,parsedType:g$($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let X=this._parse($);if(O2(X))throw Error("Synchronous parse encountered promise.");return X}_parseAsync($){let X=this._parse($);return Promise.resolve(X)}parse($,X){let Y=this.safeParse($,X);if(Y.success)return Y.data;throw Y.error}safeParse($,X){let Y={common:{issues:[],async:X?.async??!1,contextualErrorMap:X?.errorMap},path:X?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:g$($)},J=this._parseSync({data:$,path:Y.path,parent:Y});return I7(Y,J)}"~validate"($){let X={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:g$($)};if(!this["~standard"].async)try{let Y=this._parseSync({data:$,path:[],parent:X});return w0(Y)?{value:Y.value}:{issues:X.common.issues}}catch(Y){if(Y?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;X.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:X}).then((Y)=>w0(Y)?{value:Y.value}:{issues:X.common.issues})}async parseAsync($,X){let Y=await this.safeParseAsync($,X);if(Y.success)return Y.data;throw Y.error}async safeParseAsync($,X){let Y={common:{issues:[],contextualErrorMap:X?.errorMap,async:!0},path:X?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:g$($)},J=this._parse({data:$,path:Y.path,parent:Y}),Q=await(O2(J)?J:Promise.resolve(J));return I7(Y,Q)}refine($,X){let Y=(J)=>{if(typeof X==="string"||typeof X>"u")return{message:X};else if(typeof X==="function")return X(J);else return X};return this._refinement((J,Q)=>{let z=$(J),W=()=>Q.addIssue({code:D.custom,...Y(J)});if(typeof Promise<"u"&&z instanceof Promise)return z.then((G)=>{if(!G)return W(),!1;else return!0});if(!z)return W(),!1;else return!0})}refinement($,X){return this._refinement((Y,J)=>{if(!$(Y))return J.addIssue(typeof X==="function"?X(Y,J):X),!1;else return!0})}_refinement($){return new f$({schema:this,typeName:v.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(X)=>this["~validate"](X)}}optional(){return k$.create(this,this._def)}nullable(){return X0.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return _$.create(this)}promise(){return d0.create(this,this._def)}or($){return A2.create([this,$],this._def)}and($){return C2.create(this,$,this._def)}transform($){return new f$({...m(this._def),schema:this,typeName:v.ZodEffects,effect:{type:"transform",transform:$}})}default($){let X=typeof $==="function"?$:()=>$;return new T2({...m(this._def),innerType:this,defaultValue:X,typeName:v.ZodDefault})}brand(){return new m8({typeName:v.ZodBranded,type:this,...m(this._def)})}catch($){let X=typeof $==="function"?$:()=>$;return new _2({...m(this._def),innerType:this,catchValue:X,typeName:v.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return X6.create(this,$)}readonly(){return k2.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var z3=/^c[^\s-]{8,}$/i,W3=/^[0-9a-z]+$/,G3=/^[0-9A-HJKMNP-TV-Z]{26}$/i,V3=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,H3=/^[a-z0-9_-]{21}$/i,K3=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,B3=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,q3=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,w3="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",a4,N3=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,U3=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,M3=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,F3=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,O3=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,E3=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,v7="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",L3=new RegExp(`^${v7}$`);function g7($){let X="[0-5]\\d";if($.precision)X=`${X}\\.\\d{${$.precision}}`;else if($.precision==null)X=`${X}(\\.\\d+)?`;let Y=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${X})${Y}`}function D3($){return new RegExp(`^${g7($)}$`)}function h7($){let X=`${v7}T${g7($)}`,Y=[];if(Y.push($.local?"Z?":"Z"),$.offset)Y.push("([+-]\\d{2}:?\\d{2})");return X=`${X}(${Y.join("|")})`,new RegExp(`^${X}$`)}function Z3($,X){if((X==="v4"||!X)&&N3.test($))return!0;if((X==="v6"||!X)&&M3.test($))return!0;return!1}function S3($,X){if(!K3.test($))return!1;try{let[Y]=$.split(".");if(!Y)return!1;let J=Y.replace(/-/g,"+").replace(/_/g,"/").padEnd(Y.length+(4-Y.length%4)%4,"="),Q=JSON.parse(atob(J));if(typeof Q!=="object"||Q===null)return!1;if("typ"in Q&&Q?.typ!=="JWT")return!1;if(!Q.alg)return!1;if(X&&Q.alg!==X)return!1;return!0}catch{return!1}}function A3($,X){if((X==="v4"||!X)&&U3.test($))return!0;if((X==="v6"||!X)&&F3.test($))return!0;return!1}class T$ extends d{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==S.string){let Q=this._getOrReturnCtx($);return C(Q,{code:D.invalid_type,expected:S.string,received:Q.parsedType}),y}let Y=new G$,J=void 0;for(let Q of this._def.checks)if(Q.kind==="min"){if($.data.length<Q.value)J=this._getOrReturnCtx($,J),C(J,{code:D.too_small,minimum:Q.value,type:"string",inclusive:!0,exact:!1,message:Q.message}),Y.dirty()}else if(Q.kind==="max"){if($.data.length>Q.value)J=this._getOrReturnCtx($,J),C(J,{code:D.too_big,maximum:Q.value,type:"string",inclusive:!0,exact:!1,message:Q.message}),Y.dirty()}else if(Q.kind==="length"){let z=$.data.length>Q.value,W=$.data.length<Q.value;if(z||W){if(J=this._getOrReturnCtx($,J),z)C(J,{code:D.too_big,maximum:Q.value,type:"string",inclusive:!0,exact:!0,message:Q.message});else if(W)C(J,{code:D.too_small,minimum:Q.value,type:"string",inclusive:!0,exact:!0,message:Q.message});Y.dirty()}}else if(Q.kind==="email"){if(!q3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"email",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="emoji"){if(!a4)a4=new RegExp(w3,"u");if(!a4.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"emoji",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="uuid"){if(!V3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"uuid",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="nanoid"){if(!H3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"nanoid",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="cuid"){if(!z3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"cuid",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="cuid2"){if(!W3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"cuid2",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="ulid"){if(!G3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"ulid",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="url")try{new URL($.data)}catch{J=this._getOrReturnCtx($,J),C(J,{validation:"url",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="regex"){if(Q.regex.lastIndex=0,!Q.regex.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"regex",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="trim")$.data=$.data.trim();else if(Q.kind==="includes"){if(!$.data.includes(Q.value,Q.position))J=this._getOrReturnCtx($,J),C(J,{code:D.invalid_string,validation:{includes:Q.value,position:Q.position},message:Q.message}),Y.dirty()}else if(Q.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(Q.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(Q.kind==="startsWith"){if(!$.data.startsWith(Q.value))J=this._getOrReturnCtx($,J),C(J,{code:D.invalid_string,validation:{startsWith:Q.value},message:Q.message}),Y.dirty()}else if(Q.kind==="endsWith"){if(!$.data.endsWith(Q.value))J=this._getOrReturnCtx($,J),C(J,{code:D.invalid_string,validation:{endsWith:Q.value},message:Q.message}),Y.dirty()}else if(Q.kind==="datetime"){if(!h7(Q).test($.data))J=this._getOrReturnCtx($,J),C(J,{code:D.invalid_string,validation:"datetime",message:Q.message}),Y.dirty()}else if(Q.kind==="date"){if(!L3.test($.data))J=this._getOrReturnCtx($,J),C(J,{code:D.invalid_string,validation:"date",message:Q.message}),Y.dirty()}else if(Q.kind==="time"){if(!D3(Q).test($.data))J=this._getOrReturnCtx($,J),C(J,{code:D.invalid_string,validation:"time",message:Q.message}),Y.dirty()}else if(Q.kind==="duration"){if(!B3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"duration",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="ip"){if(!Z3($.data,Q.version))J=this._getOrReturnCtx($,J),C(J,{validation:"ip",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="jwt"){if(!S3($.data,Q.alg))J=this._getOrReturnCtx($,J),C(J,{validation:"jwt",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="cidr"){if(!A3($.data,Q.version))J=this._getOrReturnCtx($,J),C(J,{validation:"cidr",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="base64"){if(!O3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"base64",code:D.invalid_string,message:Q.message}),Y.dirty()}else if(Q.kind==="base64url"){if(!E3.test($.data))J=this._getOrReturnCtx($,J),C(J,{validation:"base64url",code:D.invalid_string,message:Q.message}),Y.dirty()}else c.assertNever(Q);return{status:Y.value,value:$.data}}_regex($,X,Y){return this.refinement((J)=>$.test(J),{validation:X,code:D.invalid_string,...k.errToObj(Y)})}_addCheck($){return new T$({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...k.errToObj($)})}url($){return this._addCheck({kind:"url",...k.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...k.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...k.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...k.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...k.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...k.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...k.errToObj($)})}base64($){return this._addCheck({kind:"base64",...k.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...k.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...k.errToObj($)})}ip($){return this._addCheck({kind:"ip",...k.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...k.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...k.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...k.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...k.errToObj($)})}regex($,X){return this._addCheck({kind:"regex",regex:$,...k.errToObj(X)})}includes($,X){return this._addCheck({kind:"includes",value:$,position:X?.position,...k.errToObj(X?.message)})}startsWith($,X){return this._addCheck({kind:"startsWith",value:$,...k.errToObj(X)})}endsWith($,X){return this._addCheck({kind:"endsWith",value:$,...k.errToObj(X)})}min($,X){return this._addCheck({kind:"min",value:$,...k.errToObj(X)})}max($,X){return this._addCheck({kind:"max",value:$,...k.errToObj(X)})}length($,X){return this._addCheck({kind:"length",value:$,...k.errToObj(X)})}nonempty($){return this.min(1,k.errToObj($))}trim(){return new T$({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new T$({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new T$({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let X of this._def.checks)if(X.kind==="min"){if($===null||X.value>$)$=X.value}return $}get maxLength(){let $=null;for(let X of this._def.checks)if(X.kind==="max"){if($===null||X.value<$)$=X.value}return $}}T$.create=($)=>{return new T$({checks:[],typeName:v.ZodString,coerce:$?.coerce??!1,...m($)})};function C3($,X){let Y=($.toString().split(".")[1]||"").length,J=(X.toString().split(".")[1]||"").length,Q=Y>J?Y:J,z=Number.parseInt($.toFixed(Q).replace(".","")),W=Number.parseInt(X.toFixed(Q).replace(".",""));return z%W/10**Q}class U0 extends d{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==S.number){let Q=this._getOrReturnCtx($);return C(Q,{code:D.invalid_type,expected:S.number,received:Q.parsedType}),y}let Y=void 0,J=new G$;for(let Q of this._def.checks)if(Q.kind==="int"){if(!c.isInteger($.data))Y=this._getOrReturnCtx($,Y),C(Y,{code:D.invalid_type,expected:"integer",received:"float",message:Q.message}),J.dirty()}else if(Q.kind==="min"){if(Q.inclusive?$.data<Q.value:$.data<=Q.value)Y=this._getOrReturnCtx($,Y),C(Y,{code:D.too_small,minimum:Q.value,type:"number",inclusive:Q.inclusive,exact:!1,message:Q.message}),J.dirty()}else if(Q.kind==="max"){if(Q.inclusive?$.data>Q.value:$.data>=Q.value)Y=this._getOrReturnCtx($,Y),C(Y,{code:D.too_big,maximum:Q.value,type:"number",inclusive:Q.inclusive,exact:!1,message:Q.message}),J.dirty()}else if(Q.kind==="multipleOf"){if(C3($.data,Q.value)!==0)Y=this._getOrReturnCtx($,Y),C(Y,{code:D.not_multiple_of,multipleOf:Q.value,message:Q.message}),J.dirty()}else if(Q.kind==="finite"){if(!Number.isFinite($.data))Y=this._getOrReturnCtx($,Y),C(Y,{code:D.not_finite,message:Q.message}),J.dirty()}else c.assertNever(Q);return{status:J.value,value:$.data}}gte($,X){return this.setLimit("min",$,!0,k.toString(X))}gt($,X){return this.setLimit("min",$,!1,k.toString(X))}lte($,X){return this.setLimit("max",$,!0,k.toString(X))}lt($,X){return this.setLimit("max",$,!1,k.toString(X))}setLimit($,X,Y,J){return new U0({...this._def,checks:[...this._def.checks,{kind:$,value:X,inclusive:Y,message:k.toString(J)}]})}_addCheck($){return new U0({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:k.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:k.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:k.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:k.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:k.toString($)})}multipleOf($,X){return this._addCheck({kind:"multipleOf",value:$,message:k.toString(X)})}finite($){return this._addCheck({kind:"finite",message:k.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:k.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:k.toString($)})}get minValue(){let $=null;for(let X of this._def.checks)if(X.kind==="min"){if($===null||X.value>$)$=X.value}return $}get maxValue(){let $=null;for(let X of this._def.checks)if(X.kind==="max"){if($===null||X.value<$)$=X.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&c.isInteger($.value))}get isFinite(){let $=null,X=null;for(let Y of this._def.checks)if(Y.kind==="finite"||Y.kind==="int"||Y.kind==="multipleOf")return!0;else if(Y.kind==="min"){if(X===null||Y.value>X)X=Y.value}else if(Y.kind==="max"){if($===null||Y.value<$)$=Y.value}return Number.isFinite(X)&&Number.isFinite($)}}U0.create=($)=>{return new U0({checks:[],typeName:v.ZodNumber,coerce:$?.coerce||!1,...m($)})};class M0 extends d{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==S.bigint)return this._getInvalidInput($);let Y=void 0,J=new G$;for(let Q of this._def.checks)if(Q.kind==="min"){if(Q.inclusive?$.data<Q.value:$.data<=Q.value)Y=this._getOrReturnCtx($,Y),C(Y,{code:D.too_small,type:"bigint",minimum:Q.value,inclusive:Q.inclusive,message:Q.message}),J.dirty()}else if(Q.kind==="max"){if(Q.inclusive?$.data>Q.value:$.data>=Q.value)Y=this._getOrReturnCtx($,Y),C(Y,{code:D.too_big,type:"bigint",maximum:Q.value,inclusive:Q.inclusive,message:Q.message}),J.dirty()}else if(Q.kind==="multipleOf"){if($.data%Q.value!==BigInt(0))Y=this._getOrReturnCtx($,Y),C(Y,{code:D.not_multiple_of,multipleOf:Q.value,message:Q.message}),J.dirty()}else c.assertNever(Q);return{status:J.value,value:$.data}}_getInvalidInput($){let X=this._getOrReturnCtx($);return C(X,{code:D.invalid_type,expected:S.bigint,received:X.parsedType}),y}gte($,X){return this.setLimit("min",$,!0,k.toString(X))}gt($,X){return this.setLimit("min",$,!1,k.toString(X))}lte($,X){return this.setLimit("max",$,!0,k.toString(X))}lt($,X){return this.setLimit("max",$,!1,k.toString(X))}setLimit($,X,Y,J){return new M0({...this._def,checks:[...this._def.checks,{kind:$,value:X,inclusive:Y,message:k.toString(J)}]})}_addCheck($){return new M0({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:k.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:k.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:k.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:k.toString($)})}multipleOf($,X){return this._addCheck({kind:"multipleOf",value:$,message:k.toString(X)})}get minValue(){let $=null;for(let X of this._def.checks)if(X.kind==="min"){if($===null||X.value>$)$=X.value}return $}get maxValue(){let $=null;for(let X of this._def.checks)if(X.kind==="max"){if($===null||X.value<$)$=X.value}return $}}M0.create=($)=>{return new M0({checks:[],typeName:v.ZodBigInt,coerce:$?.coerce??!1,...m($)})};class D2 extends d{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==S.boolean){let Y=this._getOrReturnCtx($);return C(Y,{code:D.invalid_type,expected:S.boolean,received:Y.parsedType}),y}return B$($.data)}}D2.create=($)=>{return new D2({typeName:v.ZodBoolean,coerce:$?.coerce||!1,...m($)})};class h0 extends d{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==S.date){let Q=this._getOrReturnCtx($);return C(Q,{code:D.invalid_type,expected:S.date,received:Q.parsedType}),y}if(Number.isNaN($.data.getTime())){let Q=this._getOrReturnCtx($);return C(Q,{code:D.invalid_date}),y}let Y=new G$,J=void 0;for(let Q of this._def.checks)if(Q.kind==="min"){if($.data.getTime()<Q.value)J=this._getOrReturnCtx($,J),C(J,{code:D.too_small,message:Q.message,inclusive:!0,exact:!1,minimum:Q.value,type:"date"}),Y.dirty()}else if(Q.kind==="max"){if($.data.getTime()>Q.value)J=this._getOrReturnCtx($,J),C(J,{code:D.too_big,message:Q.message,inclusive:!0,exact:!1,maximum:Q.value,type:"date"}),Y.dirty()}else c.assertNever(Q);return{status:Y.value,value:new Date($.data.getTime())}}_addCheck($){return new h0({...this._def,checks:[...this._def.checks,$]})}min($,X){return this._addCheck({kind:"min",value:$.getTime(),message:k.toString(X)})}max($,X){return this._addCheck({kind:"max",value:$.getTime(),message:k.toString(X)})}get minDate(){let $=null;for(let X of this._def.checks)if(X.kind==="min"){if($===null||X.value>$)$=X.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let X of this._def.checks)if(X.kind==="max"){if($===null||X.value<$)$=X.value}return $!=null?new Date($):null}}h0.create=($)=>{return new h0({checks:[],coerce:$?.coerce||!1,typeName:v.ZodDate,...m($)})};class s1 extends d{_parse($){if(this._getType($)!==S.symbol){let Y=this._getOrReturnCtx($);return C(Y,{code:D.invalid_type,expected:S.symbol,received:Y.parsedType}),y}return B$($.data)}}s1.create=($)=>{return new s1({typeName:v.ZodSymbol,...m($)})};class Z2 extends d{_parse($){if(this._getType($)!==S.undefined){let Y=this._getOrReturnCtx($);return C(Y,{code:D.invalid_type,expected:S.undefined,received:Y.parsedType}),y}return B$($.data)}}Z2.create=($)=>{return new Z2({typeName:v.ZodUndefined,...m($)})};class S2 extends d{_parse($){if(this._getType($)!==S.null){let Y=this._getOrReturnCtx($);return C(Y,{code:D.invalid_type,expected:S.null,received:Y.parsedType}),y}return B$($.data)}}S2.create=($)=>{return new S2({typeName:v.ZodNull,...m($)})};class m0 extends d{constructor(){super(...arguments);this._any=!0}_parse($){return B$($.data)}}m0.create=($)=>{return new m0({typeName:v.ZodAny,...m($)})};class N0 extends d{constructor(){super(...arguments);this._unknown=!0}_parse($){return B$($.data)}}N0.create=($)=>{return new N0({typeName:v.ZodUnknown,...m($)})};class h$ extends d{_parse($){let X=this._getOrReturnCtx($);return C(X,{code:D.invalid_type,expected:S.never,received:X.parsedType}),y}}h$.create=($)=>{return new h$({typeName:v.ZodNever,...m($)})};class o1 extends d{_parse($){if(this._getType($)!==S.undefined){let Y=this._getOrReturnCtx($);return C(Y,{code:D.invalid_type,expected:S.void,received:Y.parsedType}),y}return B$($.data)}}o1.create=($)=>{return new o1({typeName:v.ZodVoid,...m($)})};class _$ extends d{_parse($){let{ctx:X,status:Y}=this._processInputParams($),J=this._def;if(X.parsedType!==S.array)return C(X,{code:D.invalid_type,expected:S.array,received:X.parsedType}),y;if(J.exactLength!==null){let z=X.data.length>J.exactLength.value,W=X.data.length<J.exactLength.value;if(z||W)C(X,{code:z?D.too_big:D.too_small,minimum:W?J.exactLength.value:void 0,maximum:z?J.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:J.exactLength.message}),Y.dirty()}if(J.minLength!==null){if(X.data.length<J.minLength.value)C(X,{code:D.too_small,minimum:J.minLength.value,type:"array",inclusive:!0,exact:!1,message:J.minLength.message}),Y.dirty()}if(J.maxLength!==null){if(X.data.length>J.maxLength.value)C(X,{code:D.too_big,maximum:J.maxLength.value,type:"array",inclusive:!0,exact:!1,message:J.maxLength.message}),Y.dirty()}if(X.common.async)return Promise.all([...X.data].map((z,W)=>{return J.type._parseAsync(new x$(X,z,X.path,W))})).then((z)=>{return G$.mergeArray(Y,z)});let Q=[...X.data].map((z,W)=>{return J.type._parseSync(new x$(X,z,X.path,W))});return G$.mergeArray(Y,Q)}get element(){return this._def.type}min($,X){return new _$({...this._def,minLength:{value:$,message:k.toString(X)}})}max($,X){return new _$({...this._def,maxLength:{value:$,message:k.toString(X)}})}length($,X){return new _$({...this._def,exactLength:{value:$,message:k.toString(X)}})}nonempty($){return this.min(1,$)}}_$.create=($,X)=>{return new _$({type:$,minLength:null,maxLength:null,exactLength:null,typeName:v.ZodArray,...m(X)})};function E2($){if($ instanceof s){let X={};for(let Y in $.shape){let J=$.shape[Y];X[Y]=k$.create(E2(J))}return new s({...$._def,shape:()=>X})}else if($ instanceof _$)return new _$({...$._def,type:E2($.element)});else if($ instanceof k$)return k$.create(E2($.unwrap()));else if($ instanceof X0)return X0.create(E2($.unwrap()));else if($ instanceof m$)return m$.create($.items.map((X)=>E2(X)));else return $}class s extends d{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),X=c.objectKeys($);return this._cached={shape:$,keys:X},this._cached}_parse($){if(this._getType($)!==S.object){let V=this._getOrReturnCtx($);return C(V,{code:D.invalid_type,expected:S.object,received:V.parsedType}),y}let{status:Y,ctx:J}=this._processInputParams($),{shape:Q,keys:z}=this._getCached(),W=[];if(!(this._def.catchall instanceof h$&&this._def.unknownKeys==="strip")){for(let V in J.data)if(!z.includes(V))W.push(V)}let G=[];for(let V of z){let K=Q[V],B=J.data[V];G.push({key:{status:"valid",value:V},value:K._parse(new x$(J,B,J.path,V)),alwaysSet:V in J.data})}if(this._def.catchall instanceof h$){let V=this._def.unknownKeys;if(V==="passthrough")for(let K of W)G.push({key:{status:"valid",value:K},value:{status:"valid",value:J.data[K]}});else if(V==="strict"){if(W.length>0)C(J,{code:D.unrecognized_keys,keys:W}),Y.dirty()}else if(V==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let V=this._def.catchall;for(let K of W){let B=J.data[K];G.push({key:{status:"valid",value:K},value:V._parse(new x$(J,B,J.path,K)),alwaysSet:K in J.data})}}if(J.common.async)return Promise.resolve().then(async()=>{let V=[];for(let K of G){let B=await K.key,q=await K.value;V.push({key:B,value:q,alwaysSet:K.alwaysSet})}return V}).then((V)=>{return G$.mergeObjectSync(Y,V)});else return G$.mergeObjectSync(Y,G)}get shape(){return this._def.shape()}strict($){return k.errToObj,new s({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(X,Y)=>{let J=this._def.errorMap?.(X,Y).message??Y.defaultError;if(X.code==="unrecognized_keys")return{message:k.errToObj($).message??J};return{message:J}}}:{}})}strip(){return new s({...this._def,unknownKeys:"strip"})}passthrough(){return new s({...this._def,unknownKeys:"passthrough"})}extend($){return new s({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new s({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:v.ZodObject})}setKey($,X){return this.augment({[$]:X})}catchall($){return new s({...this._def,catchall:$})}pick($){let X={};for(let Y of c.objectKeys($))if($[Y]&&this.shape[Y])X[Y]=this.shape[Y];return new s({...this._def,shape:()=>X})}omit($){let X={};for(let Y of c.objectKeys(this.shape))if(!$[Y])X[Y]=this.shape[Y];return new s({...this._def,shape:()=>X})}deepPartial(){return E2(this)}partial($){let X={};for(let Y of c.objectKeys(this.shape)){let J=this.shape[Y];if($&&!$[Y])X[Y]=J;else X[Y]=J.optional()}return new s({...this._def,shape:()=>X})}required($){let X={};for(let Y of c.objectKeys(this.shape))if($&&!$[Y])X[Y]=this.shape[Y];else{let Q=this.shape[Y];while(Q instanceof k$)Q=Q._def.innerType;X[Y]=Q}return new s({...this._def,shape:()=>X})}keyof(){return m7(c.objectKeys(this.shape))}}s.create=($,X)=>{return new s({shape:()=>$,unknownKeys:"strip",catchall:h$.create(),typeName:v.ZodObject,...m(X)})};s.strictCreate=($,X)=>{return new s({shape:()=>$,unknownKeys:"strict",catchall:h$.create(),typeName:v.ZodObject,...m(X)})};s.lazycreate=($,X)=>{return new s({shape:$,unknownKeys:"strip",catchall:h$.create(),typeName:v.ZodObject,...m(X)})};class A2 extends d{_parse($){let{ctx:X}=this._processInputParams($),Y=this._def.options;function J(Q){for(let W of Q)if(W.result.status==="valid")return W.result;for(let W of Q)if(W.result.status==="dirty")return X.common.issues.push(...W.ctx.common.issues),W.result;let z=Q.map((W)=>new U$(W.ctx.common.issues));return C(X,{code:D.invalid_union,unionErrors:z}),y}if(X.common.async)return Promise.all(Y.map(async(Q)=>{let z={...X,common:{...X.common,issues:[]},parent:null};return{result:await Q._parseAsync({data:X.data,path:X.path,parent:z}),ctx:z}})).then(J);else{let Q=void 0,z=[];for(let G of Y){let V={...X,common:{...X.common,issues:[]},parent:null},K=G._parseSync({data:X.data,path:X.path,parent:V});if(K.status==="valid")return K;else if(K.status==="dirty"&&!Q)Q={result:K,ctx:V};if(V.common.issues.length)z.push(V.common.issues)}if(Q)return X.common.issues.push(...Q.ctx.common.issues),Q.result;let W=z.map((G)=>new U$(G));return C(X,{code:D.invalid_union,unionErrors:W}),y}}get options(){return this._def.options}}A2.create=($,X)=>{return new A2({options:$,typeName:v.ZodUnion,...m(X)})};var $0=($)=>{if($ instanceof j2)return $0($.schema);else if($ instanceof f$)return $0($.innerType());else if($ instanceof R2)return[$.value];else if($ instanceof F0)return $.options;else if($ instanceof P2)return c.objectValues($.enum);else if($ instanceof T2)return $0($._def.innerType);else if($ instanceof Z2)return[void 0];else if($ instanceof S2)return[null];else if($ instanceof k$)return[void 0,...$0($.unwrap())];else if($ instanceof X0)return[null,...$0($.unwrap())];else if($ instanceof m8)return $0($.unwrap());else if($ instanceof k2)return $0($.unwrap());else if($ instanceof _2)return $0($._def.innerType);else return[]};class h8 extends d{_parse($){let{ctx:X}=this._processInputParams($);if(X.parsedType!==S.object)return C(X,{code:D.invalid_type,expected:S.object,received:X.parsedType}),y;let Y=this.discriminator,J=X.data[Y],Q=this.optionsMap.get(J);if(!Q)return C(X,{code:D.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Y]}),y;if(X.common.async)return Q._parseAsync({data:X.data,path:X.path,parent:X});else return Q._parseSync({data:X.data,path:X.path,parent:X})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,X,Y){let J=new Map;for(let Q of X){let z=$0(Q.shape[$]);if(!z.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let W of z){if(J.has(W))throw Error(`Discriminator property ${String($)} has duplicate value ${String(W)}`);J.set(W,Q)}}return new h8({typeName:v.ZodDiscriminatedUnion,discriminator:$,options:X,optionsMap:J,...m(Y)})}}function r4($,X){let Y=g$($),J=g$(X);if($===X)return{valid:!0,data:$};else if(Y===S.object&&J===S.object){let Q=c.objectKeys(X),z=c.objectKeys($).filter((G)=>Q.indexOf(G)!==-1),W={...$,...X};for(let G of z){let V=r4($[G],X[G]);if(!V.valid)return{valid:!1};W[G]=V.data}return{valid:!0,data:W}}else if(Y===S.array&&J===S.array){if($.length!==X.length)return{valid:!1};let Q=[];for(let z=0;z<$.length;z++){let W=$[z],G=X[z],V=r4(W,G);if(!V.valid)return{valid:!1};Q.push(V.data)}return{valid:!0,data:Q}}else if(Y===S.date&&J===S.date&&+$===+X)return{valid:!0,data:$};else return{valid:!1}}class C2 extends d{_parse($){let{status:X,ctx:Y}=this._processInputParams($),J=(Q,z)=>{if(v8(Q)||v8(z))return y;let W=r4(Q.value,z.value);if(!W.valid)return C(Y,{code:D.invalid_intersection_types}),y;if(g8(Q)||g8(z))X.dirty();return{status:X.value,value:W.data}};if(Y.common.async)return Promise.all([this._def.left._parseAsync({data:Y.data,path:Y.path,parent:Y}),this._def.right._parseAsync({data:Y.data,path:Y.path,parent:Y})]).then(([Q,z])=>J(Q,z));else return J(this._def.left._parseSync({data:Y.data,path:Y.path,parent:Y}),this._def.right._parseSync({data:Y.data,path:Y.path,parent:Y}))}}C2.create=($,X,Y)=>{return new C2({left:$,right:X,typeName:v.ZodIntersection,...m(Y)})};class m$ extends d{_parse($){let{status:X,ctx:Y}=this._processInputParams($);if(Y.parsedType!==S.array)return C(Y,{code:D.invalid_type,expected:S.array,received:Y.parsedType}),y;if(Y.data.length<this._def.items.length)return C(Y,{code:D.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),y;if(!this._def.rest&&Y.data.length>this._def.items.length)C(Y,{code:D.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),X.dirty();let Q=[...Y.data].map((z,W)=>{let G=this._def.items[W]||this._def.rest;if(!G)return null;return G._parse(new x$(Y,z,Y.path,W))}).filter((z)=>!!z);if(Y.common.async)return Promise.all(Q).then((z)=>{return G$.mergeArray(X,z)});else return G$.mergeArray(X,Q)}get items(){return this._def.items}rest($){return new m$({...this._def,rest:$})}}m$.create=($,X)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new m$({items:$,typeName:v.ZodTuple,rest:null,...m(X)})};class t1 extends d{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:X,ctx:Y}=this._processInputParams($);if(Y.parsedType!==S.object)return C(Y,{code:D.invalid_type,expected:S.object,received:Y.parsedType}),y;let J=[],Q=this._def.keyType,z=this._def.valueType;for(let W in Y.data)J.push({key:Q._parse(new x$(Y,W,Y.path,W)),value:z._parse(new x$(Y,Y.data[W],Y.path,W)),alwaysSet:W in Y.data});if(Y.common.async)return G$.mergeObjectAsync(X,J);else return G$.mergeObjectSync(X,J)}get element(){return this._def.valueType}static create($,X,Y){if(X instanceof d)return new t1({keyType:$,valueType:X,typeName:v.ZodRecord,...m(Y)});return new t1({keyType:T$.create(),valueType:$,typeName:v.ZodRecord,...m(X)})}}class e1 extends d{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:X,ctx:Y}=this._processInputParams($);if(Y.parsedType!==S.map)return C(Y,{code:D.invalid_type,expected:S.map,received:Y.parsedType}),y;let J=this._def.keyType,Q=this._def.valueType,z=[...Y.data.entries()].map(([W,G],V)=>{return{key:J._parse(new x$(Y,W,Y.path,[V,"key"])),value:Q._parse(new x$(Y,G,Y.path,[V,"value"]))}});if(Y.common.async){let W=new Map;return Promise.resolve().then(async()=>{for(let G of z){let V=await G.key,K=await G.value;if(V.status==="aborted"||K.status==="aborted")return y;if(V.status==="dirty"||K.status==="dirty")X.dirty();W.set(V.value,K.value)}return{status:X.value,value:W}})}else{let W=new Map;for(let G of z){let{key:V,value:K}=G;if(V.status==="aborted"||K.status==="aborted")return y;if(V.status==="dirty"||K.status==="dirty")X.dirty();W.set(V.value,K.value)}return{status:X.value,value:W}}}}e1.create=($,X,Y)=>{return new e1({valueType:X,keyType:$,typeName:v.ZodMap,...m(Y)})};class u0 extends d{_parse($){let{status:X,ctx:Y}=this._processInputParams($);if(Y.parsedType!==S.set)return C(Y,{code:D.invalid_type,expected:S.set,received:Y.parsedType}),y;let J=this._def;if(J.minSize!==null){if(Y.data.size<J.minSize.value)C(Y,{code:D.too_small,minimum:J.minSize.value,type:"set",inclusive:!0,exact:!1,message:J.minSize.message}),X.dirty()}if(J.maxSize!==null){if(Y.data.size>J.maxSize.value)C(Y,{code:D.too_big,maximum:J.maxSize.value,type:"set",inclusive:!0,exact:!1,message:J.maxSize.message}),X.dirty()}let Q=this._def.valueType;function z(G){let V=new Set;for(let K of G){if(K.status==="aborted")return y;if(K.status==="dirty")X.dirty();V.add(K.value)}return{status:X.value,value:V}}let W=[...Y.data.values()].map((G,V)=>Q._parse(new x$(Y,G,Y.path,V)));if(Y.common.async)return Promise.all(W).then((G)=>z(G));else return z(W)}min($,X){return new u0({...this._def,minSize:{value:$,message:k.toString(X)}})}max($,X){return new u0({...this._def,maxSize:{value:$,message:k.toString(X)}})}size($,X){return this.min($,X).max($,X)}nonempty($){return this.min(1,$)}}u0.create=($,X)=>{return new u0({valueType:$,minSize:null,maxSize:null,typeName:v.ZodSet,...m(X)})};class L2 extends d{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:X}=this._processInputParams($);if(X.parsedType!==S.function)return C(X,{code:D.invalid_type,expected:S.function,received:X.parsedType}),y;function Y(W,G){return r1({data:W,path:X.path,errorMaps:[X.common.contextualErrorMap,X.schemaErrorMap,F2(),e$].filter((V)=>!!V),issueData:{code:D.invalid_arguments,argumentsError:G}})}function J(W,G){return r1({data:W,path:X.path,errorMaps:[X.common.contextualErrorMap,X.schemaErrorMap,F2(),e$].filter((V)=>!!V),issueData:{code:D.invalid_return_type,returnTypeError:G}})}let Q={errorMap:X.common.contextualErrorMap},z=X.data;if(this._def.returns instanceof d0){let W=this;return B$(async function(...G){let V=new U$([]),K=await W._def.args.parseAsync(G,Q).catch((H)=>{throw V.addIssue(Y(G,H)),V}),B=await Reflect.apply(z,this,K);return await W._def.returns._def.type.parseAsync(B,Q).catch((H)=>{throw V.addIssue(J(B,H)),V})})}else{let W=this;return B$(function(...G){let V=W._def.args.safeParse(G,Q);if(!V.success)throw new U$([Y(G,V.error)]);let K=Reflect.apply(z,this,V.data),B=W._def.returns.safeParse(K,Q);if(!B.success)throw new U$([J(K,B.error)]);return B.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new L2({...this._def,args:m$.create($).rest(N0.create())})}returns($){return new L2({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,X,Y){return new L2({args:$?$:m$.create([]).rest(N0.create()),returns:X||N0.create(),typeName:v.ZodFunction,...m(Y)})}}class j2 extends d{get schema(){return this._def.getter()}_parse($){let{ctx:X}=this._processInputParams($);return this._def.getter()._parse({data:X.data,path:X.path,parent:X})}}j2.create=($,X)=>{return new j2({getter:$,typeName:v.ZodLazy,...m(X)})};class R2 extends d{_parse($){if($.data!==this._def.value){let X=this._getOrReturnCtx($);return C(X,{received:X.data,code:D.invalid_literal,expected:this._def.value}),y}return{status:"valid",value:$.data}}get value(){return this._def.value}}R2.create=($,X)=>{return new R2({value:$,typeName:v.ZodLiteral,...m(X)})};function m7($,X){return new F0({values:$,typeName:v.ZodEnum,...m(X)})}class F0 extends d{_parse($){if(typeof $.data!=="string"){let X=this._getOrReturnCtx($),Y=this._def.values;return C(X,{expected:c.joinValues(Y),received:X.parsedType,code:D.invalid_type}),y}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let X=this._getOrReturnCtx($),Y=this._def.values;return C(X,{received:X.data,code:D.invalid_enum_value,options:Y}),y}return B$($.data)}get options(){return this._def.values}get enum(){let $={};for(let X of this._def.values)$[X]=X;return $}get Values(){let $={};for(let X of this._def.values)$[X]=X;return $}get Enum(){let $={};for(let X of this._def.values)$[X]=X;return $}extract($,X=this._def){return F0.create($,{...this._def,...X})}exclude($,X=this._def){return F0.create(this.options.filter((Y)=>!$.includes(Y)),{...this._def,...X})}}F0.create=m7;class P2 extends d{_parse($){let X=c.getValidEnumValues(this._def.values),Y=this._getOrReturnCtx($);if(Y.parsedType!==S.string&&Y.parsedType!==S.number){let J=c.objectValues(X);return C(Y,{expected:c.joinValues(J),received:Y.parsedType,code:D.invalid_type}),y}if(!this._cache)this._cache=new Set(c.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let J=c.objectValues(X);return C(Y,{received:Y.data,code:D.invalid_enum_value,options:J}),y}return B$($.data)}get enum(){return this._def.values}}P2.create=($,X)=>{return new P2({values:$,typeName:v.ZodNativeEnum,...m(X)})};class d0 extends d{unwrap(){return this._def.type}_parse($){let{ctx:X}=this._processInputParams($);if(X.parsedType!==S.promise&&X.common.async===!1)return C(X,{code:D.invalid_type,expected:S.promise,received:X.parsedType}),y;let Y=X.parsedType===S.promise?X.data:Promise.resolve(X.data);return B$(Y.then((J)=>{return this._def.type.parseAsync(J,{path:X.path,errorMap:X.common.contextualErrorMap})}))}}d0.create=($,X)=>{return new d0({type:$,typeName:v.ZodPromise,...m(X)})};class f$ extends d{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===v.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:X,ctx:Y}=this._processInputParams($),J=this._def.effect||null,Q={addIssue:(z)=>{if(C(Y,z),z.fatal)X.abort();else X.dirty()},get path(){return Y.path}};if(Q.addIssue=Q.addIssue.bind(Q),J.type==="preprocess"){let z=J.transform(Y.data,Q);if(Y.common.async)return Promise.resolve(z).then(async(W)=>{if(X.value==="aborted")return y;let G=await this._def.schema._parseAsync({data:W,path:Y.path,parent:Y});if(G.status==="aborted")return y;if(G.status==="dirty")return g0(G.value);if(X.value==="dirty")return g0(G.value);return G});else{if(X.value==="aborted")return y;let W=this._def.schema._parseSync({data:z,path:Y.path,parent:Y});if(W.status==="aborted")return y;if(W.status==="dirty")return g0(W.value);if(X.value==="dirty")return g0(W.value);return W}}if(J.type==="refinement"){let z=(W)=>{let G=J.refinement(W,Q);if(Y.common.async)return Promise.resolve(G);if(G instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return W};if(Y.common.async===!1){let W=this._def.schema._parseSync({data:Y.data,path:Y.path,parent:Y});if(W.status==="aborted")return y;if(W.status==="dirty")X.dirty();return z(W.value),{status:X.value,value:W.value}}else return this._def.schema._parseAsync({data:Y.data,path:Y.path,parent:Y}).then((W)=>{if(W.status==="aborted")return y;if(W.status==="dirty")X.dirty();return z(W.value).then(()=>{return{status:X.value,value:W.value}})})}if(J.type==="transform")if(Y.common.async===!1){let z=this._def.schema._parseSync({data:Y.data,path:Y.path,parent:Y});if(!w0(z))return y;let W=J.transform(z.value,Q);if(W instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:X.value,value:W}}else return this._def.schema._parseAsync({data:Y.data,path:Y.path,parent:Y}).then((z)=>{if(!w0(z))return y;return Promise.resolve(J.transform(z.value,Q)).then((W)=>({status:X.value,value:W}))});c.assertNever(J)}}f$.create=($,X,Y)=>{return new f$({schema:$,typeName:v.ZodEffects,effect:X,...m(Y)})};f$.createWithPreprocess=($,X,Y)=>{return new f$({schema:X,effect:{type:"preprocess",transform:$},typeName:v.ZodEffects,...m(Y)})};class k$ extends d{_parse($){if(this._getType($)===S.undefined)return B$(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}k$.create=($,X)=>{return new k$({innerType:$,typeName:v.ZodOptional,...m(X)})};class X0 extends d{_parse($){if(this._getType($)===S.null)return B$(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}X0.create=($,X)=>{return new X0({innerType:$,typeName:v.ZodNullable,...m(X)})};class T2 extends d{_parse($){let{ctx:X}=this._processInputParams($),Y=X.data;if(X.parsedType===S.undefined)Y=this._def.defaultValue();return this._def.innerType._parse({data:Y,path:X.path,parent:X})}removeDefault(){return this._def.innerType}}T2.create=($,X)=>{return new T2({innerType:$,typeName:v.ZodDefault,defaultValue:typeof X.default==="function"?X.default:()=>X.default,...m(X)})};class _2 extends d{_parse($){let{ctx:X}=this._processInputParams($),Y={...X,common:{...X.common,issues:[]}},J=this._def.innerType._parse({data:Y.data,path:Y.path,parent:{...Y}});if(O2(J))return J.then((Q)=>{return{status:"valid",value:Q.status==="valid"?Q.value:this._def.catchValue({get error(){return new U$(Y.common.issues)},input:Y.data})}});else return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new U$(Y.common.issues)},input:Y.data})}}removeCatch(){return this._def.innerType}}_2.create=($,X)=>{return new _2({innerType:$,typeName:v.ZodCatch,catchValue:typeof X.catch==="function"?X.catch:()=>X.catch,...m(X)})};class $6 extends d{_parse($){if(this._getType($)!==S.nan){let Y=this._getOrReturnCtx($);return C(Y,{code:D.invalid_type,expected:S.nan,received:Y.parsedType}),y}return{status:"valid",value:$.data}}}$6.create=($)=>{return new $6({typeName:v.ZodNaN,...m($)})};var j3=Symbol("zod_brand");class m8 extends d{_parse($){let{ctx:X}=this._processInputParams($),Y=X.data;return this._def.type._parse({data:Y,path:X.path,parent:X})}unwrap(){return this._def.type}}class X6 extends d{_parse($){let{status:X,ctx:Y}=this._processInputParams($);if(Y.common.async)return(async()=>{let Q=await this._def.in._parseAsync({data:Y.data,path:Y.path,parent:Y});if(Q.status==="aborted")return y;if(Q.status==="dirty")return X.dirty(),g0(Q.value);else return this._def.out._parseAsync({data:Q.value,path:Y.path,parent:Y})})();else{let J=this._def.in._parseSync({data:Y.data,path:Y.path,parent:Y});if(J.status==="aborted")return y;if(J.status==="dirty")return X.dirty(),{status:"dirty",value:J.value};else return this._def.out._parseSync({data:J.value,path:Y.path,parent:Y})}}static create($,X){return new X6({in:$,out:X,typeName:v.ZodPipeline})}}class k2 extends d{_parse($){let X=this._def.innerType._parse($),Y=(J)=>{if(w0(J))J.value=Object.freeze(J.value);return J};return O2(X)?X.then((J)=>Y(J)):Y(X)}unwrap(){return this._def.innerType}}k2.create=($,X)=>{return new k2({innerType:$,typeName:v.ZodReadonly,...m(X)})};function y7($,X){let Y=typeof $==="function"?$(X):typeof $==="string"?{message:$}:$;return typeof Y==="string"?{message:Y}:Y}function u7($,X={},Y){if($)return m0.create().superRefine((J,Q)=>{let z=$(J);if(z instanceof Promise)return z.then((W)=>{if(!W){let G=y7(X,J),V=G.fatal??Y??!0;Q.addIssue({code:"custom",...G,fatal:V})}});if(!z){let W=y7(X,J),G=W.fatal??Y??!0;Q.addIssue({code:"custom",...W,fatal:G})}return});return m0.create()}var R3={object:s.lazycreate},v;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(v||(v={}));var P3=($,X={message:`Input not instance of ${$.name}`})=>u7((Y)=>Y instanceof $,X),d7=T$.create,c7=U0.create,T3=$6.create,_3=M0.create,l7=D2.create,k3=h0.create,x3=s1.create,f3=Z2.create,b3=S2.create,I3=m0.create,y3=N0.create,v3=h$.create,g3=o1.create,h3=_$.create,m3=s.create,u3=s.strictCreate,d3=A2.create,c3=h8.create,l3=C2.create,p3=m$.create,i3=t1.create,n3=e1.create,a3=u0.create,r3=L2.create,s3=j2.create,o3=R2.create,t3=F0.create,e3=P2.create,$Y=d0.create,XY=f$.create,YY=k$.create,JY=X0.create,QY=f$.createWithPreprocess,zY=X6.create,WY=()=>d7().optional(),GY=()=>c7().optional(),VY=()=>l7().optional(),HY={string:($)=>T$.create({...$,coerce:!0}),number:($)=>U0.create({...$,coerce:!0}),boolean:($)=>D2.create({...$,coerce:!0}),bigint:($)=>M0.create({...$,coerce:!0}),date:($)=>h0.create({...$,coerce:!0})};var KY=y;function b($,X,Y,J,Q){if(J==="m")throw TypeError("Private method is not writable");if(J==="a"&&!Q)throw TypeError("Private accessor was defined without a setter");if(typeof X==="function"?$!==X||!Q:!X.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return J==="a"?Q.call($,Y):Q?Q.value=Y:X.set($,Y),Y}function w($,X,Y,J){if(Y==="a"&&!J)throw TypeError("Private accessor was defined without a getter");if(typeof X==="function"?$!==X||!J:!X.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return Y==="m"?J:Y==="a"?J.call($):J?J.value:X.get($)}var s4=function(){let{crypto:$}=globalThis;if($?.randomUUID)return s4=$.randomUUID.bind($),$.randomUUID();let X=new Uint8Array(1),Y=$?()=>$.getRandomValues(X)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(J)=>(+J^Y()&15>>+J/4).toString(16))};function Y6($){return typeof $==="object"&&$!==null&&(("name"in $)&&$.name==="AbortError"||("message"in $)&&String($.message).includes("FetchRequestCanceledException"))}var J6=($)=>{if($ instanceof Error)return $;if(typeof $==="object"&&$!==null){try{if(Object.prototype.toString.call($)==="[object Error]"){let X=Error($.message,$.cause?{cause:$.cause}:{});if($.stack)X.stack=$.stack;if($.cause&&!X.cause)X.cause=$.cause;if($.name)X.name=$.name;return X}}catch{}try{return Error(JSON.stringify($))}catch{}}return Error($)};class T extends Error{}class o extends T{constructor($,X,Y,J){super(`${o.makeMessage($,X,Y)}`);this.status=$,this.headers=J,this.requestID=J?.get("x-request-id"),this.error=X;let Q=X;this.code=Q?.code,this.param=Q?.param,this.type=Q?.type}static makeMessage($,X,Y){let J=X?.message?typeof X.message==="string"?X.message:JSON.stringify(X.message):X?JSON.stringify(X):Y;if($&&J)return`${$} ${J}`;if($)return`${$} status code (no body)`;if(J)return J;return"(no status code or body)"}static generate($,X,Y,J){if(!$||!J)return new l0({message:Y,cause:J6(X)});let Q=X?.error;if($===400)return new Q6($,Q,Y,J);if($===401)return new z6($,Q,Y,J);if($===403)return new W6($,Q,Y,J);if($===404)return new G6($,Q,Y,J);if($===409)return new V6($,Q,Y,J);if($===422)return new H6($,Q,Y,J);if($===429)return new K6($,Q,Y,J);if($>=500)return new B6($,Q,Y,J);return new o($,Q,Y,J)}}class Y$ extends o{constructor({message:$}={}){super(void 0,void 0,$||"Request was aborted.",void 0)}}class l0 extends o{constructor({message:$,cause:X}){super(void 0,void 0,$||"Connection error.",void 0);if(X)this.cause=X}}class p0 extends l0{constructor({message:$}={}){super({message:$??"Request timed out."})}}class Q6 extends o{}class z6 extends o{}class W6 extends o{}class G6 extends o{}class V6 extends o{}class H6 extends o{}class K6 extends o{}class B6 extends o{}class q6 extends T{constructor(){super("Could not parse response content as the length limit was reached")}}class w6 extends T{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class Y0 extends Error{constructor($){super($)}}class x2 extends o{constructor($,X,Y){let J="OAuth2 authentication error",Q=void 0;if(X&&typeof X==="object"){let z=X;Q=z.error;let W=z.error_description;if(W&&typeof W==="string")J=W;else if(Q)J=Q}super($,X,J,Y);this.error_code=Q}}class u8 extends T{constructor($,X,Y){super($);this.provider=X,this.cause=Y}}var wY=/^[a-z][a-z0-9+.-]*:/i,p7=($)=>{return wY.test($)},q$=($)=>(q$=Array.isArray,q$($)),o4=q$;function t4($){if(typeof $!=="object")return{};return $??{}}function e4($){if(!$)return!0;for(let X in $)return!1;return!0}function i7($,X){return Object.prototype.hasOwnProperty.call($,X)}function N6($){return $!=null&&typeof $==="object"&&!Array.isArray($)}var n7=($,X)=>{if(typeof X!=="number"||!Number.isInteger(X))throw new T(`${$} must be an integer`);if(X<0)throw new T(`${$} must be a positive integer`);return X};var a7=($)=>{try{return JSON.parse($)}catch(X){return}};var u$=($)=>new Promise((X)=>setTimeout(X,$));var O0="6.34.0";var t7=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function NY(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var UY=()=>{let $=NY();if($==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":O0,"X-Stainless-OS":s7(Deno.build.os),"X-Stainless-Arch":r7(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":O0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if($==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":O0,"X-Stainless-OS":s7(globalThis.process.platform??"unknown"),"X-Stainless-Arch":r7(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let X=MY();if(X)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":O0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${X.browser}`,"X-Stainless-Runtime-Version":X.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":O0,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function MY(){if(typeof navigator>"u"||!navigator)return null;let $=[{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:X,pattern:Y}of $){let J=Y.exec(navigator.userAgent);if(J){let Q=J[1]||0,z=J[2]||0,W=J[3]||0;return{browser:X,version:`${Q}.${z}.${W}`}}}return null}var r7=($)=>{if($==="x32")return"x32";if($==="x86_64"||$==="x64")return"x64";if($==="arm")return"arm";if($==="aarch64"||$==="arm64")return"arm64";if($)return`other:${$}`;return"unknown"},s7=($)=>{if($=$.toLowerCase(),$.includes("ios"))return"iOS";if($==="android")return"Android";if($==="darwin")return"MacOS";if($==="win32")return"Windows";if($==="freebsd")return"FreeBSD";if($==="openbsd")return"OpenBSD";if($==="linux")return"Linux";if($)return`Other:${$}`;return"Unknown"},o7,e7=()=>{return o7??(o7=UY())};function d8(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function $X(...$){let X=globalThis.ReadableStream;if(typeof X>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new X(...$)}function c8($){let X=Symbol.asyncIterator in $?$[Symbol.asyncIterator]():$[Symbol.iterator]();return $X({start(){},async pull(Y){let{done:J,value:Q}=await X.next();if(J)Y.close();else Y.enqueue(Q)},async cancel(){await X.return?.()}})}function XX($){if($[Symbol.asyncIterator])return $;let X=$.getReader();return{async next(){try{let Y=await X.read();if(Y?.done)X.releaseLock();return Y}catch(Y){throw X.releaseLock(),Y}},async return(){let Y=X.cancel();return X.releaseLock(),await Y,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function YX($){if($===null||typeof $!=="object")return;if($[Symbol.asyncIterator]){await $[Symbol.asyncIterator]().return?.();return}let X=$.getReader(),Y=X.cancel();X.releaseLock(),await Y}var X9=({headers:$,body:X})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(X)}};var JX="RFC3986",QX=($)=>String($),zX={RFC1738:($)=>String($).replace(/%20/g,"+"),RFC3986:QX},Y9="RFC1738";var l8=($,X)=>(l8=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),l8($,X)),d$=(()=>{let $=[];for(let X=0;X<256;++X)$.push("%"+((X<16?"0":"")+X.toString(16)).toUpperCase());return $})();var WX=1024,J9=($,X,Y,J,Q)=>{if($.length===0)return $;let z=$;if(typeof $==="symbol")z=Symbol.prototype.toString.call($);else if(typeof $!=="string")z=String($);if(Y==="iso-8859-1")return escape(z).replace(/%u[0-9a-f]{4}/gi,function(G){return"%26%23"+parseInt(G.slice(2),16)+"%3B"});let W="";for(let G=0;G<z.length;G+=WX){let V=z.length>=WX?z.slice(G,G+WX):z,K=[];for(let B=0;B<V.length;++B){let q=V.charCodeAt(B);if(q===45||q===46||q===95||q===126||q>=48&&q<=57||q>=65&&q<=90||q>=97&&q<=122||Q===Y9&&(q===40||q===41)){K[K.length]=V.charAt(B);continue}if(q<128){K[K.length]=d$[q];continue}if(q<2048){K[K.length]=d$[192|q>>6]+d$[128|q&63];continue}if(q<55296||q>=57344){K[K.length]=d$[224|q>>12]+d$[128|q>>6&63]+d$[128|q&63];continue}B+=1,q=65536+((q&1023)<<10|V.charCodeAt(B)&1023),K[K.length]=d$[240|q>>18]+d$[128|q>>12&63]+d$[128|q>>6&63]+d$[128|q&63]}W+=K.join("")}return W};function Q9($){if(!$||typeof $!=="object")return!1;return!!($.constructor&&$.constructor.isBuffer&&$.constructor.isBuffer($))}function GX($,X){if(q$($)){let Y=[];for(let J=0;J<$.length;J+=1)Y.push(X($[J]));return Y}return X($)}var W9={brackets($){return String($)+"[]"},comma:"comma",indices($,X){return String($)+"["+X+"]"},repeat($){return String($)}},G9=function($,X){Array.prototype.push.apply($,q$(X)?X:[X])},z9,J$={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:J9,encodeValuesOnly:!1,format:JX,formatter:QX,indices:!1,serializeDate($){return(z9??(z9=Function.prototype.call.bind(Date.prototype.toISOString)))($)},skipNulls:!1,strictNullHandling:!1};function OY($){return typeof $==="string"||typeof $==="number"||typeof $==="boolean"||typeof $==="symbol"||typeof $==="bigint"}var VX={};function V9($,X,Y,J,Q,z,W,G,V,K,B,q,H,M,O,_,R,L){let A=$,E=L,P=0,l=!1;while((E=E.get(VX))!==void 0&&!l){let u=E.get($);if(P+=1,typeof u<"u")if(u===P)throw RangeError("Cyclic object value");else l=!0;if(typeof E.get(VX)>"u")P=0}if(typeof K==="function")A=K(X,A);else if(A instanceof Date)A=H?.(A);else if(Y==="comma"&&q$(A))A=GX(A,function(u){if(u instanceof Date)return H?.(u);return u});if(A===null){if(z)return V&&!_?V(X,J$.encoder,R,"key",M):X;A=""}if(OY(A)||Q9(A)){if(V){let u=_?X:V(X,J$.encoder,R,"key",M);return[O?.(u)+"="+O?.(V(A,J$.encoder,R,"value",M))]}return[O?.(X)+"="+O?.(String(A))]}let p=[];if(typeof A>"u")return p;let i;if(Y==="comma"&&q$(A)){if(_&&V)A=GX(A,V);i=[{value:A.length>0?A.join(",")||null:void 0}]}else if(q$(K))i=K;else{let u=Object.keys(A);i=B?u.sort(B):u}let H$=G?String(X).replace(/\./g,"%2E"):String(X),n=J&&q$(A)&&A.length===1?H$+"[]":H$;if(Q&&q$(A)&&A.length===0)return n+"[]";for(let u=0;u<i.length;++u){let R$=i[u],K8=typeof R$==="object"&&typeof R$.value<"u"?R$.value:A[R$];if(W&&K8===null)continue;let V2=q&&G?R$.replace(/\./g,"%2E"):R$,dX=q$(A)?typeof Y==="function"?Y(n,V2):n:n+(q?"."+V2:"["+V2+"]");L.set($,P);let B8=new WeakMap;B8.set(VX,L),G9(p,V9(K8,dX,Y,J,Q,z,W,G,Y==="comma"&&_&&q$(A)?null:V,K,B,q,H,M,O,_,R,B8))}return p}function EY($=J$){if(typeof $.allowEmptyArrays<"u"&&typeof $.allowEmptyArrays!=="boolean")throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof $.encodeDotInKeys<"u"&&typeof $.encodeDotInKeys!=="boolean")throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if($.encoder!==null&&typeof $.encoder<"u"&&typeof $.encoder!=="function")throw TypeError("Encoder has to be a function.");let X=$.charset||J$.charset;if(typeof $.charset<"u"&&$.charset!=="utf-8"&&$.charset!=="iso-8859-1")throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let Y=JX;if(typeof $.format<"u"){if(!l8(zX,$.format))throw TypeError("Unknown format option provided.");Y=$.format}let J=zX[Y],Q=J$.filter;if(typeof $.filter==="function"||q$($.filter))Q=$.filter;let z;if($.arrayFormat&&$.arrayFormat in W9)z=$.arrayFormat;else if("indices"in $)z=$.indices?"indices":"repeat";else z=J$.arrayFormat;if("commaRoundTrip"in $&&typeof $.commaRoundTrip!=="boolean")throw TypeError("`commaRoundTrip` must be a boolean, or absent");let W=typeof $.allowDots>"u"?!!$.encodeDotInKeys===!0?!0:J$.allowDots:!!$.allowDots;return{addQueryPrefix:typeof $.addQueryPrefix==="boolean"?$.addQueryPrefix:J$.addQueryPrefix,allowDots:W,allowEmptyArrays:typeof $.allowEmptyArrays==="boolean"?!!$.allowEmptyArrays:J$.allowEmptyArrays,arrayFormat:z,charset:X,charsetSentinel:typeof $.charsetSentinel==="boolean"?$.charsetSentinel:J$.charsetSentinel,commaRoundTrip:!!$.commaRoundTrip,delimiter:typeof $.delimiter>"u"?J$.delimiter:$.delimiter,encode:typeof $.encode==="boolean"?$.encode:J$.encode,encodeDotInKeys:typeof $.encodeDotInKeys==="boolean"?$.encodeDotInKeys:J$.encodeDotInKeys,encoder:typeof $.encoder==="function"?$.encoder:J$.encoder,encodeValuesOnly:typeof $.encodeValuesOnly==="boolean"?$.encodeValuesOnly:J$.encodeValuesOnly,filter:Q,format:Y,formatter:J,serializeDate:typeof $.serializeDate==="function"?$.serializeDate:J$.serializeDate,skipNulls:typeof $.skipNulls==="boolean"?$.skipNulls:J$.skipNulls,sort:typeof $.sort==="function"?$.sort:null,strictNullHandling:typeof $.strictNullHandling==="boolean"?$.strictNullHandling:J$.strictNullHandling}}function H9($,X={}){let Y=$,J=EY(X),Q,z;if(typeof J.filter==="function")z=J.filter,Y=z("",Y);else if(q$(J.filter))z=J.filter,Q=z;let W=[];if(typeof Y!=="object"||Y===null)return"";let G=W9[J.arrayFormat],V=G==="comma"&&J.commaRoundTrip;if(!Q)Q=Object.keys(Y);if(J.sort)Q.sort(J.sort);let K=new WeakMap;for(let H=0;H<Q.length;++H){let M=Q[H];if(J.skipNulls&&Y[M]===null)continue;G9(W,V9(Y[M],M,G,V,J.allowEmptyArrays,J.strictNullHandling,J.skipNulls,J.encodeDotInKeys,J.encode?J.encoder:null,J.filter,J.sort,J.allowDots,J.serializeDate,J.format,J.formatter,J.encodeValuesOnly,J.charset,K))}let B=W.join(J.delimiter),q=J.addQueryPrefix===!0?"?":"";if(J.charsetSentinel)if(J.charset==="iso-8859-1")q+="utf8=%26%2310003%3B&";else q+="utf8=%E2%9C%93&";return B.length>0?q+B:""}function K9($){return H9($,{arrayFormat:"brackets"})}function w9($){let X=0;for(let Q of $)X+=Q.length;let Y=new Uint8Array(X),J=0;for(let Q of $)Y.set(Q,J),J+=Q.length;return Y}var B9;function f2($){let X;return(B9??(X=new globalThis.TextEncoder,B9=X.encode.bind(X)))($)}var q9;function HX($){let X;return(q9??(X=new globalThis.TextDecoder,q9=X.decode.bind(X)))($)}var D$,Z$;class b2{constructor(){D$.set(this,void 0),Z$.set(this,void 0),b(this,D$,new Uint8Array,"f"),b(this,Z$,null,"f")}decode($){if($==null)return[];let X=$ instanceof ArrayBuffer?new Uint8Array($):typeof $==="string"?f2($):$;b(this,D$,w9([w(this,D$,"f"),X]),"f");let Y=[],J;while((J=DY(w(this,D$,"f"),w(this,Z$,"f")))!=null){if(J.carriage&&w(this,Z$,"f")==null){b(this,Z$,J.index,"f");continue}if(w(this,Z$,"f")!=null&&(J.index!==w(this,Z$,"f")+1||J.carriage)){Y.push(HX(w(this,D$,"f").subarray(0,w(this,Z$,"f")-1))),b(this,D$,w(this,D$,"f").subarray(w(this,Z$,"f")),"f"),b(this,Z$,null,"f");continue}let Q=w(this,Z$,"f")!==null?J.preceding-1:J.preceding,z=HX(w(this,D$,"f").subarray(0,Q));Y.push(z),b(this,D$,w(this,D$,"f").subarray(J.index),"f"),b(this,Z$,null,"f")}return Y}flush(){if(!w(this,D$,"f").length)return[];return this.decode(`
42
+ `)}}D$=new WeakMap,Z$=new WeakMap;b2.NEWLINE_CHARS=new Set([`
43
+ `,"\r"]);b2.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function DY($,X){for(let Q=X??0;Q<$.length;Q++){if($[Q]===10)return{preceding:Q,index:Q+1,carriage:!1};if($[Q]===13)return{preceding:Q,index:Q+1,carriage:!0}}return null}function N9($){for(let J=0;J<$.length-1;J++){if($[J]===10&&$[J+1]===10)return J+2;if($[J]===13&&$[J+1]===13)return J+2;if($[J]===13&&$[J+1]===10&&J+3<$.length&&$[J+2]===13&&$[J+3]===10)return J+4}return-1}var i8={off:0,error:200,warn:300,info:400,debug:500},KX=($,X,Y)=>{if(!$)return;if(i7(i8,$))return $;e(Y).warn(`${X} was set to ${JSON.stringify($)}, expected one of ${JSON.stringify(Object.keys(i8))}`);return};function U6(){}function p8($,X,Y){if(!X||i8[$]>i8[Y])return U6;else return X[$].bind(X)}var ZY={error:U6,warn:U6,info:U6,debug:U6},U9=new WeakMap;function e($){let X=$.logger,Y=$.logLevel??"off";if(!X)return ZY;let J=U9.get(X);if(J&&J[0]===Y)return J[1];let Q={error:p8("error",X,Y),warn:p8("warn",X,Y),info:p8("info",X,Y),debug:p8("debug",X,Y)};return U9.set(X,[Y,Q]),Q}var J0=($)=>{if($.options)$.options={...$.options},delete $.options.headers;if($.headers)$.headers=Object.fromEntries(($.headers instanceof Headers?[...$.headers]:Object.entries($.headers)).map(([X,Y])=>[X,X.toLowerCase()==="authorization"||X.toLowerCase()==="cookie"||X.toLowerCase()==="set-cookie"?"***":Y]));if("retryOfRequestLogID"in $){if($.retryOfRequestLogID)$.retryOf=$.retryOfRequestLogID;delete $.retryOfRequestLogID}return $};var M6;class S${constructor($,X,Y){this.iterator=$,M6.set(this,void 0),this.controller=X,b(this,M6,Y,"f")}static fromSSEResponse($,X,Y,J){let Q=!1,z=Y?e(Y):console;async function*W(){if(Q)throw new T("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Q=!0;let G=!1;try{for await(let V of SY($,X)){if(G)continue;if(V.data.startsWith("[DONE]")){G=!0;continue}if(V.event===null||!V.event.startsWith("thread.")){let K;try{K=JSON.parse(V.data)}catch(B){throw z.error("Could not parse message into JSON:",V.data),z.error("From chunk:",V.raw),B}if(K&&K.error)throw new o(void 0,K.error,void 0,$.headers);yield J?{event:V.event,data:K}:K}else{let K;try{K=JSON.parse(V.data)}catch(B){throw console.error("Could not parse message into JSON:",V.data),console.error("From chunk:",V.raw),B}if(V.event=="error")throw new o(void 0,K.error,K.message,void 0);yield{event:V.event,data:K}}}G=!0}catch(V){if(Y6(V))return;throw V}finally{if(!G)X.abort()}}return new S$(W,X,Y)}static fromReadableStream($,X,Y){let J=!1;async function*Q(){let W=new b2,G=XX($);for await(let V of G)for(let K of W.decode(V))yield K;for(let V of W.flush())yield V}async function*z(){if(J)throw new T("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");J=!0;let W=!1;try{for await(let G of Q()){if(W)continue;if(G)yield JSON.parse(G)}W=!0}catch(G){if(Y6(G))return;throw G}finally{if(!W)X.abort()}}return new S$(z,X,Y)}[(M6=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let $=[],X=[],Y=this.iterator(),J=(Q)=>{return{next:()=>{if(Q.length===0){let z=Y.next();$.push(z),X.push(z)}return Q.shift()}}};return[new S$(()=>J($),this.controller,w(this,M6,"f")),new S$(()=>J(X),this.controller,w(this,M6,"f"))]}toReadableStream(){let $=this,X;return $X({async start(){X=$[Symbol.asyncIterator]()},async pull(Y){try{let{value:J,done:Q}=await X.next();if(Q)return Y.close();let z=f2(JSON.stringify(J)+`
44
+ `);Y.enqueue(z)}catch(J){Y.error(J)}},async cancel(){await X.return?.()}})}}async function*SY($,X){if(!$.body){if(X.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new T("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new T("Attempted to iterate over a response with no body")}let Y=new M9,J=new b2,Q=XX($.body);for await(let z of AY(Q))for(let W of J.decode(z)){let G=Y.decode(W);if(G)yield G}for(let z of J.flush()){let W=Y.decode(z);if(W)yield W}}async function*AY($){let X=new Uint8Array;for await(let Y of $){if(Y==null)continue;let J=Y instanceof ArrayBuffer?new Uint8Array(Y):typeof Y==="string"?f2(Y):Y,Q=new Uint8Array(X.length+J.length);Q.set(X),Q.set(J,X.length),X=Q;let z;while((z=N9(X))!==-1)yield X.slice(0,z),X=X.slice(z)}if(X.length>0)yield X}class M9{constructor(){this.event=null,this.data=[],this.chunks=[]}decode($){if($.endsWith("\r"))$=$.substring(0,$.length-1);if(!$){if(!this.event&&!this.data.length)return null;let Q={event:this.event,data:this.data.join(`
45
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],Q}if(this.chunks.push($),$.startsWith(":"))return null;let[X,Y,J]=CY($,":");if(J.startsWith(" "))J=J.substring(1);if(X==="event")this.event=J;else if(X==="data")this.data.push(J);return null}}function CY($,X){let Y=$.indexOf(X);if(Y!==-1)return[$.substring(0,Y),X,$.substring(Y+X.length)];return[$,"",""]}async function n8($,X){let{response:Y,requestLogID:J,retryOfRequestLogID:Q,startTime:z}=X,W=await(async()=>{if(X.options.stream){if(e($).debug("response",Y.status,Y.url,Y.headers,Y.body),X.options.__streamClass)return X.options.__streamClass.fromSSEResponse(Y,X.controller,$,X.options.__synthesizeEventData);return S$.fromSSEResponse(Y,X.controller,$,X.options.__synthesizeEventData)}if(Y.status===204)return null;if(X.options.__binaryResponse)return Y;let V=Y.headers.get("content-type")?.split(";")[0]?.trim();if(V?.includes("application/json")||V?.endsWith("+json")){if(Y.headers.get("content-length")==="0")return;let H=await Y.json();return BX(H,Y)}return await Y.text()})();return e($).debug(`[${J}] response parsed`,J0({retryOfRequestLogID:Q,url:Y.url,status:Y.status,body:W,durationMs:Date.now()-z})),W}function BX($,X){if(!$||typeof $!=="object"||Array.isArray($))return $;return Object.defineProperty($,"_request_id",{value:X.headers.get("x-request-id"),enumerable:!1})}var F6;class i0 extends Promise{constructor($,X,Y=n8){super((J)=>{J(null)});this.responsePromise=X,this.parseResponse=Y,F6.set(this,void 0),b(this,F6,$,"f")}_thenUnwrap($){return new i0(w(this,F6,"f"),this.responsePromise,async(X,Y)=>BX($(await this.parseResponse(X,Y),Y),Y.response))}asResponse(){return this.responsePromise.then(($)=>$.response)}async withResponse(){let[$,X]=await Promise.all([this.parse(),this.asResponse()]);return{data:$,response:X,request_id:X.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then(($)=>this.parseResponse(w(this,F6,"f"),$));return this.parsedPromise}then($,X){return this.parse().then($,X)}catch($){return this.parse().catch($)}finally($){return this.parse().finally($)}}F6=new WeakMap;var a8;class r8{constructor($,X,Y,J){a8.set(this,void 0),b(this,a8,$,"f"),this.options=J,this.response=X,this.body=Y}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let $=this.nextPageRequestOptions();if(!$)throw new T("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await w(this,a8,"f").requestAPIList(this.constructor,$)}async*iterPages(){let $=this;yield $;while($.hasNextPage())$=await $.getNextPage(),yield $}async*[(a8=new WeakMap,Symbol.asyncIterator)](){for await(let $ of this.iterPages())for(let X of $.getPaginatedItems())yield X}}class s8 extends i0{constructor($,X,Y){super($,X,async(J,Q)=>new Y(J,Q.response,await n8(J,Q),Q.options))}async*[Symbol.asyncIterator](){let $=await this;for await(let X of $)yield X}}class Q0 extends r8{constructor($,X,Y,J){super($,X,Y,J);this.data=Y.data||[],this.object=Y.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class h extends r8{constructor($,X,Y,J){super($,X,Y,J);this.data=Y.data||[],this.has_more=Y.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let $=this.getPaginatedItems(),X=$[$.length-1]?.id;if(!X)return null;return{...this.options,query:{...t4(this.options.query),after:X}}}}class c$ extends r8{constructor($,X,Y,J){super($,X,Y,J);this.data=Y.data||[],this.has_more=Y.has_more||!1,this.last_id=Y.last_id||""}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let $=this.last_id;if(!$)return null;return{...this.options,query:{...t4(this.options.query),after:$}}}}var RY={jwt:"urn:ietf:params:oauth:token-type:jwt",id:"urn:ietf:params:oauth:token-type:id_token"},PY="urn:ietf:params:oauth:grant-type:token-exchange";class qX{constructor($,X){this.cachedToken=null,this.refreshPromise=null,this.tokenExchangeUrl="https://auth.openai.com/oauth/token",this.config=$,this.fetch=X??d8()}async getToken(){if(!this.cachedToken||this.isTokenExpired(this.cachedToken)){if(this.refreshPromise)return await this.refreshPromise;this.refreshPromise=this.refreshToken();try{return await this.refreshPromise}finally{this.refreshPromise=null}}if(this.needsRefresh(this.cachedToken)&&!this.refreshPromise)this.refreshPromise=this.refreshToken().finally(()=>{this.refreshPromise=null});return this.cachedToken.token}async refreshToken(){let $=await this.config.provider.getToken(),X=await this.fetch(this.tokenExchangeUrl,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({grant_type:PY,client_id:this.config.clientId,subject_token:$,subject_token_type:RY[this.config.provider.tokenType],identity_provider_id:this.config.identityProviderId,service_account_id:this.config.serviceAccountId})});if(!X.ok){let z=await X.text(),W=void 0;try{W=JSON.parse(z)}catch{}if(X.status===400||X.status===401||X.status===403)throw new x2(X.status,W,X.headers);throw o.generate(X.status,W,`Token exchange failed with status ${X.status}`,X.headers)}let Y=await X.json(),J=Y.expires_in||3600,Q=Date.now()+J*1000;return this.cachedToken={token:Y.access_token,expiresAt:Q},Y.access_token}isTokenExpired($){return Date.now()>=$.expiresAt}needsRefresh($){let Y=(this.config.refreshBufferSeconds??1200)*1000;return Date.now()>=$.expiresAt-Y}invalidateToken(){this.cachedToken=null,this.refreshPromise=null}}var UX=()=>{if(typeof File>"u"){let{process:$}=globalThis,X=typeof $?.versions?.node==="string"&&parseInt($.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(X?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function I2($,X,Y){return UX(),new File($,X??"unknown_file",Y)}function O6($){return(typeof $==="object"&&$!==null&&(("name"in $)&&$.name&&String($.name)||("url"in $)&&$.url&&String($.url)||("filename"in $)&&$.filename&&String($.filename)||("path"in $)&&$.path&&String($.path))||"").split(/[\\/]/).pop()||void 0}var o8=($)=>$!=null&&typeof $==="object"&&typeof $[Symbol.asyncIterator]==="function",E0=async($,X)=>{if(!wX($.body))return $;return{...$,body:await O9($.body,X)}},w$=async($,X)=>{return{...$,body:await O9($.body,X)}},F9=new WeakMap;function TY($){let X=typeof $==="function"?$:$.fetch,Y=F9.get(X);if(Y)return Y;let J=(async()=>{try{let Q="Response"in X?X.Response:(await X("data:,")).constructor,z=new FormData;if(z.toString()===await new Q(z).text())return!1;return!0}catch{return!0}})();return F9.set(X,J),J}var O9=async($,X)=>{if(!await TY(X))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let Y=new FormData;return await Promise.all(Object.entries($||{}).map(([J,Q])=>NX(Y,J,Q))),Y},E9=($)=>$ instanceof Blob&&("name"in $),_Y=($)=>typeof $==="object"&&$!==null&&($ instanceof Response||o8($)||E9($)),wX=($)=>{if(_Y($))return!0;if(Array.isArray($))return $.some(wX);if($&&typeof $==="object"){for(let X in $)if(wX($[X]))return!0}return!1},NX=async($,X,Y)=>{if(Y===void 0)return;if(Y==null)throw TypeError(`Received null for "${X}"; to pass null in FormData, you must use the string 'null'`);if(typeof Y==="string"||typeof Y==="number"||typeof Y==="boolean")$.append(X,String(Y));else if(Y instanceof Response)$.append(X,I2([await Y.blob()],O6(Y)));else if(o8(Y))$.append(X,I2([await new Response(c8(Y)).blob()],O6(Y)));else if(E9(Y))$.append(X,Y,O6(Y));else if(Array.isArray(Y))await Promise.all(Y.map((J)=>NX($,X+"[]",J)));else if(typeof Y==="object")await Promise.all(Object.entries(Y).map(([J,Q])=>NX($,`${X}[${J}]`,Q)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${Y} instead`)};var L9=($)=>$!=null&&typeof $==="object"&&typeof $.size==="number"&&typeof $.type==="string"&&typeof $.text==="function"&&typeof $.slice==="function"&&typeof $.arrayBuffer==="function",kY=($)=>$!=null&&typeof $==="object"&&typeof $.name==="string"&&typeof $.lastModified==="number"&&L9($),xY=($)=>$!=null&&typeof $==="object"&&typeof $.url==="string"&&typeof $.blob==="function";async function t8($,X,Y){if(UX(),$=await $,kY($)){if($ instanceof File)return $;return I2([await $.arrayBuffer()],$.name)}if(xY($)){let Q=await $.blob();return X||(X=new URL($.url).pathname.split(/[\\/]/).pop()),I2(await MX(Q),X,Y)}let J=await MX($);if(X||(X=O6($)),!Y?.type){let Q=J.find((z)=>typeof z==="object"&&("type"in z)&&z.type);if(typeof Q==="string")Y={...Y,type:Q}}return I2(J,X,Y)}async function MX($){let X=[];if(typeof $==="string"||ArrayBuffer.isView($)||$ instanceof ArrayBuffer)X.push($);else if(L9($))X.push($ instanceof Blob?$:await $.arrayBuffer());else if(o8($))for await(let Y of $)X.push(...await MX(Y));else{let Y=$?.constructor?.name;throw Error(`Unexpected data type: ${typeof $}${Y?`; constructor: ${Y}`:""}${fY($)}`)}return X}function fY($){if(typeof $!=="object"||$===null)return"";return`; props: [${Object.getOwnPropertyNames($).map((Y)=>`"${Y}"`).join(", ")}]`}class F{constructor($){this._client=$}}function Z9($){return $.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var D9=Object.freeze(Object.create(null)),IY=($=Z9)=>function(Y,...J){if(Y.length===1)return Y[0];let Q=!1,z=[],W=Y.reduce((B,q,H)=>{if(/[?#]/.test(q))Q=!0;let M=J[H],O=(Q?encodeURIComponent:$)(""+M);if(H!==J.length&&(M==null||typeof M==="object"&&M.toString===Object.getPrototypeOf(Object.getPrototypeOf(M.hasOwnProperty??D9)??D9)?.toString))O=M+"",z.push({start:B.length+q.length,length:O.length,error:`Value of type ${Object.prototype.toString.call(M).slice(8,-1)} is not a valid path parameter`});return B+q+(H===J.length?"":O)},""),G=W.split(/[?#]/,1)[0],V=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,K;while((K=V.exec(G))!==null)z.push({start:K.index,length:K[0].length,error:`Value "${K[0]}" can't be safely passed as a path parameter`});if(z.sort((B,q)=>B.start-q.start),z.length>0){let B=0,q=z.reduce((H,M)=>{let O=" ".repeat(M.start-B),_="^".repeat(M.length);return B=M.start+M.length,H+O+_},"");throw new T(`Path parameters result in path with invalid segments:
46
+ ${z.map((H)=>H.error).join(`
47
+ `)}
48
+ ${W}
49
+ ${q}`)}return W},U=IY(Z9);class y2 extends F{list($,X={},Y){return this._client.getAPIList(U`/chat/completions/${$}/messages`,h,{query:X,...Y})}}function E6($){return $!==void 0&&"function"in $&&$.function!==void 0}function L6($){return $?.$brand==="auto-parseable-response-format"}function n0($){return $?.$brand==="auto-parseable-tool"}function S9($,X){if(!X||!FX(X))return{...$,choices:$.choices.map((Y)=>{return C9(Y.message.tool_calls),{...Y,message:{...Y.message,parsed:null,...Y.message.tool_calls?{tool_calls:Y.message.tool_calls}:void 0}}})};return D6($,X)}function D6($,X){let Y=$.choices.map((J)=>{if(J.finish_reason==="length")throw new q6;if(J.finish_reason==="content_filter")throw new w6;return C9(J.message.tool_calls),{...J,message:{...J.message,...J.message.tool_calls?{tool_calls:J.message.tool_calls?.map((Q)=>hY(X,Q))??void 0}:void 0,parsed:J.message.content&&!J.message.refusal?gY(X,J.message.content):null}}});return{...$,choices:Y}}function gY($,X){if($.response_format?.type!=="json_schema")return null;if($.response_format?.type==="json_schema"){if("$parseRaw"in $.response_format)return $.response_format.$parseRaw(X);return JSON.parse(X)}return null}function hY($,X){let Y=$.tools?.find((J)=>E6(J)&&J.function?.name===X.function.name);return{...X,function:{...X.function,parsed_arguments:n0(Y)?Y.$parseRaw(X.function.arguments):Y?.function.strict?JSON.parse(X.function.arguments):null}}}function A9($,X){if(!$||!("tools"in $)||!$.tools)return!1;let Y=$.tools?.find((J)=>E6(J)&&J.function?.name===X.function.name);return E6(Y)&&(n0(Y)||Y?.function.strict||!1)}function FX($){if(L6($.response_format))return!0;return $.tools?.some((X)=>n0(X)||X.type==="function"&&X.function.strict===!0)??!1}function C9($){for(let X of $||[])if(X.type!=="function")throw new T(`Currently only \`function\` tool calls are supported; Received \`${X.type}\``)}function j9($){for(let X of $??[]){if(X.type!=="function")throw new T(`Currently only \`function\` tool types support auto-parsing; Received \`${X.type}\``);if(X.function.strict!==!0)throw new T(`The \`${X.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var v2=($)=>{return $?.role==="assistant"},OX=($)=>{return $?.role==="tool"};var EX,e8,$4,Z6,S6,X4,A6,z0,C6,Y4,J4,g2,R9;class a0{constructor(){EX.add(this),this.controller=new AbortController,e8.set(this,void 0),$4.set(this,()=>{}),Z6.set(this,()=>{}),S6.set(this,void 0),X4.set(this,()=>{}),A6.set(this,()=>{}),z0.set(this,{}),C6.set(this,!1),Y4.set(this,!1),J4.set(this,!1),g2.set(this,!1),b(this,e8,new Promise(($,X)=>{b(this,$4,$,"f"),b(this,Z6,X,"f")}),"f"),b(this,S6,new Promise(($,X)=>{b(this,X4,$,"f"),b(this,A6,X,"f")}),"f"),w(this,e8,"f").catch(()=>{}),w(this,S6,"f").catch(()=>{})}_run($){setTimeout(()=>{$().then(()=>{this._emitFinal(),this._emit("end")},w(this,EX,"m",R9).bind(this))},0)}_connected(){if(this.ended)return;w(this,$4,"f").call(this),this._emit("connect")}get ended(){return w(this,C6,"f")}get errored(){return w(this,Y4,"f")}get aborted(){return w(this,J4,"f")}abort(){this.controller.abort()}on($,X){return(w(this,z0,"f")[$]||(w(this,z0,"f")[$]=[])).push({listener:X}),this}off($,X){let Y=w(this,z0,"f")[$];if(!Y)return this;let J=Y.findIndex((Q)=>Q.listener===X);if(J>=0)Y.splice(J,1);return this}once($,X){return(w(this,z0,"f")[$]||(w(this,z0,"f")[$]=[])).push({listener:X,once:!0}),this}emitted($){return new Promise((X,Y)=>{if(b(this,g2,!0,"f"),$!=="error")this.once("error",Y);this.once($,X)})}async done(){b(this,g2,!0,"f"),await w(this,S6,"f")}_emit($,...X){if(w(this,C6,"f"))return;if($==="end")b(this,C6,!0,"f"),w(this,X4,"f").call(this);let Y=w(this,z0,"f")[$];if(Y)w(this,z0,"f")[$]=Y.filter((J)=>!J.once),Y.forEach(({listener:J})=>J(...X));if($==="abort"){let J=X[0];if(!w(this,g2,"f")&&!Y?.length)Promise.reject(J);w(this,Z6,"f").call(this,J),w(this,A6,"f").call(this,J),this._emit("end");return}if($==="error"){let J=X[0];if(!w(this,g2,"f")&&!Y?.length)Promise.reject(J);w(this,Z6,"f").call(this,J),w(this,A6,"f").call(this,J),this._emit("end")}}_emitFinal(){}}e8=new WeakMap,$4=new WeakMap,Z6=new WeakMap,S6=new WeakMap,X4=new WeakMap,A6=new WeakMap,z0=new WeakMap,C6=new WeakMap,Y4=new WeakMap,J4=new WeakMap,g2=new WeakMap,EX=new WeakSet,R9=function(X){if(b(this,Y4,!0,"f"),X instanceof Error&&X.name==="AbortError")X=new Y$;if(X instanceof Y$)return b(this,J4,!0,"f"),this._emit("abort",X);if(X instanceof T)return this._emit("error",X);if(X instanceof Error){let Y=new T(X.message);return Y.cause=X,this._emit("error",Y)}return this._emit("error",new T(String(X)))};function P9($){return typeof $.parse==="function"}var N$,LX,Q4,DX,ZX,SX,T9,_9,mY=10;class j6 extends a0{constructor(){super(...arguments);N$.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion($){this._chatCompletions.push($),this._emit("chatCompletion",$);let X=$.choices[0]?.message;if(X)this._addMessage(X);return $}_addMessage($,X=!0){if(!("content"in $))$.content=null;if(this.messages.push($),X){if(this._emit("message",$),OX($)&&$.content)this._emit("functionToolCallResult",$.content);else if(v2($)&&$.tool_calls){for(let Y of $.tool_calls)if(Y.type==="function")this._emit("functionToolCall",Y.function)}}}async finalChatCompletion(){await this.done();let $=this._chatCompletions[this._chatCompletions.length-1];if(!$)throw new T("stream ended without producing a ChatCompletion");return $}async finalContent(){return await this.done(),w(this,N$,"m",LX).call(this)}async finalMessage(){return await this.done(),w(this,N$,"m",Q4).call(this)}async finalFunctionToolCall(){return await this.done(),w(this,N$,"m",DX).call(this)}async finalFunctionToolCallResult(){return await this.done(),w(this,N$,"m",ZX).call(this)}async totalUsage(){return await this.done(),w(this,N$,"m",SX).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let $=this._chatCompletions[this._chatCompletions.length-1];if($)this._emit("finalChatCompletion",$);let X=w(this,N$,"m",Q4).call(this);if(X)this._emit("finalMessage",X);let Y=w(this,N$,"m",LX).call(this);if(Y)this._emit("finalContent",Y);let J=w(this,N$,"m",DX).call(this);if(J)this._emit("finalFunctionToolCall",J);let Q=w(this,N$,"m",ZX).call(this);if(Q!=null)this._emit("finalFunctionToolCallResult",Q);if(this._chatCompletions.some((z)=>z.usage))this._emit("totalUsage",w(this,N$,"m",SX).call(this))}async _createChatCompletion($,X,Y){let J=Y?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}w(this,N$,"m",T9).call(this,X);let Q=await $.chat.completions.create({...X,stream:!1},{...Y,signal:this.controller.signal});return this._connected(),this._addChatCompletion(D6(Q,X))}async _runChatCompletion($,X,Y){for(let J of X.messages)this._addMessage(J,!1);return await this._createChatCompletion($,X,Y)}async _runTools($,X,Y){let{tool_choice:Q="auto",stream:z,...W}=X,G=typeof Q!=="string"&&Q.type==="function"&&Q?.function?.name,{maxChatCompletions:V=mY}=Y||{},K=X.tools.map((H)=>{if(n0(H)){if(!H.$callback)throw new T("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:H.$callback,name:H.function.name,description:H.function.description||"",parameters:H.function.parameters,parse:H.$parseRaw,strict:!0}}}return H}),B={};for(let H of K)if(H.type==="function")B[H.function.name||H.function.function.name]=H.function;let q="tools"in X?K.map((H)=>H.type==="function"?{type:"function",function:{name:H.function.name||H.function.function.name,parameters:H.function.parameters,description:H.function.description,strict:H.function.strict}}:H):void 0;for(let H of X.messages)this._addMessage(H,!1);for(let H=0;H<V;++H){let O=(await this._createChatCompletion($,{...W,tool_choice:Q,tools:q,messages:[...this.messages]},Y)).choices[0]?.message;if(!O)throw new T("missing message in ChatCompletion response");if(!O.tool_calls?.length)return;for(let _ of O.tool_calls){if(_.type!=="function")continue;let R=_.id,{name:L,arguments:A}=_.function,E=B[L];if(!E){let i=`Invalid tool_call: ${JSON.stringify(L)}. Available options are: ${Object.keys(B).map((H$)=>JSON.stringify(H$)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:R,content:i});continue}else if(G&&G!==L){let i=`Invalid tool_call: ${JSON.stringify(L)}. ${JSON.stringify(G)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:R,content:i});continue}let P;try{P=P9(E)?await E.parse(A):A}catch(i){let H$=i instanceof Error?i.message:String(i);this._addMessage({role:"tool",tool_call_id:R,content:H$});continue}let l=await E.function(P,this),p=w(this,N$,"m",_9).call(this,l);if(this._addMessage({role:"tool",tool_call_id:R,content:p}),G)return}}return}}N$=new WeakSet,LX=function(){return w(this,N$,"m",Q4).call(this).content??null},Q4=function(){let X=this.messages.length;while(X-- >0){let Y=this.messages[X];if(v2(Y))return{...Y,content:Y.content??null,refusal:Y.refusal??null}}throw new T("stream ended without producing a ChatCompletionMessage with role=assistant")},DX=function(){for(let X=this.messages.length-1;X>=0;X--){let Y=this.messages[X];if(v2(Y)&&Y?.tool_calls?.length)return Y.tool_calls.filter((J)=>J.type==="function").at(-1)?.function}return},ZX=function(){for(let X=this.messages.length-1;X>=0;X--){let Y=this.messages[X];if(OX(Y)&&Y.content!=null&&typeof Y.content==="string"&&this.messages.some((J)=>J.role==="assistant"&&J.tool_calls?.some((Q)=>Q.type==="function"&&Q.id===Y.tool_call_id)))return Y.content}return},SX=function(){let X={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:Y}of this._chatCompletions)if(Y)X.completion_tokens+=Y.completion_tokens,X.prompt_tokens+=Y.prompt_tokens,X.total_tokens+=Y.total_tokens;return X},T9=function(X){if(X.n!=null&&X.n>1)throw new T("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},_9=function(X){return typeof X==="string"?X:X===void 0?"undefined":JSON.stringify(X)};class R6 extends j6{static runTools($,X,Y){let J=new R6,Q={...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"runTools"}};return J._run(()=>J._runTools($,X,Q)),J}_addMessage($,X=!0){if(super._addMessage($,X),v2($)&&$.content)this._emit("content",$.content)}}var W$={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class k9 extends Error{}class x9 extends Error{}function uY($,X=W$.ALL){if(typeof $!=="string")throw TypeError(`expecting str, got ${typeof $}`);if(!$.trim())throw Error(`${$} is empty`);return dY($.trim(),X)}var dY=($,X)=>{let Y=$.length,J=0,Q=(H)=>{throw new k9(`${H} at position ${J}`)},z=(H)=>{throw new x9(`${H} at position ${J}`)},W=()=>{if(q(),J>=Y)Q("Unexpected end of input");if($[J]==='"')return G();if($[J]==="{")return V();if($[J]==="[")return K();if($.substring(J,J+4)==="null"||W$.NULL&X&&Y-J<4&&"null".startsWith($.substring(J)))return J+=4,null;if($.substring(J,J+4)==="true"||W$.BOOL&X&&Y-J<4&&"true".startsWith($.substring(J)))return J+=4,!0;if($.substring(J,J+5)==="false"||W$.BOOL&X&&Y-J<5&&"false".startsWith($.substring(J)))return J+=5,!1;if($.substring(J,J+8)==="Infinity"||W$.INFINITY&X&&Y-J<8&&"Infinity".startsWith($.substring(J)))return J+=8,1/0;if($.substring(J,J+9)==="-Infinity"||W$.MINUS_INFINITY&X&&1<Y-J&&Y-J<9&&"-Infinity".startsWith($.substring(J)))return J+=9,-1/0;if($.substring(J,J+3)==="NaN"||W$.NAN&X&&Y-J<3&&"NaN".startsWith($.substring(J)))return J+=3,NaN;return B()},G=()=>{let H=J,M=!1;J++;while(J<Y&&($[J]!=='"'||M&&$[J-1]==="\\"))M=$[J]==="\\"?!M:!1,J++;if($.charAt(J)=='"')try{return JSON.parse($.substring(H,++J-Number(M)))}catch(O){z(String(O))}else if(W$.STR&X)try{return JSON.parse($.substring(H,J-Number(M))+'"')}catch(O){return JSON.parse($.substring(H,$.lastIndexOf("\\"))+'"')}Q("Unterminated string literal")},V=()=>{J++,q();let H={};try{while($[J]!=="}"){if(q(),J>=Y&&W$.OBJ&X)return H;let M=G();q(),J++;try{let O=W();Object.defineProperty(H,M,{value:O,writable:!0,enumerable:!0,configurable:!0})}catch(O){if(W$.OBJ&X)return H;else throw O}if(q(),$[J]===",")J++}}catch(M){if(W$.OBJ&X)return H;else Q("Expected '}' at end of object")}return J++,H},K=()=>{J++;let H=[];try{while($[J]!=="]")if(H.push(W()),q(),$[J]===",")J++}catch(M){if(W$.ARR&X)return H;Q("Expected ']' at end of array")}return J++,H},B=()=>{if(J===0){if($==="-"&&W$.NUM&X)Q("Not sure what '-' is");try{return JSON.parse($)}catch(M){if(W$.NUM&X)try{if($[$.length-1]===".")return JSON.parse($.substring(0,$.lastIndexOf(".")));return JSON.parse($.substring(0,$.lastIndexOf("e")))}catch(O){}z(String(M))}}let H=J;if($[J]==="-")J++;while($[J]&&!",]}".includes($[J]))J++;if(J==Y&&!(W$.NUM&X))Q("Unterminated number literal");try{return JSON.parse($.substring(H,J))}catch(M){if($.substring(H,J)==="-"&&W$.NUM&X)Q("Not sure what '-' is");try{return JSON.parse($.substring(H,$.lastIndexOf("e")))}catch(O){z(String(O))}}},q=()=>{while(J<Y&&`
50
+ \r `.includes($[J]))J++};return W()},AX=($)=>uY($,W$.ALL^W$.NUM);var Q$,W0,h2,L0,CX,z4,jX,RX,PX,W4,TX,f9;class D0 extends j6{constructor($){super();Q$.add(this),W0.set(this,void 0),h2.set(this,void 0),L0.set(this,void 0),b(this,W0,$,"f"),b(this,h2,[],"f")}get currentChatCompletionSnapshot(){return w(this,L0,"f")}static fromReadableStream($){let X=new D0(null);return X._run(()=>X._fromReadableStream($)),X}static createChatCompletion($,X,Y){let J=new D0(X);return J._run(()=>J._runChatCompletion($,{...X,stream:!0},{...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"stream"}})),J}async _createChatCompletion($,X,Y){super._createChatCompletion;let J=Y?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}w(this,Q$,"m",CX).call(this);let Q=await $.chat.completions.create({...X,stream:!0},{...Y,signal:this.controller.signal});this._connected();for await(let z of Q)w(this,Q$,"m",jX).call(this,z);if(Q.controller.signal?.aborted)throw new Y$;return this._addChatCompletion(w(this,Q$,"m",W4).call(this))}async _fromReadableStream($,X){let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}w(this,Q$,"m",CX).call(this),this._connected();let J=S$.fromReadableStream($,this.controller),Q;for await(let z of J){if(Q&&Q!==z.id)this._addChatCompletion(w(this,Q$,"m",W4).call(this));w(this,Q$,"m",jX).call(this,z),Q=z.id}if(J.controller.signal?.aborted)throw new Y$;return this._addChatCompletion(w(this,Q$,"m",W4).call(this))}[(W0=new WeakMap,h2=new WeakMap,L0=new WeakMap,Q$=new WeakSet,CX=function(){if(this.ended)return;b(this,L0,void 0,"f")},z4=function(X){let Y=w(this,h2,"f")[X.index];if(Y)return Y;return Y={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},w(this,h2,"f")[X.index]=Y,Y},jX=function(X){if(this.ended)return;let Y=w(this,Q$,"m",f9).call(this,X);this._emit("chunk",X,Y);for(let J of X.choices){let Q=Y.choices[J.index];if(J.delta.content!=null&&Q.message?.role==="assistant"&&Q.message?.content)this._emit("content",J.delta.content,Q.message.content),this._emit("content.delta",{delta:J.delta.content,snapshot:Q.message.content,parsed:Q.message.parsed});if(J.delta.refusal!=null&&Q.message?.role==="assistant"&&Q.message?.refusal)this._emit("refusal.delta",{delta:J.delta.refusal,snapshot:Q.message.refusal});if(J.logprobs?.content!=null&&Q.message?.role==="assistant")this._emit("logprobs.content.delta",{content:J.logprobs?.content,snapshot:Q.logprobs?.content??[]});if(J.logprobs?.refusal!=null&&Q.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:J.logprobs?.refusal,snapshot:Q.logprobs?.refusal??[]});let z=w(this,Q$,"m",z4).call(this,Q);if(Q.finish_reason){if(w(this,Q$,"m",PX).call(this,Q),z.current_tool_call_index!=null)w(this,Q$,"m",RX).call(this,Q,z.current_tool_call_index)}for(let W of J.delta.tool_calls??[]){if(z.current_tool_call_index!==W.index){if(w(this,Q$,"m",PX).call(this,Q),z.current_tool_call_index!=null)w(this,Q$,"m",RX).call(this,Q,z.current_tool_call_index)}z.current_tool_call_index=W.index}for(let W of J.delta.tool_calls??[]){let G=Q.message.tool_calls?.[W.index];if(!G?.type)continue;if(G?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:G.function?.name,index:W.index,arguments:G.function.arguments,parsed_arguments:G.function.parsed_arguments,arguments_delta:W.function?.arguments??""});else I9(G?.type)}}},RX=function(X,Y){if(w(this,Q$,"m",z4).call(this,X).done_tool_calls.has(Y))return;let Q=X.message.tool_calls?.[Y];if(!Q)throw Error("no tool call snapshot");if(!Q.type)throw Error("tool call snapshot missing `type`");if(Q.type==="function"){let z=w(this,W0,"f")?.tools?.find((W)=>E6(W)&&W.function.name===Q.function.name);this._emit("tool_calls.function.arguments.done",{name:Q.function.name,index:Y,arguments:Q.function.arguments,parsed_arguments:n0(z)?z.$parseRaw(Q.function.arguments):z?.function.strict?JSON.parse(Q.function.arguments):null})}else I9(Q.type)},PX=function(X){let Y=w(this,Q$,"m",z4).call(this,X);if(X.message.content&&!Y.content_done){Y.content_done=!0;let J=w(this,Q$,"m",TX).call(this);this._emit("content.done",{content:X.message.content,parsed:J?J.$parseRaw(X.message.content):null})}if(X.message.refusal&&!Y.refusal_done)Y.refusal_done=!0,this._emit("refusal.done",{refusal:X.message.refusal});if(X.logprobs?.content&&!Y.logprobs_content_done)Y.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:X.logprobs.content});if(X.logprobs?.refusal&&!Y.logprobs_refusal_done)Y.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:X.logprobs.refusal})},W4=function(){if(this.ended)throw new T("stream has ended, this shouldn't happen");let X=w(this,L0,"f");if(!X)throw new T("request ended without sending any chunks");return b(this,L0,void 0,"f"),b(this,h2,[],"f"),cY(X,w(this,W0,"f"))},TX=function(){let X=w(this,W0,"f")?.response_format;if(L6(X))return X;return null},f9=function(X){var Y,J,Q,z;let W=w(this,L0,"f"),{choices:G,...V}=X;if(!W)W=b(this,L0,{...V,choices:[]},"f");else Object.assign(W,V);for(let{delta:K,finish_reason:B,index:q,logprobs:H=null,...M}of X.choices){let O=W.choices[q];if(!O)O=W.choices[q]={finish_reason:B,index:q,message:{},logprobs:H,...M};if(H)if(!O.logprobs)O.logprobs=Object.assign({},H);else{let{content:l,refusal:p,...i}=H;if(b9(i),Object.assign(O.logprobs,i),l)(Y=O.logprobs).content??(Y.content=[]),O.logprobs.content.push(...l);if(p)(J=O.logprobs).refusal??(J.refusal=[]),O.logprobs.refusal.push(...p)}if(B){if(O.finish_reason=B,w(this,W0,"f")&&FX(w(this,W0,"f"))){if(B==="length")throw new q6;if(B==="content_filter")throw new w6}}if(Object.assign(O,M),!K)continue;let{content:_,refusal:R,function_call:L,role:A,tool_calls:E,...P}=K;if(b9(P),Object.assign(O.message,P),R)O.message.refusal=(O.message.refusal||"")+R;if(A)O.message.role=A;if(L)if(!O.message.function_call)O.message.function_call=L;else{if(L.name)O.message.function_call.name=L.name;if(L.arguments)(Q=O.message.function_call).arguments??(Q.arguments=""),O.message.function_call.arguments+=L.arguments}if(_){if(O.message.content=(O.message.content||"")+_,!O.message.refusal&&w(this,Q$,"m",TX).call(this))O.message.parsed=AX(O.message.content)}if(E){if(!O.message.tool_calls)O.message.tool_calls=[];for(let{index:l,id:p,type:i,function:H$,...n}of E){let u=(z=O.message.tool_calls)[l]??(z[l]={});if(Object.assign(u,n),p)u.id=p;if(i)u.type=i;if(H$)u.function??(u.function={name:H$.name??"",arguments:""});if(H$?.name)u.function.name=H$.name;if(H$?.arguments){if(u.function.arguments+=H$.arguments,A9(w(this,W0,"f"),u))u.function.parsed_arguments=AX(u.function.arguments)}}}}return W},Symbol.asyncIterator)](){let $=[],X=[],Y=!1;return this.on("chunk",(J)=>{let Q=X.shift();if(Q)Q.resolve(J);else $.push(J)}),this.on("end",()=>{Y=!0;for(let J of X)J.resolve(void 0);X.length=0}),this.on("abort",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),this.on("error",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),{next:async()=>{if(!$.length){if(Y)return{value:void 0,done:!0};return new Promise((Q,z)=>X.push({resolve:Q,reject:z})).then((Q)=>Q?{value:Q,done:!1}:{value:void 0,done:!0})}return{value:$.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new S$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function cY($,X){let{id:Y,choices:J,created:Q,model:z,system_fingerprint:W,...G}=$,V={...G,id:Y,choices:J.map(({message:K,finish_reason:B,index:q,logprobs:H,...M})=>{if(!B)throw new T(`missing finish_reason for choice ${q}`);let{content:O=null,function_call:_,tool_calls:R,...L}=K,A=K.role;if(!A)throw new T(`missing role for choice ${q}`);if(_){let{arguments:E,name:P}=_;if(E==null)throw new T(`missing function_call.arguments for choice ${q}`);if(!P)throw new T(`missing function_call.name for choice ${q}`);return{...M,message:{content:O,function_call:{arguments:E,name:P},role:A,refusal:K.refusal??null},finish_reason:B,index:q,logprobs:H}}if(R)return{...M,index:q,finish_reason:B,logprobs:H,message:{...L,role:A,content:O,refusal:K.refusal??null,tool_calls:R.map((E,P)=>{let{function:l,type:p,id:i,...H$}=E,{arguments:n,name:u,...R$}=l||{};if(i==null)throw new T(`missing choices[${q}].tool_calls[${P}].id
51
+ ${G4($)}`);if(p==null)throw new T(`missing choices[${q}].tool_calls[${P}].type
52
+ ${G4($)}`);if(u==null)throw new T(`missing choices[${q}].tool_calls[${P}].function.name
53
+ ${G4($)}`);if(n==null)throw new T(`missing choices[${q}].tool_calls[${P}].function.arguments
54
+ ${G4($)}`);return{...H$,id:i,type:p,function:{...R$,name:u,arguments:n}}})}};return{...M,message:{...L,content:O,role:A,refusal:K.refusal??null},finish_reason:B,index:q,logprobs:H}}),created:Q,model:z,object:"chat.completion",...W?{system_fingerprint:W}:{}};return S9(V,X)}function G4($){return JSON.stringify($)}function b9($){return}function I9($){}class m2 extends D0{static fromReadableStream($){let X=new m2(null);return X._run(()=>X._fromReadableStream($)),X}static runTools($,X,Y){let J=new m2(X),Q={...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"runTools"}};return J._run(()=>J._runTools($,X,Q)),J}}class Z0 extends F{constructor(){super(...arguments);this.messages=new y2(this._client)}create($,X){return this._client.post("/chat/completions",{body:$,...X,stream:$.stream??!1})}retrieve($,X){return this._client.get(U`/chat/completions/${$}`,X)}update($,X,Y){return this._client.post(U`/chat/completions/${$}`,{body:X,...Y})}list($={},X){return this._client.getAPIList("/chat/completions",h,{query:$,...X})}delete($,X){return this._client.delete(U`/chat/completions/${$}`,X)}parse($,X){return j9($.tools),this._client.chat.completions.create($,{...X,headers:{...X?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((Y)=>D6(Y,$))}runTools($,X){if($.stream)return m2.runTools(this._client,$,X);return R6.runTools(this._client,$,X)}stream($,X){return D0.createChatCompletion(this._client,$,X)}}Z0.Messages=y2;class r0 extends F{constructor(){super(...arguments);this.completions=new Z0(this._client)}}r0.Completions=Z0;var y9=Symbol("brand.privateNullableHeaders");function*pY($){if(!$)return;if(y9 in $){let{values:J,nulls:Q}=$;yield*J.entries();for(let z of Q)yield[z,null];return}let X=!1,Y;if($ instanceof Headers)Y=$.entries();else if(o4($))Y=$;else X=!0,Y=Object.entries($??{});for(let J of Y){let Q=J[0];if(typeof Q!=="string")throw TypeError("expected header name to be a string");let z=o4(J[1])?J[1]:[J[1]],W=!1;for(let G of z){if(G===void 0)continue;if(X&&!W)W=!0,yield[Q,null];yield[Q,G]}}}var Z=($)=>{let X=new Headers,Y=new Set;for(let J of $){let Q=new Set;for(let[z,W]of pY(J)){let G=z.toLowerCase();if(!Q.has(G))X.delete(z),Q.add(G);if(W===null)X.delete(z),Y.add(G);else X.append(z,W),Y.delete(G)}}return{[y9]:!0,values:X,nulls:Y}};class P6 extends F{create($,X){return this._client.post("/audio/speech",{body:$,...X,headers:Z([{Accept:"application/octet-stream"},X?.headers]),__binaryResponse:!0})}}class T6 extends F{create($,X){return this._client.post("/audio/transcriptions",w$({body:$,...X,stream:$.stream??!1,__metadata:{model:$.model}},this._client))}}class _6 extends F{create($,X){return this._client.post("/audio/translations",w$({body:$,...X,__metadata:{model:$.model}},this._client))}}class G0 extends F{constructor(){super(...arguments);this.transcriptions=new T6(this._client),this.translations=new _6(this._client),this.speech=new P6(this._client)}}G0.Transcriptions=T6;G0.Translations=_6;G0.Speech=P6;class u2 extends F{create($,X){return this._client.post("/batches",{body:$,...X})}retrieve($,X){return this._client.get(U`/batches/${$}`,X)}list($={},X){return this._client.getAPIList("/batches",h,{query:$,...X})}cancel($,X){return this._client.post(U`/batches/${$}/cancel`,X)}}class k6 extends F{create($,X){return this._client.post("/assistants",{body:$,...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}retrieve($,X){return this._client.get(U`/assistants/${$}`,{...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}update($,X,Y){return this._client.post(U`/assistants/${$}`,{body:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}list($={},X){return this._client.getAPIList("/assistants",h,{query:$,...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}delete($,X){return this._client.delete(U`/assistants/${$}`,{...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}}class x6 extends F{create($,X){return this._client.post("/realtime/sessions",{body:$,...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}}class f6 extends F{create($,X){return this._client.post("/realtime/transcription_sessions",{body:$,...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}}class s0 extends F{constructor(){super(...arguments);this.sessions=new x6(this._client),this.transcriptionSessions=new f6(this._client)}}s0.Sessions=x6;s0.TranscriptionSessions=f6;class b6 extends F{create($,X){return this._client.post("/chatkit/sessions",{body:$,...X,headers:Z([{"OpenAI-Beta":"chatkit_beta=v1"},X?.headers])})}cancel($,X){return this._client.post(U`/chatkit/sessions/${$}/cancel`,{...X,headers:Z([{"OpenAI-Beta":"chatkit_beta=v1"},X?.headers])})}}class I6 extends F{retrieve($,X){return this._client.get(U`/chatkit/threads/${$}`,{...X,headers:Z([{"OpenAI-Beta":"chatkit_beta=v1"},X?.headers])})}list($={},X){return this._client.getAPIList("/chatkit/threads",c$,{query:$,...X,headers:Z([{"OpenAI-Beta":"chatkit_beta=v1"},X?.headers])})}delete($,X){return this._client.delete(U`/chatkit/threads/${$}`,{...X,headers:Z([{"OpenAI-Beta":"chatkit_beta=v1"},X?.headers])})}listItems($,X={},Y){return this._client.getAPIList(U`/chatkit/threads/${$}/items`,c$,{query:X,...Y,headers:Z([{"OpenAI-Beta":"chatkit_beta=v1"},Y?.headers])})}}class o0 extends F{constructor(){super(...arguments);this.sessions=new b6(this._client),this.threads=new I6(this._client)}}o0.Sessions=b6;o0.Threads=I6;class y6 extends F{create($,X,Y){return this._client.post(U`/threads/${$}/messages`,{body:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}retrieve($,X,Y){let{thread_id:J}=X;return this._client.get(U`/threads/${J}/messages/${$}`,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}update($,X,Y){let{thread_id:J,...Q}=X;return this._client.post(U`/threads/${J}/messages/${$}`,{body:Q,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}list($,X={},Y){return this._client.getAPIList(U`/threads/${$}/messages`,h,{query:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}delete($,X,Y){let{thread_id:J}=X;return this._client.delete(U`/threads/${J}/messages/${$}`,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}}class v6 extends F{retrieve($,X,Y){let{thread_id:J,run_id:Q,...z}=X;return this._client.get(U`/threads/${J}/runs/${Q}/steps/${$}`,{query:z,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}list($,X,Y){let{thread_id:J,...Q}=X;return this._client.getAPIList(U`/threads/${J}/runs/${$}/steps`,h,{query:Q,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}}var v9=($)=>{if(typeof Buffer<"u"){let X=Buffer.from($,"base64");return Array.from(new Float32Array(X.buffer,X.byteOffset,X.length/Float32Array.BYTES_PER_ELEMENT))}else{let X=atob($),Y=X.length,J=new Uint8Array(Y);for(let Q=0;Q<Y;Q++)J[Q]=X.charCodeAt(Q);return Array.from(new Float32Array(J.buffer))}};var S0=($)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[$]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.($)?.trim();return};var V$,e0,_X,l$,V4,b$,$2,d2,t0,B4,A$,H4,K4,m6,g6,h6,g9,h9,m9,u9,d9,c9,l9;class A0 extends a0{constructor(){super(...arguments);V$.add(this),_X.set(this,[]),l$.set(this,{}),V4.set(this,{}),b$.set(this,void 0),$2.set(this,void 0),d2.set(this,void 0),t0.set(this,void 0),B4.set(this,void 0),A$.set(this,void 0),H4.set(this,void 0),K4.set(this,void 0),m6.set(this,void 0)}[(_X=new WeakMap,l$=new WeakMap,V4=new WeakMap,b$=new WeakMap,$2=new WeakMap,d2=new WeakMap,t0=new WeakMap,B4=new WeakMap,A$=new WeakMap,H4=new WeakMap,K4=new WeakMap,m6=new WeakMap,V$=new WeakSet,Symbol.asyncIterator)](){let $=[],X=[],Y=!1;return this.on("event",(J)=>{let Q=X.shift();if(Q)Q.resolve(J);else $.push(J)}),this.on("end",()=>{Y=!0;for(let J of X)J.resolve(void 0);X.length=0}),this.on("abort",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),this.on("error",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),{next:async()=>{if(!$.length){if(Y)return{value:void 0,done:!0};return new Promise((Q,z)=>X.push({resolve:Q,reject:z})).then((Q)=>Q?{value:Q,done:!1}:{value:void 0,done:!0})}return{value:$.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream($){let X=new e0;return X._run(()=>X._fromReadableStream($)),X}async _fromReadableStream($,X){let Y=X?.signal;if(Y){if(Y.aborted)this.controller.abort();Y.addEventListener("abort",()=>this.controller.abort())}this._connected();let J=S$.fromReadableStream($,this.controller);for await(let Q of J)w(this,V$,"m",g6).call(this,Q);if(J.controller.signal?.aborted)throw new Y$;return this._addRun(w(this,V$,"m",h6).call(this))}toReadableStream(){return new S$(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream($,X,Y,J){let Q=new e0;return Q._run(()=>Q._runToolAssistantStream($,X,Y,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),Q}async _createToolAssistantStream($,X,Y,J){let Q=J?.signal;if(Q){if(Q.aborted)this.controller.abort();Q.addEventListener("abort",()=>this.controller.abort())}let z={...Y,stream:!0},W=await $.submitToolOutputs(X,z,{...J,signal:this.controller.signal});this._connected();for await(let G of W)w(this,V$,"m",g6).call(this,G);if(W.controller.signal?.aborted)throw new Y$;return this._addRun(w(this,V$,"m",h6).call(this))}static createThreadAssistantStream($,X,Y){let J=new e0;return J._run(()=>J._threadAssistantStream($,X,{...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"stream"}})),J}static createAssistantStream($,X,Y,J){let Q=new e0;return Q._run(()=>Q._runAssistantStream($,X,Y,{...J,headers:{...J?.headers,"X-Stainless-Helper-Method":"stream"}})),Q}currentEvent(){return w(this,H4,"f")}currentRun(){return w(this,K4,"f")}currentMessageSnapshot(){return w(this,b$,"f")}currentRunStepSnapshot(){return w(this,m6,"f")}async finalRunSteps(){return await this.done(),Object.values(w(this,l$,"f"))}async finalMessages(){return await this.done(),Object.values(w(this,V4,"f"))}async finalRun(){if(await this.done(),!w(this,$2,"f"))throw Error("Final run was not received.");return w(this,$2,"f")}async _createThreadAssistantStream($,X,Y){let J=Y?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}let Q={...X,stream:!0},z=await $.createAndRun(Q,{...Y,signal:this.controller.signal});this._connected();for await(let W of z)w(this,V$,"m",g6).call(this,W);if(z.controller.signal?.aborted)throw new Y$;return this._addRun(w(this,V$,"m",h6).call(this))}async _createAssistantStream($,X,Y,J){let Q=J?.signal;if(Q){if(Q.aborted)this.controller.abort();Q.addEventListener("abort",()=>this.controller.abort())}let z={...Y,stream:!0},W=await $.create(X,z,{...J,signal:this.controller.signal});this._connected();for await(let G of W)w(this,V$,"m",g6).call(this,G);if(W.controller.signal?.aborted)throw new Y$;return this._addRun(w(this,V$,"m",h6).call(this))}static accumulateDelta($,X){for(let[Y,J]of Object.entries(X)){if(!$.hasOwnProperty(Y)){$[Y]=J;continue}let Q=$[Y];if(Q===null||Q===void 0){$[Y]=J;continue}if(Y==="index"||Y==="type"){$[Y]=J;continue}if(typeof Q==="string"&&typeof J==="string")Q+=J;else if(typeof Q==="number"&&typeof J==="number")Q+=J;else if(N6(Q)&&N6(J))Q=this.accumulateDelta(Q,J);else if(Array.isArray(Q)&&Array.isArray(J)){if(Q.every((z)=>typeof z==="string"||typeof z==="number")){Q.push(...J);continue}for(let z of J){if(!N6(z))throw Error(`Expected array delta entry to be an object but got: ${z}`);let W=z.index;if(W==null)throw console.error(z),Error("Expected array delta entry to have an `index` property");if(typeof W!=="number")throw Error(`Expected array delta entry \`index\` property to be a number but got ${W}`);let G=Q[W];if(G==null)Q.push(z);else Q[W]=this.accumulateDelta(G,z)}continue}else throw Error(`Unhandled record type: ${Y}, deltaValue: ${J}, accValue: ${Q}`);$[Y]=Q}return $}_addRun($){return $}async _threadAssistantStream($,X,Y){return await this._createThreadAssistantStream(X,$,Y)}async _runAssistantStream($,X,Y,J){return await this._createAssistantStream(X,$,Y,J)}async _runToolAssistantStream($,X,Y,J){return await this._createToolAssistantStream(X,$,Y,J)}}e0=A0,g6=function(X){if(this.ended)return;switch(b(this,H4,X,"f"),w(this,V$,"m",m9).call(this,X),X.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":w(this,V$,"m",l9).call(this,X);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":w(this,V$,"m",h9).call(this,X);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":w(this,V$,"m",g9).call(this,X);break;case"error":throw Error("Encountered an error event in event processing - errors should be processed earlier");default:QJ(X)}},h6=function(){if(this.ended)throw new T("stream has ended, this shouldn't happen");if(!w(this,$2,"f"))throw Error("Final run has not been received");return w(this,$2,"f")},g9=function(X){let[Y,J]=w(this,V$,"m",d9).call(this,X,w(this,b$,"f"));b(this,b$,Y,"f"),w(this,V4,"f")[Y.id]=Y;for(let Q of J){let z=Y.content[Q.index];if(z?.type=="text")this._emit("textCreated",z.text)}switch(X.event){case"thread.message.created":this._emit("messageCreated",X.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",X.data.delta,Y),X.data.delta.content)for(let Q of X.data.delta.content){if(Q.type=="text"&&Q.text){let z=Q.text,W=Y.content[Q.index];if(W&&W.type=="text")this._emit("textDelta",z,W.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(Q.index!=w(this,d2,"f")){if(w(this,t0,"f"))switch(w(this,t0,"f").type){case"text":this._emit("textDone",w(this,t0,"f").text,w(this,b$,"f"));break;case"image_file":this._emit("imageFileDone",w(this,t0,"f").image_file,w(this,b$,"f"));break}b(this,d2,Q.index,"f")}b(this,t0,Y.content[Q.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(w(this,d2,"f")!==void 0){let Q=X.data.content[w(this,d2,"f")];if(Q)switch(Q.type){case"image_file":this._emit("imageFileDone",Q.image_file,w(this,b$,"f"));break;case"text":this._emit("textDone",Q.text,w(this,b$,"f"));break}}if(w(this,b$,"f"))this._emit("messageDone",X.data);b(this,b$,void 0,"f")}},h9=function(X){let Y=w(this,V$,"m",u9).call(this,X);switch(b(this,m6,Y,"f"),X.event){case"thread.run.step.created":this._emit("runStepCreated",X.data);break;case"thread.run.step.delta":let J=X.data.delta;if(J.step_details&&J.step_details.type=="tool_calls"&&J.step_details.tool_calls&&Y.step_details.type=="tool_calls")for(let z of J.step_details.tool_calls)if(z.index==w(this,B4,"f"))this._emit("toolCallDelta",z,Y.step_details.tool_calls[z.index]);else{if(w(this,A$,"f"))this._emit("toolCallDone",w(this,A$,"f"));if(b(this,B4,z.index,"f"),b(this,A$,Y.step_details.tool_calls[z.index],"f"),w(this,A$,"f"))this._emit("toolCallCreated",w(this,A$,"f"))}this._emit("runStepDelta",X.data.delta,Y);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(b(this,m6,void 0,"f"),X.data.step_details.type=="tool_calls"){if(w(this,A$,"f"))this._emit("toolCallDone",w(this,A$,"f")),b(this,A$,void 0,"f")}this._emit("runStepDone",X.data,Y);break;case"thread.run.step.in_progress":break}},m9=function(X){w(this,_X,"f").push(X),this._emit("event",X)},u9=function(X){switch(X.event){case"thread.run.step.created":return w(this,l$,"f")[X.data.id]=X.data,X.data;case"thread.run.step.delta":let Y=w(this,l$,"f")[X.data.id];if(!Y)throw Error("Received a RunStepDelta before creation of a snapshot");let J=X.data;if(J.delta){let Q=e0.accumulateDelta(Y,J.delta);w(this,l$,"f")[X.data.id]=Q}return w(this,l$,"f")[X.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":w(this,l$,"f")[X.data.id]=X.data;break}if(w(this,l$,"f")[X.data.id])return w(this,l$,"f")[X.data.id];throw Error("No snapshot available")},d9=function(X,Y){let J=[];switch(X.event){case"thread.message.created":return[X.data,J];case"thread.message.delta":if(!Y)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let Q=X.data;if(Q.delta.content)for(let z of Q.delta.content)if(z.index in Y.content){let W=Y.content[z.index];Y.content[z.index]=w(this,V$,"m",c9).call(this,z,W)}else Y.content[z.index]=z,J.push(z);return[Y,J];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(Y)return[Y,J];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},c9=function(X,Y){return e0.accumulateDelta(Y,X)},l9=function(X){switch(b(this,K4,X.data,"f"),X.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":if(b(this,$2,X.data,"f"),w(this,A$,"f"))this._emit("toolCallDone",w(this,A$,"f")),b(this,A$,void 0,"f");break;case"thread.run.cancelling":break}};function QJ($){}class c2 extends F{constructor(){super(...arguments);this.steps=new v6(this._client)}create($,X,Y){let{include:J,...Q}=X;return this._client.post(U`/threads/${$}/runs`,{query:{include:J},body:Q,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers]),stream:X.stream??!1,__synthesizeEventData:!0})}retrieve($,X,Y){let{thread_id:J}=X;return this._client.get(U`/threads/${J}/runs/${$}`,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}update($,X,Y){let{thread_id:J,...Q}=X;return this._client.post(U`/threads/${J}/runs/${$}`,{body:Q,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}list($,X={},Y){return this._client.getAPIList(U`/threads/${$}/runs`,h,{query:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}cancel($,X,Y){let{thread_id:J}=X;return this._client.post(U`/threads/${J}/runs/${$}/cancel`,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}async createAndPoll($,X,Y){let J=await this.create($,X,Y);return await this.poll(J.id,{thread_id:$},Y)}createAndStream($,X,Y){return A0.createAssistantStream($,this._client.beta.threads.runs,X,Y)}async poll($,X,Y){let J=Z([Y?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":Y?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:Q,response:z}=await this.retrieve($,X,{...Y,headers:{...Y?.headers,...J}}).withResponse();switch(Q.status){case"queued":case"in_progress":case"cancelling":let W=5000;if(Y?.pollIntervalMs)W=Y.pollIntervalMs;else{let G=z.headers.get("openai-poll-after-ms");if(G){let V=parseInt(G);if(!isNaN(V))W=V}}await u$(W);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return Q}}}stream($,X,Y){return A0.createAssistantStream($,this._client.beta.threads.runs,X,Y)}submitToolOutputs($,X,Y){let{thread_id:J,...Q}=X;return this._client.post(U`/threads/${J}/runs/${$}/submit_tool_outputs`,{body:Q,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers]),stream:X.stream??!1,__synthesizeEventData:!0})}async submitToolOutputsAndPoll($,X,Y){let J=await this.submitToolOutputs($,X,Y);return await this.poll(J.id,X,Y)}submitToolOutputsStream($,X,Y){return A0.createToolAssistantStream($,this._client.beta.threads.runs,X,Y)}}c2.Steps=v6;class X2 extends F{constructor(){super(...arguments);this.runs=new c2(this._client),this.messages=new y6(this._client)}create($={},X){return this._client.post("/threads",{body:$,...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}retrieve($,X){return this._client.get(U`/threads/${$}`,{...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}update($,X,Y){return this._client.post(U`/threads/${$}`,{body:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}delete($,X){return this._client.delete(U`/threads/${$}`,{...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}createAndRun($,X){return this._client.post("/threads/runs",{body:$,...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers]),stream:$.stream??!1,__synthesizeEventData:!0})}async createAndRunPoll($,X){let Y=await this.createAndRun($,X);return await this.runs.poll(Y.id,{thread_id:Y.thread_id},X)}createAndRunStream($,X){return A0.createThreadAssistantStream($,this._client.beta.threads,X)}}X2.Runs=c2;X2.Messages=y6;class p$ extends F{constructor(){super(...arguments);this.realtime=new s0(this._client),this.chatkit=new o0(this._client),this.assistants=new k6(this._client),this.threads=new X2(this._client)}}p$.Realtime=s0;p$.ChatKit=o0;p$.Assistants=k6;p$.Threads=X2;class l2 extends F{create($,X){return this._client.post("/completions",{body:$,...X,stream:$.stream??!1})}}class u6 extends F{retrieve($,X,Y){let{container_id:J}=X;return this._client.get(U`/containers/${J}/files/${$}/content`,{...Y,headers:Z([{Accept:"application/binary"},Y?.headers]),__binaryResponse:!0})}}class p2 extends F{constructor(){super(...arguments);this.content=new u6(this._client)}create($,X,Y){return this._client.post(U`/containers/${$}/files`,E0({body:X,...Y},this._client))}retrieve($,X,Y){let{container_id:J}=X;return this._client.get(U`/containers/${J}/files/${$}`,Y)}list($,X={},Y){return this._client.getAPIList(U`/containers/${$}/files`,h,{query:X,...Y})}delete($,X,Y){let{container_id:J}=X;return this._client.delete(U`/containers/${J}/files/${$}`,{...Y,headers:Z([{Accept:"*/*"},Y?.headers])})}}p2.Content=u6;class Y2 extends F{constructor(){super(...arguments);this.files=new p2(this._client)}create($,X){return this._client.post("/containers",{body:$,...X})}retrieve($,X){return this._client.get(U`/containers/${$}`,X)}list($={},X){return this._client.getAPIList("/containers",h,{query:$,...X})}delete($,X){return this._client.delete(U`/containers/${$}`,{...X,headers:Z([{Accept:"*/*"},X?.headers])})}}Y2.Files=p2;class d6 extends F{create($,X,Y){let{include:J,...Q}=X;return this._client.post(U`/conversations/${$}/items`,{query:{include:J},body:Q,...Y})}retrieve($,X,Y){let{conversation_id:J,...Q}=X;return this._client.get(U`/conversations/${J}/items/${$}`,{query:Q,...Y})}list($,X={},Y){return this._client.getAPIList(U`/conversations/${$}/items`,c$,{query:X,...Y})}delete($,X,Y){let{conversation_id:J}=X;return this._client.delete(U`/conversations/${J}/items/${$}`,Y)}}class J2 extends F{constructor(){super(...arguments);this.items=new d6(this._client)}create($={},X){return this._client.post("/conversations",{body:$,...X})}retrieve($,X){return this._client.get(U`/conversations/${$}`,X)}update($,X,Y){return this._client.post(U`/conversations/${$}`,{body:X,...Y})}delete($,X){return this._client.delete(U`/conversations/${$}`,X)}}J2.Items=d6;class i2 extends F{create($,X){let Y=!!$.encoding_format,J=Y?$.encoding_format:"base64";if(Y)e(this._client).debug("embeddings/user defined encoding_format:",$.encoding_format);let Q=this._client.post("/embeddings",{body:{...$,encoding_format:J},...X});if(Y)return Q;return e(this._client).debug("embeddings/decoding base64 embeddings from base64"),Q._thenUnwrap((z)=>{if(z&&z.data)z.data.forEach((W)=>{let G=W.embedding;W.embedding=v9(G)});return z})}}class c6 extends F{retrieve($,X,Y){let{eval_id:J,run_id:Q}=X;return this._client.get(U`/evals/${J}/runs/${Q}/output_items/${$}`,Y)}list($,X,Y){let{eval_id:J,...Q}=X;return this._client.getAPIList(U`/evals/${J}/runs/${$}/output_items`,h,{query:Q,...Y})}}class n2 extends F{constructor(){super(...arguments);this.outputItems=new c6(this._client)}create($,X,Y){return this._client.post(U`/evals/${$}/runs`,{body:X,...Y})}retrieve($,X,Y){let{eval_id:J}=X;return this._client.get(U`/evals/${J}/runs/${$}`,Y)}list($,X={},Y){return this._client.getAPIList(U`/evals/${$}/runs`,h,{query:X,...Y})}delete($,X,Y){let{eval_id:J}=X;return this._client.delete(U`/evals/${J}/runs/${$}`,Y)}cancel($,X,Y){let{eval_id:J}=X;return this._client.post(U`/evals/${J}/runs/${$}`,Y)}}n2.OutputItems=c6;class Q2 extends F{constructor(){super(...arguments);this.runs=new n2(this._client)}create($,X){return this._client.post("/evals",{body:$,...X})}retrieve($,X){return this._client.get(U`/evals/${$}`,X)}update($,X,Y){return this._client.post(U`/evals/${$}`,{body:X,...Y})}list($={},X){return this._client.getAPIList("/evals",h,{query:$,...X})}delete($,X){return this._client.delete(U`/evals/${$}`,X)}}Q2.Runs=n2;class a2 extends F{create($,X){return this._client.post("/files",w$({body:$,...X},this._client))}retrieve($,X){return this._client.get(U`/files/${$}`,X)}list($={},X){return this._client.getAPIList("/files",h,{query:$,...X})}delete($,X){return this._client.delete(U`/files/${$}`,X)}content($,X){return this._client.get(U`/files/${$}/content`,{...X,headers:Z([{Accept:"application/binary"},X?.headers]),__binaryResponse:!0})}async waitForProcessing($,{pollInterval:X=5000,maxWait:Y=1800000}={}){let J=new Set(["processed","error","deleted"]),Q=Date.now(),z=await this.retrieve($);while(!z.status||!J.has(z.status))if(await u$(X),z=await this.retrieve($),Date.now()-Q>Y)throw new p0({message:`Giving up on waiting for file ${$} to finish processing after ${Y} milliseconds.`});return z}}class l6 extends F{}class p6 extends F{run($,X){return this._client.post("/fine_tuning/alpha/graders/run",{body:$,...X})}validate($,X){return this._client.post("/fine_tuning/alpha/graders/validate",{body:$,...X})}}class r2 extends F{constructor(){super(...arguments);this.graders=new p6(this._client)}}r2.Graders=p6;class i6 extends F{create($,X,Y){return this._client.getAPIList(U`/fine_tuning/checkpoints/${$}/permissions`,Q0,{body:X,method:"post",...Y})}retrieve($,X={},Y){return this._client.get(U`/fine_tuning/checkpoints/${$}/permissions`,{query:X,...Y})}list($,X={},Y){return this._client.getAPIList(U`/fine_tuning/checkpoints/${$}/permissions`,c$,{query:X,...Y})}delete($,X,Y){let{fine_tuned_model_checkpoint:J}=X;return this._client.delete(U`/fine_tuning/checkpoints/${J}/permissions/${$}`,Y)}}class s2 extends F{constructor(){super(...arguments);this.permissions=new i6(this._client)}}s2.Permissions=i6;class n6 extends F{list($,X={},Y){return this._client.getAPIList(U`/fine_tuning/jobs/${$}/checkpoints`,h,{query:X,...Y})}}class o2 extends F{constructor(){super(...arguments);this.checkpoints=new n6(this._client)}create($,X){return this._client.post("/fine_tuning/jobs",{body:$,...X})}retrieve($,X){return this._client.get(U`/fine_tuning/jobs/${$}`,X)}list($={},X){return this._client.getAPIList("/fine_tuning/jobs",h,{query:$,...X})}cancel($,X){return this._client.post(U`/fine_tuning/jobs/${$}/cancel`,X)}listEvents($,X={},Y){return this._client.getAPIList(U`/fine_tuning/jobs/${$}/events`,h,{query:X,...Y})}pause($,X){return this._client.post(U`/fine_tuning/jobs/${$}/pause`,X)}resume($,X){return this._client.post(U`/fine_tuning/jobs/${$}/resume`,X)}}o2.Checkpoints=n6;class i$ extends F{constructor(){super(...arguments);this.methods=new l6(this._client),this.jobs=new o2(this._client),this.checkpoints=new s2(this._client),this.alpha=new r2(this._client)}}i$.Methods=l6;i$.Jobs=o2;i$.Checkpoints=s2;i$.Alpha=r2;class a6 extends F{}class z2 extends F{constructor(){super(...arguments);this.graderModels=new a6(this._client)}}z2.GraderModels=a6;class t2 extends F{createVariation($,X){return this._client.post("/images/variations",w$({body:$,...X},this._client))}edit($,X){return this._client.post("/images/edits",w$({body:$,...X,stream:$.stream??!1},this._client))}generate($,X){return this._client.post("/images/generations",{body:$,...X,stream:$.stream??!1})}}class e2 extends F{retrieve($,X){return this._client.get(U`/models/${$}`,X)}list($){return this._client.getAPIList("/models",Q0,$)}delete($,X){return this._client.delete(U`/models/${$}`,X)}}class $1 extends F{create($,X){return this._client.post("/moderations",{body:$,...X})}}class r6 extends F{accept($,X,Y){return this._client.post(U`/realtime/calls/${$}/accept`,{body:X,...Y,headers:Z([{Accept:"*/*"},Y?.headers])})}hangup($,X){return this._client.post(U`/realtime/calls/${$}/hangup`,{...X,headers:Z([{Accept:"*/*"},X?.headers])})}refer($,X,Y){return this._client.post(U`/realtime/calls/${$}/refer`,{body:X,...Y,headers:Z([{Accept:"*/*"},Y?.headers])})}reject($,X={},Y){return this._client.post(U`/realtime/calls/${$}/reject`,{body:X,...Y,headers:Z([{Accept:"*/*"},Y?.headers])})}}class s6 extends F{create($,X){return this._client.post("/realtime/client_secrets",{body:$,...X})}}class C0 extends F{constructor(){super(...arguments);this.clientSecrets=new s6(this._client),this.calls=new r6(this._client)}}C0.ClientSecrets=s6;C0.Calls=r6;function p9($,X){if(!X||!SJ(X))return{...$,output_parsed:null,output:$.output.map((Y)=>{if(Y.type==="function_call")return{...Y,parsed_arguments:null};if(Y.type==="message")return{...Y,content:Y.content.map((J)=>({...J,parsed:null}))};else return Y})};return kX($,X)}function kX($,X){let Y=$.output.map((Q)=>{if(Q.type==="function_call")return{...Q,parsed_arguments:jJ(X,Q)};if(Q.type==="message"){let z=Q.content.map((W)=>{if(W.type==="output_text")return{...W,parsed:ZJ(X,W.text)};return W});return{...Q,content:z}}return Q}),J=Object.assign({},$,{output:Y});if(!Object.getOwnPropertyDescriptor($,"output_text"))q4(J);return Object.defineProperty(J,"output_parsed",{enumerable:!0,get(){for(let Q of J.output){if(Q.type!=="message")continue;for(let z of Q.content)if(z.type==="output_text"&&z.parsed!==null)return z.parsed}return null}}),J}function ZJ($,X){if($.text?.format?.type!=="json_schema")return null;if("$parseRaw"in $.text?.format)return($.text?.format).$parseRaw(X);return JSON.parse(X)}function SJ($){if(L6($.text?.format))return!0;return!1}function AJ($){return $?.$brand==="auto-parseable-tool"}function CJ($,X){return $.find((Y)=>Y.type==="function"&&Y.name===X)}function jJ($,X){let Y=CJ($.tools??[],X.name);return{...X,...X,parsed_arguments:AJ(Y)?Y.$parseRaw(X.arguments):Y?.strict?JSON.parse(X.arguments):null}}function q4($){let X=[];for(let Y of $.output){if(Y.type!=="message")continue;for(let J of Y.content)if(J.type==="output_text")X.push(J.text)}$.output_text=X.join("")}var X1,w4,j0,N4,i9,n9,a9,r9;class U4 extends a0{constructor($){super();X1.add(this),w4.set(this,void 0),j0.set(this,void 0),N4.set(this,void 0),b(this,w4,$,"f")}static createResponse($,X,Y){let J=new U4(X);return J._run(()=>J._createOrRetrieveResponse($,X,{...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"stream"}})),J}async _createOrRetrieveResponse($,X,Y){let J=Y?.signal;if(J){if(J.aborted)this.controller.abort();J.addEventListener("abort",()=>this.controller.abort())}w(this,X1,"m",i9).call(this);let Q,z=null;if("response_id"in X)Q=await $.responses.retrieve(X.response_id,{stream:!0},{...Y,signal:this.controller.signal,stream:!0}),z=X.starting_after??null;else Q=await $.responses.create({...X,stream:!0},{...Y,signal:this.controller.signal});this._connected();for await(let W of Q)w(this,X1,"m",n9).call(this,W,z);if(Q.controller.signal?.aborted)throw new Y$;return w(this,X1,"m",a9).call(this)}[(w4=new WeakMap,j0=new WeakMap,N4=new WeakMap,X1=new WeakSet,i9=function(){if(this.ended)return;b(this,j0,void 0,"f")},n9=function(X,Y){if(this.ended)return;let J=(z,W)=>{if(Y==null||W.sequence_number>Y)this._emit(z,W)},Q=w(this,X1,"m",r9).call(this,X);switch(J("event",X),X.type){case"response.output_text.delta":{let z=Q.output[X.output_index];if(!z)throw new T(`missing output at index ${X.output_index}`);if(z.type==="message"){let W=z.content[X.content_index];if(!W)throw new T(`missing content at index ${X.content_index}`);if(W.type!=="output_text")throw new T(`expected content to be 'output_text', got ${W.type}`);J("response.output_text.delta",{...X,snapshot:W.text})}break}case"response.function_call_arguments.delta":{let z=Q.output[X.output_index];if(!z)throw new T(`missing output at index ${X.output_index}`);if(z.type==="function_call")J("response.function_call_arguments.delta",{...X,snapshot:z.arguments});break}default:J(X.type,X);break}},a9=function(){if(this.ended)throw new T("stream has ended, this shouldn't happen");let X=w(this,j0,"f");if(!X)throw new T("request ended without sending any events");b(this,j0,void 0,"f");let Y=RJ(X,w(this,w4,"f"));return b(this,N4,Y,"f"),Y},r9=function(X){let Y=w(this,j0,"f");if(!Y){if(X.type!=="response.created")throw new T(`When snapshot hasn't been set yet, expected 'response.created' event, got ${X.type}`);return Y=b(this,j0,X.response,"f"),Y}switch(X.type){case"response.output_item.added":{Y.output.push(X.item);break}case"response.content_part.added":{let J=Y.output[X.output_index];if(!J)throw new T(`missing output at index ${X.output_index}`);let Q=J.type,z=X.part;if(Q==="message"&&z.type!=="reasoning_text")J.content.push(z);else if(Q==="reasoning"&&z.type==="reasoning_text"){if(!J.content)J.content=[];J.content.push(z)}break}case"response.output_text.delta":{let J=Y.output[X.output_index];if(!J)throw new T(`missing output at index ${X.output_index}`);if(J.type==="message"){let Q=J.content[X.content_index];if(!Q)throw new T(`missing content at index ${X.content_index}`);if(Q.type!=="output_text")throw new T(`expected content to be 'output_text', got ${Q.type}`);Q.text+=X.delta}break}case"response.function_call_arguments.delta":{let J=Y.output[X.output_index];if(!J)throw new T(`missing output at index ${X.output_index}`);if(J.type==="function_call")J.arguments+=X.delta;break}case"response.reasoning_text.delta":{let J=Y.output[X.output_index];if(!J)throw new T(`missing output at index ${X.output_index}`);if(J.type==="reasoning"){let Q=J.content?.[X.content_index];if(!Q)throw new T(`missing content at index ${X.content_index}`);if(Q.type!=="reasoning_text")throw new T(`expected content to be 'reasoning_text', got ${Q.type}`);Q.text+=X.delta}break}case"response.completed":{b(this,j0,X.response,"f");break}}return Y},Symbol.asyncIterator)](){let $=[],X=[],Y=!1;return this.on("event",(J)=>{let Q=X.shift();if(Q)Q.resolve(J);else $.push(J)}),this.on("end",()=>{Y=!0;for(let J of X)J.resolve(void 0);X.length=0}),this.on("abort",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),this.on("error",(J)=>{Y=!0;for(let Q of X)Q.reject(J);X.length=0}),{next:async()=>{if(!$.length){if(Y)return{value:void 0,done:!0};return new Promise((Q,z)=>X.push({resolve:Q,reject:z})).then((Q)=>Q?{value:Q,done:!1}:{value:void 0,done:!0})}return{value:$.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let $=w(this,N4,"f");if(!$)throw new T("stream ended without producing a ChatCompletion");return $}}function RJ($,X){return p9($,X)}class o6 extends F{list($,X={},Y){return this._client.getAPIList(U`/responses/${$}/input_items`,h,{query:X,...Y})}}class t6 extends F{count($={},X){return this._client.post("/responses/input_tokens",{body:$,...X})}}class R0 extends F{constructor(){super(...arguments);this.inputItems=new o6(this._client),this.inputTokens=new t6(this._client)}create($,X){return this._client.post("/responses",{body:$,...X,stream:$.stream??!1})._thenUnwrap((Y)=>{if("object"in Y&&Y.object==="response")q4(Y);return Y})}retrieve($,X={},Y){return this._client.get(U`/responses/${$}`,{query:X,...Y,stream:X?.stream??!1})._thenUnwrap((J)=>{if("object"in J&&J.object==="response")q4(J);return J})}delete($,X){return this._client.delete(U`/responses/${$}`,{...X,headers:Z([{Accept:"*/*"},X?.headers])})}parse($,X){return this._client.responses.create($,X)._thenUnwrap((Y)=>kX(Y,$))}stream($,X){return U4.createResponse(this._client,$,X)}cancel($,X){return this._client.post(U`/responses/${$}/cancel`,X)}compact($,X){return this._client.post("/responses/compact",{body:$,...X})}}R0.InputItems=o6;R0.InputTokens=t6;class e6 extends F{retrieve($,X){return this._client.get(U`/skills/${$}/content`,{...X,headers:Z([{Accept:"application/binary"},X?.headers]),__binaryResponse:!0})}}class $8 extends F{retrieve($,X,Y){let{skill_id:J}=X;return this._client.get(U`/skills/${J}/versions/${$}/content`,{...Y,headers:Z([{Accept:"application/binary"},Y?.headers]),__binaryResponse:!0})}}class Y1 extends F{constructor(){super(...arguments);this.content=new $8(this._client)}create($,X={},Y){return this._client.post(U`/skills/${$}/versions`,E0({body:X,...Y},this._client))}retrieve($,X,Y){let{skill_id:J}=X;return this._client.get(U`/skills/${J}/versions/${$}`,Y)}list($,X={},Y){return this._client.getAPIList(U`/skills/${$}/versions`,h,{query:X,...Y})}delete($,X,Y){let{skill_id:J}=X;return this._client.delete(U`/skills/${J}/versions/${$}`,Y)}}Y1.Content=$8;class P0 extends F{constructor(){super(...arguments);this.content=new e6(this._client),this.versions=new Y1(this._client)}create($={},X){return this._client.post("/skills",E0({body:$,...X},this._client))}retrieve($,X){return this._client.get(U`/skills/${$}`,X)}update($,X,Y){return this._client.post(U`/skills/${$}`,{body:X,...Y})}list($={},X){return this._client.getAPIList("/skills",h,{query:$,...X})}delete($,X){return this._client.delete(U`/skills/${$}`,X)}}P0.Content=e6;P0.Versions=Y1;class X8 extends F{create($,X,Y){return this._client.post(U`/uploads/${$}/parts`,w$({body:X,...Y},this._client))}}class W2 extends F{constructor(){super(...arguments);this.parts=new X8(this._client)}create($,X){return this._client.post("/uploads",{body:$,...X})}cancel($,X){return this._client.post(U`/uploads/${$}/cancel`,X)}complete($,X,Y){return this._client.post(U`/uploads/${$}/complete`,{body:X,...Y})}}W2.Parts=X8;var s9=async($)=>{let X=await Promise.allSettled($),Y=X.filter((Q)=>Q.status==="rejected");if(Y.length){for(let Q of Y)console.error(Q.reason);throw Error(`${Y.length} promise(s) failed - see the above errors`)}let J=[];for(let Q of X)if(Q.status==="fulfilled")J.push(Q.value);return J};class Y8 extends F{create($,X,Y){return this._client.post(U`/vector_stores/${$}/file_batches`,{body:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}retrieve($,X,Y){let{vector_store_id:J}=X;return this._client.get(U`/vector_stores/${J}/file_batches/${$}`,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}cancel($,X,Y){let{vector_store_id:J}=X;return this._client.post(U`/vector_stores/${J}/file_batches/${$}/cancel`,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}async createAndPoll($,X,Y){let J=await this.create($,X);return await this.poll($,J.id,Y)}listFiles($,X,Y){let{vector_store_id:J,...Q}=X;return this._client.getAPIList(U`/vector_stores/${J}/file_batches/${$}/files`,h,{query:Q,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}async poll($,X,Y){let J=Z([Y?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":Y?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:Q,response:z}=await this.retrieve(X,{vector_store_id:$},{...Y,headers:J}).withResponse();switch(Q.status){case"in_progress":let W=5000;if(Y?.pollIntervalMs)W=Y.pollIntervalMs;else{let G=z.headers.get("openai-poll-after-ms");if(G){let V=parseInt(G);if(!isNaN(V))W=V}}await u$(W);break;case"failed":case"cancelled":case"completed":return Q}}}async uploadAndPoll($,{files:X,fileIds:Y=[]},J){if(X==null||X.length==0)throw Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let Q=J?.maxConcurrency??5,z=Math.min(Q,X.length),W=this._client,G=X.values(),V=[...Y];async function K(q){for(let H of q){let M=await W.files.create({file:H,purpose:"assistants"},J);V.push(M.id)}}let B=Array(z).fill(G).map(K);return await s9(B),await this.createAndPoll($,{file_ids:V})}}class J8 extends F{create($,X,Y){return this._client.post(U`/vector_stores/${$}/files`,{body:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}retrieve($,X,Y){let{vector_store_id:J}=X;return this._client.get(U`/vector_stores/${J}/files/${$}`,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}update($,X,Y){let{vector_store_id:J,...Q}=X;return this._client.post(U`/vector_stores/${J}/files/${$}`,{body:Q,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}list($,X={},Y){return this._client.getAPIList(U`/vector_stores/${$}/files`,h,{query:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}delete($,X,Y){let{vector_store_id:J}=X;return this._client.delete(U`/vector_stores/${J}/files/${$}`,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}async createAndPoll($,X,Y){let J=await this.create($,X,Y);return await this.poll($,J.id,Y)}async poll($,X,Y){let J=Z([Y?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":Y?.pollIntervalMs?.toString()??void 0}]);while(!0){let Q=await this.retrieve(X,{vector_store_id:$},{...Y,headers:J}).withResponse(),z=Q.data;switch(z.status){case"in_progress":let W=5000;if(Y?.pollIntervalMs)W=Y.pollIntervalMs;else{let G=Q.response.headers.get("openai-poll-after-ms");if(G){let V=parseInt(G);if(!isNaN(V))W=V}}await u$(W);break;case"failed":case"completed":return z}}}async upload($,X,Y){let J=await this._client.files.create({file:X,purpose:"assistants"},Y);return this.create($,{file_id:J.id},Y)}async uploadAndPoll($,X,Y){let J=await this.upload($,X,Y);return await this.poll($,J.id,Y)}content($,X,Y){let{vector_store_id:J}=X;return this._client.getAPIList(U`/vector_stores/${J}/files/${$}/content`,Q0,{...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}}class T0 extends F{constructor(){super(...arguments);this.files=new J8(this._client),this.fileBatches=new Y8(this._client)}create($,X){return this._client.post("/vector_stores",{body:$,...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}retrieve($,X){return this._client.get(U`/vector_stores/${$}`,{...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}update($,X,Y){return this._client.post(U`/vector_stores/${$}`,{body:X,...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}list($={},X){return this._client.getAPIList("/vector_stores",h,{query:$,...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}delete($,X){return this._client.delete(U`/vector_stores/${$}`,{...X,headers:Z([{"OpenAI-Beta":"assistants=v2"},X?.headers])})}search($,X,Y){return this._client.getAPIList(U`/vector_stores/${$}/search`,Q0,{body:X,method:"post",...Y,headers:Z([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}}T0.Files=J8;T0.FileBatches=Y8;class J1 extends F{create($,X){return this._client.post("/videos",w$({body:$,...X},this._client))}retrieve($,X){return this._client.get(U`/videos/${$}`,X)}list($={},X){return this._client.getAPIList("/videos",c$,{query:$,...X})}delete($,X){return this._client.delete(U`/videos/${$}`,X)}createCharacter($,X){return this._client.post("/videos/characters",w$({body:$,...X},this._client))}downloadContent($,X={},Y){return this._client.get(U`/videos/${$}/content`,{query:X,...Y,headers:Z([{Accept:"application/binary"},Y?.headers]),__binaryResponse:!0})}edit($,X){return this._client.post("/videos/edits",w$({body:$,...X},this._client))}extend($,X){return this._client.post("/videos/extensions",w$({body:$,...X},this._client))}getCharacter($,X){return this._client.get(U`/videos/characters/${$}`,X)}remix($,X,Y){return this._client.post(U`/videos/${$}/remix`,E0({body:X,...Y},this._client))}}var Q1,o9,M4;class z1 extends F{constructor(){super(...arguments);Q1.add(this)}async unwrap($,X,Y=this._client.webhookSecret,J=300){return await this.verifySignature($,X,Y,J),JSON.parse($)}async verifySignature($,X,Y=this._client.webhookSecret,J=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!=="function"||typeof crypto.subtle.verify!=="function")throw Error("Webhook signature verification is only supported when the `crypto` global is defined");w(this,Q1,"m",o9).call(this,Y);let Q=Z([X]).values,z=w(this,Q1,"m",M4).call(this,Q,"webhook-signature"),W=w(this,Q1,"m",M4).call(this,Q,"webhook-timestamp"),G=w(this,Q1,"m",M4).call(this,Q,"webhook-id"),V=parseInt(W,10);if(isNaN(V))throw new Y0("Invalid webhook timestamp format");let K=Math.floor(Date.now()/1000);if(K-V>J)throw new Y0("Webhook timestamp is too old");if(V>K+J)throw new Y0("Webhook timestamp is too new");let B=z.split(" ").map((O)=>O.startsWith("v1,")?O.substring(3):O),q=Y.startsWith("whsec_")?Buffer.from(Y.replace("whsec_",""),"base64"):Buffer.from(Y,"utf-8"),H=G?`${G}.${W}.${$}`:`${W}.${$}`,M=await crypto.subtle.importKey("raw",q,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let O of B)try{let _=Buffer.from(O,"base64");if(await crypto.subtle.verify("HMAC",M,_,new TextEncoder().encode(H)))return}catch{continue}throw new Y0("The given webhook signature does not match the expected signature")}}Q1=new WeakSet,o9=function(X){if(typeof X!=="string"||X.length===0)throw 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")},M4=function(X,Y){if(!X)throw Error("Headers are required");let J=X.get(Y);if(J===null||J===void 0)throw Error(`Missing required header: ${Y}`);return J};var fX,bX,F4,t9,xX="workload-identity-auth";class I{constructor({baseURL:$=S0("OPENAI_BASE_URL"),apiKey:X=S0("OPENAI_API_KEY"),organization:Y=S0("OPENAI_ORG_ID")??null,project:J=S0("OPENAI_PROJECT_ID")??null,webhookSecret:Q=S0("OPENAI_WEBHOOK_SECRET")??null,workloadIdentity:z,...W}={}){if(fX.add(this),F4.set(this,void 0),this.completions=new l2(this),this.chat=new r0(this),this.embeddings=new i2(this),this.files=new a2(this),this.images=new t2(this),this.audio=new G0(this),this.moderations=new $1(this),this.models=new e2(this),this.fineTuning=new i$(this),this.graders=new z2(this),this.vectorStores=new T0(this),this.webhooks=new z1(this),this.beta=new p$(this),this.batches=new u2(this),this.uploads=new W2(this),this.responses=new R0(this),this.realtime=new C0(this),this.conversations=new J2(this),this.evals=new Q2(this),this.containers=new Y2(this),this.skills=new P0(this),this.videos=new J1(this),z){if(X&&X!==xX)throw new T("The `apiKey` and `workloadIdentity` arguments are mutually exclusive; only one can be passed at a time.");X=xX}else if(X===void 0)throw new T("Missing credentials. Please pass an `apiKey`, `workloadIdentity`, or set the `OPENAI_API_KEY` environment variable.");let G={apiKey:X,organization:Y,project:J,webhookSecret:Q,workloadIdentity:z,...W,baseURL:$||"https://api.openai.com/v1"};if(!G.dangerouslyAllowBrowser&&t7())throw new T(`It looks like you're running in a browser-like environment.
55
+
56
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
57
+ If you understand the risks and have appropriate mitigations in place,
58
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
59
+
60
+ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
61
+
62
+ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
63
+ `);this.baseURL=G.baseURL,this.timeout=G.timeout??bX.DEFAULT_TIMEOUT,this.logger=G.logger??console;let V="warn";if(this.logLevel=V,this.logLevel=KX(G.logLevel,"ClientOptions.logLevel",this)??KX(S0("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??V,this.fetchOptions=G.fetchOptions,this.maxRetries=G.maxRetries??2,this.fetch=G.fetch??d8(),b(this,F4,X9,"f"),this._options=G,z)this._workloadIdentityAuth=new qX(z,this.fetch);this.apiKey=typeof X==="string"?X:"Missing Key",this.organization=Y,this.project=J,this.webhookSecret=Q}withOptions($){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,workloadIdentity:this._options.workloadIdentity,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...$})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:$,nulls:X}){return}async authHeaders($){return Z([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery($){return K9($)}getUserAgent(){return`${this.constructor.name}/JS ${O0}`}defaultIdempotencyKey(){return`stainless-node-retry-${s4()}`}makeStatusError($,X,Y,J){return o.generate($,X,Y,J)}async _callApiKey(){let $=this._options.apiKey;if(typeof $!=="function")return!1;let X;try{X=await $()}catch(Y){if(Y instanceof T)throw Y;throw new T(`Failed to get token from 'apiKey' function: ${Y.message}`,{cause:Y})}if(typeof X!=="string"||!X)throw new T(`Expected 'apiKey' function argument to return a string but it returned ${X}`);return this.apiKey=X,!0}buildURL($,X,Y){let J=!w(this,fX,"m",t9).call(this)&&Y||this.baseURL,Q=p7($)?new URL($):new URL(J+(J.endsWith("/")&&$.startsWith("/")?$.slice(1):$)),z=this.defaultQuery(),W=Object.fromEntries(Q.searchParams);if(!e4(z)||!e4(W))X={...W,...z,...X};if(typeof X==="object"&&X&&!Array.isArray(X))Q.search=this.stringifyQuery(X);return Q.toString()}async prepareOptions($){await this._callApiKey()}async prepareRequest($,{url:X,options:Y}){}get($,X){return this.methodRequest("get",$,X)}post($,X){return this.methodRequest("post",$,X)}patch($,X){return this.methodRequest("patch",$,X)}put($,X){return this.methodRequest("put",$,X)}delete($,X){return this.methodRequest("delete",$,X)}methodRequest($,X,Y){return this.request(Promise.resolve(Y).then((J)=>{return{method:$,path:X,...J}}))}request($,X=null){return new i0(this,this.makeRequest($,X,void 0))}async makeRequest($,X,Y){let J=await $,Q=J.maxRetries??this.maxRetries;if(X==null)X=Q;await this.prepareOptions(J);let{req:z,url:W,timeout:G}=await this.buildRequest(J,{retryCount:Q-X});await this.prepareRequest(z,{url:W,options:J});let V="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),K=Y===void 0?"":`, retryOf: ${Y}`,B=Date.now();if(e(this).debug(`[${V}] sending request`,J0({retryOfRequestLogID:Y,method:J.method,url:W,options:J,headers:z.headers})),J.signal?.aborted)throw new Y$;let q=new AbortController,H=await this.fetchWithAuth(W,z,G,q).catch(J6),M=Date.now();if(H instanceof globalThis.Error){let R=`retrying, ${X} attempts remaining`;if(J.signal?.aborted)throw new Y$;let L=Y6(H)||/timed? ?out/i.test(String(H)+("cause"in H?String(H.cause):""));if(X)return e(this).info(`[${V}] connection ${L?"timed out":"failed"} - ${R}`),e(this).debug(`[${V}] connection ${L?"timed out":"failed"} (${R})`,J0({retryOfRequestLogID:Y,url:W,durationMs:M-B,message:H.message})),this.retryRequest(J,X,Y??V);if(e(this).info(`[${V}] connection ${L?"timed out":"failed"} - error; no more retries left`),e(this).debug(`[${V}] connection ${L?"timed out":"failed"} (error; no more retries left)`,J0({retryOfRequestLogID:Y,url:W,durationMs:M-B,message:H.message})),H instanceof x2||H instanceof u8)throw H;if(L)throw new p0;throw new l0({cause:H})}let O=[...H.headers.entries()].filter(([R])=>R==="x-request-id").map(([R,L])=>", "+R+": "+JSON.stringify(L)).join(""),_=`[${V}${K}${O}] ${z.method} ${W} ${H.ok?"succeeded":"failed"} with status ${H.status} in ${M-B}ms`;if(!H.ok){if(H.status===401&&this._workloadIdentityAuth&&!J.__metadata?.hasStreamingBody&&!J.__metadata?.workloadIdentityTokenRefreshed)return await YX(H.body),this._workloadIdentityAuth.invalidateToken(),this.makeRequest({...J,__metadata:{...J.__metadata,workloadIdentityTokenRefreshed:!0}},X,Y??V);let R=await this.shouldRetry(H);if(X&&R){let p=`retrying, ${X} attempts remaining`;return await YX(H.body),e(this).info(`${_} - ${p}`),e(this).debug(`[${V}] response error (${p})`,J0({retryOfRequestLogID:Y,url:H.url,status:H.status,headers:H.headers,durationMs:M-B})),this.retryRequest(J,X,Y??V,H.headers)}let L=R?"error; no more retries left":"error; not retryable";e(this).info(`${_} - ${L}`);let A=await H.text().catch((p)=>J6(p).message),E=a7(A),P=E?void 0:A;throw e(this).debug(`[${V}] response error (${L})`,J0({retryOfRequestLogID:Y,url:H.url,status:H.status,headers:H.headers,message:P,durationMs:Date.now()-B})),this.makeStatusError(H.status,E,P,H.headers)}return e(this).info(_),e(this).debug(`[${V}] response start`,J0({retryOfRequestLogID:Y,url:H.url,status:H.status,headers:H.headers,durationMs:M-B})),{response:H,options:J,controller:q,requestLogID:V,retryOfRequestLogID:Y,startTime:B}}getAPIList($,X,Y){return this.requestAPIList(X,Y&&"then"in Y?Y.then((J)=>({method:"get",path:$,...J})):{method:"get",path:$,...Y})}requestAPIList($,X){let Y=this.makeRequest(X,null,void 0);return new s8(this,Y,$)}async fetchWithAuth($,X,Y,J){if(this._workloadIdentityAuth){let z=X.headers,W=z.get("Authorization");if(!W||W===`Bearer ${xX}`){let G=await this._workloadIdentityAuth.getToken();z.set("Authorization",`Bearer ${G}`)}}return await this.fetchWithTimeout($,X,Y,J)}async fetchWithTimeout($,X,Y,J){let{signal:Q,method:z,...W}=X||{},G=this._makeAbort(J);if(Q)Q.addEventListener("abort",G,{once:!0});let V=setTimeout(G,Y),K=globalThis.ReadableStream&&W.body instanceof globalThis.ReadableStream||typeof W.body==="object"&&W.body!==null&&Symbol.asyncIterator in W.body,B={signal:J.signal,...K?{duplex:"half"}:{},method:"GET",...W};if(z)B.method=z.toUpperCase();try{return await this.fetch.call(void 0,$,B)}finally{clearTimeout(V)}}async shouldRetry($){let X=$.headers.get("x-should-retry");if(X==="true")return!0;if(X==="false")return!1;if($.status===408)return!0;if($.status===409)return!0;if($.status===429)return!0;if($.status>=500)return!0;return!1}async retryRequest($,X,Y,J){let Q,z=J?.get("retry-after-ms");if(z){let G=parseFloat(z);if(!Number.isNaN(G))Q=G}let W=J?.get("retry-after");if(W&&!Q){let G=parseFloat(W);if(!Number.isNaN(G))Q=G*1000;else Q=Date.parse(W)-Date.now()}if(Q===void 0){let G=$.maxRetries??this.maxRetries;Q=this.calculateDefaultRetryTimeoutMillis(X,G)}return await u$(Q),this.makeRequest($,X-1,Y)}calculateDefaultRetryTimeoutMillis($,X){let Q=X-$,z=Math.min(0.5*Math.pow(2,Q),8),W=1-Math.random()*0.25;return z*W*1000}async buildRequest($,{retryCount:X=0}={}){let Y={...$},{method:J,path:Q,query:z,defaultBaseURL:W}=Y,G=this.buildURL(Q,z,W);if("timeout"in Y)n7("timeout",Y.timeout);Y.timeout=Y.timeout??this.timeout;let{bodyHeaders:V,body:K,isStreamingBody:B}=this.buildBody({options:Y});if(B)$.__metadata={...$.__metadata,hasStreamingBody:!0};let q=await this.buildHeaders({options:$,method:J,bodyHeaders:V,retryCount:X});return{req:{method:J,headers:q,...Y.signal&&{signal:Y.signal},...globalThis.ReadableStream&&K instanceof globalThis.ReadableStream&&{duplex:"half"},...K&&{body:K},...this.fetchOptions??{},...Y.fetchOptions??{}},url:G,timeout:Y.timeout}}async buildHeaders({options:$,method:X,bodyHeaders:Y,retryCount:J}){let Q={};if(this.idempotencyHeader&&X!=="get"){if(!$.idempotencyKey)$.idempotencyKey=this.defaultIdempotencyKey();Q[this.idempotencyHeader]=$.idempotencyKey}let z=Z([Q,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(J),...$.timeout?{"X-Stainless-Timeout":String(Math.trunc($.timeout/1000))}:{},...e7(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders($),this._options.defaultHeaders,Y,$.headers]);return this.validateHeaders(z),z.values}_makeAbort($){return()=>$.abort()}buildBody({options:{body:$,headers:X}}){if(!$)return{bodyHeaders:void 0,body:void 0,isStreamingBody:!1};let Y=Z([X]),J=typeof globalThis.ReadableStream<"u"&&$ instanceof globalThis.ReadableStream,Q=!J&&(typeof $==="string"||$ instanceof ArrayBuffer||ArrayBuffer.isView($)||typeof globalThis.Blob<"u"&&$ instanceof globalThis.Blob||$ instanceof URLSearchParams||$ instanceof FormData);if(ArrayBuffer.isView($)||$ instanceof ArrayBuffer||$ instanceof DataView||typeof $==="string"&&Y.values.has("content-type")||globalThis.Blob&&$ instanceof globalThis.Blob||$ instanceof FormData||$ instanceof URLSearchParams||J)return{bodyHeaders:void 0,body:$,isStreamingBody:!Q};else if(typeof $==="object"&&((Symbol.asyncIterator in $)||(Symbol.iterator in $)&&("next"in $)&&typeof $.next==="function"))return{bodyHeaders:void 0,body:c8($),isStreamingBody:!0};else if(typeof $==="object"&&Y.values.get("content-type")==="application/x-www-form-urlencoded")return{bodyHeaders:{"content-type":"application/x-www-form-urlencoded"},body:this.stringifyQuery($),isStreamingBody:!1};else return{...w(this,F4,"f").call(this,{body:$,headers:Y}),isStreamingBody:!1}}}bX=I,F4=new WeakMap,fX=new WeakSet,t9=function(){return this.baseURL!=="https://api.openai.com/v1"};I.OpenAI=bX;I.DEFAULT_TIMEOUT=600000;I.OpenAIError=T;I.APIError=o;I.APIConnectionError=l0;I.APIConnectionTimeoutError=p0;I.APIUserAbortError=Y$;I.NotFoundError=G6;I.ConflictError=V6;I.RateLimitError=K6;I.BadRequestError=Q6;I.AuthenticationError=z6;I.InternalServerError=B6;I.PermissionDeniedError=W6;I.UnprocessableEntityError=H6;I.InvalidWebhookSignatureError=Y0;I.toFile=t8;I.Completions=l2;I.Chat=r0;I.Embeddings=i2;I.Files=a2;I.Images=t2;I.Audio=G0;I.Moderations=$1;I.Models=e2;I.FineTuning=i$;I.Graders=z2;I.VectorStores=T0;I.Webhooks=z1;I.Beta=p$;I.Batches=u2;I.Uploads=W2;I.Responses=R0;I.Realtime=C0;I.Conversations=J2;I.Evals=Q2;I.Containers=Y2;I.Skills=P0;I.Videos=J1;import W1 from"ws"with{type:"jsx"};import{spawn as QQ}from"child_process";import*as H5 from"path";import*as I$ from"fs";import*as V8 from"path";import*as q5 from"os";import*as w5 from"crypto";import*as G2 from"fs";import*as O4 from"path";import*as U5 from"os";import*as y$ from"fs";import*as H8 from"path";import*as F5 from"os";var mX=(($)=>G8)(function($){return G8.apply(this,arguments)}),x=class $ extends Error{statusCode;responseBody;cause;constructor(X){super(X.message);if(this.name="GitLabError",this.statusCode=X.statusCode,this.responseBody=X.responseBody,this.cause=X.cause,Error.captureStackTrace)Error.captureStackTrace(this,$)}static fromResponse(X,Y){return new $({message:`GitLab API error: ${X.status} ${X.statusText}`,statusCode:X.status,responseBody:Y})}isAuthError(){return this.statusCode===401}isRateLimitError(){return this.statusCode===429}isForbiddenError(){return this.statusCode===403}isServerError(){return this.statusCode!==void 0&&this.statusCode>=500}isContextOverflowError(){if(this.statusCode!==400)return!1;let X=this.message?.toLowerCase()||"";return X.includes("context overflow")||X.includes("prompt is too long")||X.includes("prompt too long")||X.includes("tokens")&&X.includes("maximum")}},vJ=c0.object({headers:c0.record(c0.string()),token:c0.string()}),gJ="https://cloud.gitlab.com",V5=class{config;fetchFn;aiGatewayUrl;cachedToken=null;tokenExpiresAt=0;constructor($){this.config=$,this.fetchFn=$.fetch??fetch,this.aiGatewayUrl=$.aiGatewayUrl||process.env.GITLAB_AI_GATEWAY_URL||gJ}async getDirectAccessToken($=!1){let X=Date.now();if(!$&&this.cachedToken&&this.tokenExpiresAt>X)return this.cachedToken;if($)this.invalidateToken();let Y=`${this.config.instanceUrl}/api/v4/ai/third_party_agents/direct_access`,J={};if(this.config.featureFlags&&Object.keys(this.config.featureFlags).length>0)J.feature_flags=this.config.featureFlags;try{let Q=await this.fetchFn(Y,{method:"POST",headers:{...this.config.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify(J)});if(!Q.ok){let G=await Q.text();if(Q.status===401&&this.config.refreshApiKey&&!$)try{return await this.config.refreshApiKey(),await this.getDirectAccessToken(!0)}catch(V){throw new x({message:`Failed to get direct access token: ${Q.status} ${Q.statusText} - ${G}`,statusCode:Q.status,responseBody:G})}if(Q.status===403)throw new x({message:`Access denied to GitLab AI features (${this.config.instanceUrl}). This may indicate that: (1) GitLab Duo is not enabled on this instance, (2) Your account does not have access to AI features, or (3) The third-party agents feature is not available. Original error: ${Q.status} ${Q.statusText} - ${G}`,statusCode:Q.status,responseBody:G});throw new x({message:`Failed to get direct access token: ${Q.status} ${Q.statusText} - ${G}`,statusCode:Q.status,responseBody:G})}let z=await Q.json(),W=vJ.parse(z);return this.cachedToken=W,this.tokenExpiresAt=X+1500000,W}catch(Q){if(Q instanceof x)throw Q;throw new x({message:`Failed to get direct access token: ${Q}`,cause:Q})}}getAnthropicProxyUrl(){return`${this.aiGatewayUrl.replace(/\/$/,"")}/ai/v1/proxy/anthropic/`}getOpenAIProxyUrl(){return`${this.aiGatewayUrl.replace(/\/$/,"")}/ai/v1/proxy/openai/v1`}invalidateToken(){this.cachedToken=null,this.tokenExpiresAt=0}},hJ=class{specificationVersion="v3";modelId;supportedUrls={};config;directAccessClient;anthropicClient=null;constructor($,X){this.modelId=$,this.config=X,this.directAccessClient=new V5({instanceUrl:X.instanceUrl,getHeaders:X.getHeaders,refreshApiKey:X.refreshApiKey,fetch:X.fetch,featureFlags:X.featureFlags,aiGatewayUrl:X.aiGatewayUrl})}get provider(){return this.config.provider}async getAnthropicClient($=!1){let X=await this.directAccessClient.getDirectAccessToken($),{"x-api-key":Y,...J}=X.headers,Q={...J,...this.config.aiGatewayHeaders};return this.anthropicClient=new L$({apiKey:null,authToken:X.token,baseURL:this.directAccessClient.getAnthropicProxyUrl(),defaultHeaders:Q}),this.anthropicClient}isTokenError($){if($ instanceof L$.APIError){if($.status===401)return!0;let X=$.message?.toLowerCase()||"";if(X.includes("token")&&(X.includes("expired")||X.includes("revoked")||X.includes("invalid")))return!0}return!1}isContextOverflowError($){if($ instanceof L$.APIError){if($.status===400){let X=$.message?.toLowerCase()||"";if(X.includes("prompt is too long")||X.includes("prompt too long")||X.includes("tokens")&&X.includes("maximum"))return!0}}return!1}convertTools($){if(!$||$.length===0)return;return $.filter((X)=>X.type==="function").map((X)=>{let Y=X.inputSchema;return{name:X.name,description:X.description||"",input_schema:{type:"object",properties:Y?.properties||{},required:Y?.required||[]}}})}convertToolChoice($){if(!$)return;switch($.type){case"auto":return{type:"auto"};case"none":return;case"required":return{type:"any"};case"tool":return{type:"tool",name:$.toolName};default:return}}convertPrompt($){let X,Y=[];for(let Q of $){if(Q.role==="system"){X=X?`${X}
64
+ ${Q.content}`:Q.content;continue}if(Q.role==="user"){let z=[];for(let W of Q.content)if(W.type==="text")z.push({type:"text",text:W.text});else if(W.type==="file");if(z.length>0)Y.push({role:"user",content:z})}else if(Q.role==="assistant"){let z=[];for(let W of Q.content)if(W.type==="text")z.push({type:"text",text:W.text});else if(W.type==="tool-call")z.push({type:"tool_use",id:W.toolCallId,name:W.toolName,input:typeof W.input==="string"?JSON.parse(W.input):W.input});if(z.length>0)Y.push({role:"assistant",content:z})}else if(Q.role==="tool"){let z=[];for(let W of Q.content)if(W.type==="tool-result"){let G;if(W.output.type==="text")G=W.output.value;else if(W.output.type==="json")G=JSON.stringify(W.output.value);else if(W.output.type==="content")G=JSON.stringify(W.output.value);else if(W.output.type==="error-text")G=W.output.value;else if(W.output.type==="error-json")G=JSON.stringify(W.output.value);else if(W.output.type==="execution-denied")G=W.output.reason??"Tool execution denied.";else G=JSON.stringify(W.output);z.push({type:"tool_result",tool_use_id:W.toolCallId,content:G,is_error:W.output.type.startsWith("error")})}if(z.length>0)Y.push({role:"user",content:z})}}let J=X?[{type:"text",text:X,cache_control:{type:"ephemeral"}}]:void 0;if(Y.length>=2){let Q=Y[Y.length-2];if(Array.isArray(Q.content)){let z=Q.content[Q.content.length-1];z.cache_control={type:"ephemeral"}}}return{system:J,messages:Y}}convertFinishReason($){return{unified:(()=>{switch($){case"end_turn":return"stop";case"stop_sequence":return"stop";case"max_tokens":return"length";case"tool_use":return"tool-calls";default:return"other"}})(),raw:$??void 0}}createUsage($){let X=$?.inputTotal,Y=$?.outputTotal,J=$?.cacheRead,Q=$?.cacheWrite;return{inputTokens:{total:X,noCache:X==null?void 0:Math.max(0,X-(J??0)-(Q??0)),cacheRead:J,cacheWrite:Q},outputTokens:{total:Y,text:Y,reasoning:$?.outputReasoning},raw:$?.raw}}async doGenerate($){return this.doGenerateWithRetry($,!1)}async doGenerateWithRetry($,X){let Y=await this.getAnthropicClient(X),{system:J,messages:Q}=this.convertPrompt($.prompt),z=this.convertTools($.tools),W=$.toolChoice?.type!=="none"?this.convertToolChoice($.toolChoice):void 0,G=this.config.anthropicModel||"claude-sonnet-4-5-20250929",V=$.maxOutputTokens||this.config.maxTokens||8192;try{let K=await Y.messages.create({model:G,max_tokens:V,system:J,messages:Q,tools:z,tool_choice:z?W:void 0,temperature:$.temperature,top_p:$.topP,stop_sequences:$.stopSequences}),B=[];for(let M of K.content)if(M.type==="text")B.push({type:"text",text:M.text});else if(M.type==="tool_use")B.push({type:"tool-call",toolCallId:M.id,toolName:M.name,input:JSON.stringify(M.input)});let q=K.usage,H=this.createUsage({inputTotal:K.usage.input_tokens,outputTotal:K.usage.output_tokens,cacheRead:q.cache_read_input_tokens,cacheWrite:q.cache_creation_input_tokens});return{content:B,finishReason:this.convertFinishReason(K.stop_reason),usage:H,warnings:[]}}catch(K){if(this.isContextOverflowError(K))throw new x({message:`Context overflow: ${K.message}. Please start a new session or use /compact to reduce context.`,statusCode:400,cause:K});if(!X&&this.isTokenError(K))return this.directAccessClient.invalidateToken(),this.doGenerateWithRetry($,!0);if(K instanceof L$.APIError)throw new x({message:`Anthropic API error: ${K.message}`,statusCode:K.status,cause:K});throw K}}async doStream($){return this.doStreamWithRetry($,!1)}async doStreamWithRetry($,X){let Y=await this.getAnthropicClient(X),{system:J,messages:Q}=this.convertPrompt($.prompt),z=this.convertTools($.tools),W=$.toolChoice?.type!=="none"?this.convertToolChoice($.toolChoice):void 0,G=this.config.anthropicModel||"claude-sonnet-4-5-20250929",V=$.maxOutputTokens||this.config.maxTokens||8192,K={model:G,max_tokens:V,system:J,messages:Q,tools:z,tool_choice:z?W:void 0,temperature:$.temperature,top_p:$.topP,stop_sequences:$.stopSequences,stream:!0},B=this;return{stream:new ReadableStream({start:async(H)=>{let M={},O=B.createUsage(),_={unified:"other",raw:void 0};try{let R=Y.messages.stream(K,{signal:$.abortSignal});H.enqueue({type:"stream-start",warnings:[]}),await new Promise((L,A)=>{R.on("streamEvent",(E)=>{try{switch(E.type){case"message_start":if(E.message.usage)O=B.createUsage({inputTotal:E.message.usage.input_tokens,outputTotal:O.outputTokens.total,outputReasoning:O.outputTokens.reasoning,cacheRead:O.inputTokens.cacheRead,cacheWrite:O.inputTokens.cacheWrite,raw:O.raw});H.enqueue({type:"response-metadata",id:E.message.id,modelId:E.message.model});break;case"content_block_start":if(E.content_block.type==="text"){let P=`text-${E.index}`;M[E.index]={type:"text",id:P},H.enqueue({type:"text-start",id:P})}else if(E.content_block.type==="tool_use")M[E.index]={type:"tool-call",toolCallId:E.content_block.id,toolName:E.content_block.name,input:""},H.enqueue({type:"tool-input-start",id:E.content_block.id,toolName:E.content_block.name});break;case"content_block_delta":{let P=M[E.index];if(E.delta.type==="text_delta"&&P?.type==="text")H.enqueue({type:"text-delta",id:P.id,delta:E.delta.text});else if(E.delta.type==="input_json_delta"&&P?.type==="tool-call")P.input+=E.delta.partial_json,H.enqueue({type:"tool-input-delta",id:P.toolCallId,delta:E.delta.partial_json});break}case"content_block_stop":{let P=M[E.index];if(P?.type==="text")H.enqueue({type:"text-end",id:P.id});else if(P?.type==="tool-call")H.enqueue({type:"tool-input-end",id:P.toolCallId}),H.enqueue({type:"tool-call",toolCallId:P.toolCallId,toolName:P.toolName,input:P.input===""?"{}":P.input});delete M[E.index];break}case"message_delta":if(E.usage)O=B.createUsage({inputTotal:O.inputTokens.total,outputTotal:E.usage.output_tokens,outputReasoning:O.outputTokens.reasoning,cacheRead:O.inputTokens.cacheRead,cacheWrite:O.inputTokens.cacheWrite,raw:O.raw});if(E.delta.stop_reason)_=B.convertFinishReason(E.delta.stop_reason);break;case"message_stop":{H.enqueue({type:"finish",finishReason:_,usage:O});break}}}catch(P){H.enqueue({type:"error",error:P instanceof Error?P:Error(String(P))})}}),R.on("end",()=>{L()}),R.on("error",(E)=>{A(E)})});for(let[,L]of Object.entries(M))if(L.type==="tool-call")H.enqueue({type:"tool-input-end",id:L.toolCallId}),H.enqueue({type:"tool-call",toolCallId:L.toolCallId,toolName:L.toolName,input:L.input===""?"{}":L.input});H.close()}catch(R){for(let[,L]of Object.entries(M))if(L.type==="tool-call")H.enqueue({type:"tool-input-end",id:L.toolCallId}),H.enqueue({type:"tool-call",toolCallId:L.toolCallId,toolName:L.toolName,input:L.input===""?"{}":L.input});if(B.isContextOverflowError(R)){let L=R;H.enqueue({type:"error",error:new x({message:`Context overflow: ${L.message}. Please start a new session or use /compact to reduce context.`,statusCode:400,cause:R})}),H.close();return}if(!X&&B.isTokenError(R)){B.directAccessClient.invalidateToken(),H.enqueue({type:"error",error:new x({message:"TOKEN_REFRESH_NEEDED",cause:R})}),H.close();return}if(R instanceof L$.APIError)H.enqueue({type:"error",error:new x({message:`Anthropic API error: ${R.message}`,statusCode:R.status,cause:R})});else H.enqueue({type:"error",error:R});H.close()}}}),request:{body:K}}}},n$={"duo-chat-opus-4-7":{provider:"anthropic",model:"claude-opus-4-7"},"duo-chat-opus-4-6":{provider:"anthropic",model:"claude-opus-4-6"},"duo-chat-sonnet-4-6":{provider:"anthropic",model:"claude-sonnet-4-6"},"duo-chat-opus-4-5":{provider:"anthropic",model:"claude-opus-4-5-20251101"},"duo-chat-sonnet-4-5":{provider:"anthropic",model:"claude-sonnet-4-5-20250929"},"duo-chat-haiku-4-5":{provider:"anthropic",model:"claude-haiku-4-5-20251001"},"duo-chat-gpt-5-1":{provider:"openai",model:"gpt-5.1-2025-11-13",openaiApiType:"chat"},"duo-chat-gpt-5-2":{provider:"openai",model:"gpt-5.2-2025-12-11",openaiApiType:"chat"},"duo-chat-gpt-5-4":{provider:"openai",model:"gpt-5.4-2026-03-05",openaiApiType:"chat"},"duo-chat-gpt-5-5":{provider:"openai",model:"gpt-5.5-2026-04-23",openaiApiType:"chat"},"duo-chat-gpt-5-mini":{provider:"openai",model:"gpt-5-mini-2025-08-07",openaiApiType:"chat"},"duo-chat-gpt-5-4-mini":{provider:"openai",model:"gpt-5.4-mini",openaiApiType:"chat"},"duo-chat-gpt-5-4-nano":{provider:"openai",model:"gpt-5.4-nano",openaiApiType:"chat"},"duo-chat-gpt-5-codex":{provider:"openai",model:"gpt-5-codex",openaiApiType:"responses"},"duo-chat-gpt-5-2-codex":{provider:"openai",model:"gpt-5.2-codex",openaiApiType:"responses"},"duo-chat-gpt-5-3-codex":{provider:"openai",model:"gpt-5.3-codex",openaiApiType:"responses"},"duo-workflow":{provider:"workflow",model:"default"},"duo-workflow-default":{provider:"workflow",model:"default"},"duo-workflow-sonnet-4-5":{provider:"workflow",model:"anthropic/claude-sonnet-4-5-20250929"},"duo-workflow-sonnet-4-6":{provider:"workflow",model:"claude_sonnet_4_6"},"duo-workflow-opus-4-5":{provider:"workflow",model:"anthropic/claude-opus-4-5-20251101"},"duo-workflow-haiku-4-5":{provider:"workflow",model:"claude_haiku_4_5_20251001"},"duo-workflow-opus-4-6":{provider:"workflow",model:"claude_opus_4_6_20260205"}};function e9($){return n$[$]}function EM($){return n$[$]?.provider}function mJ($){return Object.values(n$).filter((X)=>X.provider===$).map((X)=>X.model)}function LM($){let X=n$[$];return X?.provider==="anthropic"?X.model:void 0}function DM($){let X=n$[$];return X?.provider==="openai"?X.model:void 0}function uJ($){return n$[$]?.openaiApiType??"chat"}function dJ($){return uJ($)==="responses"}function cJ($){return n$[$]?.provider==="workflow"}function lJ($){let X=n$[$];return X?.provider==="workflow"?X.model:void 0}var ZM=Object.fromEntries(Object.entries(n$).filter(([,$])=>$.provider==="anthropic").map(([$,X])=>[$,X.model])),pJ=class{specificationVersion="v3";modelId;supportedUrls={};config;directAccessClient;useResponsesApi;openaiClient=null;constructor($,X){this.modelId=$,this.config=X,this.useResponsesApi=X.useResponsesApi??dJ($),this.directAccessClient=new V5({instanceUrl:X.instanceUrl,getHeaders:X.getHeaders,refreshApiKey:X.refreshApiKey,fetch:X.fetch,featureFlags:X.featureFlags,aiGatewayUrl:X.aiGatewayUrl})}get provider(){return this.config.provider}async getOpenAIClient($=!1){let X=await this.directAccessClient.getDirectAccessToken($),{"x-api-key":Y,...J}=X.headers,Q={...J,...this.config.aiGatewayHeaders};return this.openaiClient=new I({apiKey:X.token,baseURL:this.directAccessClient.getOpenAIProxyUrl(),defaultHeaders:Q}),this.openaiClient}isTokenError($){if($ instanceof I.APIError){if($.status===401)return!0;let X=$.message?.toLowerCase()||"";if(X.includes("token")&&(X.includes("expired")||X.includes("revoked")||X.includes("invalid")))return!0}return!1}isContextOverflowError($){if($ instanceof I.APIError){if($.status===400){let X=$.message?.toLowerCase()||"";if(X.includes("prompt is too long")||X.includes("prompt too long")||X.includes("tokens")&&X.includes("maximum"))return!0}}return!1}convertTools($){if(!$||$.length===0)return;return $.filter((X)=>X.type==="function").map((X)=>{let Y=X.inputSchema;return{type:"function",function:{name:X.name,description:X.description||"",parameters:{type:"object",...Y}}}})}convertToolChoice($){if(!$)return;switch($.type){case"auto":return"auto";case"none":return"none";case"required":return"required";case"tool":return{type:"function",function:{name:$.toolName}};default:return}}convertPrompt($){let X=[];for(let Y of $){if(Y.role==="system"){X.push({role:"system",content:Y.content});continue}if(Y.role==="user"){let J=Y.content.filter((Q)=>Q.type==="text").map((Q)=>Q.text);if(J.length>0)X.push({role:"user",content:J.join(`
65
+ `)})}else if(Y.role==="assistant"){let J=[],Q=[];for(let W of Y.content)if(W.type==="text")J.push(W.text);else if(W.type==="tool-call")Q.push({id:W.toolCallId,type:"function",function:{name:W.toolName,arguments:typeof W.input==="string"?W.input:JSON.stringify(W.input)}});let z={role:"assistant",content:J.length>0?J.join(`
66
+ `):null};if(Q.length>0)z.tool_calls=Q;X.push(z)}else if(Y.role==="tool"){for(let J of Y.content)if(J.type==="tool-result"){let Q;if(J.output.type==="text")Q=J.output.value;else if(J.output.type==="json")Q=JSON.stringify(J.output.value);else if(J.output.type==="content")Q=JSON.stringify(J.output.value);else if(J.output.type==="error-text")Q=J.output.value;else if(J.output.type==="error-json")Q=JSON.stringify(J.output.value);else if(J.output.type==="execution-denied")Q=J.output.reason??"Tool execution denied.";else Q=JSON.stringify(J.output);X.push({role:"tool",tool_call_id:J.toolCallId,content:Q})}}}return X}convertFinishReason($){return{unified:(()=>{switch($){case"stop":return"stop";case"length":return"length";case"tool_calls":return"tool-calls";case"content_filter":return"content-filter";default:return"other"}})(),raw:$??void 0}}createUsage($){let X=$?.inputTotal,Y=$?.outputTotal,J=$?.cacheRead;return{inputTokens:{total:X,noCache:X==null?void 0:Math.max(0,X-(J??0)),cacheRead:J,cacheWrite:void 0},outputTokens:{total:Y,text:Y,reasoning:$?.outputReasoning},raw:$?.raw}}convertToolsForResponses($){if(!$||$.length===0)return;return $.filter((X)=>X.type==="function").map((X)=>{let Y={...X.inputSchema};return delete Y.$schema,{type:"function",name:X.name,description:X.description||"",parameters:Y,strict:X.strict}})}convertPromptForResponses($){let X=[];for(let Y of $){if(Y.role==="system")continue;if(Y.role==="user"){let J=Y.content.filter((Q)=>Q.type==="text").map((Q)=>Q.text);if(J.length>0)X.push({type:"message",role:"user",content:J.map((Q)=>({type:"input_text",text:Q}))})}else if(Y.role==="assistant"){let J=[];for(let Q of Y.content)if(Q.type==="text")J.push(Q.text);else if(Q.type==="tool-call")X.push({type:"function_call",call_id:Q.toolCallId,name:Q.toolName,arguments:typeof Q.input==="string"?Q.input:JSON.stringify(Q.input)});if(J.length>0)X.push({type:"message",role:"assistant",content:[{type:"output_text",text:J.join(`
67
+ `),annotations:[]}]})}else if(Y.role==="tool"){for(let J of Y.content)if(J.type==="tool-result"){let Q;if(J.output.type==="text")Q=J.output.value;else if(J.output.type==="json")Q=JSON.stringify(J.output.value);else if(J.output.type==="content")Q=JSON.stringify(J.output.value);else if(J.output.type==="error-text")Q=J.output.value;else if(J.output.type==="error-json")Q=JSON.stringify(J.output.value);else if(J.output.type==="execution-denied")Q=J.output.reason??"Tool execution denied.";else Q=JSON.stringify(J.output);X.push({type:"function_call_output",call_id:J.toolCallId,output:Q})}}}return X}extractSystemInstructions($){return $.filter((Y)=>Y.role==="system").map((Y)=>Y.content).join(`
68
+ `)||void 0}convertResponsesStatus($,X=!1){if(X)return{unified:"tool-calls",raw:$};return{unified:(()=>{switch($){case"completed":return"stop";case"incomplete":return"length";case"cancelled":return"stop";case"failed":return"error";default:return"other"}})(),raw:$}}async doGenerate($){if(this.useResponsesApi)return this.doGenerateWithResponsesApi($,!1);return this.doGenerateWithChatApi($,!1)}async doGenerateWithChatApi($,X){let Y=await this.getOpenAIClient(X),J=this.convertPrompt($.prompt),Q=this.convertTools($.tools),z=$.toolChoice?.type!=="none"?this.convertToolChoice($.toolChoice):void 0,W=this.config.openaiModel||"gpt-4o",G=$.maxOutputTokens||this.config.maxTokens||8192;try{let V=await Y.chat.completions.create({model:W,max_completion_tokens:G,messages:J,tools:Q,tool_choice:Q?z:void 0,temperature:$.temperature,top_p:$.topP,stop:$.stopSequences}),K=V.choices[0],B=[];if(K?.message.content)B.push({type:"text",text:K.message.content});if(K?.message.tool_calls){for(let H of K.message.tool_calls)if(H.type==="function")B.push({type:"tool-call",toolCallId:H.id,toolName:H.function.name,input:H.function.arguments})}let q=this.createUsage({inputTotal:V.usage?.prompt_tokens,outputTotal:V.usage?.completion_tokens,cacheRead:V.usage?.prompt_tokens_details?.cached_tokens,raw:{total_tokens:V.usage?.total_tokens}});return{content:B,finishReason:this.convertFinishReason(K?.finish_reason),usage:q,warnings:[]}}catch(V){if(this.isContextOverflowError(V))throw new x({message:`Context overflow: ${V.message}. Please start a new session or use /compact to reduce context.`,statusCode:400,cause:V});if(!X&&this.isTokenError(V))return this.directAccessClient.invalidateToken(),this.doGenerateWithChatApi($,!0);if(V instanceof I.APIError)throw new x({message:`OpenAI API error: ${V.message}`,statusCode:V.status,cause:V});throw V}}async doGenerateWithResponsesApi($,X){let Y=await this.getOpenAIClient(X),J=this.convertPromptForResponses($.prompt),Q=this.convertToolsForResponses($.tools),z=this.extractSystemInstructions($.prompt),W=this.config.openaiModel||"gpt-5-codex",G=$.maxOutputTokens||this.config.maxTokens||8192;try{let V=await Y.responses.create({model:W,input:J,instructions:z,tools:Q,max_output_tokens:G,temperature:$.temperature,top_p:$.topP,store:!1}),K=[],B=!1;for(let H of V.output||[])if(H.type==="message"&&H.role==="assistant"){for(let M of H.content||[])if(M.type==="output_text")K.push({type:"text",text:M.text})}else if(H.type==="function_call")B=!0,K.push({type:"tool-call",toolCallId:H.call_id,toolName:H.name,input:H.arguments});let q=this.createUsage({inputTotal:V.usage?.input_tokens,outputTotal:V.usage?.output_tokens,outputReasoning:V.usage?.output_tokens_details?.reasoning_tokens,cacheRead:V.usage?.input_tokens_details?.cached_tokens,raw:{total_tokens:V.usage?.total_tokens}});return{content:K,finishReason:this.convertResponsesStatus(V.status,B),usage:q,warnings:[]}}catch(V){if(this.isContextOverflowError(V))throw new x({message:`Context overflow: ${V.message}. Please start a new session or use /compact to reduce context.`,statusCode:400,cause:V});if(!X&&this.isTokenError(V))return this.directAccessClient.invalidateToken(),this.doGenerateWithResponsesApi($,!0);if(V instanceof I.APIError)throw new x({message:`OpenAI API error: ${V.message}`,statusCode:V.status,cause:V});throw V}}async doStream($){if(this.useResponsesApi)return this.doStreamWithResponsesApi($,!1);return this.doStreamWithChatApi($,!1)}async doStreamWithChatApi($,X){let Y=await this.getOpenAIClient(X),J=this.convertPrompt($.prompt),Q=this.convertTools($.tools),z=$.toolChoice?.type!=="none"?this.convertToolChoice($.toolChoice):void 0,W=this.config.openaiModel||"gpt-4o",G=$.maxOutputTokens||this.config.maxTokens||8192,V={model:W,max_completion_tokens:G,messages:J,tools:Q,tool_choice:Q?z:void 0,temperature:$.temperature,top_p:$.topP,stop:$.stopSequences,stream:!0,stream_options:{include_usage:!0}},K=this;return{stream:new ReadableStream({start:async(q)=>{let H={},M=K.createUsage(),O={unified:"other",raw:void 0},_=!1,R="text-0";try{let L=await Y.chat.completions.create({...V,stream:!0});q.enqueue({type:"stream-start",warnings:[]});for await(let A of L){let E=A.choices?.[0];if(A.id&&!_)q.enqueue({type:"response-metadata",id:A.id,modelId:A.model});if(E?.delta?.content){if(!_)q.enqueue({type:"text-start",id:R}),_=!0;q.enqueue({type:"text-delta",id:R,delta:E.delta.content})}if(E?.delta?.tool_calls)for(let P of E.delta.tool_calls){let l=P.index;if(!H[l])H[l]={id:P.id||"",name:P.function?.name||"",arguments:""},q.enqueue({type:"tool-input-start",id:H[l].id,toolName:H[l].name});if(P.function?.arguments)H[l].arguments+=P.function.arguments,q.enqueue({type:"tool-input-delta",id:H[l].id,delta:P.function.arguments})}if(E?.finish_reason)O=K.convertFinishReason(E.finish_reason);if(A.usage)M=K.createUsage({inputTotal:A.usage.prompt_tokens,outputTotal:A.usage.completion_tokens,cacheRead:A.usage.prompt_tokens_details?.cached_tokens,raw:{total_tokens:A.usage.total_tokens}})}if(_)q.enqueue({type:"text-end",id:R});for(let[,A]of Object.entries(H))q.enqueue({type:"tool-input-end",id:A.id}),q.enqueue({type:"tool-call",toolCallId:A.id,toolName:A.name,input:A.arguments||"{}"});q.enqueue({type:"finish",finishReason:O,usage:M}),q.close()}catch(L){if(K.isContextOverflowError(L)){let A=L;q.enqueue({type:"error",error:new x({message:`Context overflow: ${A.message}. Please start a new session or use /compact to reduce context.`,statusCode:400,cause:L})}),q.close();return}if(!X&&K.isTokenError(L)){K.directAccessClient.invalidateToken(),q.enqueue({type:"error",error:new x({message:"TOKEN_REFRESH_NEEDED",cause:L})}),q.close();return}if(L instanceof I.APIError)q.enqueue({type:"error",error:new x({message:`OpenAI API error: ${L.message}`,statusCode:L.status,cause:L})});else q.enqueue({type:"error",error:L});q.close()}}}),request:{body:V}}}async doStreamWithResponsesApi($,X){let Y=await this.getOpenAIClient(X),J=this.convertPromptForResponses($.prompt),Q=this.convertToolsForResponses($.tools),z=this.extractSystemInstructions($.prompt),W=this.config.openaiModel||"gpt-5-codex",G=$.maxOutputTokens||this.config.maxTokens||8192,V={model:W,input:J,instructions:z,tools:Q,max_output_tokens:G,temperature:$.temperature,top_p:$.topP,store:!1,stream:!0},K=this;return{stream:new ReadableStream({start:async(q)=>{let H={},M=K.createUsage(),O={unified:"other",raw:void 0},_=!1,R="text-0";try{let L=await Y.responses.create({...V,stream:!0});q.enqueue({type:"stream-start",warnings:[]});for await(let E of L)if(E.type==="response.created")q.enqueue({type:"response-metadata",id:E.response.id,modelId:E.response.model});else if(E.type==="response.output_item.added"){if(E.item.type==="function_call"){let P=E.output_index,l=E.item.call_id;H[P]={callId:l,name:E.item.name,arguments:""},q.enqueue({type:"tool-input-start",id:l,toolName:E.item.name})}}else if(E.type==="response.output_text.delta"){if(!_)q.enqueue({type:"text-start",id:R}),_=!0;q.enqueue({type:"text-delta",id:R,delta:E.delta})}else if(E.type==="response.function_call_arguments.delta"){let P=E.output_index,l=H[P];if(l)l.arguments+=E.delta,q.enqueue({type:"tool-input-delta",id:l.callId,delta:E.delta})}else if(E.type==="response.function_call_arguments.done"){let P=E.output_index,l=H[P];if(l)l.arguments=E.arguments}else if(E.type==="response.completed"){let P=Object.keys(H).length>0;if(O=K.convertResponsesStatus(E.response.status,P),E.response.usage)M=K.createUsage({inputTotal:E.response.usage.input_tokens,outputTotal:E.response.usage.output_tokens,outputReasoning:E.response.usage.output_tokens_details?.reasoning_tokens,cacheRead:E.response.usage.input_tokens_details?.cached_tokens,raw:{total_tokens:E.response.usage.total_tokens}})}if(_)q.enqueue({type:"text-end",id:R});if(Object.keys(H).length>0&&O.unified==="stop")O={unified:"tool-calls",raw:O.raw};for(let E of Object.values(H))q.enqueue({type:"tool-input-end",id:E.callId}),q.enqueue({type:"tool-call",toolCallId:E.callId,toolName:E.name,input:E.arguments||"{}"});q.enqueue({type:"finish",finishReason:O,usage:M}),q.close()}catch(L){if(K.isContextOverflowError(L)){let A=L;q.enqueue({type:"error",error:new x({message:`Context overflow: ${A.message}. Please start a new session or use /compact to reduce context.`,statusCode:400,cause:L})}),q.close();return}if(!X&&K.isTokenError(L)){K.directAccessClient.invalidateToken(),q.enqueue({type:"error",error:new x({message:"TOKEN_REFRESH_NEEDED",cause:L})}),q.close();return}if(L instanceof I.APIError)q.enqueue({type:"error",error:new x({message:`OpenAI API error: ${L.message}`,statusCode:L.status,cause:L})});else q.enqueue({type:"error",error:L});q.close()}}}),request:{body:V}}}},IX="6.6.0",iJ=(($)=>{return $.CHAT="chat",$.SOFTWARE_DEVELOPMENT="software_development",$})(iJ||{}),nJ=45000,$5=60000,z8="chat",aJ=["shell_command"],yX="8.51.0",rJ="USER_ACTION_TRIGGERED_STOP",G1={READ_WRITE_FILES:1,READ_ONLY_GITLAB:2,READ_WRITE_GITLAB:3,RUN_COMMANDS:4,USE_GIT:5,RUN_MCP_TOOLS:6},sJ=[G1.READ_WRITE_FILES,G1.READ_ONLY_GITLAB,G1.READ_WRITE_GITLAB,G1.RUN_COMMANDS,G1.RUN_MCP_TOOLS,G1.USE_GIT],oJ="ide",X5=class{socket=null;keepaliveInterval=null;heartbeatInterval=null;eventCallback=null;closed=!1;lastSendTime=0;connect($,X){return this.validateOptions($),this.eventCallback=X,this.closed=!1,this.cleanedUp=!1,new Promise((Y,J)=>{let Q=this.buildWebSocketUrl($),z=this.buildWebSocketHeaders($);this.socket=new W1(Q,{headers:z});let W=!1;this.socket.onopen=()=>{W=!0,this.startKeepalive(),this.startHeartbeat(),Y()},this.socket.onmessage=(G)=>{try{let V=typeof G.data==="string"?G.data:G.data.toString(),K=JSON.parse(V);if(!K||typeof K!=="object")throw Error("Invalid message structure: expected object");this.handleAction(K)}catch(V){this.emit({type:"failed",error:V instanceof Error?V:Error(String(V))})}},this.socket.onerror=(G)=>{let V=Error(`WebSocket error: ${G.message||"unknown"}`);if(!W)J(V);else this.emit({type:"failed",error:V})},this.socket.onclose=(G)=>{if(this.cleanup(),!W){J(Error(`WebSocket closed before open: code=${G.code} reason=${G.reason||""}`));return}if(!this.closed)this.emit({type:"closed",code:G.code,reason:G.reason||""})}})}sendStartRequest($){this.send({startRequest:$})}sendActionResponse($,X,Y){this.sendHeartbeatIfNeeded();let J={requestID:$,plainTextResponse:{response:X,error:Y??null}};this.send({actionResponse:J})}stop(){this.send({stopWorkflow:{reason:rJ}}),this.closed=!0}close(){if(this.closed)return;this.closed=!0,this.cleanup();let $=this.socket;if(this.socket=null,$){if($.readyState===W1.OPEN||$.readyState===W1.CONNECTING)$.close(1000,"Client closing")}}get isConnected(){return this.socket?.readyState===W1.OPEN}validateOptions($){if(!$.instanceUrl||typeof $.instanceUrl!=="string")throw Error("instanceUrl is required");let X=new URL($.instanceUrl);if(X.protocol!=="https:"&&X.protocol!=="http:")throw Error(`Invalid instanceUrl protocol: ${X.protocol}`);if(X.username||X.password)throw Error("instanceUrl must not contain authentication credentials (username/password)");if(!$.headers||typeof $.headers!=="object")throw Error("headers are required");if($.modelRef&&typeof $.modelRef!=="string")throw Error("modelRef must be a string")}buildWebSocketUrl($){let X=new URL($.instanceUrl.replace(/\/?$/,"/")),Y=new URL("./api/v4/ai/duo_workflows/ws",X);if(Y.protocol=Y.protocol==="https:"?"wss:":"ws:",$.modelRef&&$.modelRef!=="default")Y.searchParams.set("user_selected_model_identifier",$.modelRef);if($.aiCatalogItemVersionId)Y.searchParams.set("ai_catalog_item_version_id",String($.aiCatalogItemVersionId));if($.workflowDefinition)Y.searchParams.set("workflow_definition",$.workflowDefinition);return Y.toString()}buildWebSocketHeaders($){let X={};for(let[Q,z]of Object.entries($.headers))X[Q.toLowerCase()]=z;delete X["content-type"],X["x-gitlab-client-type"]="node-websocket",X["x-gitlab-language-server-version"]=yX;let J=new URL($.instanceUrl).origin;if(X.origin=J,$.requestId)X["x-request-id"]=$.requestId;if($.projectId)X["x-gitlab-project-id"]=$.projectId;if($.namespaceId)X["x-gitlab-namespace-id"]=$.namespaceId;if($.rootNamespaceId)X["x-gitlab-root-namespace-id"]=$.rootNamespaceId;if(!X["user-agent"])X["user-agent"]=`gitlab-ai-provider/${IX}`;return X}handleAction($){if($.newCheckpoint){let Y=$.newCheckpoint;if(this.emit({type:"checkpoint",data:Y}),Y.status==="FINISHED"||Y.status==="COMPLETED")this.emit({type:"completed"});else if(Y.status==="FAILED")this.emit({type:"failed",error:Error(Y.content||"Workflow failed")});else if(Y.status==="STOPPED"||Y.status==="CANCELLED")this.emit({type:"completed"});else if(Y.status==="TOOL_CALL_APPROVAL_REQUIRED")this.emit({type:"approval-required",tools:this.extractApprovalTools(Y)});else if(Y.status==="PLAN_APPROVAL_REQUIRED")this.emit({type:"completed"});return}if($.runMCPTool&&$.requestID){this.emit({type:"tool-request",requestID:$.requestID,data:$.runMCPTool});return}let X=[["runReadFile",$.runReadFile],["runReadFiles",$.runReadFiles],["runWriteFile",$.runWriteFile],["runShellCommand",$.runShellCommand],["runEditFile",$.runEditFile],["listDirectory",$.listDirectory],["findFiles",$.findFiles],["grep",$.grep],["mkdir",$.mkdir],["runCommand",$.runCommand],["runGitCommand",$.runGitCommand],["runHTTPRequest",$.runHTTPRequest]];for(let[Y,J]of X)if(J&&$.requestID){this.emit({type:"builtin-tool-request",requestID:$.requestID,toolName:Y,data:J});return}}extractApprovalTools($){if(!$.checkpoint)return[];let X;try{X=JSON.parse($.checkpoint)}catch{return[]}return(X.channel_values?.ui_chat_log??[]).filter((Y)=>Y.message_type==="request"&&Y.tool_info!==null).map((Y)=>({name:Y.tool_info.name,args:JSON.stringify(Y.tool_info.args)}))}send($){if(this.socket?.readyState===W1.OPEN){let X=JSON.stringify($);this.socket.send(X),this.lastSendTime=Date.now()}}sendHeartbeatIfNeeded(){if(Date.now()-this.lastSendTime>=$5/2)this.send({heartbeat:{timestamp:Date.now()}})}emit($){this.eventCallback?.($)}startKeepalive(){this.keepaliveInterval=setInterval(()=>{if(this.socket?.readyState===W1.OPEN)try{this.socket.ping()}catch{}},nJ)}startHeartbeat(){this.heartbeatInterval=setInterval(()=>{this.send({heartbeat:{timestamp:Date.now()}})},$5)}cleanedUp=!1;cleanup(){if(this.cleanedUp)return;if(this.cleanedUp=!0,this.keepaliveInterval)clearInterval(this.keepaliveInterval),this.keepaliveInterval=null;if(this.heartbeatInterval)clearInterval(this.heartbeatInterval),this.heartbeatInterval=null}};function Q8($,X){if(/[;&|`$()<>]/.test($))throw Error(`Invalid ${X}: contains shell metacharacters. Use structured arguments instead.`)}function V1($){return"'"+String($).replace(/'/g,"'\\''")+"'"}var tJ=["http:","https:"];function W8($){if(!$)return"";return $.replace(/\bBearer\s+[A-Za-z0-9\-_.~+/]+=*/gi,"Bearer [REDACTED]").replace(/\bgl(?:pat|oat|cbt|dt|oas|rt|soat|ffct|sapat)-[A-Za-z0-9_-]+/g,"[REDACTED]").replace(/([?&](?:private_token|access_token|token)=)[^&\s"']*/gi,"$1[REDACTED]").replace(/:\/\/([^:@/\s]+):([^@/\s]+)@/g,"://$1:[REDACTED]@")}function eJ($,X,Y){let J=(Q)=>!Y||Y.has(Q);switch($){case"runReadFile":return{toolName:"read",args:{filePath:X.filepath}};case"runReadFiles":{let Q=X.filepaths??[];if(Q.length<=1)return{toolName:"read",args:{filePath:Q[0]??""}};return{toolName:"read",args:{filePaths:Q}}}case"runWriteFile":{if(J("write"))return{toolName:"write",args:{filePath:X.filepath,content:X.contents}};let Q=String(X.filepath??""),z=String(X.contents??"");return{toolName:"apply_patch",args:{patchText:["*** Begin Patch",`*** Add File: ${Q}`,...z.split(`
69
+ `).map((G)=>`+${G}`),"*** End Patch"].join(`
70
+ `)}}}case"runEditFile":{let Q=String(X.oldString??X.old_string??""),z=String(X.newString??X.new_string??"");if(J("edit"))return{toolName:"edit",args:{filePath:X.filepath,oldString:Q,newString:z}};let W=String(X.filepath??""),G=Q,V=z,K=G.split(`
71
+ `),B=V.split(`
72
+ `);return{toolName:"apply_patch",args:{patchText:["*** Begin Patch",`*** Update File: ${W}`,"@@",...K.map((H)=>`-${H}`),...B.map((H)=>`+${H}`),"*** End Patch"].join(`
73
+ `)}}}case"runShellCommand":{let Q=X.command;if(!Q||typeof Q!=="string")throw Error("runShellCommand: command is required and must be a string");if(Q.length>1e4)throw Error("runShellCommand: command exceeds maximum length of 10000 characters");return{toolName:"bash",args:{command:Q,description:"DWS shell command"}}}case"runCommand":{let Q=X.program;if(!Q||typeof Q!=="string")throw Error("runCommand: program is required and must be a string");Q8(Q,"program");let z=X.flags??[],W=X.arguments??[];for(let G of z)if(typeof G==="string")Q8(G,"flag");for(let G of W)if(typeof G==="string")Q8(G,"argument");return{toolName:"bash",args:{command:[Q,...z,...W].map((G)=>V1(String(G))).join(" "),description:`DWS run: ${Q}`}}}case"runGitCommand":{let Q=X.command;if(!Q||typeof Q!=="string")throw Error("runGitCommand: command is required and must be a string");Q8(Q,"git command");let z=X.arguments??[];for(let W of z)if(typeof W==="string")Q8(W,"git argument");return{toolName:"bash",args:{command:["git",Q,...z].map((W)=>V1(String(W))).join(" "),description:`DWS git: ${Q}`}}}case"listDirectory":return{toolName:"read",args:{filePath:X.directory??"."}};case"findFiles":return{toolName:"glob",args:{pattern:X.name_pattern??X.namePattern}};case"grep":return{toolName:"grep",args:{pattern:X.pattern,path:X.search_directory??X.searchDirectory}};case"mkdir":{let Q=String(X.directory_path??X.directoryPath??"");if(!Q)throw Error("mkdir: directory_path is required");if(Q.includes("\x00"))throw Error("mkdir: directory_path contains null bytes");return{toolName:"bash",args:{command:`mkdir -p ${V1(Q)}`,description:"DWS mkdir"}}}case"runHTTPRequest":{let Q=String(X.method??"GET").toUpperCase();if(!["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"].includes(Q))throw Error(`runHTTPRequest: invalid HTTP method '${Q}'`);let W=String(X.path??"");if(!W)throw Error("runHTTPRequest: path is required");try{let B=new URL(W);if(!tJ.includes(B.protocol))throw Error(`runHTTPRequest: only http:// and https:// schemes are allowed, got '${B.protocol}'`)}catch(B){if(B instanceof Error&&B.message.startsWith("runHTTPRequest:"))throw B}let G=V1(Q),V=V1(W),K=X.body?` -d ${V1(String(X.body))}`:"";return{toolName:"bash",args:{command:`curl -s -X ${G} -- ${V}${K}`,description:`DWS HTTP ${Q}`}}}default:return{toolName:$,args:X}}}function Y5($){if(!$)throw Error("filePath is required");if($.includes("\x00"))throw Error("filePath contains null bytes");let X=mX("path"),Y=X.resolve($),J=process.cwd();if(!Y.startsWith(J+X.sep)&&Y!==J)throw Error(`filePath resolves outside the working directory: ${$}`);return Y}function $Q($,X){if($!=="edit"&&$!=="write")return null;let Y=mX("fs"),J;try{J=JSON.parse(X)}catch{return{result:"",error:`${$} fallback: invalid JSON arguments`}}try{if($==="write"){let q=String(J.filePath??"");if(!q)return{result:"",error:"write fallback: filePath is required"};let H=Y5(q),M=String(J.content??"");return Y.writeFileSync(H,M,"utf-8"),{result:"File written successfully.",title:q,metadata:{output:"File written successfully."}}}let Q=String(J.filePath??""),z=String(J.oldString??""),W=String(J.newString??"");if(!Q)return{result:"",error:"edit fallback: filePath is required"};if(!z&&!W)return{result:"",error:"edit fallback: oldString and newString are both empty"};let G=Y5(Q),V;try{V=Y.readFileSync(G,"utf-8")}catch{V=""}if(z==="")return Y.writeFileSync(G,W,"utf-8"),{result:"Edit applied successfully.",title:Q,metadata:{output:"Edit applied successfully."}};let K=V.indexOf(z);if(K===-1)return{result:"",error:`edit fallback: could not find oldString in ${Q}`};let B=V.substring(0,K)+W+V.substring(K+z.length);return Y.writeFileSync(G,B,"utf-8"),{result:"Edit applied successfully.",title:Q,metadata:{output:"Edit applied successfully."}}}catch(Q){let z=Q instanceof Error?Q.message:String(Q);return{result:"",error:W8(z)}}}var XQ=1500000,J5=500;function Q5($){let X=$.length>J5?$.slice(0,J5)+"...":$;return W8(X)}var YQ="__chat_shared__",JQ=class{config;fetchFn;tokenCache=new Map;constructor($){this.config=$,this.fetchFn=$.fetch??fetch}getCacheKey($,X){let Y=$==="chat"?YQ:$;return X?`${Y}:${X}`:Y}async getToken($=z8,X,Y=!1){let J=Date.now(),Q=this.getCacheKey($,X),z=this.tokenCache.get(Q);if(!Y&&z&&z.expiresAt>J)return z.token;if(Y)this.tokenCache.delete(Q);let W=`${this.config.instanceUrl}/api/v4/ai/duo_workflows/direct_access`,G={workflow_definition:$};if(X)G.root_namespace_id=X;if(this.config.featureFlags&&Object.keys(this.config.featureFlags).length>0)G.feature_flags=this.config.featureFlags;try{let V=await this.fetchFn(W,{method:"POST",headers:{...this.config.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify(G)});if(!V.ok){let B=await V.text(),q=Q5(B);if(V.status===401&&this.config.refreshApiKey&&!Y)try{return await this.config.refreshApiKey(),await this.getToken($,X,!0)}catch{throw new x({message:`Failed to get workflow token: ${V.status} ${V.statusText} - ${q}`,statusCode:V.status,responseBody:q})}if(V.status===403)throw new x({message:"GitLab Duo Agent Platform access denied. GitLab Duo Agent Platform requires GitLab Ultimate with Duo Enterprise add-on. Ensure: (1) Your instance has GitLab Ultimate, (2) Duo Enterprise add-on is enabled, (3) Your account has access to AI features.",statusCode:V.status,responseBody:q});throw new x({message:`Failed to get workflow token: ${V.status} ${V.statusText} - ${q}`,statusCode:V.status,responseBody:q})}let K=await V.json();return this.tokenCache.set(Q,{token:K,expiresAt:J+XQ}),K}catch(V){if(V instanceof x)throw V;throw new x({message:`Failed to get workflow token: ${V}`,cause:V})}}async createWorkflow($,X){if(!$||typeof $!=="string")throw new x({message:"goal is required and must be a non-empty string"});if($.length>1e4)throw new x({message:"goal exceeds maximum length of 10000 characters"});let Y=`${this.config.instanceUrl}/api/v4/ai/duo_workflows/workflows`,J={goal:$,project_id:X?.projectId,namespace_id:X?.namespaceId,workflow_definition:X?.workflowDefinition??z8,agent_privileges:X?.agentPrivileges??sJ,environment:X?.environment??oJ,allow_agent_to_request_user:X?.allowAgentToRequestUser??!0,...X?.aiCatalogItemVersionId!==void 0&&{ai_catalog_item_version_id:X.aiCatalogItemVersionId}};try{let Q=await this.fetchFn(Y,{method:"POST",headers:{...this.config.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify(J)});if(!Q.ok){let W=await Q.text(),G=Q5(W);throw new x({message:`Failed to create workflow: ${Q.status} ${Q.statusText} - ${G}`,statusCode:Q.status,responseBody:G})}return(await Q.json()).id.toString()}catch(Q){if(Q instanceof x)throw Q;throw new x({message:`Failed to create workflow: ${Q}`,cause:Q})}}invalidateToken($,X){if($)this.tokenCache.delete(this.getCacheKey($,X));else this.tokenCache.clear()}},zQ=class{cache=new Map;defaultTTL;constructor($=300000){this.defaultTTL=$}get($){let X=this.cache.get($);if(!X)return null;if(Date.now()>X.expiresAt)return this.cache.delete($),null;return X.project}set($,X,Y){this.cache.set($,{project:X,expiresAt:Date.now()+(Y??this.defaultTTL)})}has($){return this.get($)!==null}delete($){this.cache.delete($)}clear(){this.cache.clear()}get size(){return this.cache.size}cleanup(){let $=Date.now();for(let[X,Y]of this.cache.entries())if($>Y.expiresAt)this.cache.delete(X)}},K5=class{config;fetchFn;cache;constructor($){this.config={gitTimeout:5000,...$},this.fetchFn=$.fetch??fetch,this.cache=$.cache??new zQ}async detectProject($,X="origin"){let Y=H5.resolve($),J=this.cache.get(Y);if(J)return J;try{let Q=await this.getGitRemoteUrl($,X);if(!Q)return null;let z=this.parseGitRemoteUrl(Q,this.config.instanceUrl);if(!z)return null;let W=await this.getProjectByPath(z);return this.cache.set(Y,W),W}catch(Q){throw Q instanceof x?Q:new x({message:`Project detection failed: ${Q}`,cause:Q})}}parseGitRemoteUrl($,X){try{let Y=new URL(X).hostname,J=$.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(J){let[,z,W]=J;if(z.split(":")[0]===Y){let V=W.replace(/^\d+\//,"");return V.endsWith(".git")?V.slice(0,-4):V}}let Q=$.match(/^(https?):\/\/([^/]+)\/(.+?)(?:\.git)?$/);if(Q){let[,,z,W]=Q;if(z.split(":")[0]===Y)return W.endsWith(".git")?W.slice(0,-4):W}return null}catch(Y){return null}}async getGitRemoteUrl($,X="origin"){return new Promise((Y)=>{let J=QQ("git",["config","--get",`remote.${X}.url`],{cwd:$,timeout:this.config.gitTimeout}),Q="",z="";J.stdout?.on("data",(W)=>{Q+=W.toString()}),J.stderr?.on("data",(W)=>{z+=W.toString()}),J.on("close",(W)=>{if(W===0&&Q.trim())Y(Q.trim());else Y(null)}),J.on("error",()=>{Y(null)})})}async getProjectByPath($){let X=encodeURIComponent($),Y=`${this.config.instanceUrl}/api/v4/projects/${X}`;try{let J=await this.fetchFn(Y,{method:"GET",headers:this.config.getHeaders()});if(!J.ok)throw new x({message:`Failed to fetch project '${$}': ${J.status} ${J.statusText}`});let Q=await J.json();return{id:Q.id,path:Q.path,pathWithNamespace:Q.path_with_namespace,name:Q.name,namespaceId:Q.namespace?.id}}catch(J){if(J instanceof x)throw J;throw new x({message:`Failed to fetch project '${$}': ${J}`,cause:J})}}clearCache(){this.cache.clear()}getCache(){return this.cache}},WQ=`
74
+ query aiChatAvailableModels($rootNamespaceId: GroupID!) {
75
+ metadata {
76
+ featureFlags(names: ["ai_user_model_switching"]) {
77
+ enabled
78
+ name
79
+ }
80
+ version
81
+ }
82
+
83
+ aiChatAvailableModels(rootNamespaceId: $rootNamespaceId) {
84
+ defaultModel {
85
+ name
86
+ ref
87
+ }
88
+ selectableModels {
89
+ name
90
+ ref
91
+ }
92
+ pinnedModel {
93
+ name
94
+ ref
95
+ }
96
+ }
97
+ }
98
+ `,GQ=600000,B5=class{config;fetchFn;cache=new Map;constructor($){this.config=$,this.fetchFn=$.fetch??fetch}async discover($){let X=this.cache.get($);if(X&&X.expiresAt>Date.now())return X.data;let Y=`${this.config.instanceUrl}/api/graphql`;try{let J=await this.fetchFn(Y,{method:"POST",headers:{...this.config.getHeaders(),"Content-Type":"application/json"},body:JSON.stringify({query:WQ,variables:{rootNamespaceId:$}})});if(!J.ok){let K=await J.text();throw new x({message:`Model discovery GraphQL request failed: ${J.status} ${J.statusText} - ${K}`,statusCode:J.status,responseBody:K})}let Q=await J.json();if(Q.errors&&Q.errors.length>0)throw new x({message:`Model discovery GraphQL errors: ${Q.errors.map((K)=>K.message).join(", ")}`});let z=Q.data?.aiChatAvailableModels,W=Q.data?.metadata,G=W?.featureFlags?.find((K)=>K.name==="ai_user_model_switching")?.enabled??!1,V={defaultModel:z?.defaultModel??null,selectableModels:z?.selectableModels??[],pinnedModel:z?.pinnedModel??null,modelSwitchingEnabled:G,instanceVersion:W?.version??null};return this.cache.set($,{data:V,expiresAt:Date.now()+GQ}),V}catch(J){if(J instanceof x)throw J;throw new x({message:`Model discovery failed: ${J}`,cause:J})}}async getEffectiveModelRef($,X){let Y=await this.discover($);if(Y.pinnedModel)return Y.pinnedModel.ref;if(X&&Y.modelSwitchingEnabled){if(Y.selectableModels.some((Q)=>Q.ref===X))return X}return Y.defaultModel?.ref??null}invalidateCache(){this.cache.clear()}},VQ=600000;function HQ(){let $=process.env.XDG_CACHE_HOME||V8.join(q5.homedir(),".cache");return V8.join($,"opencode","gitlab-workflow-model-cache.json")}function KQ($,X){let Y=(X||"https://gitlab.com").replace(/\/$/,"");return w5.createHash("sha256").update(`${$}\x00${Y}`).digest("hex").slice(0,12)}var N5=class{filePath;key;constructor($,X){this.filePath=HQ(),this.key=KQ($,X)}readAll(){try{if(!I$.existsSync(this.filePath))return{};let $=I$.readFileSync(this.filePath,"utf-8");return JSON.parse($)}catch{return{}}}writeAll($){try{let X=V8.dirname(this.filePath);I$.mkdirSync(X,{recursive:!0,mode:448}),I$.writeFileSync(this.filePath,JSON.stringify($,null,2),{mode:384})}catch{}}load(){return this.readAll()[this.key]??null}save($){let X=this.readAll();X[this.key]=$,this.writeAll(X)}isDiscoveryExpired(){let $=this.load();if(!$?.discovery||!$.updatedAt)return!0;return Date.now()-new Date($.updatedAt).getTime()>VQ}saveDiscovery($,X){let Y=this.load();this.save({discovery:$,project:X!==void 0?X:Y?.project??null,selectedModelRef:Y?.selectedModelRef??null,selectedModelName:Y?.selectedModelName??null,updatedAt:new Date().toISOString()})}saveSelection($,X){let Y=this.load(),J=X;if(!J&&$&&Y?.discovery){let Q=Y.discovery;J=(Q.pinnedModel?.ref===$?Q.pinnedModel:Q.selectableModels.find((W)=>W.ref===$)??(Q.defaultModel?.ref===$?Q.defaultModel:null))?.name??null}this.save({discovery:Y?.discovery??null,project:Y?.project??null,selectedModelRef:$,selectedModelName:J,updatedAt:new Date().toISOString()})}clear(){let $=this.readAll();if(delete $[this.key],Object.keys($).length===0)try{if(I$.existsSync(this.filePath))I$.unlinkSync(this.filePath)}catch{}else this.writeAll($)}getSelectedModelRef(){return this.load()?.selectedModelRef??null}getSelectedModelName(){return this.load()?.selectedModelName??null}getDiscovery(){return this.load()?.discovery??null}};function vX($){if(!$||typeof $!=="object")return $;let X={};for(let[Y,J]of Object.entries($)){if(Y==="description"||Y==="examples"||Y==="default")continue;if(Y==="properties"&&typeof J==="object"&&J!==null){let Q={};for(let[z,W]of Object.entries(J))if(typeof W==="object"&&W!==null)Q[z]=vX(W);else Q[z]=W;X[Y]=Q}else if(Y==="items"&&typeof J==="object"&&J!==null)X[Y]=vX(J);else X[Y]=J}return X}function BQ($){try{return JSON.stringify(vX(JSON.parse($)))}catch{return $}}function qQ($){if(!$||typeof $!=="object")return $;let X={type:$.type||"object"};if($.required)X.required=$.required;if($.properties&&typeof $.properties==="object"){let Y={};for(let[J,Q]of Object.entries($.properties))if(typeof Q==="object"&&Q!==null){let z=Q;Y[J]={type:z.type||"string"}}else Y[J]={type:"string"};X.properties=Y}return X}function wQ($){try{return JSON.stringify(qQ(JSON.parse($)))}catch{return $}}var NQ=class ${specificationVersion="v3";modelId;supportedUrls={};config;workflowOptions;tokenClient;projectDetector;modelDiscovery;modelCache;detectedProjectPath=null;sessionWorkflows=new Map;currentWorkflowId=null;currentWorkflowDefinition=null;persistedAgentEmitted=new Map;activeClients=new Set;_selectedModelRef;_selectedModelName;_rootNamespaceId;_discoveryPromise;get selectedModelRef(){return this._selectedModelRef??null}set selectedModelRef(X){this._selectedModelRef=X??void 0,this._selectedModelName=void 0,this.modelCache.saveSelection(X,null)}get selectedModelName(){return this._selectedModelName??null}set selectedModelName(X){this._selectedModelName=X??void 0,this.modelCache.saveSelection(this._selectedModelRef??null,X)}_toolExecutor=null;onUsageUpdate=null;sessionPreapprovedTools=[];sessionID="";set approvalHandler(X){this.workflowOptions.approvalHandler=X??void 0}get approvalHandler(){return this.workflowOptions.approvalHandler??null}onSelectModel=null;set systemPrompt(X){this.workflowOptions.systemPrompt=X??void 0}get systemPrompt(){return this.workflowOptions.systemPrompt??null}get toolExecutor(){return this._toolExecutor}set toolExecutor(X){if(X)try{let{AsyncResource:Y}=mX("async_hooks");this._toolExecutor=Y.bind(X)}catch{this._toolExecutor=X}else this._toolExecutor=null}constructor(X,Y,J={}){this.modelId=X,this.config=Y,this.workflowOptions=J;let Q=J.workingDirectory??process.cwd();this.modelCache=new N5(Q,Y.instanceUrl);let z=this.modelCache.load();if(z?.selectedModelRef)this._selectedModelRef=z.selectedModelRef;if(z?.selectedModelName)this._selectedModelName=z.selectedModelName;this.tokenClient=new JQ({instanceUrl:Y.instanceUrl,getHeaders:Y.getHeaders,refreshApiKey:Y.refreshApiKey,fetch:Y.fetch,featureFlags:Y.featureFlags}),this.projectDetector=new K5({instanceUrl:Y.instanceUrl,getHeaders:Y.getHeaders,fetch:Y.fetch}),this.modelDiscovery=new B5({instanceUrl:Y.instanceUrl,getHeaders:Y.getHeaders,fetch:Y.fetch})}get provider(){return this.config.provider}async resolveProjectId(){if(this.workflowOptions.projectId)return this.workflowOptions.projectId;if(this.detectedProjectPath)return this.detectedProjectPath;let X=this.workflowOptions.workingDirectory??process.cwd(),Y=await this.projectDetector.detectProject(X);if(Y)return this.detectedProjectPath=Y.pathWithNamespace,Y.pathWithNamespace;return}async resolveRootNamespaceId(){if(this.workflowOptions.rootNamespaceId)return this.workflowOptions.rootNamespaceId;if(this._rootNamespaceId!==void 0)return this._rootNamespaceId;let X=this.workflowOptions.workingDirectory??process.cwd(),Y=await this.projectDetector.detectProject(X);if(Y?.namespaceId){let J=`gid://gitlab/Group/${Y.namespaceId}`;return this._rootNamespaceId=J,J}return this._rootNamespaceId=null,null}async resolveModelRef(){let X=lJ(this.modelId);if(this.modelId!=="duo-workflow")return X??"default";if(this._selectedModelRef)return this._selectedModelRef;if(!this._discoveryPromise)this._discoveryPromise=this.doResolveModelRef(),this._discoveryPromise.finally(()=>{this._discoveryPromise=void 0});return this._discoveryPromise}async doResolveModelRef(){let X=await this.resolveRootNamespaceId();if(!X)return this._selectedModelRef="default","default";try{let Y=await this.modelDiscovery.discover(X);if(this.modelCache.saveDiscovery(Y),Y.pinnedModel)return this._selectedModelRef=Y.pinnedModel.ref,this._selectedModelName=Y.pinnedModel.name,this.modelCache.saveSelection(Y.pinnedModel.ref,Y.pinnedModel.name),Y.pinnedModel.ref;let J=this.onSelectModel??this.workflowOptions.onSelectModel;if(Y.selectableModels.length>0&&J){let Q=await J(Y.selectableModels);if(Q){let z=Y.selectableModels.find((W)=>W.ref===Q);if(z)return this._selectedModelRef=z.ref,this._selectedModelName=z.name,this.modelCache.saveSelection(z.ref,z.name),z.ref}}if(Y.defaultModel)return this._selectedModelRef=Y.defaultModel.ref,this._selectedModelName=Y.defaultModel.name,this.modelCache.saveSelection(Y.defaultModel.ref,Y.defaultModel.name),Y.defaultModel.ref}catch{let Y=this.modelCache.load();if(Y?.selectedModelRef)return this._selectedModelRef=Y.selectedModelRef,this._selectedModelName=Y.selectedModelName??void 0,Y.selectedModelRef}return this._selectedModelRef="default","default"}async discoverModels(X){let Y=await this.modelDiscovery.discover(X);return this.modelCache.saveDiscovery(Y),Y}getModelCache(){return this.modelCache}stopWorkflow(){for(let X of this.activeClients)if(X.isConnected)X.stop()}resetWorkflow(X){if(X)this.sessionWorkflows.delete(X);else this.sessionWorkflows.clear(),this.currentWorkflowId=null,this.persistedAgentEmitted.clear()}get workflowId(){return this.currentWorkflowId}createUsage(X){return{inputTokens:{total:X?.inputTotal,noCache:X?.inputTotal,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:X?.outputTotal,text:X?.outputTotal,reasoning:void 0}}}createFinishReason(X,Y){return{unified:X,raw:Y}}async doGenerate(X){let{stream:Y}=await this.doStream(X),J=Y.getReader(),Q=[],z=[],W={unified:"other",raw:void 0},G=this.createUsage();try{while(!0){let{done:B,value:q}=await J.read();if(B)break;switch(q.type){case"text-delta":Q.push(q.delta);break;case"tool-call":z.push({type:"tool-call",toolCallId:q.toolCallId,toolName:q.toolName,input:q.input});break;case"finish":if(W=q.finishReason,q.usage)G=q.usage;break;case"error":throw q.error}}}finally{J.releaseLock()}let V=[],K=Q.join("");if(K)V.push({type:"text",text:K});return V.push(...z),{content:V,finishReason:W,usage:G,warnings:[]}}async doStream(X){let Y=this.extractGoalFromPrompt(X.prompt),J=await this.resolveModelRef(),Q=this.extractMcpTools(X),z=[...this.workflowOptions.preapprovedTools??Q.map((n)=>n.name),...this.sessionPreapprovedTools],W=this.buildAdditionalContext(X.prompt),G=this.toolExecutor??null,V=new Set(X.tools?.map((n)=>n.name)??[]),K=X.providerOptions?.gitlab,B=K?.workflowDefinition??this.workflowOptions.workflowDefinition,q=K?.flowConfig??void 0,H=K?.flowConfigSchemaVersion??void 0,M=K?.aiCatalogItemVersionId??void 0;await this.tokenClient.getToken(B??z8,this.workflowOptions.rootNamespaceId);let O=await this.resolveProjectId(),_=q??B??z8,R=this.sessionID,L=this.sessionWorkflows.get(R);if(L&&L.workflowDefinition!==_)this.sessionWorkflows.delete(R),L=void 0;let A=R==="";if(A&&this.currentWorkflowId&&this.currentWorkflowDefinition!==_)this.currentWorkflowId=null,this.currentWorkflowDefinition=null;let E;if(L)E=L.workflowId;else if(A&&this.currentWorkflowId)E=this.currentWorkflowId;else if(E=await this.tokenClient.createWorkflow(Y,{projectId:O,namespaceId:this.workflowOptions.namespaceId,workflowDefinition:B,agentPrivileges:this.workflowOptions.agentPrivileges,aiCatalogItemVersionId:M}),A)this.currentWorkflowId=E,this.currentWorkflowDefinition=_;else this.sessionWorkflows.set(R,{workflowId:E,workflowDefinition:_,agentEmitted:new Map,toolEntries:new Set}),L=this.sessionWorkflows.get(R);let P=new X5;this.activeClients.add(P);let l=0,p={streamClosed:!1,streamedInputChars:0,streamedOutputChars:0,pendingToolCount:0,approvalPending:!1,deferredClose:null,activeTextBlockId:null,agentMessageEmitted:new Map(L?.agentEmitted??this.persistedAgentEmitted),currentAgentMessageId:"",activeClient:P,processedRequestIDs:new Set,emittedToolEntries:new Set(L?.toolEntries),emittedToolKeys:new Set,sessionKey:R};for(let n of X.prompt)if(n.role==="system")p.streamedInputChars+=n.content.length;else if(n.role==="user"){for(let u of n.content)if(u.type==="text")p.streamedInputChars+=u.text.length}let i;return{stream:new ReadableStream({start:async(n)=>{try{await P.connect({instanceUrl:this.config.instanceUrl,modelRef:J,headers:this.config.getHeaders(),projectId:this.workflowOptions.projectId,namespaceId:this.workflowOptions.namespaceId,rootNamespaceId:this.workflowOptions.rootNamespaceId,aiCatalogItemVersionId:M,workflowDefinition:B??this.workflowOptions.workflowDefinition},(L4)=>{this.handleWorkflowEvent(p,L4,n,P,G,()=>`text-${l++}`,V,i,{aiCatalogItemVersionId:M,workflowDefinition:B??this.workflowOptions.workflowDefinition})});let u=B??z8,R$=this.workflowOptions.clientCapabilities??aJ,K8=await this.buildWorkflowMetadata(),V2=JSON.stringify(K8),B8=JSON.stringify({workflowID:E,clientVersion:yX,workflowDefinition:u,goal:Y,workflowMetadata:V2,clientCapabilities:R$,preapproved_tools:z}).length+100,E4=this.trimPayload(Q,W,B8),O5=z.filter((L4)=>E4.mcpTools.some((E5)=>E5.name===L4));i={workflowID:E,clientVersion:yX,workflowDefinition:u,goal:Y,workflowMetadata:V2,additional_context:E4.additionalContext,clientCapabilities:R$,mcpTools:E4.mcpTools,preapproved_tools:O5};let cX=q??this.workflowOptions.flowConfig,lX=H??this.workflowOptions.flowConfigSchemaVersion;if(cX)i.flowConfig=cX;if(lX)i.flowConfigSchemaVersion=lX;else if(i.flowConfig)i.flowConfigSchemaVersion="v1";P.sendStartRequest(i),n.enqueue({type:"stream-start",warnings:[]}),n.enqueue({type:"response-metadata",id:E,modelId:J})}catch(u){if(!p.streamClosed)n.enqueue({type:"error",error:u instanceof x?u:new x({message:`Workflow connection failed: ${u}`,cause:u})}),p.streamClosed=!0,n.close()}},cancel:(n)=>{if(P.stop(),P.close(),this.activeClients.delete(P),p.activeClient=null,!p.streamClosed)if(p.sessionKey)this.sessionWorkflows.delete(p.sessionKey);else this.currentWorkflowId=null}}),request:{body:{workflowId:E,modelRef:J,goal:Y}}}}handleWorkflowEvent(X,Y,J,Q,z,W,G,V,K){if(X.streamClosed)return;switch(Y.type){case"checkpoint":{this.processCheckpoint(X,Y.data,J,W);break}case"tool-request":{let{requestID:B,data:q}=Y;if(X.processedRequestIDs.has(B))break;X.processedRequestIDs.add(B),X.emittedToolKeys.add(q.name);let H;try{JSON.parse(q.args),H=q.args}catch{H=q.args||"{}"}if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;J.enqueue({type:"tool-input-start",id:B,toolName:q.name,providerExecuted:!0}),J.enqueue({type:"tool-input-delta",id:B,delta:H}),J.enqueue({type:"tool-input-end",id:B}),J.enqueue({type:"tool-call",toolCallId:B,toolName:q.name,input:H,providerExecuted:!0}),this.executeToolAndRespond(X,Q,J,B,q.name,H,z).catch(()=>{});break}case"builtin-tool-request":{if(X.processedRequestIDs.has(Y.requestID))break;X.processedRequestIDs.add(Y.requestID);let B=eJ(Y.toolName,Y.data,G);X.emittedToolKeys.add(B.toolName);let q=JSON.stringify(B.args);if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;J.enqueue({type:"tool-input-start",id:Y.requestID,toolName:B.toolName,providerExecuted:!0}),J.enqueue({type:"tool-input-delta",id:Y.requestID,delta:q}),J.enqueue({type:"tool-input-end",id:Y.requestID}),J.enqueue({type:"tool-call",toolCallId:Y.requestID,toolName:B.toolName,input:q,providerExecuted:!0}),this.executeToolAndRespond(X,Q,J,Y.requestID,B.toolName,q,z).catch(()=>{});break}case"approval-required":{X.approvalPending=!0,this.approveAndResume(X,Y.tools,V,J,z,W,G,K).catch((B)=>{if(X.approvalPending=!1,X.deferredClose){let q=X.deferredClose;X.deferredClose=null,q()}});break}case"completed":{if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;let B=()=>{if(X.streamClosed)return;let q=Math.ceil(X.streamedInputChars/4),H=Math.ceil(X.streamedOutputChars/4);J.enqueue({type:"finish",finishReason:this.createFinishReason("stop","completed"),usage:this.createUsage({inputTotal:q,outputTotal:H})}),X.streamClosed=!0,J.close(),this.cleanupClient(X,!1)};if(X.pendingToolCount>0||X.approvalPending)X.deferredClose=B;else X.deferredClose=null,B();break}case"failed":{if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;J.enqueue({type:"error",error:new x({message:`Workflow failed: ${W8(Y.error.message)}`,cause:Y.error})}),X.streamClosed=!0,J.close(),this.cleanupClient(X,!0);break}case"closed":{if(X.streamClosed)break;if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;let B=()=>{if(X.streamClosed)return;if(Y.code!==1000)J.enqueue({type:"error",error:new x({message:`WebSocket closed unexpectedly: code=${Y.code} reason=${W8(Y.reason)}`,statusCode:Y.code})}),X.streamClosed=!0,J.close(),this.cleanupClient(X,!0);else{let q=Math.ceil(X.streamedInputChars/4),H=Math.ceil(X.streamedOutputChars/4);J.enqueue({type:"finish",finishReason:this.createFinishReason("stop","closed"),usage:this.createUsage({inputTotal:q,outputTotal:H})}),X.streamClosed=!0,J.close(),this.cleanupClient(X,!1)}};if(X.pendingToolCount>0||X.approvalPending)X.deferredClose=B;else X.deferredClose=null,B();break}}}processCheckpoint(X,Y,J,Q){if(!Y.checkpoint){if(Y.content){if(!X.activeTextBlockId)X.activeTextBlockId=Q(),J.enqueue({type:"text-start",id:X.activeTextBlockId});J.enqueue({type:"text-delta",id:X.activeTextBlockId,delta:Y.content}),X.streamedOutputChars+=Y.content.length}return}let z;try{z=JSON.parse(Y.checkpoint)}catch(G){return}let W=z.channel_values?.ui_chat_log;if(!W||!Array.isArray(W)||W.length===0)return;if(Y.status!=="RUNNING"&&Y.status!=="INPUT_REQUIRED"&&Y.status!=="FINISHED"&&Y.status!=="COMPLETED"&&Y.status!=="TOOL_CALL_APPROVAL_REQUIRED")return;for(let G=0;G<W.length;G++){let V=W[G];if(V.message_type==="tool"&&V.tool_info){let _=V.message_id||V.correlation_id||`tool-${G}`;if(X.emittedToolEntries.has(_))continue;let R=V.tool_info.name,L=JSON.stringify(V.tool_info.args??{});if(X.emittedToolKeys.has(R)){X.emittedToolEntries.add(_);let l=this.sessionWorkflows.get(X.sessionKey);if(l)l.toolEntries.add(_);continue}if(X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;J.enqueue({type:"tool-input-start",id:_,toolName:R,providerExecuted:!0}),J.enqueue({type:"tool-input-delta",id:_,delta:L}),J.enqueue({type:"tool-input-end",id:_}),J.enqueue({type:"tool-call",toolCallId:_,toolName:R,input:L,providerExecuted:!0,dynamic:!0});let A=V.tool_info.tool_response,E=typeof A==="string"?A:A?A.content:V.content||"";J.enqueue({type:"tool-result",toolCallId:_,toolName:R,result:{output:E,title:R,metadata:{}},isError:!1}),X.emittedToolEntries.add(_);let P=this.sessionWorkflows.get(X.sessionKey);if(P)P.toolEntries.add(_);continue}if(V.message_type!=="agent")continue;let K=V.content||"",B=V.message_id||`idx-${G}`,q=X.agentMessageEmitted.get(B)??0;if(K.length<=q)continue;let H=K.slice(q);if(B!==X.currentAgentMessageId&&X.activeTextBlockId)J.enqueue({type:"text-end",id:X.activeTextBlockId}),X.activeTextBlockId=null;if(!X.activeTextBlockId)X.activeTextBlockId=Q(),J.enqueue({type:"text-start",id:X.activeTextBlockId});J.enqueue({type:"text-delta",id:X.activeTextBlockId,delta:H}),X.streamedOutputChars+=H.length,X.agentMessageEmitted.set(B,K.length),(this.sessionWorkflows.get(X.sessionKey)?.agentEmitted??this.persistedAgentEmitted).set(B,K.length),X.currentAgentMessageId=B}}async executeToolAndRespond(X,Y,J,Q,z,W,G){X.pendingToolCount++;let V=(K)=>{if(X.streamClosed)return;try{J.enqueue(K)}catch{}};try{if(G){let K=await G(z,W,Q);if(K.error&&/^Unknown tool:/.test(K.error)){let M=$Q(z,W);if(M)K=M}Y.sendActionResponse(Q,K.result,K.error),X.streamedInputChars+=W.length,X.streamedOutputChars+=K.result.length;let B=K.result,q=K.title??`${z} result`,H=K.metadata??{output:K.result};if(K.error){let M;if(typeof K.error==="string")M=K.error;else if(K.error&&typeof K.error==="object")M=JSON.stringify(K.error);else M=String(K.error);V({type:"tool-result",toolCallId:Q,toolName:z,result:M,isError:!0})}else V({type:"tool-result",toolCallId:Q,toolName:z,result:{output:B,title:q,metadata:H},isError:!1})}else{let K=`Tool executor not configured for tool: ${z}`;Y.sendActionResponse(Q,"",K),V({type:"tool-result",toolCallId:Q,toolName:z,result:K,isError:!0})}}catch(K){let B=K instanceof Error?K.message:String(K),q=W8(B);Y.sendActionResponse(Q,"",q),V({type:"tool-result",toolCallId:Q,toolName:z,result:q,isError:!0})}finally{if(X.pendingToolCount--,this.onUsageUpdate)try{this.onUsageUpdate({inputTokens:Math.ceil(X.streamedInputChars/4),outputTokens:Math.ceil(X.streamedOutputChars/4)})}catch{}if(X.pendingToolCount<=0&&X.deferredClose){let K=X.deferredClose;X.deferredClose=null,K()}}}cleanupClient(X,Y=!1){if(X.activeClient)X.activeClient.close(),this.activeClients.delete(X.activeClient),X.activeClient=null;if(Y)if(X.sessionKey)this.sessionWorkflows.delete(X.sessionKey);else this.currentWorkflowId=null,this.persistedAgentEmitted.clear()}async approveAndResume(X,Y,J,Q,z,W,G,V){let K=this.workflowOptions.approvalHandler;if(!K||!J){if(X.approvalPending=!1,X.deferredClose){let _=X.deferredClose;X.deferredClose=null,_()}return}let B;try{B=await K(Y)}catch(_){if(X.approvalPending=!1,!X.streamClosed)Q.error(_);return}X.approvalPending=!1,X.deferredClose=null,this.cleanupClient(X,!1);let q=B.approved?{approval:{tool_name:Y[0]?.name,tool_args_json:Y[0]?.args}}:{rejection:{message:B.message??"User rejected"}},H={...J,approval:q,preapproved_tools:B.approved?[...J.preapproved_tools??[],...Y.map((_)=>_.name)]:J.preapproved_tools??[]},M=new X5;this.activeClients.add(M),X.activeClient=M;let O=await this.resolveModelRef();try{await M.connect({instanceUrl:this.config.instanceUrl,modelRef:O,headers:this.config.getHeaders(),projectId:this.workflowOptions.projectId,namespaceId:this.workflowOptions.namespaceId,rootNamespaceId:this.workflowOptions.rootNamespaceId,aiCatalogItemVersionId:V?.aiCatalogItemVersionId,workflowDefinition:V?.workflowDefinition},(_)=>this.handleWorkflowEvent(X,_,Q,M,z,W,G,H,V)),M.sendStartRequest(H)}catch(_){if(this.cleanupClient(X,!0),!X.streamClosed)Q.error(_)}}async buildWorkflowMetadata(){let X={extended_logging:!1,tool_approval_for_session_enabled:!0};try{let Y=this.workflowOptions.workingDirectory??process.cwd(),J=await this.getGitInfo(Y);if(J.url)X.git_url=J.url;if(J.sha)X.git_sha=J.sha;if(J.branch)X.git_branch=J.branch}catch{}return X}async getGitInfo(X){let{execFile:Y}=await import("child_process"),{promisify:J}=await import("util"),Q=J(Y),z={cwd:X,timeout:3000},W=async(B,q)=>{try{let{stdout:H}=await Q(B,q,z);return H.trim()||void 0}catch{return}},[G,V,K]=await Promise.all([W("git",["remote","get-url","origin"]),W("git",["rev-parse","HEAD"]),W("git",["rev-parse","--abbrev-ref","HEAD"])]);return{url:G,sha:V,branch:K}}static SYSTEM_REMINDER_RE=/<system-reminder>([\s\S]*?)<\/system-reminder>/g;extractGoalFromPrompt(X){for(let Y=X.length-1;Y>=0;Y--){let J=X[Y];if(J.role==="user"){let Q=J.content.filter((z)=>z.type==="text").map((z)=>z.text);if(Q.length>0){let z=Q.join(`
99
+ `);return z.replace($.SYSTEM_REMINDER_RE,"").trim()||z}}}return""}extractMcpTools(X){if(this.workflowOptions.mcpTools&&this.workflowOptions.mcpTools.length>0)return this.workflowOptions.mcpTools;if(!X.tools||X.tools.length===0)return[];return X.tools.filter((Y)=>Y.type==="function").map((Y)=>({name:Y.name,description:Y.description||"",inputSchema:JSON.stringify(Y.inputSchema||{type:"object",properties:{}})}))}static MAX_START_REQUEST_BYTES=4194304;trimPayload(X,Y,J){let Q=$.MAX_START_REQUEST_BYTES-J,z=JSON.stringify(Y);if(JSON.stringify(X).length+z.length<=Q)return{mcpTools:X,additionalContext:Y};let V=X.map((M)=>({name:M.name,description:M.description,inputSchema:BQ(M.inputSchema)}));if(JSON.stringify(V).length+z.length<=Q)return{mcpTools:V,additionalContext:Y};let B=V.map((M)=>({name:M.name,description:M.description,inputSchema:wQ(M.inputSchema)}));if(JSON.stringify(B).length+z.length<=Q)return{mcpTools:B,additionalContext:Y};let H=[...B];while(H.length>0){if(JSON.stringify(H).length+z.length<=Q)break;H.pop()}return{mcpTools:H,additionalContext:Y}}buildAdditionalContext(X){let Y=[];if(this.workflowOptions.additionalContext)Y.push(...this.workflowOptions.additionalContext);for(let J of X)if(J.role==="system")Y.push({category:"system_prompt",content:J.content,metadata:JSON.stringify({role:"system"})});else if(J.role==="assistant"){let Q=J.content.filter((z)=>z.type==="text").map((z)=>z.text).join(`
100
+ `);if(Q)Y.push({category:"conversation",content:Q,metadata:JSON.stringify({role:"assistant"})})}else if(J.role==="user"){for(let Q of J.content)if(Q.type==="text"){let W=Q.text.matchAll($.SYSTEM_REMINDER_RE);for(let G of W){let V=G[1].trim();if(V)Y.push({category:"agent_context",content:V,metadata:JSON.stringify({source:"system-reminder"})})}}}return Y}},UQ="1d89f9fdb23ee96d4e603201f6861dab6e143c5c3c00469a018a2d94bdc03d4e",CM="36f2a70cddeb5a0889d4fd8295c241b7e9848e89cf9e599d0eed2d8e5350fbf5",MQ="https://gitlab.com",FQ=300000,jM=["api"],OQ=class{fetch;constructor($=fetch){this.fetch=$}isTokenExpired($){return Date.now()>=$}needsRefresh($){return Date.now()>=$-FQ}async refreshIfNeeded($,X){if(!this.needsRefresh($.expiresAt))return $;if(this.isTokenExpired($.expiresAt))throw new x({message:"OAuth token has expired and cannot be used"});return this.exchangeRefreshToken({instanceUrl:$.instanceUrl,refreshToken:$.refreshToken,clientId:X})}async exchangeAuthorizationCode($){let{instanceUrl:X,code:Y,codeVerifier:J,clientId:Q,redirectUri:z}=$,W=await this.exchangeToken({instanceUrl:X,grantType:"authorization_code",code:Y,codeVerifier:J,clientId:Q||this.getClientId(X),redirectUri:z});return this.createTokensFromResponse(W,X)}async exchangeRefreshToken($){let{instanceUrl:X,refreshToken:Y,clientId:J}=$,Q=await this.exchangeToken({instanceUrl:X,grantType:"refresh_token",refreshToken:Y,clientId:J||this.getClientId(X)});return this.createTokensFromResponse(Q,X)}getClientId($){let X=process.env.GITLAB_OAUTH_CLIENT_ID;if(X)return X;if($===MQ)return UQ;throw new x({message:`No OAuth client ID configured for instance ${$}. Please provide a clientId parameter or set GITLAB_OAUTH_CLIENT_ID environment variable.`})}async exchangeToken($){let{instanceUrl:X,grantType:Y,code:J,codeVerifier:Q,refreshToken:z,clientId:W,redirectUri:G}=$,V={client_id:W,grant_type:Y};if(Y==="authorization_code"){if(!J||!Q||!G)throw new x({message:"Authorization code, code verifier, and redirect URI are required for authorization_code grant"});V.code=J,V.code_verifier=Q,V.redirect_uri=G}else if(Y==="refresh_token"){if(!z)throw new x({message:"Refresh token is required for refresh_token grant"});V.refresh_token=z}let K=`${X}/oauth/token`;try{let B=await this.fetch(K,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams(V).toString()});if(!B.ok){let H=await B.text();throw new x({message:`OAuth token exchange failed: ${B.status} ${B.statusText}`,cause:Error(H)})}return await B.json()}catch(B){if(B instanceof x)throw B;throw new x({message:`Failed to exchange OAuth token: ${B instanceof Error?B.message:String(B)}`,cause:B instanceof Error?B:void 0})}}createTokensFromResponse($,X){let Y=this.createExpiresTimestamp($);return{accessToken:$.access_token,refreshToken:$.refresh_token||"",expiresAt:Y,instanceUrl:X}}createExpiresTimestamp($){let X=$.created_at*1000,Y=$.expires_in*1000;return X+Y}};function M5(){let $=U5.homedir(),X=process.env.XDG_DATA_HOME;if(X)return O4.join(X,"opencode","auth.json");if(process.platform!=="win32")return O4.join($,".local","share","opencode","auth.json");return O4.join($,".opencode","auth.json")}async function EQ($){try{let X=M5();if(!G2.existsSync(X))return;let Y=JSON.parse(G2.readFileSync(X,"utf-8"));if(Y.gitlab?.type==="oauth"){let z=Y.gitlab;if(z.enterpriseUrl===$||z.enterpriseUrl===$.replace(/\/$/,""))return z}let J=$.replace(/\/$/,"");return Y[J]||Y[`${J}/`]}catch(X){throw Error(`Failed to load auth.json: ${X instanceof Error?X.message:X}`)}}async function z5($,X,Y){if($.apiKey)return $.apiKey;let J=await EQ(X);if(J?.type==="oauth"){let z=new OQ;if(z.needsRefresh(J.expires))try{let W=await z.exchangeRefreshToken({instanceUrl:X,refreshToken:J.refresh,clientId:Y}),G=M5(),V=JSON.parse(G2.readFileSync(G,"utf-8"));return V.gitlab={type:"oauth",refresh:W.refreshToken,access:W.accessToken,expires:W.expiresAt,enterpriseUrl:X},G2.writeFileSync(G,JSON.stringify(V,null,2),{mode:384}),W.accessToken}catch(W){let G=W instanceof Error?W.message:String(W),V=process.env[$.environmentVariableName];if(V)return V;throw new x({message:`OAuth token refresh failed and no fallback ${$.environmentVariableName} environment variable is set. Refresh error: ${G}. Re-authenticate with 'opencode auth login gitlab' or set ${$.environmentVariableName}.`})}else return J.access}let Q=process.env[$.environmentVariableName];if(!Q)throw new x({message:`${$.description} API key is missing. Pass it as the 'apiKey' parameter, set the ${$.environmentVariableName} environment variable, or authenticate with 'opencode auth login gitlab'.`});return Q}function LQ($,X){let Y=$["User-Agent"];return{...$,"User-Agent":Y?`${Y} ${X}`:X}}function DQ($={}){let X=$.instanceUrl??process.env.GITLAB_INSTANCE_URL??"https://gitlab.com",Y=$.name??"gitlab",J,Q,z=async()=>{if(J)return J;if(Q)return Q;return Q=z5({apiKey:$.apiKey,environmentVariableName:"GITLAB_TOKEN",description:"GitLab"},X,$.clientId),J=await Q,Q=void 0,J},W=async()=>{J=void 0,Q=void 0,J=await z5({apiKey:void 0,environmentVariableName:"GITLAB_TOKEN",description:"GitLab"},X,$.clientId)},G=()=>{let H=J||$.apiKey||process.env.GITLAB_TOKEN||"";if(!H)throw new x({message:"GitLab API key is missing. Pass it as the 'apiKey' parameter, set the GITLAB_TOKEN environment variable, or authenticate with 'opencode auth login gitlab'."});return LQ({Authorization:`Bearer ${H}`,"Content-Type":"application/json",...$.headers},`ai-sdk-gitlab/${IX}`)};z().catch(()=>{});let V=(H,M)=>{let O=e9(H);if(!O)throw new x({message:`Unknown model ID: ${H}. Model must be registered in MODEL_MAPPINGS.`});if(M?.providerModel){let E=mJ(O.provider);if(!E.includes(M.providerModel))throw new x({message:`Invalid providerModel '${M.providerModel}' for provider '${O.provider}'. Valid models: ${E.join(", ")}`})}let _={DuoAgentPlatformNext:!0,...$.featureFlags,...M?.featureFlags},L={...{"User-Agent":`gitlab-ai-provider/${IX}`},...$.aiGatewayHeaders,...M?.aiGatewayHeaders},A={provider:`${Y}.agentic`,instanceUrl:X,getHeaders:G,refreshApiKey:W,fetch:$.fetch,maxTokens:M?.maxTokens,featureFlags:_,aiGatewayUrl:$.aiGatewayUrl,aiGatewayHeaders:L};if(O.provider==="openai")return new pJ(H,{...A,openaiModel:M?.providerModel??O.model});return new hJ(H,{...A,anthropicModel:M?.providerModel??O.model})},K=(H,M)=>{let O=e9(H);if(!O||O.provider!=="workflow")throw new x({message:`Unknown workflow model ID: ${H}. Use 'duo-workflow' or a 'duo-workflow-*' model ID.`});return new NQ(H,{provider:`${Y}.workflow`,instanceUrl:X,getHeaders:G,refreshApiKey:W,fetch:$.fetch,featureFlags:{...$.featureFlags,...M?.featureFlags},aiGatewayUrl:$.aiGatewayUrl},M)},B=(H)=>{if(cJ(H))return K(H);return V(H)},q=Object.assign((H)=>B(H),{specificationVersion:"v3",languageModel:B,chat:B,agenticChat:V,workflowChat:K});return q.embeddingModel=(H)=>{throw new x({message:`GitLab provider does not support text embedding models. Model ID: ${H}`})},q.imageModel=(H)=>{throw new x({message:`GitLab provider does not support image models. Model ID: ${H}`})},q}var RM=DQ(),ZQ="https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/raw/main/ai_gateway/model_selection/models.yml",SQ=86400000,gX=200000,hX=64000;function uX(){let $=process.env.XDG_CACHE_HOME||H8.join(F5.homedir(),".cache");return H8.join($,"opencode","gitlab-model-configs.json")}function AQ(){try{let $=uX();if(!y$.existsSync($))return null;let X=y$.readFileSync($,"utf-8");return JSON.parse(X)}catch{return null}}function CQ($){try{let X=uX(),Y=H8.dirname(X);y$.mkdirSync(Y,{recursive:!0,mode:448});let J={configs:Object.fromEntries($),updatedAt:new Date().toISOString()};y$.writeFileSync(X,JSON.stringify(J,null,2),{mode:384})}catch{}}function W5($){let X=AQ();if(!X)return null;let Y=new Date(X.updatedAt).getTime();if(Date.now()-Y>$)return null;return{configs:new Map(Object.entries(X.configs)),writtenAt:Y}}var jQ=class{url;ttlMs;fetchFn;memCache=null;memExpiresAt=0;pending=null;constructor($){this.url=$?.url??ZQ,this.ttlMs=$?.ttlMs??SQ,this.fetchFn=$?.fetch??fetch}async getConfigs(){if(this.memCache&&Date.now()<this.memExpiresAt)return this.memCache;let $=W5(this.ttlMs);if($)return this.memCache=$.configs,this.memExpiresAt=$.writtenAt+this.ttlMs,$.configs;if(this.pending)return this.pending;this.pending=this.fetchConfigs();try{return await this.pending}finally{this.pending=null}}async getConfig($){return(await this.getConfigs()).get($)??{context:gX,output:hX}}invalidateCache(){this.memCache=null,this.memExpiresAt=0;try{let $=uX();if(y$.existsSync($))y$.unlinkSync($)}catch{}}async fetchConfigs(){try{let $=await this.fetchFn(this.url);if(!$.ok)throw Error(`HTTP ${$.status}`);let X=await $.text(),Y=RQ(X);return this.memCache=Y,this.memExpiresAt=Date.now()+this.ttlMs,CQ(Y),Y}catch{return this.memCache??W5(1/0)?.configs??new Map}}};function RQ($){let X=new Map,Y=null,J=0,Q=0,z=!1,W=-1;for(let G of $.split(`
101
+ `)){let V=G.match(/^\s*gitlab_identifier:\s*"?([^"#\s]+)"?/);if(V){if(Y)X.set(Y,{context:J||gX,output:Q||hX});Y=V[1],J=0,Q=0,z=!1,W=-1}let K=G.match(/^\s*max_context_tokens:\s*([0-9_]+)/);if(K&&Y)J=parseInt(K[1].replace(/_/g,""),10);if(/^\s*params:\s*$/.test(G))z=!0,W=G.match(/^(\s*)/)?.[1].length??0;else if(z&&/^\s*\S+:/.test(G)){if((G.match(/^(\s*)/)?.[1].length??0)<=W)z=!1,W=-1}if(z){let B=G.match(/^\s*max_tokens:\s*([0-9_]+)/);if(B&&Y)Q=parseInt(B[1].replace(/_/g,""),10)}}if(Y)X.set(Y,{context:J||gX,output:Q||hX});return X}var PQ=new jQ;async function G5($,X){let Y=await PQ.getConfigs(),J=new Map;for(let[G,V]of Object.entries(n$))if(V.provider==="workflow"&&G!=="duo-workflow"&&G!=="duo-workflow-default")J.set(V.model,G);let Q=$.pinnedModel?[$.pinnedModel]:[...$.selectableModels??[],...$.defaultModel?[$.defaultModel]:[]],z=new Set,W=[];for(let G of Q){if(!G.ref||z.has(G.ref))continue;z.add(G.ref);let V=J.get(G.ref)??`duo-workflow-${G.ref.replace(/[/_]/g,"-")}`,K=Y.get(G.ref);W.push({id:V,ref:G.ref,name:G.name,context:K?.context??200000,output:K?.output??64000,pinned:!!$.pinnedModel&&$.pinnedModel.ref===G.ref})}return{models:W,project:X}}async function PM($,X){let Y=new N5(X.workingDirectory,$.instanceUrl);if(!Y.isDiscoveryExpired()){let V=Y.load();return G5(V.discovery,V.project)}let J=new K5({instanceUrl:$.instanceUrl,getHeaders:$.getHeaders,fetch:$.fetch}),Q=null;try{Q=await J.detectProject(X.workingDirectory)}catch{return{models:[],project:null}}let z=Q?.namespaceId;if(!z)return{models:[],project:Q};let G=await new B5({instanceUrl:$.instanceUrl,getHeaders:$.getHeaders,fetch:$.fetch}).discover(`gid://gitlab/Group/${z}`);if(Y.saveDiscovery(G,Q),!Y.getSelectedModelRef()){let V=G.pinnedModel??G.defaultModel;if(V)Y.saveSelection(V.ref,V.name)}return G5(G,Q)}export{x as pm,gJ as qm,V5 as rm,hJ as sm,n$ as tm,e9 as um,EM as vm,mJ as wm,LM as xm,DM as ym,uJ as zm,dJ as Am,cJ as Bm,lJ as Cm,ZM as Dm,pJ as Em,IX as Fm,iJ as Gm,nJ as Hm,$5 as Im,z8 as Jm,aJ as Km,yX as Lm,G1 as Mm,sJ as Nm,oJ as Om,X5 as Pm,JQ as Qm,zQ as Rm,K5 as Sm,B5 as Tm,N5 as Um,NQ as Vm,UQ as Wm,CM as Xm,MQ as Ym,FQ as Zm,jM as _m,OQ as $m,DQ as an,RM as bn,jQ as cn,RQ as dn,PM as en};