@arcgis/ai-components 5.0.0-next.139 → 5.0.0-next.140

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 (67) hide show
  1. package/dist/cdn/{QS6457MX.js → 25PBMZHS.js} +2 -2
  2. package/dist/cdn/2GEDY3GN.js +134 -0
  3. package/dist/cdn/{B4GME3XE.js → 2IHKAUDX.js} +2 -2
  4. package/dist/cdn/{3FXMITU4.js → 2Q7VQTLU.js} +2 -2
  5. package/dist/cdn/{HBQRKPCT.js → 2WYLKFGP.js} +2 -2
  6. package/dist/cdn/{GVW52DIA.js → 4CWTGTNY.js} +2 -2
  7. package/dist/cdn/{HA4E5AC2.js → 56XBBDA6.js} +2 -2
  8. package/dist/cdn/5ZLN2JFL.js +4 -0
  9. package/dist/cdn/{72JQRHOG.js → 6C35AMCX.js} +2 -2
  10. package/dist/cdn/{CLP7HMEW.js → 7QHFU3KO.js} +2 -2
  11. package/dist/cdn/{JLY2B5AJ.js → AAVZOXSC.js} +2 -2
  12. package/dist/cdn/{UJTPKXBP.js → ASN7ZWEH.js} +33 -33
  13. package/dist/cdn/{3QTHBF2F.js → AUYVELDF.js} +2 -2
  14. package/dist/cdn/{LZRFQZSB.js → AXRNMFPI.js} +1 -1
  15. package/dist/cdn/{E3XZJC24.js → FDJXRQUK.js} +2 -2
  16. package/dist/cdn/{RYLC4RYQ.js → FWPGJBO5.js} +2 -2
  17. package/dist/cdn/{IXKVVRW7.js → H3KORP5U.js} +1 -1
  18. package/dist/cdn/IXX5ULW6.js +4 -0
  19. package/dist/cdn/{CFFB4JKG.js → KNSCW6SS.js} +2 -2
  20. package/dist/cdn/{RQY4555K.js → KSVU7VLD.js} +2 -2
  21. package/dist/cdn/{NSMIL2SL.js → LGW5HXAG.js} +1 -1
  22. package/dist/cdn/{RKR7CXWK.js → LYVHBLUQ.js} +2 -2
  23. package/dist/cdn/{WCFPWMZ6.js → MTNAHLA4.js} +2 -2
  24. package/dist/cdn/{LWPYJABR.js → N3QH6TX7.js} +2 -2
  25. package/dist/cdn/{6JDNCSC3.js → N5EBFHDA.js} +2 -2
  26. package/dist/cdn/{42IBUNOA.js → O2ASMWKU.js} +2 -2
  27. package/dist/cdn/{IB7MSLQX.js → PC6FKJYU.js} +2 -2
  28. package/dist/cdn/{UPQ7HXXV.js → QSJZ4GJQ.js} +2 -2
  29. package/dist/cdn/{TJJX6UKQ.js → RBSKMLWF.js} +2 -2
  30. package/dist/cdn/SNPQLJY2.js +6 -0
  31. package/dist/cdn/{YKVAJ4AV.js → TAK5SQLW.js} +2 -2
  32. package/dist/cdn/{6UMV2K64.js → UNM6E7R2.js} +2 -2
  33. package/dist/cdn/{GNIBW6BM.js → VWVB7I6H.js} +2 -2
  34. package/dist/cdn/{DBKCPK5I.js → WH2GVTFQ.js} +3 -3
  35. package/dist/cdn/{Z5SVRVZN.js → WJVFWLIR.js} +2 -2
  36. package/dist/cdn/{5BR5YVZ6.js → WPLOP4RM.js} +2 -2
  37. package/dist/cdn/{RHI6IEK3.js → WQAFSEHQ.js} +2 -2
  38. package/dist/cdn/{D532Z7XU.js → XGRSVMCO.js} +2 -2
  39. package/dist/cdn/{TFW2C2V3.js → YLSYEE4Q.js} +2 -2
  40. package/dist/cdn/index.js +2 -2
  41. package/dist/chunks/runtime.js +1 -1
  42. package/dist/chunks/useT9n.js +1 -1
  43. package/dist/chunks/utils.js +1 -1
  44. package/dist/chunks/utils2.js +1 -1
  45. package/dist/components/arcgis-assistant/customElement.js +1 -1
  46. package/dist/components/arcgis-assistant-agent/customElement.js +1 -1
  47. package/dist/components/arcgis-assistant-chat/customElement.js +1 -1
  48. package/dist/components/arcgis-assistant-chat-card/customElement.js +1 -1
  49. package/dist/components/arcgis-assistant-chat-card-content/customElement.js +1 -1
  50. package/dist/components/arcgis-assistant-chat-entry/customElement.js +1 -1
  51. package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +1 -1
  52. package/dist/components/arcgis-assistant-interrupt/customElement.js +1 -1
  53. package/dist/components/arcgis-assistant-layer-filter-agent/customElement.js +1 -1
  54. package/dist/components/arcgis-assistant-layer-query-agent/customElement.js +1 -1
  55. package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +1 -1
  56. package/dist/components/arcgis-assistant-navigation-agent/customElement.js +1 -1
  57. package/dist/components/arcgis-assistant-shell/customElement.js +1 -1
  58. package/dist/docs/api.json +1 -1
  59. package/dist/docs/docs.json +1 -1
  60. package/dist/docs/web-types.json +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/loader.js +1 -1
  63. package/package.json +7 -7
  64. package/dist/cdn/BN3XKJOK.js +0 -6
  65. package/dist/cdn/ILSPDWE2.js +0 -4
  66. package/dist/cdn/X5OTOFCC.js +0 -134
  67. package/dist/cdn/YQJWHNVD.js +0 -4
@@ -0,0 +1,134 @@
1
+ /*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
2
+ See https://js.arcgis.com/5.0/esri/copyright.txt for details.
3
+ v5.0.0-next.140 */
4
+ import a from"./6C35AMCX.js";import{$a as Df,$b as zg,Aa as Ef,Ab as Ff,Ba as zn,Bb as Z,Ca as at,Cb as vr,Da as If,Db as Uf,Ea as B,Eb as zf,Fa as oe,Fb as Qe,Ga as kf,Gb as Oo,Ha as Bn,Hb as Ft,Ia as Ye,Ib as Bf,J as ve,Ja as xr,Jb as Kf,K as ii,Ka as ze,Kb as Ne,L as pf,La as ut,Lb as Po,M as Iu,Ma as he,Mb as Wf,N as ff,Na as Kn,Nb as Hf,O as wo,Oa as Tu,Ob as Gf,Pa as or,Pb as qf,Q as ue,Qa as Sf,R as jt,Ra as Cf,Rb as Jf,S as ku,Sa as Wn,Sb as Rg,T as Mt,Ta as oi,Tb as Ng,U as Su,Ua as ht,Ub as jg,V as hf,Va as Tf,Vb as Mg,Wa as Hn,Wb as Dg,Xa as Rf,Xb as $g,Ya as Nf,Yb as Lg,Z as df,Za as jf,Zb as Fg,_a as Mf,_b as Ug,a as xu,aa as ot,ab as Ru,ac as Bg,b as vu,ba as mf,bb as ai,bc as Fu,c as Yp,cb as Ag,d as Zp,db as Ze,e as Qp,eb as Nu,f as ef,fb as ui,g as tf,ga as Cu,gb as Og,h as rf,hb as ci,i as nf,ib as $t,j as ir,ja as Dt,jb as Pg,k as sf,ka as xo,kb as ju,l as of,la as gf,lb as Eg,m as go,mb as Ig,n as af,nb as kg,o as bo,oa as bf,ob as Lt,p as yo,pa as yf,pb as Ao,q as _o,qa as pe,qb as Mu,r as Au,ra as _f,rb as li,s as uf,sa as vo,sb as Sg,t as cf,ta as wf,tb as Cg,ua as xf,ub as Du,va as Jr,vb as Tg,w as lf,wa as vf,wb as Ae,x as Ou,xa as Af,xb as $f,y as Pu,ya as Of,yb as Lf,z as Eu,za as Pf,zb as $u}from"./ASN7ZWEH.js";import{a as xg,b as re,c as vg}from"./LGW5HXAG.js";export default $arcgis.t(([dg,zp,Ow,{a:Vf,b:Kg,c:Wg,d:Hg,e:Vg,f:Gg,g:qg,h:Jg,i:Xg,j:Yg,k:Lu,l:Xr,m:Zg,n:Qg}])=>{var uh=xg(Do=>{"use strict";Do.byteLength=cb;Do.toByteArray=pb;Do.fromByteArray=db;var Ut=[],ct=[],ub=typeof Uint8Array<"u"?Uint8Array:Array,Zu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Qr=0,oh=Zu.length;Qr<oh;++Qr)Ut[Qr]=Zu[Qr],ct[Zu.charCodeAt(Qr)]=Qr;var Qr,oh;ct[45]=62;ct[95]=63;function ah(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function cb(r){var e=ah(r),t=e[0],n=e[1];return(t+n)*3/4-n}function lb(r,e,t){return(e+t)*3/4-t}function pb(r){var e,t=ah(r),n=t[0],s=t[1],i=new ub(lb(r,n,s)),o=0,a=s>0?n-4:n,u;for(u=0;u<a;u+=4)e=ct[r.charCodeAt(u)]<<18|ct[r.charCodeAt(u+1)]<<12|ct[r.charCodeAt(u+2)]<<6|ct[r.charCodeAt(u+3)],i[o++]=e>>16&255,i[o++]=e>>8&255,i[o++]=e&255;return s===2&&(e=ct[r.charCodeAt(u)]<<2|ct[r.charCodeAt(u+1)]>>4,i[o++]=e&255),s===1&&(e=ct[r.charCodeAt(u)]<<10|ct[r.charCodeAt(u+1)]<<4|ct[r.charCodeAt(u+2)]>>2,i[o++]=e>>8&255,i[o++]=e&255),i}function fb(r){return Ut[r>>18&63]+Ut[r>>12&63]+Ut[r>>6&63]+Ut[r&63]}function hb(r,e,t){for(var n,s=[],i=e;i<t;i+=3)n=(r[i]<<16&16711680)+(r[i+1]<<8&65280)+(r[i+2]&255),s.push(fb(n));return s.join("")}function db(r){for(var e,t=r.length,n=t%3,s=[],i=16383,o=0,a=t-n;o<a;o+=i)s.push(hb(r,o,o+i>a?a:o+i));return n===1?(e=r[t-1],s.push(Ut[e>>2]+Ut[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],s.push(Ut[e>>10]+Ut[e>>4&63]+Ut[e<<2&63]+"=")),s.join("")}});var ar=class extends Error{constructor(e,t){let n=e??"";t?.lc_error_code&&(n=`${n}
5
+
6
+ Troubleshooting URL: https://langchain-ai.github.io/langgraphjs/troubleshooting/errors/${t.lc_error_code}/
7
+ `),super(n),Object.defineProperty(this,"lc_error_code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.lc_error_code=t?.lc_error_code}},Eo=class extends ar{get is_bubble_up(){return!0}},Io=class extends ar{constructor(e,t){super(e,t),this.name="GraphRecursionError"}static get unminifiable_name(){return"GraphRecursionError"}},Vn=class extends ar{constructor(e,t){super(e,t),this.name="GraphValueError"}static get unminifiable_name(){return"GraphValueError"}},Ar=class extends Eo{constructor(e,t){super(JSON.stringify(e,null,2),t),Object.defineProperty(this,"interrupts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="GraphInterrupt",this.interrupts=e??[]}static get unminifiable_name(){return"GraphInterrupt"}},pi=class extends Ar{constructor(e,t){super([{value:e}],t),this.name="NodeInterrupt"}static get unminifiable_name(){return"NodeInterrupt"}},fi=class extends Eo{constructor(e){super(),Object.defineProperty(this,"command",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="ParentCommand",this.command=e}static get unminifiable_name(){return"ParentCommand"}};function Xf(r){return r!==void 0&&r.name===fi.unminifiable_name}function Gn(r){return r!==void 0&&r.is_bubble_up===!0}function Or(r){return r!==void 0&&[Ar.unminifiable_name,pi.unminifiable_name].includes(r.name)}var hi=class extends ar{constructor(e,t){super(e,t),this.name="EmptyInputError"}static get unminifiable_name(){return"EmptyInputError"}},ne=class extends ar{constructor(e,t){super(e,t),this.name="EmptyChannelError"}static get unminifiable_name(){return"EmptyChannelError"}},X=class extends ar{constructor(e,t){super(e,t),this.name="InvalidUpdateError"}static get unminifiable_name(){return"InvalidUpdateError"}};var ko=class extends ar{constructor(e,t){super(e,t),this.name="UnreachableNodeError"}static get unminifiable_name(){return"UnreachableNodeError"}};function So(r){return Zp({clockseq:r})}function Pr(r,e){let t=e.replace(/-/g,"").match(/.{2}/g).map(n=>parseInt(n,16));return Yp(r,new Uint8Array(t))}var Co="__pregel_tasks",Yf="__error__",qn="__scheduled__",Zf="__interrupt__",Qf="__resume__";var eh=[];var ol={};re(ol,{agents:()=>th,caches:()=>zu,callbacks__base:()=>xf,callbacks__manager:()=>If,callbacks__promises:()=>Ef,chat_history:()=>Ku,documents:()=>Hu,embeddings:()=>Vu,example_selectors:()=>Yu,language_models__base:()=>rc,language_models__chat_models:()=>ic,language_models__llms:()=>oc,load__serializable:()=>sf,memory:()=>uc,messages:()=>Vf,output_parsers:()=>xc,outputs:()=>Tf,prompt_values:()=>Jf,prompts:()=>Oc,retrievers:()=>Pc,runnables:()=>cc,stores:()=>Ic,tools:()=>Sc,tracers__base:()=>vf,tracers__console:()=>Af,tracers__initialize:()=>Tc,tracers__log_stream:()=>Cf,tracers__run_collector:()=>Nc,tracers__tracer_langchain:()=>Pf,tracers__tracer_langchain_v1:()=>Cc,utils__async_caller:()=>Rf,utils__chunk_array:()=>Mc,utils__env:()=>_f,utils__function_calling:()=>$c,utils__hash:()=>Uu,utils__json_patch:()=>bc,utils__json_schema:()=>Lf,utils__math:()=>Fc,utils__stream:()=>Sf,utils__testing:()=>sl,utils__tiktoken:()=>tc,utils__types:()=>il,vectorstores:()=>zc});var th={};var zu={};re(zu,{BaseCache:()=>No,InMemoryCache:()=>di,deserializeStoredGeneration:()=>nb,getCacheKey:()=>sh,serializeGeneration:()=>sb});var Uu={};re(Uu,{insecureHash:()=>To,sha256:()=>nh});var eb=typeof window=="object"?window:{},H="0123456789abcdef".split(""),tb=[-2147483648,8388608,32768,128],dt=[24,16,8,0];var Oe=[];function mt(r){r?(Oe[0]=Oe[16]=Oe[1]=Oe[2]=Oe[3]=Oe[4]=Oe[5]=Oe[6]=Oe[7]=Oe[8]=Oe[9]=Oe[10]=Oe[11]=Oe[12]=Oe[13]=Oe[14]=Oe[15]=0,this.blocks=Oe):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.h0=1732584193,this.h1=4023233417,this.h2=2562383102,this.h3=271733878,this.h4=3285377520,this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}mt.prototype.update=function(r){if(!this.finalized){var e=typeof r!="string";e&&r.constructor===eb.ArrayBuffer&&(r=new Uint8Array(r));for(var t,n=0,s,i=r.length||0,o=this.blocks;n<i;){if(this.hashed&&(this.hashed=!1,o[0]=this.block,o[16]=o[1]=o[2]=o[3]=o[4]=o[5]=o[6]=o[7]=o[8]=o[9]=o[10]=o[11]=o[12]=o[13]=o[14]=o[15]=0),e)for(s=this.start;n<i&&s<64;++n)o[s>>2]|=r[n]<<dt[s++&3];else for(s=this.start;n<i&&s<64;++n)t=r.charCodeAt(n),t<128?o[s>>2]|=t<<dt[s++&3]:t<2048?(o[s>>2]|=(192|t>>6)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]):t<55296||t>=57344?(o[s>>2]|=(224|t>>12)<<dt[s++&3],o[s>>2]|=(128|t>>6&63)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]):(t=65536+((t&1023)<<10|r.charCodeAt(++n)&1023),o[s>>2]|=(240|t>>18)<<dt[s++&3],o[s>>2]|=(128|t>>12&63)<<dt[s++&3],o[s>>2]|=(128|t>>6&63)<<dt[s++&3],o[s>>2]|=(128|t&63)<<dt[s++&3]);this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.block=o[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}};mt.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var r=this.blocks,e=this.lastByteIndex;r[16]=this.block,r[e>>2]|=tb[e&3],this.block=r[16],e>=56&&(this.hashed||this.hash(),r[0]=this.block,r[16]=r[1]=r[2]=r[3]=r[4]=r[5]=r[6]=r[7]=r[8]=r[9]=r[10]=r[11]=r[12]=r[13]=r[14]=r[15]=0),r[14]=this.hBytes<<3|this.bytes>>>29,r[15]=this.bytes<<3,this.hash()}};mt.prototype.hash=function(){var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i,o,a,u=this.blocks;for(o=16;o<80;++o)a=u[o-3]^u[o-8]^u[o-14]^u[o-16],u[o]=a<<1|a>>>31;for(o=0;o<20;o+=5)i=e&t|~e&n,a=r<<5|r>>>27,s=a+i+s+1518500249+u[o]<<0,e=e<<30|e>>>2,i=r&e|~r&t,a=s<<5|s>>>27,n=a+i+n+1518500249+u[o+1]<<0,r=r<<30|r>>>2,i=s&r|~s&e,a=n<<5|n>>>27,t=a+i+t+1518500249+u[o+2]<<0,s=s<<30|s>>>2,i=n&s|~n&r,a=t<<5|t>>>27,e=a+i+e+1518500249+u[o+3]<<0,n=n<<30|n>>>2,i=t&n|~t&s,a=e<<5|e>>>27,r=a+i+r+1518500249+u[o+4]<<0,t=t<<30|t>>>2;for(;o<40;o+=5)i=e^t^n,a=r<<5|r>>>27,s=a+i+s+1859775393+u[o]<<0,e=e<<30|e>>>2,i=r^e^t,a=s<<5|s>>>27,n=a+i+n+1859775393+u[o+1]<<0,r=r<<30|r>>>2,i=s^r^e,a=n<<5|n>>>27,t=a+i+t+1859775393+u[o+2]<<0,s=s<<30|s>>>2,i=n^s^r,a=t<<5|t>>>27,e=a+i+e+1859775393+u[o+3]<<0,n=n<<30|n>>>2,i=t^n^s,a=e<<5|e>>>27,r=a+i+r+1859775393+u[o+4]<<0,t=t<<30|t>>>2;for(;o<60;o+=5)i=e&t|e&n|t&n,a=r<<5|r>>>27,s=a+i+s-1894007588+u[o]<<0,e=e<<30|e>>>2,i=r&e|r&t|e&t,a=s<<5|s>>>27,n=a+i+n-1894007588+u[o+1]<<0,r=r<<30|r>>>2,i=s&r|s&e|r&e,a=n<<5|n>>>27,t=a+i+t-1894007588+u[o+2]<<0,s=s<<30|s>>>2,i=n&s|n&r|s&r,a=t<<5|t>>>27,e=a+i+e-1894007588+u[o+3]<<0,n=n<<30|n>>>2,i=t&n|t&s|n&s,a=e<<5|e>>>27,r=a+i+r-1894007588+u[o+4]<<0,t=t<<30|t>>>2;for(;o<80;o+=5)i=e^t^n,a=r<<5|r>>>27,s=a+i+s-899497514+u[o]<<0,e=e<<30|e>>>2,i=r^e^t,a=s<<5|s>>>27,n=a+i+n-899497514+u[o+1]<<0,r=r<<30|r>>>2,i=s^r^e,a=n<<5|n>>>27,t=a+i+t-899497514+u[o+2]<<0,s=s<<30|s>>>2,i=n^s^r,a=t<<5|t>>>27,e=a+i+e-899497514+u[o+3]<<0,n=n<<30|n>>>2,i=t^n^s,a=e<<5|e>>>27,r=a+i+r-899497514+u[o+4]<<0,t=t<<30|t>>>2;this.h0=this.h0+r<<0,this.h1=this.h1+e<<0,this.h2=this.h2+t<<0,this.h3=this.h3+n<<0,this.h4=this.h4+s<<0};mt.prototype.hex=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4;return H[r>>28&15]+H[r>>24&15]+H[r>>20&15]+H[r>>16&15]+H[r>>12&15]+H[r>>8&15]+H[r>>4&15]+H[r&15]+H[e>>28&15]+H[e>>24&15]+H[e>>20&15]+H[e>>16&15]+H[e>>12&15]+H[e>>8&15]+H[e>>4&15]+H[e&15]+H[t>>28&15]+H[t>>24&15]+H[t>>20&15]+H[t>>16&15]+H[t>>12&15]+H[t>>8&15]+H[t>>4&15]+H[t&15]+H[n>>28&15]+H[n>>24&15]+H[n>>20&15]+H[n>>16&15]+H[n>>12&15]+H[n>>8&15]+H[n>>4&15]+H[n&15]+H[s>>28&15]+H[s>>24&15]+H[s>>20&15]+H[s>>16&15]+H[s>>12&15]+H[s>>8&15]+H[s>>4&15]+H[s&15]};mt.prototype.toString=mt.prototype.hex;mt.prototype.digest=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4;return[r>>24&255,r>>16&255,r>>8&255,r&255,e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,n>>24&255,n>>16&255,n>>8&255,n&255,s>>24&255,s>>16&255,s>>8&255,s&255]};mt.prototype.array=mt.prototype.digest;mt.prototype.arrayBuffer=function(){this.finalize();var r=new ArrayBuffer(20),e=new DataView(r);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),r};var rh=!1,To=r=>(rh||(console.warn(["The default method for hashing keys is insecure and will be replaced in a future version,","but hasn't been replaced yet as to not break existing caches. It's recommended that you use","a more secure hashing algorithm to avoid cache poisoning.","","See this page for more information:","|","\u2514> https://js.langchain.com/docs/troubleshooting/warnings/insecure-cache-algorithm"].join(`
8
+ `)),rh=!0),new mt(!0).update(r).hex());var M="0123456789abcdef".split(""),rb=[-2147483648,8388608,32768,128],gt=[24,16,8,0],Ro=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var Pe=[];function bt(r,e){e?(Pe[0]=Pe[16]=Pe[1]=Pe[2]=Pe[3]=Pe[4]=Pe[5]=Pe[6]=Pe[7]=Pe[8]=Pe[9]=Pe[10]=Pe[11]=Pe[12]=Pe[13]=Pe[14]=Pe[15]=0,this.blocks=Pe):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],r?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=r}bt.prototype.update=function(r){if(!this.finalized){var e,t=typeof r;if(t!=="string"){if(t==="object"){if(r===null)throw new Error(ERROR);if(ARRAY_BUFFER&&r.constructor===ArrayBuffer)r=new Uint8Array(r);else if(!Array.isArray(r)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(r)))throw new Error(ERROR)}else throw new Error(ERROR);e=!0}for(var n,s=0,i,o=r.length,a=this.blocks;s<o;){if(this.hashed&&(this.hashed=!1,a[0]=this.block,this.block=a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),e)for(i=this.start;s<o&&i<64;++s)a[i>>>2]|=r[s]<<gt[i++&3];else for(i=this.start;s<o&&i<64;++s)n=r.charCodeAt(s),n<128?a[i>>>2]|=n<<gt[i++&3]:n<2048?(a[i>>>2]|=(192|n>>>6)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]):n<55296||n>=57344?(a[i>>>2]|=(224|n>>>12)<<gt[i++&3],a[i>>>2]|=(128|n>>>6&63)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]):(n=65536+((n&1023)<<10|r.charCodeAt(++s)&1023),a[i>>>2]|=(240|n>>>18)<<gt[i++&3],a[i>>>2]|=(128|n>>>12&63)<<gt[i++&3],a[i>>>2]|=(128|n>>>6&63)<<gt[i++&3],a[i>>>2]|=(128|n&63)<<gt[i++&3]);this.lastByteIndex=i,this.bytes+=i-this.start,i>=64?(this.block=a[16],this.start=i-64,this.hash(),this.hashed=!0):this.start=i}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}};bt.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var r=this.blocks,e=this.lastByteIndex;r[16]=this.block,r[e>>>2]|=rb[e&3],this.block=r[16],e>=56&&(this.hashed||this.hash(),r[0]=this.block,r[16]=r[1]=r[2]=r[3]=r[4]=r[5]=r[6]=r[7]=r[8]=r[9]=r[10]=r[11]=r[12]=r[13]=r[14]=r[15]=0),r[14]=this.hBytes<<3|this.bytes>>>29,r[15]=this.bytes<<3,this.hash()}};bt.prototype.hash=function(){var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=this.blocks,c,l,p,h,f,g,b,_,I,v,S;for(c=16;c<64;++c)f=u[c-15],l=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3,f=u[c-2],p=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10,u[c]=u[c-16]+l+u[c-7]+p<<0;for(S=e&t,c=0;c<64;c+=4)this.first?(this.is224?(_=300032,f=u[0]-1413257819,a=f-150054599<<0,n=f+24177077<<0):(_=704751109,f=u[0]-210244248,a=f-1521486534<<0,n=f+143694565<<0),this.first=!1):(l=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),p=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),_=r&e,h=_^r&t^S,b=s&i^~s&o,f=a+p+b+Ro[c]+u[c],g=l+h,a=n+f<<0,n=f+g<<0),l=(n>>>2|n<<30)^(n>>>13|n<<19)^(n>>>22|n<<10),p=(a>>>6|a<<26)^(a>>>11|a<<21)^(a>>>25|a<<7),I=n&r,h=I^n&e^_,b=o&a^~o&s,f=i+p+b+Ro[c+1]+u[c+1],g=l+h,o=t+f<<0,t=f+g<<0,l=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),p=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),v=t&n,h=v^t&r^I,b=i&o^~i&a,f=s+p+b+Ro[c+2]+u[c+2],g=l+h,i=e+f<<0,e=f+g<<0,l=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),p=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),S=e&t,h=S^e&n^v,b=i&o^~i&a,f=s+p+b+Ro[c+3]+u[c+3],g=l+h,s=r+f<<0,r=f+g<<0,this.chromeBugWorkAround=!0;this.h0=this.h0+r<<0,this.h1=this.h1+e<<0,this.h2=this.h2+t<<0,this.h3=this.h3+n<<0,this.h4=this.h4+s<<0,this.h5=this.h5+i<<0,this.h6=this.h6+o<<0,this.h7=this.h7+a<<0};bt.prototype.hex=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=M[r>>>28&15]+M[r>>>24&15]+M[r>>>20&15]+M[r>>>16&15]+M[r>>>12&15]+M[r>>>8&15]+M[r>>>4&15]+M[r&15]+M[e>>>28&15]+M[e>>>24&15]+M[e>>>20&15]+M[e>>>16&15]+M[e>>>12&15]+M[e>>>8&15]+M[e>>>4&15]+M[e&15]+M[t>>>28&15]+M[t>>>24&15]+M[t>>>20&15]+M[t>>>16&15]+M[t>>>12&15]+M[t>>>8&15]+M[t>>>4&15]+M[t&15]+M[n>>>28&15]+M[n>>>24&15]+M[n>>>20&15]+M[n>>>16&15]+M[n>>>12&15]+M[n>>>8&15]+M[n>>>4&15]+M[n&15]+M[s>>>28&15]+M[s>>>24&15]+M[s>>>20&15]+M[s>>>16&15]+M[s>>>12&15]+M[s>>>8&15]+M[s>>>4&15]+M[s&15]+M[i>>>28&15]+M[i>>>24&15]+M[i>>>20&15]+M[i>>>16&15]+M[i>>>12&15]+M[i>>>8&15]+M[i>>>4&15]+M[i&15]+M[o>>>28&15]+M[o>>>24&15]+M[o>>>20&15]+M[o>>>16&15]+M[o>>>12&15]+M[o>>>8&15]+M[o>>>4&15]+M[o&15];return this.is224||(u+=M[a>>>28&15]+M[a>>>24&15]+M[a>>>20&15]+M[a>>>16&15]+M[a>>>12&15]+M[a>>>8&15]+M[a>>>4&15]+M[a&15]),u};bt.prototype.toString=bt.prototype.hex;bt.prototype.digest=function(){this.finalize();var r=this.h0,e=this.h1,t=this.h2,n=this.h3,s=this.h4,i=this.h5,o=this.h6,a=this.h7,u=[r>>>24&255,r>>>16&255,r>>>8&255,r&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255,n>>>24&255,n>>>16&255,n>>>8&255,n&255,s>>>24&255,s>>>16&255,s>>>8&255,s&255,i>>>24&255,i>>>16&255,i>>>8&255,i&255,o>>>24&255,o>>>16&255,o>>>8&255,o&255];return this.is224||u.push(a>>>24&255,a>>>16&255,a>>>8&255,a&255),u};bt.prototype.array=bt.prototype.digest;bt.prototype.arrayBuffer=function(){this.finalize();var r=new ArrayBuffer(this.is224?28:32),e=new DataView(r);return e.setUint32(0,this.h0),e.setUint32(4,this.h1),e.setUint32(8,this.h2),e.setUint32(12,this.h3),e.setUint32(16,this.h4),e.setUint32(20,this.h5),e.setUint32(24,this.h6),this.is224||e.setUint32(28,this.h7),r};var nh=(...r)=>new bt(!1,!0).update(r.join("")).hex();var sh=(...r)=>To(r.join("_"));function nb(r){return r.message!==void 0?{text:r.text,message:gf(r.message)}:{text:r.text}}function sb(r){let e={text:r.text};return r.message!==void 0&&(e.message=r.message.toDict()),e}var No=class{constructor(){Object.defineProperty(this,"keyEncoder",{enumerable:!0,configurable:!0,writable:!0,value:sh})}makeDefaultKeyEncoder(e){this.keyEncoder=e}},ib=new Map,di=class r extends No{constructor(e){super(),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cache=e??new Map}lookup(e,t){return Promise.resolve(this.cache.get(this.keyEncoder(e,t))??null)}async update(e,t,n){this.cache.set(this.keyEncoder(e,t),n)}static global(){return new r(ib)}};var Ku={};re(Ku,{BaseChatMessageHistory:()=>mi,BaseListChatMessageHistory:()=>Jn,InMemoryChatMessageHistory:()=>Bu});var mi=class extends ir{async addMessages(e){for(let t of e)await this.addMessage(t)}},Jn=class extends ir{addUserMessage(e){return this.addMessage(new ot(e))}addAIChatMessage(e){return this.addMessage(new ue(e))}addAIMessage(e){return this.addMessage(new ue(e))}async addMessages(e){for(let t of e)await this.addMessage(t)}clear(){throw new Error("Not implemented.")}},Bu=class extends Jn{constructor(e){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","stores","message","in_memory"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.messages=e??[]}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async clear(){this.messages=[]}};var Hu={};re(Hu,{BaseDocumentTransformer:()=>jo,Document:()=>yt,MappingDocumentTransformer:()=>Wu});var yt=class{constructor(e){Object.defineProperty(this,"pageContent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pageContent=e.pageContent!==void 0?e.pageContent.toString():"",this.metadata=e.metadata??{},this.id=e.id}};var jo=class extends Z{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","documents","transformers"]})}invoke(e,t){return this.transformDocuments(e)}},Wu=class extends jo{async transformDocuments(e){let t=[];for(let n of e){let s=await this._transformDocument(n);t.push(s)}return t}};var Vu={};re(Vu,{Embeddings:()=>Yr});var Yr=class{constructor(e){Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.caller=new Hn(e??{})}};var Yu={};re(Yu,{BaseExampleSelector:()=>Zr,BasePromptSelector:()=>Mo,ConditionalPromptSelector:()=>Gu,LengthBasedExampleSelector:()=>qu,SemanticSimilarityExampleSelector:()=>Xu,isChatModel:()=>ab,isLLM:()=>ob});var Zr=class extends ir{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","example_selectors","base"]})}};var Mo=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},Gu=class extends Mo{constructor(e,t=[]){super(),Object.defineProperty(this,"defaultPrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"conditionals",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.defaultPrompt=e,this.conditionals=t}getPrompt(e){for(let[t,n]of this.conditionals)if(t(e))return n;return this.defaultPrompt}};function ob(r){return r._modelType()==="base_llm"}function ab(r){return r._modelType()==="base_chat_model"}function ih(r){return r.split(/\n| /).length}var qu=class r extends Zr{constructor(e){super(e),Object.defineProperty(this,"examples",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"examplePrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getTextLength",{enumerable:!0,configurable:!0,writable:!0,value:ih}),Object.defineProperty(this,"maxLength",{enumerable:!0,configurable:!0,writable:!0,value:2048}),Object.defineProperty(this,"exampleTextLengths",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.examplePrompt=e.examplePrompt,this.maxLength=e.maxLength??2048,this.getTextLength=e.getTextLength??ih}async addExample(e){this.examples.push(e);let t=await this.examplePrompt.format(e);this.exampleTextLengths.push(this.getTextLength(t))}async calculateExampleTextLengths(e,t){if(e.length>0)return e;let{examples:n,examplePrompt:s}=t;return(await Promise.all(n.map(o=>s.format(o)))).map(o=>this.getTextLength(o))}async selectExamples(e){let t=Object.values(e).join(" "),n=this.maxLength-this.getTextLength(t),s=0,i=[];for(;n>0&&s<this.examples.length;){let o=n-this.exampleTextLengths[s];if(o<0)break;i.push(this.examples[s]),n=o,s+=1}return i}static async fromExamples(e,t){let n=new r(t);return await Promise.all(e.map(s=>n.addExample(s))),n}};function Ju(r){return Object.keys(r).sort().map(e=>r[e])}var Xu=class r extends Zr{constructor(e){if(super(e),Object.defineProperty(this,"vectorStoreRetriever",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"exampleKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.exampleKeys=e.exampleKeys,this.inputKeys=e.inputKeys,e.vectorStore!==void 0)this.vectorStoreRetriever=e.vectorStore.asRetriever({k:e.k??4,filter:e.filter});else if(e.vectorStoreRetriever)this.vectorStoreRetriever=e.vectorStoreRetriever;else throw new Error('You must specify one of "vectorStore" and "vectorStoreRetriever".')}async addExample(e){let t=this.inputKeys??Object.keys(e),n=Ju(t.reduce((s,i)=>({...s,[i]:e[i]}),{})).join(" ");await this.vectorStoreRetriever.addDocuments([new yt({pageContent:n,metadata:e})])}async selectExamples(e){let t=this.inputKeys??Object.keys(e),n=Ju(t.reduce((o,a)=>({...o,[a]:e[a]}),{})).join(" "),i=(await this.vectorStoreRetriever.invoke(n)).map(o=>o.metadata);return this.exampleKeys?i.map(o=>this.exampleKeys.reduce((a,u)=>({...a,[u]:o[u]}),{})):i}static async fromExamples(e,t,n,s={}){let i=s.inputKeys??null,o=e.map(u=>Ju(i?i.reduce((c,l)=>({...c,[l]:u[l]}),{}):u).join(" ")),a=await n.fromTexts(o,e,t,s);return new r({vectorStore:a,k:s.k??4,exampleKeys:s.exampleKeys,inputKeys:s.inputKeys})}};var rc={};re(rc,{BaseLangChain:()=>Xn,BaseLanguageModel:()=>en,calculateMaxTokens:()=>fh,getEmbeddingContextSize:()=>vb,getModelContextSize:()=>ph,getModelNameForTiktoken:()=>Uo,isOpenAITool:()=>zo});var tc={};re(tc,{encodingForModel:()=>Fo,getEncoding:()=>lh});var ch=vg(uh(),1),mb=Object.defineProperty,gb=(r,e,t)=>e in r?mb(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,bb=(r,e,t)=>(gb(r,typeof e!="symbol"?e+"":e,t),t);function yb(r,e){let t=Array.from({length:r.length},(n,s)=>({start:s,end:s+1}));for(;t.length>1;){let n=null;for(let s=0;s<t.length-1;s++){let i=r.slice(t[s].start,t[s+1].end),o=e.get(i.join(","));o!=null&&(n==null||o<n[0])&&(n=[o,s])}if(n!=null){let s=n[1];t[s]={start:t[s].start,end:t[s+1].end},t.splice(s+1,1)}else break}return t}function _b(r,e){return r.length===1?[e.get(r.join(","))]:yb(r,e).map(t=>e.get(r.slice(t.start,t.end).join(","))).filter(t=>t!=null)}function wb(r){return r.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&")}var Qu=class{specialTokens;inverseSpecialTokens;patStr;textEncoder=new TextEncoder;textDecoder=new TextDecoder("utf-8");rankMap=new Map;textMap=new Map;constructor(r,e){this.patStr=r.pat_str;let t=r.bpe_ranks.split(`
9
+ `).filter(Boolean).reduce((n,s)=>{let[i,o,...a]=s.split(" "),u=Number.parseInt(o,10);return a.forEach((c,l)=>n[c]=u+l),n},{});for(let[n,s]of Object.entries(t)){let i=ch.default.toByteArray(n);this.rankMap.set(i.join(","),s),this.textMap.set(s,i)}this.specialTokens={...r.special_tokens,...e},this.inverseSpecialTokens=Object.entries(this.specialTokens).reduce((n,[s,i])=>(n[i]=this.textEncoder.encode(s),n),{})}encode(r,e=[],t="all"){let n=new RegExp(this.patStr,"ug"),s=Qu.specialTokenRegex(Object.keys(this.specialTokens)),i=[],o=new Set(e==="all"?Object.keys(this.specialTokens):e),a=new Set(t==="all"?Object.keys(this.specialTokens).filter(c=>!o.has(c)):t);if(a.size>0){let c=Qu.specialTokenRegex([...a]),l=r.match(c);if(l!=null)throw new Error(`The text contains a special token that is not allowed: ${l[0]}`)}let u=0;for(;;){let c=null,l=u;for(;s.lastIndex=l,c=s.exec(r),!(c==null||o.has(c[0]));)l=c.index+1;let p=c?.index??r.length;for(let f of r.substring(u,p).matchAll(n)){let g=this.textEncoder.encode(f[0]),b=this.rankMap.get(g.join(","));if(b!=null){i.push(b);continue}i.push(..._b(g,this.rankMap))}if(c==null)break;let h=this.specialTokens[c[0]];i.push(h),u=c.index+c[0].length}return i}decode(r){let e=[],t=0;for(let i=0;i<r.length;++i){let o=r[i],a=this.textMap.get(o)??this.inverseSpecialTokens[o];a!=null&&(e.push(a),t+=a.length)}let n=new Uint8Array(t),s=0;for(let i of e)n.set(i,s),s+=i.length;return this.textDecoder.decode(n)}},$o=Qu;bb($o,"specialTokenRegex",r=>new RegExp(r.map(e=>wb(e)).join("|"),"g"));function ec(r){switch(r){case"gpt2":return"gpt2";case"code-cushman-001":case"code-cushman-002":case"code-davinci-001":case"code-davinci-002":case"cushman-codex":case"davinci-codex":case"davinci-002":case"text-davinci-002":case"text-davinci-003":return"p50k_base";case"code-davinci-edit-001":case"text-davinci-edit-001":return"p50k_edit";case"ada":case"babbage":case"babbage-002":case"code-search-ada-code-001":case"code-search-babbage-code-001":case"curie":case"davinci":case"text-ada-001":case"text-babbage-001":case"text-curie-001":case"text-davinci-001":case"text-search-ada-doc-001":case"text-search-babbage-doc-001":case"text-search-curie-doc-001":case"text-search-davinci-doc-001":case"text-similarity-ada-001":case"text-similarity-babbage-001":case"text-similarity-curie-001":case"text-similarity-davinci-001":return"r50k_base";case"gpt-3.5-turbo-instruct-0914":case"gpt-3.5-turbo-instruct":case"gpt-3.5-turbo-16k-0613":case"gpt-3.5-turbo-16k":case"gpt-3.5-turbo-0613":case"gpt-3.5-turbo-0301":case"gpt-3.5-turbo":case"gpt-4-32k-0613":case"gpt-4-32k-0314":case"gpt-4-32k":case"gpt-4-0613":case"gpt-4-0314":case"gpt-4":case"gpt-3.5-turbo-1106":case"gpt-35-turbo":case"gpt-4-1106-preview":case"gpt-4-vision-preview":case"gpt-3.5-turbo-0125":case"gpt-4-turbo":case"gpt-4-turbo-2024-04-09":case"gpt-4-turbo-preview":case"gpt-4-0125-preview":case"text-embedding-ada-002":case"text-embedding-3-small":case"text-embedding-3-large":return"cl100k_base";case"gpt-4o":case"gpt-4o-2024-05-13":case"gpt-4o-2024-08-06":case"gpt-4o-2024-11-20":case"gpt-4o-mini-2024-07-18":case"gpt-4o-mini":case"gpt-4o-search-preview":case"gpt-4o-search-preview-2025-03-11":case"gpt-4o-mini-search-preview":case"gpt-4o-mini-search-preview-2025-03-11":case"gpt-4o-audio-preview":case"gpt-4o-audio-preview-2024-12-17":case"gpt-4o-audio-preview-2024-10-01":case"gpt-4o-mini-audio-preview":case"gpt-4o-mini-audio-preview-2024-12-17":case"o1":case"o1-2024-12-17":case"o1-mini":case"o1-mini-2024-09-12":case"o1-preview":case"o1-preview-2024-09-12":case"o1-pro":case"o1-pro-2025-03-19":case"o3":case"o3-2025-04-16":case"o3-mini":case"o3-mini-2025-01-31":case"o4-mini":case"o4-mini-2025-04-16":case"chatgpt-4o-latest":case"gpt-4o-realtime":case"gpt-4o-realtime-preview-2024-10-01":case"gpt-4o-realtime-preview-2024-12-17":case"gpt-4o-mini-realtime-preview":case"gpt-4o-mini-realtime-preview-2024-12-17":case"gpt-4.1":case"gpt-4.1-2025-04-14":case"gpt-4.1-mini":case"gpt-4.1-mini-2025-04-14":case"gpt-4.1-nano":case"gpt-4.1-nano-2025-04-14":case"gpt-4.5-preview":case"gpt-4.5-preview-2025-02-27":case"gpt-5":case"gpt-5-2025-08-07":case"gpt-5-nano":case"gpt-5-nano-2025-08-07":case"gpt-5-mini":case"gpt-5-mini-2025-08-07":case"gpt-5-chat-latest":return"o200k_base";default:throw new Error("Unknown model")}}var Lo={},xb=new Hn({});async function lh(r){return r in Lo||(Lo[r]=xb.fetch(`https://tiktoken.pages.dev/js/${r}.json`).then(e=>e.json()).then(e=>new $o(e)).catch(e=>{throw delete Lo[r],e})),await Lo[r]}async function Fo(r){return lh(ec(r))}var Uo=r=>r.startsWith("gpt-3.5-turbo-16k")?"gpt-3.5-turbo-16k":r.startsWith("gpt-3.5-turbo-")?"gpt-3.5-turbo":r.startsWith("gpt-4-32k")?"gpt-4-32k":r.startsWith("gpt-4-")?"gpt-4":r.startsWith("gpt-4o")?"gpt-4o":r,vb=r=>{switch(r){case"text-embedding-ada-002":return 8191;default:return 2046}},ph=r=>{switch(Uo(r)){case"gpt-3.5-turbo-16k":return 16384;case"gpt-3.5-turbo":return 4096;case"gpt-4-32k":return 32768;case"gpt-4":return 8192;case"text-davinci-003":return 4097;case"text-curie-001":return 2048;case"text-babbage-001":return 2048;case"text-ada-001":return 2048;case"code-davinci-002":return 8e3;case"code-cushman-001":return 2048;default:return 4097}};function zo(r){return typeof r!="object"||!r?!1:!!("type"in r&&r.type==="function"&&"function"in r&&typeof r.function=="object"&&r.function&&"name"in r.function&&"parameters"in r.function)}var fh=async({prompt:r,modelName:e})=>{let t;try{t=(await Fo(Uo(e))).encode(r).length}catch{console.warn("Failed to calculate number of tokens, falling back to approximate count"),t=Math.ceil(r.length/4)}return ph(e)-t},Ab=()=>!1,Xn=class extends Z{get lc_attributes(){return{callbacks:void 0,verbose:void 0}}constructor(e){super(e),Object.defineProperty(this,"verbose",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.verbose=e.verbose??Ab(),this.callbacks=e.callbacks,this.tags=e.tags??[],this.metadata=e.metadata??{}}},en=class extends Xn{get callKeys(){return["stop","timeout","signal","tags","metadata","callbacks"]}constructor({callbacks:e,callbackManager:t,...n}){let{cache:s,...i}=n;super({callbacks:e??t,...i}),Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_encoding",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),typeof s=="object"?this.cache=s:s?this.cache=di.global():this.cache=void 0,this.caller=new Hn(n??{})}async getNumTokens(e){let t;typeof e=="string"?t=e:t=e.map(s=>typeof s=="string"?s:s.type==="text"&&"text"in s?s.text:"").join("");let n=Math.ceil(t.length/4);if(!this._encoding)try{this._encoding=await Fo("modelName"in this?Uo(this.modelName):"gpt2")}catch(s){console.warn("Failed to calculate number of tokens, falling back to approximate count",s)}if(this._encoding)try{n=this._encoding.encode(t).length}catch(s){console.warn("Failed to calculate number of tokens, falling back to approximate count",s)}return n}static _convertInputToPromptValue(e){return typeof e=="string"?new Gf(e):Array.isArray(e)?new qf(e.map(Dt)):e}_identifyingParams(){return{}}_getSerializedCacheKeyParametersForCall({config:e,...t}){let n={...this._identifyingParams(),...t,_type:this._llmType(),_model:this._modelType()};return Object.entries(n).filter(([o,a])=>a!==void 0).map(([o,a])=>`${o}:${JSON.stringify(a)}`).sort().join(",")}serialize(){return{...this._identifyingParams(),_type:this._llmType(),_model:this._modelType()}}static async deserialize(e){throw new Error("Use .toJSON() instead")}};var ic={};re(ic,{BaseChatModel:()=>zt,SimpleChatModel:()=>sc,createChatMessageChunkEncoderStream:()=>Ob});var Ge=class extends Z{static lc_name(){return"RunnablePassthrough"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e&&(this.func=e.func)}async invoke(e,t){let n=ut(t);return this.func&&await this.func(e,n),this._callWithConfig(s=>Promise.resolve(s),e,n)}async*transform(e,t){let n=ut(t),s,i=!0;for await(let o of this._transformStreamWithConfig(e,a=>a,n))if(yield o,i)if(s===void 0)s=o;else try{s=or(s,o)}catch{s=void 0,i=!1}this.func&&s!==void 0&&await this.func(s,n)}static assign(e){return new Po(new Oo({steps:e}))}};function Ob(){let r=new TextEncoder;return new TransformStream({transform(e,t){t.enqueue(r.encode(typeof e.content=="string"?e.content:JSON.stringify(e.content)))}})}function nc(r){let e=[];for(let t of r){let n=t;if(Array.isArray(t.content))for(let s=0;s<t.content.length;s++){let i=t.content[s];(uf(i)||cf(i))&&n===t&&(n=new t.constructor({...n,content:[...t.content.slice(0,s),lf(i),...t.content.slice(s+1)]}))}e.push(n)}return e}var zt=class r extends en{constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","chat_models",this._llmType()]}),Object.defineProperty(this,"disableStreaming",{enumerable:!0,configurable:!0,writable:!0,value:!1})}_separateRunnableConfigFromCallOptionsCompat(e){let[t,n]=super._separateRunnableConfigFromCallOptions(e);return n.signal=t.signal,[t,n]}async invoke(e,t){let n=r._convertInputToPromptValue(e);return(await this.generatePrompt([n],t,t?.callbacks)).generations[0][0].message}async*_streamResponseChunks(e,t,n){throw new Error("Not implemented.")}async*_streamIterator(e,t){if(this._streamResponseChunks===r.prototype._streamResponseChunks||this.disableStreaming)yield this.invoke(e,t);else{let s=r._convertInputToPromptValue(e).toChatMessages(),[i,o]=this._separateRunnableConfigFromCallOptionsCompat(t),a={...i.metadata,...this.getLsParams(o)},u=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,a,this.metadata,{verbose:this.verbose}),c={options:o,invocation_params:this?.invocationParams(o),batch_size:1},l=await u?.handleChatModelStart(this.toJSON(),[nc(s)],i.runId,void 0,c,void 0,void 0,i.runName),p,h;try{for await(let f of this._streamResponseChunks(s,o,l?.[0])){if(f.message.id==null){let g=l?.at(0)?.runId;g!=null&&f.message._updateId(`run-${g}`)}f.message.response_metadata={...f.generationInfo,...f.message.response_metadata},yield f.message,p?p=p.concat(f):p=f,ku(f.message)&&f.message.usage_metadata!==void 0&&(h={tokenUsage:{promptTokens:f.message.usage_metadata.input_tokens,completionTokens:f.message.usage_metadata.output_tokens,totalTokens:f.message.usage_metadata.total_tokens}})}}catch(f){throw await Promise.all((l??[]).map(g=>g?.handleLLMError(f))),f}await Promise.all((l??[]).map(f=>f?.handleLLMEnd({generations:[[p]],llmOutput:h})))}}getLsParams(e){let t=this.getName().startsWith("Chat")?this.getName().replace("Chat",""):this.getName();return{ls_model_type:"chat",ls_stop:e.stop,ls_provider:t}}async _generateUncached(e,t,n,s){let i=e.map(p=>p.map(Dt)),o;if(s!==void 0&&s.length===i.length)o=s;else{let p={...n.metadata,...this.getLsParams(t)},h=await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,p,this.metadata,{verbose:this.verbose}),f={options:t,invocation_params:this?.invocationParams(t),batch_size:1};o=await h?.handleChatModelStart(this.toJSON(),i.map(nc),n.runId,void 0,f,void 0,void 0,n.runName)}let a=[],u=[];if(!!o?.[0].handlers.find(vo)&&!this.disableStreaming&&i.length===1&&this._streamResponseChunks!==r.prototype._streamResponseChunks)try{let p=await this._streamResponseChunks(i[0],t,o?.[0]),h,f;for await(let g of p){if(g.message.id==null){let b=o?.at(0)?.runId;b!=null&&g.message._updateId(`run-${b}`)}h===void 0?h=g:h=or(h,g),ku(g.message)&&g.message.usage_metadata!==void 0&&(f={tokenUsage:{promptTokens:g.message.usage_metadata.input_tokens,completionTokens:g.message.usage_metadata.output_tokens,totalTokens:g.message.usage_metadata.total_tokens}})}if(h===void 0)throw new Error("Received empty response from chat model call.");a.push([h]),await o?.[0].handleLLMEnd({generations:a,llmOutput:f})}catch(p){throw await o?.[0].handleLLMError(p),p}else{let p=await Promise.allSettled(i.map((h,f)=>this._generate(h,{...t,promptIndex:f},o?.[f])));await Promise.all(p.map(async(h,f)=>{if(h.status==="fulfilled"){let g=h.value;for(let b of g.generations){if(b.message.id==null){let _=o?.at(0)?.runId;_!=null&&b.message._updateId(`run-${_}`)}b.message.response_metadata={...b.generationInfo,...b.message.response_metadata}}return g.generations.length===1&&(g.generations[0].message.response_metadata={...g.llmOutput,...g.generations[0].message.response_metadata}),a[f]=g.generations,u[f]=g.llmOutput,o?.[f]?.handleLLMEnd({generations:[g.generations],llmOutput:g.llmOutput})}else return await o?.[f]?.handleLLMError(h.reason),Promise.reject(h.reason)}))}let l={generations:a,llmOutput:u.length?this._combineLLMOutput?.(...u):void 0};return Object.defineProperty(l,Wn,{value:o?{runIds:o?.map(p=>p.runId)}:void 0,configurable:!0}),l}async _generateCached({messages:e,cache:t,llmStringKey:n,parsedOptions:s,handledOptions:i}){let o=e.map(_=>_.map(Dt)),a={...i.metadata,...this.getLsParams(s)},u=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,a,this.metadata,{verbose:this.verbose}),c={options:s,invocation_params:this?.invocationParams(s),batch_size:1},l=await u?.handleChatModelStart(this.toJSON(),o.map(nc),i.runId,void 0,c,void 0,void 0,i.runName),p=[],f=(await Promise.allSettled(o.map(async(_,I)=>{let v=r._convertInputToPromptValue(_).toString(),S=await t.lookup(v,n);return S==null&&p.push(I),S}))).map((_,I)=>({result:_,runManager:l?.[I]})).filter(({result:_})=>_.status==="fulfilled"&&_.value!=null||_.status==="rejected"),g=[];await Promise.all(f.map(async({result:_,runManager:I},v)=>{if(_.status==="fulfilled"){let S=_.value;return g[v]=S.map(C=>("message"in C&&ve(C.message)&&jt(C.message)&&(C.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0}),C.generationInfo={...C.generationInfo,tokenUsage:{}},C)),S.length&&await I?.handleLLMNewToken(S[0].text),I?.handleLLMEnd({generations:[S]},void 0,void 0,void 0,{cached:!0})}else return await I?.handleLLMError(_.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(_.reason)}));let b={generations:g,missingPromptIndices:p,startedRunManagers:l};return Object.defineProperty(b,Wn,{value:l?{runIds:l?.map(_=>_.runId)}:void 0,configurable:!0}),b}async generate(e,t,n){let s;Array.isArray(t)?s={stop:t}:s=t;let i=e.map(g=>g.map(Dt)),[o,a]=this._separateRunnableConfigFromCallOptionsCompat(s);if(o.callbacks=o.callbacks??n,!this.cache)return this._generateUncached(i,a,o);let{cache:u}=this,c=this._getSerializedCacheKeyParametersForCall(a),{generations:l,missingPromptIndices:p,startedRunManagers:h}=await this._generateCached({messages:i,cache:u,llmStringKey:c,parsedOptions:a,handledOptions:o}),f={};if(p.length>0){let g=await this._generateUncached(p.map(b=>i[b]),a,o,h!==void 0?p.map(b=>h?.[b]):void 0);await Promise.all(g.generations.map(async(b,_)=>{let I=p[_];l[I]=b;let v=r._convertInputToPromptValue(i[I]).toString();return u.update(v,c,b)})),f=g.llmOutput??{}}return{generations:l,llmOutput:f}}invocationParams(e){return{}}_modelType(){return"base_chat_model"}serialize(){return{...this.invocationParams(),_type:this._llmType(),_model:this._modelType()}}async generatePrompt(e,t,n){let s=e.map(i=>i.toChatMessages());return this.generate(s,t,n)}async call(e,t,n){return(await this.generate([e.map(Dt)],t,n)).generations[0][0].message}async callPrompt(e,t,n){let s=e.toChatMessages();return this.call(s,t,n)}async predictMessages(e,t,n){return this.call(e,t,n)}async predict(e,t,n){let s=new ot(e),i=await this.call([s],t,n);if(typeof i.content!="string")throw new Error("Cannot use predict when output is not a string.");return i.content}withStructuredOutput(e,t){if(typeof this.bindTools!="function")throw new Error('Chat model must implement ".bindTools()" to use withStructuredOutput.');if(t?.strict)throw new Error('"strict" mode is not supported for this model by default.');let n=e,s=t?.name,i=$t(n)??"A function available to call.",o=t?.method,a=t?.includeRaw;if(o==="jsonMode")throw new Error('Base withStructuredOutput implementation only supports "functionCalling" as a method.');let u=s??"extract",c;Ze(n)?c=[{type:"function",function:{name:u,description:i,parameters:Ae(n)}}]:("name"in n&&(u=n.name),c=[{type:"function",function:{name:u,description:i,parameters:n}}]);let l=this.bindTools(c),p=Ft.from(b=>{if(!b.tool_calls||b.tool_calls.length===0)throw new Error("No tool calls found in the response.");let _=b.tool_calls.find(I=>I.name===u);if(!_)throw new Error(`No tool call found with name ${u}.`);return _.args});if(!a)return l.pipe(p).withConfig({runName:"StructuredOutput"});let h=Ge.assign({parsed:(b,_)=>p.invoke(b.raw,_)}),f=Ge.assign({parsed:()=>null}),g=h.withFallbacks({fallbacks:[f]});return Qe.from([{raw:l},g]).withConfig({runName:"StructuredOutputRunnable"})}},sc=class extends zt{async _generate(e,t,n){let s=await this._call(e,t,n),i=new ue(s);if(typeof i.content!="string")throw new Error("Cannot generate with a simple chat model when output is not a string.");return{generations:[{text:i.content,message:i}]}}};var oc={};re(oc,{BaseLLM:()=>gi,LLM:()=>Yn});var gi=class r extends en{constructor({concurrency:e,...t}){super(e?{maxConcurrency:e,...t}:t),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","llms",this._llmType()]})}async invoke(e,t){let n=r._convertInputToPromptValue(e);return(await this.generatePrompt([n],t,t?.callbacks)).generations[0][0].text}async*_streamResponseChunks(e,t,n){throw new Error("Not implemented.")}_separateRunnableConfigFromCallOptionsCompat(e){let[t,n]=super._separateRunnableConfigFromCallOptions(e);return n.signal=t.signal,[t,n]}async*_streamIterator(e,t){if(this._streamResponseChunks===r.prototype._streamResponseChunks)yield this.invoke(e,t);else{let n=r._convertInputToPromptValue(e),[s,i]=this._separateRunnableConfigFromCallOptionsCompat(t),o=await at.configure(s.callbacks,this.callbacks,s.tags,this.tags,s.metadata,this.metadata,{verbose:this.verbose}),a={options:i,invocation_params:this?.invocationParams(i),batch_size:1},u=await o?.handleLLMStart(this.toJSON(),[n.toString()],s.runId,void 0,a,void 0,void 0,s.runName),c=new oi({text:""});try{for await(let l of this._streamResponseChunks(n.toString(),i,u?.[0]))c?c=c.concat(l):c=l,typeof l.text=="string"&&(yield l.text)}catch(l){throw await Promise.all((u??[]).map(p=>p?.handleLLMError(l))),l}await Promise.all((u??[]).map(l=>l?.handleLLMEnd({generations:[[c]]})))}}async generatePrompt(e,t,n){let s=e.map(i=>i.toString());return this.generate(s,t,n)}invocationParams(e){return{}}_flattenLLMResult(e){let t=[];for(let n=0;n<e.generations.length;n+=1){let s=e.generations[n];if(n===0)t.push({generations:[s],llmOutput:e.llmOutput});else{let i=e.llmOutput?{...e.llmOutput,tokenUsage:{}}:void 0;t.push({generations:[s],llmOutput:i})}}return t}async _generateUncached(e,t,n,s){let i;if(s!==void 0&&s.length===e.length)i=s;else{let c=await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,n.metadata,this.metadata,{verbose:this.verbose}),l={options:t,invocation_params:this?.invocationParams(t),batch_size:e.length};i=await c?.handleLLMStart(this.toJSON(),e,n.runId,void 0,l,void 0,void 0,n?.runName)}let o=!!i?.[0].handlers.find(vo),a;if(o&&e.length===1&&this._streamResponseChunks!==r.prototype._streamResponseChunks)try{let c=await this._streamResponseChunks(e[0],t,i?.[0]),l;for await(let p of c)l===void 0?l=p:l=or(l,p);if(l===void 0)throw new Error("Received empty response from chat model call.");a={generations:[[l]],llmOutput:{}},await i?.[0].handleLLMEnd(a)}catch(c){throw await i?.[0].handleLLMError(c),c}else{try{a=await this._generate(e,t,i?.[0])}catch(l){throw await Promise.all((i??[]).map(p=>p?.handleLLMError(l))),l}let c=this._flattenLLMResult(a);await Promise.all((i??[]).map((l,p)=>l?.handleLLMEnd(c[p])))}let u=i?.map(c=>c.runId)||void 0;return Object.defineProperty(a,Wn,{value:u?{runIds:u}:void 0,configurable:!0}),a}async _generateCached({prompts:e,cache:t,llmStringKey:n,parsedOptions:s,handledOptions:i,runId:o}){let a=await at.configure(i.callbacks,this.callbacks,i.tags,this.tags,i.metadata,this.metadata,{verbose:this.verbose}),u={options:s,invocation_params:this?.invocationParams(s),batch_size:e.length},c=await a?.handleLLMStart(this.toJSON(),e,o,void 0,u,void 0,void 0,i?.runName),l=[],h=(await Promise.allSettled(e.map(async(b,_)=>{let I=await t.lookup(b,n);return I==null&&l.push(_),I}))).map((b,_)=>({result:b,runManager:c?.[_]})).filter(({result:b})=>b.status==="fulfilled"&&b.value!=null||b.status==="rejected"),f=[];await Promise.all(h.map(async({result:b,runManager:_},I)=>{if(b.status==="fulfilled"){let v=b.value;return f[I]=v.map(S=>(S.generationInfo={...S.generationInfo,tokenUsage:{}},S)),v.length&&await _?.handleLLMNewToken(v[0].text),_?.handleLLMEnd({generations:[v]},void 0,void 0,void 0,{cached:!0})}else return await _?.handleLLMError(b.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(b.reason)}));let g={generations:f,missingPromptIndices:l,startedRunManagers:c};return Object.defineProperty(g,Wn,{value:c?{runIds:c?.map(b=>b.runId)}:void 0,configurable:!0}),g}async generate(e,t,n){if(!Array.isArray(e))throw new Error("Argument 'prompts' is expected to be a string[]");let s;Array.isArray(t)?s={stop:t}:s=t;let[i,o]=this._separateRunnableConfigFromCallOptionsCompat(s);if(i.callbacks=i.callbacks??n,!this.cache)return this._generateUncached(e,o,i);let{cache:a}=this,u=this._getSerializedCacheKeyParametersForCall(o),{generations:c,missingPromptIndices:l,startedRunManagers:p}=await this._generateCached({prompts:e,cache:a,llmStringKey:u,parsedOptions:o,handledOptions:i,runId:i.runId}),h={};if(l.length>0){let f=await this._generateUncached(l.map(g=>e[g]),o,i,p!==void 0?l.map(g=>p?.[g]):void 0);await Promise.all(f.generations.map(async(g,b)=>{let _=l[b];return c[_]=g,a.update(e[_],u,g)})),h=f.llmOutput??{}}return{generations:c,llmOutput:h}}async call(e,t,n){let{generations:s}=await this.generate([e],t,n);return s[0][0].text}async predict(e,t,n){return this.call(e,t,n)}async predictMessages(e,t,n){let s=xo(e),i=await this.call(s,t,n);return new ue(i)}_identifyingParams(){return{}}serialize(){return{...this._identifyingParams(),_type:this._llmType(),_model:this._modelType()}}_modelType(){return"base_llm"}},Yn=class extends gi{async _generate(e,t,n){return{generations:await Promise.all(e.map((i,o)=>this._call(i,{...t,promptIndex:o},n).then(a=>[{text:a}])))}}};var uc={};re(uc,{BaseMemory:()=>ac,getInputValue:()=>Pb,getOutputValue:()=>Eb,getPromptInputKey:()=>Ib});var ac=class{},hh=(r,e)=>{if(e!==void 0)return r[e];let t=Object.keys(r);if(t.length===1)return r[t[0]]},Pb=(r,e)=>{let t=hh(r,e);if(!t){let n=Object.keys(r);throw new Error(`input values have ${n.length} keys, you must specify an input key or pass only 1 key as input`)}return t},Eb=(r,e)=>{let t=hh(r,e);if(!t&&t!==""){let n=Object.keys(r);throw new Error(`output values have ${n.length} keys, you must specify an output key or pass only 1 key as output`)}return t};function Ib(r,e){let t=Object.keys(r).filter(n=>!e.includes(n)&&n!=="stop");if(t.length!==1)throw new Error(`One input key expected, but got ${t.length}`);return t[0]}var xc={};re(xc,{AsymmetricStructuredOutputParser:()=>gc,BaseCumulativeTransformOutputParser:()=>ur,BaseLLMOutputParser:()=>Ho,BaseOutputParser:()=>Bt,BaseTransformOutputParser:()=>Kt,BytesOutputParser:()=>lc,CommaSeparatedListOutputParser:()=>pc,CustomListOutputParser:()=>fc,JsonMarkdownStructuredOutputParser:()=>Vo,JsonOutputParser:()=>Zn,ListOutputParser:()=>tn,MarkdownListOutputParser:()=>dc,NumberedListOutputParser:()=>hc,OutputParserException:()=>qe,StringOutputParser:()=>mc,StructuredOutputParser:()=>rn,XMLOutputParser:()=>_c,XML_FORMAT_INSTRUCTIONS:()=>yc,parseJsonMarkdown:()=>yo,parsePartialJson:()=>_o,parseXMLMarkdown:()=>wc});var cc={};re(cc,{RouterRunnable:()=>Bo,Runnable:()=>Z,RunnableAssign:()=>Po,RunnableBinding:()=>vr,RunnableBranch:()=>Ko,RunnableEach:()=>Uf,RunnableLambda:()=>Ft,RunnableMap:()=>Oo,RunnableParallel:()=>Bf,RunnablePassthrough:()=>Ge,RunnablePick:()=>Wf,RunnableRetry:()=>zf,RunnableSequence:()=>Qe,RunnableToolLike:()=>Hf,RunnableWithFallbacks:()=>Kf,RunnableWithMessageHistory:()=>Wo,_coerceToRunnable:()=>Ne,ensureConfig:()=>ut,getCallbackManagerForConfig:()=>xr,mergeConfigs:()=>ze,patchConfig:()=>he,pickRunnableConfigKeys:()=>Kn});var Bo=class extends Z{static lc_name(){return"RouterRunnable"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"runnables",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.runnables=e.runnables}async invoke(e,t){let{key:n,input:s}=e,i=this.runnables[n];if(i===void 0)throw new Error(`No runnable associated with key "${n}".`);return i.invoke(s,ut(t))}async batch(e,t,n){let s=e.map(h=>h.key),i=e.map(h=>h.input);if(s.find(h=>this.runnables[h]===void 0)!==void 0)throw new Error("One or more keys do not have a corresponding runnable.");let a=s.map(h=>this.runnables[h]),u=this._getOptionsList(t??{},e.length),c=u[0]?.maxConcurrency??n?.maxConcurrency,l=c&&c>0?c:e.length,p=[];for(let h=0;h<i.length;h+=l){let f=i.slice(h,h+l).map((b,_)=>a[_].invoke(b,u[_])),g=await Promise.all(f);p.push(g)}return p.flat()}async stream(e,t){let{key:n,input:s}=e,i=this.runnables[n];if(i===void 0)throw new Error(`No runnable associated with key "${n}".`);return i.stream(s,t)}};var Ko=class extends Z{static lc_name(){return"RunnableBranch"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","runnables"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"default",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"branches",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.branches=e.branches,this.default=e.default}static from(e){if(e.length<1)throw new Error("RunnableBranch requires at least one branch");let n=e.slice(0,-1).map(([i,o])=>[Ne(i),Ne(o)]),s=Ne(e[e.length-1]);return new this({branches:n,default:s})}async _invoke(e,t,n){let s;for(let i=0;i<this.branches.length;i+=1){let[o,a]=this.branches[i];if(await o.invoke(e,he(t,{callbacks:n?.getChild(`condition:${i+1}`)}))){s=await a.invoke(e,he(t,{callbacks:n?.getChild(`branch:${i+1}`)}));break}}return s||(s=await this.default.invoke(e,he(t,{callbacks:n?.getChild("branch:default")}))),s}async invoke(e,t={}){return this._callWithConfig(this._invoke,e,t)}async*_streamIterator(e,t){let s=await(await xr(t))?.handleChainStart(this.toJSON(),Ff(e,"input"),t?.runId,void 0,void 0,void 0,t?.runName),i,o=!0,a;try{for(let u=0;u<this.branches.length;u+=1){let[c,l]=this.branches[u];if(await c.invoke(e,he(t,{callbacks:s?.getChild(`condition:${u+1}`)}))){a=await l.stream(e,he(t,{callbacks:s?.getChild(`branch:${u+1}`)}));for await(let h of a)if(yield h,o)if(i===void 0)i=h;else try{i=or(i,h)}catch{i=void 0,o=!1}break}}if(a===void 0){a=await this.default.stream(e,he(t,{callbacks:s?.getChild("branch:default")}));for await(let u of a)if(yield u,o)if(i===void 0)i=u;else try{i=or(i,u)}catch{i=void 0,o=!1}}}catch(u){throw await s?.handleChainError(u),u}await s?.handleChainEnd(i??{})}};var Wo=class extends vr{constructor(e){let t=Ft.from((o,a)=>this._enterHistory(o,a??{})).withConfig({runName:"loadHistory"}),n=e.historyMessagesKey??e.inputMessagesKey;n&&(t=Ge.assign({[n]:t}).withConfig({runName:"insertHistory"}));let s=t.pipe(e.runnable.withListeners({onEnd:(o,a)=>this._exitHistory(o,a??{})})).withConfig({runName:"RunnableWithMessageHistory"}),i=e.config??{};super({...e,config:i,bound:s}),Object.defineProperty(this,"runnable",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"historyMessagesKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"getMessageHistory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.runnable=e.runnable,this.getMessageHistory=e.getMessageHistory,this.inputMessagesKey=e.inputMessagesKey,this.outputMessagesKey=e.outputMessagesKey,this.historyMessagesKey=e.historyMessagesKey}_getInputMessages(e){let t;if(typeof e=="object"&&!Array.isArray(e)&&!ve(e)){let n;this.inputMessagesKey?n=this.inputMessagesKey:Object.keys(e).length===1?n=Object.keys(e)[0]:n="input",Array.isArray(e[n])&&Array.isArray(e[n][0])?t=e[n][0]:t=e[n]}else t=e;if(typeof t=="string")return[new ot(t)];if(Array.isArray(t))return t;if(ve(t))return[t];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages.
10
+ Got ${JSON.stringify(t,null,2)}`)}_getOutputMessages(e){let t;if(!Array.isArray(e)&&!ve(e)&&typeof e!="string"){let n;this.outputMessagesKey!==void 0?n=this.outputMessagesKey:Object.keys(e).length===1?n=Object.keys(e)[0]:n="output",e.generations!==void 0?t=e.generations[0][0].message:t=e[n]}else t=e;if(typeof t=="string")return[new ue(t)];if(Array.isArray(t))return t;if(ve(t))return[t];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages. Received: ${JSON.stringify(t,null,2)}`)}async _enterHistory(e,t){let s=await(t?.configurable?.messageHistory).getMessages();return this.historyMessagesKey===void 0?s.concat(this._getInputMessages(e)):s}async _exitHistory(e,t){let n=t.configurable?.messageHistory,s;Array.isArray(e.inputs)&&Array.isArray(e.inputs[0])?s=e.inputs[0]:s=e.inputs;let i=this._getInputMessages(s);if(this.historyMessagesKey===void 0){let u=await n.getMessages();i=i.slice(u.length)}let o=e.outputs;if(!o)throw new Error(`Output values from 'Run' undefined. Run: ${JSON.stringify(e,null,2)}`);let a=this._getOutputMessages(o);await n.addMessages([...i,...a])}async _mergeConfig(...e){let t=await super._mergeConfig(...e);if(!t.configurable||!t.configurable.sessionId){let s={[this.inputMessagesKey??"input"]:"foo"},i={configurable:{sessionId:"123"}};throw new Error(`sessionId is required. Pass it in as part of the config argument to .invoke() or .stream()
11
+ eg. chain.invoke(${JSON.stringify(s)}, ${JSON.stringify(i)})`)}let{sessionId:n}=t.configurable;return t.configurable.messageHistory=await this.getMessageHistory(n),t}};var Ho=class extends Z{parseResultWithPrompt(e,t,n){return this.parseResult(e,n)}_baseMessageToString(e){return typeof e.content=="string"?e.content:this._baseMessageContentToString(e.content)}_baseMessageContentToString(e){return JSON.stringify(e)}async invoke(e,t){return typeof e=="string"?this._callWithConfig(async(n,s)=>this.parseResult([{text:n}],s?.callbacks),e,{...t,runType:"parser"}):this._callWithConfig(async(n,s)=>this.parseResult([{message:n,text:this._baseMessageToString(n)}],s?.callbacks),e,{...t,runType:"parser"})}},Bt=class extends Ho{parseResult(e,t){return this.parse(e[0].text,t)}async parseWithPrompt(e,t,n){return this.parse(e,n)}_type(){throw new Error("_type not implemented")}},qe=class extends Error{constructor(e,t,n,s=!1){if(super(e),Object.defineProperty(this,"llmOutput",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"observation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sendToLLM",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.llmOutput=t,this.observation=n,this.sendToLLM=s,s&&(n===void 0||t===void 0))throw new Error("Arguments 'observation' & 'llmOutput' are required if 'sendToLlm' is true");of(this,"OUTPUT_PARSING_FAILURE")}};var Kt=class extends Bt{async*_transform(e){for await(let t of e)typeof t=="string"?yield this.parseResult([{text:t}]):yield this.parseResult([{message:t,text:this._baseMessageToString(t)}])}async*transform(e,t){yield*this._transformStreamWithConfig(e,this._transform.bind(this),{...t,runType:"parser"})}},ur=class extends Kt{constructor(e){super(e),Object.defineProperty(this,"diff",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this.diff=e?.diff??this.diff}async*_transform(e){let t,n;for await(let s of e){if(typeof s!="string"&&typeof s.content!="string")throw new Error("Cannot handle non-string output.");let i;if(ii(s)){if(typeof s.content!="string")throw new Error("Cannot handle non-string message output.");i=new ht({message:s,text:s.content})}else if(ve(s)){if(typeof s.content!="string")throw new Error("Cannot handle non-string message output.");i=new ht({message:bf(s),text:s.content})}else i=new oi({text:s});n===void 0?n=i:n=n.concat(i);let o=await this.parsePartialResult([n]);o!=null&&!Mf(o,t)&&(this.diff?yield this._diff(t,o):yield o,t=o)}}getFormatInstructions(){return""}};var lc=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","bytes"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"textEncoder",{enumerable:!0,configurable:!0,writable:!0,value:new TextEncoder})}static lc_name(){return"BytesOutputParser"}parse(e){return Promise.resolve(this.textEncoder.encode(e))}getFormatInstructions(){return""}};var tn=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}async*_transform(e){let t="";for await(let n of e)if(typeof n=="string"?t+=n:t+=n.content,this.re){let s=[...t.matchAll(this.re)];if(s.length>1){let i=0;for(let o of s.slice(0,-1))yield[o[1]],i+=(o.index??0)+o[0].length;t=t.slice(i)}}else{let s=await this.parse(t);if(s.length>1){for(let i of s.slice(0,-1))yield[i];t=s[s.length-1]}}for(let n of await this.parse(t))yield[n]}},pc=class extends tn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"CommaSeparatedListOutputParser"}async parse(e){try{return e.trim().split(",").map(t=>t.trim())}catch{throw new qe(`Could not parse output: ${e}`,e)}}getFormatInstructions(){return"Your response should be a list of comma separated values, eg: `foo, bar, baz`"}},fc=class extends tn{constructor({length:e,separator:t}){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"length",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"separator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.length=e,this.separator=t||","}async parse(e){try{let t=e.trim().split(this.separator).map(n=>n.trim());if(this.length!==void 0&&t.length!==this.length)throw new qe(`Incorrect number of items. Expected ${this.length}, got ${t.length}.`);return t}catch(t){throw Object.getPrototypeOf(t)===qe.prototype?t:new qe(`Could not parse output: ${e}`)}}getFormatInstructions(){return`Your response should be a list of ${this.length===void 0?"":`${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`}},hc=class extends tn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:/\d+\.\s([^\n]+)/g})}static lc_name(){return"NumberedListOutputParser"}getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
12
+
13
+ 1. foo
14
+
15
+ 2. bar
16
+
17
+ 3. baz`}async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}},dc=class extends tn{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","list"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"re",{enumerable:!0,configurable:!0,writable:!0,value:/^\s*[-*]\s([^\n]+)$/gm})}static lc_name(){return"NumberedListOutputParser"}getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
18
+
19
+ 1. foo
20
+
21
+ 2. bar
22
+
23
+ 3. baz`}async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}};var mc=class extends Kt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers","string"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"StrOutputParser"}parse(e){return Promise.resolve(e)}getFormatInstructions(){return""}_textContentToString(e){return e.text}_imageUrlContentToString(e){throw new Error('Cannot coerce a multimodal "image_url" message part into a string.')}_messageContentComplexToString(e){switch(e.type){case"text":case"text_delta":if("text"in e)return this._textContentToString(e);break;case"image_url":if("image_url"in e)return this._imageUrlContentToString(e);break;default:throw new Error(`Cannot coerce "${e.type}" message part into a string.`)}throw new Error(`Invalid content type: ${e.type}`)}_baseMessageContentToString(e){return e.reduce((t,n)=>t+this._messageContentComplexToString(n),"")}};var rn=class extends Bt{static lc_name(){return"StructuredOutputParser"}toJSON(){return this.toJSONNotImplemented()}constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","structured"]})}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=oe.object(Object.fromEntries(Object.entries(e).map(([n,s])=>[n,oe.string().describe(s)])));return new this(t)}getFormatInstructions(){return`You must format your output as a JSON value that adheres to a given "JSON Schema" instance.
24
+
25
+ "JSON Schema" is a declarative language that allows you to annotate and validate JSON documents.
26
+
27
+ For example, the example "JSON Schema" instance {{"properties": {{"foo": {{"description": "a list of test words", "type": "array", "items": {{"type": "string"}}}}}}, "required": ["foo"]}}
28
+ would match an object with one required property, "foo". The "type" property specifies "foo" must be an "array", and the "description" property semantically describes it as "a list of test words". The items within "foo" must be strings.
29
+ Thus, the object {{"foo": ["bar", "baz"]}} is a well-formatted instance of this example "JSON Schema". The object {{"properties": {{"foo": ["bar", "baz"]}}}} is not well-formatted.
30
+
31
+ Your output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!
32
+
33
+ Here is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:
34
+ \`\`\`json
35
+ ${JSON.stringify(Ae(this.schema))}
36
+ \`\`\`
37
+ `}async parse(e){try{let t=e.trim(),s=(t.match(/^```(?:json)?\s*([\s\S]*?)```/)?.[1]||t.match(/```json\s*([\s\S]*?)```/)?.[1]||t).replace(/"([^"\\]*(\\.[^"\\]*)*)"/g,(i,o)=>`"${o.replace(/\n/g,"\\n")}"`).replace(/\n/g,"");return await ui(this.schema,JSON.parse(s))}catch(t){throw new qe(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}},Vo=class extends rn{static lc_name(){return"JsonMarkdownStructuredOutputParser"}getFormatInstructions(e){let t=e?.interpolationDepth??1;if(t<1)throw new Error("f string interpolation depth must be at least 1");return`Return a markdown code snippet with a JSON object formatted to look like:
38
+ \`\`\`json
39
+ ${this._schemaToInstruction(Ae(this.schema)).replaceAll("{","{".repeat(t)).replaceAll("}","}".repeat(t))}
40
+ \`\`\``}_schemaToInstruction(e,t=2){let n=e;if("type"in n){let s=!1,i;if(Array.isArray(n.type)){let u=n.type.findIndex(c=>c==="null");u!==-1&&(s=!0,n.type.splice(u,1)),i=n.type.join(" | ")}else i=n.type;if(n.type==="object"&&n.properties){let u=n.description?` // ${n.description}`:"";return`{
41
+ ${Object.entries(n.properties).map(([l,p])=>{let h=n.required?.includes(l)?"":" (optional)";return`${" ".repeat(t)}"${l}": ${this._schemaToInstruction(p,t+2)}${h}`}).join(`
42
+ `)}
43
+ ${" ".repeat(t-2)}}${u}`}if(n.type==="array"&&n.items){let u=n.description?` // ${n.description}`:"";return`array[
44
+ ${" ".repeat(t)}${this._schemaToInstruction(n.items,t+2)}
45
+ ${" ".repeat(t-2)}] ${u}`}let o=s?" (nullable)":"",a=n.description?` // ${n.description}`:"";return`${i}${a}${o}`}if("anyOf"in n)return n.anyOf.map(s=>this._schemaToInstruction(s,t)).join(`
46
+ ${" ".repeat(t-2)}`);throw new Error("unsupported schema type")}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=oe.object(Object.fromEntries(Object.entries(e).map(([n,s])=>[n,oe.string().describe(s)])));return new this(t)}},gc=class extends Bt{constructor({inputSchema:e}){super(...arguments),Object.defineProperty(this,"structuredInputParser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.structuredInputParser=new Vo(e)}async parse(e){let t;try{t=await this.structuredInputParser.parse(e)}catch(n){throw new qe(`Failed to parse. Text: "${e}". Error: ${n}`,e)}return this.outputProcessor(t)}getFormatInstructions(){return this.structuredInputParser.getFormatInstructions()}};var bc={};re(bc,{applyPatch:()=>kf,compare:()=>Bn});var Zn=class extends ur{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0})}static lc_name(){return"JsonOutputParser"}_concatOutputChunks(e,t){return this.diff?super._concatOutputChunks(e,t):t}_diff(e,t){if(t)return e?Bn(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return yo(e[0].text)}async parse(e){return yo(e,JSON.parse)}getFormatInstructions(){return""}};var kb=function(){let r={};r.parser=function(m,d){return new t(m,d)},r.SAXParser=t,r.SAXStream=c,r.createStream=u,r.MAX_BUFFER_LENGTH=65536;let e=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];r.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function t(m,d){if(!(this instanceof t))return new t(m,d);var A=this;s(A),A.q=A.c="",A.bufferCheckPosition=r.MAX_BUFFER_LENGTH,A.opt=d||{},A.opt.lowercase=A.opt.lowercase||A.opt.lowercasetags,A.looseCase=A.opt.lowercase?"toLowerCase":"toUpperCase",A.tags=[],A.closed=A.closedRoot=A.sawRoot=!1,A.tag=A.error=null,A.strict=!!m,A.noscript=!!(m||A.opt.noscript),A.state=y.BEGIN,A.strictEntities=A.opt.strictEntities,A.ENTITIES=A.strictEntities?Object.create(r.XML_ENTITIES):Object.create(r.ENTITIES),A.attribList=[],A.opt.xmlns&&(A.ns=Object.create(g)),A.trackPosition=A.opt.position!==!1,A.trackPosition&&(A.position=A.line=A.column=0),$(A,"onready")}Object.create||(Object.create=function(m){function d(){}d.prototype=m;var A=new d;return A}),Object.keys||(Object.keys=function(m){var d=[];for(var A in m)m.hasOwnProperty(A)&&d.push(A);return d});function n(m){for(var d=Math.max(r.MAX_BUFFER_LENGTH,10),A=0,w=0,te=e.length;w<te;w++){var be=m[e[w]].length;if(be>d)switch(e[w]){case"textNode":J(m);break;case"cdata":P(m,"oncdata",m.cdata),m.cdata="";break;case"script":P(m,"onscript",m.script),m.script="";break;default:le(m,"Max buffer length exceeded: "+e[w])}A=Math.max(A,be)}var ye=r.MAX_BUFFER_LENGTH-A;m.bufferCheckPosition=ye+m.position}function s(m){for(var d=0,A=e.length;d<A;d++)m[e[d]]=""}function i(m){J(m),m.cdata!==""&&(P(m,"oncdata",m.cdata),m.cdata=""),m.script!==""&&(P(m,"onscript",m.script),m.script="")}t.prototype={end:function(){Nt(this)},write:_g,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){i(this)}};var o=ReadableStream;o||(o=function(){});var a=r.EVENTS.filter(function(m){return m!=="error"&&m!=="end"});function u(m,d){return new c(m,d)}function c(m,d){if(!(this instanceof c))return new c(m,d);o.apply(this),this._parser=new t(m,d),this.writable=!0,this.readable=!0;var A=this;this._parser.onend=function(){A.emit("end")},this._parser.onerror=function(w){A.emit("error",w),A._parser.error=null},this._decoder=null,a.forEach(function(w){Object.defineProperty(A,"on"+w,{get:function(){return A._parser["on"+w]},set:function(te){if(!te)return A.removeAllListeners(w),A._parser["on"+w]=te,te;A.on(w,te)},enumerable:!0,configurable:!1})})}c.prototype=Object.create(o.prototype,{constructor:{value:c}}),c.prototype.write=function(m){return this._parser.write(m.toString()),this.emit("data",m),!0},c.prototype.end=function(m){return m&&m.length&&this.write(m),this._parser.end(),!0},c.prototype.on=function(m,d){var A=this;return!A._parser["on"+m]&&a.indexOf(m)!==-1&&(A._parser["on"+m]=function(){var w=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);w.splice(0,0,m),A.emit.apply(A,w)}),o.prototype.on.call(A,m,d)};var l="[CDATA[",p="DOCTYPE",h="http://www.w3.org/XML/1998/namespace",f="http://www.w3.org/2000/xmlns/",g={xml:h,xmlns:f},b=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,_=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,I=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,v=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function S(m){return m===" "||m===`
47
+ `||m==="\r"||m===" "}function C(m){return m==='"'||m==="'"}function j(m){return m===">"||S(m)}function F(m,d){return m.test(d)}function D(m,d){return!F(m,d)}var y=0;r.STATE={BEGIN:y++,BEGIN_WHITESPACE:y++,TEXT:y++,TEXT_ENTITY:y++,OPEN_WAKA:y++,SGML_DECL:y++,SGML_DECL_QUOTED:y++,DOCTYPE:y++,DOCTYPE_QUOTED:y++,DOCTYPE_DTD:y++,DOCTYPE_DTD_QUOTED:y++,COMMENT_STARTING:y++,COMMENT:y++,COMMENT_ENDING:y++,COMMENT_ENDED:y++,CDATA:y++,CDATA_ENDING:y++,CDATA_ENDING_2:y++,PROC_INST:y++,PROC_INST_BODY:y++,PROC_INST_ENDING:y++,OPEN_TAG:y++,OPEN_TAG_SLASH:y++,ATTRIB:y++,ATTRIB_NAME:y++,ATTRIB_NAME_SAW_WHITE:y++,ATTRIB_VALUE:y++,ATTRIB_VALUE_QUOTED:y++,ATTRIB_VALUE_CLOSED:y++,ATTRIB_VALUE_UNQUOTED:y++,ATTRIB_VALUE_ENTITY_Q:y++,ATTRIB_VALUE_ENTITY_U:y++,CLOSE_TAG:y++,CLOSE_TAG_SAW_WHITE:y++,SCRIPT:y++,SCRIPT_ENDING:y++},r.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},r.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(r.ENTITIES).forEach(function(m){var d=r.ENTITIES[m],A=typeof d=="number"?String.fromCharCode(d):d;r.ENTITIES[m]=A});for(var T in r.STATE)r.STATE[r.STATE[T]]=T;y=r.STATE;function $(m,d,A){m[d]&&m[d](A)}function P(m,d,A){m.textNode&&J(m),$(m,d,A)}function J(m){m.textNode=ie(m.opt,m.textNode),m.textNode&&$(m,"ontext",m.textNode),m.textNode=""}function ie(m,d){return m.trim&&(d=d.trim()),m.normalize&&(d=d.replace(/\s+/g," ")),d}function le(m,d){return J(m),m.trackPosition&&(d+=`
48
+ Line: `+m.line+`
49
+ Column: `+m.column+`
50
+ Char: `+m.c),d=new Error(d),m.error=d,$(m,"onerror",d),m}function Nt(m){return m.sawRoot&&!m.closedRoot&&Q(m,"Unclosed root tag"),m.state!==y.BEGIN&&m.state!==y.BEGIN_WHITESPACE&&m.state!==y.TEXT&&le(m,"Unexpected end"),J(m),m.c="",m.closed=!0,$(m,"onend"),t.call(m,m.strict,m.opt),m}function Q(m,d){if(typeof m!="object"||!(m instanceof t))throw new Error("bad call to strictFail");m.strict&&le(m,d)}function Gr(m){m.strict||(m.tagName=m.tagName[m.looseCase]());var d=m.tags[m.tags.length-1]||m,A=m.tag={name:m.tagName,attributes:{}};m.opt.xmlns&&(A.ns=d.ns),m.attribList.length=0,P(m,"onopentagstart",A)}function ni(m,d){var A=m.indexOf(":"),w=A<0?["",m]:m.split(":"),te=w[0],be=w[1];return d&&m==="xmlns"&&(te="xmlns",be=""),{prefix:te,local:be}}function si(m){if(m.strict||(m.attribName=m.attribName[m.looseCase]()),m.attribList.indexOf(m.attribName)!==-1||m.tag.attributes.hasOwnProperty(m.attribName)){m.attribName=m.attribValue="";return}if(m.opt.xmlns){var d=ni(m.attribName,!0),A=d.prefix,w=d.local;if(A==="xmlns")if(w==="xml"&&m.attribValue!==h)Q(m,"xml: prefix must be bound to "+h+`
51
+ Actual: `+m.attribValue);else if(w==="xmlns"&&m.attribValue!==f)Q(m,"xmlns: prefix must be bound to "+f+`
52
+ Actual: `+m.attribValue);else{var te=m.tag,be=m.tags[m.tags.length-1]||m;te.ns===be.ns&&(te.ns=Object.create(be.ns)),te.ns[w]=m.attribValue}m.attribList.push([m.attribName,m.attribValue])}else m.tag.attributes[m.attribName]=m.attribValue,P(m,"onattribute",{name:m.attribName,value:m.attribValue});m.attribName=m.attribValue=""}function qr(m,d){if(m.opt.xmlns){var A=m.tag,w=ni(m.tagName);A.prefix=w.prefix,A.local=w.local,A.uri=A.ns[w.prefix]||"",A.prefix&&!A.uri&&(Q(m,"Unbound namespace prefix: "+JSON.stringify(m.tagName)),A.uri=w.prefix);var te=m.tags[m.tags.length-1]||m;A.ns&&te.ns!==A.ns&&Object.keys(A.ns).forEach(function(Xp){P(m,"onopennamespace",{prefix:Xp,uri:A.ns[Xp]})});for(var be=0,ye=m.attribList.length;be<ye;be++){var Ve=m.attribList[be],it=Ve[0],Un=Ve[1],Se=ni(it,!0),sr=Se.prefix,wg=Se.local,Jp=sr===""?"":A.ns[sr]||"",wu={name:it,value:Un,prefix:sr,local:wg,uri:Jp};sr&&sr!=="xmlns"&&!Jp&&(Q(m,"Unbound namespace prefix: "+JSON.stringify(sr)),wu.uri=sr),m.tag.attributes[it]=wu,P(m,"onattribute",wu)}m.attribList.length=0}m.tag.isSelfClosing=!!d,m.sawRoot=!0,m.tags.push(m.tag),P(m,"onopentag",m.tag),d||(!m.noscript&&m.tagName.toLowerCase()==="script"?m.state=y.SCRIPT:m.state=y.TEXT,m.tag=null,m.tagName=""),m.attribName=m.attribValue="",m.attribList.length=0}function _u(m){if(!m.tagName){Q(m,"Weird empty close tag."),m.textNode+="</>",m.state=y.TEXT;return}if(m.script){if(m.tagName!=="script"){m.script+="</"+m.tagName+">",m.tagName="",m.state=y.SCRIPT;return}P(m,"onscript",m.script),m.script=""}var d=m.tags.length,A=m.tagName;m.strict||(A=A[m.looseCase]());for(var w=A;d--;){var te=m.tags[d];if(te.name!==w)Q(m,"Unexpected close tag");else break}if(d<0){Q(m,"Unmatched closing tag: "+m.tagName),m.textNode+="</"+m.tagName+">",m.state=y.TEXT;return}m.tagName=A;for(var be=m.tags.length;be-- >d;){var ye=m.tag=m.tags.pop();m.tagName=m.tag.name,P(m,"onclosetag",m.tagName);var Ve={};for(var it in ye.ns)Ve[it]=ye.ns[it];var Un=m.tags[m.tags.length-1]||m;m.opt.xmlns&&ye.ns!==Un.ns&&Object.keys(ye.ns).forEach(function(Se){var sr=ye.ns[Se];P(m,"onclosenamespace",{prefix:Se,uri:sr})})}d===0&&(m.closedRoot=!0),m.tagName=m.attribValue=m.attribName="",m.attribList.length=0,m.state=y.TEXT}function Vp(m){var d=m.entity,A=d.toLowerCase(),w,te="";return m.ENTITIES[d]?m.ENTITIES[d]:m.ENTITIES[A]?m.ENTITIES[A]:(d=A,d.charAt(0)==="#"&&(d.charAt(1)==="x"?(d=d.slice(2),w=parseInt(d,16),te=w.toString(16)):(d=d.slice(1),w=parseInt(d,10),te=w.toString(10))),d=d.replace(/^0+/,""),isNaN(w)||te.toLowerCase()!==d?(Q(m,"Invalid character entity"),"&"+m.entity+";"):String.fromCodePoint(w))}function Gp(m,d){d==="<"?(m.state=y.OPEN_WAKA,m.startTagPosition=m.position):S(d)||(Q(m,"Non-whitespace before first tag."),m.textNode=d,m.state=y.TEXT)}function qp(m,d){var A="";return d<m.length&&(A=m.charAt(d)),A}function _g(m){var d=this;if(this.error)throw this.error;if(d.closed)return le(d,"Cannot write after close. Assign an onready handler.");if(m===null)return Nt(d);typeof m=="object"&&(m=m.toString());for(var A=0,w="";w=qp(m,A++),d.c=w,!!w;)switch(d.trackPosition&&(d.position++,w===`
53
+ `?(d.line++,d.column=0):d.column++),d.state){case y.BEGIN:if(d.state=y.BEGIN_WHITESPACE,w==="\uFEFF")continue;Gp(d,w);continue;case y.BEGIN_WHITESPACE:Gp(d,w);continue;case y.TEXT:if(d.sawRoot&&!d.closedRoot){for(var te=A-1;w&&w!=="<"&&w!=="&";)w=qp(m,A++),w&&d.trackPosition&&(d.position++,w===`
54
+ `?(d.line++,d.column=0):d.column++);d.textNode+=m.substring(te,A-1)}w==="<"&&!(d.sawRoot&&d.closedRoot&&!d.strict)?(d.state=y.OPEN_WAKA,d.startTagPosition=d.position):(!S(w)&&(!d.sawRoot||d.closedRoot)&&Q(d,"Text data outside of root node."),w==="&"?d.state=y.TEXT_ENTITY:d.textNode+=w);continue;case y.SCRIPT:w==="<"?d.state=y.SCRIPT_ENDING:d.script+=w;continue;case y.SCRIPT_ENDING:w==="/"?d.state=y.CLOSE_TAG:(d.script+="<"+w,d.state=y.SCRIPT);continue;case y.OPEN_WAKA:if(w==="!")d.state=y.SGML_DECL,d.sgmlDecl="";else if(!S(w))if(F(b,w))d.state=y.OPEN_TAG,d.tagName=w;else if(w==="/")d.state=y.CLOSE_TAG,d.tagName="";else if(w==="?")d.state=y.PROC_INST,d.procInstName=d.procInstBody="";else{if(Q(d,"Unencoded <"),d.startTagPosition+1<d.position){var be=d.position-d.startTagPosition;w=new Array(be).join(" ")+w}d.textNode+="<"+w,d.state=y.TEXT}continue;case y.SGML_DECL:(d.sgmlDecl+w).toUpperCase()===l?(P(d,"onopencdata"),d.state=y.CDATA,d.sgmlDecl="",d.cdata=""):d.sgmlDecl+w==="--"?(d.state=y.COMMENT,d.comment="",d.sgmlDecl=""):(d.sgmlDecl+w).toUpperCase()===p?(d.state=y.DOCTYPE,(d.doctype||d.sawRoot)&&Q(d,"Inappropriately located doctype declaration"),d.doctype="",d.sgmlDecl=""):w===">"?(P(d,"onsgmldeclaration",d.sgmlDecl),d.sgmlDecl="",d.state=y.TEXT):(C(w)&&(d.state=y.SGML_DECL_QUOTED),d.sgmlDecl+=w);continue;case y.SGML_DECL_QUOTED:w===d.q&&(d.state=y.SGML_DECL,d.q=""),d.sgmlDecl+=w;continue;case y.DOCTYPE:w===">"?(d.state=y.TEXT,P(d,"ondoctype",d.doctype),d.doctype=!0):(d.doctype+=w,w==="["?d.state=y.DOCTYPE_DTD:C(w)&&(d.state=y.DOCTYPE_QUOTED,d.q=w));continue;case y.DOCTYPE_QUOTED:d.doctype+=w,w===d.q&&(d.q="",d.state=y.DOCTYPE);continue;case y.DOCTYPE_DTD:d.doctype+=w,w==="]"?d.state=y.DOCTYPE:C(w)&&(d.state=y.DOCTYPE_DTD_QUOTED,d.q=w);continue;case y.DOCTYPE_DTD_QUOTED:d.doctype+=w,w===d.q&&(d.state=y.DOCTYPE_DTD,d.q="");continue;case y.COMMENT:w==="-"?d.state=y.COMMENT_ENDING:d.comment+=w;continue;case y.COMMENT_ENDING:w==="-"?(d.state=y.COMMENT_ENDED,d.comment=ie(d.opt,d.comment),d.comment&&P(d,"oncomment",d.comment),d.comment=""):(d.comment+="-"+w,d.state=y.COMMENT);continue;case y.COMMENT_ENDED:w!==">"?(Q(d,"Malformed comment"),d.comment+="--"+w,d.state=y.COMMENT):d.state=y.TEXT;continue;case y.CDATA:w==="]"?d.state=y.CDATA_ENDING:d.cdata+=w;continue;case y.CDATA_ENDING:w==="]"?d.state=y.CDATA_ENDING_2:(d.cdata+="]"+w,d.state=y.CDATA);continue;case y.CDATA_ENDING_2:w===">"?(d.cdata&&P(d,"oncdata",d.cdata),P(d,"onclosecdata"),d.cdata="",d.state=y.TEXT):w==="]"?d.cdata+="]":(d.cdata+="]]"+w,d.state=y.CDATA);continue;case y.PROC_INST:w==="?"?d.state=y.PROC_INST_ENDING:S(w)?d.state=y.PROC_INST_BODY:d.procInstName+=w;continue;case y.PROC_INST_BODY:if(!d.procInstBody&&S(w))continue;w==="?"?d.state=y.PROC_INST_ENDING:d.procInstBody+=w;continue;case y.PROC_INST_ENDING:w===">"?(P(d,"onprocessinginstruction",{name:d.procInstName,body:d.procInstBody}),d.procInstName=d.procInstBody="",d.state=y.TEXT):(d.procInstBody+="?"+w,d.state=y.PROC_INST_BODY);continue;case y.OPEN_TAG:F(_,w)?d.tagName+=w:(Gr(d),w===">"?qr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:(S(w)||Q(d,"Invalid character in tag name"),d.state=y.ATTRIB));continue;case y.OPEN_TAG_SLASH:w===">"?(qr(d,!0),_u(d)):(Q(d,"Forward-slash in opening tag not followed by >"),d.state=y.ATTRIB);continue;case y.ATTRIB:if(S(w))continue;w===">"?qr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:F(b,w)?(d.attribName=w,d.attribValue="",d.state=y.ATTRIB_NAME):Q(d,"Invalid attribute name");continue;case y.ATTRIB_NAME:w==="="?d.state=y.ATTRIB_VALUE:w===">"?(Q(d,"Attribute without value"),d.attribValue=d.attribName,si(d),qr(d)):S(w)?d.state=y.ATTRIB_NAME_SAW_WHITE:F(_,w)?d.attribName+=w:Q(d,"Invalid attribute name");continue;case y.ATTRIB_NAME_SAW_WHITE:if(w==="=")d.state=y.ATTRIB_VALUE;else{if(S(w))continue;Q(d,"Attribute without value"),d.tag.attributes[d.attribName]="",d.attribValue="",P(d,"onattribute",{name:d.attribName,value:""}),d.attribName="",w===">"?qr(d):F(b,w)?(d.attribName=w,d.state=y.ATTRIB_NAME):(Q(d,"Invalid attribute name"),d.state=y.ATTRIB)}continue;case y.ATTRIB_VALUE:if(S(w))continue;C(w)?(d.q=w,d.state=y.ATTRIB_VALUE_QUOTED):(Q(d,"Unquoted attribute value"),d.state=y.ATTRIB_VALUE_UNQUOTED,d.attribValue=w);continue;case y.ATTRIB_VALUE_QUOTED:if(w!==d.q){w==="&"?d.state=y.ATTRIB_VALUE_ENTITY_Q:d.attribValue+=w;continue}si(d),d.q="",d.state=y.ATTRIB_VALUE_CLOSED;continue;case y.ATTRIB_VALUE_CLOSED:S(w)?d.state=y.ATTRIB:w===">"?qr(d):w==="/"?d.state=y.OPEN_TAG_SLASH:F(b,w)?(Q(d,"No whitespace between attributes"),d.attribName=w,d.attribValue="",d.state=y.ATTRIB_NAME):Q(d,"Invalid attribute name");continue;case y.ATTRIB_VALUE_UNQUOTED:if(!j(w)){w==="&"?d.state=y.ATTRIB_VALUE_ENTITY_U:d.attribValue+=w;continue}si(d),w===">"?qr(d):d.state=y.ATTRIB;continue;case y.CLOSE_TAG:if(d.tagName)w===">"?_u(d):F(_,w)?d.tagName+=w:d.script?(d.script+="</"+d.tagName,d.tagName="",d.state=y.SCRIPT):(S(w)||Q(d,"Invalid tagname in closing tag"),d.state=y.CLOSE_TAG_SAW_WHITE);else{if(S(w))continue;D(b,w)?d.script?(d.script+="</"+w,d.state=y.SCRIPT):Q(d,"Invalid tagname in closing tag."):d.tagName=w}continue;case y.CLOSE_TAG_SAW_WHITE:if(S(w))continue;w===">"?_u(d):Q(d,"Invalid characters in closing tag");continue;case y.TEXT_ENTITY:case y.ATTRIB_VALUE_ENTITY_Q:case y.ATTRIB_VALUE_ENTITY_U:var ye,Ve;switch(d.state){case y.TEXT_ENTITY:ye=y.TEXT,Ve="textNode";break;case y.ATTRIB_VALUE_ENTITY_Q:ye=y.ATTRIB_VALUE_QUOTED,Ve="attribValue";break;case y.ATTRIB_VALUE_ENTITY_U:ye=y.ATTRIB_VALUE_UNQUOTED,Ve="attribValue";break}if(w===";")if(d.opt.unparsedEntities){var it=Vp(d);d.entity="",d.state=ye,d.write(it)}else d[Ve]+=Vp(d),d.entity="",d.state=ye;else F(d.entity.length?v:I,w)?d.entity+=w:(Q(d,"Invalid character in entity name"),d[Ve]+="&"+d.entity+w,d.entity="",d.state=ye);continue;default:throw new Error(d,"Unknown state: "+d.state)}return d.position>=d.bufferCheckPosition&&n(d),d}return String.fromCodePoint||(function(){var m=String.fromCharCode,d=Math.floor,A=function(){var w=16384,te=[],be,ye,Ve=-1,it=arguments.length;if(!it)return"";for(var Un="";++Ve<it;){var Se=Number(arguments[Ve]);if(!isFinite(Se)||Se<0||Se>1114111||d(Se)!==Se)throw RangeError("Invalid code point: "+Se);Se<=65535?te.push(Se):(Se-=65536,be=(Se>>10)+55296,ye=Se%1024+56320,te.push(be,ye)),(Ve+1===it||te.length>w)&&(Un+=m.apply(null,te),te.length=0)}return Un};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:A,configurable:!0,writable:!0}):String.fromCodePoint=A})(),r},dh=kb();var yc=`The output should be formatted as a XML file.
55
+ 1. Output should conform to the tags below.
56
+ 2. If tags are not given, make them on your own.
57
+ 3. Remember to always open and close all the tags.
58
+
59
+ As an example, for the tags ["foo", "bar", "baz"]:
60
+ 1. String "<foo>
61
+ <bar>
62
+ <baz></baz>
63
+ </bar>
64
+ </foo>" is a well-formatted instance of the schema.
65
+ 2. String "<foo>
66
+ <bar>
67
+ </foo>" is a badly-formatted instance.
68
+ 3. String "<foo>
69
+ <tag>
70
+ </tag>
71
+ </foo>" is a badly-formatted instance.
72
+
73
+ Here are the output tags:
74
+ \`\`\`
75
+ {tags}
76
+ \`\`\``,_c=class extends ur{constructor(e){super(e),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","output_parsers"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.tags=e?.tags}static lc_name(){return"XMLOutputParser"}_diff(e,t){if(t)return e?Bn(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return wc(e[0].text)}async parse(e){return wc(e)}getFormatInstructions(){return!!(this.tags&&this.tags.length>0)?yc.replace("{tags}",this.tags?.join(", ")??""):yc}},Sb=r=>r.split(`
77
+ `).map(e=>e.replace(/^\s+/,"")).join(`
78
+ `).trim(),mh=r=>{if(Object.keys(r).length===0)return{};let e={};return r.children.length>0?(e[r.name]=r.children.map(mh),e):(e[r.name]=r.text??void 0,e)};function wc(r){let e=Sb(r),t=dh.parser(!0),n={},s=[];t.onopentag=a=>{let u={name:a.name,attributes:a.attributes,children:[],text:"",isSelfClosing:a.isSelfClosing};s.length>0?s[s.length-1].children.push(u):n=u,a.isSelfClosing||s.push(u)},t.onclosetag=()=>{if(s.length>0){let a=s.pop();s.length===0&&a&&(n=a)}},t.ontext=a=>{if(s.length>0){let u=s[s.length-1];u.text+=a}},t.onattribute=a=>{if(s.length>0){let u=s[s.length-1];u.attributes[a.name]=a.value}};let i=/```(xml)?(.*)```/s.exec(e),o=i?i[2]:e;return t.write(o).close(),n&&n.name==="?xml"&&(n=n.children[0]),mh(n)}var Oc={};re(Oc,{AIMessagePromptTemplate:()=>Yg,BaseChatPromptTemplate:()=>qg,BaseMessagePromptTemplate:()=>Hg,BaseMessageStringPromptTemplate:()=>Gg,BasePromptTemplate:()=>Fu,BaseStringPromptTemplate:()=>Rg,ChatMessagePromptTemplate:()=>Jg,ChatPromptTemplate:()=>Xr,DEFAULT_FORMATTER_MAPPING:()=>$g,DEFAULT_PARSER_MAPPING:()=>Lg,DictPromptTemplate:()=>Wg,FewShotChatMessagePromptTemplate:()=>Qg,FewShotPromptTemplate:()=>Zg,HumanMessagePromptTemplate:()=>Xg,ImagePromptTemplate:()=>Kg,MessagesPlaceholder:()=>Vg,PipelinePromptTemplate:()=>vc,PromptTemplate:()=>Bg,StructuredPrompt:()=>Ac,SystemMessagePromptTemplate:()=>Lu,checkValidTemplate:()=>zg,interpolateFString:()=>Mg,interpolateMustache:()=>Dg,parseFString:()=>Ng,parseMustache:()=>jg,parseTemplate:()=>Ug,renderTemplate:()=>Fg});var vc=class r extends Fu{static lc_name(){return"PipelinePromptTemplate"}constructor(e){super({...e,inputVariables:[]}),Object.defineProperty(this,"pipelinePrompts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"finalPrompt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.pipelinePrompts=e.pipelinePrompts,this.finalPrompt=e.finalPrompt,this.inputVariables=this.computeInputValues()}computeInputValues(){let e=this.pipelinePrompts.map(n=>n.name),t=this.pipelinePrompts.map(n=>n.prompt.inputVariables.filter(s=>!e.includes(s))).flat();return[...new Set(t)]}static extractRequiredInputValues(e,t){return t.reduce((n,s)=>(n[s]=e[s],n),{})}async formatPipelinePrompts(e){let t=await this.mergePartialAndUserVariables(e);for(let{name:n,prompt:s}of this.pipelinePrompts){let i=r.extractRequiredInputValues(t,s.inputVariables);s instanceof Xr?t[n]=await s.formatMessages(i):t[n]=await s.format(i)}return r.extractRequiredInputValues(t,this.finalPrompt.inputVariables)}async formatPromptValue(e){return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(e))}async format(e){return this.finalPrompt.format(await this.formatPipelinePrompts(e))}async partial(e){let t={...this};return t.inputVariables=this.inputVariables.filter(n=>!(n in e)),t.partialVariables={...this.partialVariables??{},...e},new r(t)}serialize(){throw new Error("Not implemented.")}_getPromptType(){return"pipeline"}};function gh(r){return typeof r=="object"&&r!=null&&"withStructuredOutput"in r&&typeof r.withStructuredOutput=="function"}function Cb(r){return typeof r=="object"&&r!=null&&"lc_id"in r&&Array.isArray(r.lc_id)&&r.lc_id.join("/")==="langchain_core/runnables/RunnableBinding"}var Ac=class r extends Xr{get lc_aliases(){return{...super.lc_aliases,schema:"schema_"}}constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"method",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","prompts","structured"]}),this.schema=e.schema,this.method=e.method}pipe(e){if(gh(e))return super.pipe(e.withStructuredOutput(this.schema));if(Cb(e)&&gh(e.bound))return super.pipe(new vr({bound:e.bound.withStructuredOutput(this.schema,...this.method?[{method:this.method}]:[]),kwargs:e.kwargs??{},config:e.config,configFactories:e.configFactories}));throw new Error('Structured prompts need to be piped to a language model that supports the "withStructuredOutput()" method.')}static fromMessagesAndSchema(e,t,n){return r.fromMessages(e,{schema:t,method:n})}};var Pc={};re(Pc,{BaseRetriever:()=>nn});var nn=class extends Z{constructor(e){super(e),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"verbose",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.callbacks=e?.callbacks,this.tags=e?.tags??[],this.metadata=e?.metadata??{},this.verbose=e?.verbose??!1}_getRelevantDocuments(e,t){throw new Error("Not implemented!")}async invoke(e,t){return this.getRelevantDocuments(e,ut(t))}async getRelevantDocuments(e,t){let n=ut(zn(t)),i=await(await at.configure(n.callbacks,this.callbacks,n.tags,this.tags,n.metadata,this.metadata,{verbose:this.verbose}))?.handleRetrieverStart(this.toJSON(),e,n.runId,void 0,void 0,void 0,n.runName);try{let o=await this._getRelevantDocuments(e,i);return await i?.handleRetrieverEnd(o),o}catch(o){throw await i?.handleRetrieverError(o),o}}};var Ic={};re(Ic,{BaseStore:()=>Go,InMemoryStore:()=>Ec});var Go=class extends ir{},Ec=class extends Go{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","storage"]}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:{}})}async mget(e){return e.map(t=>this.store[t])}async mset(e){for(let[t,n]of e)this.store[t]=n}async mdelete(e){for(let t of e)delete this.store[t]}async*yieldKeys(e){let t=Object.keys(this.store);for(let n of t)(e===void 0||n.startsWith(e))&&(yield n)}};var Sc={};re(Sc,{BaseToolkit:()=>kc,DynamicStructuredTool:()=>qo,DynamicTool:()=>wi,StructuredTool:()=>sn,Tool:()=>Qn,ToolInputParsingException:()=>bo,isLangChainTool:()=>Er,isRunnableToolLike:()=>yi,isStructuredTool:()=>bi,isStructuredToolParams:()=>_i,tool:()=>Tb});function bi(r){return r!==void 0&&Array.isArray(r.lc_namespace)}function yi(r){return r!==void 0&&Z.isRunnable(r)&&"lc_name"in r.constructor&&typeof r.constructor.lc_name=="function"&&r.constructor.lc_name()==="RunnableToolLike"}function _i(r){return!!r&&typeof r=="object"&&"name"in r&&"schema"in r&&(Ze(r.schema)||r.schema!=null&&typeof r.schema=="object"&&"type"in r.schema&&typeof r.schema.type=="string"&&["null","boolean","object","array","number","string"].includes(r.schema.type))}function Er(r){return _i(r)||yi(r)||bi(r)}var sn=class extends Xn{get lc_namespace(){return["langchain","tools"]}constructor(e){super(e??{}),Object.defineProperty(this,"returnDirect",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"verboseParsingErrors",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"responseFormat",{enumerable:!0,configurable:!0,writable:!0,value:"content"}),Object.defineProperty(this,"defaultConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.verboseParsingErrors=e?.verboseParsingErrors??this.verboseParsingErrors,this.responseFormat=e?.responseFormat??this.responseFormat,this.defaultConfig=e?.defaultConfig??this.defaultConfig,this.metadata=e?.metadata??this.metadata}async invoke(e,t){let n,s=ut(ze(this.defaultConfig,t));return go(e)?(n=e.args,s={...s,toolCall:e}):n=e,this.call(n,s)}async call(e,t,n){let s=go(e)?e.args:e,i;if(Ze(this.schema))try{i=await ui(this.schema,s)}catch(g){let b="Received tool input did not match expected schema";throw this.verboseParsingErrors&&(b=`${b}
79
+ Details: ${g.message}`),new bo(b,JSON.stringify(e))}else{let g=Df(s,this.schema);if(!g.valid){let b="Received tool input did not match expected schema";throw this.verboseParsingErrors&&(b=`${b}
80
+ Details: ${g.errors.map(_=>`${_.keywordLocation}: ${_.error}`).join(`
81
+ `)}`),new bo(b,JSON.stringify(e))}i=s}let o=zn(t),u=await at.configure(o.callbacks,this.callbacks,o.tags||n,this.tags,o.metadata,this.metadata,{verbose:this.verbose})?.handleToolStart(this.toJSON(),typeof e=="string"?e:JSON.stringify(e),o.runId,void 0,void 0,void 0,o.runName);delete o.runId;let c;try{c=await this._call(i,u,o)}catch(g){throw await u?.handleToolError(g),g}let l,p;if(this.responseFormat==="content_and_artifact")if(Array.isArray(c)&&c.length===2)[l,p]=c;else throw new Error(`Tool response format is "content_and_artifact" but the output was not a two-tuple.
82
+ Result: ${JSON.stringify(c)}`);else l=c;let h;go(e)&&(h=e.id),!h&&af(o)&&(h=o.toolCall.id);let f=Rb({content:l,artifact:p,toolCallId:h,name:this.name,metadata:this.metadata});return await u?.handleToolEnd(f),f}},Qn=class extends sn{constructor(e){super(e),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:oe.object({input:oe.string().optional()}).transform(t=>t.input)})}call(e,t){let n=typeof e=="string"||e==null?{input:e}:e;return super.call(n,t)}},wi=class extends Qn{static lc_name(){return"DynamicTool"}constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.func=e.func,this.returnDirect=e.returnDirect??this.returnDirect}async call(e,t){let n=zn(t);return n.runName===void 0&&(n.runName=this.name),super.call(e,n)}async _call(e,t,n){return this.func(e,t,n)}},qo=class extends sn{static lc_name(){return"DynamicStructuredTool"}constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.func=e.func,this.returnDirect=e.returnDirect??this.returnDirect,this.schema=e.schema}async call(e,t,n){let s=zn(t);return s.runName===void 0&&(s.runName=this.name),super.call(e,s,n)}_call(e,t,n){return this.func(e,t,n)}},kc=class{getTools(){return this.tools}};function Tb(r,e){let t=ju(e.schema),n=$f(e.schema);if(!e.schema||t||n)return new wi({...e,description:e.description??(e.schema&&$t(e.schema))??`${e.name} tool`,func:async(o,a,u)=>new Promise((c,l)=>{let p=he(u,{callbacks:a?.getChild()});Ye.runWithConfig(Kn(p),async()=>{try{c(r(o,p))}catch(h){l(h)}})})});let s=e.schema,i=e.description??e.schema.description??`${e.name} tool`;return new qo({...e,description:i,schema:s,func:async(o,a,u)=>new Promise((c,l)=>{let p=he(u,{callbacks:a?.getChild()});Ye.runWithConfig(Kn(p),async()=>{try{c(r(o,p))}catch(h){l(h)}})})})}function Rb(r){let{content:e,artifact:t,toolCallId:n,metadata:s}=r;return n&&!pf(e)?typeof e=="string"||Array.isArray(e)&&e.every(i=>typeof i=="object")?new Iu({status:"success",content:e,artifact:t,tool_call_id:n,name:r.name,metadata:s}):new Iu({status:"success",content:Nb(e),artifact:t,tool_call_id:n,name:r.name,metadata:s}):e}function Nb(r){try{return JSON.stringify(r,null,2)??""}catch{return`${r}`}}var Tc={};re(Tc,{getTracingCallbackHandler:()=>jb,getTracingV2CallbackHandler:()=>Mb});var Cc={};re(Cc,{LangChainTracerV1:()=>xi});var xi=class extends Jr{constructor(){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"langchain_tracer"}),Object.defineProperty(this,"endpoint",{enumerable:!0,configurable:!0,writable:!0,value:pe("LANGCHAIN_ENDPOINT")||"http://localhost:1984"}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:{"Content-Type":"application/json"}}),Object.defineProperty(this,"session",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let e=pe("LANGCHAIN_API_KEY");e&&(this.headers["x-api-key"]=e)}async newSession(e){let t={start_time:Date.now(),name:e},n=await this.persistSession(t);return this.session=n,n}async loadSession(e){let t=`${this.endpoint}/sessions?name=${e}`;return this._handleSessionResponse(t)}async loadDefaultSession(){let e=`${this.endpoint}/sessions?name=default`;return this._handleSessionResponse(e)}async convertV2RunToRun(e){let t=this.session??await this.loadDefaultSession(),n=e.serialized,s;if(e.run_type==="llm"){let i=e.inputs.prompts?e.inputs.prompts:e.inputs.messages.map(a=>xo(a));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,prompts:i,response:e.outputs}}else if(e.run_type==="chain"){let i=await Promise.all(e.child_runs.map(a=>this.convertV2RunToRun(a)));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,inputs:e.inputs,outputs:e.outputs,child_llm_runs:i.filter(a=>a.type==="llm"),child_chain_runs:i.filter(a=>a.type==="chain"),child_tool_runs:i.filter(a=>a.type==="tool")}}else if(e.run_type==="tool"){let i=await Promise.all(e.child_runs.map(a=>this.convertV2RunToRun(a)));s={uuid:e.id,start_time:e.start_time,end_time:e.end_time,execution_order:e.execution_order,child_execution_order:e.child_execution_order,serialized:n,type:e.run_type,session_id:t.id,tool_input:e.inputs.input,output:e.outputs?.output,action:JSON.stringify(n),child_llm_runs:i.filter(a=>a.type==="llm"),child_chain_runs:i.filter(a=>a.type==="chain"),child_tool_runs:i.filter(a=>a.type==="tool")}}else throw new Error(`Unknown run type: ${e.run_type}`);return s}async persistRun(e){let t,n;e.run_type!==void 0?n=await this.convertV2RunToRun(e):n=e,n.type==="llm"?t=`${this.endpoint}/llm-runs`:n.type==="chain"?t=`${this.endpoint}/chain-runs`:t=`${this.endpoint}/tool-runs`;let s=await fetch(t,{method:"POST",headers:this.headers,body:JSON.stringify(n)});s.ok||console.error(`Failed to persist run: ${s.status} ${s.statusText}`)}async persistSession(e){let t=`${this.endpoint}/sessions`,n=await fetch(t,{method:"POST",headers:this.headers,body:JSON.stringify(e)});return n.ok?{id:(await n.json()).id,...e}:(console.error(`Failed to persist session: ${n.status} ${n.statusText}, using default session.`),{id:1,...e})}async _handleSessionResponse(e){let t=await fetch(e,{method:"GET",headers:this.headers}),n;if(!t.ok)return console.error(`Failed to load session: ${t.status} ${t.statusText}`),n={id:1,start_time:Date.now()},this.session=n,n;let s=await t.json();return s.length===0?(n={id:1,start_time:Date.now()},this.session=n,n):([n]=s,this.session=n,n)}};async function jb(r){let e=new xi;return r?await e.loadSession(r):await e.loadDefaultSession(),e}async function Mb(){return new Of}var Nc={};re(Nc,{RunCollectorCallbackHandler:()=>Rc});var Rc=class extends Jr{constructor({exampleId:e}={}){super({_awaitHandler:!0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"run_collector"}),Object.defineProperty(this,"exampleId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracedRuns",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.exampleId=e,this.tracedRuns=[]}async persistRun(e){let t={...e};t.reference_example_id=this.exampleId,this.tracedRuns.push(t)}};var Mc={};re(Mc,{chunkArray:()=>jc});var jc=(r,e)=>r.reduce((t,n,s)=>{let i=Math.floor(s/e),o=t[i]||[];return t[i]=o.concat([n]),t},[]);var $c={};re($c,{convertToOpenAIFunction:()=>Dc,convertToOpenAITool:()=>Jo,isLangChainTool:()=>Er,isRunnableToolLike:()=>yi,isStructuredTool:()=>bi,isStructuredToolParams:()=>_i});function Dc(r,e){let t=typeof e=="number"?void 0:e;return{name:r.name,description:r.description,parameters:Ae(r.schema),...t?.strict!==void 0?{strict:t.strict}:{}}}function Jo(r,e){let t=typeof e=="number"?void 0:e,n;return Er(r)?n={type:"function",function:Dc(r)}:n=r,t?.strict!==void 0&&(n.function.strict=t.strict),n}var Fc={};re(Fc,{cosineSimilarity:()=>Lc,euclideanDistance:()=>Fb,innerProduct:()=>Lb,matrixFunc:()=>Yo,maximalMarginalRelevance:()=>Ub,normalize:()=>$b});function Xo(r,e){let t=0,n=0,s=0;for(let i=0;i<r.length;i++)t+=r[i]*e[i],n+=r[i]*r[i],s+=e[i]*e[i];return t/(Math.sqrt(n)*Math.sqrt(s))}function bh(r,e){let t=0;for(let n=0;n<r.length;n++)t+=r[n]*e[n];return t}function Db(r,e){let t=0;for(let n=0;n<r.length;n++)t+=(r[n]-e[n])*(r[n]-e[n]);return t}function yh(r,e){return Math.sqrt(Db(r,e))}function Yo(r,e,t){if(r.length===0||r[0].length===0||e.length===0||e[0].length===0)return[[]];if(r[0].length!==e[0].length)throw new Error(`Number of columns in X and Y must be the same. X has shape ${[r.length,r[0].length]} and Y has shape ${[e.length,e[0].length]}.`);return r.map(n=>e.map(s=>t(n,s)).map(s=>Number.isNaN(s)?0:s))}function $b(r,e=!1){let t=zb(r);return r.map(n=>n.map(s=>e?1-s/t:s/t))}function Lc(r,e){return Yo(r,e,Xo)}function Lb(r,e){return Yo(r,e,bh)}function Fb(r,e){return Yo(r,e,yh)}function Ub(r,e,t=.5,n=4){if(Math.min(n,e.length)<=0)return[];let s=Array.isArray(r[0])?r:[r],i=Lc(s,e)[0],o=_h(i).maxIndex,a=[e[o]],u=[o];for(;u.length<Math.min(n,e.length);){let c=-1/0,l=-1,p=Lc(e,a);i.forEach((h,f)=>{if(u.includes(f))return;let g=Math.max(...p[f]),b=t*h-(1-t)*g;b>c&&(c=b,l=f)}),a.push(e[l]),u.push(l)}return u}function _h(r){if(r.length===0)return{maxIndex:-1,maxValue:NaN};let e=r[0],t=0;for(let n=1;n<r.length;n+=1)r[n]>e&&(t=n,e=r[n]);return{maxIndex:t,maxValue:e}}function zb(r){return r.reduce((e,t)=>Math.max(e,_h(t).maxValue),0)}var sl={};re(sl,{FakeChatMessageHistory:()=>Xc,FakeChatModel:()=>Vc,FakeEmbeddings:()=>el,FakeLLM:()=>Wc,FakeListChatMessageHistory:()=>Yc,FakeListChatModel:()=>Jc,FakeRetriever:()=>qc,FakeRunnable:()=>Kc,FakeSplitIntoListParser:()=>Bc,FakeStreamingChatModel:()=>Gc,FakeStreamingLLM:()=>Hc,FakeTool:()=>Qc,FakeTracer:()=>Zc,FakeVectorStore:()=>nl,SingleRunExtractor:()=>rl,SyntheticEmbeddings:()=>tl});var zc={};re(zc,{SaveableVectorStore:()=>Uc,VectorStore:()=>ts,VectorStoreRetriever:()=>es});var es=class extends nn{static lc_name(){return"VectorStoreRetriever"}get lc_namespace(){return["langchain_core","vectorstores"]}_vectorstoreType(){return this.vectorStore._vectorstoreType()}constructor(e){super(e),Object.defineProperty(this,"vectorStore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"k",{enumerable:!0,configurable:!0,writable:!0,value:4}),Object.defineProperty(this,"searchType",{enumerable:!0,configurable:!0,writable:!0,value:"similarity"}),Object.defineProperty(this,"searchKwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"filter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.vectorStore=e.vectorStore,this.k=e.k??this.k,this.searchType=e.searchType??this.searchType,this.filter=e.filter,e.searchType==="mmr"&&(this.searchKwargs=e.searchKwargs)}async _getRelevantDocuments(e,t){if(this.searchType==="mmr"){if(typeof this.vectorStore.maxMarginalRelevanceSearch!="function")throw new Error(`The vector store backing this retriever, ${this._vectorstoreType()} does not support max marginal relevance search.`);return this.vectorStore.maxMarginalRelevanceSearch(e,{k:this.k,filter:this.filter,...this.searchKwargs},t?.getChild("vectorstore"))}return this.vectorStore.similaritySearch(e,this.k,this.filter,t?.getChild("vectorstore"))}async addDocuments(e,t){return this.vectorStore.addDocuments(e,t)}},ts=class extends ir{constructor(e,t){super(t),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","vectorstores",this._vectorstoreType()]}),Object.defineProperty(this,"embeddings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.embeddings=e}async delete(e){throw new Error("Not implemented.")}async similaritySearch(e,t=4,n=void 0,s=void 0){return(await this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)).map(o=>o[0])}async similaritySearchWithScore(e,t=4,n=void 0,s=void 0){return this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)}static fromTexts(e,t,n,s){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}static fromDocuments(e,t,n){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}asRetriever(e,t,n,s,i,o){if(typeof e=="number")return new es({vectorStore:this,k:e,filter:t,tags:[...s??[],this._vectorstoreType()],metadata:i,verbose:o,callbacks:n});{let a={vectorStore:this,k:e?.k,filter:e?.filter,tags:[...e?.tags??[],this._vectorstoreType()],metadata:e?.metadata,verbose:e?.verbose,callbacks:e?.callbacks,searchType:e?.searchType};return e?.searchType==="mmr"?new es({...a,searchKwargs:e.searchKwargs}):new es({...a})}}},Uc=class extends ts{static load(e,t){throw new Error("Not implemented")}};var Bc=class extends Bt{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["tests","fake"]})}getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}},Kc=class extends Z{constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["tests","fake"]}),Object.defineProperty(this,"returnOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}},Wc=class extends Yn{constructor(e){super(e),Object.defineProperty(this,"response",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.response=e.response,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.response??e;return await n?.handleLLMNewToken(s),s}},Hc=class extends Yn{constructor(e){super(e),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:50}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.sleep=e.sleep??this.sleep,this.responses=e.responses,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let t=this.responses?.[0];return this.responses=this.responses?.slice(1),t??e}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.responses?.[0];this.responses=this.responses?.slice(1);for(let i of s??e)await new Promise(o=>setTimeout(o,this.sleep)),yield{text:i,generationInfo:{}},await n?.handleLLMNewToken(i)}},Vc=class extends zt{_combineLLMOutput(){return[]}_llmType(){return"fake"}async _generate(e,t,n){if(t?.stop?.length)return{generations:[{message:new ue(t.stop[0]),text:t.stop[0]}]};let s=e.map(i=>typeof i.content=="string"?i.content:JSON.stringify(i.content,null,2)).join(`
83
+ `);return await n?.handleLLMNewToken(s),{generations:[{message:new ue(s),text:s}],llmOutput:{}}}},Gc=class r extends zt{constructor({sleep:e=50,responses:t=[],chunks:n=[],toolStyle:s="openai",thrownErrorString:i,...o}){super(o),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:50}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"chunks",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"toolStyle",{enumerable:!0,configurable:!0,writable:!0,value:"openai"}),Object.defineProperty(this,"thrownErrorString",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tools",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.sleep=e,this.responses=t,this.chunks=n,this.toolStyle=s,this.thrownErrorString=i}_llmType(){return"fake"}bindTools(e){let t=[...this.tools,...e],n=t.map(o=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:o.name,description:o.description,parameters:Ae(o.schema)}};case"anthropic":return{name:o.name,description:o.description,input_schema:Ae(o.schema)};case"bedrock":return{toolSpec:{name:o.name,description:o.description,inputSchema:Ae(o.schema)}};case"google":return{name:o.name,description:o.description,parameters:Ae(o.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:n}]:n,i=new r({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return i.tools=t,i.withConfig({tools:s})}async _generate(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let s=this.responses?.[0]?.content??e[0].content??"";return{generations:[{text:"",message:new ue({content:s,tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);if(this.chunks?.length){for(let o of this.chunks){let a=new ht({message:new Mt({content:o.content,tool_calls:o.tool_calls,additional_kwargs:o.additional_kwargs??{}}),text:o.content?.toString()??""});yield a,await n?.handleLLMNewToken(o.content,void 0,void 0,void 0,void 0,{chunk:a})}return}let s=this.responses?.[0]??new ue(typeof e[0].content=="string"?e[0].content:""),i=typeof s.content=="string"?s.content:"";for(let o of i){await new Promise(u=>setTimeout(u,this.sleep));let a=new ht({message:new Mt({content:o}),text:o});yield a,await n?.handleLLMNewToken(o,void 0,void 0,void 0,void 0,{chunk:a})}}},qc=class extends nn{constructor(e){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["test","fake"]}),Object.defineProperty(this,"output",{enumerable:!0,configurable:!0,writable:!0,value:[new yt({pageContent:"foo"}),new yt({pageContent:"bar"})]}),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}},Jc=class extends zt{static lc_name(){return"FakeListChatModel"}constructor(e){super(e),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"i",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"sleep",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"emitCustomEvent",{enumerable:!0,configurable:!0,writable:!0,value:!1});let{responses:t,sleep:n,emitCustomEvent:s}=e;this.responses=t,this.sleep=n,this.emitCustomEvent=s??this.emitCustomEvent}_combineLLMOutput(){return[]}_llmType(){return"fake-list"}async _generate(e,t,n){if(await this._sleepIfRequested(),t?.thrownErrorString)throw new Error(t.thrownErrorString);if(this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0}),t?.stop?.length)return{generations:[this._formatGeneration(t.stop[0])]};{let s=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(s)],llmOutput:{}}}}_formatGeneration(e){return{message:new ue(e),text:e}}async*_streamResponseChunks(e,t,n){let s=this._currentResponse();this._incrementResponse(),this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0});for await(let i of s){if(await this._sleepIfRequested(),t?.thrownErrorString)throw new Error(t.thrownErrorString);yield this._createResponseChunk(i),n?.handleLLMNewToken(i)}}async _sleepIfRequested(){this.sleep!==void 0&&await this._sleep()}async _sleep(){return new Promise(e=>{setTimeout(()=>e(),this.sleep)})}_createResponseChunk(e){return new ht({message:new Mt({content:e}),text:e})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){this.i<this.responses.length-1?this.i+=1:this.i=0}withStructuredOutput(e,t){return Ft.from(async n=>{let s=await this.invoke(n);if(s.tool_calls?.[0]?.args)return s.tool_calls[0].args;if(typeof s.content=="string")return JSON.parse(s.content);throw new Error("No structured output found")})}},Xc=class extends mi{constructor(){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","message","fake"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]})}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new ot(e))}async addAIChatMessage(e){this.messages.push(new ue(e))}async clear(){this.messages=[]}},Yc=class extends Jn{constructor(){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","message","fake"]}),Object.defineProperty(this,"messages",{enumerable:!0,configurable:!0,writable:!0,value:[]})}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},Zc=class extends Jr{constructor(){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"fake_tracer"}),Object.defineProperty(this,"runs",{enumerable:!0,configurable:!0,writable:!0,value:[]})}persistRun(e){return this.runs.push(e),Promise.resolve()}},Qc=class extends sn{constructor(e){super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"schema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=e.name,this.description=e.description,this.schema=e.schema}async _call(e,t){return JSON.stringify(e)}},el=class extends Yr{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}},tl=class extends Yr{constructor(e){super(e??{}),Object.defineProperty(this,"vectorSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.vectorSize=e?.vectorSize??4}async embedDocuments(e){return Promise.all(e.map(t=>this.embedQuery(t)))}async embedQuery(e){let t=e;t=t.toLowerCase().replaceAll(/[^a-z ]/g,"");let n=t.length%this.vectorSize,s=n===0?0:this.vectorSize-n,i=t.length+s;t=t.padEnd(i," ");let o=t.length/this.vectorSize,a=[];for(let c=0;c<t.length;c+=o)a.push(t.slice(c,c+o));return a.map(c=>{let l=0;for(let h=0;h<c.length;h+=1)l+=c===" "?0:c.charCodeAt(h);return l%26/26})}},rl=class extends Jr{constructor(){super(),Object.defineProperty(this,"runPromiseResolver",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"runPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"single_run_extractor"}),this.runPromise=new Promise(e=>{this.runPromiseResolver=e})}async persistRun(e){this.runPromiseResolver(e)}async extract(){return this.runPromise}},nl=class r extends ts{_vectorstoreType(){return"memory"}constructor(e,{similarity:t,...n}={}){super(e,n),Object.defineProperty(this,"memoryVectors",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"similarity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.similarity=t??Xo}async addDocuments(e){let t=e.map(({pageContent:n})=>n);return this.addVectors(await this.embeddings.embedDocuments(t),e)}async addVectors(e,t){let n=e.map((s,i)=>({content:t[i].pageContent,embedding:s,metadata:t[i].metadata}));this.memoryVectors=this.memoryVectors.concat(n)}async similaritySearchVectorWithScore(e,t,n){let s=u=>{if(!n)return!0;let c=new yt({metadata:u.metadata,pageContent:u.content});return n(c)},i=this.memoryVectors.filter(s);return i.map((u,c)=>({similarity:this.similarity(e,u.embedding),index:c})).sort((u,c)=>u.similarity>c.similarity?-1:0).slice(0,t).map(u=>[new yt({metadata:i[u.index].metadata,pageContent:i[u.index].content}),u.similarity])}static async fromTexts(e,t,n,s){let i=[];for(let o=0;o<e.length;o+=1){let a=Array.isArray(t)?t[o]:t,u=new yt({pageContent:e[o],metadata:a});i.push(u)}return r.fromDocuments(i,n,s)}static async fromDocuments(e,t,n){let s=new this(t,n);return await s.addDocuments(e),s}static async fromExistingIndex(e,t){return new this(e,t)}};var il={};re(il,{extendInteropZodObject:()=>Mu,getInteropZodDefaultGetter:()=>Du,getInteropZodObjectShape:()=>Ao,getSchemaDescription:()=>$t,interopParse:()=>ci,interopParseAsync:()=>ui,interopSafeParse:()=>Og,interopSafeParseAsync:()=>Nu,interopZodObjectPartial:()=>li,interopZodObjectPassthrough:()=>Cg,interopZodObjectStrict:()=>Sg,interopZodTransformInputSchema:()=>Tg,isInteropZodObject:()=>Lt,isInteropZodSchema:()=>Ze,isShapelessZodSchema:()=>Pg,isSimpleStringZodSchema:()=>ju,isZodArrayV4:()=>kg,isZodObjectV3:()=>Eg,isZodObjectV4:()=>Ig,isZodSchema:()=>Ag,isZodSchemaV3:()=>ai,isZodSchemaV4:()=>Ru});var Bb=50;function Kb(r){let e={};for(let t=r;t&&t.prototype;t=Object.getPrototypeOf(t))Object.assign(e,Reflect.get(t.prototype,"lc_aliases"));return Object.entries(e).reduce((t,[n,s])=>(t[s]=n,t),{})}async function Zo(r){let{optionalImportsMap:e,optionalImportEntrypoints:t,importMap:n,secretsMap:s,secretsFromEnv:i,path:o,depth:a,maxDepth:u}=this,c=o.join(".");if(a>u)throw new Error(`Maximum recursion depth (${u}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof r!="object"||r==null)return r;if(Array.isArray(r))return Promise.all(r.map((h,f)=>Zo.call({...this,path:[...o,`${f}`],depth:a+1},h)));let l=r;if(tf(l))return rf(l);if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="secret"){let h=l,[f]=h.id;if(f in s)return s[f];if(i){let g=pe(f);if(g)return g}throw new Error(`Missing secret "${f}" at ${c}`)}if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="not_implemented"){let f=JSON.stringify(l);throw new Error(`Trying to load an object that doesn't implement serialization: ${c} -> ${f}`)}if("lc"in l&&"type"in l&&"id"in l&&"kwargs"in l&&l.lc===1&&l.type==="constructor"){let h=l,f=JSON.stringify(h),[g,...b]=h.id.slice().reverse(),_=b.reverse(),I={langchain_core:ol,langchain:n},v=null,S=[_.join("/")];_[0]==="langchain_community"&&S.push(["langchain",..._.slice(1)].join("/"));let C=S.find(y=>y in e);if(eh.concat(t).includes(_.join("/"))||C)if(C!==void 0)v=await e[C];else throw new Error(`Missing key "${_.join("/")}" for ${c} in load(optionalImportsMap={})`);else{let y;if(_[0]==="langchain"||_[0]==="langchain_core")y=I[_[0]],_.shift();else throw new Error(`Invalid namespace: ${c} -> ${f}`);if(_.length===0)throw new Error(`Invalid namespace: ${c} -> ${f}`);let T;do{if(T=_.join("__"),T in y)break;_.pop()}while(_.length>0);T in y&&(v=y[T])}if(typeof v!="object"||v===null)throw new Error(`Invalid namespace: ${c} -> ${f}`);let j=v[g]??Object.values(v).find(y=>typeof y=="function"&&nf(y)===g);if(typeof j!="function")throw new Error(`Invalid identifer: ${c} -> ${f}`);let F=await Zo.call({...this,path:[...o,"kwargs"],depth:a+1},h.kwargs),D=new j(ef(F,Qp,Kb(j)));return Object.defineProperty(D.constructor,"name",{value:g}),D}let p={};for(let[h,f]of Object.entries(l))p[h]=await Zo.call({...this,path:[...o,h],depth:a+1},f);return p}async function wh(r,e){let t=JSON.parse(r),n={optionalImportsMap:e?.optionalImportsMap??{},optionalImportEntrypoints:e?.optionalImportEntrypoints??[],secretsMap:e?.secretsMap??{},secretsFromEnv:e?.secretsFromEnv??!1,importMap:e?.importMap??{},path:["$"],depth:0,maxDepth:e?.maxDepth??Bb};return Zo.call(n,t)}var xh="[...]",Wb="[Circular]",Qo=[],rs=[];function Hb(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function vh(r,e,t,n){typeof n>"u"&&(n=Hb()),ul(r,"",0,[],void 0,0,n);var s;try{rs.length===0?s=JSON.stringify(r,e,t):s=JSON.stringify(r,Vb(e),t)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;Qo.length!==0;){var i=Qo.pop();i.length===4?Object.defineProperty(i[0],i[1],i[3]):i[0][i[1]]=i[2]}}return s}function al(r,e,t,n){var s=Object.getOwnPropertyDescriptor(n,t);s.get!==void 0?s.configurable?(Object.defineProperty(n,t,{value:r}),Qo.push([n,t,e,s])):rs.push([e,t,r]):(n[t]=r,Qo.push([n,t,e]))}function ul(r,e,t,n,s,i,o){i+=1;var a;if(typeof r=="object"&&r!==null){for(a=0;a<n.length;a++)if(n[a]===r){al(Wb,r,e,s);return}if(typeof o.depthLimit<"u"&&i>o.depthLimit){al(xh,r,e,s);return}if(typeof o.edgesLimit<"u"&&t+1>o.edgesLimit){al(xh,r,e,s);return}if(n.push(r),Array.isArray(r))for(a=0;a<r.length;a++)ul(r[a],a,a,n,r,i,o);else{var u=Object.keys(r);for(a=0;a<u.length;a++){var c=u[a];ul(r[c],c,a,n,r,i,o)}}n.pop()}}function Vb(r){return r=typeof r<"u"?r:function(e,t){return t},function(e,t){if(rs.length>0)for(var n=0;n<rs.length;n++){var s=rs[n];if(s[1]===e&&s[0]===t){t=s[2],rs.splice(n,1);break}}return r.call(this,e,t)}}function Gb(r){return r!==null&&r.lc===1&&r.type==="constructor"&&Array.isArray(r.id)}async function ll(r){if(r&&typeof r=="object"){if(Array.isArray(r))return await Promise.all(r.map(t=>ll(t)));{let e={};for(let[t,n]of Object.entries(r))e[t]=await ll(n);if(e.lc===2&&e.type==="undefined")return;if(e.lc===2&&e.type==="constructor"&&Array.isArray(e.id))try{let t=e.id[e.id.length-1],n;switch(t){case"Set":n=Set;break;case"Map":n=Map;break;case"RegExp":n=RegExp;break;case"Error":n=Error;break;default:return e}return e.method?n[e.method](...e.args||[]):new n(...e.args||[])}catch{return e}else if(Gb(e))return wh(JSON.stringify(e));return e}}return r}function cl(r,e,t,n){return{lc:2,type:"constructor",id:[r.name],method:e??null,args:t??[],kwargs:n??{}}}function qb(r){return r===void 0?{lc:2,type:"undefined"}:r instanceof Set||r instanceof Map?cl(r.constructor,void 0,[Array.from(r)]):r instanceof RegExp?cl(RegExp,void 0,[r.source,r.flags]):r instanceof Error?cl(r.constructor,void 0,[r.message]):r?.lg_name==="Send"?{node:r.node,args:r.args}:r}var ns=class{_dumps(e){return new TextEncoder().encode(vh(e,(n,s)=>qb(s)))}async dumpsTyped(e){return e instanceof Uint8Array?["bytes",e]:["json",this._dumps(e)]}async _loads(e){let t=JSON.parse(e);return ll(t)}async loadsTyped(e,t){if(e==="bytes")return typeof t=="string"?new TextEncoder().encode(t):t;if(e==="json")return this._loads(typeof t=="string"?t:new TextDecoder().decode(t));throw new Error(`Unknown serialization type: ${e}`)}};function Ah(r){if(typeof r!="object"||r===null)return r;let e=Array.isArray(r)?[]:{};for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=Ah(r[t]));return e}function Ai(){return{v:4,id:So(-2),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function Wt(r){return{v:r.v,id:r.id,ts:r.ts,channel_values:{...r.channel_values},channel_versions:{...r.channel_versions},versions_seen:Ah(r.versions_seen)}}var vi=class{constructor(e){Object.defineProperty(this,"serde",{enumerable:!0,configurable:!0,writable:!0,value:new ns}),this.serde=e||this.serde}async get(e){let t=await this.getTuple(e);return t?t.checkpoint:void 0}getNextVersion(e){if(typeof e=="string")throw new Error("Please override this method to use string versions.");return e!==void 0&&typeof e=="number"?e+1:1}};function pl(r,e){return typeof r=="number"&&typeof e=="number"?Math.sign(r-e):String(r).localeCompare(String(e))}function ea(...r){return r.reduce((e,t,n)=>n===0?t:pl(e,t)>=0?e:t)}var ta={[Yf]:-1,[qn]:-2,[Zf]:-3,[Qf]:-4};function Oh(r){return r.configurable?.checkpoint_id||r.configurable?.thread_ts||""}function Oi(r,e,t){return JSON.stringify([r,e,t])}function Jb(r){let[e,t,n]=JSON.parse(r);return{threadId:e,checkpointNamespace:t,checkpointId:n}}var ss=class extends vi{constructor(e){super(e),Object.defineProperty(this,"storage",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"writes",{enumerable:!0,configurable:!0,writable:!0,value:{}})}async _migratePendingSends(e,t,n,s){let i=e,o=Oi(t,n,s),a=await Promise.all(Object.values(this.writes[o]??{}).filter(([u,c])=>c===Co).map(async([u,c,l])=>await this.serde.loadsTyped("json",l)));i.channel_values??={},i.channel_values[Co]=a,i.channel_versions??={},i.channel_versions[Co]=Object.keys(i.channel_versions).length>0?ea(...Object.values(i.channel_versions)):this.getNextVersion(void 0)}async getTuple(e){let t=e.configurable?.thread_id,n=e.configurable?.checkpoint_ns??"",s=Oh(e);if(s){let i=this.storage[t]?.[n]?.[s];if(i!==void 0){let[o,a,u]=i,c=Oi(t,n,s),l=await this.serde.loadsTyped("json",o);l.v<4&&u!==void 0&&await this._migratePendingSends(l,t,n,u);let p=await Promise.all(Object.values(this.writes[c]||{}).map(async([f,g,b])=>[f,g,await this.serde.loadsTyped("json",b)])),h={config:e,checkpoint:l,metadata:await this.serde.loadsTyped("json",a),pendingWrites:p};return u!==void 0&&(h.parentConfig={configurable:{thread_id:t,checkpoint_ns:n,checkpoint_id:u}}),h}}else{let i=this.storage[t]?.[n];if(i!==void 0){s=Object.keys(i).sort((g,b)=>b.localeCompare(g))[0];let o=i[s],[a,u,c]=o,l=Oi(t,n,s),p=await this.serde.loadsTyped("json",a);p.v<4&&c!==void 0&&await this._migratePendingSends(p,t,n,c);let h=await Promise.all(Object.values(this.writes[l]||{}).map(async([g,b,_])=>[g,b,await this.serde.loadsTyped("json",_)])),f={config:{configurable:{thread_id:t,checkpoint_id:s,checkpoint_ns:n}},checkpoint:p,metadata:await this.serde.loadsTyped("json",u),pendingWrites:h};return c!==void 0&&(f.parentConfig={configurable:{thread_id:t,checkpoint_ns:n,checkpoint_id:c}}),f}}}async*list(e,t){let{before:n,limit:s,filter:i}=t??{},o=e.configurable?.thread_id?[e.configurable?.thread_id]:Object.keys(this.storage),a=e.configurable?.checkpoint_ns,u=e.configurable?.checkpoint_id;for(let c of o)for(let l of Object.keys(this.storage[c]??{})){if(a!==void 0&&l!==a)continue;let p=this.storage[c]?.[l]??{},h=Object.entries(p).sort((f,g)=>g[0].localeCompare(f[0]));for(let[f,[g,b,_]]of h){if(u&&f!==u||n&&n.configurable?.checkpoint_id&&f>=n.configurable.checkpoint_id)continue;let I=await this.serde.loadsTyped("json",b);if(i&&!Object.entries(i).every(([D,y])=>I[D]===y))continue;if(s!==void 0){if(s<=0)break;s-=1}let v=Oi(c,l,f),S=Object.values(this.writes[v]||{}),C=await Promise.all(S.map(async([D,y,T])=>[D,y,await this.serde.loadsTyped("json",T)])),j=await this.serde.loadsTyped("json",g);j.v<4&&_!==void 0&&await this._migratePendingSends(j,c,l,_);let F={config:{configurable:{thread_id:c,checkpoint_ns:l,checkpoint_id:f}},checkpoint:j,metadata:I,pendingWrites:C};_!==void 0&&(F.parentConfig={configurable:{thread_id:c,checkpoint_ns:l,checkpoint_id:_}}),yield F}}}async put(e,t,n){let s=Wt(t),i=e.configurable?.thread_id,o=e.configurable?.checkpoint_ns??"";if(i===void 0)throw new Error('Failed to put checkpoint. The passed RunnableConfig is missing a required "thread_id" field in its "configurable" property.');this.storage[i]||(this.storage[i]={}),this.storage[i][o]||(this.storage[i][o]={});let[[,a],[,u]]=await Promise.all([this.serde.dumpsTyped(s),this.serde.dumpsTyped(n)]);return this.storage[i][o][t.id]=[a,u,e.configurable?.checkpoint_id],{configurable:{thread_id:i,checkpoint_ns:o,checkpoint_id:t.id}}}async putWrites(e,t,n){let s=e.configurable?.thread_id,i=e.configurable?.checkpoint_ns,o=e.configurable?.checkpoint_id;if(s===void 0)throw new Error('Failed to put writes. The passed RunnableConfig is missing a required "thread_id" field in its "configurable" property');if(o===void 0)throw new Error('Failed to put writes. The passed RunnableConfig is missing a required "checkpoint_id" field in its "configurable" property.');let a=Oi(s,i,o),u=this.writes[a];this.writes[a]===void 0&&(this.writes[a]={}),await Promise.all(t.map(async([c,l],p)=>{let[,h]=await this.serde.dumpsTyped(l),f=[n,ta[c]||p],g=`${f[0]},${f[1]}`;f[1]>=0&&u&&g in u||(this.writes[a][g]=[n,c,h])}))}async deleteThread(e){delete this.storage[e];for(let t of Object.keys(this.writes))Jb(t).threadId===e&&delete this.writes[t]}};var on=class extends Error{constructor(e){super(e),this.name="InvalidNamespaceError"}};function Xb(r){if(r.length===0)throw new on("Namespace cannot be empty.");for(let e of r){if(typeof e!="string")throw new on(`Invalid namespace label '${e}' found in ${r}. Namespace labels must be strings, but got ${typeof e}.`);if(e.includes("."))throw new on(`Invalid namespace label '${e}' found in ${r}. Namespace labels cannot contain periods ('.').`);if(e==="")throw new on(`Namespace labels cannot be empty strings. Got ${e} in ${r}`)}if(r[0]==="langgraph")throw new on(`Root label for namespace cannot be "langgraph". Got: ${r}`)}var is=class{async get(e,t){return(await this.batch([{namespace:e,key:t}]))[0]}async search(e,t={}){let{filter:n,limit:s=10,offset:i=0,query:o}=t;return(await this.batch([{namespacePrefix:e,filter:n,limit:s,offset:i,query:o}]))[0]}async put(e,t,n,s){Xb(e),await this.batch([{namespace:e,key:t,value:n,index:s}])}async delete(e,t){await this.batch([{namespace:e,key:t,value:null}])}async listNamespaces(e={}){let{prefix:t,suffix:n,maxDepth:s,limit:i=100,offset:o=0}=e,a=[];return t&&a.push({matchType:"prefix",path:t}),n&&a.push({matchType:"suffix",path:n}),(await this.batch([{matchConditions:a.length?a:void 0,maxDepth:s,limit:i,offset:o}]))[0]}start(){}stop(){}};var Yb=r=>"lg_name"in r&&r.lg_name==="AsyncBatchedStore"?r.store:r,Pi=class extends is{constructor(e){super(),Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"AsyncBatchedStore"}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"nextKey",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"running",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"processingTask",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.store=Yb(e)}get isRunning(){return this.running}async batch(e){throw new Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(e,t){return this.enqueueOperation({namespace:e,key:t})}async search(e,t){let{filter:n,limit:s=10,offset:i=0,query:o}=t||{};return this.enqueueOperation({namespacePrefix:e,filter:n,limit:s,offset:i,query:o})}async put(e,t,n){return this.enqueueOperation({namespace:e,key:t,value:n})}async delete(e,t){return this.enqueueOperation({namespace:e,key:t,value:null})}start(){this.running||(this.running=!0,this.processingTask=this.processBatchQueue())}async stop(){this.running=!1,this.processingTask&&await this.processingTask}enqueueOperation(e){return new Promise((t,n)=>{let s=this.nextKey;this.nextKey+=1,this.queue.set(s,{operation:e,resolve:t,reject:n})})}async processBatchQueue(){for(;this.running;){if(await new Promise(t=>{setTimeout(t,0)}),this.queue.size===0)continue;let e=new Map(this.queue);this.queue.clear();try{let t=Array.from(e.values()).map(({operation:s})=>s),n=await this.store.batch(t);e.forEach(({resolve:s},i)=>{let o=Array.from(e.keys()).indexOf(i);s(n[o])})}catch(t){e.forEach(({reject:n})=>{n(t)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:"[LangGraphStore]"}}};var Ei=class{constructor(e){Object.defineProperty(this,"serde",{enumerable:!0,configurable:!0,writable:!0,value:new ns}),this.serde=e||this.serde}};function hl(r){return r!=null&&r.lg_is_channel===!0}var je=class{constructor(){Object.defineProperty(this,"ValueType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"UpdateType",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lg_is_channel",{enumerable:!0,configurable:!0,writable:!0,value:!0})}consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===ne.unminifiable_name)return!1;throw e}}},fl=Symbol.for("LG_IS_ONLY_BASE_CHANNEL");function Ii(r){if(r[fl]===!0)return r;let e={};for(let t in r){if(!Object.prototype.hasOwnProperty.call(r,t))continue;let n=r[t];hl(n)&&(e[t]=n)}return Object.assign(e,{[fl]:!0}),e}function Ir(r,e){let t=Ii(r),n={};for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let i=e.channel_values[s];n[s]=t[s].fromCheckpoint(i)}return Object.assign(n,{[fl]:!0}),n}function _t(r,e,t,n){let s;if(e===void 0)s=r.channel_values;else{s={};for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))try{s[o]=e[o].checkpoint()}catch(a){if(a.name!==ne.unminifiable_name)throw a}}let i={};for(let o in r.versions_seen)Object.prototype.hasOwnProperty.call(r.versions_seen,o)&&(i[o]={...r.versions_seen[o]});return{v:4,id:n?.id??So(t),ts:new Date().toISOString(),channel_values:s,channel_versions:{...r.channel_versions},versions_seen:i}}var cr=class r extends je{constructor(e,t){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"BinaryOperatorAggregate"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"operator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"initialValueFactory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.operator=e,this.initialValueFactory=t,this.value=t?.()}fromCheckpoint(e){let t=new r(this.operator,this.initialValueFactory);return typeof e<"u"&&(t.value=e),t}update(e){let t=e;if(!t.length)return!1;this.value===void 0&&([this.value]=t,t=t.slice(1));for(let n of t)this.value!==void 0&&(this.value=this.operator(this.value,n));return!0}get(){if(this.value===void 0)throw new ne;return this.value}checkpoint(){if(this.value===void 0)throw new ne;return this.value}isAvailable(){return this.value!==void 0}};var Ht=class r extends je{constructor(){super(...arguments),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"LastValue"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]})}fromCheckpoint(e){let t=new r;return typeof e<"u"&&(t.value=[e]),t}update(e){if(e.length===0)return!1;if(e.length!==1)throw new X("LastValue can only receive one value per step.",{lc_error_code:"INVALID_CONCURRENT_GRAPH_UPDATE"});return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new ne;return this.value[0]}checkpoint(){if(this.value.length===0)throw new ne;return this.value[0]}isAvailable(){return this.value.length!==0}},ra=class r extends je{constructor(){super(...arguments),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"LastValueAfterFinish"}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"finished",{enumerable:!0,configurable:!0,writable:!0,value:!1})}fromCheckpoint(e){let t=new r;if(typeof e<"u"){let[n,s]=e;t.value=[n],t.finished=s}return t}update(e){return e.length===0?!1:(this.finished=!1,this.value=[e[e.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new ne;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}};var na=class{constructor(e){Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"AnnotationRoot"}),Object.defineProperty(this,"spec",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.spec=e}},lt=function(r){return r?sa(r):new Ht};lt.Root=r=>new na(r);function sa(r){return typeof r=="object"&&r&&"reducer"in r&&r.reducer?new cr(r.reducer,r.default):typeof r=="object"&&r&&"value"in r&&r.value?new cr(r.value,r.default):new Ht}var pt=oe;var Ph,q="__start__",K="__end__",wt="__input__",Eh="__copy__",ge="__error__",ia="__pregel_ns_writes",lr="__pregel_send",Si="__pregel_call",xt="__pregel_read",de="__pregel_checkpointer",Vt="__pregel_resuming",an="__pregel_task_id",os="__pregel_stream",Zb="__pregel_resume_value",as="__pregel_resume_map",vt="__pregel_scratchpad",us="__pregel_previous",ml="__pregel_durability",oa="checkpoint_id",At="checkpoint_ns",Ih="__pregel_node_finished",Be="checkpoint_map",gl="__pregel_abort_signals",V="__interrupt__",Me="__resume__",Ci="__no_writes__",Ot="__return__",un="__previous__";var ee="langsmith:hidden",kh="langsmith:nostream",bl="__self__",De="__pregel_tasks",$e="__pregel_push",Ti="__pregel_pull";var Le="00000000-0000-0000-0000-000000000000",Sh=[ee,wt,V,Me,ge,Ci,lr,xt,de,ml,os,Vt,an,Si,Zb,vt,us,Be,At,oa],ce="|",Ke=":",Qb=Symbol.for("langgraph.command"),dl=class{constructor(){Object.defineProperty(this,Ph,{enumerable:!0,configurable:!0,writable:!0,value:void 0})}};Ph=Qb;function aa(r){let e=r;return e!=null&&typeof e.node=="string"&&e.args!==void 0}var kr=class{constructor(e,t){Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"Send"}),Object.defineProperty(this,"node",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.node=e,this.args=ki(t)}toJSON(){return{lg_name:this.lg_name,node:this.node,args:this.args}}};function Ee(r){return r instanceof kr}function yl(r){return!r||typeof r!="object"||!(V in r)?!1:Array.isArray(r[V])}var Ce=class extends dl{constructor(e){super(),Object.defineProperty(this,"lg_name",{enumerable:!0,configurable:!0,writable:!0,value:"Command"}),Object.defineProperty(this,"lc_direct_tool_output",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"graph",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"update",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"resume",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"goto",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.resume=e.resume,this.graph=e.graph,this.update=e.update,e.goto&&(this.goto=Array.isArray(e.goto)?ki(e.goto):[ki(e.goto)])}_updateAsTuples(){return this.update&&typeof this.update=="object"&&!Array.isArray(this.update)?Object.entries(this.update):Array.isArray(this.update)&&this.update.every(e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="string")?this.update:[["__root__",this.update]]}toJSON(){let e;return typeof this.goto=="string"?e=this.goto:Ee(this.goto)?e=this.goto.toJSON():e=this.goto?.map(t=>typeof t=="string"?t:t.toJSON()),{lg_name:this.lg_name,update:this.update,resume:this.resume,goto:e}}};Object.defineProperty(Ce,"PARENT",{enumerable:!0,configurable:!0,writable:!0,value:"__parent__"});function Te(r){return typeof r!="object"||r==null?!1:"lg_name"in r&&r.lg_name==="Command"}function ki(r,e=new Map){if(r!=null&&typeof r=="object"){if(e.has(r))return e.get(r);let t;if(Array.isArray(r))t=[],e.set(r,t),r.forEach((n,s)=>{t[s]=ki(n,e)});else if(Te(r)&&!(r instanceof Ce))t=new Ce(r),e.set(r,t);else if(aa(r)&&!(r instanceof kr))t=new kr(r.node,r.args),e.set(r,t);else if(Te(r)||Ee(r))t=r,e.set(r,t);else if("lc_serializable"in r&&r.lc_serializable)t=r,e.set(r,t);else{t={},e.set(r,t);for(let[n,s]of Object.entries(r))t[n]=ki(s,e)}return t}return r}var ey=["tags","metadata","callbacks","configurable"],ty=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal"],ry=25;function ua(...r){let e={tags:[],metadata:{},callbacks:void 0,recursionLimit:ry,configurable:{}},t=Ye.getRunnableConfig();if(t!==void 0){for(let[n,s]of Object.entries(t))if(s!==void 0)if(ey.includes(n)){let i;Array.isArray(s)?i=[...s]:typeof s=="object"?n==="callbacks"&&"copy"in s&&typeof s.copy=="function"?i=s.copy():i={...s}:i=s,e[n]=i}else e[n]=s}for(let n of r)if(n!==void 0)for(let[s,i]of Object.entries(n))i!==void 0&&ty.includes(s)&&(e[s]=i);for(let[n,s]of Object.entries(e.configurable))e.metadata=e.metadata??{},!n.startsWith("__")&&(typeof s=="string"||typeof s=="number"||typeof s=="boolean")&&!(n in e.metadata)&&(e.metadata[n]=s);return e}function Ch(){return Ye.getRunnableConfig()}function ca(r){return r.split(ce).filter(e=>!e.match(/^\d+$/)).map(e=>e.split(Ke)[0]).join(ce)}function Th(r){let e=r.split(ce);for(;e.length>1&&e[e.length-1].match(/^\d+$/);)e.pop();return e.slice(0,-1).join(ce)}var Ie=class extends Z{constructor(e){super(),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph"]}),Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"recurse",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.name=e.name??e.func.name,this.func=e.func,this.config=e.tags?{tags:e.tags}:void 0,this.trace=e.trace??this.trace,this.recurse=e.recurse??this.recurse}async _tracedInvoke(e,t,n){return new Promise((s,i)=>{let o=he(t,{callbacks:n?.getChild()});Ye.runWithConfig(o,async()=>{try{let a=await this.func(e,o);s(a)}catch(a){i(a)}})})}async invoke(e,t){let n,s=ua(t),i=ze(this.config,s);return this.trace?n=await this._callWithConfig(this._tracedInvoke,e,i):n=await Ye.runWithConfig(i,async()=>this.func(e,i)),Z.isRunnable(n)&&this.recurse?await Ye.runWithConfig(i,async()=>n.invoke(e,i)):n}};function*pr(r,e){if(e===void 0)yield*r;else for(let t of r)yield[e,t]}async function Pt(r){let e=[];for await(let t of await r)e.push(t);return e}function cn(r){let e=[];for(let t of r)e.push(t);return e}function ln(r,e){return r?"configurable"in r?{...r,configurable:{...r.configurable,...e}}:{...r,configurable:e}:{configurable:e}}function Rh(r){return r!=null&&typeof r=="function"&&r instanceof Object.getPrototypeOf(async function*(){}).constructor}function Nh(r){return r!=null&&typeof r=="function"&&r instanceof Object.getPrototypeOf(function*(){}).constructor}var sP={[Symbol.for("LG_SKIP_WRITE")]:!0};function ny(r){return typeof r=="object"&&r?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var Je={[Symbol.for("LG_PASSTHROUGH")]:!0};function la(r){return typeof r=="object"&&r?.[Symbol.for("LG_PASSTHROUGH")]!==void 0}var _l=Symbol("IS_WRITER"),ae=class r extends Ie{constructor(e,t){let n=`ChannelWrite<${e.map(s=>Ee(s)?s.node:"channel"in s?s.channel:"...").join(",")}>`;super({writes:e,name:n,tags:t,func:async(s,i)=>this._write(s,i??{})}),Object.defineProperty(this,"writes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.writes=e}async _write(e,t){let n=this.writes.map(s=>wl(s)&&la(s.value)?{mapper:s.mapper,value:e}:pa(s)&&la(s.value)?{channel:s.channel,value:e,skipNone:s.skipNone,mapper:s.mapper}:s);return await r.doWrite(t,n),e}static async doWrite(e,t){for(let i of t){if(pa(i)){if(i.channel===De)throw new X("Cannot write to the reserved channel TASKS");if(la(i.value))throw new X("PASSTHROUGH value must be replaced")}if(wl(i)&&la(i.value))throw new X("PASSTHROUGH value must be replaced")}let n=[];for(let i of t)if(Ee(i))n.push([De,i]);else if(wl(i)){let o=await i.mapper.invoke(i.value,e);o!=null&&o.length>0&&n.push(...o)}else if(pa(i)){let o=i.mapper!==void 0?await i.mapper.invoke(i.value,e):i.value;if(ny(o)||i.skipNone&&o===void 0)continue;n.push([i.channel,o])}else throw new Error(`Invalid write entry: ${JSON.stringify(i)}`);let s=e.configurable?.[lr];s(n)}static isWriter(e){return e instanceof r||_l in e&&!!e[_l]}static registerWriter(e){return Object.defineProperty(e,_l,{value:!0})}};function pa(r){return r!==void 0&&typeof r.channel=="string"}function wl(r){return r!==void 0&&!pa(r)&&Z.isRunnable(r.mapper)}var fa=class r extends Ie{constructor(e,t,n=!1){super({func:(s,i)=>r.doRead(i,this.channel,this.fresh,this.mapper)}),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"ChannelRead"}),Object.defineProperty(this,"channel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fresh",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"mapper",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.fresh=n,this.mapper=t,this.channel=e,this.name=Array.isArray(e)?`ChannelRead<${e.join(",")}>`:`ChannelRead<${e}>`}static doRead(e,t,n,s){let i=e.configurable?.[xt];if(!i)throw new Error("Runnable is not configured with a read function. Make sure to call in the context of a Pregel process");return s?s(i(t,n)):i(t,n)}},cs=new Ge,et=class r extends vr{constructor(e){let{channels:t,triggers:n,mapper:s,writers:i,bound:o,kwargs:a,metadata:u,retryPolicy:c,cachePolicy:l,tags:p,subgraphs:h,ends:f}=e,g=[...e.config?.tags?e.config.tags:[],...p??[]];super({...e,bound:e.bound??cs,config:{...e.config?e.config:{},tags:g}}),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"PregelNode"}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"triggers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"mapper",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"writers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"bound",{enumerable:!0,configurable:!0,writable:!0,value:cs}),Object.defineProperty(this,"kwargs",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"retryPolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cachePolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"subgraphs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ends",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.channels=t,this.triggers=n,this.mapper=s,this.writers=i??this.writers,this.bound=o??this.bound,this.kwargs=a??this.kwargs,this.metadata=u??this.metadata,this.tags=g,this.retryPolicy=c,this.cachePolicy=l,this.subgraphs=h,this.ends=f}getWriters(){let e=[...this.writers];for(;e.length>1&&e[e.length-1]instanceof ae&&e[e.length-2]instanceof ae;){let t=e.slice(-2),n=t[0].writes.concat(t[1].writes);e[e.length-2]=new ae(n,t[0].config?.tags),e.pop()}return e}getNode(){let e=this.getWriters();if(!(this.bound===cs&&e.length===0))return this.bound===cs&&e.length===1?e[0]:this.bound===cs?new Qe({first:e[0],middle:e.slice(1,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):e.length>0?new Qe({first:this.bound,middle:e.slice(0,e.length-1),last:e[e.length-1],omitSequenceTags:!0}):this.bound}join(e){if(!Array.isArray(e))throw new Error("channels must be a list");if(typeof this.channels!="object")throw new Error("all channels must be named when using .join()");return new r({channels:{...this.channels,...Object.fromEntries(e.map(t=>[t,t]))},triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound,kwargs:this.kwargs,config:this.config,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}pipe(e){return ae.isWriter(e)?new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:[...this.writers,e],bound:this.bound,config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):this.bound===cs?new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:Ne(e),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):new r({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound.pipe(e),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}};var k=r=>BigInt(r),se=(r,e=0)=>new DataView(r.buffer,r.byteOffset+e,r.byteLength-e),$h=k("0x9E3779B1"),Lh=k("0x85EBCA77"),sy=k("0xC2B2AE3D"),Sr=k("0x9E3779B185EBCA87"),pn=k("0xC2B2AE3D27D4EB4F"),Fh=k("0x165667B19E3779F9"),Al=k("0x85EBCA77C2B2AE63"),iy=k("0x27D4EB2F165667C5"),oy=k("0x165667919E3779F9"),ay=k("0x9FB21C651E98DF25"),uy=r=>{let e=r.length;if(e%2!==0)throw new Error("String should have an even number of characters");let t=e/2,n=new Uint8Array(t),s=0,i=0;for(;i<t;){let o=r.slice(s,s+=2);n[i]=Number.parseInt(o,16),i+=1}return se(n)},Gt=uy("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),ls=(k(1)<<k(128))-k(1),G=(k(1)<<k(64))-k(1),ga=(k(1)<<k(32))-k(1),fr=64,Uh=fr/8,cy=8,ha=4;function ps(r){if(!r)throw new Error("Assert failed")}function ly(r){let e=new DataView(new ArrayBuffer(8));return e.setBigUint64(0,r,!0),e.getBigUint64(0,!1)}function py(r){let e=r;return e=(e&k(65535))<<k(16)|(e&k(4294901760))>>k(16),e=(e&k(16711935))<<k(8)|(e&k(4278255360))>>k(8),e}function fy(r,e){return(r&ga)*(e&ga)&G}function hy(r,e){return(r<<e|r>>k(32)-e)&ga}function zh(r,e,t){for(let n=0;n<Uh;n+=1){let s=e.getBigUint64(n*8,!0),i=s^t.getBigUint64(n*8,!0);r[n^1]+=s,r[n]+=fy(i,i>>k(32))}return r}function jh(r,e,t,n){for(let s=0;s<n;s+=1)zh(r,se(e,s*fr),se(t,s*8));return r}function dy(r,e){for(let t=0;t<Uh;t+=1){let n=e.getBigUint64(t*8,!0),s=r[t];s=xl(s,k(47)),s^=n,s*=$h,r[t]=s&G}return r}function da(r,e){return Bh(r[0]^e.getBigUint64(0,!0),r[1]^e.getBigUint64(cy,!0))}function Mh(r,e,t){let n=t;return n+=da(r.slice(0),se(e,0*ha)),n+=da(r.slice(2),se(e,4*ha)),n+=da(r.slice(4),se(e,8*ha)),n+=da(r.slice(6),se(e,12*ha)),qt(n&G)}function my(r,e,t,n,s){let i=r,o=Math.floor((t.byteLength-fr)/8),a=fr*o,u=Math.floor((e.byteLength-1)/a);for(let c=0;c<u;c+=1)i=jh(i,se(e,c*a),t,o),i=s(i,se(t,t.byteLength-fr));{let c=Math.floor((e.byteLength-1-a*u)/fr);i=jh(i,se(e,u*a),t,c),i=n(i,se(e,e.byteLength-fr),se(t,t.byteLength-fr-7))}return i}function gy(r,e){let t=new BigUint64Array([sy,Sr,pn,Fh,Al,Lh,iy,$h]);ps(r.byteLength>128),t=my(t,r,e,zh,dy),ps(t.length*8===64);{let n=Mh(t,se(e,11),k(r.byteLength)*Sr&G);return Mh(t,se(e,e.byteLength-fr-11),~(k(r.byteLength)*pn)&G)<<k(64)|n}}function Bh(r,e){let t=r*e&ls;return t&G^t>>k(64)}function Dh(r,e,t){return Bh((r.getBigUint64(0,!0)^e.getBigUint64(0,!0)+t)&G,(r.getBigUint64(8,!0)^e.getBigUint64(8,!0)-t)&G)}function ma(r,e,t,n,s){let i=r&G,o=r>>k(64)&G;return i+=Dh(e,n,s),i^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),i&=G,o+=Dh(t,se(n,16),s),o^=e.getBigUint64(0,!0)+e.getBigUint64(8,!0),o&=G,o<<k(64)|i}function qt(r){let e=r;return e^=e>>k(37),e*=oy,e&=G,e^=e>>k(32),e}function ba(r){let e=r;return e^=e>>k(33),e*=pn,e&=G,e^=e>>k(29),e*=Fh,e&=G,e^=e>>k(32),e}function by(r,e,t){let n=r.byteLength;ps(n>0&&n<=3);let s=k(r.getUint8(n-1))|k(n<<8)|k(r.getUint8(0)<<16)|k(r.getUint8(n>>1)<<24),i=(k(e.getUint32(0,!0))^k(e.getUint32(4,!0)))+t,o=(s^i)&G,a=(k(e.getUint32(8,!0))^k(e.getUint32(12,!0)))-t,u=(hy(py(s),k(13))^a)&G;return(ba(u)&G)<<k(64)|ba(o)}function xl(r,e){return r^r>>e}function yy(r,e,t){let n=r.byteLength;ps(n>=4&&n<=8);{let s=r.getUint32(0,!0),i=r.getUint32(n-4,!0),o=k(s)|k(i)<<k(32),a=(e.getBigUint64(16,!0)^e.getBigUint64(24,!0))+t&G,c=(o^a)*(Sr+(k(n)<<k(2)))&ls;return c+=(c&G)<<k(65),c&=ls,c^=c>>k(67),xl(xl(c&G,k(35))*ay&G,k(28))|qt(c>>k(64))<<k(64)}}function _y(r,e,t){let n=r.byteLength;ps(n>=9&&n<=16);{let s=(e.getBigUint64(32,!0)^e.getBigUint64(40,!0))+t&G,i=(e.getBigUint64(48,!0)^e.getBigUint64(56,!0))-t&G,o=r.getBigUint64(0,!0),a=r.getBigUint64(n-8,!0),u=(o^a^s)*Sr,c=(u&G)+(k(n-1)<<k(54));u=u&(ls^G)|c,a^=i,u+=a+(a&ga)*(Lh-k(1))<<k(64),u&=ls,u^=ly(u>>k(64));let l=(u&G)*pn;return l+=(u>>k(64))*pn<<k(64),l&=ls,qt(l&G)|qt(l>>k(64))<<k(64)}}function wy(r,e){let t=r.byteLength;return ps(t<=16),t>8?_y(r,Gt,e):t>=4?yy(r,Gt,e):t>0?by(r,Gt,e):ba(e^Gt.getBigUint64(64,!0)^Gt.getBigUint64(72,!0))|ba(e^Gt.getBigUint64(80,!0)^Gt.getBigUint64(88,!0))<<k(64)}function vl(r){return~r+k(1)&G}function xy(r,e,t){let n=k(r.byteLength)*Sr&G,s=k(r.byteLength-1)/k(32);for(;s>=0;){let a=Number(s);n=ma(n,se(r,16*a),se(r,r.byteLength-16*(a+1)),se(e,32*a),t),s-=k(1)}let i=n+(n>>k(64))&G;i=qt(i);let o=(n&G)*Sr+(n>>k(64))*Al+(k(r.byteLength)-t&G)*pn;return o&=G,o=vl(qt(o)),i|o<<k(64)}function vy(r,e,t){let n=k(r.byteLength)*Sr&G;for(let o=32;o<160;o+=32)n=ma(n,se(r,o-32),se(r,o-16),se(e,o-32),t);n=qt(n&G)|qt(n>>k(64))<<k(64);for(let o=160;o<=r.byteLength;o+=32)n=ma(n,se(r,o-32),se(r,o-16),se(e,3+o-160),t);n=ma(n,se(r,r.byteLength-16),se(r,r.byteLength-32),se(e,103),vl(t));let s=n+(n>>k(64))&G;s=qt(s);let i=(n&G)*Sr+(n>>k(64))*Al+(k(r.byteLength)-t&G)*pn;return i&=G,i=vl(qt(i)),s|i<<k(64)}function fn(r,e=k(0)){let t=new TextEncoder,n=se(typeof r=="string"?t.encode(r):r),s=n.byteLength,i=o=>o.toString(16).padStart(32,"0");return s<=16?i(wy(n,e)):s<=128?i(xy(n,Gt,e)):s<=240?i(vy(n,Gt,e)):i(gy(n,Gt))}function ya(r){return/^[0-9a-f]{32}$/.test(r)}function hn(r,e,t=!0,n=!1){try{return r[e].get()}catch(s){if(s.name===ne.unminifiable_name){if(n)return s;if(t)return null}throw s}}function Et(r,e,t=!0){if(Array.isArray(e)){let n={};for(let s of e)try{n[s]=hn(r,s,!t)}catch(i){if(i.name===ne.unminifiable_name)continue}return n}else return hn(r,e)}function*Kh(r,e){if(r.graph===Ce.PARENT)throw new X("There is no parent graph.");if(r.goto){let t;Array.isArray(r.goto)?t=r.goto:t=[r.goto];for(let n of t)if(Ee(n))yield[Le,De,n];else if(typeof n=="string")yield[Le,`branch:to:${n}`,"__start__"];else throw new Error(`In Command.send, expected Send or string, got ${typeof n}`)}if(r.resume)if(typeof r.resume=="object"&&Object.keys(r.resume).length&&Object.keys(r.resume).every(ya))for(let[t,n]of Object.entries(r.resume)){let s=e.filter(i=>i[0]===t&&i[1]===Me).map(i=>i[2]).slice(0,1)??[];s.push(n),yield[t,Me,s]}else yield[Le,Me,r.resume];if(r.update){if(typeof r.update!="object"||!r.update)throw new Error("Expected cmd.update to be a dict mapping channel names to update values");if(Array.isArray(r.update))for(let[t,n]of r.update)yield[Le,t,n];else for(let[t,n]of Object.entries(r.update))yield[Le,t,n]}}function*_a(r,e){if(e!=null)if(Array.isArray(r)&&typeof e=="object"&&!Array.isArray(e))for(let t in e)r.includes(t)&&(yield[t,e[t]]);else{if(Array.isArray(r))throw new Error('Input chunk must be an object when "inputChannels" is an array');yield[r,e]}}function*wa(r,e,t){Array.isArray(r)?(e===!0||e.find(([n,s])=>r.includes(n)))&&(yield Et(t,r)):(e===!0||e.some(([n,s])=>n===r))&&(yield hn(t,r))}function*Wh(r,e,t){let n=e.filter(([a,u])=>(a.config===void 0||!a.config.tags?.includes(ee))&&u[0][0]!==ge&&u[0][0]!==V);if(!n.length)return;let s;n.some(([a])=>a.writes.some(([u,c])=>u===Ot))?s=n.flatMap(([a])=>a.writes.filter(([u,c])=>u===Ot).map(([u,c])=>[a.name,c])):Array.isArray(r)?s=n.flatMap(([a])=>{let{writes:u}=a,c={};for(let[l]of u)r.includes(l)&&(c[l]=(c[l]||0)+1);return Object.values(c).some(l=>l>1)?u.filter(([l])=>r.includes(l)).map(([l,p])=>[a.name,{[l]:p}]):[[a.name,Object.fromEntries(u.filter(([l])=>r.includes(l)))]]}):s=n.flatMap(([a])=>a.writes.filter(([u,c])=>u===r).map(([u,c])=>[a.name,c]));let i={};for(let[a,u]of s)a in i||(i[a]=[]),i[a].push(u);let o={};for(let a in i)if(i[a].length===1){let[u]=i[a];o[a]=u}else o[a]=i[a];t&&(o.__metadata__={cached:t}),yield o}var xa=class{constructor({func:e,name:t,input:n,retry:s,cache:i,callbacks:o}){Object.defineProperty(this,"func",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"retry",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"callbacks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"__lg_type",{enumerable:!0,configurable:!0,writable:!0,value:"call"}),this.func=e,this.name=t,this.input=n,this.retry=s,this.cache=i,this.callbacks=o}};function Hh(r){return typeof r=="object"&&r!==null&&"__lg_type"in r&&r.__lg_type==="call"}function va(r){let e=typeof r[q];if(e==="number")return 0;if(e==="string")return"";for(let t in r){if(!Object.prototype.hasOwnProperty.call(r,t))continue;let n=typeof r[t];if(n==="number")return 0;if(n==="string")return"";break}}function fs(r,e){if(Object.keys(r).length>0){let t=va(e);return Object.fromEntries(Object.entries(e).filter(([n,s])=>s>(r[n]??t)))}else return e}function Vh(r,e){return r&&!Array.isArray(r)&&!(r instanceof Date)&&typeof r=="object"?r:{[e]:r}}function Xe(r,e){return r===null?{configurable:e}:r?.configurable===void 0?{...r,configurable:e}:{...r,configurable:{...r.configurable,...e}}}function Cr(r,e){let t=e?.parents??{};return Object.keys(t).length>0?Xe(r,{[Be]:{...t,[r.configurable?.checkpoint_ns??""]:r.configurable?.checkpoint_id}}):r}function hs(...r){let e=[...new Set(r.filter(Boolean))];if(e.length===0)return{signal:void 0,dispose:void 0};if(e.length===1)return{signal:e[0],dispose:void 0};let t=new AbortController,n=()=>{let i=e.find(o=>o.aborted)?.reason;t.abort(i),e.forEach(o=>o.removeEventListener("abort",n))};e.forEach(i=>i.addEventListener("abort",n,{once:!0}));let s=e.find(i=>i.aborted);return s&&t.abort(s.reason),{signal:t.signal,dispose:()=>{e.forEach(i=>i.removeEventListener("abort",n))}}}var Gh=(r,e)=>{if(!(!r&&!e))return r?e?Array.isArray(r)&&Array.isArray(e)?[...r,...e]:Array.isArray(r)?[...r,e]:Array.isArray(e)?[r,...e]:[r,e]:r:e};function qh(r,e){let t=new Ie({func:n=>e(...n),name:r,trace:!1,recurse:!1});return new Qe({name:r,first:t,last:new ae([{channel:Ot,value:Je}],[ee])})}function Jh(r,e){return new Ie({func:(n,s)=>e(n,s),name:r,trace:!1,recurse:!1})}var Yh=r=>r!==void 0?r+1:1;function Xh(r){let e;for(let t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e==null?e=r[t]:e=ea(e,r[t]));return e}function Ni(r,e,t){let n=va(r.channel_versions),s=r.versions_seen[V]??{},i=!1;for(let a in r.channel_versions)if(Object.prototype.hasOwnProperty.call(r.channel_versions,a)&&r.channel_versions[a]>(s[a]??n)){i=!0;break}let o=t.some(a=>e==="*"?!a.config?.tags?.includes(ee):e.includes(a.name));return i&&o}function Ri(r,e,t,n,s=!1){let i=new Set;if(Array.isArray(n))i=new Set(n.filter(a=>t.writes.some(([u,c])=>u===a)));else{for(let[a]of t.writes)if(a===n){i=new Set([a]);break}i=i||new Set}let o;if(s&&i.size>0){let a=Object.fromEntries(Object.entries(e).filter(([l,p])=>i.has(l))),u=_t(r,a,-1),c=Ir(a,u);We(Wt(u),c,[t],void 0,void 0),o=Et({...e,...c},n)}else o=Et(e,n);return o}function Ol(r,e,t){for(let[n,s]of t)if([$e,De].includes(n)&&s!=null){if(!Ee(s))throw new X(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(s)}`);if(!(s.node in e))throw new X(`Invalid node name "${s.node}" in Send packet`)}r(t)}var Ay=new Set([Ci,$e,Me,V,Ot,ge]);function We(r,e,t,n,s){t.sort((p,h)=>{let f=p.path?.slice(0,3)||[],g=h.path?.slice(0,3)||[];for(let b=0;b<Math.min(f.length,g.length);b+=1){if(f[b]<g[b])return-1;if(f[b]>g[b])return 1}return f.length-g.length});let i=t.some(p=>p.triggers.length>0),o=Ii(e);for(let p of t){r.versions_seen[p.name]??={};for(let h of p.triggers)h in r.channel_versions&&(r.versions_seen[p.name][h]=r.channel_versions[h])}let a=Xh(r.channel_versions),u=new Set(t.flatMap(p=>p.triggers).filter(p=>!Sh.includes(p)));for(let p of u)p in o&&o[p].consume()&&n!==void 0&&(r.channel_versions[p]=n(a));let c={};for(let p of t)for(let[h,f]of p.writes)Ay.has(h)||h in o&&(c[h]??=[],c[h].push(f));a=Xh(r.channel_versions);let l=new Set;for(let[p,h]of Object.entries(c))if(p in o){let f=o[p],g;try{g=f.update(h)}catch(b){if(b.name===X.unminifiable_name){let _=new X(`Invalid update for channel "${p}" with values ${JSON.stringify(h)}: ${b.message}`);throw _.lc_error_code=b.lc_error_code,_}else throw b}g&&n!==void 0&&(r.channel_versions[p]=n(a),f.isAvailable()&&l.add(p))}if(i)for(let p in o){if(!Object.prototype.hasOwnProperty.call(o,p))continue;let h=o[p];h.isAvailable()&&!l.has(p)&&h.update([])&&n!==void 0&&(r.channel_versions[p]=n(a),h.isAvailable()&&l.add(p))}if(i&&!Object.keys(s??{}).some(p=>l.has(p)))for(let p in o){if(!Object.prototype.hasOwnProperty.call(o,p))continue;let h=o[p];h.finish()&&n!==void 0&&(r.channel_versions[p]=n(a),h.isAvailable()&&l.add(p))}}function Tr(r,e,t,n,s,i,o){let a={},u=n[De];if(u?.isAvailable()){let c=u.get().length;for(let l=0;l<c;l+=1){let p=Aa([$e,l],r,e,t,n,s,i,o);p!==void 0&&(a[p.id]=p)}}for(let c in t){if(!Object.prototype.hasOwnProperty.call(t,c))continue;let l=Aa([Ti,c],r,e,t,n,s,i,o);l!==void 0&&(a[l.id]=l)}return a}function Aa(r,e,t,n,s,i,o,a){let{step:u,checkpointer:c,manager:l}=a,p=i.configurable??{},h=p.checkpoint_ns??"";if(r[0]===$e&&Hh(r[r.length-1])){let f=r[r.length-1],g=qh(f.name,f.func),b=[$e],_=h===""?f.name:`${h}${ce}${f.name}`,I=Pr(JSON.stringify([_,u.toString(),f.name,$e,r[1],r[2]]),e.id),v=`${_}${Ke}${I}`,S=[...r.slice(0,3),!0],C={langgraph_step:u,langgraph_node:f.name,langgraph_triggers:b,langgraph_path:S,langgraph_checkpoint_ns:v};if(o){let j=[];return{name:f.name,input:f.input,proc:g,writes:j,config:he(ze(i,{metadata:C,store:a.store??i.store}),{runName:f.name,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[an]:I,[lr]:D=>Ol(y=>j.push(...y),n,D),[xt]:(D,y=!1)=>Ri(e,s,{name:f.name,writes:j,triggers:b,path:S},D,y),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:Pl({pendingWrites:t??[],taskId:I,currentTaskInput:f.input,resumeMap:i.configurable?.[as],namespaceHash:fn(v)}),[us]:e.channel_values[un],checkpoint_id:void 0,checkpoint_ns:v}}),triggers:b,retry_policy:f.retry,cache_key:f.cache?{key:fn((f.cache.keyFunc??JSON.stringify)([f.input])),ns:[ia,f.name??"__dynamic__"],ttl:f.cache.ttl}:void 0,id:I,path:S,writers:[]}}else return{id:I,name:f.name,interrupts:[],path:S}}else if(r[0]===$e){let f=typeof r[1]=="number"?r[1]:parseInt(r[1],10);if(!s[De]?.isAvailable())return;let g=s[De].get();if(f<0||f>=g.length)return;let b=aa(g[f])&&!Ee(g[f])?new kr(g[f].node,g[f].args):g[f];if(!aa(b)){console.warn(`Ignoring invalid packet ${JSON.stringify(b)} in pending sends.`);return}if(!(b.node in n)){console.warn(`Ignoring unknown node name ${b.node} in pending sends.`);return}let _=[$e],I=h===""?b.node:`${h}${ce}${b.node}`,v=Pr(JSON.stringify([I,u.toString(),b.node,$e,f.toString()]),e.id),S=`${I}${Ke}${v}`,C={langgraph_step:u,langgraph_node:b.node,langgraph_triggers:_,langgraph_path:r.slice(0,3),langgraph_checkpoint_ns:S};if(o){let j=n[b.node],F=j.getNode();if(F!==void 0){j.metadata!==void 0&&(C={...C,...j.metadata});let D=[];return{name:b.node,input:b.args,proc:F,subgraphs:j.subgraphs,writes:D,config:he(ze(i,{metadata:C,tags:j.tags,store:a.store??i.store}),{runName:b.node,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[an]:v,[lr]:y=>Ol(T=>D.push(...T),n,y),[xt]:(y,T=!1)=>Ri(e,s,{name:b.node,writes:D,triggers:_,path:r},y,T),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:Pl({pendingWrites:t??[],taskId:v,currentTaskInput:b.args,resumeMap:i.configurable?.[as],namespaceHash:fn(S)}),[us]:e.channel_values[un],checkpoint_id:void 0,checkpoint_ns:S}}),triggers:_,retry_policy:j.retryPolicy,cache_key:j.cachePolicy?{key:fn((j.cachePolicy.keyFunc??JSON.stringify)([b.args])),ns:[ia,j.name??"__dynamic__",b.node],ttl:j.cachePolicy.ttl}:void 0,id:v,path:r,writers:j.getWriters()}}}else return{id:v,name:b.node,interrupts:[],path:r}}else if(r[0]===Ti){let f=r[1].toString(),g=n[f];if(g===void 0)return;if(t?.length){let v=h===""?f:`${h}${ce}${f}`,S=Pr(JSON.stringify([v,u.toString(),f,Ti,f]),e.id);if(t.some(j=>j[0]===S&&j[1]!==ge))return}let b=va(e.channel_versions);if(b===void 0)return;let _=e.versions_seen[f]??{},I=g.triggers.find(v=>s[v].isAvailable()?(e.channel_versions[v]??b)>(_[v]??b):!1);if(I!==void 0){let v=Oy(g,s,o);if(v===void 0)return;let S=h===""?f:`${h}${ce}${f}`,C=Pr(JSON.stringify([S,u.toString(),f,Ti,[I]]),e.id),j=`${S}${Ke}${C}`,F={langgraph_step:u,langgraph_node:f,langgraph_triggers:[I],langgraph_path:r,langgraph_checkpoint_ns:j};if(o){let D=g.getNode();if(D!==void 0){g.metadata!==void 0&&(F={...F,...g.metadata});let y=[];return{name:f,input:v,proc:D,subgraphs:g.subgraphs,writes:y,config:he(ze(i,{metadata:F,tags:g.tags,store:a.store??i.store}),{runName:f,callbacks:l?.getChild(`graph:step:${u}`),configurable:{[an]:C,[lr]:T=>Ol($=>{y.push(...$)},n,T),[xt]:(T,$=!1)=>Ri(e,s,{name:f,writes:y,triggers:[I],path:r},T,$),[de]:c??p[de],[Be]:{...p[Be],[h]:e.id},[vt]:Pl({pendingWrites:t??[],taskId:C,currentTaskInput:v,resumeMap:i.configurable?.[as],namespaceHash:fn(j)}),[us]:e.channel_values[un],checkpoint_id:void 0,checkpoint_ns:j}}),triggers:[I],retry_policy:g.retryPolicy,cache_key:g.cachePolicy?{key:fn((g.cachePolicy.keyFunc??JSON.stringify)([v])),ns:[ia,g.name??"__dynamic__",f],ttl:g.cachePolicy.ttl}:void 0,id:C,path:r,writers:g.getWriters()}}}else return{id:C,name:f,interrupts:[],path:r}}}}function Oy(r,e,t){let n;if(typeof r.channels=="object"&&!Array.isArray(r.channels)){n={};for(let[s,i]of Object.entries(r.channels))if(r.triggers.includes(i))try{n[s]=hn(e,i,!1)}catch(o){if(o.name===ne.unminifiable_name)return;throw o}else if(i in e)try{n[s]=hn(e,i,!1)}catch(o){if(o.name===ne.unminifiable_name)continue;throw o}}else if(Array.isArray(r.channels)){let s=!1;for(let i of r.channels)try{n=hn(e,i,!1),s=!0;break}catch(o){if(o.name===ne.unminifiable_name)continue;throw o}if(!s)return}else throw new Error(`Invalid channels type, expected list or dict, got ${r.channels}`);return t&&r.mapper!==void 0&&(n=r.mapper(n)),n}function Pl({pendingWrites:r,taskId:e,currentTaskInput:t,resumeMap:n,namespaceHash:s}){let i=r.find(([u,c])=>u===Le&&c===Me)?.[2],a={callCounter:0,interruptCounter:-1,resume:(()=>{let u=r.filter(([c,l])=>c===e&&l===Me).flatMap(([c,l,p])=>p);if(n!=null&&s in n){let c=n[s];u.push(c)}return u})(),nullResume:i,subgraphCounter:0,currentTaskInput:t,consumeNullResume:()=>{if(a.nullResume)return delete a.nullResume,r.splice(r.findIndex(([u,c])=>u===Le&&c===Me),1),i}};return a}function Py(r){return"steps"in r&&Array.isArray(r.steps)}function ji(r){return"lg_is_pregel"in r&&r.lg_is_pregel===!0}function Oa(r){let e=[r];for(let t of e){if(ji(t))return t;Py(t)&&e.push(...t.steps)}}var Mi={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},Di=(r,e)=>`${r.start}${e}${r.end}`;function*El(r){for(let{id:e,name:t,input:n,config:s,triggers:i,writes:o}of r){if(s?.tags?.includes(ee))continue;let a=o.filter(([u,c])=>u===e&&c===V).map(([,u])=>u);yield{id:e,name:t,input:n,triggers:i,interrupts:a}}}function Ey(r){return typeof r!="object"||r===null?!1:"$writes"in r&&Array.isArray(r.$writes)}function Zh(r){let e={};for(let[t,n]of r){let s=String(t);if(s in e){let i=Ey(e[s])?e[s].$writes:[e[s]];i.push(n),e[s]={$writes:i}}else e[s]=n}return e}function*Qh(r,e){for(let[{id:t,name:n,config:s},i]of r)s?.tags?.includes(ee)||(yield{id:t,name:n,result:Zh(i.filter(([o])=>Array.isArray(e)?e.includes(o):o===e)),interrupts:i.filter(o=>o[0]===V).map(o=>o[1])})}function*ed(r,e,t,n,s,i,o,a){function u(p){let h={};return p.callbacks!=null&&(h.callbacks=p.callbacks),p.configurable!=null&&(h.configurable=p.configurable),p.maxConcurrency!=null&&(h.max_concurrency=p.maxConcurrency),p.metadata!=null&&(h.metadata=p.metadata),p.recursionLimit!=null&&(h.recursion_limit=p.recursionLimit),p.runId!=null&&(h.run_id=p.runId),p.runName!=null&&(h.run_name=p.runName),p.tags!=null&&(h.tags=p.tags),h}let c=r.configurable?.checkpoint_ns,l={};for(let p of s){if(!(p.subgraphs?.length?p.subgraphs:[p.proc]).find(Oa))continue;let f=`${p.name}:${p.id}`;c&&(f=`${c}|${f}`),l[p.id]={configurable:{thread_id:r.configurable?.thread_id,checkpoint_ns:f}}}yield{config:u(r),values:Et(e,t),metadata:n,next:s.map(p=>p.name),tasks:Il(s,i,l,a),parentConfig:o?u(o):void 0}}function Il(r,e,t,n){return r.map(s=>{let i=e.find(([c,l])=>c===s.id&&l===ge)?.[2],o=e.filter(([c,l])=>c===s.id&&l===V).map(([,,c])=>c),a=(()=>{if(i||o.length||!e.length)return;let c=e.findIndex(([l,p])=>l===s.id&&p===Ot);if(c>=0)return e[c][2];if(typeof n=="string")return e.find(([l,p])=>l===s.id&&p===n)?.[2];if(Array.isArray(n)){let l=e.filter(([p,h])=>p===s.id&&n.includes(h)).map(([,p,h])=>[p,h]);return l.length?Zh(l):void 0}})();if(i)return{id:s.id,name:s.name,path:s.path,error:i,interrupts:o,result:a};let u=t?.[s.id];return{id:s.id,name:s.name,path:s.path,interrupts:o,...u!==void 0?{state:u}:{},result:a}})}function td(r,e,t){console.log([`${Di(Mi.blue,`[${r}:checkpoint]`)}`,`\x1B[1m State at the end of step ${r}:\x1B[0m
84
+ `,JSON.stringify(Et(e,t),null,2)].join(""))}function Pa(r,e){let t=e.length;console.log([`${Di(Mi.blue,`[${r}:tasks]`)}`,`\x1B[1m Starting step ${r} with ${t} task${t===1?"":"s"}:\x1B[0m
85
+ `,e.map(n=>`- ${Di(Mi.green,String(n.name))} -> ${JSON.stringify(n.input,null,2)}`).join(`
86
+ `)].join(""))}function rd(r,e,t){let n={};for(let[s,i]of e)t.includes(s)&&(n[s]||(n[s]=[]),n[s].push(i));console.log([`${Di(Mi.blue,`[${r}:writes]`)}`,`\x1B[1m Finished step ${r} with writes to ${Object.keys(n).length} channel${Object.keys(n).length!==1?"s":""}:\x1B[0m
87
+ `,Object.entries(n).map(([s,i])=>`- ${Di(Mi.yellow,s)} -> ${i.map(o=>JSON.stringify(o)).join(", ")}`).join(`
88
+ `)].join(""))}var $i=class extends Tu{constructor(e,t){let n=e.getReader(),s=t??new AbortController;super({start(i){return o();function o(){return n.read().then(({done:a,value:u})=>{if(a){i.close();return}return i.enqueue(u),o()})}}}),Object.defineProperty(this,"_abortController",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_innerReader",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._abortController=s,this._innerReader=n}async cancel(e){this._abortController.abort(e),this._innerReader.releaseLock()}get signal(){return this._abortController.signal}},ds=class extends Tu{get closed(){return this._closed}constructor(e){let t,n=new Promise(s=>{t=s});super({start:s=>{t(s)}}),Object.defineProperty(this,"modes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"passthroughFn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_closed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),n.then(s=>{this.controller=s}),this.passthroughFn=e.passthroughFn,this.modes=e.modes}push(e){this.passthroughFn?.(e),this.controller.enqueue(e)}close(){try{this.controller.close()}catch{}finally{this._closed=!0}}error(e){this.controller.error(e)}};var Ea=Symbol.for("INPUT_DONE"),kl=Symbol.for("INPUT_RESUMING"),Iy=25;function ky(...r){return new ds({passthroughFn:e=>{for(let t of r)t.modes.has(e[1])&&t.push(e)},modes:new Set(r.flatMap(e=>Array.from(e.modes)))})}var Sl=class extends Ei{constructor(e){super(),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:Promise.resolve()}),this.cache=e}async get(e){return this.enqueueOperation("get",e)}async set(e){return this.enqueueOperation("set",e)}async clear(e){return this.enqueueOperation("clear",e)}async stop(){await this.queue}enqueueOperation(e,...t){let n=this.queue.then(()=>this.cache[e](...t));return this.queue=n.then(()=>{},()=>{}),n}},Ia=class r{get isResuming(){let e=!1;if(q in this.checkpoint.channel_versions)e=!0;else for(let u in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,u)){e=!0;break}let n=this.config.configurable?.[Vt]!==void 0&&this.config.configurable?.[Vt],s=this.input===null||this.input===void 0,i=Te(this.input)&&this.input.resume!=null,o=this.input===kl,a=!this.isNested&&this.config.metadata?.run_id!==void 0&&this.checkpointMetadata?.run_id!==void 0&&this.config.metadata.run_id===this.checkpointMetadata?.run_id;return e&&(n||s||i||o||a)}constructor(e){Object.defineProperty(this,"input",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"output",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointerGetNextVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointIdSaved",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointMetadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointNamespace",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointPendingWrites",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"checkpointPreviousVersions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"step",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"durability",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"streamKeys",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"skipDoneTasks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"prevCheckpointConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:"pending"}),Object.defineProperty(this,"tasks",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"stream",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"checkpointerPromises",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"isNested",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_checkpointerChainedPromise",{enumerable:!0,configurable:!0,writable:!0,value:Promise.resolve()}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"manager",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptAfter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptBefore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"toInterrupt",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"triggerToNodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.input=e.input,this.checkpointer=e.checkpointer,this.checkpointer!==void 0?this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer):this.checkpointerGetNextVersion=Yh,this.checkpoint=e.checkpoint,this.checkpointMetadata=e.checkpointMetadata,this.checkpointPreviousVersions=e.checkpointPreviousVersions,this.channels=e.channels,this.checkpointPendingWrites=e.checkpointPendingWrites,this.step=e.step,this.stop=e.stop,this.config=e.config,this.checkpointConfig=e.checkpointConfig,this.isNested=e.isNested,this.manager=e.manager,this.outputKeys=e.outputKeys,this.streamKeys=e.streamKeys,this.nodes=e.nodes,this.skipDoneTasks=e.skipDoneTasks,this.store=e.store,this.cache=e.cache?new Sl(e.cache):void 0,this.stream=e.stream,this.checkpointNamespace=e.checkpointNamespace,this.prevCheckpointConfig=e.prevCheckpointConfig,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.durability=e.durability,this.debug=e.debug,this.triggerToNodes=e.triggerToNodes}static async initialize(e){let{config:t,stream:n}=e;n!==void 0&&t.configurable?.[os]!==void 0&&(n=ky(n,t.configurable[os]));let s=t.configurable?!("checkpoint_id"in t.configurable):!0,i=t.configurable?.[vt];t.configurable&&i&&(i.subgraphCounter>0&&(t=Xe(t,{[At]:[t.configurable[At],i.subgraphCounter.toString()].join(ce)})),i.subgraphCounter+=1);let o=xt in(t.configurable??{});!o&&t.configurable?.checkpoint_ns!==void 0&&t.configurable?.checkpoint_ns!==""&&(t=Xe(t,{checkpoint_ns:"",checkpoint_id:void 0}));let a=t;t.configurable?.[Be]!==void 0&&t.configurable?.[Be]?.[t.configurable?.checkpoint_ns]&&(a=Xe(t,{checkpoint_id:t.configurable[Be][t.configurable?.checkpoint_ns]}));let u=t.configurable?.checkpoint_ns?.split(ce)??[],c=await e.checkpointer?.getTuple(a)??{config:t,checkpoint:Ai(),metadata:{source:"input",step:-2,parents:{}},pendingWrites:[]};a={...t,...c.config,configurable:{checkpoint_ns:"",...t.configurable,...c.config.configurable}};let l=c.parentConfig,p=Wt(c.checkpoint),h={...c.metadata},f=c.pendingWrites??[],g=Ir(e.channelSpecs,p),b=(h.step??0)+1,_=b+(t.recursionLimit??Iy)+1,I={...p.channel_versions},v=e.store?new Pi(e.store):void 0;return v&&await v.start(),new r({input:e.input,config:t,checkpointer:e.checkpointer,checkpoint:p,checkpointMetadata:h,checkpointConfig:a,prevCheckpointConfig:l,checkpointNamespace:u,channels:g,isNested:o,manager:e.manager,skipDoneTasks:s,step:b,stop:_,checkpointPreviousVersions:I,checkpointPendingWrites:f,outputKeys:e.outputKeys??[],streamKeys:e.streamKeys??[],nodes:e.nodes,stream:n,store:v,cache:e.cache,interruptAfter:e.interruptAfter,interruptBefore:e.interruptBefore,durability:e.durability,debug:e.debug,triggerToNodes:e.triggerToNodes})}_checkpointerPutAfterPrevious(e){this._checkpointerChainedPromise=this._checkpointerChainedPromise.then(()=>this.checkpointer?.put(e.config,e.checkpoint,e.metadata,e.newVersions)),this.checkpointerPromises.push(this._checkpointerChainedPromise)}putWrites(e,t){let n=t;if(n.length===0)return;n.every(([o])=>o in ta)&&(n=Array.from(new Map(n.map(o=>[o[0],o])).values())),this.checkpointPendingWrites=this.checkpointPendingWrites.filter(o=>o[0]!==e);for(let[o,a]of n)this.checkpointPendingWrites.push([e,o,a]);let s=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??"",[oa]:this.checkpoint.id});if(this.durability!=="exit"&&this.checkpointer!=null&&this.checkpointerPromises.push(this.checkpointer.putWrites(s,n,e)),this.tasks&&this._outputWrites(e,n),!t.length||!this.cache||!this.tasks)return;let i=this.tasks[e];i==null||i.cache_key==null||t[0][0]===ge||t[0][0]===V||this.cache.set([{key:[i.cache_key.ns,i.cache_key.key],value:i.writes,ttl:i.cache_key.ttl}])}_outputWrites(e,t,n=!1){let s=this.tasks[e];if(s!==void 0){if(s.config!==void 0&&(s.config.tags??[]).includes(ee))return;if(t.length>0)if(t[0][0]===V){if(s.path?.[0]===$e&&s.path?.at(-1)===!0)return;let i=t.filter(o=>o[0]===V).flatMap(o=>o[1]);this._emit([["updates",{[V]:i}],["values",{[V]:i}]])}else t[0][0]!==ge&&this._emit(cn(pr(Wh(this.outputKeys,[[s,t]],n),"updates")));n||this._emit(cn(pr(Qh([[s,t]],this.streamKeys),"tasks")))}}async _matchCachedWrites(){if(!this.cache)return[];let e=[],t=([o,a])=>`ns:${o.join(",")}|key:${a}`,n=[],s={};for(let o of Object.values(this.tasks))o.cache_key!=null&&!o.writes.length&&(n.push([o.cache_key.ns,o.cache_key.key]),s[t([o.cache_key.ns,o.cache_key.key])]=o);if(n.length===0)return[];let i=await this.cache.get(n);for(let{key:o,value:a}of i){let u=s[t(o)];u!=null&&(u.writes.push(...a),e.push({task:u,result:a}))}return e}async tick(e){this.store&&!this.store.isRunning&&await this.store?.start();let{inputKeys:t=[]}=e;if(this.status!=="pending")throw new Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);if(![Ea,kl].includes(this.input))await this._first(t);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new Ar;if(Object.values(this.tasks).every(i=>i.writes.length>0)){let i=Object.values(this.tasks).flatMap(a=>a.writes);We(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes);let o=await Pt(pr(wa(this.outputKeys,i,this.channels),"values"));if(this._emit(o),this.checkpointPendingWrites=[],await this._putCheckpoint({source:"loop"}),Ni(this.checkpoint,this.interruptAfter,Object.values(this.tasks)))throw this.status="interrupt_after",new Ar;this.config.configurable?.[Vt]!==void 0&&delete this.config.configurable?.[Vt]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;let n=Tr(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step,checkpointer:this.checkpointer,isResuming:this.isResuming,manager:this.manager,store:this.store,stream:this.stream});if(this.tasks=n,this.checkpointer&&this._emit(await Pt(pr(ed(this.checkpointConfig,this.channels,this.streamKeys,this.checkpointMetadata,Object.values(this.tasks),this.checkpointPendingWrites,this.prevCheckpointConfig,this.outputKeys),"checkpoints"))),Object.values(this.tasks).length===0)return this.status="done",!1;if(this.skipDoneTasks&&this.checkpointPendingWrites.length>0){for(let[i,o,a]of this.checkpointPendingWrites){if(o===ge||o===V||o===Me)continue;let u=Object.values(this.tasks).find(c=>c.id===i);u&&u.writes.push([o,a])}for(let i of Object.values(this.tasks))i.writes.length>0&&this._outputWrites(i.id,i.writes,!0)}if(Object.values(this.tasks).every(i=>i.writes.length>0))return this.tick({inputKeys:t});if(Ni(this.checkpoint,this.interruptBefore,Object.values(this.tasks)))throw this.status="interrupt_before",new Ar;let s=await Pt(pr(El(Object.values(this.tasks)),"tasks"));return this._emit(s),!0}async finishAndHandleError(e){this.durability==="exit"&&(!this.isNested||typeof e<"u"||this.checkpointNamespace.every(n=>!n.includes(Ke)))&&(this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let t=this._suppressInterrupt(e);return(t||e===void 0)&&(this.output=Et(this.channels,this.outputKeys)),t&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(n=>n.writes.length>0)&&(We(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emit(cn(pr(wa(this.outputKeys,Object.values(this.tasks).flatMap(n=>n.writes),this.channels),"values")))),Or(e)&&!e.interrupts.length&&this._emit([["updates",{[V]:[]}],["values",{[V]:[]}]])),t}async acceptPush(e,t,n){if(this.interruptAfter?.length>0&&Ni(this.checkpoint,this.interruptAfter,[e])){this.toInterrupt.push(e);return}let s=Aa([$e,e.path??[],t,e.id,n],this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,e.config??{},!0,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(!s)return;if(this.interruptBefore?.length>0&&Ni(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}this._emit(cn(pr(El([s]),"tasks"))),this.debug&&Pa(this.step,[s]),this.tasks[s.id]=s,this.skipDoneTasks&&this._matchWrites({[s.id]:s});let i=await this._matchCachedWrites();for(let{task:o}of i)this._outputWrites(o.id,o.writes,!0);return s}_suppressInterrupt(e){return Or(e)&&!this.isNested}async _first(e){let{configurable:t}=this.config,n=t?.[vt];if(n&&n.nullResume!==void 0&&this.putWrites(Le,[[Me,n.nullResume]]),Te(this.input)){let o=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume=="object"&&Object.keys(this.input.resume).every(ya)&&(this.config.configurable??={},this.config.configurable[as]=this.input.resume),o&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let a={};for(let[u,c,l]of Kh(this.input,this.checkpointPendingWrites))a[u]??=[],a[u].push([c,l]);if(Object.keys(a).length===0)throw new hi("Received empty Command input");for(let[u,c]of Object.entries(a))this.putWrites(u,c)}let s=(this.checkpointPendingWrites??[]).filter(o=>o[0]===Le).map(o=>o.slice(1));s.length>0&&We(this.checkpoint,this.channels,[{name:wt,writes:s,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let i=Te(this.input)&&s.length>0;if(this.isResuming||i){for(let a in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,a)&&this.checkpoint.channel_versions[a]!==void 0){let u=this.checkpoint.channel_versions[a];this.checkpoint.versions_seen[V]={...this.checkpoint.versions_seen[V],[a]:u}}let o=await Pt(pr(wa(this.outputKeys,!0,this.channels),"values"));this._emit(o)}if(this.isResuming)this.input=kl;else if(i)await this._putCheckpoint({source:"input"}),this.input=Ea;else{let o=await Pt(_a(e,this.input));if(o.length>0){let a=Tr(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});We(this.checkpoint,this.channels,Object.values(a).concat([{name:wt,writes:o,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes),await this._putCheckpoint({source:"input"}),this.input=Ea}else if(Vt in(this.config.configurable??{}))this.input=Ea;else throw new hi(`Received no input writes for ${JSON.stringify(e,null,2)}`)}this.isNested||(this.config=Xe(this.config,{[Vt]:this.isResuming}))}_emit(e){for(let[t,n]of e)if(this.stream.modes.has(t)&&this.stream.push([this.checkpointNamespace,t,n]),(t==="checkpoints"||t==="tasks")&&this.stream.modes.has("debug")){let s=t==="checkpoints"?this.step-1:this.step,i=new Date().toISOString(),o=t==="checkpoints"?"checkpoint":typeof n=="object"&&n!=null&&"result"in n?"task_result":"task";this.stream.push([this.checkpointNamespace,"debug",{step:s,type:o,timestamp:i,payload:n}])}}_putCheckpoint(e){let t=this.checkpointMetadata===e,n=this.checkpointer!=null&&(this.durability!=="exit"||t),s=i=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??""});let o={...this.checkpoint.channel_versions},a=fs(this.checkpointPreviousVersions,o);this.checkpointPreviousVersions=o,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:Wt(i),metadata:{...this.checkpointMetadata},newVersions:a}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}};t||(this.checkpointMetadata={...e,step:this.step,parents:this.config.configurable?.[Be]??{}}),this.checkpoint=_t(this.checkpoint,n?this.channels:void 0,this.step,t?{id:this.checkpoint.id}:void 0),n&&s(this.checkpoint),t||(this.step+=1)}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let e=Xe(this.checkpointConfig,{[At]:this.config.configurable?.checkpoint_ns??"",[oa]:this.checkpoint.id}),t={};for(let[n,s,i]of this.checkpointPendingWrites)t[n]??=[],t[n].push([s,i]);for(let[n,s]of Object.entries(t))this.checkpointerPromises.push(this.checkpointer.putWrites(e,s,n))}_matchWrites(e){for(let[t,n,s]of this.checkpointPendingWrites){if(n===ge||n===V||n===Me)continue;let i=Object.values(e).find(o=>o.id===t);i&&i.writes.push([n,s])}for(let t of Object.values(e))t.writes.length>0&&this._outputWrites(t.id,t.writes,!0)}};function Sy(r){return ve(r?.message)}var ka=class extends wf{constructor(e){super(),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"StreamMessagesHandler"}),Object.defineProperty(this,"streamFn",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metadatas",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"emittedChatModelRunIds",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"stableMessageIdMap",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"lc_prefer_streaming",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.streamFn=e}_emit(e,t,n,s=!1){if(s&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let i=t.id;n!=null&&(wo(t)?i??=`run-${n}-tool-${t.tool_call_id}`:((i==null||i===`run-${n}`)&&(i=this.stableMessageIdMap[n]??i??`run-${n}`),this.stableMessageIdMap[n]??=i)),i!==t.id&&(t.id=i,t.lc_kwargs.id=i),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],"messages",[t,e[1]]])}handleChatModelStart(e,t,n,s,i,o,a,u){a&&(!o||!o.includes(kh)&&!o.includes("nostream"))&&(this.metadatas[n]=[a.langgraph_checkpoint_ns.split("|"),{tags:o,name:u,...a}])}handleLLMNewToken(e,t,n,s,i,o){let a=o?.chunk;this.emittedChatModelRunIds[n]=!0,this.metadatas[n]!==void 0&&(Sy(a)?this._emit(this.metadatas[n],a.message,n):this._emit(this.metadatas[n],new Mt({content:e}),n))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let n=e.generations?.[0]?.[0];ve(n?.message)&&this._emit(this.metadatas[t],n?.message,t,!0),delete this.emittedChatModelRunIds[t]}delete this.metadatas[t],delete this.stableMessageIdMap[t]}}handleLLMError(e,t){delete this.metadatas[t]}handleChainStart(e,t,n,s,i,o,a,u){if(o!==void 0&&u===o.langgraph_node&&(i===void 0||!i.includes(ee))&&(this.metadatas[n]=[o.langgraph_checkpoint_ns.split("|"),{tags:i,name:u,...o}],typeof t=="object")){for(let c of Object.values(t))if((ve(c)||ii(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(ve(l)||ii(l))&&l.id!==void 0&&(this.seen[l.id]=l)}}handleChainEnd(e,t){let n=this.metadatas[t];if(delete this.metadatas[t],n!==void 0){if(ve(e))this._emit(n,e,t,!0);else if(Array.isArray(e))for(let s of e)ve(s)&&this._emit(n,s,t,!0);else if(e!=null&&typeof e=="object"){for(let s of Object.values(e))if(ve(s))this._emit(n,s,t,!0);else if(Array.isArray(s))for(let i of s)ve(i)&&this._emit(n,i,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}};var Cy=500,Ty=2,Ry=128e3,Ny=3,jy=[400,401,402,403,404,405,406,407,409],My=r=>{if(r.message.startsWith("Cancel")||r.message.startsWith("AbortError")||r.name==="AbortError"||r.name==="GraphValueError"||r?.code==="ECONNABORTED")return!1;let e=r?.response?.status??r?.status;return!(e&&jy.includes(+e)||r?.error?.code==="insufficient_quota")};async function Cl(r,e,t,n){let s=r.retry_policy??e,i=s!==void 0?s.initialInterval??Cy:0,o=0,a,u,{config:c}=r;for(t&&(c=Xe(c,t)),c={...c,signal:n};!n?.aborted;){r.writes.splice(0,r.writes.length),a=void 0;try{u=await r.proc.invoke(r.input,c);break}catch(l){if(a=l,a.pregelTaskId=r.id,Xf(a)){let g=c?.configurable?.checkpoint_ns,b=a.command;if(b.graph===g){for(let _ of r.writers)await _.invoke(b,c);a=void 0;break}else if(b.graph===Ce.PARENT){let _=Th(g);a.command=new Ce({...a.command,graph:_})}}if(Gn(a)||s===void 0||(o+=1,o>=(s.maxAttempts??Ny))||!(s.retryOn??My)(a))break;i=Math.min(s.maxInterval??Ry,i*(s.backoffFactor??Ty));let h=s.jitter?Math.floor(i+Math.random()*1e3):i;await new Promise(g=>setTimeout(g,h));let f=a.name??a.constructor.unminifiable_name??a.constructor.name;(s?.logWarning??!0)&&console.log(`Retrying task "${String(r.name)}" after ${i.toFixed(2)}ms (attempt ${o}) after ${f}: ${a}`),c=Xe(c,{[Vt]:!0})}}return{task:r,result:u,error:a,signalAborted:n?.aborted}}var Tl=Symbol.for("promiseAdded");function Dy(){let r={next:()=>{},wait:Promise.resolve(Tl)};function e(t){r.next=()=>{r.wait=new Promise(e),t(Tl)}}return r.wait=new Promise(e),r}var Sa=class{constructor({loop:e,nodeFinished:t}){Object.defineProperty(this,"nodeFinished",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"loop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:n,onStepWrite:s,maxConcurrency:i}=e,o=new Set,a,u=new AbortController,c=u.signal,l=t?AbortSignal.timeout(t):void 0,p=Object.values(this.loop.tasks).filter(b=>b.writes.length===0),{signals:h,disposeCombinedSignal:f}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:l,signal:e.signal}),g=this._executeTasksWithRetry(p,{signals:h,retryPolicy:n,maxConcurrency:i});for await(let{task:b,error:_,signalAborted:I}of g)this._commit(b,_),Or(_)||Gn(_)&&!Or(a)?a=_:_&&(o.size===0||!I)&&(u.abort(),o.add(_));if(f?.(),s?.(this.loop.step,Object.values(this.loop.tasks).map(b=>b.writes).flat()),o.size===1)throw Array.from(o)[0];if(o.size>1)throw new AggregateError(Array.from(o),`Multiple errors occurred during superstep ${this.loop.step}. See the "errors" field of this exception for more details.`);if(Or(a)||Gn(a)&&this.loop.isNested)throw a}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:n}){let s=this.loop.config.configurable?.[gl]??{},i=s.externalAbortSignal??n,o=t??s.timeoutAbortSignal,{signal:a,dispose:u}=hs(i,o,e),c={externalAbortSignal:i,timeoutAbortSignal:o,composedAbortSignal:a};return this.loop.config=Xe(this.loop.config,{[gl]:c}),{signals:c,disposeCombinedSignal:u}}async*_executeTasksWithRetry(e,t){let{retryPolicy:n,maxConcurrency:s,signals:i}=t??{},o=Dy(),a={},u={executingTasksMap:a,barrier:o,retryPolicy:n,scheduleTask:async(f,g,b)=>this.loop.acceptPush(f,g,b)};if(i?.composedAbortSignal?.aborted)throw new Error("Abort");let c=0,l,p=hs(i?.externalAbortSignal,i?.timeoutAbortSignal),h=p.signal?new Promise((f,g)=>{l=()=>g(new Error("Abort")),p.signal?.addEventListener("abort",l,{once:!0})}):void 0;for(;(c===0||Object.keys(a).length>0)&&e.length;){for(;Object.values(a).length<(s??e.length)&&c<e.length;c+=1){let g=e[c];a[g.id]=Cl(g,n,{[Si]:nd?.bind(u,this,g)},i?.composedAbortSignal).catch(b=>({task:g,error:b,signalAborted:i?.composedAbortSignal?.aborted}))}let f=await Promise.race([...Object.values(a),...h?[h]:[],o.wait]);f!==Tl&&(yield f,l!=null&&(p.signal?.removeEventListener("abort",l),p.dispose?.()),delete a[f.task.id])}}_commit(e,t){if(t!==void 0)if(Or(t)){if(t.interrupts.length){let n=t.interrupts.map(i=>[V,i]),s=e.writes.filter(i=>i[0]===Me);s.length&&n.push(...s),this.loop.putWrites(e.id,n)}}else Gn(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):this.loop.putWrites(e.id,[[ge,{message:t.message,name:t.name}]]);else this.nodeFinished&&(e.config?.tags==null||!e.config.tags.includes(ee))&&this.nodeFinished(String(e.name)),e.writes.length===0&&e.writes.push([Ci,null]),this.loop.putWrites(e.id,e.writes)}};async function nd(r,e,t,n,s,i={}){let o=e.config?.configurable?.[vt];if(!o)throw new Error(`BUG: No scratchpad found on task ${e.name}__${e.id}`);let a=o.callCounter;o.callCounter+=1;let u=new xa({func:t,name:n,input:s,cache:i.cache,retry:i.retry,callbacks:i.callbacks}),c=await this.scheduleTask(e,a,u);if(!c)return;let l=this.executingTasksMap[c.id];if(l!==void 0)return l;if(c.writes.length>0){let p=c.writes.filter(([f])=>f===Ot),h=c.writes.filter(([f])=>f===ge);if(p.length>0){if(p.length===1)return Promise.resolve(p[0][1]);throw new Error(`BUG: multiple returns found for task ${c.name}__${c.id}`)}if(h.length>0){if(h.length===1){let f=h[0][1],g=f instanceof Error?f:new Error(String(f));return Promise.reject(g)}throw new Error(`BUG: multiple errors found for task ${c.name}__${c.id}`)}return}else{let p=Cl(c,i.retry,{[Si]:nd.bind(this,r,c)});return this.executingTasksMap[c.id]=p,this.barrier.next(),p.then(({result:h,error:f})=>f?Promise.reject(f):h)}}var It=class extends Error{constructor(e){super(e),this.name="GraphValidationError"}};function sd({nodes:r,channels:e,inputChannels:t,outputChannels:n,streamChannels:s,interruptAfterNodes:i,interruptBeforeNodes:o}){if(!e)throw new It("Channels not provided");let a=new Set,u=new Set;for(let[c,l]of Object.entries(r)){if(c===V)throw new It(`"Node name ${V} is reserved"`);if(l.constructor===et)l.triggers.forEach(p=>a.add(p));else throw new It(`Invalid node type ${typeof l}, expected PregelNode`)}for(let c of a)if(!(c in e))throw new It(`Subscribed channel '${String(c)}' not in channels`);if(Array.isArray(t)){if(t.every(c=>!a.has(c)))throw new It(`None of the input channels ${t} are subscribed to by any node`)}else if(!a.has(t))throw new It(`Input channel ${String(t)} is not subscribed to by any node`);Array.isArray(n)?n.forEach(c=>u.add(c)):u.add(n),s&&!Array.isArray(s)?u.add(s):Array.isArray(s)&&s.forEach(c=>u.add(c));for(let c of u)if(!(c in e))throw new It(`Output channel '${String(c)}' not in channels`);if(i&&i!=="*"){for(let c of i)if(!(c in r))throw new It(`Node ${String(c)} not in nodes`)}if(o&&o!=="*"){for(let c of o)if(!(c in r))throw new It(`Node ${String(c)} not in nodes`)}}function Rl(r,e){if(Array.isArray(r)){for(let t of r)if(!(t in e))throw new Error(`Key ${String(t)} not found in channels`)}else if(!(r in e))throw new Error(`Key ${String(r)} not found in channels`)}var Ca=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"Topic"}),Object.defineProperty(this,"unique",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"accumulate",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"values",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.unique=e?.unique??this.unique,this.accumulate=e?.accumulate??this.accumulate,this.seen=new Set,this.values=[]}fromCheckpoint(e){let t=new r({unique:this.unique,accumulate:this.accumulate});return typeof e<"u"&&(t.seen=new Set(e[0]),t.values=e[1]),t}update(e){let t=!1;this.accumulate||(t=this.values.length>0,this.values=[]);let n=e.flat();if(n.length>0)if(this.unique)for(let s of n)this.seen.has(s)||(t=!0,this.seen.add(s),this.values.push(s));else t=!0,this.values.push(...n);return t}get(){if(this.values.length===0)throw new ne;return this.values}checkpoint(){return[[...this.seen],this.values]}isAvailable(){return this.values.length!==0}};var Ta=class{static subscribeTo(e,t){let{key:n,tags:s}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&n!==void 0)throw new Error("Can't specify a key when subscribing to multiple channels");let i;typeof e=="string"?n?i={[n]:e}:i=[e]:i=Object.fromEntries(e.map(a=>[a,a]));let o=Array.isArray(e)?e:[e];return new et({channels:i,triggers:o,tags:s})}static writeTo(e,t){let n=[];for(let s of e)n.push({channel:s,value:Je,skipNone:!1});for(let[s,i]of Object.entries(t??{}))Z.isRunnable(i)||typeof i=="function"?n.push({channel:s,value:Je,skipNone:!0,mapper:Ne(i)}):n.push({channel:s,value:i,skipNone:!1});return new ae(n)}},Nl=class extends Z{constructor(){super(...arguments),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph","pregel"]})}invoke(e,t){throw new Error("Not implemented")}withConfig(e){return super.withConfig(e)}stream(e,t){return super.stream(e,t)}},ms=class extends Nl{static lc_name(){return"LangGraph"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langgraph","pregel"]}),Object.defineProperty(this,"lg_is_pregel",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoValidate",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"streamMode",{enumerable:!0,configurable:!0,writable:!0,value:["values"]}),Object.defineProperty(this,"streamChannels",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptAfter",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"interruptBefore",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stepTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"checkpointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"retryPolicy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"triggerToNodes",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let{streamMode:t}=e;if(t!=null&&!Array.isArray(t)&&(t=[t]),this.nodes=e.nodes,this.channels=e.channels,De in this.channels&&"lc_graph_name"in this.channels[De]&&this.channels[De].lc_graph_name!=="Topic")throw new Error(`Channel '${De}' is reserved and cannot be used in the graph.`);this.channels[De]=new Ca({accumulate:!1}),this.autoValidate=e.autoValidate??this.autoValidate,this.streamMode=t??this.streamMode,this.inputChannels=e.inputChannels,this.outputChannels=e.outputChannels,this.streamChannels=e.streamChannels??this.streamChannels,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.stepTimeout=e.stepTimeout??this.stepTimeout,this.debug=e.debug??this.debug,this.checkpointer=e.checkpointer,this.retryPolicy=e.retryPolicy,this.config=e.config,this.store=e.store,this.cache=e.cache,this.name=e.name,this.autoValidate&&this.validate()}withConfig(e){let t=ze(this.config,e);return new this.constructor({...this,config:t})}validate(){sd({nodes:this.nodes,channels:this.channels,outputChannels:this.outputChannels,inputChannels:this.inputChannels,streamChannels:this.streamChannels,interruptAfterNodes:this.interruptAfter,interruptBeforeNodes:this.interruptBefore});for(let[e,t]of Object.entries(this.nodes))for(let n of t.triggers)this.triggerToNodes[n]??=[],this.triggerToNodes[n].push(e);return this}get streamChannelsList(){return Array.isArray(this.streamChannels)?this.streamChannels:this.streamChannels?[this.streamChannels]:Object.keys(this.channels)}get streamChannelsAsIs(){return this.streamChannels?this.streamChannels:Object.keys(this.channels)}async getGraphAsync(e){return this.getGraph(e)}*getSubgraphs(e,t){for(let[n,s]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(n))continue;let i=s.subgraphs?.length?s.subgraphs:[s.bound];for(let o of i){let a=Oa(o);if(a!==void 0){if(n===e){yield[n,a];return}if(e===void 0&&(yield[n,a]),t){let u=e;e!==void 0&&(u=e.slice(n.length+1));for(let[c,l]of a.getSubgraphs(u,t))yield[`${n}${ce}${c}`,l]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:n,applyPendingWrites:s=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let i=Ir(this.channels,t.checkpoint);if(t.pendingWrites?.length){let h=t.pendingWrites.filter(([f,g])=>f===Le).map(([f,g,b])=>[String(g),b]);h.length>0&&We(t.checkpoint,i,[{name:wt,writes:h,triggers:[]}],void 0,this.triggerToNodes)}let o=Object.values(Tr(t.checkpoint,t.pendingWrites,this.nodes,i,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),a=await Pt(this.getSubgraphsAsync()),u=t.config.configurable?.checkpoint_ns??"",c={};for(let h of o){let f=a.find(([b])=>b===h.name);if(!f)continue;let g=`${String(h.name)}${Ke}${h.id}`;if(u&&(g=`${u}${ce}${g}`),n===void 0){let b={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:g}};c[h.id]=b}else{let b={configurable:{[de]:n,thread_id:t.config.configurable?.thread_id,checkpoint_ns:g}},_=f[1];c[h.id]=await _.getState(b,{subgraphs:!0})}}if(s&&t.pendingWrites?.length){let h=Object.fromEntries(o.map(g=>[g.id,g]));for(let[g,b,_]of t.pendingWrites)[ge,V,qn].includes(b)||g in h&&h[g].writes.push([String(b),_]);let f=o.filter(g=>g.writes.length>0);f.length>0&&We(t.checkpoint,i,f,void 0,this.triggerToNodes)}let l=t?.metadata;l&&t?.config?.configurable?.thread_id&&(l={...l,thread_id:t.config.configurable.thread_id});let p=o.filter(h=>h.writes.length===0).map(h=>h.name);return{values:Et(i,this.streamChannelsAsIs),next:p,tasks:Il(o,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:l,config:Cr(t.config,t.metadata),createdAt:t.checkpoint.ts,parentConfig:t.parentConfig}}async getState(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Vn("No checkpointer set");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let u=ca(s);for await(let[c,l]of this.getSubgraphsAsync(u,!0))if(c===u)return await l.getState(ln(e,{[de]:n}),{subgraphs:t?.subgraphs});throw new Error(`Subgraph with namespace "${u}" not found.`)}let i=ze(this.config,e),o=await n.getTuple(e);return await this._prepareStateSnapshot({config:i,saved:o,subgraphCheckpointer:t?.subgraphs?n:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Vn("No checkpointer set");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let o=ca(s);for await(let[a,u]of this.getSubgraphsAsync(o,!0))if(a===o){yield*u.getStateHistory(ln(e,{[de]:n}),t);return}throw new Error(`Subgraph with namespace "${o}" not found.`)}let i=ze(this.config,e,{configurable:{checkpoint_ns:s}});for await(let o of n.list(i,t))yield this._prepareStateSnapshot({config:o.config,saved:o})}async bulkUpdateState(e,t){let n=e.configurable?.[de]??this.checkpointer;if(!n)throw new Vn("No checkpointer set");if(t.length===0)throw new Error("No supersteps provided");if(t.some(a=>a.updates.length===0))throw new Error("No updates provided");let s=e.configurable?.checkpoint_ns??"";if(s!==""&&e.configurable?.[de]===void 0){let a=ca(s);for await(let[,u]of this.getSubgraphsAsync(a,!0))return await u.bulkUpdateState(ln(e,{[de]:n}),t);throw new Error(`Subgraph "${a}" not found`)}let i=async(a,u)=>{let c=this.config?ze(this.config,a):a,l=await n.getTuple(c),p=l!==void 0?Wt(l.checkpoint):Ai(),h={...l?.checkpoint.channel_versions},f=l?.metadata?.step??-1,g=ln(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),b=c.metadata??{};l?.config.configurable&&(g=ln(c,l.config.configurable),b={...l.metadata,...b});let{values:_,asNode:I}=u[0];if(_==null&&I===void 0){if(u.length>1)throw new X("Cannot create empty checkpoint with multiple updates");let y=await n.put(g,_t(p,void 0,f),{source:"update",step:f+1,parents:l?.metadata?.parents??{}},{});return Cr(y,l?l.metadata:void 0)}let v=Ir(this.channels,p);if(_===null&&I===K){if(u.length>1)throw new X("Cannot apply multiple updates when clearing state");if(l){let T=Tr(p,l.pendingWrites||[],this.nodes,v,l.config,!0,{step:(l.metadata?.step??-1)+1,checkpointer:n,store:this.store}),$=(l.pendingWrites||[]).filter(P=>P[0]===Le).map(P=>P.slice(1));$.length>0&&We(p,v,[{name:wt,writes:$,triggers:[]}],n.getNextVersion.bind(n),this.triggerToNodes);for(let[P,J,ie]of l.pendingWrites||[])[ge,V,qn].includes(J)||P in T&&T[P].writes.push([J,ie]);We(p,v,Object.values(T),n.getNextVersion.bind(n),this.triggerToNodes)}let y=await n.put(g,_t(p,v,f),{...b,source:"update",step:f+1,parents:l?.metadata?.parents??{}},fs(h,p.channel_versions));return Cr(y,l?l.metadata:void 0)}if(I===Eh){if(u.length>1)throw new X("Cannot copy checkpoint with multiple updates");if(l==null)throw new X("Cannot copy a non-existent checkpoint");let y=P=>!Array.isArray(P)||P.length===0?!1:P.every(J=>Array.isArray(J)&&J.length===2),T=_t(p,void 0,f),$=await n.put(l.parentConfig??ln(l.config,{checkpoint_id:void 0}),T,{source:"fork",step:f+1,parents:l.metadata?.parents??{}},{});if(y(_)){let P=Tr(T,l.pendingWrites,this.nodes,v,$,!1,{step:f+2}),J=Object.values(P).reduce((le,{name:Nt,id:Q})=>(le[Nt]??=[],le[Nt].push({id:Q}),le),{}),ie=_.reduce((le,Nt)=>{let[Q,Gr]=Nt;le[Gr]??=[];let ni=le[Gr].length,si=J[Gr]?.[ni]?.id;return le[Gr].push({values:Q,asNode:Gr,taskId:si}),le},{});return i(Cr($,l.metadata),Object.values(ie).flat())}return Cr($,l.metadata)}if(I===wt){if(u.length>1)throw new X("Cannot apply multiple updates when updating as input");let y=await Pt(_a(this.inputChannels,_));if(y.length===0)throw new X(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);We(p,v,[{name:wt,writes:y,triggers:[]}],n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let T=l?.metadata?.step!=null?l.metadata.step+1:-1,$=await n.put(g,_t(p,v,T),{source:"input",step:T,parents:l?.metadata?.parents??{}},fs(h,p.channel_versions));return await n.putWrites($,y,Pr(wt,p.id)),Cr($,l?l.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&l?.pendingWrites!==void 0&&l.pendingWrites.length>0){let y=Tr(p,l.pendingWrites,this.nodes,v,l.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(l.metadata?.step??-1)+1}),T=(l.pendingWrites??[]).filter(P=>P[0]===Le).map(P=>P.slice(1));T.length>0&&We(l.checkpoint,v,[{name:wt,writes:T,triggers:[]}],void 0,this.triggerToNodes);for(let[P,J,ie]of l.pendingWrites)[ge,V,qn].includes(J)||y[P]===void 0||y[P].writes.push([J,ie]);let $=Object.values(y).filter(P=>P.writes.length>0);$.length>0&&We(p,v,$,void 0,this.triggerToNodes)}let S=Object.values(p.versions_seen).map(y=>Object.values(y)).flat().find(y=>!!y),C=[];if(u.length===1){let{values:y,asNode:T,taskId:$}=u[0];if(T===void 0&&Object.keys(this.nodes).length===1)[T]=Object.keys(this.nodes);else if(T===void 0&&S===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(T=this.inputChannels);else if(T===void 0){let P=Object.entries(p.versions_seen).map(([J,ie])=>Object.values(ie).map(le=>[le,J])).flat().filter(([J,ie])=>ie!==V).sort(([J],[ie])=>pl(J,ie));P&&(P.length===1?T=P[0][1]:P[P.length-1][0]!==P[P.length-2][0]&&(T=P[P.length-1][1]))}if(T===void 0)throw new X('Ambiguous update, specify "asNode"');C.push({values:y,asNode:T,taskId:$})}else for(let{asNode:y,values:T,taskId:$}of u){if(y==null)throw new X('"asNode" is required when applying multiple updates');C.push({values:T,asNode:y,taskId:$})}let j=[];for(let{asNode:y,values:T,taskId:$}of C){if(this.nodes[y]===void 0)throw new X(`Node "${y.toString()}" does not exist`);let P=this.nodes[y].getWriters();if(!P.length)throw new X(`No writers found for node "${y.toString()}"`);j.push({name:y,input:T,proc:P.length>1?Qe.from(P,{omitSequenceTags:!0}):P[0],writes:[],triggers:[V],id:$??Pr(V,p.id),writers:[]})}for(let y of j)await y.proc.invoke(y.input,he({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[lr]:T=>y.writes.push(...T),[xt]:(T,$=!1)=>Ri(p,v,y,T,$)}}));for(let y of j){let T=y.writes.filter($=>$[0]!==$e);l!==void 0&&T.length>0&&await n.putWrites(g,T,y.id)}We(p,v,j,n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let F=fs(h,p.channel_versions),D=await n.put(g,_t(p,v,f+1),{source:"update",step:f+1,parents:l?.metadata?.parents??{}},F);for(let y of j){let T=y.writes.filter($=>$[0]===$e);T.length>0&&await n.putWrites(D,T,y.id)}return Cr(D,l?l.metadata:void 0)},o=e;for(let{updates:a}of t)o=await i(o,a);return o}async updateState(e,t,n){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:n}]}])}_defaults(e){let{debug:t,streamMode:n,inputKeys:s,outputKeys:i,interruptAfter:o,interruptBefore:a,...u}=e,c=!0,l=t!==void 0?t:this.debug,p=i;p===void 0?p=this.streamChannelsAsIs:Rl(p,this.channels);let h=s;h===void 0?h=this.inputChannels:Rl(h,this.channels);let f=a??this.interruptBefore??[],g=o??this.interruptAfter??[],b;n!==void 0?(b=Array.isArray(n)?n:[n],c=typeof n=="string"):(e.configurable?.[an]!==void 0?b=["values"]:b=this.streamMode,c=!0);let _;if(this.checkpointer===!1)_=void 0;else if(e!==void 0&&e.configurable?.[de]!==void 0)_=e.configurable[de];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");_=this.checkpointer}let I=e.store??this.store,v=e.cache??this.cache;if(e.durability!=null&&e.checkpointDuring!=null)throw new Error("Cannot use both `durability` and `checkpointDuring` at the same time.");let S=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),C=e.durability??S??e?.configurable?.[ml]??"async";return[l,b,h,p,u,f,g,_,I,c,v,C]}async stream(e,t){let n=new AbortController,s={recursionLimit:this.config?.recursionLimit,...t,signal:hs(t?.signal,n.signal).signal};return new $i(await super.stream(e,s),n)}streamEvents(e,t,n){let s=new AbortController,i={recursionLimit:this.config?.recursionLimit,...t,callbacks:Gh(this.config?.callbacks,t?.callbacks),signal:hs(t?.signal,s.signal).signal};return new $i(super.streamEvents(e,i,n),s)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let n=t?.subgraphs,s=ua(this.config,t);if(s.recursionLimit===void 0||s.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&s.configurable===void 0)throw new Error('Checkpointer requires one or more of the following "configurable" keys: "thread_id", "checkpoint_ns", "checkpoint_id"');let i=await this._validateInput(e),{runId:o,...a}=s,[u,c,,l,p,h,f,g,b,_,I,v]=this._defaults(a);typeof p.context<"u"?p.context=await this._validateContext(p.context):p.configurable=await this._validateContext(p.configurable);let S=new ds({modes:new Set(c)});if(this.checkpointer===!0){p.configurable??={};let P=p.configurable[At]??"";p.configurable[At]=P.split(ce).map(J=>J.split(Ke)[0]).join(ce)}if(c.includes("messages")){let P=new ka(ie=>S.push(ie)),{callbacks:J}=p;if(J===void 0)p.callbacks=[P];else if(Array.isArray(J))p.callbacks=J.concat(P);else{let ie=J.copy();ie.addHandler(P,!0),p.callbacks=ie}}c.includes("custom")&&(p.writer=P=>{let J=Ch()?.configurable?.[At]?.split(ce).slice(0,-1);S.push([J??[],"custom",P])});let j=await(await xr(p))?.handleChainStart(this.toJSON(),Vh(e,"input"),o,void 0,void 0,void 0,p?.runName??this.getName()),F=Ii(this.channels),D,y,$=(async()=>{try{D=await Ia.initialize({input:i,config:p,checkpointer:g,nodes:this.nodes,channelSpecs:F,outputKeys:l,streamKeys:this.streamChannelsAsIs,store:b,cache:I,stream:S,interruptAfter:f,interruptBefore:h,manager:j,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:v});let P=new Sa({loop:D,nodeFinished:p.configurable?.[Ih]});t?.subgraphs&&(D.config.configurable={...D.config.configurable,[os]:D.stream}),await this._runLoop({loop:D,runner:P,debug:u,config:p}),v==="sync"&&await Promise.all(D?.checkpointerPromises??[])}catch(P){y=P}finally{try{D&&(await D.store?.stop(),await D.cache?.stop()),await Promise.all(D?.checkpointerPromises??[])}catch(P){y=y??P}y?S.error(y):S.close()}})();try{for await(let P of S){if(P===void 0)throw new Error("Data structure error.");let[J,ie,le]=P;c.includes(ie)&&(n&&!_?yield[J,ie,le]:_?n?yield[J,le]:yield le:yield[ie,le])}}catch(P){throw await j?.handleChainError(y),P}finally{await $}await j?.handleChainEnd(D?.output??{},o,void 0,void 0,void 0)}async invoke(e,t){let n=t?.streamMode??"values",s={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:n},i=[],o=await this.stream(e,s),a=[],u;for await(let c of o)n==="values"?yl(c)?a.push(c[V]):u=c:i.push(c);if(n==="values"){if(a.length>0){let c=a.flat(1);if(u==null)return{[V]:c};if(typeof u=="object")return{...u,[V]:c}}return u}return i}async _runLoop(e){let{loop:t,runner:n,debug:s,config:i}=e,o;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:a}of await t._matchCachedWrites())t._outputWrites(a.id,a.writes,!0);s&&td(t.checkpointMetadata.step,t.channels,this.streamChannelsList),s&&Pa(t.step,Object.values(t.tasks)),await n.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(a,u)=>{s&&rd(a,u,this.streamChannelsList)},maxConcurrency:i.maxConcurrency,signal:i.signal})}if(t.status==="out_of_steps")throw new Io([`Recursion limit of ${i.recursionLimit} reached`,"without hitting a stop condition. You can increase the",'limit by setting the "recursionLimit" config key.'].join(" "),{lc_error_code:"GRAPH_RECURSION_LIMIT"})}catch(a){if(o=a,!await t.finishAndHandleError(o))throw a}finally{o===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}};var ft=class r extends je{constructor(e=!0){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"EphemeralValue"}),Object.defineProperty(this,"guard",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"value",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.guard=e}fromCheckpoint(e){let t=new r(this.guard);return typeof e<"u"&&(t.value=[e]),t}update(e){if(e.length===0){let t=this.value.length>0;return this.value=[],t}if(e.length!==1&&this.guard)throw new X("EphemeralValue can only receive one value per step.");return this.value=[e[e.length-1]],!0}get(){if(this.value.length===0)throw new ne;return this.value[0]}checkpoint(){if(this.value.length===0)throw new ne;return this.value[0]}isAvailable(){return this.value.length!==0}};var Li=class{constructor(e){Object.defineProperty(this,"path",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ends",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Z.isRunnable(e.path)?this.path=e.path:this.path=Ne(e.path).withConfig({runName:"Branch"}),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,n)=>(t[n]=n,t),{}):e.pathMap}run(e,t){return ae.registerWriter(new Ie({name:"<branch_run>",trace:!1,func:async(n,s)=>{try{return await this._route(n,s,e,t)}catch(i){throw i.name===pi.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
89
+ NodeInterrupt should only be thrown inside a node, not in edge conditions.`),i}}}))}async _route(e,t,n,s){let i=await this.path.invoke(s?s(t):e,t);Array.isArray(i)||(i=[i]);let o;if(this.ends?o=i.map(u=>Ee(u)?u:this.ends[u]):o=i,o.some(u=>!u))throw new Error("Branch condition returned unknown or null destination");if(o.filter(Ee).some(u=>u.node===K))throw new X("Cannot send a packet to the END node");return await n(o,t)??e}},gs=class{constructor(){Object.defineProperty(this,"nodes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"edges",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"branches",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"entryPoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"compiled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this.nodes={},this.edges=new Set,this.branches={}}warnIfCompiled(e){this.compiled&&console.warn(e)}get allEdges(){return this.edges}addNode(...e){function t(s){return s.length>=1&&typeof s[0]!="string"}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]):[[e[0],e[1],e[2]]];if(n.length===0)throw new Error("No nodes provided in `addNode`");for(let[s,i,o]of n){for(let u of[ce,Ke])if(s.includes(u))throw new Error(`"${u}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),s in this.nodes)throw new Error(`Node \`${s}\` already present.`);if(s===K)throw new Error(`Node \`${s}\` is reserved.`);let a=Ne(i);this.nodes[s]={runnable:a,metadata:o?.metadata,subgraphs:ji(a)?[a]:o?.subgraphs,ends:o?.ends}}return this}addEdge(e,t){if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),e===K)throw new Error("END cannot be a start node");if(t===q)throw new Error("START cannot be an end node");if(Array.from(this.edges).some(([n])=>n===e)&&!("channels"in this))throw new Error(`Already found path for ${e}. For multiple edges, use StateGraph.`);return this.edges.add([e,t]),this}addConditionalEdges(e,t,n){let s=typeof e=="object"?e:{source:e,path:t,pathMap:n};if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),!Z.isRunnable(s.path)){let o=Array.isArray(s.pathMap)?s.pathMap.join(","):Object.keys(s.pathMap??{}).join(",");s.path=Ne(s.path).withConfig({runName:`Branch<${s.source}${o!==""?`,${o}`:""}>`.slice(0,63)})}let i=s.path.getName()==="RunnableLambda"?"condition":s.path.getName();if(this.branches[s.source]&&this.branches[s.source][i])throw new Error(`Condition \`${i}\` already present for node \`${e}\``);return this.branches[s.source]??={},this.branches[s.source][i]=new Li(s),this}setEntryPoint(e){return this.warnIfCompiled("Setting the entry point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(q,e)}setFinishPoint(e){return this.warnIfCompiled("Setting a finish point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(e,K)}compile({checkpointer:e,interruptBefore:t,interruptAfter:n,name:s}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(n)?n:[]]);let i=new Fi({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[q]:new ft,[K]:new ft},inputChannels:q,outputChannels:K,streamChannels:[],streamMode:"values",name:s});for(let[o,a]of Object.entries(this.nodes))i.attachNode(o,a);for(let[o,a]of this.edges)i.attachEdge(o,a);for(let[o,a]of Object.entries(this.branches))for(let[u,c]of Object.entries(a))i.attachBranch(o,u,c);return i.validate()}validate(e){let t=new Set([...this.allEdges].map(([s,i])=>s));for(let[s]of Object.entries(this.branches))t.add(s);for(let s of t)if(s!==q&&!(s in this.nodes))throw new Error(`Found edge starting at unknown node \`${s}\``);let n=new Set([...this.allEdges].map(([s,i])=>i));for(let[s,i]of Object.entries(this.branches))for(let o of Object.values(i))if(o.ends!=null)for(let a of Object.values(o.ends))n.add(a);else{n.add(K);for(let a of Object.keys(this.nodes))a!==s&&n.add(a)}for(let s of Object.values(this.nodes))for(let i of s.ends??[])n.add(i);for(let s of Object.keys(this.nodes))if(!n.has(s))throw new ko([`Node \`${s}\` is not reachable.`,"","If you are returning Command objects from your node,",'make sure you are passing names of potential destination nodes as an "ends" array','into ".addNode(..., { ends: ["node1", "node2"] })".'].join(`
90
+ `),{lc_error_code:"UNREACHABLE_NODE"});for(let s of n)if(s!==K&&!(s in this.nodes))throw new Error(`Found edge ending at unknown node \`${s}\``);if(e){for(let s of e)if(!(s in this.nodes))throw new Error(`Interrupt node \`${s}\` is not present`)}this.compiled=!0}},Fi=class extends ms{constructor({builder:e,...t}){super(t),Object.defineProperty(this,"builder",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.builder=e}attachNode(e,t){this.channels[e]=new ft,this.nodes[e]=new et({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new ae([{channel:e,value:Je}],[ee])),this.streamChannels.push(e)}attachEdge(e,t){if(t===K){if(e===q)throw new Error("Cannot have an edge from START to END");this.nodes[e].writers.push(new ae([{channel:K,value:Je}],[ee]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,n){e===q&&!this.nodes[q]&&(this.nodes[q]=Ta.subscribeTo(q,{tags:[ee]})),this.nodes[e].pipe(n.run(i=>{let o=i.map(a=>Ee(a)?a:{channel:a===K?K:`branch:${e}:${t}:${a}`,value:Je});return new ae(o,[ee])}));let s=n.ends?Object.values(n.ends):Object.keys(this.nodes);for(let i of s)if(i!==K){let o=`branch:${e}:${t}:${i}`;this.channels[o]=new ft,this.nodes[i].triggers.push(o),this.nodes[i].channels.push(o)}}async getGraphAsync(e){let t=e?.xray,n=new $u,s={[q]:n.addNode({schema:oe.any()},q)},i={},o={};t&&(o=Object.fromEntries((await Pt(this.getSubgraphsAsync())).filter(c=>id(c[1]))));function a(c,l,p,h=!1){if(l===K&&i[K]===void 0&&(i[K]=n.addNode({schema:oe.any()},K)),s[c]!==void 0){if(i[l]===void 0)throw new Error(`End node ${l} not found!`);return n.addEdge(s[c],i[l],p!==l?p:void 0,h)}}for(let[c,l]of Object.entries(this.builder.nodes)){let p=Fe(c),h=l.runnable,f=l.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let g=typeof t=="number"?t-1:t,b=o[c]!==void 0?await o[c].getGraphAsync({...e,xray:g}):h.getGraph(e);if(b.trimFirstNode(),b.trimLastNode(),Object.keys(b.nodes).length>1){let v=function(C){return C?C.lc_runnable:!1},S=function(C,j){if(C!==void 0&&!xu(C))return C;if(v(j))try{let F=j.getName();return F=F.startsWith("Runnable")?F.slice(8):F,F}catch{return j.getName()}else return j.name??"UnknownSchema"},[_,I]=n.extend(b,p);if(_===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);I!==void 0&&(s[p]={name:S(I.id,I.data),...I}),i[p]={name:S(_.id,_.data),..._}}else{let _=n.addNode(h,p,f);s[p]=_,i[p]=_}}else{let g=n.addNode(h,p,f);s[p]=g,i[p]=g}}let u=[...this.builder.allEdges].sort(([c],[l])=>c<l?-1:l>c?1:0);for(let[c,l]of u)a(Fe(c),Fe(l));for(let[c,l]of Object.entries(this.builder.branches)){let p={...Object.fromEntries(Object.keys(this.builder.nodes).filter(h=>h!==c).map(h=>[Fe(h),Fe(h)])),[K]:K};for(let h of Object.values(l)){let f;h.ends!==void 0?f=h.ends:f=p;for(let[g,b]of Object.entries(f))a(Fe(c),Fe(b),g,!0)}}for(let[c,l]of Object.entries(this.builder.nodes))if(l.ends!==void 0)for(let p of l.ends)a(Fe(c),Fe(p),void 0,!0);return n}getGraph(e){let t=e?.xray,n=new $u,s={[q]:n.addNode({schema:oe.any()},q)},i={},o={};t&&(o=Object.fromEntries(cn(this.getSubgraphs()).filter(c=>id(c[1]))));function a(c,l,p,h=!1){return l===K&&i[K]===void 0&&(i[K]=n.addNode({schema:oe.any()},K)),n.addEdge(s[c],i[l],p!==l?p:void 0,h)}for(let[c,l]of Object.entries(this.builder.nodes)){let p=Fe(c),h=l.runnable,f=l.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let g=typeof t=="number"?t-1:t,b=o[c]!==void 0?o[c].getGraph({...e,xray:g}):h.getGraph(e);if(b.trimFirstNode(),b.trimLastNode(),Object.keys(b.nodes).length>1){let v=function(C){return C?C.lc_runnable:!1},S=function(C,j){if(C!==void 0&&!xu(C))return C;if(v(j))try{let F=j.getName();return F=F.startsWith("Runnable")?F.slice(8):F,F}catch{return j.getName()}else return j.name??"UnknownSchema"},[_,I]=n.extend(b,p);if(_===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);I!==void 0&&(s[p]={name:S(I.id,I.data),...I}),i[p]={name:S(_.id,_.data),..._}}else{let _=n.addNode(h,p,f);s[p]=_,i[p]=_}}else{let g=n.addNode(h,p,f);s[p]=g,i[p]=g}}let u=[...this.builder.allEdges].sort(([c],[l])=>c<l?-1:l>c?1:0);for(let[c,l]of u)a(Fe(c),Fe(l));for(let[c,l]of Object.entries(this.builder.branches)){let p={...Object.fromEntries(Object.keys(this.builder.nodes).filter(h=>h!==c).map(h=>[Fe(h),Fe(h)])),[K]:K};for(let h of Object.values(l)){let f;h.ends!==void 0?f=h.ends:f=p;for(let[g,b]of Object.entries(f))a(Fe(c),Fe(b),g,!0)}}return n}};function id(r){return typeof r.attachNode=="function"&&typeof r.attachEdge=="function"}function Fe(r){return r==="subgraph"?`"${r}"`:r}var dn=(r,e)=>r.size===e.size&&[...r].every(t=>e.has(t)),Ra=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"NamedBarrierValue"}),Object.defineProperty(this,"names",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.names=e,this.seen=new Set}fromCheckpoint(e){let t=new r(this.names);return typeof e<"u"&&(t.seen=new Set(e)),t}update(e){let t=!1;for(let n of e)if(this.names.has(n))this.seen.has(n)||(this.seen.add(n),t=!0);else throw new X(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!dn(this.names,this.seen))throw new ne}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&dn(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&dn(this.names,this.seen)}},Na=class r extends je{constructor(e){super(),Object.defineProperty(this,"lc_graph_name",{enumerable:!0,configurable:!0,writable:!0,value:"NamedBarrierValueAfterFinish"}),Object.defineProperty(this,"names",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"seen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"finished",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.names=e,this.seen=new Set,this.finished=!1}fromCheckpoint(e){let t=new r(this.names);if(typeof e<"u"){let[n,s]=e;t.seen=new Set(n),t.finished=s}return t}update(e){let t=!1;for(let n of e)if(this.names.has(n)&&!this.seen.has(n))this.seen.add(n),t=!0;else if(!this.names.has(n))throw new X(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return t}get(){if(!this.finished||!dn(this.names,this.seen))throw new ne}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&dn(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&dn(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&dn(this.names,this.seen)}};var $y="lg:",jl=class{constructor(){Object.defineProperty(this,"_map",{enumerable:!0,configurable:!0,writable:!0,value:new WeakMap}),Object.defineProperty(this,"_extensionCache",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}get(e){return this._map.get(e)}extend(e,t){let n=this.get(e);this._map.set(e,t(n))}remove(e){return this._map.delete(e),this}has(e){return this._map.has(e)}getChannelsForSchema(e){let t={},n=Ao(e);for(let[s,i]of Object.entries(n)){let o=this.get(i);o?.reducer?t[s]=new cr(o.reducer.fn,o.default):t[s]=new Ht}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let n=Object.entries(t).filter(([,o])=>o===!0).sort(([o],[a])=>o.localeCompare(a)).map(([o,a])=>`${o}:${a}`).join("|"),s=this._extensionCache.get(n)??new WeakMap;if(s.has(e))return s.get(e);let i=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let o=Object.entries(Ao(e)).map(([a,u])=>{let c=this.get(u),l=t.withReducerSchema?c?.reducer?.schema??u:u;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let p=$t(l)??$t(u),h=JSON.stringify({...c.jsonSchemaExtra,description:p});l=l.describe(`${$y}${h}`)}return[a,l]});i=Mu(e,Object.fromEntries(o)),ai(i)&&(i._def.unknownKeys="strip")}return t.asPartial&&(i=li(i)),s.set(e,i),this._extensionCache.set(n,s),i}},Ui=new jl;function od(r,e){if(e.reducer&&!e.default){let t=Du(r);t!=null&&(e.default=t)}if(e.reducer){let t=Object.assign(r,{lg_reducer_schema:e.reducer?.schema??r});return Ui.extend(t,()=>e),t}else return Ui.extend(r,()=>e),r}var hr="__root__",Ml=Symbol.for("langgraph.state.partial"),mn=class extends gs{constructor(e,t){if(super(),Object.defineProperty(this,"channels",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"waitingEdges",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_schemaDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_schemaRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_inputDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_inputRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_outputDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_outputRuntimeDefinition",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_schemaDefinitions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_metaRegistry",{enumerable:!0,configurable:!0,writable:!0,value:Ui}),Object.defineProperty(this,"_configSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_configRuntimeSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Ky(e)){let n=this._metaRegistry.getChannelsForSchema(e.state),s=e.input!=null?this._metaRegistry.getChannelsForSchema(e.input):n,i=e.output!=null?this._metaRegistry.getChannelsForSchema(e.output):n;this._schemaDefinition=n,this._schemaRuntimeDefinition=e.state,this._inputDefinition=s,this._inputRuntimeDefinition=e.input??Ml,this._outputDefinition=i,this._outputRuntimeDefinition=e.output??e.state}else if(Lt(e)){let n=this._metaRegistry.getChannelsForSchema(e);this._schemaDefinition=n,this._schemaRuntimeDefinition=e,this._inputDefinition=n,this._inputRuntimeDefinition=Ml,this._outputDefinition=n,this._outputRuntimeDefinition=e}else if(By(e))this._schemaDefinition=e.input.spec,this._inputDefinition=e.input.spec,this._outputDefinition=e.output.spec;else if(zy(e))this._schemaDefinition=e.stateSchema.spec,this._inputDefinition=e.input?.spec??this._schemaDefinition,this._outputDefinition=e.output?.spec??this._schemaDefinition;else if(Fy(e)||ad(e)){let n=ad(e)?e.spec:e;this._schemaDefinition=n}else if(Uy(e)){let n=Ly(e.channels);this._schemaDefinition=n}else throw new Error("Invalid StateGraph input. Make sure to pass a valid Annotation.Root or Zod schema.");this._inputDefinition??=this._schemaDefinition,this._outputDefinition??=this._schemaDefinition,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),Lt(t)&&(this._configRuntimeSchema=t)}get allEdges(){return new Set([...this.edges,...Array.from(this.waitingEdges).flatMap(([e,t])=>e.map(n=>[n,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,n]of Object.entries(e)){let s;if(typeof n=="function"?s=n():s=n,this.channels[t]!==void 0){if(this.channels[t]!==s&&s.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=s}}}addNode(...e){function t(s){return s.length>=1&&typeof s[0]!="string"}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([s,i])=>[s,i,i[Symbol.for("langgraph.state.node")]??void 0]):[[e[0],e[1],e[2]]];if(n.length===0)throw new Error("No nodes provided in `addNode`");for(let[s,i,o]of n){if(s in this.channels)throw new Error(`${s} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let p of[ce,Ke])if(s.includes(p))throw new Error(`"${p}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),s in this.nodes)throw new Error(`Node \`${s}\` already present.`);if(s===K||s===q)throw new Error(`Node \`${s}\` is reserved.`);let a=this._schemaDefinition;o?.input!==void 0&&(Lt(o.input)?a=this._metaRegistry.getChannelsForSchema(o.input):o.input.spec!==void 0&&(a=o.input.spec)),a!==void 0&&this._addSchema(a);let u;Z.isRunnable(i)?u=i:typeof i=="function"?u=new Ie({func:i,name:s,trace:!1}):u=Ne(i);let c=o?.cachePolicy;typeof c=="boolean"&&(c=c?{}:void 0);let l={runnable:u,retryPolicy:o?.retryPolicy,cachePolicy:c,metadata:o?.metadata,input:a??this._schemaDefinition,subgraphs:ji(u)?[u]:o?.subgraphs,ends:o?.ends,defer:o?.defer};this.nodes[s]=l}return this}addEdge(e,t){if(typeof e=="string")return super.addEdge(e,t);this.compiled&&console.warn("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.");for(let n of e){if(n===K)throw new Error("END cannot be a start node");if(!Object.keys(this.nodes).some(s=>s===n))throw new Error(`Need to add a node named "${n}" first`)}if(t===K)throw new Error("END cannot be an end node");if(!Object.keys(this.nodes).some(n=>n===t))throw new Error(`Need to add a node named "${t}" first`);return this.waitingEdges.add([e,t]),this}addSequence(e){let t=Array.isArray(e)?e:Object.entries(e).map(([s,i])=>[s,i,i[Symbol.for("langgraph.state.node")]??void 0]);if(t.length===0)throw new Error("Sequence requires at least one node.");let n;for(let[s,i,o]of t){if(s in this.nodes)throw new Error(`Node names must be unique: node with the name "${s}" already exists.`);let a=s;this.addNode(a,i,o),n!=null&&this.addEdge(n,a),n=a}return this}compile({checkpointer:e,store:t,cache:n,interruptBefore:s,interruptAfter:i,name:o,description:a}={}){this.validate([...Array.isArray(s)?s:[],...Array.isArray(i)?i:[]]);let u=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),c=u.length===1&&u[0]===hr?hr:u,l=Object.keys(this.channels),p=l.length===1&&l[0]===hr?hr:l,h=new zi({builder:this,checkpointer:e,interruptAfter:i,interruptBefore:s,autoValidate:!1,nodes:{},channels:{...this.channels,[q]:new ft},inputChannels:q,outputChannels:c,streamChannels:p,streamMode:"updates",store:t,cache:n,name:o,description:a});h.attachNode(q);for(let[f,g]of Object.entries(this.nodes))h.attachNode(f,g);h.attachBranch(q,bl,ud(),{withReader:!1});for(let[f]of Object.entries(this.nodes))h.attachBranch(f,bl,ud(),{withReader:!1});for(let[f,g]of this.edges)h.attachEdge(f,g);for(let[f,g]of this.waitingEdges)h.attachEdge(f,g);for(let[f,g]of Object.entries(this.branches))for(let[b,_]of Object.entries(g))h.attachBranch(f,b,_);return h.validate()}};function Ly(r){let e={};for(let[t,n]of Object.entries(r))if(t===hr)e[t]=sa(n);else{let s=t;e[t]=sa(n)}return e}var zi=class extends Fi{constructor({description:e,...t}){super(t),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metaRegistry",{enumerable:!0,configurable:!0,writable:!0,value:Ui}),this.description=e}attachNode(e,t){let n;e===q?n=Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([u])=>u):n=Object.keys(this.builder.channels);function s(u){if(Te(u))return u.graph===Ce.PARENT?null:u._updateAsTuples();if(Array.isArray(u)&&u.length>0&&u.some(c=>Te(c))){let c=[];for(let l of u)if(Te(l)){if(l.graph===Ce.PARENT)continue;c.push(...l._updateAsTuples())}else c.push([hr,l]);return c}else if(u!=null)return[[hr,u]];return null}let i=e;function o(u){if(u){if(Te(u))return u.graph===Ce.PARENT?null:u._updateAsTuples().filter(([c])=>n.includes(c));if(Array.isArray(u)&&u.length>0&&u.some(Te)){let c=[];for(let l of u)if(Te(l)){if(l.graph===Ce.PARENT)continue;c.push(...l._updateAsTuples().filter(([p])=>n.includes(p)))}else{let p=o(l);p&&c.push(...p??[])}return c}else{if(typeof u=="object"&&!Array.isArray(u))return Object.entries(u).filter(([c])=>n.includes(c));{let c=Array.isArray(u)?"array":typeof u;throw new X(`Expected node "${i.toString()}" to return an object or an array containing at least one Command object, received ${c}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let a=[{value:Je,mapper:new Ie({func:n.length&&n[0]===hr?s:o,trace:!1,recurse:!1})}];if(e===q)this.nodes[e]=new et({tags:[ee],triggers:[q],channels:[q],writers:[new ae(a,[ee])]});else{let u=t?.input??this.builder._schemaDefinition,c=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(u)).map(h=>[h,h])),l=Object.keys(c).length===1&&hr in c,p=`branch:to:${e}`;this.channels[p]=t?.defer?new ra:new ft(!1),this.nodes[e]=new et({triggers:[p],channels:l?Object.keys(c):c,writers:[new ae(a,[ee])],mapper:l?void 0:h=>Object.fromEntries(Object.entries(h).filter(([f])=>f in c)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:t?.cachePolicy,subgraphs:t?.subgraphs,ends:t?.ends})}}attachEdge(e,t){if(t!==K){if(typeof e=="string")this.nodes[e].writers.push(new ae([{channel:`branch:to:${t}`,value:null}],[ee]));else if(Array.isArray(e)){let n=`join:${e.join("+")}:${t}`;this.channels[n]=this.builder.nodes[t].defer?new Na(new Set(e)):new Ra(new Set(e)),this.nodes[t].triggers.push(n);for(let s of e)this.nodes[s].writers.push(new ae([{channel:n,value:s}],[ee]))}}}attachBranch(e,t,n,s={withReader:!0}){let i=async(o,a)=>{let u=o.filter(l=>l!==K);if(!u.length)return;let c=u.map(l=>Ee(l)?l:{channel:l===K?l:`branch:to:${l}`,value:e});await ae.doWrite({...a,tags:(a.tags??[]).concat([ee])},c)};this.nodes[e].writers.push(n.run(i,s.withReader?o=>fa.doRead(o,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=(()=>{let n=this.builder._inputRuntimeDefinition,s=this.builder._schemaRuntimeDefinition,i=o=>{if(o!=null)return this._metaRegistry.getExtendedChannelSchemas(o,{withReducerSchema:!0})};if(Lt(n))return i(n);if(n===Ml)return li(i(s))})();if(Te(e)){let n=e;return e.update&&t!=null&&(n.update=ci(t,e.update)),n}return t!=null?ci(t,e):e}async _validateContext(e){let t=this.builder._configRuntimeSchema;return Lt(t)&&ci(t,e),e}};function Fy(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)&&Object.keys(r).length>0&&Object.values(r).every(e=>typeof e=="function"||hl(e))}function ad(r){return typeof r=="object"&&r!==null&&"lc_graph_name"in r&&r.lc_graph_name==="AnnotationRoot"}function Uy(r){return typeof r=="object"&&r!==null&&r.channels!==void 0}function zy(r){return typeof r=="object"&&r!==null&&r.stateSchema!==void 0}function By(r){return typeof r=="object"&&r!==null&&r.stateSchema===void 0&&r.input!==void 0&&r.output!==void 0}function Ky(r){return!(typeof r!="object"||r==null||!("state"in r)||!Lt(r.state)||"input"in r&&!Lt(r.input)||"output"in r&&!Lt(r.output))}function Wy(r){if(Ee(r))return[r];let e=[];Te(r)?e.push(r):Array.isArray(r)&&e.push(...r.filter(Te));let t=[];for(let n of e){if(n.graph===Ce.PARENT)throw new fi(n);Ee(n.goto)||typeof n.goto=="string"?t.push(n.goto):Array.isArray(n.goto)&&t.push(...n.goto)}return t}function ud(){let r=new Ie({func:Wy,tags:[ee],trace:!1,recurse:!1,name:"<control_branch>"});return new Li({path:r})}var Dl="__remove_all__";function Rr(r,e){let t=Array.isArray(r)?r:[r],n=Array.isArray(e)?e:[e],s=t.map(Dt),i=n.map(Dt);for(let l of s)(l.id===null||l.id===void 0)&&(l.id=vu(),l.lc_kwargs.id=l.id);let o;for(let l=0;l<i.length;l+=1){let p=i[l];(p.id===null||p.id===void 0)&&(p.id=vu(),p.lc_kwargs.id=p.id),p.getType()==="remove"&&p.id===Dl&&(o=l)}if(o!=null)return i.slice(o+1);let a=[...s],u=new Map(a.map((l,p)=>[l.id,p])),c=new Set;for(let l of i){let p=u.get(l.id);if(p!==void 0)l.getType()==="remove"?c.add(l.id):(c.delete(l.id),a[p]=l);else{if(l.getType()==="remove")throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${l.id}')`);u.set(l.id,a.length),a.push(l)}}return a.filter(l=>!c.has(l.id))}var cd=function(e,t){let{name:n,checkpointer:s,store:i,cache:o}=typeof e=="string"?{name:e,checkpointer:void 0,store:void 0}:e;if(Rh(t)||Nh(t))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let a="updates",u=Jh(n,t);function c(f){return typeof f=="object"&&f!==null&&"__lg_type"in f&&f.__lg_type==="__pregel_final"}let l=new Ie({name:"pluckReturnValue",func:f=>c(f)?f.value:f}),p=new Ie({name:"pluckSaveValue",func:f=>c(f)?f.save:f}),h=new et({bound:u,triggers:[q],channels:[q],writers:[new ae([{channel:K,value:Je,mapper:l},{channel:un,value:Je,mapper:p}],[ee])]});return new ms({name:n,checkpointer:s,nodes:{[n]:h},channels:{[q]:new ft,[K]:new Ht,[un]:new Ht},inputChannels:q,outputChannels:K,streamChannels:K,streamMode:a,store:i,cache:o})};cd.final=function({value:e,save:t}){return{value:e,save:t,__lg_type:"__pregel_final"}};var Gy=lt.Root({messages:lt({reducer:Rr,default:()=>[]})}),ld={reducer:{fn:Rr},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},qy=oe.object({messages:od(oe.custom(),ld)});async function $l(r,e,t){if(t===void 0)throw new Error(["Unable to dispatch a custom event without a parent run id.",'"dispatchCustomEvent" can only be called from within an existing run (e.g.,',"inside a tool or a RunnableLambda).",`
91
+
92
+ If you continue to see this error, please import from "@langchain/core/callbacks/dispatch/web"`,"and explicitly pass in a config parameter.",`
93
+
94
+ Or, if you are calling this from a custom tool, ensure you're using the "tool" helper constructor as documented here:`,`
95
+ |`,`
96
+ \u2514-> https://js.langchain.com/docs/how_to/custom_tools#tool-function`,`
97
+ `].join(" "));let n=await xr(t),s=n?.getParentRunId();n!==void 0&&s!==void 0&&await n.handleCustomEvent?.(r,e,s)}function L(r,e,t,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!s:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(r,t):s?s.value=t:e.set(r,t),t}function x(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}var Ll=function(){let{crypto:r}=globalThis;if(r?.randomUUID)return Ll=r.randomUUID.bind(r),r.randomUUID();let e=new Uint8Array(1),t=r?()=>r.getRandomValues(e)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,n=>(+n^t()&15>>+n/4).toString(16))};function Bi(r){return typeof r=="object"&&r!==null&&("name"in r&&r.name==="AbortError"||"message"in r&&String(r.message).includes("FetchRequestCanceledException"))}var Ki=r=>{if(r instanceof Error)return r;if(typeof r=="object"&&r!==null){try{if(Object.prototype.toString.call(r)==="[object Error]"){let e=new Error(r.message,r.cause?{cause:r.cause}:{});return r.stack&&(e.stack=r.stack),r.cause&&!e.cause&&(e.cause=r.cause),r.name&&(e.name=r.name),e}}catch{}try{return new Error(JSON.stringify(r))}catch{}}return new Error(r)};var N=class extends Error{},_e=class r extends N{constructor(e,t,n,s){super(`${r.makeMessage(e,t,n)}`),this.status=e,this.headers=s,this.requestID=s?.get("x-request-id"),this.error=t;let i=t;this.code=i?.code,this.param=i?.param,this.type=i?.type}static makeMessage(e,t,n){let s=t?.message?typeof t.message=="string"?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&s?`${e} ${s}`:e?`${e} status code (no body)`:s||"(no status code or body)"}static generate(e,t,n,s){if(!e||!s)return new Nr({message:n,cause:Ki(t)});let i=t?.error;return e===400?new bs(e,i,n,s):e===401?new ys(e,i,n,s):e===403?new _s(e,i,n,s):e===404?new ws(e,i,n,s):e===409?new xs(e,i,n,s):e===422?new vs(e,i,n,s):e===429?new As(e,i,n,s):e>=500?new Os(e,i,n,s):new r(e,i,n,s)}},fe=class extends _e{constructor({message:e}={}){super(void 0,void 0,e||"Request was aborted.",void 0)}},Nr=class extends _e{constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}},Jt=class extends Nr{constructor({message:e}={}){super({message:e??"Request timed out."})}},bs=class extends _e{},ys=class extends _e{},_s=class extends _e{},ws=class extends _e{},xs=class extends _e{},vs=class extends _e{},As=class extends _e{},Os=class extends _e{},Ps=class extends N{constructor(){super("Could not parse response content as the length limit was reached")}},Es=class extends N{constructor(){super("Could not parse response content as the request was rejected by the content filter")}},Xt=class extends Error{constructor(e){super(e)}};var Xy=/^[a-z][a-z0-9+.-]*:/i,pd=r=>Xy.test(r),Ue=r=>(Ue=Array.isArray,Ue(r)),Fl=Ue;function fd(r){return typeof r!="object"?{}:r??{}}function hd(r){if(!r)return!0;for(let e in r)return!1;return!0}function dd(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function Is(r){return r!=null&&typeof r=="object"&&!Array.isArray(r)}var md=(r,e)=>{if(typeof e!="number"||!Number.isInteger(e))throw new N(`${r} must be an integer`);if(e<0)throw new N(`${r} must be a positive integer`);return e};var gd=r=>{try{return JSON.parse(r)}catch{return}};var Yt=r=>new Promise(e=>setTimeout(e,r));var jr="5.12.2";var wd=()=>typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u";function Yy(){return typeof Deno<"u"&&Deno.build!=null?"deno":typeof EdgeRuntime<"u"?"edge":Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]"?"node":"unknown"}var Zy=()=>{let r=Yy();if(r==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":yd(Deno.build.os),"X-Stainless-Arch":bd(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":jr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(r==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":yd(globalThis.process.platform??"unknown"),"X-Stainless-Arch":bd(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let e=Qy();return e?{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${e.browser}`,"X-Stainless-Runtime-Version":e.version}:{"X-Stainless-Lang":"js","X-Stainless-Package-Version":jr,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function Qy(){if(typeof navigator>"u"||!navigator)return null;let r=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:e,pattern:t}of r){let n=t.exec(navigator.userAgent);if(n){let s=n[1]||0,i=n[2]||0,o=n[3]||0;return{browser:e,version:`${s}.${i}.${o}`}}}return null}var bd=r=>r==="x32"?"x32":r==="x86_64"||r==="x64"?"x64":r==="arm"?"arm":r==="aarch64"||r==="arm64"?"arm64":r?`other:${r}`:"unknown",yd=r=>(r=r.toLowerCase(),r.includes("ios")?"iOS":r==="android"?"Android":r==="darwin"?"MacOS":r==="win32"?"Windows":r==="freebsd"?"FreeBSD":r==="openbsd"?"OpenBSD":r==="linux"?"Linux":r?`Other:${r}`:"Unknown"),_d,xd=()=>_d??(_d=Zy());function vd(){if(typeof fetch<"u")return fetch;throw new 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 Ul(...r){let e=globalThis.ReadableStream;if(typeof e>"u")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new e(...r)}function ja(r){let e=Symbol.asyncIterator in r?r[Symbol.asyncIterator]():r[Symbol.iterator]();return Ul({start(){},async pull(t){let{done:n,value:s}=await e.next();n?t.close():t.enqueue(s)},async cancel(){await e.return?.()}})}function zl(r){if(r[Symbol.asyncIterator])return r;let e=r.getReader();return{async next(){try{let t=await e.read();return t?.done&&e.releaseLock(),t}catch(t){throw e.releaseLock(),t}},async return(){let t=e.cancel();return e.releaseLock(),await t,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function Ad(r){if(r===null||typeof r!="object")return;if(r[Symbol.asyncIterator]){await r[Symbol.asyncIterator]().return?.();return}let e=r.getReader(),t=e.cancel();e.releaseLock(),await t}var Od=({headers:r,body:e})=>({bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(e)});var Ma="RFC3986",Bl=r=>String(r),Da={RFC1738:r=>String(r).replace(/%20/g,"+"),RFC3986:Bl},Kl="RFC1738";var $a=(r,e)=>($a=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),$a(r,e)),Zt=(()=>{let r=[];for(let e=0;e<256;++e)r.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return r})();var Wl=1024,Pd=(r,e,t,n,s)=>{if(r.length===0)return r;let i=r;if(typeof r=="symbol"?i=Symbol.prototype.toString.call(r):typeof r!="string"&&(i=String(r)),t==="iso-8859-1")return escape(i).replace(/%u[0-9a-f]{4}/gi,function(a){return"%26%23"+parseInt(a.slice(2),16)+"%3B"});let o="";for(let a=0;a<i.length;a+=Wl){let u=i.length>=Wl?i.slice(a,a+Wl):i,c=[];for(let l=0;l<u.length;++l){let p=u.charCodeAt(l);if(p===45||p===46||p===95||p===126||p>=48&&p<=57||p>=65&&p<=90||p>=97&&p<=122||s===Kl&&(p===40||p===41)){c[c.length]=u.charAt(l);continue}if(p<128){c[c.length]=Zt[p];continue}if(p<2048){c[c.length]=Zt[192|p>>6]+Zt[128|p&63];continue}if(p<55296||p>=57344){c[c.length]=Zt[224|p>>12]+Zt[128|p>>6&63]+Zt[128|p&63];continue}l+=1,p=65536+((p&1023)<<10|u.charCodeAt(l)&1023),c[c.length]=Zt[240|p>>18]+Zt[128|p>>12&63]+Zt[128|p>>6&63]+Zt[128|p&63]}o+=c.join("")}return o};function Ed(r){return!r||typeof r!="object"?!1:!!(r.constructor&&r.constructor.isBuffer&&r.constructor.isBuffer(r))}function Hl(r,e){if(Ue(r)){let t=[];for(let n=0;n<r.length;n+=1)t.push(e(r[n]));return t}return e(r)}var kd={brackets(r){return String(r)+"[]"},comma:"comma",indices(r,e){return String(r)+"["+e+"]"},repeat(r){return String(r)}},Sd=function(r,e){Array.prototype.push.apply(r,Ue(e)?e:[e])},Id,we={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:Pd,encodeValuesOnly:!1,format:Ma,formatter:Bl,indices:!1,serializeDate(r){return(Id??(Id=Function.prototype.call.bind(Date.prototype.toISOString)))(r)},skipNulls:!1,strictNullHandling:!1};function r_(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||typeof r=="symbol"||typeof r=="bigint"}var Vl={};function Cd(r,e,t,n,s,i,o,a,u,c,l,p,h,f,g,b,_,I){let v=r,S=I,C=0,j=!1;for(;(S=S.get(Vl))!==void 0&&!j;){let $=S.get(r);if(C+=1,typeof $<"u"){if($===C)throw new RangeError("Cyclic object value");j=!0}typeof S.get(Vl)>"u"&&(C=0)}if(typeof c=="function"?v=c(e,v):v instanceof Date?v=h?.(v):t==="comma"&&Ue(v)&&(v=Hl(v,function($){return $ instanceof Date?h?.($):$})),v===null){if(i)return u&&!b?u(e,we.encoder,_,"key",f):e;v=""}if(r_(v)||Ed(v)){if(u){let $=b?e:u(e,we.encoder,_,"key",f);return[g?.($)+"="+g?.(u(v,we.encoder,_,"value",f))]}return[g?.(e)+"="+g?.(String(v))]}let F=[];if(typeof v>"u")return F;let D;if(t==="comma"&&Ue(v))b&&u&&(v=Hl(v,u)),D=[{value:v.length>0?v.join(",")||null:void 0}];else if(Ue(c))D=c;else{let $=Object.keys(v);D=l?$.sort(l):$}let y=a?String(e).replace(/\./g,"%2E"):String(e),T=n&&Ue(v)&&v.length===1?y+"[]":y;if(s&&Ue(v)&&v.length===0)return T+"[]";for(let $=0;$<D.length;++$){let P=D[$],J=typeof P=="object"&&typeof P.value<"u"?P.value:v[P];if(o&&J===null)continue;let ie=p&&a?P.replace(/\./g,"%2E"):P,le=Ue(v)?typeof t=="function"?t(T,ie):T:T+(p?"."+ie:"["+ie+"]");I.set(r,C);let Nt=new WeakMap;Nt.set(Vl,I),Sd(F,Cd(J,le,t,n,s,i,o,a,t==="comma"&&b&&Ue(v)?null:u,c,l,p,h,f,g,b,_,Nt))}return F}function n_(r=we){if(typeof r.allowEmptyArrays<"u"&&typeof r.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof r.encodeDotInKeys<"u"&&typeof r.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(r.encoder!==null&&typeof r.encoder<"u"&&typeof r.encoder!="function")throw new TypeError("Encoder has to be a function.");let e=r.charset||we.charset;if(typeof r.charset<"u"&&r.charset!=="utf-8"&&r.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let t=Ma;if(typeof r.format<"u"){if(!$a(Da,r.format))throw new TypeError("Unknown format option provided.");t=r.format}let n=Da[t],s=we.filter;(typeof r.filter=="function"||Ue(r.filter))&&(s=r.filter);let i;if(r.arrayFormat&&r.arrayFormat in kd?i=r.arrayFormat:"indices"in r?i=r.indices?"indices":"repeat":i=we.arrayFormat,"commaRoundTrip"in r&&typeof r.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let o=typeof r.allowDots>"u"?r.encodeDotInKeys?!0:we.allowDots:!!r.allowDots;return{addQueryPrefix:typeof r.addQueryPrefix=="boolean"?r.addQueryPrefix:we.addQueryPrefix,allowDots:o,allowEmptyArrays:typeof r.allowEmptyArrays=="boolean"?!!r.allowEmptyArrays:we.allowEmptyArrays,arrayFormat:i,charset:e,charsetSentinel:typeof r.charsetSentinel=="boolean"?r.charsetSentinel:we.charsetSentinel,commaRoundTrip:!!r.commaRoundTrip,delimiter:typeof r.delimiter>"u"?we.delimiter:r.delimiter,encode:typeof r.encode=="boolean"?r.encode:we.encode,encodeDotInKeys:typeof r.encodeDotInKeys=="boolean"?r.encodeDotInKeys:we.encodeDotInKeys,encoder:typeof r.encoder=="function"?r.encoder:we.encoder,encodeValuesOnly:typeof r.encodeValuesOnly=="boolean"?r.encodeValuesOnly:we.encodeValuesOnly,filter:s,format:t,formatter:n,serializeDate:typeof r.serializeDate=="function"?r.serializeDate:we.serializeDate,skipNulls:typeof r.skipNulls=="boolean"?r.skipNulls:we.skipNulls,sort:typeof r.sort=="function"?r.sort:null,strictNullHandling:typeof r.strictNullHandling=="boolean"?r.strictNullHandling:we.strictNullHandling}}function Gl(r,e={}){let t=r,n=n_(e),s,i;typeof n.filter=="function"?(i=n.filter,t=i("",t)):Ue(n.filter)&&(i=n.filter,s=i);let o=[];if(typeof t!="object"||t===null)return"";let a=kd[n.arrayFormat],u=a==="comma"&&n.commaRoundTrip;s||(s=Object.keys(t)),n.sort&&s.sort(n.sort);let c=new WeakMap;for(let h=0;h<s.length;++h){let f=s[h];n.skipNulls&&t[f]===null||Sd(o,Cd(t[f],f,a,u,n.allowEmptyArrays,n.strictNullHandling,n.skipNulls,n.encodeDotInKeys,n.encode?n.encoder:null,n.filter,n.sort,n.allowDots,n.serializeDate,n.format,n.formatter,n.encodeValuesOnly,n.charset,c))}let l=o.join(n.delimiter),p=n.addQueryPrefix===!0?"?":"";return n.charsetSentinel&&(n.charset==="iso-8859-1"?p+="utf8=%26%2310003%3B&":p+="utf8=%E2%9C%93&"),l.length>0?p+l:""}function Nd(r){let e=0;for(let s of r)e+=s.length;let t=new Uint8Array(e),n=0;for(let s of r)t.set(s,n),n+=s.length;return t}var Td;function ks(r){let e;return(Td??(e=new globalThis.TextEncoder,Td=e.encode.bind(e)))(r)}var Rd;function ql(r){let e;return(Rd??(e=new globalThis.TextDecoder,Rd=e.decode.bind(e)))(r)}var tt,rt,gn=class{constructor(){tt.set(this,void 0),rt.set(this,void 0),L(this,tt,new Uint8Array,"f"),L(this,rt,null,"f")}decode(e){if(e==null)return[];let t=e instanceof ArrayBuffer?new Uint8Array(e):typeof e=="string"?ks(e):e;L(this,tt,Nd([x(this,tt,"f"),t]),"f");let n=[],s;for(;(s=i_(x(this,tt,"f"),x(this,rt,"f")))!=null;){if(s.carriage&&x(this,rt,"f")==null){L(this,rt,s.index,"f");continue}if(x(this,rt,"f")!=null&&(s.index!==x(this,rt,"f")+1||s.carriage)){n.push(ql(x(this,tt,"f").subarray(0,x(this,rt,"f")-1))),L(this,tt,x(this,tt,"f").subarray(x(this,rt,"f")),"f"),L(this,rt,null,"f");continue}let i=x(this,rt,"f")!==null?s.preceding-1:s.preceding,o=ql(x(this,tt,"f").subarray(0,i));n.push(o),L(this,tt,x(this,tt,"f").subarray(s.index),"f"),L(this,rt,null,"f")}return n}flush(){return x(this,tt,"f").length?this.decode(`
98
+ `):[]}};tt=new WeakMap,rt=new WeakMap;gn.NEWLINE_CHARS=new Set([`
99
+ `,"\r"]);gn.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function i_(r,e){for(let s=e??0;s<r.length;s++){if(r[s]===10)return{preceding:s,index:s+1,carriage:!1};if(r[s]===13)return{preceding:s,index:s+1,carriage:!0}}return null}function jd(r){for(let n=0;n<r.length-1;n++){if(r[n]===10&&r[n+1]===10||r[n]===13&&r[n+1]===13)return n+2;if(r[n]===13&&r[n+1]===10&&n+3<r.length&&r[n+2]===13&&r[n+3]===10)return n+4}return-1}var Fa={off:0,error:200,warn:300,info:400,debug:500},Jl=(r,e,t)=>{if(r){if(dd(Fa,r))return r;me(t).warn(`${e} was set to ${JSON.stringify(r)}, expected one of ${JSON.stringify(Object.keys(Fa))}`)}};function Wi(){}function La(r,e,t){return!e||Fa[r]>Fa[t]?Wi:e[r].bind(e)}var o_={error:Wi,warn:Wi,info:Wi,debug:Wi},Md=new WeakMap;function me(r){let e=r.logger,t=r.logLevel??"off";if(!e)return o_;let n=Md.get(e);if(n&&n[0]===t)return n[1];let s={error:La("error",e,t),warn:La("warn",e,t),info:La("info",e,t),debug:La("debug",e,t)};return Md.set(e,[t,s]),s}var dr=r=>(r.options&&(r.options={...r.options},delete r.options.headers),r.headers&&(r.headers=Object.fromEntries((r.headers instanceof Headers?[...r.headers]:Object.entries(r.headers)).map(([e,t])=>[e,e.toLowerCase()==="authorization"||e.toLowerCase()==="cookie"||e.toLowerCase()==="set-cookie"?"***":t]))),"retryOfRequestLogID"in r&&(r.retryOfRequestLogID&&(r.retryOf=r.retryOfRequestLogID),delete r.retryOfRequestLogID),r);var Hi,Qt=class r{constructor(e,t,n){this.iterator=e,Hi.set(this,void 0),this.controller=t,L(this,Hi,n,"f")}static fromSSEResponse(e,t,n){let s=!1,i=n?me(n):console;async function*o(){if(s)throw new N("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(let u of a_(e,t))if(!a){if(u.data.startsWith("[DONE]")){a=!0;continue}if(u.event===null||!u.event.startsWith("thread.")){let c;try{c=JSON.parse(u.data)}catch(l){throw i.error("Could not parse message into JSON:",u.data),i.error("From chunk:",u.raw),l}if(c&&c.error)throw new _e(void 0,c.error,void 0,e.headers);yield c}else{let c;try{c=JSON.parse(u.data)}catch(l){throw console.error("Could not parse message into JSON:",u.data),console.error("From chunk:",u.raw),l}if(u.event=="error")throw new _e(void 0,c.error,c.message,void 0);yield{event:u.event,data:c}}}a=!0}catch(u){if(Bi(u))return;throw u}finally{a||t.abort()}}return new r(o,t,n)}static fromReadableStream(e,t,n){let s=!1;async function*i(){let a=new gn,u=zl(e);for await(let c of u)for(let l of a.decode(c))yield l;for(let c of a.flush())yield c}async function*o(){if(s)throw new N("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");s=!0;let a=!1;try{for await(let u of i())a||u&&(yield JSON.parse(u));a=!0}catch(u){if(Bi(u))return;throw u}finally{a||t.abort()}}return new r(o,t,n)}[(Hi=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let e=[],t=[],n=this.iterator(),s=i=>({next:()=>{if(i.length===0){let o=n.next();e.push(o),t.push(o)}return i.shift()}});return[new r(()=>s(e),this.controller,x(this,Hi,"f")),new r(()=>s(t),this.controller,x(this,Hi,"f"))]}toReadableStream(){let e=this,t;return Ul({async start(){t=e[Symbol.asyncIterator]()},async pull(n){try{let{value:s,done:i}=await t.next();if(i)return n.close();let o=ks(JSON.stringify(s)+`
100
+ `);n.enqueue(o)}catch(s){n.error(s)}},async cancel(){await t.return?.()}})}};async function*a_(r,e){if(!r.body)throw e.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative"?new N("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api"):new N("Attempted to iterate over a response with no body");let t=new Xl,n=new gn,s=zl(r.body);for await(let i of u_(s))for(let o of n.decode(i)){let a=t.decode(o);a&&(yield a)}for(let i of n.flush()){let o=t.decode(i);o&&(yield o)}}async function*u_(r){let e=new Uint8Array;for await(let t of r){if(t==null)continue;let n=t instanceof ArrayBuffer?new Uint8Array(t):typeof t=="string"?ks(t):t,s=new Uint8Array(e.length+n.length);s.set(e),s.set(n,e.length),e=s;let i;for(;(i=jd(e))!==-1;)yield e.slice(0,i),e=e.slice(i)}e.length>0&&(yield e)}var Xl=class{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(e){if(e.endsWith("\r")&&(e=e.substring(0,e.length-1)),!e){if(!this.event&&!this.data.length)return null;let i={event:this.event,data:this.data.join(`
101
+ `),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],i}if(this.chunks.push(e),e.startsWith(":"))return null;let[t,n,s]=c_(e,":");return s.startsWith(" ")&&(s=s.substring(1)),t==="event"?this.event=s:t==="data"&&this.data.push(s),null}};function c_(r,e){let t=r.indexOf(e);return t!==-1?[r.substring(0,t),e,r.substring(t+e.length)]:[r,"",""]}async function Ua(r,e){let{response:t,requestLogID:n,retryOfRequestLogID:s,startTime:i}=e,o=await(async()=>{if(e.options.stream)return me(r).debug("response",t.status,t.url,t.headers,t.body),e.options.__streamClass?e.options.__streamClass.fromSSEResponse(t,e.controller,r):Qt.fromSSEResponse(t,e.controller,r);if(t.status===204)return null;if(e.options.__binaryResponse)return t;let u=t.headers.get("content-type")?.split(";")[0]?.trim();if(u?.includes("application/json")||u?.endsWith("+json")){let p=await t.json();return Yl(p,t)}return await t.text()})();return me(r).debug(`[${n}] response parsed`,dr({retryOfRequestLogID:s,url:t.url,status:t.status,body:o,durationMs:Date.now()-i})),o}function Yl(r,e){return!r||typeof r!="object"||Array.isArray(r)?r:Object.defineProperty(r,"_request_id",{value:e.headers.get("x-request-id"),enumerable:!1})}var Vi,bn=class r extends Promise{constructor(e,t,n=Ua){super(s=>{s(null)}),this.responsePromise=t,this.parseResponse=n,Vi.set(this,void 0),L(this,Vi,e,"f")}_thenUnwrap(e){return new r(x(this,Vi,"f"),this.responsePromise,async(t,n)=>Yl(e(await this.parseResponse(t,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get("x-request-id")}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(x(this,Vi,"f"),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}};Vi=new WeakMap;var za,Ba=class{constructor(e,t,n,s){za.set(this,void 0),L(this,za,e,"f"),this.options=s,this.response=t,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new N("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await x(this,za,"f").requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(za=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}},Gi=class extends bn{constructor(e,t,n){super(e,t,async(s,i)=>new n(s,i.response,await Ua(s,i),i.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let t of e)yield t}},er=class extends Ba{constructor(e,t,n,s){super(e,t,n,s),this.data=n.data||[],this.object=n.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}},W=class extends Ba{constructor(e,t,n,s){super(e,t,n,s),this.data=n.data||[],this.has_more=n.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more===!1?!1:super.hasNextPage()}nextPageRequestOptions(){let e=this.getPaginatedItems(),t=e[e.length-1]?.id;return t?{...this.options,query:{...fd(this.options.query),after:t}}:null}};var Ql=()=>{if(typeof File>"u"){let{process:r}=globalThis,e=typeof r?.versions?.node=="string"&&parseInt(r.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(e?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function Ss(r,e,t){return Ql(),new File(r,e??"unknown_file",t)}function qi(r){return(typeof r=="object"&&r!==null&&("name"in r&&r.name&&String(r.name)||"url"in r&&r.url&&String(r.url)||"filename"in r&&r.filename&&String(r.filename)||"path"in r&&r.path&&String(r.path))||"").split(/[\\/]/).pop()||void 0}var ep=r=>r!=null&&typeof r=="object"&&typeof r[Symbol.asyncIterator]=="function";var nt=async(r,e)=>({...r,body:await f_(r.body,e)}),Dd=new WeakMap;function p_(r){let e=typeof r=="function"?r:r.fetch,t=Dd.get(e);if(t)return t;let n=(async()=>{try{let s="Response"in e?e.Response:(await e("data:,")).constructor,i=new FormData;return i.toString()!==await new s(i).text()}catch{return!0}})();return Dd.set(e,n),n}var f_=async(r,e)=>{if(!await p_(e))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let t=new FormData;return await Promise.all(Object.entries(r||{}).map(([n,s])=>Zl(t,n,s))),t},h_=r=>r instanceof Blob&&"name"in r;var Zl=async(r,e,t)=>{if(t!==void 0){if(t==null)throw new TypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")r.append(e,String(t));else if(t instanceof Response)r.append(e,Ss([await t.blob()],qi(t)));else if(ep(t))r.append(e,Ss([await new Response(ja(t)).blob()],qi(t)));else if(h_(t))r.append(e,t,qi(t));else if(Array.isArray(t))await Promise.all(t.map(n=>Zl(r,e+"[]",n)));else if(typeof t=="object")await Promise.all(Object.entries(t).map(([n,s])=>Zl(r,`${e}[${n}]`,s)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${t} instead`)}};var $d=r=>r!=null&&typeof r=="object"&&typeof r.size=="number"&&typeof r.type=="string"&&typeof r.text=="function"&&typeof r.slice=="function"&&typeof r.arrayBuffer=="function",d_=r=>r!=null&&typeof r=="object"&&typeof r.name=="string"&&typeof r.lastModified=="number"&&$d(r),m_=r=>r!=null&&typeof r=="object"&&typeof r.url=="string"&&typeof r.blob=="function";async function Ji(r,e,t){if(Ql(),r=await r,d_(r))return r instanceof File?r:Ss([await r.arrayBuffer()],r.name);if(m_(r)){let s=await r.blob();return e||(e=new URL(r.url).pathname.split(/[\\/]/).pop()),Ss(await tp(s),e,t)}let n=await tp(r);if(e||(e=qi(r)),!t?.type){let s=n.find(i=>typeof i=="object"&&"type"in i&&i.type);typeof s=="string"&&(t={...t,type:s})}return Ss(n,e,t)}async function tp(r){let e=[];if(typeof r=="string"||ArrayBuffer.isView(r)||r instanceof ArrayBuffer)e.push(r);else if($d(r))e.push(r instanceof Blob?r:await r.arrayBuffer());else if(ep(r))for await(let t of r)e.push(...await tp(t));else{let t=r?.constructor?.name;throw new Error(`Unexpected data type: ${typeof r}${t?`; constructor: ${t}`:""}${g_(r)}`)}return e}function g_(r){return typeof r!="object"||r===null?"":`; props: [${Object.getOwnPropertyNames(r).map(t=>`"${t}"`).join(", ")}]`}var E=class{constructor(e){this._client=e}};function Fd(r){return r.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var Ld=Object.freeze(Object.create(null)),y_=(r=Fd)=>function(t,...n){if(t.length===1)return t[0];let s=!1,i=[],o=t.reduce((l,p,h)=>{/[?#]/.test(p)&&(s=!0);let f=n[h],g=(s?encodeURIComponent:r)(""+f);return h!==n.length&&(f==null||typeof f=="object"&&f.toString===Object.getPrototypeOf(Object.getPrototypeOf(f.hasOwnProperty??Ld)??Ld)?.toString)&&(g=f+"",i.push({start:l.length+p.length,length:g.length,error:`Value of type ${Object.prototype.toString.call(f).slice(8,-1)} is not a valid path parameter`})),l+p+(h===n.length?"":g)},""),a=o.split(/[?#]/,1)[0],u=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,c;for(;(c=u.exec(a))!==null;)i.push({start:c.index,length:c[0].length,error:`Value "${c[0]}" can't be safely passed as a path parameter`});if(i.sort((l,p)=>l.start-p.start),i.length>0){let l=0,p=i.reduce((h,f)=>{let g=" ".repeat(f.start-l),b="^".repeat(f.length);return l=f.start+f.length,h+g+b},"");throw new N(`Path parameters result in path with invalid segments:
102
+ ${i.map(h=>h.error).join(`
103
+ `)}
104
+ ${o}
105
+ ${p}`)}return o},O=y_(Fd);var yn=class extends E{list(e,t={},n){return this._client.getAPIList(O`/chat/completions/${e}/messages`,W,{query:t,...n})}};function Xi(r){return r!==void 0&&"function"in r&&r.function!==void 0}function Ud(r,e){let t={...r};return Object.defineProperties(t,{$brand:{value:"auto-parseable-response-format",enumerable:!1},$parseRaw:{value:e,enumerable:!1}}),t}function Yi(r){return r?.$brand==="auto-parseable-response-format"}function _n(r){return r?.$brand==="auto-parseable-tool"}function zd(r,e){return!e||!rp(e)?{...r,choices:r.choices.map(t=>(Kd(t.message.tool_calls),{...t,message:{...t.message,parsed:null,...t.message.tool_calls?{tool_calls:t.message.tool_calls}:void 0}}))}:Zi(r,e)}function Zi(r,e){let t=r.choices.map(n=>{if(n.finish_reason==="length")throw new Ps;if(n.finish_reason==="content_filter")throw new Es;return Kd(n.message.tool_calls),{...n,message:{...n.message,...n.message.tool_calls?{tool_calls:n.message.tool_calls?.map(s=>v_(e,s))??void 0}:void 0,parsed:n.message.content&&!n.message.refusal?x_(e,n.message.content):null}}});return{...r,choices:t}}function x_(r,e){return r.response_format?.type!=="json_schema"?null:r.response_format?.type==="json_schema"?"$parseRaw"in r.response_format?r.response_format.$parseRaw(e):JSON.parse(e):null}function v_(r,e){let t=r.tools?.find(n=>Xi(n)&&n.function?.name===e.function.name);return{...e,function:{...e.function,parsed_arguments:_n(t)?t.$parseRaw(e.function.arguments):t?.function.strict?JSON.parse(e.function.arguments):null}}}function Bd(r,e){if(!r||!("tools"in r)||!r.tools)return!1;let t=r.tools?.find(n=>Xi(n)&&n.function?.name===e.function.name);return Xi(t)&&(_n(t)||t?.function.strict||!1)}function rp(r){return Yi(r.response_format)?!0:r.tools?.some(e=>_n(e)||e.type==="function"&&e.function.strict===!0)??!1}function Kd(r){for(let e of r||[])if(e.type!=="function")throw new N(`Currently only \`function\` tool calls are supported; Received \`${e.type}\``)}function Wd(r){for(let e of r??[]){if(e.type!=="function")throw new N(`Currently only \`function\` tool types support auto-parsing; Received \`${e.type}\``);if(e.function.strict!==!0)throw new N(`The \`${e.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var Cs=r=>r?.role==="assistant",np=r=>r?.role==="tool";var sp,Ka,Wa,Qi,eo,Ha,to,mr,ro,Va,Ga,Ts,Hd,Mr=class{constructor(){sp.add(this),this.controller=new AbortController,Ka.set(this,void 0),Wa.set(this,()=>{}),Qi.set(this,()=>{}),eo.set(this,void 0),Ha.set(this,()=>{}),to.set(this,()=>{}),mr.set(this,{}),ro.set(this,!1),Va.set(this,!1),Ga.set(this,!1),Ts.set(this,!1),L(this,Ka,new Promise((e,t)=>{L(this,Wa,e,"f"),L(this,Qi,t,"f")}),"f"),L(this,eo,new Promise((e,t)=>{L(this,Ha,e,"f"),L(this,to,t,"f")}),"f"),x(this,Ka,"f").catch(()=>{}),x(this,eo,"f").catch(()=>{})}_run(e){setTimeout(()=>{e().then(()=>{this._emitFinal(),this._emit("end")},x(this,sp,"m",Hd).bind(this))},0)}_connected(){this.ended||(x(this,Wa,"f").call(this),this._emit("connect"))}get ended(){return x(this,ro,"f")}get errored(){return x(this,Va,"f")}get aborted(){return x(this,Ga,"f")}abort(){this.controller.abort()}on(e,t){return(x(this,mr,"f")[e]||(x(this,mr,"f")[e]=[])).push({listener:t}),this}off(e,t){let n=x(this,mr,"f")[e];if(!n)return this;let s=n.findIndex(i=>i.listener===t);return s>=0&&n.splice(s,1),this}once(e,t){return(x(this,mr,"f")[e]||(x(this,mr,"f")[e]=[])).push({listener:t,once:!0}),this}emitted(e){return new Promise((t,n)=>{L(this,Ts,!0,"f"),e!=="error"&&this.once("error",n),this.once(e,t)})}async done(){L(this,Ts,!0,"f"),await x(this,eo,"f")}_emit(e,...t){if(x(this,ro,"f"))return;e==="end"&&(L(this,ro,!0,"f"),x(this,Ha,"f").call(this));let n=x(this,mr,"f")[e];if(n&&(x(this,mr,"f")[e]=n.filter(s=>!s.once),n.forEach(({listener:s})=>s(...t))),e==="abort"){let s=t[0];!x(this,Ts,"f")&&!n?.length&&Promise.reject(s),x(this,Qi,"f").call(this,s),x(this,to,"f").call(this,s),this._emit("end");return}if(e==="error"){let s=t[0];!x(this,Ts,"f")&&!n?.length&&Promise.reject(s),x(this,Qi,"f").call(this,s),x(this,to,"f").call(this,s),this._emit("end")}}_emitFinal(){}};Ka=new WeakMap,Wa=new WeakMap,Qi=new WeakMap,eo=new WeakMap,Ha=new WeakMap,to=new WeakMap,mr=new WeakMap,ro=new WeakMap,Va=new WeakMap,Ga=new WeakMap,Ts=new WeakMap,sp=new WeakSet,Hd=function(e){if(L(this,Va,!0,"f"),e instanceof Error&&e.name==="AbortError"&&(e=new fe),e instanceof fe)return L(this,Ga,!0,"f"),this._emit("abort",e);if(e instanceof N)return this._emit("error",e);if(e instanceof Error){let t=new N(e.message);return t.cause=e,this._emit("error",t)}return this._emit("error",new N(String(e)))};function Vd(r){return typeof r.parse=="function"}var He,ip,qa,op,ap,up,Gd,qd,A_=10,Rs=class extends Mr{constructor(){super(...arguments),He.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(e){this._chatCompletions.push(e),this._emit("chatCompletion",e);let t=e.choices[0]?.message;return t&&this._addMessage(t),e}_addMessage(e,t=!0){if("content"in e||(e.content=null),this.messages.push(e),t){if(this._emit("message",e),np(e)&&e.content)this._emit("functionToolCallResult",e.content);else if(Cs(e)&&e.tool_calls)for(let n of e.tool_calls)n.type==="function"&&this._emit("functionToolCall",n.function)}}async finalChatCompletion(){await this.done();let e=this._chatCompletions[this._chatCompletions.length-1];if(!e)throw new N("stream ended without producing a ChatCompletion");return e}async finalContent(){return await this.done(),x(this,He,"m",ip).call(this)}async finalMessage(){return await this.done(),x(this,He,"m",qa).call(this)}async finalFunctionToolCall(){return await this.done(),x(this,He,"m",op).call(this)}async finalFunctionToolCallResult(){return await this.done(),x(this,He,"m",ap).call(this)}async totalUsage(){return await this.done(),x(this,He,"m",up).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let e=this._chatCompletions[this._chatCompletions.length-1];e&&this._emit("finalChatCompletion",e);let t=x(this,He,"m",qa).call(this);t&&this._emit("finalMessage",t);let n=x(this,He,"m",ip).call(this);n&&this._emit("finalContent",n);let s=x(this,He,"m",op).call(this);s&&this._emit("finalFunctionToolCall",s);let i=x(this,He,"m",ap).call(this);i!=null&&this._emit("finalFunctionToolCallResult",i),this._chatCompletions.some(o=>o.usage)&&this._emit("totalUsage",x(this,He,"m",up).call(this))}async _createChatCompletion(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,He,"m",Gd).call(this,t);let i=await e.chat.completions.create({...t,stream:!1},{...n,signal:this.controller.signal});return this._connected(),this._addChatCompletion(Zi(i,t))}async _runChatCompletion(e,t,n){for(let s of t.messages)this._addMessage(s,!1);return await this._createChatCompletion(e,t,n)}async _runTools(e,t,n){let s="tool",{tool_choice:i="auto",stream:o,...a}=t,u=typeof i!="string"&&i.type==="function"&&i?.function?.name,{maxChatCompletions:c=A_}=n||{},l=t.tools.map(f=>{if(_n(f)){if(!f.$callback)throw new N("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:f.$callback,name:f.function.name,description:f.function.description||"",parameters:f.function.parameters,parse:f.$parseRaw,strict:!0}}}return f}),p={};for(let f of l)f.type==="function"&&(p[f.function.name||f.function.function.name]=f.function);let h="tools"in t?l.map(f=>f.type==="function"?{type:"function",function:{name:f.function.name||f.function.function.name,parameters:f.function.parameters,description:f.function.description,strict:f.function.strict}}:f):void 0;for(let f of t.messages)this._addMessage(f,!1);for(let f=0;f<c;++f){let b=(await this._createChatCompletion(e,{...a,tool_choice:i,tools:h,messages:[...this.messages]},n)).choices[0]?.message;if(!b)throw new N("missing message in ChatCompletion response");if(!b.tool_calls?.length)return;for(let _ of b.tool_calls){if(_.type!=="function")continue;let I=_.id,{name:v,arguments:S}=_.function,C=p[v];if(C){if(u&&u!==v){let y=`Invalid tool_call: ${JSON.stringify(v)}. ${JSON.stringify(u)} requested. Please try again`;this._addMessage({role:s,tool_call_id:I,content:y});continue}}else{let y=`Invalid tool_call: ${JSON.stringify(v)}. Available options are: ${Object.keys(p).map(T=>JSON.stringify(T)).join(", ")}. Please try again`;this._addMessage({role:s,tool_call_id:I,content:y});continue}let j;try{j=Vd(C)?await C.parse(S):S}catch(y){let T=y instanceof Error?y.message:String(y);this._addMessage({role:s,tool_call_id:I,content:T});continue}let F=await C.function(j,this),D=x(this,He,"m",qd).call(this,F);if(this._addMessage({role:s,tool_call_id:I,content:D}),u)return}}}};He=new WeakSet,ip=function(){return x(this,He,"m",qa).call(this).content??null},qa=function(){let e=this.messages.length;for(;e-- >0;){let t=this.messages[e];if(Cs(t))return{...t,content:t.content??null,refusal:t.refusal??null}}throw new N("stream ended without producing a ChatCompletionMessage with role=assistant")},op=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(Cs(t)&&t?.tool_calls?.length)return t.tool_calls.filter(n=>n.type==="function").at(-1)?.function}},ap=function(){for(let e=this.messages.length-1;e>=0;e--){let t=this.messages[e];if(np(t)&&t.content!=null&&typeof t.content=="string"&&this.messages.some(n=>n.role==="assistant"&&n.tool_calls?.some(s=>s.type==="function"&&s.id===t.tool_call_id)))return t.content}},up=function(){let e={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:t}of this._chatCompletions)t&&(e.completion_tokens+=t.completion_tokens,e.prompt_tokens+=t.prompt_tokens,e.total_tokens+=t.total_tokens);return e},Gd=function(e){if(e.n!=null&&e.n>1)throw new N("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},qd=function(e){return typeof e=="string"?e:e===void 0?"undefined":JSON.stringify(e)};var no=class r extends Rs{static runTools(e,t,n){let s=new r,i={...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,t,i)),s}_addMessage(e,t=!0){super._addMessage(e,t),Cs(e)&&e.content&&this._emit("content",e.content)}};var ke={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},cp=class extends Error{},lp=class extends Error{};function O_(r,e=ke.ALL){if(typeof r!="string")throw new TypeError(`expecting str, got ${typeof r}`);if(!r.trim())throw new Error(`${r} is empty`);return P_(r.trim(),e)}var P_=(r,e)=>{let t=r.length,n=0,s=h=>{throw new cp(`${h} at position ${n}`)},i=h=>{throw new lp(`${h} at position ${n}`)},o=()=>(p(),n>=t&&s("Unexpected end of input"),r[n]==='"'?a():r[n]==="{"?u():r[n]==="["?c():r.substring(n,n+4)==="null"||ke.NULL&e&&t-n<4&&"null".startsWith(r.substring(n))?(n+=4,null):r.substring(n,n+4)==="true"||ke.BOOL&e&&t-n<4&&"true".startsWith(r.substring(n))?(n+=4,!0):r.substring(n,n+5)==="false"||ke.BOOL&e&&t-n<5&&"false".startsWith(r.substring(n))?(n+=5,!1):r.substring(n,n+8)==="Infinity"||ke.INFINITY&e&&t-n<8&&"Infinity".startsWith(r.substring(n))?(n+=8,1/0):r.substring(n,n+9)==="-Infinity"||ke.MINUS_INFINITY&e&&1<t-n&&t-n<9&&"-Infinity".startsWith(r.substring(n))?(n+=9,-1/0):r.substring(n,n+3)==="NaN"||ke.NAN&e&&t-n<3&&"NaN".startsWith(r.substring(n))?(n+=3,NaN):l()),a=()=>{let h=n,f=!1;for(n++;n<t&&(r[n]!=='"'||f&&r[n-1]==="\\");)f=r[n]==="\\"?!f:!1,n++;if(r.charAt(n)=='"')try{return JSON.parse(r.substring(h,++n-Number(f)))}catch(g){i(String(g))}else if(ke.STR&e)try{return JSON.parse(r.substring(h,n-Number(f))+'"')}catch{return JSON.parse(r.substring(h,r.lastIndexOf("\\"))+'"')}s("Unterminated string literal")},u=()=>{n++,p();let h={};try{for(;r[n]!=="}";){if(p(),n>=t&&ke.OBJ&e)return h;let f=a();p(),n++;try{let g=o();Object.defineProperty(h,f,{value:g,writable:!0,enumerable:!0,configurable:!0})}catch(g){if(ke.OBJ&e)return h;throw g}p(),r[n]===","&&n++}}catch{if(ke.OBJ&e)return h;s("Expected '}' at end of object")}return n++,h},c=()=>{n++;let h=[];try{for(;r[n]!=="]";)h.push(o()),p(),r[n]===","&&n++}catch{if(ke.ARR&e)return h;s("Expected ']' at end of array")}return n++,h},l=()=>{if(n===0){r==="-"&&ke.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(r)}catch(f){if(ke.NUM&e)try{return r[r.length-1]==="."?JSON.parse(r.substring(0,r.lastIndexOf("."))):JSON.parse(r.substring(0,r.lastIndexOf("e")))}catch{}i(String(f))}}let h=n;for(r[n]==="-"&&n++;r[n]&&!",]}".includes(r[n]);)n++;n==t&&!(ke.NUM&e)&&s("Unterminated number literal");try{return JSON.parse(r.substring(h,n))}catch{r.substring(h,n)==="-"&&ke.NUM&e&&s("Not sure what '-' is");try{return JSON.parse(r.substring(h,r.lastIndexOf("e")))}catch(g){i(String(g))}}},p=()=>{for(;n<t&&`
106
+ \r `.includes(r[n]);)n++};return o()},pp=r=>O_(r,ke.ALL^ke.NUM);var xe,gr,Ns,Dr,fp,Ja,hp,dp,mp,Xa,gp,Jd,wn=class r extends Rs{constructor(e){super(),xe.add(this),gr.set(this,void 0),Ns.set(this,void 0),Dr.set(this,void 0),L(this,gr,e,"f"),L(this,Ns,[],"f")}get currentChatCompletionSnapshot(){return x(this,Dr,"f")}static fromReadableStream(e){let t=new r(null);return t._run(()=>t._fromReadableStream(e)),t}static createChatCompletion(e,t,n){let s=new r(t);return s._run(()=>s._runChatCompletion(e,{...t,stream:!0},{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createChatCompletion(e,t,n){super._createChatCompletion;let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,xe,"m",fp).call(this);let i=await e.chat.completions.create({...t,stream:!0},{...n,signal:this.controller.signal});this._connected();for await(let o of i)x(this,xe,"m",hp).call(this,o);if(i.controller.signal?.aborted)throw new fe;return this._addChatCompletion(x(this,xe,"m",Xa).call(this))}async _fromReadableStream(e,t){let n=t?.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),x(this,xe,"m",fp).call(this),this._connected();let s=Qt.fromReadableStream(e,this.controller),i;for await(let o of s)i&&i!==o.id&&this._addChatCompletion(x(this,xe,"m",Xa).call(this)),x(this,xe,"m",hp).call(this,o),i=o.id;if(s.controller.signal?.aborted)throw new fe;return this._addChatCompletion(x(this,xe,"m",Xa).call(this))}[(gr=new WeakMap,Ns=new WeakMap,Dr=new WeakMap,xe=new WeakSet,fp=function(){this.ended||L(this,Dr,void 0,"f")},Ja=function(t){let n=x(this,Ns,"f")[t.index];return n||(n={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},x(this,Ns,"f")[t.index]=n,n)},hp=function(t){if(this.ended)return;let n=x(this,xe,"m",Jd).call(this,t);this._emit("chunk",t,n);for(let s of t.choices){let i=n.choices[s.index];s.delta.content!=null&&i.message?.role==="assistant"&&i.message?.content&&(this._emit("content",s.delta.content,i.message.content),this._emit("content.delta",{delta:s.delta.content,snapshot:i.message.content,parsed:i.message.parsed})),s.delta.refusal!=null&&i.message?.role==="assistant"&&i.message?.refusal&&this._emit("refusal.delta",{delta:s.delta.refusal,snapshot:i.message.refusal}),s.logprobs?.content!=null&&i.message?.role==="assistant"&&this._emit("logprobs.content.delta",{content:s.logprobs?.content,snapshot:i.logprobs?.content??[]}),s.logprobs?.refusal!=null&&i.message?.role==="assistant"&&this._emit("logprobs.refusal.delta",{refusal:s.logprobs?.refusal,snapshot:i.logprobs?.refusal??[]});let o=x(this,xe,"m",Ja).call(this,i);i.finish_reason&&(x(this,xe,"m",mp).call(this,i),o.current_tool_call_index!=null&&x(this,xe,"m",dp).call(this,i,o.current_tool_call_index));for(let a of s.delta.tool_calls??[])o.current_tool_call_index!==a.index&&(x(this,xe,"m",mp).call(this,i),o.current_tool_call_index!=null&&x(this,xe,"m",dp).call(this,i,o.current_tool_call_index)),o.current_tool_call_index=a.index;for(let a of s.delta.tool_calls??[]){let u=i.message.tool_calls?.[a.index];u?.type&&(u?.type==="function"?this._emit("tool_calls.function.arguments.delta",{name:u.function?.name,index:a.index,arguments:u.function.arguments,parsed_arguments:u.function.parsed_arguments,arguments_delta:a.function?.arguments??""}):(u?.type,void 0))}}},dp=function(t,n){if(x(this,xe,"m",Ja).call(this,t).done_tool_calls.has(n))return;let i=t.message.tool_calls?.[n];if(!i)throw new Error("no tool call snapshot");if(!i.type)throw new Error("tool call snapshot missing `type`");if(i.type==="function"){let o=x(this,gr,"f")?.tools?.find(a=>Xi(a)&&a.function.name===i.function.name);this._emit("tool_calls.function.arguments.done",{name:i.function.name,index:n,arguments:i.function.arguments,parsed_arguments:_n(o)?o.$parseRaw(i.function.arguments):o?.function.strict?JSON.parse(i.function.arguments):null})}else i.type},mp=function(t){let n=x(this,xe,"m",Ja).call(this,t);if(t.message.content&&!n.content_done){n.content_done=!0;let s=x(this,xe,"m",gp).call(this);this._emit("content.done",{content:t.message.content,parsed:s?s.$parseRaw(t.message.content):null})}t.message.refusal&&!n.refusal_done&&(n.refusal_done=!0,this._emit("refusal.done",{refusal:t.message.refusal})),t.logprobs?.content&&!n.logprobs_content_done&&(n.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:t.logprobs.content})),t.logprobs?.refusal&&!n.logprobs_refusal_done&&(n.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:t.logprobs.refusal}))},Xa=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");let t=x(this,Dr,"f");if(!t)throw new N("request ended without sending any chunks");return L(this,Dr,void 0,"f"),L(this,Ns,[],"f"),E_(t,x(this,gr,"f"))},gp=function(){let t=x(this,gr,"f")?.response_format;return Yi(t)?t:null},Jd=function(t){var n,s,i,o;let a=x(this,Dr,"f"),{choices:u,...c}=t;a?Object.assign(a,c):a=L(this,Dr,{...c,choices:[]},"f");for(let{delta:l,finish_reason:p,index:h,logprobs:f=null,...g}of t.choices){let b=a.choices[h];if(b||(b=a.choices[h]={finish_reason:p,index:h,message:{},logprobs:f,...g}),f)if(!b.logprobs)b.logprobs=Object.assign({},f);else{let{content:F,refusal:D,...y}=f;Object.assign(b.logprobs,y),F&&((n=b.logprobs).content??(n.content=[]),b.logprobs.content.push(...F)),D&&((s=b.logprobs).refusal??(s.refusal=[]),b.logprobs.refusal.push(...D))}if(p&&(b.finish_reason=p,x(this,gr,"f")&&rp(x(this,gr,"f")))){if(p==="length")throw new Ps;if(p==="content_filter")throw new Es}if(Object.assign(b,g),!l)continue;let{content:_,refusal:I,function_call:v,role:S,tool_calls:C,...j}=l;if(Object.assign(b.message,j),I&&(b.message.refusal=(b.message.refusal||"")+I),S&&(b.message.role=S),v&&(b.message.function_call?(v.name&&(b.message.function_call.name=v.name),v.arguments&&((i=b.message.function_call).arguments??(i.arguments=""),b.message.function_call.arguments+=v.arguments)):b.message.function_call=v),_&&(b.message.content=(b.message.content||"")+_,!b.message.refusal&&x(this,xe,"m",gp).call(this)&&(b.message.parsed=pp(b.message.content))),C){b.message.tool_calls||(b.message.tool_calls=[]);for(let{index:F,id:D,type:y,function:T,...$}of C){let P=(o=b.message.tool_calls)[F]??(o[F]={});Object.assign(P,$),D&&(P.id=D),y&&(P.type=y),T&&(P.function??(P.function={name:T.name??"",arguments:""})),T?.name&&(P.function.name=T.name),T?.arguments&&(P.function.arguments+=T.arguments,Bd(x(this,gr,"f"),P)&&(P.function.parsed_arguments=pp(P.function.arguments)))}}}return a},Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("chunk",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}toReadableStream(){return new Qt(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}};function E_(r,e){let{id:t,choices:n,created:s,model:i,system_fingerprint:o,...a}=r,u={...a,id:t,choices:n.map(({message:c,finish_reason:l,index:p,logprobs:h,...f})=>{if(!l)throw new N(`missing finish_reason for choice ${p}`);let{content:g=null,function_call:b,tool_calls:_,...I}=c,v=c.role;if(!v)throw new N(`missing role for choice ${p}`);if(b){let{arguments:S,name:C}=b;if(S==null)throw new N(`missing function_call.arguments for choice ${p}`);if(!C)throw new N(`missing function_call.name for choice ${p}`);return{...f,message:{content:g,function_call:{arguments:S,name:C},role:v,refusal:c.refusal??null},finish_reason:l,index:p,logprobs:h}}return _?{...f,index:p,finish_reason:l,logprobs:h,message:{...I,role:v,content:g,refusal:c.refusal??null,tool_calls:_.map((S,C)=>{let{function:j,type:F,id:D,...y}=S,{arguments:T,name:$,...P}=j||{};if(D==null)throw new N(`missing choices[${p}].tool_calls[${C}].id
107
+ ${Ya(r)}`);if(F==null)throw new N(`missing choices[${p}].tool_calls[${C}].type
108
+ ${Ya(r)}`);if($==null)throw new N(`missing choices[${p}].tool_calls[${C}].function.name
109
+ ${Ya(r)}`);if(T==null)throw new N(`missing choices[${p}].tool_calls[${C}].function.arguments
110
+ ${Ya(r)}`);return{...y,id:D,type:F,function:{...P,name:$,arguments:T}}})}}:{...f,message:{...I,content:g,role:v,refusal:c.refusal??null},finish_reason:l,index:p,logprobs:h}}),created:s,model:i,object:"chat.completion",...o?{system_fingerprint:o}:{}};return zd(u,e)}function Ya(r){return JSON.stringify(r)}var so=class r extends wn{static fromReadableStream(e){let t=new r(null);return t._run(()=>t._fromReadableStream(e)),t}static runTools(e,t,n){let s=new r(t),i={...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"runTools"}};return s._run(()=>s._runTools(e,t,i)),s}};var br=class extends E{constructor(){super(...arguments),this.messages=new yn(this._client)}create(e,t){return this._client.post("/chat/completions",{body:e,...t,stream:e.stream??!1})}retrieve(e,t){return this._client.get(O`/chat/completions/${e}`,t)}update(e,t,n){return this._client.post(O`/chat/completions/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/chat/completions",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/chat/completions/${e}`,t)}parse(e,t){return Wd(e.tools),this._client.chat.completions.create(e,{...t,headers:{...t?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap(n=>Zi(n,e))}runTools(e,t){return e.stream?so.runTools(this._client,e,t):no.runTools(this._client,e,t)}stream(e,t){return wn.createChatCompletion(this._client,e,t)}};br.Messages=yn;var $r=class extends E{constructor(){super(...arguments),this.completions=new br(this._client)}};$r.Completions=br;var Xd=Symbol("brand.privateNullableHeaders");function*k_(r){if(!r)return;if(Xd in r){let{values:n,nulls:s}=r;yield*n.entries();for(let i of s)yield[i,null];return}let e=!1,t;r instanceof Headers?t=r.entries():Fl(r)?t=r:(e=!0,t=Object.entries(r??{}));for(let n of t){let s=n[0];if(typeof s!="string")throw new TypeError("expected header name to be a string");let i=Fl(n[1])?n[1]:[n[1]],o=!1;for(let a of i)a!==void 0&&(e&&!o&&(o=!0,yield[s,null]),yield[s,a])}}var R=r=>{let e=new Headers,t=new Set;for(let n of r){let s=new Set;for(let[i,o]of k_(n)){let a=i.toLowerCase();s.has(a)||(e.delete(i),s.add(a)),o===null?(e.delete(i),t.add(a)):(e.append(i,o),t.delete(a))}}return{[Xd]:!0,values:e,nulls:t}};var js=class extends E{create(e,t){return this._client.post("/audio/speech",{body:e,...t,headers:R([{Accept:"application/octet-stream"},t?.headers]),__binaryResponse:!0})}};var Ms=class extends E{create(e,t){return this._client.post("/audio/transcriptions",nt({body:e,...t,stream:e.stream??!1,__metadata:{model:e.model}},this._client))}};var Ds=class extends E{create(e,t){return this._client.post("/audio/translations",nt({body:e,...t,__metadata:{model:e.model}},this._client))}};var tr=class extends E{constructor(){super(...arguments),this.transcriptions=new Ms(this._client),this.translations=new Ds(this._client),this.speech=new js(this._client)}};tr.Transcriptions=Ms;tr.Translations=Ds;tr.Speech=js;var xn=class extends E{create(e,t){return this._client.post("/batches",{body:e,...t})}retrieve(e,t){return this._client.get(O`/batches/${e}`,t)}list(e={},t){return this._client.getAPIList("/batches",W,{query:e,...t})}cancel(e,t){return this._client.post(O`/batches/${e}/cancel`,t)}};var $s=class extends E{create(e,t){return this._client.post("/assistants",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/assistants/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/assistants/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e={},t){return this._client.getAPIList("/assistants",W,{query:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}delete(e,t){return this._client.delete(O`/assistants/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Ls=class extends E{create(e,t){return this._client.post("/realtime/sessions",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Fs=class extends E{create(e,t){return this._client.post("/realtime/transcription_sessions",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}};var Lr=class extends E{constructor(){super(...arguments),this.sessions=new Ls(this._client),this.transcriptionSessions=new Fs(this._client)}};Lr.Sessions=Ls;Lr.TranscriptionSessions=Fs;var Us=class extends E{create(e,t,n){return this._client.post(O`/threads/${e}/messages`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{thread_id:s}=t;return this._client.get(O`/threads/${s}/messages/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/messages/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/threads/${e}/messages`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t,n){let{thread_id:s}=t;return this._client.delete(O`/threads/${s}/messages/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var zs=class extends E{retrieve(e,t,n){let{thread_id:s,run_id:i,...o}=t;return this._client.get(O`/threads/${s}/runs/${i}/steps/${e}`,{query:o,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t,n){let{thread_id:s,...i}=t;return this._client.getAPIList(O`/threads/${s}/runs/${e}/steps`,W,{query:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var Yd=r=>{if(typeof Buffer<"u"){let e=Buffer.from(r,"base64");return Array.from(new Float32Array(e.buffer,e.byteOffset,e.length/Float32Array.BYTES_PER_ELEMENT))}else{let e=atob(r),t=e.length,n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);return Array.from(new Float32Array(n.buffer))}};var kt=r=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[r]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(r)?.trim()};var Re,An,bp,rr,Za,St,On,Bs,vn,tu,st,Qa,eu,ao,io,oo,Zd,Qd,em,tm,rm,nm,sm,yr=class extends Mr{constructor(){super(...arguments),Re.add(this),bp.set(this,[]),rr.set(this,{}),Za.set(this,{}),St.set(this,void 0),On.set(this,void 0),Bs.set(this,void 0),vn.set(this,void 0),tu.set(this,void 0),st.set(this,void 0),Qa.set(this,void 0),eu.set(this,void 0),ao.set(this,void 0)}[(bp=new WeakMap,rr=new WeakMap,Za=new WeakMap,St=new WeakMap,On=new WeakMap,Bs=new WeakMap,vn=new WeakMap,tu=new WeakMap,st=new WeakMap,Qa=new WeakMap,eu=new WeakMap,ao=new WeakMap,Re=new WeakSet,Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("event",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}static fromReadableStream(e){let t=new An;return t._run(()=>t._fromReadableStream(e)),t}async _fromReadableStream(e,t){let n=t?.signal;n&&(n.aborted&&this.controller.abort(),n.addEventListener("abort",()=>this.controller.abort())),this._connected();let s=Qt.fromReadableStream(e,this.controller);for await(let i of s)x(this,Re,"m",io).call(this,i);if(s.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}toReadableStream(){return new Qt(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(e,t,n,s){let i=new An;return i._run(()=>i._runToolAssistantStream(e,t,n,{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),i}async _createToolAssistantStream(e,t,n,s){let i=s?.signal;i&&(i.aborted&&this.controller.abort(),i.addEventListener("abort",()=>this.controller.abort()));let o={...n,stream:!0},a=await e.submitToolOutputs(t,o,{...s,signal:this.controller.signal});this._connected();for await(let u of a)x(this,Re,"m",io).call(this,u);if(a.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}static createThreadAssistantStream(e,t,n){let s=new An;return s._run(()=>s._threadAssistantStream(e,t,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}static createAssistantStream(e,t,n,s){let i=new An;return i._run(()=>i._runAssistantStream(e,t,n,{...s,headers:{...s?.headers,"X-Stainless-Helper-Method":"stream"}})),i}currentEvent(){return x(this,Qa,"f")}currentRun(){return x(this,eu,"f")}currentMessageSnapshot(){return x(this,St,"f")}currentRunStepSnapshot(){return x(this,ao,"f")}async finalRunSteps(){return await this.done(),Object.values(x(this,rr,"f"))}async finalMessages(){return await this.done(),Object.values(x(this,Za,"f"))}async finalRun(){if(await this.done(),!x(this,On,"f"))throw Error("Final run was not received.");return x(this,On,"f")}async _createThreadAssistantStream(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort()));let i={...t,stream:!0},o=await e.createAndRun(i,{...n,signal:this.controller.signal});this._connected();for await(let a of o)x(this,Re,"m",io).call(this,a);if(o.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}async _createAssistantStream(e,t,n,s){let i=s?.signal;i&&(i.aborted&&this.controller.abort(),i.addEventListener("abort",()=>this.controller.abort()));let o={...n,stream:!0},a=await e.create(t,o,{...s,signal:this.controller.signal});this._connected();for await(let u of a)x(this,Re,"m",io).call(this,u);if(a.controller.signal?.aborted)throw new fe;return this._addRun(x(this,Re,"m",oo).call(this))}static accumulateDelta(e,t){for(let[n,s]of Object.entries(t)){if(!e.hasOwnProperty(n)){e[n]=s;continue}let i=e[n];if(i==null){e[n]=s;continue}if(n==="index"||n==="type"){e[n]=s;continue}if(typeof i=="string"&&typeof s=="string")i+=s;else if(typeof i=="number"&&typeof s=="number")i+=s;else if(Is(i)&&Is(s))i=this.accumulateDelta(i,s);else if(Array.isArray(i)&&Array.isArray(s)){if(i.every(o=>typeof o=="string"||typeof o=="number")){i.push(...s);continue}for(let o of s){if(!Is(o))throw new Error(`Expected array delta entry to be an object but got: ${o}`);let a=o.index;if(a==null)throw console.error(o),new Error("Expected array delta entry to have an `index` property");if(typeof a!="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${a}`);let u=i[a];u==null?i.push(o):i[a]=this.accumulateDelta(u,o)}continue}else throw Error(`Unhandled record type: ${n}, deltaValue: ${s}, accValue: ${i}`);e[n]=i}return e}_addRun(e){return e}async _threadAssistantStream(e,t,n){return await this._createThreadAssistantStream(t,e,n)}async _runAssistantStream(e,t,n,s){return await this._createAssistantStream(t,e,n,s)}async _runToolAssistantStream(e,t,n,s){return await this._createToolAssistantStream(t,e,n,s)}};An=yr,io=function(e){if(!this.ended)switch(L(this,Qa,e,"f"),x(this,Re,"m",em).call(this,e),e.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":x(this,Re,"m",sm).call(this,e);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":x(this,Re,"m",Qd).call(this,e);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":x(this,Re,"m",Zd).call(this,e);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:}},oo=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");if(!x(this,On,"f"))throw Error("Final run has not been received");return x(this,On,"f")},Zd=function(e){let[t,n]=x(this,Re,"m",rm).call(this,e,x(this,St,"f"));L(this,St,t,"f"),x(this,Za,"f")[t.id]=t;for(let s of n){let i=t.content[s.index];i?.type=="text"&&this._emit("textCreated",i.text)}switch(e.event){case"thread.message.created":this._emit("messageCreated",e.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",e.data.delta,t),e.data.delta.content)for(let s of e.data.delta.content){if(s.type=="text"&&s.text){let i=s.text,o=t.content[s.index];if(o&&o.type=="text")this._emit("textDelta",i,o.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(s.index!=x(this,Bs,"f")){if(x(this,vn,"f"))switch(x(this,vn,"f").type){case"text":this._emit("textDone",x(this,vn,"f").text,x(this,St,"f"));break;case"image_file":this._emit("imageFileDone",x(this,vn,"f").image_file,x(this,St,"f"));break}L(this,Bs,s.index,"f")}L(this,vn,t.content[s.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(x(this,Bs,"f")!==void 0){let s=e.data.content[x(this,Bs,"f")];if(s)switch(s.type){case"image_file":this._emit("imageFileDone",s.image_file,x(this,St,"f"));break;case"text":this._emit("textDone",s.text,x(this,St,"f"));break}}x(this,St,"f")&&this._emit("messageDone",e.data),L(this,St,void 0,"f")}},Qd=function(e){let t=x(this,Re,"m",tm).call(this,e);switch(L(this,ao,t,"f"),e.event){case"thread.run.step.created":this._emit("runStepCreated",e.data);break;case"thread.run.step.delta":let n=e.data.delta;if(n.step_details&&n.step_details.type=="tool_calls"&&n.step_details.tool_calls&&t.step_details.type=="tool_calls")for(let i of n.step_details.tool_calls)i.index==x(this,tu,"f")?this._emit("toolCallDelta",i,t.step_details.tool_calls[i.index]):(x(this,st,"f")&&this._emit("toolCallDone",x(this,st,"f")),L(this,tu,i.index,"f"),L(this,st,t.step_details.tool_calls[i.index],"f"),x(this,st,"f")&&this._emit("toolCallCreated",x(this,st,"f")));this._emit("runStepDelta",e.data.delta,t);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":L(this,ao,void 0,"f"),e.data.step_details.type=="tool_calls"&&x(this,st,"f")&&(this._emit("toolCallDone",x(this,st,"f")),L(this,st,void 0,"f")),this._emit("runStepDone",e.data,t);break;case"thread.run.step.in_progress":break}},em=function(e){x(this,bp,"f").push(e),this._emit("event",e)},tm=function(e){switch(e.event){case"thread.run.step.created":return x(this,rr,"f")[e.data.id]=e.data,e.data;case"thread.run.step.delta":let t=x(this,rr,"f")[e.data.id];if(!t)throw Error("Received a RunStepDelta before creation of a snapshot");let n=e.data;if(n.delta){let s=An.accumulateDelta(t,n.delta);x(this,rr,"f")[e.data.id]=s}return x(this,rr,"f")[e.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":x(this,rr,"f")[e.data.id]=e.data;break}if(x(this,rr,"f")[e.data.id])return x(this,rr,"f")[e.data.id];throw new Error("No snapshot available")},rm=function(e,t){let n=[];switch(e.event){case"thread.message.created":return[e.data,n];case"thread.message.delta":if(!t)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let s=e.data;if(s.delta.content)for(let i of s.delta.content)if(i.index in t.content){let o=t.content[i.index];t.content[i.index]=x(this,Re,"m",nm).call(this,i,o)}else t.content[i.index]=i,n.push(i);return[t,n];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(t)return[t,n];throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},nm=function(e,t){return An.accumulateDelta(t,e)},sm=function(e){switch(L(this,eu,e.data,"f"),e.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":L(this,On,e.data,"f"),x(this,st,"f")&&(this._emit("toolCallDone",x(this,st,"f")),L(this,st,void 0,"f"));break;case"thread.run.cancelling":break}};var Pn=class extends E{constructor(){super(...arguments),this.steps=new zs(this._client)}create(e,t,n){let{include:s,...i}=t;return this._client.post(O`/threads/${e}/runs`,{query:{include:s},body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers]),stream:t.stream??!1})}retrieve(e,t,n){let{thread_id:s}=t;return this._client.get(O`/threads/${s}/runs/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/runs/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/threads/${e}/runs`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}cancel(e,t,n){let{thread_id:s}=t;return this._client.post(O`/threads/${s}/runs/${e}/cancel`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t,n);return await this.poll(s.id,{thread_id:e},n)}createAndStream(e,t,n){return yr.createAssistantStream(e,this._client.beta.threads.runs,t,n)}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:i,response:o}=await this.retrieve(e,t,{...n,headers:{...n?.headers,...s}}).withResponse();switch(i.status){case"queued":case"in_progress":case"cancelling":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=o.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return i}}}stream(e,t,n){return yr.createAssistantStream(e,this._client.beta.threads.runs,t,n)}submitToolOutputs(e,t,n){let{thread_id:s,...i}=t;return this._client.post(O`/threads/${s}/runs/${e}/submit_tool_outputs`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers]),stream:t.stream??!1})}async submitToolOutputsAndPoll(e,t,n){let s=await this.submitToolOutputs(e,t,n);return await this.poll(s.id,t,n)}submitToolOutputsStream(e,t,n){return yr.createToolAssistantStream(e,this._client.beta.threads.runs,t,n)}};Pn.Steps=zs;var Fr=class extends E{constructor(){super(...arguments),this.runs=new Pn(this._client),this.messages=new Us(this._client)}create(e={},t){return this._client.post("/threads",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/threads/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/threads/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t){return this._client.delete(O`/threads/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}createAndRun(e,t){return this._client.post("/threads/runs",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers]),stream:e.stream??!1})}async createAndRunPoll(e,t){let n=await this.createAndRun(e,t);return await this.runs.poll(n.id,{thread_id:n.thread_id},t)}createAndRunStream(e,t){return yr.createThreadAssistantStream(e,this._client.beta.threads,t)}};Fr.Runs=Pn;Fr.Messages=Us;var nr=class extends E{constructor(){super(...arguments),this.realtime=new Lr(this._client),this.assistants=new $s(this._client),this.threads=new Fr(this._client)}};nr.Realtime=Lr;nr.Assistants=$s;nr.Threads=Fr;var En=class extends E{create(e,t){return this._client.post("/completions",{body:e,...t,stream:e.stream??!1})}};var Ks=class extends E{retrieve(e,t,n){let{container_id:s}=t;return this._client.get(O`/containers/${s}/files/${e}/content`,{...n,headers:R([{Accept:"application/binary"},n?.headers]),__binaryResponse:!0})}};var In=class extends E{constructor(){super(...arguments),this.content=new Ks(this._client)}create(e,t,n){return this._client.post(O`/containers/${e}/files`,nt({body:t,...n},this._client))}retrieve(e,t,n){let{container_id:s}=t;return this._client.get(O`/containers/${s}/files/${e}`,n)}list(e,t={},n){return this._client.getAPIList(O`/containers/${e}/files`,W,{query:t,...n})}delete(e,t,n){let{container_id:s}=t;return this._client.delete(O`/containers/${s}/files/${e}`,{...n,headers:R([{Accept:"*/*"},n?.headers])})}};In.Content=Ks;var Ur=class extends E{constructor(){super(...arguments),this.files=new In(this._client)}create(e,t){return this._client.post("/containers",{body:e,...t})}retrieve(e,t){return this._client.get(O`/containers/${e}`,t)}list(e={},t){return this._client.getAPIList("/containers",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/containers/${e}`,{...t,headers:R([{Accept:"*/*"},t?.headers])})}};Ur.Files=In;var kn=class extends E{create(e,t){let n=!!e.encoding_format,s=n?e.encoding_format:"base64";n&&me(this._client).debug("embeddings/user defined encoding_format:",e.encoding_format);let i=this._client.post("/embeddings",{body:{...e,encoding_format:s},...t});return n?i:(me(this._client).debug("embeddings/decoding base64 embeddings from base64"),i._thenUnwrap(o=>(o&&o.data&&o.data.forEach(a=>{let u=a.embedding;a.embedding=Yd(u)}),o)))}};var Ws=class extends E{retrieve(e,t,n){let{eval_id:s,run_id:i}=t;return this._client.get(O`/evals/${s}/runs/${i}/output_items/${e}`,n)}list(e,t,n){let{eval_id:s,...i}=t;return this._client.getAPIList(O`/evals/${s}/runs/${e}/output_items`,W,{query:i,...n})}};var Sn=class extends E{constructor(){super(...arguments),this.outputItems=new Ws(this._client)}create(e,t,n){return this._client.post(O`/evals/${e}/runs`,{body:t,...n})}retrieve(e,t,n){let{eval_id:s}=t;return this._client.get(O`/evals/${s}/runs/${e}`,n)}list(e,t={},n){return this._client.getAPIList(O`/evals/${e}/runs`,W,{query:t,...n})}delete(e,t,n){let{eval_id:s}=t;return this._client.delete(O`/evals/${s}/runs/${e}`,n)}cancel(e,t,n){let{eval_id:s}=t;return this._client.post(O`/evals/${s}/runs/${e}`,n)}};Sn.OutputItems=Ws;var zr=class extends E{constructor(){super(...arguments),this.runs=new Sn(this._client)}create(e,t){return this._client.post("/evals",{body:e,...t})}retrieve(e,t){return this._client.get(O`/evals/${e}`,t)}update(e,t,n){return this._client.post(O`/evals/${e}`,{body:t,...n})}list(e={},t){return this._client.getAPIList("/evals",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/evals/${e}`,t)}};zr.Runs=Sn;var Cn=class extends E{create(e,t){return this._client.post("/files",nt({body:e,...t},this._client))}retrieve(e,t){return this._client.get(O`/files/${e}`,t)}list(e={},t){return this._client.getAPIList("/files",W,{query:e,...t})}delete(e,t){return this._client.delete(O`/files/${e}`,t)}content(e,t){return this._client.get(O`/files/${e}/content`,{...t,headers:R([{Accept:"application/binary"},t?.headers]),__binaryResponse:!0})}async waitForProcessing(e,{pollInterval:t=5e3,maxWait:n=1800*1e3}={}){let s=new Set(["processed","error","deleted"]),i=Date.now(),o=await this.retrieve(e);for(;!o.status||!s.has(o.status);)if(await Yt(t),o=await this.retrieve(e),Date.now()-i>n)throw new Jt({message:`Giving up on waiting for file ${e} to finish processing after ${n} milliseconds.`});return o}};var Hs=class extends E{};var Vs=class extends E{run(e,t){return this._client.post("/fine_tuning/alpha/graders/run",{body:e,...t})}validate(e,t){return this._client.post("/fine_tuning/alpha/graders/validate",{body:e,...t})}};var Tn=class extends E{constructor(){super(...arguments),this.graders=new Vs(this._client)}};Tn.Graders=Vs;var Gs=class extends E{create(e,t,n){return this._client.getAPIList(O`/fine_tuning/checkpoints/${e}/permissions`,er,{body:t,method:"post",...n})}retrieve(e,t={},n){return this._client.get(O`/fine_tuning/checkpoints/${e}/permissions`,{query:t,...n})}delete(e,t,n){let{fine_tuned_model_checkpoint:s}=t;return this._client.delete(O`/fine_tuning/checkpoints/${s}/permissions/${e}`,n)}};var Rn=class extends E{constructor(){super(...arguments),this.permissions=new Gs(this._client)}};Rn.Permissions=Gs;var qs=class extends E{list(e,t={},n){return this._client.getAPIList(O`/fine_tuning/jobs/${e}/checkpoints`,W,{query:t,...n})}};var Nn=class extends E{constructor(){super(...arguments),this.checkpoints=new qs(this._client)}create(e,t){return this._client.post("/fine_tuning/jobs",{body:e,...t})}retrieve(e,t){return this._client.get(O`/fine_tuning/jobs/${e}`,t)}list(e={},t){return this._client.getAPIList("/fine_tuning/jobs",W,{query:e,...t})}cancel(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/cancel`,t)}listEvents(e,t={},n){return this._client.getAPIList(O`/fine_tuning/jobs/${e}/events`,W,{query:t,...n})}pause(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/pause`,t)}resume(e,t){return this._client.post(O`/fine_tuning/jobs/${e}/resume`,t)}};Nn.Checkpoints=qs;var Ct=class extends E{constructor(){super(...arguments),this.methods=new Hs(this._client),this.jobs=new Nn(this._client),this.checkpoints=new Rn(this._client),this.alpha=new Tn(this._client)}};Ct.Methods=Hs;Ct.Jobs=Nn;Ct.Checkpoints=Rn;Ct.Alpha=Tn;var Js=class extends E{};var Br=class extends E{constructor(){super(...arguments),this.graderModels=new Js(this._client)}};Br.GraderModels=Js;var jn=class extends E{createVariation(e,t){return this._client.post("/images/variations",nt({body:e,...t},this._client))}edit(e,t){return this._client.post("/images/edits",nt({body:e,...t,stream:e.stream??!1},this._client))}generate(e,t){return this._client.post("/images/generations",{body:e,...t,stream:e.stream??!1})}};var Mn=class extends E{retrieve(e,t){return this._client.get(O`/models/${e}`,t)}list(e){return this._client.getAPIList("/models",er,e)}delete(e,t){return this._client.delete(O`/models/${e}`,t)}};var Dn=class extends E{create(e,t){return this._client.post("/moderations",{body:e,...t})}};function im(r,e){return!e||!Q_(e)?{...r,output_parsed:null,output:r.output.map(t=>t.type==="function_call"?{...t,parsed_arguments:null}:t.type==="message"?{...t,content:t.content.map(n=>({...n,parsed:null}))}:t)}:yp(r,e)}function yp(r,e){let t=r.output.map(s=>{if(s.type==="function_call")return{...s,parsed_arguments:rw(e,s)};if(s.type==="message"){let i=s.content.map(o=>o.type==="output_text"?{...o,parsed:Z_(e,o.text)}:o);return{...s,content:i}}return s}),n=Object.assign({},r,{output:t});return Object.getOwnPropertyDescriptor(r,"output_text")||ru(n),Object.defineProperty(n,"output_parsed",{enumerable:!0,get(){for(let s of n.output)if(s.type==="message"){for(let i of s.content)if(i.type==="output_text"&&i.parsed!==null)return i.parsed}return null}}),n}function Z_(r,e){return r.text?.format?.type!=="json_schema"?null:"$parseRaw"in r.text?.format?(r.text?.format).$parseRaw(e):JSON.parse(e)}function Q_(r){return!!Yi(r.text?.format)}function ew(r){return r?.$brand==="auto-parseable-tool"}function tw(r,e){return r.find(t=>t.type==="function"&&t.name===e)}function rw(r,e){let t=tw(r.tools??[],e.name);return{...e,...e,parsed_arguments:ew(t)?t.$parseRaw(e.arguments):t?.strict?JSON.parse(e.arguments):null}}function ru(r){let e=[];for(let t of r.output)if(t.type==="message")for(let n of t.content)n.type==="output_text"&&e.push(n.text);r.output_text=e.join("")}var Xs,nu,Kr,su,om,am,um,cm,iu=class r extends Mr{constructor(e){super(),Xs.add(this),nu.set(this,void 0),Kr.set(this,void 0),su.set(this,void 0),L(this,nu,e,"f")}static createResponse(e,t,n){let s=new r(t);return s._run(()=>s._createOrRetrieveResponse(e,t,{...n,headers:{...n?.headers,"X-Stainless-Helper-Method":"stream"}})),s}async _createOrRetrieveResponse(e,t,n){let s=n?.signal;s&&(s.aborted&&this.controller.abort(),s.addEventListener("abort",()=>this.controller.abort())),x(this,Xs,"m",om).call(this);let i,o=null;"response_id"in t?(i=await e.responses.retrieve(t.response_id,{stream:!0},{...n,signal:this.controller.signal,stream:!0}),o=t.starting_after??null):i=await e.responses.create({...t,stream:!0},{...n,signal:this.controller.signal}),this._connected();for await(let a of i)x(this,Xs,"m",am).call(this,a,o);if(i.controller.signal?.aborted)throw new fe;return x(this,Xs,"m",um).call(this)}[(nu=new WeakMap,Kr=new WeakMap,su=new WeakMap,Xs=new WeakSet,om=function(){this.ended||L(this,Kr,void 0,"f")},am=function(t,n){if(this.ended)return;let s=(o,a)=>{(n==null||a.sequence_number>n)&&this._emit(o,a)},i=x(this,Xs,"m",cm).call(this,t);switch(s("event",t),t.type){case"response.output_text.delta":{let o=i.output[t.output_index];if(!o)throw new N(`missing output at index ${t.output_index}`);if(o.type==="message"){let a=o.content[t.content_index];if(!a)throw new N(`missing content at index ${t.content_index}`);if(a.type!=="output_text")throw new N(`expected content to be 'output_text', got ${a.type}`);s("response.output_text.delta",{...t,snapshot:a.text})}break}case"response.function_call_arguments.delta":{let o=i.output[t.output_index];if(!o)throw new N(`missing output at index ${t.output_index}`);o.type==="function_call"&&s("response.function_call_arguments.delta",{...t,snapshot:o.arguments});break}default:s(t.type,t);break}},um=function(){if(this.ended)throw new N("stream has ended, this shouldn't happen");let t=x(this,Kr,"f");if(!t)throw new N("request ended without sending any events");L(this,Kr,void 0,"f");let n=nw(t,x(this,nu,"f"));return L(this,su,n,"f"),n},cm=function(t){let n=x(this,Kr,"f");if(!n){if(t.type!=="response.created")throw new N(`When snapshot hasn't been set yet, expected 'response.created' event, got ${t.type}`);return n=L(this,Kr,t.response,"f"),n}switch(t.type){case"response.output_item.added":{n.output.push(t.item);break}case"response.content_part.added":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);s.type==="message"&&s.content.push(t.part);break}case"response.output_text.delta":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);if(s.type==="message"){let i=s.content[t.content_index];if(!i)throw new N(`missing content at index ${t.content_index}`);if(i.type!=="output_text")throw new N(`expected content to be 'output_text', got ${i.type}`);i.text+=t.delta}break}case"response.function_call_arguments.delta":{let s=n.output[t.output_index];if(!s)throw new N(`missing output at index ${t.output_index}`);s.type==="function_call"&&(s.arguments+=t.delta);break}case"response.completed":{L(this,Kr,t.response,"f");break}}return n},Symbol.asyncIterator)](){let e=[],t=[],n=!1;return this.on("event",s=>{let i=t.shift();i?i.resolve(s):e.push(s)}),this.on("end",()=>{n=!0;for(let s of t)s.resolve(void 0);t.length=0}),this.on("abort",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),this.on("error",s=>{n=!0;for(let i of t)i.reject(s);t.length=0}),{next:async()=>e.length?{value:e.shift(),done:!1}:n?{value:void 0,done:!0}:new Promise((i,o)=>t.push({resolve:i,reject:o})).then(i=>i?{value:i,done:!1}:{value:void 0,done:!0}),return:async()=>(this.abort(),{value:void 0,done:!0})}}async finalResponse(){await this.done();let e=x(this,su,"f");if(!e)throw new N("stream ended without producing a ChatCompletion");return e}};function nw(r,e){return im(r,e)}var Ys=class extends E{list(e,t={},n){return this._client.getAPIList(O`/responses/${e}/input_items`,W,{query:t,...n})}};var Wr=class extends E{constructor(){super(...arguments),this.inputItems=new Ys(this._client)}create(e,t){return this._client.post("/responses",{body:e,...t,stream:e.stream??!1})._thenUnwrap(n=>("object"in n&&n.object==="response"&&ru(n),n))}retrieve(e,t={},n){return this._client.get(O`/responses/${e}`,{query:t,...n,stream:t?.stream??!1})._thenUnwrap(s=>("object"in s&&s.object==="response"&&ru(s),s))}delete(e,t){return this._client.delete(O`/responses/${e}`,{...t,headers:R([{Accept:"*/*"},t?.headers])})}parse(e,t){return this._client.responses.create(e,t)._thenUnwrap(n=>yp(n,e))}stream(e,t){return iu.createResponse(this._client,e,t)}cancel(e,t){return this._client.post(O`/responses/${e}/cancel`,t)}};Wr.InputItems=Ys;var Zs=class extends E{create(e,t,n){return this._client.post(O`/uploads/${e}/parts`,nt({body:t,...n},this._client))}};var Hr=class extends E{constructor(){super(...arguments),this.parts=new Zs(this._client)}create(e,t){return this._client.post("/uploads",{body:e,...t})}cancel(e,t){return this._client.post(O`/uploads/${e}/cancel`,t)}complete(e,t,n){return this._client.post(O`/uploads/${e}/complete`,{body:t,...n})}};Hr.Parts=Zs;var lm=async r=>{let e=await Promise.allSettled(r),t=e.filter(s=>s.status==="rejected");if(t.length){for(let s of t)console.error(s.reason);throw new Error(`${t.length} promise(s) failed - see the above errors`)}let n=[];for(let s of e)s.status==="fulfilled"&&n.push(s.value);return n};var Qs=class extends E{create(e,t,n){return this._client.post(O`/vector_stores/${e}/file_batches`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{vector_store_id:s}=t;return this._client.get(O`/vector_stores/${s}/file_batches/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}cancel(e,t,n){let{vector_store_id:s}=t;return this._client.post(O`/vector_stores/${s}/file_batches/${e}/cancel`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t);return await this.poll(e,s.id,n)}listFiles(e,t,n){let{vector_store_id:s,...i}=t;return this._client.getAPIList(O`/vector_stores/${s}/file_batches/${e}/files`,W,{query:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let{data:i,response:o}=await this.retrieve(t,{vector_store_id:e},{...n,headers:s}).withResponse();switch(i.status){case"in_progress":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=o.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"failed":case"cancelled":case"completed":return i}}}async uploadAndPoll(e,{files:t,fileIds:n=[]},s){if(t==null||t.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let i=s?.maxConcurrency??5,o=Math.min(i,t.length),a=this._client,u=t.values(),c=[...n];async function l(h){for(let f of h){let g=await a.files.create({file:f,purpose:"assistants"},s);c.push(g.id)}}let p=Array(o).fill(u).map(l);return await lm(p),await this.createAndPoll(e,{file_ids:c})}};var ei=class extends E{create(e,t,n){return this._client.post(O`/vector_stores/${e}/files`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}retrieve(e,t,n){let{vector_store_id:s}=t;return this._client.get(O`/vector_stores/${s}/files/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}update(e,t,n){let{vector_store_id:s,...i}=t;return this._client.post(O`/vector_stores/${s}/files/${e}`,{body:i,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e,t={},n){return this._client.getAPIList(O`/vector_stores/${e}/files`,W,{query:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}delete(e,t,n){let{vector_store_id:s}=t;return this._client.delete(O`/vector_stores/${s}/files/${e}`,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}async createAndPoll(e,t,n){let s=await this.create(e,t,n);return await this.poll(e,s.id,n)}async poll(e,t,n){let s=R([n?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":n?.pollIntervalMs?.toString()??void 0}]);for(;;){let i=await this.retrieve(t,{vector_store_id:e},{...n,headers:s}).withResponse(),o=i.data;switch(o.status){case"in_progress":let a=5e3;if(n?.pollIntervalMs)a=n.pollIntervalMs;else{let u=i.response.headers.get("openai-poll-after-ms");if(u){let c=parseInt(u);isNaN(c)||(a=c)}}await Yt(a);break;case"failed":case"completed":return o}}}async upload(e,t,n){let s=await this._client.files.create({file:t,purpose:"assistants"},n);return this.create(e,{file_id:s.id},n)}async uploadAndPoll(e,t,n){let s=await this.upload(e,t,n);return await this.poll(e,s.id,n)}content(e,t,n){let{vector_store_id:s}=t;return this._client.getAPIList(O`/vector_stores/${s}/files/${e}/content`,er,{...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};var _r=class extends E{constructor(){super(...arguments),this.files=new ei(this._client),this.fileBatches=new Qs(this._client)}create(e,t){return this._client.post("/vector_stores",{body:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}retrieve(e,t){return this._client.get(O`/vector_stores/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}update(e,t,n){return this._client.post(O`/vector_stores/${e}`,{body:t,...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}list(e={},t){return this._client.getAPIList("/vector_stores",W,{query:e,...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}delete(e,t){return this._client.delete(O`/vector_stores/${e}`,{...t,headers:R([{"OpenAI-Beta":"assistants=v2"},t?.headers])})}search(e,t,n){return this._client.getAPIList(O`/vector_stores/${e}/search`,er,{body:t,method:"post",...n,headers:R([{"OpenAI-Beta":"assistants=v2"},n?.headers])})}};_r.Files=ei;_r.FileBatches=Qs;var ti,pm,ou,$n=class extends E{constructor(){super(...arguments),ti.add(this)}async unwrap(e,t,n=this._client.webhookSecret,s=300){return await this.verifySignature(e,t,n,s),JSON.parse(e)}async verifySignature(e,t,n=this._client.webhookSecret,s=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!="function"||typeof crypto.subtle.verify!="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");x(this,ti,"m",pm).call(this,n);let i=R([t]).values,o=x(this,ti,"m",ou).call(this,i,"webhook-signature"),a=x(this,ti,"m",ou).call(this,i,"webhook-timestamp"),u=x(this,ti,"m",ou).call(this,i,"webhook-id"),c=parseInt(a,10);if(isNaN(c))throw new Xt("Invalid webhook timestamp format");let l=Math.floor(Date.now()/1e3);if(l-c>s)throw new Xt("Webhook timestamp is too old");if(c>l+s)throw new Xt("Webhook timestamp is too new");let p=o.split(" ").map(b=>b.startsWith("v1,")?b.substring(3):b),h=n.startsWith("whsec_")?Buffer.from(n.replace("whsec_",""),"base64"):Buffer.from(n,"utf-8"),f=u?`${u}.${a}.${e}`:`${a}.${e}`,g=await crypto.subtle.importKey("raw",h,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let b of p)try{let _=Buffer.from(b,"base64");if(await crypto.subtle.verify("HMAC",g,_,new TextEncoder().encode(f)))return}catch{continue}throw new Xt("The given webhook signature does not match the expected signature")}};ti=new WeakSet,pm=function(e){if(typeof e!="string"||e.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},ou=function(e,t){if(!e)throw new Error("Headers are required");let n=e.get(t);if(n==null)throw new Error(`Missing required header: ${t}`);return n};var _p,wp,au,fm,z=class{constructor({baseURL:e=kt("OPENAI_BASE_URL"),apiKey:t=kt("OPENAI_API_KEY"),organization:n=kt("OPENAI_ORG_ID")??null,project:s=kt("OPENAI_PROJECT_ID")??null,webhookSecret:i=kt("OPENAI_WEBHOOK_SECRET")??null,...o}={}){if(_p.add(this),au.set(this,void 0),this.completions=new En(this),this.chat=new $r(this),this.embeddings=new kn(this),this.files=new Cn(this),this.images=new jn(this),this.audio=new tr(this),this.moderations=new Dn(this),this.models=new Mn(this),this.fineTuning=new Ct(this),this.graders=new Br(this),this.vectorStores=new _r(this),this.webhooks=new $n(this),this.beta=new nr(this),this.batches=new xn(this),this.uploads=new Hr(this),this.responses=new Wr(this),this.evals=new zr(this),this.containers=new Ur(this),t===void 0)throw new N("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");let a={apiKey:t,organization:n,project:s,webhookSecret:i,...o,baseURL:e||"https://api.openai.com/v1"};if(!a.dangerouslyAllowBrowser&&wd())throw new N(`It looks like you're running in a browser-like environment.
111
+
112
+ This is disabled by default, as it risks exposing your secret API credentials to attackers.
113
+ If you understand the risks and have appropriate mitigations in place,
114
+ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
115
+
116
+ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
117
+
118
+ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
119
+ `);this.baseURL=a.baseURL,this.timeout=a.timeout??wp.DEFAULT_TIMEOUT,this.logger=a.logger??console;let u="warn";this.logLevel=u,this.logLevel=Jl(a.logLevel,"ClientOptions.logLevel",this)??Jl(kt("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??u,this.fetchOptions=a.fetchOptions,this.maxRetries=a.maxRetries??2,this.fetch=a.fetch??vd(),L(this,au,Od,"f"),this._options=a,this.apiKey=t,this.organization=n,this.project=s,this.webhookSecret=i}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t}){}async authHeaders(e){return R([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(e){return Gl(e,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${jr}`}defaultIdempotencyKey(){return`stainless-node-retry-${Ll()}`}makeStatusError(e,t,n,s){return _e.generate(e,t,n,s)}buildURL(e,t,n){let s=!x(this,_p,"m",fm).call(this)&&n||this.baseURL,i=pd(e)?new URL(e):new URL(s+(s.endsWith("/")&&e.startsWith("/")?e.slice(1):e)),o=this.defaultQuery();return hd(o)||(t={...o,...t}),typeof t=="object"&&t&&!Array.isArray(t)&&(i.search=this.stringifyQuery(t)),i.toString()}async prepareOptions(e){}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest("get",e,t)}post(e,t){return this.methodRequest("post",e,t)}patch(e,t){return this.methodRequest("patch",e,t)}put(e,t){return this.methodRequest("put",e,t)}delete(e,t){return this.methodRequest("delete",e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(s=>({method:e,path:t,...s})))}request(e,t=null){return new bn(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){let s=await e,i=s.maxRetries??this.maxRetries;t==null&&(t=i),await this.prepareOptions(s);let{req:o,url:a,timeout:u}=await this.buildRequest(s,{retryCount:i-t});await this.prepareRequest(o,{url:a,options:s});let c="log_"+(Math.random()*(1<<24)|0).toString(16).padStart(6,"0"),l=n===void 0?"":`, retryOf: ${n}`,p=Date.now();if(me(this).debug(`[${c}] sending request`,dr({retryOfRequestLogID:n,method:s.method,url:a,options:s,headers:o.headers})),s.signal?.aborted)throw new fe;let h=new AbortController,f=await this.fetchWithTimeout(a,o,u,h).catch(Ki),g=Date.now();if(f instanceof Error){let I=`retrying, ${t} attempts remaining`;if(s.signal?.aborted)throw new fe;let v=Bi(f)||/timed? ?out/i.test(String(f)+("cause"in f?String(f.cause):""));if(t)return me(this).info(`[${c}] connection ${v?"timed out":"failed"} - ${I}`),me(this).debug(`[${c}] connection ${v?"timed out":"failed"} (${I})`,dr({retryOfRequestLogID:n,url:a,durationMs:g-p,message:f.message})),this.retryRequest(s,t,n??c);throw me(this).info(`[${c}] connection ${v?"timed out":"failed"} - error; no more retries left`),me(this).debug(`[${c}] connection ${v?"timed out":"failed"} (error; no more retries left)`,dr({retryOfRequestLogID:n,url:a,durationMs:g-p,message:f.message})),v?new Jt:new Nr({cause:f})}let b=[...f.headers.entries()].filter(([I])=>I==="x-request-id").map(([I,v])=>", "+I+": "+JSON.stringify(v)).join(""),_=`[${c}${l}${b}] ${o.method} ${a} ${f.ok?"succeeded":"failed"} with status ${f.status} in ${g-p}ms`;if(!f.ok){let I=await this.shouldRetry(f);if(t&&I){let D=`retrying, ${t} attempts remaining`;return await Ad(f.body),me(this).info(`${_} - ${D}`),me(this).debug(`[${c}] response error (${D})`,dr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:g-p})),this.retryRequest(s,t,n??c,f.headers)}let v=I?"error; no more retries left":"error; not retryable";me(this).info(`${_} - ${v}`);let S=await f.text().catch(D=>Ki(D).message),C=gd(S),j=C?void 0:S;throw me(this).debug(`[${c}] response error (${v})`,dr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,message:j,durationMs:Date.now()-p})),this.makeStatusError(f.status,C,j,f.headers)}return me(this).info(_),me(this).debug(`[${c}] response start`,dr({retryOfRequestLogID:n,url:f.url,status:f.status,headers:f.headers,durationMs:g-p})),{response:f,options:s,controller:h,requestLogID:c,retryOfRequestLogID:n,startTime:p}}getAPIList(e,t,n){return this.requestAPIList(t,{method:"get",path:e,...n})}requestAPIList(e,t){let n=this.makeRequest(t,null,void 0);return new Gi(this,n,e)}async fetchWithTimeout(e,t,n,s){let{signal:i,method:o,...a}=t||{};i&&i.addEventListener("abort",()=>s.abort());let u=setTimeout(()=>s.abort(),n),c=globalThis.ReadableStream&&a.body instanceof globalThis.ReadableStream||typeof a.body=="object"&&a.body!==null&&Symbol.asyncIterator in a.body,l={signal:s.signal,...c?{duplex:"half"}:{},method:"GET",...a};o&&(l.method=o.toUpperCase());try{return await this.fetch.call(void 0,e,l)}finally{clearTimeout(u)}}async shouldRetry(e){let t=e.headers.get("x-should-retry");return t==="true"?!0:t==="false"?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,s){let i,o=s?.get("retry-after-ms");if(o){let u=parseFloat(o);Number.isNaN(u)||(i=u)}let a=s?.get("retry-after");if(a&&!i){let u=parseFloat(a);Number.isNaN(u)?i=Date.parse(a)-Date.now():i=u*1e3}if(!(i&&0<=i&&i<60*1e3)){let u=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(t,u)}return await Yt(i),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){let i=t-e,o=Math.min(.5*Math.pow(2,i),8),a=1-Math.random()*.25;return o*a*1e3}async buildRequest(e,{retryCount:t=0}={}){let n={...e},{method:s,path:i,query:o,defaultBaseURL:a}=n,u=this.buildURL(i,o,a);"timeout"in n&&md("timeout",n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:c,body:l}=this.buildBody({options:n}),p=await this.buildHeaders({options:e,method:s,bodyHeaders:c,retryCount:t});return{req:{method:s,headers:p,...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&l instanceof globalThis.ReadableStream&&{duplex:"half"},...l&&{body:l},...this.fetchOptions??{},...n.fetchOptions??{}},url:u,timeout:n.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:s}){let i={};this.idempotencyHeader&&t!=="get"&&(e.idempotencyKey||(e.idempotencyKey=this.defaultIdempotencyKey()),i[this.idempotencyHeader]=e.idempotencyKey);let o=R([i,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(s),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...xd(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(o),o.values}buildBody({options:{body:e,headers:t}}){if(!e)return{bodyHeaders:void 0,body:void 0};let n=R([t]);return ArrayBuffer.isView(e)||e instanceof ArrayBuffer||e instanceof DataView||typeof e=="string"&&n.values.has("content-type")||e instanceof Blob||e instanceof FormData||e instanceof URLSearchParams||globalThis.ReadableStream&&e instanceof globalThis.ReadableStream?{bodyHeaders:void 0,body:e}:typeof e=="object"&&(Symbol.asyncIterator in e||Symbol.iterator in e&&"next"in e&&typeof e.next=="function")?{bodyHeaders:void 0,body:ja(e)}:x(this,au,"f").call(this,{body:e,headers:n})}};wp=z,au=new WeakMap,_p=new WeakSet,fm=function(){return this.baseURL!=="https://api.openai.com/v1"};z.OpenAI=wp;z.DEFAULT_TIMEOUT=6e5;z.OpenAIError=N;z.APIError=_e;z.APIConnectionError=Nr;z.APIConnectionTimeoutError=Jt;z.APIUserAbortError=fe;z.NotFoundError=ws;z.ConflictError=xs;z.RateLimitError=As;z.BadRequestError=bs;z.AuthenticationError=ys;z.InternalServerError=Os;z.PermissionDeniedError=_s;z.UnprocessableEntityError=vs;z.InvalidWebhookSignatureError=Xt;z.toFile=Ji;z.Completions=En;z.Chat=$r;z.Embeddings=kn;z.Files=Cn;z.Images=jn;z.Audio=tr;z.Moderations=Dn;z.Models=Mn;z.FineTuning=Ct;z.Graders=Br;z.VectorStores=_r;z.Webhooks=$n;z.Beta=nr;z.Batches=xn;z.Uploads=Hr;z.Responses=Wr;z.Evals=zr;z.Containers=Ur;var Ln=class extends z{constructor({baseURL:e=kt("OPENAI_BASE_URL"),apiKey:t=kt("AZURE_OPENAI_API_KEY"),apiVersion:n=kt("OPENAI_API_VERSION"),endpoint:s,deployment:i,azureADTokenProvider:o,dangerouslyAllowBrowser:a,...u}={}){if(!n)throw new N("The OPENAI_API_VERSION environment variable is missing or empty; either provide it, or instantiate the AzureOpenAI client with an apiVersion option, like new AzureOpenAI({ apiVersion: 'My API Version' }).");if(typeof o=="function"&&(a=!0),!o&&!t)throw new N("Missing credentials. Please pass one of `apiKey` and `azureADTokenProvider`, or set the `AZURE_OPENAI_API_KEY` environment variable.");if(o&&t)throw new N("The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.");if(t??(t=hm),u.defaultQuery={...u.defaultQuery,"api-version":n},e){if(s)throw new N("baseURL and endpoint are mutually exclusive")}else{if(s||(s=process.env.AZURE_OPENAI_ENDPOINT),!s)throw new N("Must provide one of the `baseURL` or `endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable");e=`${s}/openai`}super({apiKey:t,baseURL:e,...u,...a!==void 0?{dangerouslyAllowBrowser:a}:{}}),this.apiVersion="",this._azureADTokenProvider=o,this.apiVersion=n,this.deploymentName=i}async buildRequest(e,t={}){if(cw.has(e.path)&&e.method==="post"&&e.body!==void 0){if(!Is(e.body))throw new Error("Expected request body to be an object");let n=this.deploymentName||e.body.model||e.__metadata?.model;n!==void 0&&!this.baseURL.includes("/deployments")&&(e.path=`/deployments/${n}${e.path}`)}return super.buildRequest(e,t)}async _getAzureADToken(){if(typeof this._azureADTokenProvider=="function"){let e=await this._azureADTokenProvider();if(!e||typeof e!="string")throw new N(`Expected 'azureADTokenProvider' argument to return a string but it returned ${e}`);return e}}async authHeaders(e){}async prepareOptions(e){if(e.headers=R([e.headers]),e.headers.values.get("Authorization")||e.headers.values.get("api-key"))return super.prepareOptions(e);let t=await this._getAzureADToken();if(t)e.headers.values.set("Authorization",`Bearer ${t}`);else if(this.apiKey!==hm)e.headers.values.set("api-key",this.apiKey);else throw new N("Unable to handle auth");return super.prepareOptions(e)}},cw=new Set(["/completions","/chat/completions","/embeddings","/audio/transcriptions","/audio/translations","/audio/speech","/images/generations","/batches","/images/edits"]),hm="<Missing Key>";function uu(r,e){if(r.function===void 0)return;let t;if(e?.partial)try{t=_o(r.function.arguments??"{}")}catch{return}else try{t=JSON.parse(r.function.arguments)}catch(s){throw new qe([`Function "${r.function.name}" arguments:`,"",r.function.arguments,"","are not valid JSON.",`Error: ${s.message}`].join(`
120
+ `))}let n={name:r.function.name,args:t,type:"tool_call"};return e?.returnId&&(n.id=r.id),n}function dm(r){if(r.id===void 0)throw new Error('All OpenAI tool calls must have an "id" field.');return{id:r.id,type:"function",function:{name:r.name,arguments:JSON.stringify(r.args)}}}function cu(r,e){return{name:r.function?.name,args:r.function?.arguments,id:r.id,error:e,type:"invalid_tool_call"}}var xp=class extends ur{static lc_name(){return"JsonOutputToolsParser"}constructor(e){super(e),Object.defineProperty(this,"returnId",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","openai_tools"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.returnId=e?.returnId??this.returnId}_diff(){throw new Error("Not supported.")}async parse(){throw new Error("Not implemented.")}async parseResult(e){return await this.parsePartialResult(e,!1)}async parsePartialResult(e,t=!0){let n=e[0].message,s;if(jt(n)&&n.tool_calls?.length?s=n.tool_calls.map(o=>{let{id:a,...u}=o;return this.returnId?{id:a,...u}:u}):n.additional_kwargs.tool_calls!==void 0&&(s=JSON.parse(JSON.stringify(n.additional_kwargs.tool_calls)).map(a=>uu(a,{returnId:this.returnId,partial:t}))),!s)return[];let i=[];for(let o of s)if(o!==void 0){let a={type:o.name,args:o.args,id:o.id};i.push(a)}return i}},uo=class extends xp{static lc_name(){return"JsonOutputKeyToolsParser"}constructor(e){super(e),Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain","output_parsers","openai_tools"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"returnId",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"keyName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"returnSingle",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"zodSchema",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.keyName=e.keyName,this.returnSingle=e.returnSingle??this.returnSingle,this.zodSchema=e.zodSchema}async _validateResult(e){if(this.zodSchema===void 0)return e;let t=await Nu(this.zodSchema,e);if(t.success)return t.data;throw new qe(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.error?.issues)}`,JSON.stringify(e,null,2))}async parsePartialResult(e){let n=(await super.parsePartialResult(e)).filter(i=>i.type===this.keyName),s=n;if(n.length)return this.returnId||(s=n.map(i=>i.args)),this.returnSingle?s[0]:s}async parseResult(e){let n=(await super.parsePartialResult(e,!1)).filter(o=>o.type===this.keyName),s=n;return n.length?(this.returnId||(s=n.map(o=>o.args)),this.returnSingle?this._validateResult(s[0]):await Promise.all(s.map(o=>this._validateResult(o)))):void 0}};function Vr(r){let{azureOpenAIApiDeploymentName:e,azureOpenAIApiInstanceName:t,azureOpenAIApiKey:n,azureOpenAIBasePath:s,baseURL:i,azureADTokenProvider:o,azureOpenAIEndpoint:a}=r;if((n||o)&&s&&e)return`${s}/${e}`;if((n||o)&&a&&e)return`${a}/openai/deployments/${e}`;if(n||o){if(!t)throw new Error("azureOpenAIApiInstanceName is required when using azureOpenAIApiKey");if(!e)throw new Error("azureOpenAIApiDeploymentName is a required parameter when using azureOpenAIApiKey");return`https://${t}.openai.azure.com/openai/deployments/${e}`}return i}var gm=Symbol("Let zodToJsonSchema decide on which parser to use"),mm={name:void 0,$refStrategy:"root",effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",nullableStrategy:"from-target",removeAdditionalStrategy:"passthrough",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},bm=r=>typeof r=="string"?{...mm,basePath:["#"],definitions:{},name:r}:{...mm,basePath:["#"],definitions:{},...r};var co=r=>"_def"in r?r._def:r;function ym(r){if(!r)return!0;for(let e in r)return!1;return!0}var _m=r=>{let e=bm(r),t=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return{...e,currentPath:t,propertyPath:void 0,seenRefs:new Set,seen:new Map(Object.entries(e.definitions).map(([n,s])=>[co(s),{def:co(s),path:[...e.basePath,e.definitionPath,n],jsonSchema:void 0}]))}};function vp(r,e,t,n){n?.errorMessages&&t&&(r.errorMessage={...r.errorMessage,[e]:t})}function Y(r,e,t,n,s){r[e]=t,vp(r,e,n,s)}function wm(){return{}}function xm(r,e){let t={type:"array"};return r.type?._def?.typeName!==B.ZodAny&&(t.items=U(r.type._def,{...e,currentPath:[...e.currentPath,"items"]})),r.minLength&&Y(t,"minItems",r.minLength.value,r.minLength.message,e),r.maxLength&&Y(t,"maxItems",r.maxLength.value,r.maxLength.message,e),r.exactLength&&(Y(t,"minItems",r.exactLength.value,r.exactLength.message,e),Y(t,"maxItems",r.exactLength.value,r.exactLength.message,e)),t}function vm(r,e){let t={type:"integer",format:"int64"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"min":e.target==="jsonSchema7"?n.inclusive?Y(t,"minimum",n.value,n.message,e):Y(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),Y(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?Y(t,"maximum",n.value,n.message,e):Y(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),Y(t,"maximum",n.value,n.message,e));break;case"multipleOf":Y(t,"multipleOf",n.value,n.message,e);break}return t}function Am(){return{type:"boolean"}}function Om(r,e){return U(r.type._def,e)}var Pm=(r,e)=>U(r.innerType._def,e);function Ap(r,e,t){let n=t??e.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((s,i)=>Ap(r,e,s))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return lw(r,e)}}var lw=(r,e)=>{let t={type:"integer",format:"unix-time"};if(e.target==="openApi3")return t;for(let n of r.checks)switch(n.kind){case"min":Y(t,"minimum",n.value,n.message,e);break;case"max":Y(t,"maximum",n.value,n.message,e);break}return t};function Em(r,e){return{...U(r.innerType._def,e),default:r.defaultValue()}}function Im(r,e,t){return e.effectStrategy==="input"?U(r.schema._def,e,t):{}}function km(r){return{type:"string",enum:[...r.values]}}var pw=r=>"type"in r&&r.type==="string"?!1:"allOf"in r;function Sm(r,e){let t=[U(r.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),U(r.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(i=>!!i),n=e.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,s=[];return t.forEach(i=>{if(pw(i))s.push(...i.allOf),i.unevaluatedProperties===void 0&&(n=void 0);else{let o=i;if("additionalProperties"in i&&i.additionalProperties===!1){let{additionalProperties:a,...u}=i;o=u}else n=void 0;s.push(o)}}),s.length?{allOf:s,...n}:void 0}function Cm(r,e){let t=typeof r.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(r.value)?"array":"object"}:e.target==="openApi3"?{type:t==="bigint"?"integer":t,enum:[r.value]}:{type:t==="bigint"?"integer":t,const:r.value}}var Op,Fn={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Op===void 0&&(Op=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Op),uuid:/^[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}$/,ipv4:/^(?:(?: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])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/};function lu(r,e){let t={type:"string"};function n(s){return e.patternStrategy==="escape"?fw(s):s}if(r.checks)for(let s of r.checks)switch(s.kind){case"min":Y(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,s.value):s.value,s.message,e);break;case"max":Y(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,s.value):s.value,s.message,e);break;case"email":switch(e.emailStrategy){case"format:email":Tt(t,"email",s.message,e);break;case"format:idn-email":Tt(t,"idn-email",s.message,e);break;case"pattern:zod":Rt(t,Fn.email,s.message,e);break}break;case"url":Tt(t,"uri",s.message,e);break;case"uuid":Tt(t,"uuid",s.message,e);break;case"regex":Rt(t,s.regex,s.message,e);break;case"cuid":Rt(t,Fn.cuid,s.message,e);break;case"cuid2":Rt(t,Fn.cuid2,s.message,e);break;case"startsWith":Rt(t,RegExp(`^${n(s.value)}`),s.message,e);break;case"endsWith":Rt(t,RegExp(`${n(s.value)}$`),s.message,e);break;case"datetime":Tt(t,"date-time",s.message,e);break;case"date":Tt(t,"date",s.message,e);break;case"time":Tt(t,"time",s.message,e);break;case"duration":Tt(t,"duration",s.message,e);break;case"length":Y(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,s.value):s.value,s.message,e),Y(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,s.value):s.value,s.message,e);break;case"includes":{Rt(t,RegExp(n(s.value)),s.message,e);break}case"ip":{s.version!=="v6"&&Tt(t,"ipv4",s.message,e),s.version!=="v4"&&Tt(t,"ipv6",s.message,e);break}case"emoji":Rt(t,Fn.emoji,s.message,e);break;case"ulid":{Rt(t,Fn.ulid,s.message,e);break}case"base64":{switch(e.base64Strategy){case"format:binary":{Tt(t,"binary",s.message,e);break}case"contentEncoding:base64":{Y(t,"contentEncoding","base64",s.message,e);break}case"pattern:zod":{Rt(t,Fn.base64,s.message,e);break}}break}case"nanoid":Rt(t,Fn.nanoid,s.message,e);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return t}var fw=r=>Array.from(r).map(e=>/[a-zA-Z0-9]/.test(e)?e:`\\${e}`).join(""),Tt=(r,e,t,n)=>{r.format||r.anyOf?.some(s=>s.format)?(r.anyOf||(r.anyOf=[]),r.format&&(r.anyOf.push({format:r.format,...r.errorMessage&&n.errorMessages&&{errorMessage:{format:r.errorMessage.format}}}),delete r.format,r.errorMessage&&(delete r.errorMessage.format,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.anyOf.push({format:e,...t&&n.errorMessages&&{errorMessage:{format:t}}})):Y(r,"format",e,t,n)},Rt=(r,e,t,n)=>{r.pattern||r.allOf?.some(s=>s.pattern)?(r.allOf||(r.allOf=[]),r.pattern&&(r.allOf.push({pattern:r.pattern,...r.errorMessage&&n.errorMessages&&{errorMessage:{pattern:r.errorMessage.pattern}}}),delete r.pattern,r.errorMessage&&(delete r.errorMessage.pattern,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.allOf.push({pattern:Tm(e,n),...t&&n.errorMessages&&{errorMessage:{pattern:t}}})):Y(r,"pattern",Tm(e,n),t,n)},Tm=(r,e)=>{let t=typeof r=="function"?r():r;if(!e.applyRegexFlags||!t.flags)return t.source;let n={i:t.flags.includes("i"),m:t.flags.includes("m"),s:t.flags.includes("s")},s=n.i?t.source.toLowerCase():t.source,i="",o=!1,a=!1,u=!1;for(let c=0;c<s.length;c++){if(o){i+=s[c],o=!1;continue}if(n.i){if(a){if(s[c].match(/[a-z]/)){u?(i+=s[c],i+=`${s[c-2]}-${s[c]}`.toUpperCase(),u=!1):s[c+1]==="-"&&s[c+2]?.match(/[a-z]/)?(i+=s[c],u=!0):i+=`${s[c]}${s[c].toUpperCase()}`;continue}}else if(s[c].match(/[a-z]/)){i+=`[${s[c]}${s[c].toUpperCase()}]`;continue}}if(n.m){if(s[c]==="^"){i+=`(^|(?<=[\r
121
+ ]))`;continue}else if(s[c]==="$"){i+=`($|(?=[\r
122
+ ]))`;continue}}if(n.s&&s[c]==="."){i+=a?`${s[c]}\r
123
+ `:`[${s[c]}\r
124
+ ]`;continue}i+=s[c],s[c]==="\\"?o=!0:a&&s[c]==="]"?a=!1:!a&&s[c]==="["&&(a=!0)}try{let c=new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),t.source}return i};function pu(r,e){if(e.target==="openApi3"&&r.keyType?._def.typeName===B.ZodEnum)return{type:"object",required:r.keyType._def.values,properties:r.keyType._def.values.reduce((n,s)=>({...n,[s]:U(r.valueType._def,{...e,currentPath:[...e.currentPath,"properties",s]})??{}}),{}),additionalProperties:!1};let t={type:"object",additionalProperties:U(r.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??{}};if(e.target==="openApi3")return t;if(r.keyType?._def.typeName===B.ZodString&&r.keyType._def.checks?.length){let n=Object.entries(lu(r.keyType._def,e)).reduce((s,[i,o])=>i==="type"?s:{...s,[i]:o},{});return{...t,propertyNames:n}}else if(r.keyType?._def.typeName===B.ZodEnum)return{...t,propertyNames:{enum:r.keyType._def.values}};return t}function Rm(r,e){if(e.mapStrategy==="record")return pu(r,e);let t=U(r.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||{},n=U(r.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[t,n],minItems:2,maxItems:2}}}function Nm(r){let e=r.values,n=Object.keys(r.values).filter(i=>typeof e[e[i]]!="number").map(i=>e[i]),s=Array.from(new Set(n.map(i=>typeof i)));return{type:s.length===1?s[0]==="string"?"string":"number":["string","number"],enum:n}}function jm(){return{not:{}}}function Mm(r){return r.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var lo={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function $m(r,e){if(e.target==="openApi3")return Dm(r,e);let t=r.options instanceof Map?Array.from(r.options.values()):r.options;if(t.every(n=>n._def.typeName in lo&&(!n._def.checks||!n._def.checks.length))){let n=t.reduce((s,i)=>{let o=lo[i._def.typeName];return o&&!s.includes(o)?[...s,o]:s},[]);return{type:n.length>1?n:n[0]}}else if(t.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){let n=t.reduce((s,i)=>{let o=typeof i._def.value;switch(o){case"string":case"number":case"boolean":return[...s,o];case"bigint":return[...s,"integer"];case"object":if(i._def.value===null)return[...s,"null"];case"symbol":case"undefined":case"function":default:return s}},[]);if(n.length===t.length){let s=n.filter((i,o,a)=>a.indexOf(i)===o);return{type:s.length>1?s:s[0],enum:t.reduce((i,o)=>i.includes(o._def.value)?i:[...i,o._def.value],[])}}}else if(t.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:t.reduce((n,s)=>[...n,...s._def.values.filter(i=>!n.includes(i))],[])};return Dm(r,e)}var Dm=(r,e)=>{let t=(r.options instanceof Map?Array.from(r.options.values()):r.options).map((n,s)=>U(n._def,{...e,currentPath:[...e.currentPath,"anyOf",`${s}`]})).filter(n=>!!n&&(!e.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return t.length?{anyOf:t}:void 0};function Lm(r,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(r.innerType._def.typeName)&&(!r.innerType._def.checks||!r.innerType._def.checks.length))return e.target==="openApi3"||e.nullableStrategy==="property"?{type:lo[r.innerType._def.typeName],nullable:!0}:{type:[lo[r.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let n=U(r.innerType._def,{...e,currentPath:[...e.currentPath]});return n&&"$ref"in n?{allOf:[n],nullable:!0}:n&&{...n,nullable:!0}}let t=U(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return t&&{anyOf:[t,{type:"null"}]}}function Fm(r,e){let t={type:"number"};if(!r.checks)return t;for(let n of r.checks)switch(n.kind){case"int":t.type="integer",vp(t,"type",n.message,e);break;case"min":e.target==="jsonSchema7"?n.inclusive?Y(t,"minimum",n.value,n.message,e):Y(t,"exclusiveMinimum",n.value,n.message,e):(n.inclusive||(t.exclusiveMinimum=!0),Y(t,"minimum",n.value,n.message,e));break;case"max":e.target==="jsonSchema7"?n.inclusive?Y(t,"maximum",n.value,n.message,e):Y(t,"exclusiveMaximum",n.value,n.message,e):(n.inclusive||(t.exclusiveMaximum=!0),Y(t,"maximum",n.value,n.message,e));break;case"multipleOf":Y(t,"multipleOf",n.value,n.message,e);break}return t}function hw(r,e){return e.removeAdditionalStrategy==="strict"?r.catchall._def.typeName==="ZodNever"?r.unknownKeys!=="strict":U(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??!0:r.catchall._def.typeName==="ZodNever"?r.unknownKeys==="passthrough":U(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??!0}function Um(r,e){let t={type:"object",...Object.entries(r.shape()).reduce((n,[s,i])=>{if(i===void 0||i._def===void 0)return n;let o=[...e.currentPath,"properties",s],a=U(i._def,{...e,currentPath:o,propertyPath:o});if(a===void 0)return n;if(e.openaiStrictMode&&i.isOptional()&&!i.isNullable()&&typeof i._def?.defaultValue>"u")throw new Error(`Zod field at \`${o.join("/")}\` uses \`.optional()\` without \`.nullable()\` which is not supported by the API. See: https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses#all-fields-must-be-required`);return{properties:{...n.properties,[s]:a},required:i.isOptional()&&!e.openaiStrictMode?n.required:[...n.required,s]}},{properties:{},required:[]}),additionalProperties:hw(r,e)};return t.required.length||delete t.required,t}var zm=(r,e)=>{if(e.propertyPath&&e.currentPath.slice(0,e.propertyPath.length).toString()===e.propertyPath.toString())return U(r.innerType._def,{...e,currentPath:e.currentPath});let t=U(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return t?{anyOf:[{not:{}},t]}:{}};var Bm=(r,e)=>{if(e.pipeStrategy==="input")return U(r.in._def,e);if(e.pipeStrategy==="output")return U(r.out._def,e);let t=U(r.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),n=U(r.out._def,{...e,currentPath:[...e.currentPath,"allOf",t?"1":"0"]});return{allOf:[t,n].filter(s=>s!==void 0)}};function Km(r,e){return U(r.type._def,e)}function Wm(r,e){let n={type:"array",uniqueItems:!0,items:U(r.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return r.minSize&&Y(n,"minItems",r.minSize.value,r.minSize.message,e),r.maxSize&&Y(n,"maxItems",r.maxSize.value,r.maxSize.message,e),n}function Hm(r,e){return r.rest?{type:"array",minItems:r.items.length,items:r.items.map((t,n)=>U(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[]),additionalItems:U(r.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:r.items.length,maxItems:r.items.length,items:r.items.map((t,n)=>U(t._def,{...e,currentPath:[...e.currentPath,"items",`${n}`]})).reduce((t,n)=>n===void 0?t:[...t,n],[])}}function Vm(){return{not:{}}}function Gm(){return{}}var qm=(r,e)=>U(r.innerType._def,e);function U(r,e,t=!1){let n=e.seen.get(r);if(e.override){let o=e.override?.(r,e,n,t);if(o!==gm)return o}if(n&&!t){let o=dw(n,e);if(o!==void 0)return"$ref"in o&&e.seenRefs.add(o.$ref),o}let s={def:r,path:e.currentPath,jsonSchema:void 0};e.seen.set(r,s);let i=gw(r,r.typeName,e,t);return i&&bw(r,e,i),s.jsonSchema=i,i}var dw=(r,e)=>{switch(e.$refStrategy){case"root":return{$ref:r.path.join("/")};case"extract-to-root":let t=r.path.slice(e.basePath.length+1).join("_");return t!==e.name&&e.nameStrategy==="duplicate-ref"&&(e.definitions[t]=r.def),{$ref:[...e.basePath,e.definitionPath,t].join("/")};case"relative":return{$ref:mw(e.currentPath,r.path)};case"none":case"seen":return r.path.length<e.currentPath.length&&r.path.every((n,s)=>e.currentPath[s]===n)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),{}):e.$refStrategy==="seen"?{}:void 0}},mw=(r,e)=>{let t=0;for(;t<r.length&&t<e.length&&r[t]===e[t];t++);return[(r.length-t).toString(),...e.slice(t)].join("/")},gw=(r,e,t,n)=>{switch(e){case B.ZodString:return lu(r,t);case B.ZodNumber:return Fm(r,t);case B.ZodObject:return Um(r,t);case B.ZodBigInt:return vm(r,t);case B.ZodBoolean:return Am();case B.ZodDate:return Ap(r,t);case B.ZodUndefined:return Vm();case B.ZodNull:return Mm(t);case B.ZodArray:return xm(r,t);case B.ZodUnion:case B.ZodDiscriminatedUnion:return $m(r,t);case B.ZodIntersection:return Sm(r,t);case B.ZodTuple:return Hm(r,t);case B.ZodRecord:return pu(r,t);case B.ZodLiteral:return Cm(r,t);case B.ZodEnum:return km(r);case B.ZodNativeEnum:return Nm(r);case B.ZodNullable:return Lm(r,t);case B.ZodOptional:return zm(r,t);case B.ZodMap:return Rm(r,t);case B.ZodSet:return Wm(r,t);case B.ZodLazy:return U(r.getter()._def,t);case B.ZodPromise:return Km(r,t);case B.ZodNaN:case B.ZodNever:return jm();case B.ZodEffects:return Im(r,t,n);case B.ZodAny:return wm();case B.ZodUnknown:return Gm();case B.ZodDefault:return Em(r,t);case B.ZodBranded:return Om(r,t);case B.ZodReadonly:return qm(r,t);case B.ZodCatch:return Pm(r,t);case B.ZodPipeline:return Bm(r,t);case B.ZodFunction:case B.ZodVoid:case B.ZodSymbol:return;default:return(s=>{})(e)}},bw=(r,e,t)=>(r.description&&(t.description=r.description,e.markdownDescription&&(t.markdownDescription=r.description)),t);var Pp=(r,e)=>{let t=_m(e),n=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,s=U(r._def,n===void 0?t:{...t,currentPath:[...t.basePath,t.definitionPath,n]},!1)??{},i=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;i!==void 0&&(s.title=i);let o=(()=>{if(ym(t.definitions))return;let u={},c=new Set;for(let l=0;l<500;l++){let p=Object.entries(t.definitions).filter(([h])=>!c.has(h));if(p.length===0)break;for(let[h,f]of p)u[h]=U(co(f),{...t,currentPath:[...t.basePath,t.definitionPath,h]},!0)??{},c.add(h)}return u})(),a=n===void 0?o?{...s,[t.definitionPath]:o}:s:t.nameStrategy==="duplicate-ref"?{...s,...o||t.seenRefs.size?{[t.definitionPath]:{...o,...t.seenRefs.size?{[n]:s}:void 0}}:void 0}:{$ref:[...t.$refStrategy==="relative"?[]:t.basePath,t.definitionPath,n].join("/"),[t.definitionPath]:{...o,[n]:s}};return t.target==="jsonSchema7"?a.$schema="http://json-schema.org/draft-07/schema#":t.target==="jsonSchema2019-09"&&(a.$schema="https://json-schema.org/draft/2019-09/schema#"),a};function yw(r,e){return Pp(r,{openaiStrictMode:!0,name:e.name,nameStrategy:"duplicate-ref",$refStrategy:"extract-to-root",nullableStrategy:"property"})}function Jm(r,e,t){return Ud({type:"json_schema",json_schema:{...t,name:e,strict:!0,schema:yw(r,{name:e})}},n=>r.parse(JSON.parse(n)))}function po(r,e){return r.lc_error_code=e,r.message=`${r.message}
125
+
126
+ Troubleshooting URL: https://js.langchain.com/docs/troubleshooting/errors/${e}/
127
+ `,r}function ri(r){let e;return r.constructor.name===Jt.name?(e=new Error(r.message),e.name="TimeoutError"):r.constructor.name===fe.name?(e=new Error(r.message),e.name="AbortError"):r.status===400&&r.message.includes("tool_calls")?e=po(r,"INVALID_TOOL_RESULTS"):r.status===401?e=po(r,"MODEL_AUTHENTICATION"):r.status===429?e=po(r,"MODEL_RATE_LIMIT"):r.status===404?e=po(r,"MODEL_NOT_FOUND"):e=r,e}function Ep(r){if(r)return r==="any"||r==="required"?"required":r==="auto"?"auto":r==="none"?"none":typeof r=="string"?{type:"function",function:{name:r}}:r}function _w(r,e){let t={...r};return Object.defineProperties(t,{$brand:{value:"auto-parseable-response-format",enumerable:!1},$parseRaw:{value:e,enumerable:!1}}),t}function Xm(r,e,t){if(ai(r))return Jm(r,e,t);if(Ru(r))return _w({type:"json_schema",json_schema:{...t,name:e,strict:!0,schema:jf(r,{cycles:"ref",reused:"ref",override(n){n.jsonSchema.title=e}})}},n=>Nf(r,JSON.parse(n)));throw new Error("Unsupported schema response format")}function ww(r){return r.anyOf!==void 0&&Array.isArray(r.anyOf)}function Ym(r){let e=["namespace functions {",""];for(let t of r)t.description&&e.push(`// ${t.description}`),Object.keys(t.parameters.properties??{}).length>0?(e.push(`type ${t.name} = (_: {`),e.push(Zm(t.parameters,0)),e.push("}) => any;")):e.push(`type ${t.name} = () => any;`),e.push("");return e.push("} // namespace functions"),e.join(`
128
+ `)}function Zm(r,e){let t=[];for(let[n,s]of Object.entries(r.properties??{}))s.description&&e<2&&t.push(`// ${s.description}`),r.required?.includes(n)?t.push(`${n}: ${fu(s,e)},`):t.push(`${n}?: ${fu(s,e)},`);return t.map(n=>" ".repeat(e)+n).join(`
129
+ `)}function fu(r,e){if(ww(r))return r.anyOf.map(t=>fu(t,e)).join(" | ");switch(r.type){case"string":return r.enum?r.enum.map(t=>`"${t}"`).join(" | "):"string";case"number":return r.enum?r.enum.map(t=>`${t}`).join(" | "):"number";case"integer":return r.enum?r.enum.map(t=>`${t}`).join(" | "):"number";case"boolean":return"boolean";case"null":return"null";case"object":return["{",Zm(r,e+2),"}"].join(`
130
+ `);case"array":return r.items?`${fu(r.items,e)}[]`:"any[]";default:return""}}function Qm(r,e){let t;return Er(r)?t=Jo(r):t=r,t.type==="function"&&e?.strict!==void 0&&(t.function.strict=e.strict),t}function hu(r){return"type"in r&&r.type!=="function"&&r.type!=="custom"}function eg(r){return r!=null&&typeof r=="object"&&"type"in r&&r.type!=="function"}function tg(r){return typeof r=="object"&&r!==null&&"metadata"in r&&typeof r.metadata=="object"&&r.metadata!==null&&"customTool"in r.metadata&&typeof r.metadata.customTool=="object"&&r.metadata.customTool!==null}function Ip(r){return"type"in r&&r.type==="custom"&&"custom"in r&&typeof r.custom=="object"&&r.custom!==null}function rg(r){if(r.type==="custom_tool_call")return{...r,type:"tool_call",call_id:r.id,id:r.call_id,name:r.name,isCustomTool:!0,args:{input:r.input}}}function ng(r){return r.type==="tool_call"&&"isCustomTool"in r&&r.isCustomTool===!0}function sg(r){let e=()=>{if(r.custom.format){if(r.custom.format.type==="grammar")return{type:"grammar",definition:r.custom.format.grammar.definition,syntax:r.custom.format.grammar.syntax};if(r.custom.format.type==="text")return{type:"text"}}};return{type:"custom",name:r.custom.name,description:r.custom.description,format:e()}}function ig(r){let e=()=>{if(r.format){if(r.format.type==="grammar")return{type:"grammar",grammar:{definition:r.format.definition,syntax:r.format.syntax}};if(r.format.type==="text")return{type:"text"}}};return{type:"custom",custom:{name:r.name,description:r.description,format:e()}}}function og(r,e){if(e&&typeof e=="object"&&"images"in e&&Array.isArray(e.images)){let t=e.images.filter(n=>typeof n?.image_url?.url=="string").map(n=>({type:"image",url:n.image_url.url,source_type:"url"}));return[{type:"text",text:r,source_type:"text"},...t]}return r}function kp(r){let e={...r?.input_tokens_details?.cached_tokens!=null&&{cache_read:r?.input_tokens_details?.cached_tokens}},t={...r?.output_tokens_details?.reasoning_tokens!=null&&{reasoning:r?.output_tokens_details?.reasoning_tokens}};return{input_tokens:r?.input_tokens??0,output_tokens:r?.output_tokens??0,total_tokens:r?.total_tokens??0,input_token_details:e,output_token_details:t}}var du="__openai_function_call_ids__";function gu(r){return r?!!(/^o\d/.test(r??"")||r.startsWith("gpt-5")&&!r.startsWith("gpt-5-chat")):!1}function xw(r){return r!==void 0&&typeof r.schema=="object"}function vw(r){return r.role!=="system"&&r.role!=="developer"&&r.role!=="assistant"&&r.role!=="user"&&r.role!=="function"&&r.role!=="tool"&&console.warn(`Unknown message role: ${r.role}`),r.role}function Cp(r){let e=r._getType();switch(e){case"system":return"system";case"ai":return"assistant";case"human":return"user";case"function":return"function";case"tool":return"tool";case"generic":{if(!Su.isInstance(r))throw new Error("Invalid generic chat message");return vw(r)}default:throw new Error(`Unknown message type: ${e}`)}}var ag={providerName:"ChatOpenAI",fromStandardTextBlock(r){return{type:"text",text:r.text}},fromStandardImageBlock(r){if(r.source_type==="url")return{type:"image_url",image_url:{url:r.url,...r.metadata?.detail?{detail:r.metadata.detail}:{}}};if(r.source_type==="base64")return{type:"image_url",image_url:{url:`data:${r.mime_type??""};base64,${r.data}`,...r.metadata?.detail?{detail:r.metadata.detail}:{}}};throw new Error(`Image content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)},fromStandardAudioBlock(r){if(r.source_type==="url"){let e=Pu({dataUrl:r.url});if(!e)throw new Error(`URL audio blocks with source_type ${r.source_type} must be formatted as a data URL for ChatOpenAI`);let t=e.mime_type||r.mime_type||"",n;try{n=Ou(t)}catch{throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`)}if(n.type!=="audio"||n.subtype!=="wav"&&n.subtype!=="mp3")throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`);return{type:"input_audio",input_audio:{format:n.subtype,data:e.data}}}if(r.source_type==="base64"){let e;try{e=Ou(r.mime_type??"")}catch{throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`)}if(e.type!=="audio"||e.subtype!=="wav"&&e.subtype!=="mp3")throw new Error(`Audio blocks with source_type ${r.source_type} must have mime type of audio/wav or audio/mp3`);return{type:"input_audio",input_audio:{format:e.subtype,data:r.data}}}throw new Error(`Audio content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)},fromStandardFileBlock(r){if(r.source_type==="url"){if(!Pu({dataUrl:r.url}))throw new Error(`URL file blocks with source_type ${r.source_type} must be formatted as a data URL for ChatOpenAI`);return{type:"file",file:{file_data:r.url,...r.metadata?.filename||r.metadata?.name?{filename:r.metadata?.filename||r.metadata?.name}:{}}}}if(r.source_type==="base64")return{type:"file",file:{file_data:`data:${r.mime_type??""};base64,${r.data}`,...r.metadata?.filename||r.metadata?.name||r.metadata?.title?{filename:r.metadata?.filename||r.metadata?.name||r.metadata?.title}:{}}};if(r.source_type==="id")return{type:"file",file:{file_id:r.id}};throw new Error(`File content blocks with source_type ${r.source_type} are not supported for ChatOpenAI`)}};function Sp(r,e){return r.flatMap(t=>{let n=Cp(t);n==="system"&&gu(e)&&(n="developer");let s=typeof t.content=="string"?t.content:t.content.map(o=>Au(o)?Eu(o,ag):o),i={role:n,content:s};if(t.name!=null&&(i.name=t.name),t.additional_kwargs.function_call!=null&&(i.function_call=t.additional_kwargs.function_call,i.content=""),jt(t)&&t.tool_calls?.length?(i.tool_calls=t.tool_calls.map(dm),i.content=""):(t.additional_kwargs.tool_calls!=null&&(i.tool_calls=t.additional_kwargs.tool_calls),t.tool_call_id!=null&&(i.tool_call_id=t.tool_call_id)),t.additional_kwargs.audio&&typeof t.additional_kwargs.audio=="object"&&"id"in t.additional_kwargs.audio){let o={role:"assistant",audio:{id:t.additional_kwargs.audio.id}};return[i,o]}return i})}var fo=class extends zt{_llmType(){return"openai"}static lc_name(){return"ChatOpenAI"}get callKeys(){return[...super.callKeys,"options","function_call","functions","tools","tool_choice","promptIndex","response_format","seed","reasoning","reasoningEffort","service_tier"]}get lc_secrets(){return{apiKey:"OPENAI_API_KEY",organization:"OPENAI_ORGANIZATION"}}get lc_aliases(){return{apiKey:"openai_api_key",modelName:"model",reasoningEffort:"reasoning_effort"}}get lc_serializable_keys(){return["configuration","logprobs","topLogprobs","prefixMessages","supportsStrictToolCalling","modalities","audio","temperature","maxTokens","topP","frequencyPenalty","presencePenalty","n","logitBias","user","streaming","streamUsage","model","modelName","modelKwargs","stop","stopSequences","timeout","apiKey","cache","maxConcurrency","maxRetries","verbose","callbacks","tags","metadata","disableStreaming","zdrEnabled","reasoning","reasoningEffort","promptCacheKey","verbosity"]}getLsParams(e){let t=this.invocationParams(e);return{ls_provider:"openai",ls_model_name:this.model,ls_model_type:"chat",ls_temperature:t.temperature??void 0,ls_max_tokens:t.max_tokens??void 0,ls_stop:e.stop}}_identifyingParams(){return{model_name:this.model,...this.invocationParams(),...this.clientConfig}}identifyingParams(){return this._identifyingParams()}constructor(e){super(e??{}),Object.defineProperty(this,"temperature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"topP",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"frequencyPenalty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"presencePenalty",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"logitBias",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"model",{enumerable:!0,configurable:!0,writable:!0,value:"gpt-3.5-turbo"}),Object.defineProperty(this,"modelKwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"stopSequences",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"user",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"streaming",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"streamUsage",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"maxTokens",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"logprobs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"topLogprobs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"apiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"organization",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"__includeRawResponse",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientConfig",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"supportsStrictToolCalling",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"audio",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"modalities",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reasoning",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"zdrEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"service_tier",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"promptCacheKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"verbosity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"defaultOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this.apiKey=e?.apiKey??e?.configuration?.apiKey??pe("OPENAI_API_KEY"),this.organization=e?.configuration?.organization??pe("OPENAI_ORGANIZATION"),this.model=e?.model??e?.modelName??this.model,this.modelKwargs=e?.modelKwargs??{},this.timeout=e?.timeout,this.temperature=e?.temperature??this.temperature,this.topP=e?.topP??this.topP,this.frequencyPenalty=e?.frequencyPenalty??this.frequencyPenalty,this.presencePenalty=e?.presencePenalty??this.presencePenalty,this.logprobs=e?.logprobs,this.topLogprobs=e?.topLogprobs,this.n=e?.n??this.n,this.logitBias=e?.logitBias,this.stop=e?.stopSequences??e?.stop,this.stopSequences=this.stop,this.user=e?.user,this.__includeRawResponse=e?.__includeRawResponse,this.audio=e?.audio,this.modalities=e?.modalities,this.reasoning=e?.reasoning??e?.reasoningEffort?{effort:e.reasoningEffort}:void 0,this.maxTokens=e?.maxCompletionTokens??e?.maxTokens,this.disableStreaming=e?.disableStreaming===!0,this.streaming=e?.streaming===!0,this.promptCacheKey=e?.promptCacheKey??this.promptCacheKey,this.verbosity=e?.verbosity??this.verbosity,e?.streaming===!1&&(this.disableStreaming=!0),this.disableStreaming===!0&&(this.streaming=!1),this.streamUsage=e?.streamUsage??this.streamUsage,this.disableStreaming&&(this.streamUsage=!1),this.clientConfig={apiKey:this.apiKey,organization:this.organization,dangerouslyAllowBrowser:!0,...e?.configuration},e?.supportsStrictToolCalling!==void 0&&(this.supportsStrictToolCalling=e.supportsStrictToolCalling),e?.service_tier!==void 0&&(this.service_tier=e.service_tier),this.zdrEnabled=e?.zdrEnabled??!1}_getReasoningParams(e){if(!gu(this.model))return;let t;return this.reasoning!==void 0&&(t={...t,...this.reasoning}),e?.reasoning!==void 0&&(t={...t,...e.reasoning}),t}_getResponseFormat(e){return e&&e.type==="json_schema"&&e.json_schema.schema&&Ze(e.json_schema.schema)?Xm(e.json_schema.schema,e.json_schema.name,{description:e.json_schema.description}):e}_combineCallOptions(e){return{...this.defaultOptions,...e??{}}}_getClientOptions(e){if(!this.client){let n={baseURL:this.clientConfig.baseURL},s=Vr(n),i={...this.clientConfig,baseURL:s,timeout:this.timeout,maxRetries:0};i.baseURL||delete i.baseURL,this.client=new z(i)}return{...this.clientConfig,...e}}_convertChatOpenAIToolToCompletionsTool(e,t){return tg(e)?ig(e.metadata.customTool):zo(e)?t?.strict!==void 0?{...e,function:{...e.function,strict:t.strict}}:e:Qm(e,t)}bindTools(e,t){let n;return t?.strict!==void 0?n=t.strict:this.supportsStrictToolCalling!==void 0&&(n=this.supportsStrictToolCalling),this.withConfig({tools:e.map(s=>hu(s)?s:this._convertChatOpenAIToolToCompletionsTool(s,{strict:n})),...t})}async stream(e,t){return super.stream(e,this._combineCallOptions(t))}async invoke(e,t){return super.invoke(e,this._combineCallOptions(t))}_combineLLMOutput(...e){return e.reduce((t,n)=>(n&&n.tokenUsage&&(t.tokenUsage.completionTokens+=n.tokenUsage.completionTokens??0,t.tokenUsage.promptTokens+=n.tokenUsage.promptTokens??0,t.tokenUsage.totalTokens+=n.tokenUsage.totalTokens??0),t),{tokenUsage:{completionTokens:0,promptTokens:0,totalTokens:0}})}async getNumTokensFromMessages(e){let t=0,n=0,s=0;this.model==="gpt-3.5-turbo-0301"?(n=4,s=-1):(n=3,s=1);let i=await Promise.all(e.map(async o=>{let a=await this.getNumTokens(o.content),u=await this.getNumTokens(Cp(o)),c=o.name!==void 0?s+await this.getNumTokens(o.name):0,l=a+n+u+c,p=o;if(p._getType()==="function"&&(l-=2),p.additional_kwargs?.function_call&&(l+=3),p?.additional_kwargs.function_call?.name&&(l+=await this.getNumTokens(p.additional_kwargs.function_call?.name)),p.additional_kwargs.function_call?.arguments)try{l+=await this.getNumTokens(JSON.stringify(JSON.parse(p.additional_kwargs.function_call?.arguments)))}catch(h){console.error("Error parsing function arguments",h,JSON.stringify(p.additional_kwargs.function_call)),l+=await this.getNumTokens(p.additional_kwargs.function_call?.arguments)}return t+=l,l}));return t+=3,{totalCount:t,countPerMessage:i}}async _getNumTokensFromGenerations(e){return(await Promise.all(e.map(async n=>n.message.additional_kwargs?.function_call?(await this.getNumTokensFromMessages([n.message])).countPerMessage[0]:await this.getNumTokens(n.message.content)))).reduce((n,s)=>n+s,0)}async _getEstimatedTokenCountFromPrompt(e,t,n){let s=(await this.getNumTokensFromMessages(e)).totalCount;if(t&&n!=="auto"){let i=Ym(t);s+=await this.getNumTokens(i),s+=9}return t&&e.find(i=>i._getType()==="system")&&(s-=4),n==="none"?s+=1:typeof n=="object"&&(s+=await this.getNumTokens(n.name)+4),s}_getStructuredOutputMethod(e){let t={...e};if(!this.model.startsWith("gpt-3")&&!this.model.startsWith("gpt-4-")&&this.model!=="gpt-4"){if(t?.method===void 0)return"jsonSchema"}else t.method==="jsonSchema"&&console.warn(`[WARNING]: JSON Schema is not supported for model "${this.model}". Falling back to tool calling.`);return t.method}withStructuredOutput(e,t){let n,s,i,o;xw(e)?(n=e.schema,s=e.name,i=e.method,o=e.includeRaw):(n=e,s=t?.name,i=t?.method,o=t?.includeRaw);let a,u;if(t?.strict!==void 0&&i==="jsonMode")throw new Error("Argument `strict` is only supported for `method` = 'function_calling'");if(i=this._getStructuredOutputMethod({...t,method:i}),i==="jsonMode"){Ze(n)?u=rn.fromZodSchema(n):u=new Zn;let h=Ae(n);a=this.withConfig({response_format:{type:"json_object"},ls_structured_output_format:{kwargs:{method:"json_mode"},schema:{title:s??"extract",...h}}})}else if(i==="jsonSchema"){let h={name:s??"extract",description:$t(n),schema:n,strict:t?.strict},f=Ae(h.schema);if(a=this.withConfig({response_format:{type:"json_schema",json_schema:h},ls_structured_output_format:{kwargs:{method:"json_schema"},schema:{title:h.name,description:h.description,...f}}}),Ze(n)){let g=rn.fromZodSchema(n);u=Ft.from(b=>"parsed"in b.additional_kwargs?b.additional_kwargs.parsed:g)}else u=new Zn}else{let h=s??"extract";if(Ze(n)){let f=Ae(n);a=this.withConfig({tools:[{type:"function",function:{name:h,description:f.description,parameters:f}}],tool_choice:{type:"function",function:{name:h}},ls_structured_output_format:{kwargs:{method:"function_calling"},schema:{title:h,...f}},...t?.strict!==void 0?{strict:t.strict}:{}}),u=new uo({returnSingle:!0,keyName:h,zodSchema:n})}else{let f;typeof n.name=="string"&&typeof n.parameters=="object"&&n.parameters!=null?(f=n,h=n.name):(h=n.title??h,f={name:h,description:n.description??"",parameters:n});let g=Ae(n);a=this.withConfig({tools:[{type:"function",function:f}],tool_choice:{type:"function",function:{name:h}},ls_structured_output_format:{kwargs:{method:"function_calling"},schema:{title:h,...g}},...t?.strict!==void 0?{strict:t.strict}:{}}),u=new uo({returnSingle:!0,keyName:h})}}if(!o)return a.pipe(u);let c=Ge.assign({parsed:(h,f)=>u.invoke(h.raw,f)}),l=Ge.assign({parsed:()=>null}),p=c.withFallbacks({fallbacks:[l]});return Qe.from([{raw:a},p])}},ho=class extends fo{invocationParams(e){let t;e?.strict!==void 0?t=e.strict:this.supportsStrictToolCalling!==void 0&&(t=this.supportsStrictToolCalling);let n={model:this.model,temperature:this.temperature,top_p:this.topP,user:this.user,stream:this.streaming,previous_response_id:e?.previous_response_id,truncation:e?.truncation,include:e?.include,tools:e?.tools?.length?this._reduceChatOpenAITools(e.tools,{stream:this.streaming,strict:t}):void 0,tool_choice:eg(e?.tool_choice)?e?.tool_choice:(()=>{let i=Ep(e?.tool_choice);if(typeof i=="object"&&"type"in i){if(i.type==="function")return{type:"function",name:i.function.name};if(i.type==="allowed_tools")return{type:"allowed_tools",mode:i.allowed_tools.mode,tools:i.allowed_tools.tools};if(i.type==="custom")return{type:"custom",name:i.custom.name}}})(),text:(()=>{if(e?.text)return e.text;let i=this._getResponseFormat(e?.response_format);return i?.type==="json_schema"?i.json_schema.schema!=null?{format:{type:"json_schema",schema:i.json_schema.schema,description:i.json_schema.description,name:i.json_schema.name,strict:i.json_schema.strict},verbosity:e?.verbosity}:void 0:{format:i,verbosity:e?.verbosity}})(),parallel_tool_calls:e?.parallel_tool_calls,max_output_tokens:this.maxTokens===-1?void 0:this.maxTokens,prompt_cache_key:e?.promptCacheKey??this.promptCacheKey,...this.zdrEnabled?{store:!1}:{},...this.modelKwargs},s=this._getReasoningParams(e);return s!==void 0&&(n.reasoning=s),n}async _generate(e,t){let n=this.invocationParams(t);if(n.stream){let s=this._streamResponseChunks(e,t),i;for await(let o of s)o.message.response_metadata={...o.generationInfo,...o.message.response_metadata},i=i?.concat(o)??o;return{generations:i?[i]:[],llmOutput:{estimatedTokenUsage:i?.message?.usage_metadata}}}else{let s=this._convertMessagesToResponsesParams(e),i=await this.completionWithRetry({input:s,...n,stream:!1},{signal:t?.signal,...t?.options});return{generations:[{text:i.output_text,message:this._convertResponsesMessageToBaseMessage(i)}],llmOutput:{id:i.id,estimatedTokenUsage:i.usage?{promptTokens:i.usage.input_tokens,completionTokens:i.usage.output_tokens,totalTokens:i.usage.total_tokens}:void 0}}}}async*_streamResponseChunks(e,t,n){let s=await this.completionWithRetry({...this.invocationParams(t),input:this._convertMessagesToResponsesParams(e),stream:!0},t);for await(let i of s){let o=this._convertResponsesDeltaToBaseMessageChunk(i);o!=null&&(yield o,await n?.handleLLMNewToken(o.text||"",{prompt:t.promptIndex??0,completion:0},void 0,void 0,void 0,{chunk:o}))}}async completionWithRetry(e,t){return this.caller.call(async()=>{let n=this._getClientOptions(t);try{return e.text?.format?.type==="json_schema"&&!e.stream?await this.client.responses.parse(e,n):await this.client.responses.create(e,n)}catch(s){throw ri(s)}})}_convertResponsesMessageToBaseMessage(e){if(e.error){let u=new Error(e.error.message);throw u.name=e.error.code,u}let t,n=[],s=[],i=[],o={model:e.model,created_at:e.created_at,id:e.id,incomplete_details:e.incomplete_details,metadata:e.metadata,object:e.object,status:e.status,user:e.user,service_tier:e.service_tier,model_name:e.model},a={};for(let u of e.output)if(u.type==="message")t=u.id,n.push(...u.content.flatMap(c=>c.type==="output_text"?("parsed"in c&&c.parsed!=null&&(a.parsed=c.parsed),{type:"text",text:c.text,annotations:c.annotations}):c.type==="refusal"?(a.refusal=c.refusal,[]):c));else if(u.type==="function_call"){let c={function:{name:u.name,arguments:u.arguments},id:u.call_id};try{s.push(uu(c,{returnId:!0}))}catch(l){let p;typeof l=="object"&&l!=null&&"message"in l&&typeof l.message=="string"&&(p=l.message),i.push(cu(c,p))}a[du]??={},u.id&&(a[du][u.call_id]=u.id)}else if(u.type==="reasoning")a.reasoning=u;else if(u.type==="custom_tool_call"){let c=rg(u);c?s.push(c):i.push(cu(u,"Malformed custom tool call"))}else a.tool_outputs??=[],a.tool_outputs.push(u);return new ue({id:t,content:n,tool_calls:s,invalid_tool_calls:i,usage_metadata:kp(e.usage),additional_kwargs:a,response_metadata:o})}_convertResponsesDeltaToBaseMessageChunk(e){let t=[],n={},s,i=[],o={},a={},u;if(e.type==="response.output_text.delta")t.push({type:"text",text:e.delta,index:e.content_index});else if(e.type==="response.output_text.annotation.added")t.push({type:"text",text:"",annotations:[e.annotation],index:e.content_index});else if(e.type==="response.output_item.added"&&e.item.type==="message")u=e.item.id;else if(e.type==="response.output_item.added"&&e.item.type==="function_call")i.push({type:"tool_call_chunk",name:e.item.name,args:e.item.arguments,id:e.item.call_id,index:e.output_index}),a[du]={[e.item.call_id]:e.item.id};else if(e.type==="response.output_item.done"&&["web_search_call","file_search_call","computer_call","code_interpreter_call","mcp_call","mcp_list_tools","mcp_approval_request","image_generation_call","custom_tool_call"].includes(e.item.type))a.tool_outputs=[e.item];else if(e.type==="response.created")o.id=e.response.id,o.model_name=e.response.model,o.model=e.response.model;else if(e.type==="response.completed"){let c=this._convertResponsesMessageToBaseMessage(e.response);s=kp(e.response.usage),e.response.text?.format?.type==="json_schema"&&(a.parsed??=JSON.parse(c.text));for(let[l,p]of Object.entries(e.response))l!=="id"&&(o[l]=p)}else if(e.type==="response.function_call_arguments.delta"||e.type==="response.custom_tool_call_input.delta")i.push({type:"tool_call_chunk",args:e.delta,index:e.output_index});else if(e.type==="response.web_search_call.completed"||e.type==="response.file_search_call.completed")n={tool_outputs:{id:e.item_id,type:e.type.replace("response.","").replace(".completed",""),status:"completed"}};else if(e.type==="response.refusal.done")a.refusal=e.refusal;else if(e.type==="response.output_item.added"&&"item"in e&&e.item.type==="reasoning"){let c=e.item.summary?e.item.summary.map((l,p)=>({...l,index:p})):void 0;a.reasoning={id:e.item.id,type:e.item.type,...c?{summary:c}:{}}}else if(e.type==="response.reasoning_summary_part.added")a.reasoning={type:"reasoning",summary:[{...e.part,index:e.summary_index}]};else if(e.type==="response.reasoning_summary_text.delta")a.reasoning={type:"reasoning",summary:[{text:e.delta,type:"summary_text",index:e.summary_index}]};else return e.type==="response.image_generation_call.partial_image",null;return new ht({text:t.map(c=>c.text).join(""),message:new Mt({id:u,content:t,tool_call_chunks:i,usage_metadata:s,additional_kwargs:a,response_metadata:o}),generationInfo:n})}_convertMessagesToResponsesParams(e){return e.flatMap(t=>{let n=t.additional_kwargs,s=Cp(t);if(s==="system"&&gu(this.model)&&(s="developer"),s==="function")throw new Error("Function messages are not supported in Responses API");if(s==="tool"){let i=t;return n?.type==="computer_call_output"?{type:"computer_call_output",output:(()=>{if(typeof i.content=="string")return{type:"computer_screenshot",image_url:i.content};if(Array.isArray(i.content)){let a=i.content.find(c=>c.type==="computer_screenshot");if(a)return a;let u=i.content.find(c=>c.type==="image_url");if(u)return{type:"computer_screenshot",image_url:typeof u.image_url=="string"?u.image_url:u.image_url.url}}throw new Error("Invalid computer call output")})(),call_id:i.tool_call_id}:i.metadata?.customTool?{type:"custom_tool_call_output",call_id:i.tool_call_id,output:i.content}:{type:"function_call_output",call_id:i.tool_call_id,id:i.id?.startsWith("fc_")?i.id:void 0,output:typeof i.content!="string"?JSON.stringify(i.content):i.content}}if(s==="assistant"){if(!this.zdrEnabled&&t.response_metadata.output!=null&&Array.isArray(t.response_metadata.output)&&t.response_metadata.output.length>0&&t.response_metadata.output.every(l=>"type"in l))return t.response_metadata.output;let i=[];if(n?.reasoning&&!this.zdrEnabled){let l=this._convertReasoningSummary(n.reasoning);i.push(l)}let{content:o}=t;n?.refusal&&(typeof o=="string"&&(o=[{type:"output_text",text:o,annotations:[]}]),o=[...o,{type:"refusal",refusal:n.refusal}]),(typeof o=="string"||o.length>0)&&i.push({type:"message",role:"assistant",...t.id&&!this.zdrEnabled&&t.id.startsWith("msg_")?{id:t.id}:{},content:typeof o=="string"?o:o.flatMap(l=>l.type==="text"?{type:"output_text",text:l.text,annotations:l.annotations??[]}:l.type==="output_text"||l.type==="refusal"?l:[])});let a=n?.[du];jt(t)&&t.tool_calls?.length?i.push(...t.tool_calls.map(l=>ng(l)?{type:"custom_tool_call",id:l.call_id,call_id:l.id??"",input:l.args.input,name:l.name}:{type:"function_call",name:l.name,arguments:JSON.stringify(l.args),call_id:l.id,...this.zdrEnabled?{id:a?.[l.id]}:{}})):n?.tool_calls&&i.push(...n.tool_calls.map(l=>({type:"function_call",name:l.function.name,call_id:l.id,arguments:l.function.arguments,...this.zdrEnabled?{id:a?.[l.id]}:{}})));let u=t.response_metadata.output?.length?t.response_metadata.output:n.tool_outputs,c=["computer_call","mcp_call","code_interpreter_call","image_generation_call"];if(u!=null){let p=u?.filter(h=>c.includes(h.type));p.length>0&&i.push(...p)}return i}if(s==="user"||s==="system"||s==="developer"){if(typeof t.content=="string")return{type:"message",role:s,content:t.content};let i=[],o=t.content.flatMap(a=>(a.type==="mcp_approval_response"&&i.push({type:"mcp_approval_response",approval_request_id:a.approval_request_id,approve:a.approve}),Au(a)?Eu(a,ag):a.type==="text"?{type:"input_text",text:a.text}:a.type==="image_url"?{type:"input_image",image_url:typeof a.image_url=="string"?a.image_url:a.image_url.url,detail:typeof a.image_url=="string"?"auto":a.image_url.detail}:a.type==="input_text"||a.type==="input_image"||a.type==="input_file"?a:[]));return o.length>0&&i.push({type:"message",role:s,content:o}),i}return console.warn(`Unsupported role found when converting to OpenAI Responses API: ${s}`),[]})}_convertReasoningSummary(e){let t=(e.summary.length>1?e.summary.reduce((n,s)=>{let i=n.at(-1);return i.index===s.index?i.text+=s.text:n.push(s),n},[{...e.summary[0]}]):e.summary).map(n=>Object.fromEntries(Object.entries(n).filter(([s])=>s!=="index")));return{...e,summary:t}}_reduceChatOpenAITools(e,t){let n=[];for(let s of e)hu(s)?(s.type==="image_generation"&&t?.stream&&(s.partial_images=1),n.push(s)):zo(s)?n.push({type:"function",name:s.function.name,parameters:s.function.parameters,description:s.function.description,strict:t?.strict??null}):Ip(s)&&n.push(sg(s));return n}},mo=class extends fo{invocationParams(e,t){let n;e?.strict!==void 0?n=e.strict:this.supportsStrictToolCalling!==void 0&&(n=this.supportsStrictToolCalling);let s={};e?.stream_options!==void 0?s={stream_options:e.stream_options}:this.streamUsage&&(this.streaming||t?.streaming)&&(s={stream_options:{include_usage:!0}});let i={model:this.model,temperature:this.temperature,top_p:this.topP,frequency_penalty:this.frequencyPenalty,presence_penalty:this.presencePenalty,logprobs:this.logprobs,top_logprobs:this.topLogprobs,n:this.n,logit_bias:this.logitBias,stop:e?.stop??this.stopSequences,user:this.user,stream:this.streaming,functions:e?.functions,function_call:e?.function_call,tools:e?.tools?.length?e.tools.map(a=>this._convertChatOpenAIToolToCompletionsTool(a,{strict:n})):void 0,tool_choice:Ep(e?.tool_choice),response_format:this._getResponseFormat(e?.response_format),seed:e?.seed,...s,parallel_tool_calls:e?.parallel_tool_calls,...this.audio||e?.audio?{audio:this.audio||e?.audio}:{},...this.modalities||e?.modalities?{modalities:this.modalities||e?.modalities}:{},...this.modelKwargs,prompt_cache_key:e?.promptCacheKey??this.promptCacheKey,verbosity:e?.verbosity??this.verbosity};e?.prediction!==void 0&&(i.prediction=e.prediction),this.service_tier!==void 0&&(i.service_tier=this.service_tier),e?.service_tier!==void 0&&(i.service_tier=e.service_tier);let o=this._getReasoningParams(e);return o!==void 0&&o.effort!==void 0&&(i.reasoning_effort=o.effort),gu(i.model)?i.max_completion_tokens=this.maxTokens===-1?void 0:this.maxTokens:i.max_tokens=this.maxTokens===-1?void 0:this.maxTokens,i}async _generate(e,t,n){let s={},i=this.invocationParams(t),o=Sp(e,this.model);if(i.stream){let a=this._streamResponseChunks(e,t,n),u={};for await(let g of a){g.message.response_metadata={...g.generationInfo,...g.message.response_metadata};let b=g.generationInfo?.completion??0;u[b]===void 0?u[b]=g:u[b]=u[b].concat(g)}let c=Object.entries(u).sort(([g],[b])=>parseInt(g,10)-parseInt(b,10)).map(([g,b])=>b),{functions:l,function_call:p}=this.invocationParams(t),h=await this._getEstimatedTokenCountFromPrompt(e,l,p),f=await this._getNumTokensFromGenerations(c);return s.input_tokens=h,s.output_tokens=f,s.total_tokens=h+f,{generations:c,llmOutput:{estimatedTokenUsage:{promptTokens:s.input_tokens,completionTokens:s.output_tokens,totalTokens:s.total_tokens}}}}else{let a=await this.completionWithRetry({...i,stream:!1,messages:o},{signal:t?.signal,...t?.options}),{completion_tokens:u,prompt_tokens:c,total_tokens:l,prompt_tokens_details:p,completion_tokens_details:h}=a?.usage??{};u&&(s.output_tokens=(s.output_tokens??0)+u),c&&(s.input_tokens=(s.input_tokens??0)+c),l&&(s.total_tokens=(s.total_tokens??0)+l),(p?.audio_tokens!==null||p?.cached_tokens!==null)&&(s.input_token_details={...p?.audio_tokens!==null&&{audio:p?.audio_tokens},...p?.cached_tokens!==null&&{cache_read:p?.cached_tokens}}),(h?.audio_tokens!==null||h?.reasoning_tokens!==null)&&(s.output_token_details={...h?.audio_tokens!==null&&{audio:h?.audio_tokens},...h?.reasoning_tokens!==null&&{reasoning:h?.reasoning_tokens}});let f=[];for(let g of a?.choices??[]){let _={text:g.message?.content??"",message:this._convertCompletionsMessageToBaseMessage(g.message??{role:"assistant"},a)};_.generationInfo={...g.finish_reason?{finish_reason:g.finish_reason}:{},...g.logprobs?{logprobs:g.logprobs}:{}},jt(_.message)&&(_.message.usage_metadata=s),_.message=new ue(Object.fromEntries(Object.entries(_.message).filter(([I])=>!I.startsWith("lc_")))),f.push(_)}return{generations:f,llmOutput:{tokenUsage:{promptTokens:s.input_tokens,completionTokens:s.output_tokens,totalTokens:s.total_tokens}}}}}async*_streamResponseChunks(e,t,n){let s=Sp(e,this.model),i={...this.invocationParams(t,{streaming:!0}),messages:s,stream:!0},o,a=await this.completionWithRetry(i,t),u;for await(let c of a){let l=c?.choices?.[0];if(c.usage&&(u=c.usage),!l)continue;let{delta:p}=l;if(!p)continue;let h=this._convertCompletionsDeltaToBaseMessageChunk(p,c,o);o=p.role??o;let f={prompt:t.promptIndex??0,completion:l.index??0};if(typeof h.content!="string"){console.log("[WARNING]: Received non-string content from OpenAI. This is currently not supported.");continue}let g={...f};l.finish_reason!=null&&(g.finish_reason=l.finish_reason,g.system_fingerprint=c.system_fingerprint,g.model_name=c.model,g.service_tier=c.service_tier),this.logprobs&&(g.logprobs=l.logprobs);let b=new ht({message:h,text:h.content,generationInfo:g});yield b,await n?.handleLLMNewToken(b.text??"",f,void 0,void 0,void 0,{chunk:b})}if(u){let c={...u.prompt_tokens_details?.audio_tokens!==null&&{audio:u.prompt_tokens_details?.audio_tokens},...u.prompt_tokens_details?.cached_tokens!==null&&{cache_read:u.prompt_tokens_details?.cached_tokens}},l={...u.completion_tokens_details?.audio_tokens!==null&&{audio:u.completion_tokens_details?.audio_tokens},...u.completion_tokens_details?.reasoning_tokens!==null&&{reasoning:u.completion_tokens_details?.reasoning_tokens}};yield new ht({message:new Mt({content:"",response_metadata:{usage:{...u}},usage_metadata:{input_tokens:u.prompt_tokens,output_tokens:u.completion_tokens,total_tokens:u.total_tokens,...Object.keys(c).length>0&&{input_token_details:c},...Object.keys(l).length>0&&{output_token_details:l}}}),text:""})}if(t.signal?.aborted)throw new Error("AbortError")}async completionWithRetry(e,t){let n=this._getClientOptions(t),s=e.response_format&&e.response_format.type==="json_schema";return this.caller.call(async()=>{try{return s&&!e.stream?await this.client.chat.completions.parse(e,n):await this.client.chat.completions.create(e,n)}catch(i){throw ri(i)}})}_convertCompletionsMessageToBaseMessage(e,t){let n=e.tool_calls;switch(e.role){case"assistant":{let s=[],i=[];for(let c of n??[])try{s.push(uu(c,{returnId:!0}))}catch(l){i.push(cu(c,l.message))}let o={function_call:e.function_call,tool_calls:n};this.__includeRawResponse!==void 0&&(o.__raw_response=t);let a={model_name:t.model,...t.system_fingerprint?{usage:{...t.usage},system_fingerprint:t.system_fingerprint}:{}};e.audio&&(o.audio=e.audio);let u=og(e.content||"",t.choices?.[0]?.message);return new ue({content:u,tool_calls:s,invalid_tool_calls:i,additional_kwargs:o,response_metadata:a,id:t.id})}default:return new Su(e.content||"",e.role??"unknown")}}_convertCompletionsDeltaToBaseMessageChunk(e,t,n){let s=e.role??n,i=e.content??"",o;e.function_call?o={function_call:e.function_call}:e.tool_calls?o={tool_calls:e.tool_calls}:o={},this.__includeRawResponse&&(o.__raw_response=t),e.audio&&(o.audio={...e.audio,index:t.choices[0].index});let a={usage:{...t.usage}};if(s==="user")return new mf({content:i,response_metadata:a});if(s==="assistant"){let u=[];if(Array.isArray(e.tool_calls))for(let c of e.tool_calls)u.push({name:c.function?.name,args:c.function?.arguments,id:c.id,index:c.index,type:"tool_call_chunk"});return new Mt({content:i,tool_call_chunks:u,additional_kwargs:o,id:t.id,response_metadata:a})}else return s==="system"?new Cu({content:i,response_metadata:a}):s==="developer"?new Cu({content:i,response_metadata:a,additional_kwargs:{__openai_role__:"developer"}}):s==="function"?new df({content:i,additional_kwargs:o,name:e.name,response_metadata:a}):s==="tool"?new ff({content:i,additional_kwargs:o,tool_call_id:e.tool_call_id,response_metadata:a}):new hf({content:i,role:s,response_metadata:a})}},mu=class r extends fo{get lc_serializable_keys(){return[...super.lc_serializable_keys,"useResponsesApi"]}constructor(e){super(e),Object.defineProperty(this,"fields",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"useResponsesApi",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"responses",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"completions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.useResponsesApi=e?.useResponsesApi??!1,this.responses=e?.responses??new ho(e),this.completions=e?.completions??new mo(e)}_useResponsesApi(e){let t=e?.tools?.some(hu),n=e?.previous_response_id!=null||e?.text!=null||e?.truncation!=null||e?.include!=null||e?.reasoning?.summary!=null||this.reasoning?.summary!=null,s=e?.tools?.some(Ip);return this.useResponsesApi||t||n||s}getLsParams(e){let t=this._combineCallOptions(e);return this._useResponsesApi(e)?this.responses.getLsParams(t):this.completions.getLsParams(t)}invocationParams(e){let t=this._combineCallOptions(e);return this._useResponsesApi(e)?this.responses.invocationParams(t):this.completions.invocationParams(t)}async _generate(e,t,n){return this._useResponsesApi(t)?this.responses._generate(e,t):this.completions._generate(e,t,n)}async*_streamResponseChunks(e,t,n){if(this._useResponsesApi(t)){yield*this.responses._streamResponseChunks(e,this._combineCallOptions(t),n);return}yield*this.completions._streamResponseChunks(e,this._combineCallOptions(t),n)}withConfig(e){let t=new r(this.fields);return t.defaultOptions={...this.defaultOptions,...e},t}};var Aw=r=>r();function ug(r){return typeof Headers<"u"&&r!==null&&typeof r=="object"&&Object.prototype.toString.call(r)==="[object Headers]"}function bu(r){let e=Aw(()=>{if(ug(r))return r;if(Array.isArray(r))return new Headers(r);if(typeof r=="object"&&r!==null&&"values"in r&&ug(r.values))return r.values;if(typeof r=="object"&&r!==null){let t=Object.entries(r).filter(([,n])=>typeof n=="string").map(([n,s])=>[n,s]);return new Headers(t)}return new Headers});return Object.fromEntries(e.entries())}var Np={openAIApiKey:"openai_api_key",openAIApiVersion:"openai_api_version",openAIBasePath:"openai_api_base",deploymentName:"deployment_name",azureOpenAIEndpoint:"azure_endpoint",azureOpenAIApiVersion:"openai_api_version",azureOpenAIBasePath:"openai_api_base",azureOpenAIApiDeploymentName:"deployment_name"},jp={azureOpenAIApiKey:"AZURE_OPENAI_API_KEY"},Mp=["azureOpenAIApiKey","azureOpenAIApiVersion","azureOpenAIBasePath","azureOpenAIEndpoint","azureOpenAIApiInstanceName","azureOpenAIApiDeploymentName","deploymentName","openAIApiKey","openAIApiVersion"];function Dp(r){if(this.azureOpenAIApiKey=r?.azureOpenAIApiKey??r?.openAIApiKey??r?.apiKey??pe("AZURE_OPENAI_API_KEY"),this.azureOpenAIApiInstanceName=r?.azureOpenAIApiInstanceName??pe("AZURE_OPENAI_API_INSTANCE_NAME"),this.azureOpenAIApiDeploymentName=r?.azureOpenAIApiDeploymentName??r?.deploymentName??pe("AZURE_OPENAI_API_DEPLOYMENT_NAME"),this.azureOpenAIApiVersion=r?.azureOpenAIApiVersion??r?.openAIApiVersion??pe("AZURE_OPENAI_API_VERSION"),this.azureOpenAIBasePath=r?.azureOpenAIBasePath??pe("AZURE_OPENAI_BASE_PATH"),this.azureOpenAIEndpoint=r?.azureOpenAIEndpoint??pe("AZURE_OPENAI_ENDPOINT"),this.azureADTokenProvider=r?.azureADTokenProvider,!this.azureOpenAIApiKey&&!this.apiKey&&!this.azureADTokenProvider)throw new Error("Azure OpenAI API key or Token Provider not found")}function cg(r){if(!this.client){let t={azureOpenAIApiDeploymentName:this.azureOpenAIApiDeploymentName,azureOpenAIApiInstanceName:this.azureOpenAIApiInstanceName,azureOpenAIApiKey:this.azureOpenAIApiKey,azureOpenAIBasePath:this.azureOpenAIBasePath,azureADTokenProvider:this.azureADTokenProvider,baseURL:this.clientConfig.baseURL,azureOpenAIEndpoint:this.azureOpenAIEndpoint},n=Vr(t),s={...this.clientConfig,baseURL:n,timeout:this.timeout,maxRetries:0};this.azureADTokenProvider||(s.apiKey=t.azureOpenAIApiKey),s.baseURL||delete s.baseURL;let i=yf();(i==="node"||i==="deno")&&(i=`(${i}/${process.version}; ${process.platform}; ${process.arch})`);let o=bu(s.defaultHeaders);s.defaultHeaders={...s.defaultHeaders,"User-Agent":o["User-Agent"]?`langchainjs-azure-openai/2.0.0 (${i})${o["User-Agent"]}`:`langchainjs-azure-openai/2.0.0 (${i})`},this.client=new Ln({apiVersion:this.azureOpenAIApiVersion,azureADTokenProvider:this.azureADTokenProvider,deployment:this.azureOpenAIApiDeploymentName,...s})}let e={...this.clientConfig,...r};return this.azureOpenAIApiKey&&(e.headers={"api-key":this.azureOpenAIApiKey,...e.headers},e.query={"api-version":this.azureOpenAIApiVersion,...e.query}),e}function $p(r){let e=r;function t(n){return typeof n=="object"&&n!=null}if(t(e)&&t(e.kwargs)){if(delete e.kwargs.azure_openai_base_path,delete e.kwargs.azure_openai_api_deployment_name,delete e.kwargs.azure_openai_api_key,delete e.kwargs.azure_openai_api_version,delete e.kwargs.azure_open_ai_base_path,!e.kwargs.azure_endpoint&&this.azureOpenAIEndpoint&&(e.kwargs.azure_endpoint=this.azureOpenAIEndpoint),!e.kwargs.azure_endpoint&&this.azureOpenAIBasePath){let n=this.azureOpenAIBasePath.split("/openai/deployments/");if(n.length===2&&n[0].startsWith("http")){let[s]=n;e.kwargs.azure_endpoint=s}}if(!e.kwargs.azure_endpoint&&this.azureOpenAIApiInstanceName&&(e.kwargs.azure_endpoint=`https://${this.azureOpenAIApiInstanceName}.openai.azure.com/`),!e.kwargs.deployment_name&&this.azureOpenAIApiDeploymentName&&(e.kwargs.deployment_name=this.azureOpenAIApiDeploymentName),!e.kwargs.deployment_name&&this.azureOpenAIBasePath){let n=this.azureOpenAIBasePath.split("/openai/deployments/");if(n.length===2){let[,s]=n;e.kwargs.deployment_name=s}}e.kwargs.azure_endpoint&&e.kwargs.deployment_name&&e.kwargs.openai_api_base&&delete e.kwargs.openai_api_base,e.kwargs.azure_openai_api_instance_name&&e.kwargs.azure_endpoint&&delete e.kwargs.azure_openai_api_instance_name}return e}var Tp=class extends ho{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Np}}get lc_secrets(){return{...super.lc_secrets,...jp}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Mp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super(e),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Dp.call(this,e)}_getClientOptions(e){return cg.call(this,e)}toJSON(){return $p.call(this,super.toJSON())}},Rp=class extends mo{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Np}}get lc_secrets(){return{...super.lc_secrets,...jp}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Mp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super(e),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Dp.call(this,e)}_getClientOptions(e){return cg.call(this,e)}toJSON(){return $p.call(this,super.toJSON())}},yu=class extends mu{_llmType(){return"azure_openai"}get lc_aliases(){return{...super.lc_aliases,...Np}}get lc_secrets(){return{...super.lc_secrets,...jp}}get lc_serializable_keys(){return[...super.lc_serializable_keys,...Mp]}getLsParams(e){let t=super.getLsParams(e);return t.ls_provider="azure",t}constructor(e){super({...e,completions:new Rp(e),responses:new Tp(e)}),Object.defineProperty(this,"azureOpenAIApiVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureADTokenProvider",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiInstanceName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIApiDeploymentName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIBasePath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"azureOpenAIEndpoint",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Dp.call(this,e)}_getStructuredOutputMethod(e){let t={...e};return this.model.startsWith("gpt-4o")&&t?.method===void 0?"functionCalling":super._getStructuredOutputMethod(t)}toJSON(){return $p.call(this,super.toJSON())}};var Lp=class extends Qn{static lc_name(){return"DallEAPIWrapper"}constructor(e){e?.responseFormat!==void 0&&["url","b64_json"].includes(e.responseFormat)&&(e.dallEResponseFormat=e.responseFormat,e.responseFormat="content"),super(e),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"dalle_api_wrapper"}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:"A wrapper around OpenAI DALL-E API. Useful for when you need to generate images from a text description. Input should be an image description."}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"model",{enumerable:!0,configurable:!0,writable:!0,value:"dall-e-3"}),Object.defineProperty(this,"style",{enumerable:!0,configurable:!0,writable:!0,value:"vivid"}),Object.defineProperty(this,"quality",{enumerable:!0,configurable:!0,writable:!0,value:"standard"}),Object.defineProperty(this,"n",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:"1024x1024"}),Object.defineProperty(this,"dallEResponseFormat",{enumerable:!0,configurable:!0,writable:!0,value:"url"}),Object.defineProperty(this,"user",{enumerable:!0,configurable:!0,writable:!0,value:void 0});let t=e?.apiKey??e?.openAIApiKey??pe("OPENAI_API_KEY"),n=e?.organization??pe("OPENAI_ORGANIZATION"),s={apiKey:t,organization:n,dangerouslyAllowBrowser:!0,baseURL:e?.baseUrl};this.client=new z(s),this.model=e?.model??e?.modelName??this.model,this.style=e?.style??this.style,this.quality=e?.quality??this.quality,this.n=e?.n??this.n,this.size=e?.size??this.size,this.dallEResponseFormat=e?.dallEResponseFormat??this.dallEResponseFormat,this.user=e?.user}processMultipleGeneratedUrls(e){return this.dallEResponseFormat==="url"?e.flatMap(t=>t.data?.flatMap(s=>s.url?{type:"image_url",image_url:s.url}:[]).filter(s=>s!==void 0&&s.type==="image_url"&&typeof s.image_url=="string"&&s.image_url!==void 0)??[]):e.flatMap(t=>t.data?.flatMap(s=>s.b64_json?{type:"image_url",image_url:{url:s.b64_json}}:[]).filter(s=>s!==void 0&&s.type==="image_url"&&typeof s.image_url=="object"&&"url"in s.image_url&&typeof s.image_url.url=="string"&&s.image_url.url!==void 0)??[])}async _call(e){let t={model:this.model,prompt:e,n:1,size:this.size,response_format:this.dallEResponseFormat,style:this.style,quality:this.quality,user:this.user};if(this.n>1){let i=await Promise.all(Array.from({length:this.n}).map(()=>this.client.images.generate(t)));return this.processMultipleGeneratedUrls(i)}let n=await this.client.images.generate(t),s="";return this.dallEResponseFormat==="url"?[s]=n.data?.map(i=>i.url).filter(i=>i!=="undefined")??[]:[s]=n.data?.map(i=>i.b64_json).filter(i=>i!=="undefined")??[],s}};Object.defineProperty(Lp,"toolName",{enumerable:!0,configurable:!0,writable:!0,value:"dalle_api_wrapper"});var mg={"gpt-4.1":{deploymentName:"gpt-4.1",apiVersion:"2024-10-21",pathSegment:"models/gpt-4.1/openai/deployments/gpt-4.1/chat/completions"},"gpt-4.1-mini":{deploymentName:"gpt-4.1-mini",apiVersion:"2024-10-21",pathSegment:"models/gpt-4.1-mini/openai/deployments/gpt-4.1-mini/chat/completions"},"text-embedding-ada-002":{deploymentName:"text-embedding-ada-002",apiVersion:"2024-10-21",pathSegment:"models/text-embedding-ada-002/openai/deployments/text-embedding-ada-002/embeddings"}},gg={default:"gpt-4.1",fast:"gpt-4.1-mini"},Pw={default:"text-embedding-ada-002"},bg=(r,e)=>{let t=mg[e];return`${r}/${t.pathSegment}?api-version=${t.apiVersion}`};function yg(){let r=zp.getDefault().helperServices;if(!r?.aiUtilityServices?.url)throw new Error("AI Utility Service URL is not defined in the portal's helper services.");return r.aiUtilityServices.url}function Ew(r="default"){return bg(yg(),gg[r])}function Iw(r="default"){return bg(yg(),Pw[r])}var kw=async r=>{let e=await Sw(),t=Iw("default"),n=zp.getDefault(),s=(await dg.getCredential(`${n.url}/sharing`)).token,i={type:"generateEmbeddings",layersAndFieldsRegistry:r,auth:{apiUrl:t,token:s}};return e.postMessage(i),await new Promise((o,a)=>{let u=l=>{l.data==="completed"&&(e.removeEventListener("message",u),o())},c=l=>{e.removeEventListener("message",u),a(l instanceof Error?l:new Error("Embeddings worker error"))};e.addEventListener("message",u),e.addEventListener("error",c,{once:!0})}),e},Sw=async()=>{let r=(await import("./IXX5ULW6.js")).default;return new r},lg=(r,e)=>e,Cw=lt.Root({userInput:lt(),messages:lt({reducer:Rr,default:()=>[]}),pendingIntents:lt({default:()=>[],reducer:lg}),currentIntent:lt({default:()=>"none",reducer:lg})}),wr=async(r,e)=>{await $l("trace_message",r,e)},LL=async(r,e)=>{await $l("graph_ux_suggestion",r,e)},Tw=r=>{r.currentIntent="none",r.pendingIntents=[]},Rw=async(r,e)=>{if(r.userInput){let n=new ot(r.userInput.trim());r.messages=[...r.messages,n],Tw(r)}let t=e?.configurable?.services.agentRegistry.list().map(n=>n.agent.id)??[];return await wr({text:`Available agents: ${[...t].join(", ")}`},e),await wr({text:"Analyzing user input"},e),r},Nw=async(r,e)=>(await wr({text:"Exiting..."},e),r),jw=r=>{if(r.pendingIntents.length===0)return{...r,currentIntent:"none"};let[e,...t]=r.pendingIntents;return{...r,currentIntent:e,pendingIntents:t}},pg=4e3,Mw=async(r,e)=>{let t=e?.configurable,{agentRegistry:n}=t.services,s=n?.get(r.currentIntent);if(!s)return console.warn(`No agent found for intent: ${r.currentIntent}`),r;await wr({text:`Executing registered agent: ${s.agent.name}`},e);let i={...e??{},configurable:{...t??{},agentId:s.agent.id,context:s.getContext?await s.getContext():void 0}},o=await s.agent.createGraph().compile().invoke({messages:[...r.messages]},i);await wr({text:`Finished executing registered agent: ${s.agent.name}`},e);let a=typeof o?.outputMessage=="string"?o.outputMessage.trim():"";if(!a)return r;let u=a.length>pg?`${a.slice(0,pg-14)}
131
+ [truncated]`:a;return{...r,messages:[...r.messages,new ue(u)]}},Dw=(r,e,t)=>{let n=r[e];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((s,i)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(i.bind(null,new Error("Unknown variable dynamic import: "+e+(e.split("/").length!==t?". Note that variables only represent file names one level deep.":""))))})},Bp=async r=>(await Dw(Object.assign({"./field_descriptions_prompt.md":()=>import("./MTNAHLA4.js"),"./intent_prompt.md":()=>import("./QSJZ4GJQ.js"),"./layer_descriptions_prompt.md":()=>import("./O2ASMWKU.js")}),`./${r}.md`,2)).default,$w=(r,e=3)=>r.filter(t=>t instanceof ot).slice(-e),Lw=r=>{let e=-1;for(let t=r.length-1;t>=0;t--)if(r[t]instanceof ot){e=t;break}return e===-1?"":r.slice(e+1).filter(t=>t instanceof ue).map(t=>t.content).join(`
132
+ `)},Fw=["x-stainless-package-version","x-stainless-timeout","x-stainless-retry-count","x-stainless-lang","x-stainless-os","x-stainless-arch","x-stainless-runtime","x-stainless-runtime-version","x-stainless-helper-method","api-key"],Uw=r=>async(e,t)=>{let n=new Headers(t?.headers);return Fw.forEach(s=>n.delete(s)),r&&r.length>0&&n.set("X-Esri-Authorization",`Bearer ${r}`),await fetch(e,{...t,headers:n})},Kp=async(r="default",e=0)=>{let t=zp.getDefault(),n=await dg.getCredential(`${t.url}/sharing`),s=gg[r],i=Ew(r),o=mg[s];return new yu({temperature:e,azureOpenAIApiKey:"x",azureOpenAIBasePath:i,azureOpenAIApiDeploymentName:o.deploymentName,azureOpenAIApiVersion:o.apiVersion,model:s,configuration:{fetch:Uw(n.token)}})},zw=r=>{let e=new Set;for(let t of r)if(jt(t)){let n=t;n.tool_calls&&n.tool_calls.length>0&&n.tool_calls.forEach(s=>{s.id&&e.add(s.id)})}return r.filter(t=>{if(wo(t)){let n=t;return e.has(n.tool_call_id)}return!0})},Wp=(r,e)=>{let t=Lu.fromTemplate(r);return Xr.fromMessages([t,...e])},Bw=async r=>{let{promptText:e,modelTier:t,temperature:n,messages:s}=r,i=Wp(e,s??[]),o=await Kp(t,n);return i.pipe(o)},FL=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i}=r,o=await(await Bw({promptText:e,modelTier:t,temperature:n,messages:s})).invoke(i??{});if(typeof o=="string")return o;let a=o.content;return typeof a=="string"?a:JSON.stringify(a)},Hp=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i,schema:o}=r,a=Wp(e,s??[]),u=(await Kp(t,n)).withStructuredOutput(o);return await a.pipe(u).invoke(i??{})},UL=async r=>{let{promptText:e,modelTier:t="default",temperature:n=0,messages:s,inputVariables:i,tools:o}=r,a=o.length>0?zw(s??[]):s??[],u=Wp(e,a),c=await Kp(t,n);return await u.pipe(c.bindTools(o)).invoke(i??{})},Kw=oe.object({id:oe.string().min(1),name:oe.string().min(1),description:oe.string().min(1)});oe.array(Kw);var Ww=r=>{let e=r.map(n=>n.id),t=oe.enum(e);return oe.object({intents:oe.array(t)})},Hw=async(r,e)=>{try{await wr({text:"Asking LLM to detect intents"},e);let t=await Bp("intent_prompt"),n=(e?.configurable?.services.agentRegistry?.list()??[]).map(({agent:f})=>({id:f.id,name:f.name,description:f.description}));if(!n.length)return await wr({text:"No agents registered; skipping intent detection"},e),{...r,currentIntent:"none",pendingIntents:[]};let s=n.map(f=>JSON.stringify(f)).join(`
133
+ `),i=n.length,o=Ww(n),a={maxIntents:i,registeredAgents:s},u=await Hp({promptText:t,modelTier:"fast",schema:o,messages:$w(r.messages),inputVariables:a}),c=new Set,l=(u.intents??[]).filter(f=>c.has(f)?!1:(c.add(f),!0)).slice(0,i),p=l[0]??"none",h={...r,currentIntent:p,pendingIntents:l};return await wr({text:`Intents came back as: ${l.join(", ")||"none"}`},e),h}catch(t){throw await wr({text:"Error during intent detection"},e),new Error(`Error during intent detection: ${t instanceof Error?t.message:String(t)}`)}},Vw=()=>new mn(Cw).addNode("ingestInput",Rw).addNode("intentLLM",Hw).addNode("intentDispatcher",jw).addNode("executeRegisteredAgent",Mw).addNode("exit",Nw).addEdge(q,"ingestInput").addEdge("ingestInput","intentLLM").addEdge("intentLLM","intentDispatcher").addConditionalEdges("intentDispatcher",r=>r.currentIntent==="none"?"exit":"executeRegisteredAgent").addEdge("executeRegisteredAgent","intentDispatcher").addEdge("exit",K),Fp=class{constructor(){this.agentRegistry=new Map}register(e){let{agent:t}=e;if(this.agentRegistry.has(t.id))throw new Error(`Duplicate agent id: ${t.id}`);this.agentRegistry.set(t.id,e)}get(e){return this.agentRegistry.get(e)}list(){return[...this.agentRegistry.values()]}},Up=class{constructor(e,t){this.graph=e,this.config={...t}}async waitForUser(){return await new Promise((e,t)=>{this.resolveWait=e,this.rejectWait=t})}handle(e,t){try{let n={agentId:e.agentId,id:e.id,payload:t},s=this.graph.streamEvents(null,{...this.config,configurable:{...this.config.configurable,hitlResponse:n},subgraphs:!0,version:"v2"});this.resolveWait?.(s)}catch(n){this.rejectWait?.(n)}finally{this.resolveWait=void 0,this.rejectWait=void 0}}cancel(){this.rejectWait&&(this.rejectWait(new Error("User cancelled HITL")),this.resolveWait=void 0,this.rejectWait=void 0)}},Gw=pt.object({name:pt.string(),description:pt.string(),valueType:pt.string(),alias:pt.string()}),qw=pt.object({fields:pt.array(Gw)});function fg(r,e){let t=new Map;for(let n of r.fields){let s=e.fields.find(o=>o.name===n.name),i={name:n.name,type:n.type,alias:s?.alias??n.alias??"",description:s?.description??n.description??"",valueType:s?.valueType??n.valueType??""};t.set(n.name,i)}return t}var Jw=async r=>{let e=await Bp("field_descriptions_prompt"),t=r.fields.filter(i=>!(i.alias&&i.description)).map(i=>{let{name:o,type:a,alias:u,description:c}=i;return[`Name: ${o}`,`Type: ${a}`,`Alias: ${u}`,`Description: ${c??"N/A"}`].join(", ")}).join(`
134
+ `);if(t.length===0)return fg(r,{fields:[]});let n={existingItemTitle:r.portalItem?.title,existingItemDescription:r.portalItem?.description,existingLayerTitle:r.title,existingLayerDescription:r.portalItem?.description,fieldInformation:t},s=await Hp({promptText:e,modelTier:"fast",schema:qw,inputVariables:n});return fg(r,s)},Xw=pt.object({title:pt.string(),description:pt.string(),name:pt.string().nullable()}),Yw=async(r,e)=>{let t=await Bp("layer_descriptions_prompt"),n=Array.from(e.values()),s={fieldInformation:JSON.stringify(n,null,2),existingLayerTitle:r.title,existingLayerDescription:r.portalItem?.description,existingLayerSnippet:r.portalItem?.snippet,layerGeometryType:r.geometryType};return{...await Hp({promptText:t,modelTier:"fast",schema:Xw,inputVariables:s}),name:r.title??null}},Zw=async r=>{let e=r.allLayers.toArray(),t=[],n=new Map;for(let s of e)if(s instanceof Ow){let i=(async()=>{let o=await Jw(s),a=await Yw(s,o);n.set(s.id,{layerItem:a,fieldRegistry:o})})();t.push(i)}return await Promise.all(t),n};async function Qw(r,e,t){let n=`req-${Date.now()}`,s={type:"layerSearch",searchQuery:r,requestId:n};return await new Promise(i=>{let o=a=>{if(a.data.requestId!==n)return;let u=a.data.results.filter(([,c])=>c>=t).map(([c,l])=>({id:c.id??"",score:l}));i(u)};e.addEventListener("message",o,{once:!0}),e.postMessage(s)})}function e0(r){let{worker:e}=r;return{async searchLayers({text:t,minScore:n}){return await Qw(t,e,n)}}}async function t0(r,e,t,n,s){let i=`req-${Date.now()}`,o={type:"fieldSearch",searchQuery:r,layerIdForFieldsSearch:e,requestId:i};return await new Promise(a=>{let u=c=>{if(c.data.requestId!==i)return;let l=c.data.results.map(({layerId:p,results:h})=>{let f=h.filter(([,g])=>g>=n).map(([g,b])=>({name:g.id??"",score:b})).sort((g,b)=>b.score-g.score).slice(0,s);return{layerId:p,results:f}});a(l)};t.addEventListener("message",u,{once:!0}),t.postMessage(o)})}function r0(r){let{worker:e}=r;return{async searchFields({text:t,layerIds:n,minScore:s,topResults:i}){return await t0(t,n,e,s,i)}}}var hg=class r{constructor(e){this.deps=e,this.orchestratorReady=!1,this.chatHistory=[],this.threadId="",this.agentRegistry=new Fp,this.streamEpoch=0}static async init(e){let t=new r(e);if(e.view?.map){let n=await Zw(e.view.map);t.layersAndFieldsRegistry=n,t.embeddingsWorker=await kw(n)}return e.agents?.forEach(n=>{t.agentRegistry.register(n)}),t.orchestratorReady=!0,t}async*ask(e){if(!this.orchestratorReady)throw new Error("Orchestrator is not ready yet.");if(!this.agentRegistry.list().length)throw new Error("Orchestrator has no registered agents.");if(++this.streamEpoch,!e.trim())return;this.threadId=String(Date.now()),this.graph||(this.graph=Vw().compile({checkpointer:new ss}));let t=this.embeddingsWorker?e0({worker:this.embeddingsWorker}):void 0,n=this.embeddingsWorker?r0({worker:this.embeddingsWorker}):void 0,s={version:"v2",streamMode:"custom",configurable:{thread_id:this.threadId,hitlResponse:null,services:{layerSearch:t,fieldSearch:n,layersAndFieldsRegistry:this.layersAndFieldsRegistry,agentRegistry:this.agentRegistry,portal:this.deps.portal}},subgraphs:!0},i=this.graph?.streamEvents({userInput:e,messages:this.chatHistory},s),o=++this.streamEpoch;for(yield*this.pipeStream(i,o);;){let u=(await this.graph.getState(s,{subgraphs:!0})).tasks.find(c=>c.interrupts.length>0)?.interrupts[0]?.value;if(!u)break;this.currentInterrupt=u,this.interruptHandler=new Up(this.graph,s),yield{runId:this.threadId,timestamp:Date.now(),type:"interrupt",interrupt:u};try{let c=await this.interruptHandler.waitForUser(),l=++this.streamEpoch;yield*this.pipeStream(c,l)}catch(c){if(c){yield{runId:this.threadId,timestamp:Date.now(),type:"error",error:{message:c?.message}};return}yield{runId:this.threadId,timestamp:Date.now(),type:"cancelled"};return}}let a=(await this.graph.getState(s,{subgraphs:!0})).values;this.chatHistory=a.messages.length?a.messages:this.chatHistory,yield{runId:this.threadId,timestamp:Date.now(),type:"completed",result:{content:Lw(a.messages)}}}newConversation(){this.chatHistory=[]}resumeInterrupt(e){if(!this.currentInterrupt||!this.interruptHandler)throw new Error("No pending interrupt to resume.");this.interruptHandler.handle(this.currentInterrupt,e)}cancelInterrupt(){this.interruptHandler&&this.interruptHandler.cancel()}async*pipeStream(e,t){for await(let n of e){if(t!==this.streamEpoch){console.log("Stale stream detected, aborting.");break}n.event==="on_custom_event"&&n.name==="trace_message"?yield{runId:this.threadId,timestamp:Date.now(),type:"trace",data:n.data}:n.name==="graph_ux_suggestion"&&(yield{runId:this.threadId,timestamp:Date.now(),type:"ux-suggestion",suggestion:n.data})}}dispose(){this.embeddingsWorker&&(this.embeddingsWorker.terminate(),this.embeddingsWorker=void 0),this.orchestratorReady=!1}};return{a:pi,b:Or,c:Tb,d:lt,e:pt,f:q,g:K,h:Ee,i:Ce,j:Te,k:Ie,l:mn,m:Rr,n:wr,o:LL,p:FL,q:Hp,r:UL,s:hg}},"identity/IdentityManager","portal/Portal","layers/FeatureLayer",a)