@ax-llm/ax 14.0.14 → 14.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.global.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var ax=(()=>{var La=Object.create;var hn=Object.defineProperty;var Ga=Object.getOwnPropertyDescriptor;var Ua=Object.getOwnPropertyNames;var Ba=Object.getPrototypeOf,qa=Object.prototype.hasOwnProperty;var fn=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),za=(s,e)=>{for(var t in e)hn(s,t,{get:e[t],enumerable:!0})},rs=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ua(e))!qa.call(s,r)&&r!==t&&hn(s,r,{get:()=>e[r],enumerable:!(n=Ga(e,r))||n.enumerable});return s};var An=(s,e,t)=>(t=s!=null?La(Ba(s)):{},rs(e||!s||!s.__esModule?hn(t,"default",{value:s,enumerable:!0}):t,s)),ja=s=>rs(hn({},"__esModule",{value:!0}),s);var Ki=fn((No,Lo)=>{"use strict";(function(s,e){typeof No=="object"&&typeof Lo<"u"?Lo.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis<"u"?globalThis:s||self).dayjs=e()})(No,function(){"use strict";var s=1e3,e=6e4,t=36e5,n="millisecond",r="second",o="minute",i="hour",a="day",l="week",p="month",u="quarter",c="year",d="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(O){var w=["th","st","nd","rd"],R=O%100;return"["+O+(w[(R-20)%10]||w[R]||w[0])+"]"}},x=function(O,w,R){var k=String(O);return!k||k.length>=w?O:""+Array(w+1-k.length).join(R)+O},A={s:x,z:function(O){var w=-O.utcOffset(),R=Math.abs(w),k=Math.floor(R/60),v=R%60;return(w<=0?"+":"-")+x(k,2,"0")+":"+x(v,2,"0")},m:function O(w,R){if(w.date()<R.date())return-O(R,w);var k=12*(R.year()-w.year())+(R.month()-w.month()),v=w.clone().add(k,p),P=R-v<0,_=w.clone().add(k+(P?-1:1),p);return+(-(k+(R-v)/(P?v-_:_-v))||0)},a:function(O){return O<0?Math.ceil(O)||0:Math.floor(O)},p:function(O){return{M:p,y:c,w:l,d:a,D:d,h:i,m:o,s:r,ms:n,Q:u}[O]||String(O||"").toLowerCase().replace(/s$/,"")},u:function(O){return O===void 0}},b="en",C={};C[b]=f;var I="$isDayjsObject",y=function(O){return O instanceof N||!(!O||!O[I])},T=function O(w,R,k){var v;if(!w)return b;if(typeof w=="string"){var P=w.toLowerCase();C[P]&&(v=P),R&&(C[P]=R,v=P);var _=w.split("-");if(!v&&_.length>1)return O(_[0])}else{var $=w.name;C[$]=w,v=$}return!k&&v&&(b=v),v||!k&&b},S=function(O,w){if(y(O))return O.clone();var R=typeof w=="object"?w:{};return R.date=O,R.args=arguments,new N(R)},M=A;M.l=T,M.i=y,M.w=function(O,w){return S(O,{locale:w.$L,utc:w.$u,x:w.$x,$offset:w.$offset})};var N=function(){function O(R){this.$L=T(R.locale,null,!0),this.parse(R),this.$x=this.$x||R.x||{},this[I]=!0}var w=O.prototype;return w.parse=function(R){this.$d=function(k){var v=k.date,P=k.utc;if(v===null)return new Date(NaN);if(M.u(v))return new Date;if(v instanceof Date)return new Date(v);if(typeof v=="string"&&!/Z$/i.test(v)){var _=v.match(g);if(_){var $=_[2]-1||0,B=(_[7]||"0").substring(0,3);return P?new Date(Date.UTC(_[1],$,_[3]||1,_[4]||0,_[5]||0,_[6]||0,B)):new Date(_[1],$,_[3]||1,_[4]||0,_[5]||0,_[6]||0,B)}}return new Date(v)}(R),this.init()},w.init=function(){var R=this.$d;this.$y=R.getFullYear(),this.$M=R.getMonth(),this.$D=R.getDate(),this.$W=R.getDay(),this.$H=R.getHours(),this.$m=R.getMinutes(),this.$s=R.getSeconds(),this.$ms=R.getMilliseconds()},w.$utils=function(){return M},w.isValid=function(){return this.$d.toString()!==m},w.isSame=function(R,k){var v=S(R);return this.startOf(k)<=v&&v<=this.endOf(k)},w.isAfter=function(R,k){return S(R)<this.startOf(k)},w.isBefore=function(R,k){return this.endOf(k)<S(R)},w.$g=function(R,k,v){return M.u(R)?this[k]:this.set(v,R)},w.unix=function(){return Math.floor(this.valueOf()/1e3)},w.valueOf=function(){return this.$d.getTime()},w.startOf=function(R,k){var v=this,P=!!M.u(k)||k,_=M.p(R),$=function(fe,J){var ie=M.w(v.$u?Date.UTC(v.$y,J,fe):new Date(v.$y,J,fe),v);return P?ie:ie.endOf(a)},B=function(fe,J){return M.w(v.toDate()[fe].apply(v.toDate("s"),(P?[0,0,0,0]:[23,59,59,999]).slice(J)),v)},z=this.$W,V=this.$M,ee=this.$D,Ce="set"+(this.$u?"UTC":"");switch(_){case c:return P?$(1,0):$(31,11);case p:return P?$(1,V):$(0,V+1);case l:var ye=this.$locale().weekStart||0,Fe=(z<ye?z+7:z)-ye;return $(P?ee-Fe:ee+(6-Fe),V);case a:case d:return B(Ce+"Hours",0);case i:return B(Ce+"Minutes",1);case o:return B(Ce+"Seconds",2);case r:return B(Ce+"Milliseconds",3);default:return this.clone()}},w.endOf=function(R){return this.startOf(R,!1)},w.$set=function(R,k){var v,P=M.p(R),_="set"+(this.$u?"UTC":""),$=(v={},v[a]=_+"Date",v[d]=_+"Date",v[p]=_+"Month",v[c]=_+"FullYear",v[i]=_+"Hours",v[o]=_+"Minutes",v[r]=_+"Seconds",v[n]=_+"Milliseconds",v)[P],B=P===a?this.$D+(k-this.$W):k;if(P===p||P===c){var z=this.clone().set(d,1);z.$d[$](B),z.init(),this.$d=z.set(d,Math.min(this.$D,z.daysInMonth())).$d}else $&&this.$d[$](B);return this.init(),this},w.set=function(R,k){return this.clone().$set(R,k)},w.get=function(R){return this[M.p(R)]()},w.add=function(R,k){var v,P=this;R=Number(R);var _=M.p(k),$=function(V){var ee=S(P);return M.w(ee.date(ee.date()+Math.round(V*R)),P)};if(_===p)return this.set(p,this.$M+R);if(_===c)return this.set(c,this.$y+R);if(_===a)return $(1);if(_===l)return $(7);var B=(v={},v[o]=e,v[i]=t,v[r]=s,v)[_]||1,z=this.$d.getTime()+R*B;return M.w(z,this)},w.subtract=function(R,k){return this.add(-1*R,k)},w.format=function(R){var k=this,v=this.$locale();if(!this.isValid())return v.invalidDate||m;var P=R||"YYYY-MM-DDTHH:mm:ssZ",_=M.z(this),$=this.$H,B=this.$m,z=this.$M,V=v.weekdays,ee=v.months,Ce=v.meridiem,ye=function(J,ie,Ie,we){return J&&(J[ie]||J(k,P))||Ie[ie].slice(0,we)},Fe=function(J){return M.s($%12||12,J,"0")},fe=Ce||function(J,ie,Ie){var we=J<12?"AM":"PM";return Ie?we.toLowerCase():we};return P.replace(h,function(J,ie){return ie||function(Ie){switch(Ie){case"YY":return String(k.$y).slice(-2);case"YYYY":return M.s(k.$y,4,"0");case"M":return z+1;case"MM":return M.s(z+1,2,"0");case"MMM":return ye(v.monthsShort,z,ee,3);case"MMMM":return ye(ee,z);case"D":return k.$D;case"DD":return M.s(k.$D,2,"0");case"d":return String(k.$W);case"dd":return ye(v.weekdaysMin,k.$W,V,2);case"ddd":return ye(v.weekdaysShort,k.$W,V,3);case"dddd":return V[k.$W];case"H":return String($);case"HH":return M.s($,2,"0");case"h":return Fe(1);case"hh":return Fe(2);case"a":return fe($,B,!0);case"A":return fe($,B,!1);case"m":return String(B);case"mm":return M.s(B,2,"0");case"s":return String(k.$s);case"ss":return M.s(k.$s,2,"0");case"SSS":return M.s(k.$ms,3,"0");case"Z":return _}return null}(J)||_.replace(":","")})},w.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},w.diff=function(R,k,v){var P,_=this,$=M.p(k),B=S(R),z=(B.utcOffset()-this.utcOffset())*e,V=this-B,ee=function(){return M.m(_,B)};switch($){case c:P=ee()/12;break;case p:P=ee();break;case u:P=ee()/3;break;case l:P=(V-z)/6048e5;break;case a:P=(V-z)/864e5;break;case i:P=V/t;break;case o:P=V/e;break;case r:P=V/s;break;default:P=V}return v?P:M.a(P)},w.daysInMonth=function(){return this.endOf(p).$D},w.$locale=function(){return C[this.$L]},w.locale=function(R,k){if(!R)return this.$L;var v=this.clone(),P=T(R,k,!0);return P&&(v.$L=P),v},w.clone=function(){return M.w(this.$d,this)},w.toDate=function(){return new Date(this.valueOf())},w.toJSON=function(){return this.isValid()?this.toISOString():null},w.toISOString=function(){return this.$d.toISOString()},w.toString=function(){return this.$d.toUTCString()},O}(),G=N.prototype;return S.prototype=G,[["$ms",n],["$s",r],["$m",o],["$H",i],["$W",a],["$M",p],["$y",c],["$D",d]].forEach(function(O){G[O[1]]=function(w){return this.$g(w,O[0],O[1])}}),S.extend=function(O,w){return O.$i||(O(w,N,S),O.$i=!0),S},S.locale=T,S.isDayjs=y,S.unix=function(O){return S(1e3*O)},S.en=C[b],S.Ls=C,S.p={},S})});var Vi=fn((Go,Uo)=>{"use strict";(function(s,e){typeof Go=="object"&&typeof Uo<"u"?Uo.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis<"u"?globalThis:s||self).dayjs_plugin_customParseFormat=e()})(Go,function(){"use strict";var s={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,t=/\d/,n=/\d\d/,r=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,i={},a=function(g){return(g=+g)+(g>68?1900:2e3)},l=function(g){return function(h){this[g]=+h}},p=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(h){if(!h||h==="Z")return 0;var f=h.match(/([+-]|\d\d)/g),x=60*f[1]+(+f[2]||0);return x===0?0:f[0]==="+"?-x:x}(g)}],u=function(g){var h=i[g];return h&&(h.indexOf?h:h.s.concat(h.f))},c=function(g,h){var f,x=i.meridiem;if(x){for(var A=1;A<=24;A+=1)if(g.indexOf(x(A,0,h))>-1){f=A>12;break}}else f=g===(h?"pm":"PM");return f},d={A:[o,function(g){this.afternoon=c(g,!1)}],a:[o,function(g){this.afternoon=c(g,!0)}],Q:[t,function(g){this.month=3*(g-1)+1}],S:[t,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[r,l("seconds")],ss:[r,l("seconds")],m:[r,l("minutes")],mm:[r,l("minutes")],H:[r,l("hours")],h:[r,l("hours")],HH:[r,l("hours")],hh:[r,l("hours")],D:[r,l("day")],DD:[n,l("day")],Do:[o,function(g){var h=i.ordinal,f=g.match(/\d+/);if(this.day=f[0],h)for(var x=1;x<=31;x+=1)h(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[r,l("week")],ww:[n,l("week")],M:[r,l("month")],MM:[n,l("month")],MMM:[o,function(g){var h=u("months"),f=(u("monthsShort")||h.map(function(x){return x.slice(0,3)})).indexOf(g)+1;if(f<1)throw new Error;this.month=f%12||f}],MMMM:[o,function(g){var h=u("months").indexOf(g)+1;if(h<1)throw new Error;this.month=h%12||h}],Y:[/[+-]?\d+/,l("year")],YY:[n,function(g){this.year=a(g)}],YYYY:[/\d{4}/,l("year")],Z:p,ZZ:p};function m(g){var h,f;h=g,f=i&&i.formats;for(var x=(g=h.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(S,M,N){var G=N&&N.toUpperCase();return M||f[N]||s[N]||f[G].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(O,w,R){return w||R.slice(1)})})).match(e),A=x.length,b=0;b<A;b+=1){var C=x[b],I=d[C],y=I&&I[0],T=I&&I[1];x[b]=T?{regex:y,parser:T}:C.replace(/^\[|\]$/g,"")}return function(S){for(var M={},N=0,G=0;N<A;N+=1){var O=x[N];if(typeof O=="string")G+=O.length;else{var w=O.regex,R=O.parser,k=S.slice(G),v=w.exec(k)[0];R.call(M,v),S=S.replace(v,"")}}return function(P){var _=P.afternoon;if(_!==void 0){var $=P.hours;_?$<12&&(P.hours+=12):$===12&&(P.hours=0),delete P.afternoon}}(M),M}}return function(g,h,f){f.p.customParseFormat=!0,g&&g.parseTwoDigitYear&&(a=g.parseTwoDigitYear);var x=h.prototype,A=x.parse;x.parse=function(b){var C=b.date,I=b.utc,y=b.args;this.$u=I;var T=y[1];if(typeof T=="string"){var S=y[2]===!0,M=y[3]===!0,N=S||M,G=y[2];M&&(G=y[2]),i=this.$locale(),!S&&G&&(i=f.Ls[G]),this.$d=function(k,v,P,_){try{if(["x","X"].indexOf(v)>-1)return new Date((v==="X"?1e3:1)*k);var $=m(v)(k),B=$.year,z=$.month,V=$.day,ee=$.hours,Ce=$.minutes,ye=$.seconds,Fe=$.milliseconds,fe=$.zone,J=$.week,ie=new Date,Ie=V||(B||z?1:ie.getDate()),we=B||ie.getFullYear(),mn=0;B&&!z||(mn=z>0?z-1:ie.getMonth());var gn,Dr=ee||0,$r=Ce||0,Nr=ye||0,Lr=Fe||0;return fe?new Date(Date.UTC(we,mn,Ie,Dr,$r,Nr,Lr+60*fe.offset*1e3)):P?new Date(Date.UTC(we,mn,Ie,Dr,$r,Nr,Lr)):(gn=new Date(we,mn,Ie,Dr,$r,Nr,Lr),J&&(gn=_(gn).week(J).toDate()),gn)}catch{return new Date("")}}(C,T,I,f),this.init(),G&&G!==!0&&(this.$L=this.locale(G).$L),N&&C!=this.format(T)&&(this.$d=new Date("")),i={}}else if(T instanceof Array)for(var O=T.length,w=1;w<=O;w+=1){y[1]=T[w-1];var R=f.apply(this,y);if(R.isValid()){this.$d=R.$d,this.$L=R.$L,this.init();break}w===O&&(this.$d=new Date(""))}else A.call(this,b)}}})});var Wi=fn((Bo,qo)=>{"use strict";(function(s,e){typeof Bo=="object"&&typeof qo<"u"?qo.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis<"u"?globalThis:s||self).dayjs_plugin_timezone=e()})(Bo,function(){"use strict";var s={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(t,n,r){var o,i=function(u,c,d){d===void 0&&(d={});var m=new Date(u),g=function(h,f){f===void 0&&(f={});var x=f.timeZoneName||"short",A=h+"|"+x,b=e[A];return b||(b=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:h,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:x}),e[A]=b),b}(c,d);return g.formatToParts(m)},a=function(u,c){for(var d=i(u,c),m=[],g=0;g<d.length;g+=1){var h=d[g],f=h.type,x=h.value,A=s[f];A>=0&&(m[A]=parseInt(x,10))}var b=m[3],C=b===24?0:b,I=m[0]+"-"+m[1]+"-"+m[2]+" "+C+":"+m[4]+":"+m[5]+":000",y=+u;return(r.utc(I).valueOf()-(y-=y%1e3))/6e4},l=n.prototype;l.tz=function(u,c){u===void 0&&(u=o);var d,m=this.utcOffset(),g=this.toDate(),h=g.toLocaleString("en-US",{timeZone:u}),f=Math.round((g-new Date(h))/1e3/60),x=15*-Math.round(g.getTimezoneOffset()/15)-f;if(!Number(x))d=this.utcOffset(0,c);else if(d=r(h,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(x,!0),c){var A=d.utcOffset();d=d.add(m-A,"minute")}return d.$x.$timezone=u,d},l.offsetName=function(u){var c=this.$x.$timezone||r.tz.guess(),d=i(this.valueOf(),c,{timeZoneName:u}).find(function(m){return m.type.toLowerCase()==="timezonename"});return d&&d.value};var p=l.startOf;l.startOf=function(u,c){if(!this.$x||!this.$x.$timezone)return p.call(this,u,c);var d=r(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return p.call(d,u,c).tz(this.$x.$timezone,!0)},r.tz=function(u,c,d){var m=d&&c,g=d||c||o,h=a(+r(),g);if(typeof u!="string")return r(u).tz(g);var f=function(C,I,y){var T=C-60*I*1e3,S=a(T,y);if(I===S)return[T,I];var M=a(T-=60*(S-I)*1e3,y);return S===M?[T,S]:[C-60*Math.min(S,M)*1e3,Math.max(S,M)]}(r.utc(u,m).valueOf(),h,g),x=f[0],A=f[1],b=r(x).utcOffset(A);return b.$x.$timezone=g,b},r.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},r.tz.setDefault=function(u){o=u}}})});var Ji=fn((zo,jo)=>{"use strict";(function(s,e){typeof zo=="object"&&typeof jo<"u"?jo.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis<"u"?globalThis:s||self).dayjs_plugin_utc=e()})(zo,function(){"use strict";var s="minute",e=/[+-]\d\d(?::?\d\d)?/g,t=/([+-]|\d\d)/g;return function(n,r,o){var i=r.prototype;o.utc=function(m){var g={date:m,utc:!0,args:arguments};return new r(g)},i.utc=function(m){var g=o(this.toDate(),{locale:this.$L,utc:!0});return m?g.add(this.utcOffset(),s):g},i.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var a=i.parse;i.parse=function(m){m.utc&&(this.$u=!0),this.$utils().u(m.$offset)||(this.$offset=m.$offset),a.call(this,m)};var l=i.init;i.init=function(){if(this.$u){var m=this.$d;this.$y=m.getUTCFullYear(),this.$M=m.getUTCMonth(),this.$D=m.getUTCDate(),this.$W=m.getUTCDay(),this.$H=m.getUTCHours(),this.$m=m.getUTCMinutes(),this.$s=m.getUTCSeconds(),this.$ms=m.getUTCMilliseconds()}else l.call(this)};var p=i.utcOffset;i.utcOffset=function(m,g){var h=this.$utils().u;if(h(m))return this.$u?0:h(this.$offset)?p.call(this):this.$offset;if(typeof m=="string"&&(m=function(b){b===void 0&&(b="");var C=b.match(e);if(!C)return null;var I=(""+C[0]).match(t)||["-",0,0],y=I[0],T=60*+I[1]+ +I[2];return T===0?0:y==="+"?T:-T}(m),m===null))return this;var f=Math.abs(m)<=16?60*m:m,x=this;if(g)return x.$offset=f,x.$u=m===0,x;if(m!==0){var A=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(x=this.local().add(f+A,s)).$offset=f,x.$x.$localOffset=A}else x=this.utc();return x};var u=i.format;i.format=function(m){var g=m||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return u.call(this,g)},i.valueOf=function(){var m=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*m},i.isUTC=function(){return!!this.$u},i.toISOString=function(){return this.toDate().toISOString()},i.toString=function(){return this.toDate().toUTCString()};var c=i.toDate;i.toDate=function(m){return m==="s"&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():c.call(this)};var d=i.diff;i.diff=function(m,g,h){if(m&&this.$u===m.$u)return d.call(this,m,g,h);var f=this.local(),x=o(m).local();return d.call(f,x,g,h)}}})});var Cp={};za(Cp,{AxAI:()=>Yt,AxAIAnthropic:()=>Je,AxAIAnthropicModel:()=>Dt,AxAIAnthropicVertexModel:()=>kn,AxAIAzureOpenAI:()=>et,AxAICohere:()=>tt,AxAICohereEmbedModel:()=>Gt,AxAICohereModel:()=>Lt,AxAIDeepSeek:()=>nt,AxAIDeepSeekModel:()=>Ut,AxAIGoogleGemini:()=>rt,AxAIGoogleGeminiEmbedModel:()=>Bn,AxAIGoogleGeminiEmbedTypes:()=>co,AxAIGoogleGeminiModel:()=>Bt,AxAIGoogleGeminiSafetyCategory:()=>qn,AxAIGoogleGeminiSafetyThreshold:()=>zn,AxAIGrok:()=>ht,AxAIGrokEmbedModels:()=>vo,AxAIGrokModel:()=>Jt,AxAIGroq:()=>st,AxAIGroqModel:()=>qt,AxAIHuggingFace:()=>it,AxAIHuggingFaceModel:()=>Vn,AxAIMistral:()=>at,AxAIMistralEmbedModels:()=>xo,AxAIMistralModel:()=>zt,AxAIOllama:()=>lt,AxAIOpenAI:()=>Ze,AxAIOpenAIBase:()=>j,AxAIOpenAIEmbedModel:()=>Ye,AxAIOpenAIModel:()=>Nt,AxAIOpenAIResponses:()=>ut,AxAIOpenAIResponsesBase:()=>jt,AxAIOpenAIResponsesImpl:()=>pt,AxAIOpenAIResponsesModel:()=>Qe,AxAIOpenRouter:()=>ct,AxAIRefusalError:()=>q,AxAIReka:()=>dt,AxAIRekaModel:()=>Kt,AxAIServiceAbortedError:()=>ze,AxAIServiceAuthenticationError:()=>ve,AxAIServiceError:()=>ne,AxAIServiceNetworkError:()=>Ae,AxAIServiceResponseError:()=>be,AxAIServiceStatusError:()=>De,AxAIServiceStreamTerminatedError:()=>ue,AxAIServiceTimeoutError:()=>$e,AxAITogether:()=>mt,AxAIWebLLM:()=>gt,AxAIWebLLMModel:()=>Wt,AxAgent:()=>dn,AxApacheTika:()=>yr,AxAssertionError:()=>ke,AxBalancer:()=>$n,AxBaseAI:()=>H,AxBaseOptimizer:()=>_e,AxBootstrapFewShot:()=>Rt,AxContentProcessingError:()=>ce,AxDB:()=>ir,AxDBBase:()=>pe,AxDBCloudflare:()=>ft,AxDBManager:()=>ar,AxDBMemory:()=>Me,AxDBPinecone:()=>At,AxDBWeaviate:()=>xt,AxDefaultCostTracker:()=>pn,AxDefaultResultReranker:()=>xr,AxDockerSession:()=>kr,AxEmbeddingAdapter:()=>Er,AxEvalUtil:()=>Ta,AxFlow:()=>cn,AxFlowDependencyAnalyzer:()=>Ct,AxFlowExecutionPlanner:()=>vt,AxFlowSubContextImpl:()=>Mt,AxFlowTypedSubContextImpl:()=>Or,AxFluentFieldType:()=>Q,AxFunctionError:()=>Zt,AxFunctionProcessor:()=>tn,AxGen:()=>se,AxGenerateError:()=>an,AxHFDataLoader:()=>Rr,AxInstanceRegistry:()=>It,AxLLMRequestTypeValues:()=>Jr,AxMCPClient:()=>Pr,AxMCPHTTPSSETransport:()=>_r,AxMCPStreambleHTTPTransport:()=>Fr,AxMediaNotSupportedError:()=>le,AxMemory:()=>yt,AxMiPRO:()=>Sr,AxMockAIService:()=>Yn,AxMultiServiceRouter:()=>Qn,AxOptimizedProgramImpl:()=>Tt,AxProgram:()=>Pe,AxPromptTemplate:()=>Ue,AxProviderRouter:()=>tr,AxRateLimiterTokenUsage:()=>ot,AxSignature:()=>K,AxSignatureBuilder:()=>on,AxSimpleClassifier:()=>br,AxSimpleClassifierClass:()=>Ir,AxSpanKindValues:()=>Yr,AxStringUtil:()=>Ar,AxTestPrompt:()=>Tr,agent:()=>$a,ai:()=>ki,ax:()=>qe,axAIAnthropicDefaultConfig:()=>oo,axAIAnthropicVertexDefaultConfig:()=>si,axAIAzureOpenAIBestConfig:()=>pi,axAIAzureOpenAICreativeConfig:()=>ai,axAIAzureOpenAIDefaultConfig:()=>io,axAIAzureOpenAIFastConfig:()=>li,axAICohereCreativeConfig:()=>gi,axAICohereDefaultConfig:()=>po,axAIDeepSeekCodeConfig:()=>hi,axAIDeepSeekDefaultConfig:()=>uo,axAIGoogleGeminiDefaultConfig:()=>ho,axAIGoogleGeminiDefaultCreativeConfig:()=>Ai,axAIGrokBestConfig:()=>Mi,axAIGrokDefaultConfig:()=>sr,axAIHuggingFaceCreativeConfig:()=>xi,axAIHuggingFaceDefaultConfig:()=>Ao,axAIMistralBestConfig:()=>yi,axAIMistralDefaultConfig:()=>Jn,axAIOllamaDefaultConfig:()=>yo,axAIOllamaDefaultCreativeConfig:()=>Ii,axAIOpenAIBestConfig:()=>_n,axAIOpenAICreativeConfig:()=>Fn,axAIOpenAIDefaultConfig:()=>Le,axAIOpenAIFastConfig:()=>Dn,axAIOpenAIResponsesBestConfig:()=>bi,axAIOpenAIResponsesCreativeConfig:()=>Ti,axAIOpenAIResponsesDefaultConfig:()=>Ht,axAIOpenRouterDefaultConfig:()=>bo,axAIRekaBestConfig:()=>wi,axAIRekaCreativeConfig:()=>vi,axAIRekaDefaultConfig:()=>Vt,axAIRekaFastConfig:()=>Si,axAITogetherDefaultConfig:()=>Ro,axAIWebLLMCreativeConfig:()=>Oi,axAIWebLLMDefaultConfig:()=>wo,axAnalyzeChatPromptRequirements:()=>Ri,axAnalyzeRequestRequirements:()=>Ge,axBaseAIDefaultConfig:()=>L,axBaseAIDefaultCreativeConfig:()=>W,axCheckMetricsHealth:()=>Ei,axCreateDefaultColorLogger:()=>Wr,axCreateDefaultOptimizerColorLogger:()=>ts,axCreateDefaultOptimizerTextLogger:()=>Ca,axCreateDefaultTextLogger:()=>Os,axCreateFlowColorLogger:()=>un,axCreateFlowTextLogger:()=>Ma,axDefaultFlowLogger:()=>ka,axDefaultMetricsConfig:()=>ko,axDefaultOptimizerLogger:()=>ln,axDefaultOptimizerMetricsConfig:()=>ns,axGetCompatibilityReport:()=>ui,axGetFormatCompatibility:()=>di,axGetMetricsConfig:()=>_i,axGetOptimizerMetricsConfig:()=>va,axGetProvidersWithMediaSupport:()=>ci,axGlobals:()=>U,axModelInfoAnthropic:()=>$t,axModelInfoCohere:()=>Gn,axModelInfoDeepSeek:()=>Un,axModelInfoGoogleGemini:()=>jn,axModelInfoGrok:()=>or,axModelInfoGroq:()=>Hn,axModelInfoHuggingFace:()=>Kn,axModelInfoMistral:()=>Wn,axModelInfoOpenAI:()=>Xe,axModelInfoOpenAIResponses:()=>Pn,axModelInfoReka:()=>er,axModelInfoTogether:()=>nr,axModelInfoWebLLM:()=>rr,axProcessContentForProvider:()=>Zn,axRAG:()=>Na,axScoreProvidersForRequest:()=>Nn,axSelectOptimalProvider:()=>Ln,axSpanAttributes:()=>D,axSpanEvents:()=>de,axUpdateMetricsConfig:()=>Pi,axUpdateOptimizerMetricsConfig:()=>wa,axValidateChatRequestMessage:()=>We,axValidateChatResponseResult:()=>Mn,axValidateProviderCapabilities:()=>ao,f:()=>bt,flow:()=>Mr,s:()=>Sa});function ae({model:s,modelInfo:e,models:t}){let n=t?.find(l=>l.key===s),r=n&&"model"in n?n.model:s,o=e.find(l=>l.name===s);if(o)return o;let i=r.replace(/^(anthropic\.|openai\.)/,"").replace(/-latest$/,"").replace(/-\d{8}$/,"").replace(/-v\d+:\d+$/,"").replace(/@\d{8}$/,"").replace(/-\d{2,}(-[a-zA-Z0-9-]+)?$/,"").replace(/-v\d+@\d{8}$/,"").replace(/-v\d+$/,""),a=e.find(l=>l.name===i);return a||null}var os=(()=>{if(globalThis.crypto&&typeof globalThis.crypto.randomUUID=="function")return globalThis.crypto;throw new Error("Web Crypto API with randomUUID support not available. Requires Node.js 16+ or modern browser.")})();function te(){return os.randomUUID()}async function Ha(s){let e=new TextEncoder,t=typeof s=="string"?e.encode(s):s,n=await os.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(n)).map(i=>i.toString(16).padStart(2,"0")).join("")}var Gr=class{data="";update(e){return this.data+=e,this}digest(e){if(e!=="hex")throw new Error("Only hex encoding is supported");let n=new TextEncoder().encode(this.data),r=0;for(let o=0;o<n.length;o++){let i=n[o];r=(r<<5)-r+i,r=r&r}return Math.abs(r).toString(16).padStart(8,"0")}async digestAsync(){return Ha(this.data)}};function xn(s){if(s!=="sha256")throw new Error("Only SHA-256 algorithm is supported");return new Gr}var yn=class extends TransformStream{buffer="";currentEvent={rawData:""};dataParser;onError;constructor(e={}){super({transform:(t,n)=>this.handleChunk(t,n),flush:t=>this.handleFlush(t)}),this.dataParser=e.dataParser||JSON.parse,this.onError=e.onError||((t,n)=>{console.warn("Failed to parse event data:",t),console.log("Raw data that failed to parse:",n)})}handleChunk(e,t){this.buffer+=e,this.processBuffer(t)}handleFlush(e){this.processBuffer(e),this.currentEvent.rawData&&this.processEvent(e)}processBuffer(e){let n=this.buffer.replace(/\r\n|\r/g,`
1
+ "use strict";var ax=(()=>{var La=Object.create;var hn=Object.defineProperty;var Ga=Object.getOwnPropertyDescriptor;var Ua=Object.getOwnPropertyNames;var Ba=Object.getPrototypeOf,qa=Object.prototype.hasOwnProperty;var fn=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),za=(s,e)=>{for(var t in e)hn(s,t,{get:e[t],enumerable:!0})},rs=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ua(e))!qa.call(s,r)&&r!==t&&hn(s,r,{get:()=>e[r],enumerable:!(n=Ga(e,r))||n.enumerable});return s};var An=(s,e,t)=>(t=s!=null?La(Ba(s)):{},rs(e||!s||!s.__esModule?hn(t,"default",{value:s,enumerable:!0}):t,s)),ja=s=>rs(hn({},"__esModule",{value:!0}),s);var Ki=fn((No,Lo)=>{"use strict";(function(s,e){typeof No=="object"&&typeof Lo<"u"?Lo.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis<"u"?globalThis:s||self).dayjs=e()})(No,function(){"use strict";var s=1e3,e=6e4,t=36e5,n="millisecond",r="second",o="minute",i="hour",a="day",l="week",p="month",u="quarter",c="year",d="date",m="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(M){var w=["th","st","nd","rd"],R=M%100;return"["+M+(w[(R-20)%10]||w[R]||w[0])+"]"}},x=function(M,w,R){var k=String(M);return!k||k.length>=w?M:""+Array(w+1-k.length).join(R)+M},A={s:x,z:function(M){var w=-M.utcOffset(),R=Math.abs(w),k=Math.floor(R/60),v=R%60;return(w<=0?"+":"-")+x(k,2,"0")+":"+x(v,2,"0")},m:function M(w,R){if(w.date()<R.date())return-M(R,w);var k=12*(R.year()-w.year())+(R.month()-w.month()),v=w.clone().add(k,p),P=R-v<0,_=w.clone().add(k+(P?-1:1),p);return+(-(k+(R-v)/(P?v-_:_-v))||0)},a:function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},p:function(M){return{M:p,y:c,w:l,d:a,D:d,h:i,m:o,s:r,ms:n,Q:u}[M]||String(M||"").toLowerCase().replace(/s$/,"")},u:function(M){return M===void 0}},b="en",C={};C[b]=f;var I="$isDayjsObject",y=function(M){return M instanceof N||!(!M||!M[I])},T=function M(w,R,k){var v;if(!w)return b;if(typeof w=="string"){var P=w.toLowerCase();C[P]&&(v=P),R&&(C[P]=R,v=P);var _=w.split("-");if(!v&&_.length>1)return M(_[0])}else{var $=w.name;C[$]=w,v=$}return!k&&v&&(b=v),v||!k&&b},S=function(M,w){if(y(M))return M.clone();var R=typeof w=="object"?w:{};return R.date=M,R.args=arguments,new N(R)},O=A;O.l=T,O.i=y,O.w=function(M,w){return S(M,{locale:w.$L,utc:w.$u,x:w.$x,$offset:w.$offset})};var N=function(){function M(R){this.$L=T(R.locale,null,!0),this.parse(R),this.$x=this.$x||R.x||{},this[I]=!0}var w=M.prototype;return w.parse=function(R){this.$d=function(k){var v=k.date,P=k.utc;if(v===null)return new Date(NaN);if(O.u(v))return new Date;if(v instanceof Date)return new Date(v);if(typeof v=="string"&&!/Z$/i.test(v)){var _=v.match(g);if(_){var $=_[2]-1||0,B=(_[7]||"0").substring(0,3);return P?new Date(Date.UTC(_[1],$,_[3]||1,_[4]||0,_[5]||0,_[6]||0,B)):new Date(_[1],$,_[3]||1,_[4]||0,_[5]||0,_[6]||0,B)}}return new Date(v)}(R),this.init()},w.init=function(){var R=this.$d;this.$y=R.getFullYear(),this.$M=R.getMonth(),this.$D=R.getDate(),this.$W=R.getDay(),this.$H=R.getHours(),this.$m=R.getMinutes(),this.$s=R.getSeconds(),this.$ms=R.getMilliseconds()},w.$utils=function(){return O},w.isValid=function(){return this.$d.toString()!==m},w.isSame=function(R,k){var v=S(R);return this.startOf(k)<=v&&v<=this.endOf(k)},w.isAfter=function(R,k){return S(R)<this.startOf(k)},w.isBefore=function(R,k){return this.endOf(k)<S(R)},w.$g=function(R,k,v){return O.u(R)?this[k]:this.set(v,R)},w.unix=function(){return Math.floor(this.valueOf()/1e3)},w.valueOf=function(){return this.$d.getTime()},w.startOf=function(R,k){var v=this,P=!!O.u(k)||k,_=O.p(R),$=function(fe,J){var ie=O.w(v.$u?Date.UTC(v.$y,J,fe):new Date(v.$y,J,fe),v);return P?ie:ie.endOf(a)},B=function(fe,J){return O.w(v.toDate()[fe].apply(v.toDate("s"),(P?[0,0,0,0]:[23,59,59,999]).slice(J)),v)},z=this.$W,V=this.$M,ee=this.$D,Ce="set"+(this.$u?"UTC":"");switch(_){case c:return P?$(1,0):$(31,11);case p:return P?$(1,V):$(0,V+1);case l:var ye=this.$locale().weekStart||0,Fe=(z<ye?z+7:z)-ye;return $(P?ee-Fe:ee+(6-Fe),V);case a:case d:return B(Ce+"Hours",0);case i:return B(Ce+"Minutes",1);case o:return B(Ce+"Seconds",2);case r:return B(Ce+"Milliseconds",3);default:return this.clone()}},w.endOf=function(R){return this.startOf(R,!1)},w.$set=function(R,k){var v,P=O.p(R),_="set"+(this.$u?"UTC":""),$=(v={},v[a]=_+"Date",v[d]=_+"Date",v[p]=_+"Month",v[c]=_+"FullYear",v[i]=_+"Hours",v[o]=_+"Minutes",v[r]=_+"Seconds",v[n]=_+"Milliseconds",v)[P],B=P===a?this.$D+(k-this.$W):k;if(P===p||P===c){var z=this.clone().set(d,1);z.$d[$](B),z.init(),this.$d=z.set(d,Math.min(this.$D,z.daysInMonth())).$d}else $&&this.$d[$](B);return this.init(),this},w.set=function(R,k){return this.clone().$set(R,k)},w.get=function(R){return this[O.p(R)]()},w.add=function(R,k){var v,P=this;R=Number(R);var _=O.p(k),$=function(V){var ee=S(P);return O.w(ee.date(ee.date()+Math.round(V*R)),P)};if(_===p)return this.set(p,this.$M+R);if(_===c)return this.set(c,this.$y+R);if(_===a)return $(1);if(_===l)return $(7);var B=(v={},v[o]=e,v[i]=t,v[r]=s,v)[_]||1,z=this.$d.getTime()+R*B;return O.w(z,this)},w.subtract=function(R,k){return this.add(-1*R,k)},w.format=function(R){var k=this,v=this.$locale();if(!this.isValid())return v.invalidDate||m;var P=R||"YYYY-MM-DDTHH:mm:ssZ",_=O.z(this),$=this.$H,B=this.$m,z=this.$M,V=v.weekdays,ee=v.months,Ce=v.meridiem,ye=function(J,ie,Ie,we){return J&&(J[ie]||J(k,P))||Ie[ie].slice(0,we)},Fe=function(J){return O.s($%12||12,J,"0")},fe=Ce||function(J,ie,Ie){var we=J<12?"AM":"PM";return Ie?we.toLowerCase():we};return P.replace(h,function(J,ie){return ie||function(Ie){switch(Ie){case"YY":return String(k.$y).slice(-2);case"YYYY":return O.s(k.$y,4,"0");case"M":return z+1;case"MM":return O.s(z+1,2,"0");case"MMM":return ye(v.monthsShort,z,ee,3);case"MMMM":return ye(ee,z);case"D":return k.$D;case"DD":return O.s(k.$D,2,"0");case"d":return String(k.$W);case"dd":return ye(v.weekdaysMin,k.$W,V,2);case"ddd":return ye(v.weekdaysShort,k.$W,V,3);case"dddd":return V[k.$W];case"H":return String($);case"HH":return O.s($,2,"0");case"h":return Fe(1);case"hh":return Fe(2);case"a":return fe($,B,!0);case"A":return fe($,B,!1);case"m":return String(B);case"mm":return O.s(B,2,"0");case"s":return String(k.$s);case"ss":return O.s(k.$s,2,"0");case"SSS":return O.s(k.$ms,3,"0");case"Z":return _}return null}(J)||_.replace(":","")})},w.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},w.diff=function(R,k,v){var P,_=this,$=O.p(k),B=S(R),z=(B.utcOffset()-this.utcOffset())*e,V=this-B,ee=function(){return O.m(_,B)};switch($){case c:P=ee()/12;break;case p:P=ee();break;case u:P=ee()/3;break;case l:P=(V-z)/6048e5;break;case a:P=(V-z)/864e5;break;case i:P=V/t;break;case o:P=V/e;break;case r:P=V/s;break;default:P=V}return v?P:O.a(P)},w.daysInMonth=function(){return this.endOf(p).$D},w.$locale=function(){return C[this.$L]},w.locale=function(R,k){if(!R)return this.$L;var v=this.clone(),P=T(R,k,!0);return P&&(v.$L=P),v},w.clone=function(){return O.w(this.$d,this)},w.toDate=function(){return new Date(this.valueOf())},w.toJSON=function(){return this.isValid()?this.toISOString():null},w.toISOString=function(){return this.$d.toISOString()},w.toString=function(){return this.$d.toUTCString()},M}(),G=N.prototype;return S.prototype=G,[["$ms",n],["$s",r],["$m",o],["$H",i],["$W",a],["$M",p],["$y",c],["$D",d]].forEach(function(M){G[M[1]]=function(w){return this.$g(w,M[0],M[1])}}),S.extend=function(M,w){return M.$i||(M(w,N,S),M.$i=!0),S},S.locale=T,S.isDayjs=y,S.unix=function(M){return S(1e3*M)},S.en=C[b],S.Ls=C,S.p={},S})});var Vi=fn((Go,Uo)=>{"use strict";(function(s,e){typeof Go=="object"&&typeof Uo<"u"?Uo.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis<"u"?globalThis:s||self).dayjs_plugin_customParseFormat=e()})(Go,function(){"use strict";var s={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,t=/\d/,n=/\d\d/,r=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,i={},a=function(g){return(g=+g)+(g>68?1900:2e3)},l=function(g){return function(h){this[g]=+h}},p=[/[+-]\d\d:?(\d\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(h){if(!h||h==="Z")return 0;var f=h.match(/([+-]|\d\d)/g),x=60*f[1]+(+f[2]||0);return x===0?0:f[0]==="+"?-x:x}(g)}],u=function(g){var h=i[g];return h&&(h.indexOf?h:h.s.concat(h.f))},c=function(g,h){var f,x=i.meridiem;if(x){for(var A=1;A<=24;A+=1)if(g.indexOf(x(A,0,h))>-1){f=A>12;break}}else f=g===(h?"pm":"PM");return f},d={A:[o,function(g){this.afternoon=c(g,!1)}],a:[o,function(g){this.afternoon=c(g,!0)}],Q:[t,function(g){this.month=3*(g-1)+1}],S:[t,function(g){this.milliseconds=100*+g}],SS:[n,function(g){this.milliseconds=10*+g}],SSS:[/\d{3}/,function(g){this.milliseconds=+g}],s:[r,l("seconds")],ss:[r,l("seconds")],m:[r,l("minutes")],mm:[r,l("minutes")],H:[r,l("hours")],h:[r,l("hours")],HH:[r,l("hours")],hh:[r,l("hours")],D:[r,l("day")],DD:[n,l("day")],Do:[o,function(g){var h=i.ordinal,f=g.match(/\d+/);if(this.day=f[0],h)for(var x=1;x<=31;x+=1)h(x).replace(/\[|\]/g,"")===g&&(this.day=x)}],w:[r,l("week")],ww:[n,l("week")],M:[r,l("month")],MM:[n,l("month")],MMM:[o,function(g){var h=u("months"),f=(u("monthsShort")||h.map(function(x){return x.slice(0,3)})).indexOf(g)+1;if(f<1)throw new Error;this.month=f%12||f}],MMMM:[o,function(g){var h=u("months").indexOf(g)+1;if(h<1)throw new Error;this.month=h%12||h}],Y:[/[+-]?\d+/,l("year")],YY:[n,function(g){this.year=a(g)}],YYYY:[/\d{4}/,l("year")],Z:p,ZZ:p};function m(g){var h,f;h=g,f=i&&i.formats;for(var x=(g=h.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(S,O,N){var G=N&&N.toUpperCase();return O||f[N]||s[N]||f[G].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(M,w,R){return w||R.slice(1)})})).match(e),A=x.length,b=0;b<A;b+=1){var C=x[b],I=d[C],y=I&&I[0],T=I&&I[1];x[b]=T?{regex:y,parser:T}:C.replace(/^\[|\]$/g,"")}return function(S){for(var O={},N=0,G=0;N<A;N+=1){var M=x[N];if(typeof M=="string")G+=M.length;else{var w=M.regex,R=M.parser,k=S.slice(G),v=w.exec(k)[0];R.call(O,v),S=S.replace(v,"")}}return function(P){var _=P.afternoon;if(_!==void 0){var $=P.hours;_?$<12&&(P.hours+=12):$===12&&(P.hours=0),delete P.afternoon}}(O),O}}return function(g,h,f){f.p.customParseFormat=!0,g&&g.parseTwoDigitYear&&(a=g.parseTwoDigitYear);var x=h.prototype,A=x.parse;x.parse=function(b){var C=b.date,I=b.utc,y=b.args;this.$u=I;var T=y[1];if(typeof T=="string"){var S=y[2]===!0,O=y[3]===!0,N=S||O,G=y[2];O&&(G=y[2]),i=this.$locale(),!S&&G&&(i=f.Ls[G]),this.$d=function(k,v,P,_){try{if(["x","X"].indexOf(v)>-1)return new Date((v==="X"?1e3:1)*k);var $=m(v)(k),B=$.year,z=$.month,V=$.day,ee=$.hours,Ce=$.minutes,ye=$.seconds,Fe=$.milliseconds,fe=$.zone,J=$.week,ie=new Date,Ie=V||(B||z?1:ie.getDate()),we=B||ie.getFullYear(),mn=0;B&&!z||(mn=z>0?z-1:ie.getMonth());var gn,Dr=ee||0,$r=Ce||0,Nr=ye||0,Lr=Fe||0;return fe?new Date(Date.UTC(we,mn,Ie,Dr,$r,Nr,Lr+60*fe.offset*1e3)):P?new Date(Date.UTC(we,mn,Ie,Dr,$r,Nr,Lr)):(gn=new Date(we,mn,Ie,Dr,$r,Nr,Lr),J&&(gn=_(gn).week(J).toDate()),gn)}catch{return new Date("")}}(C,T,I,f),this.init(),G&&G!==!0&&(this.$L=this.locale(G).$L),N&&C!=this.format(T)&&(this.$d=new Date("")),i={}}else if(T instanceof Array)for(var M=T.length,w=1;w<=M;w+=1){y[1]=T[w-1];var R=f.apply(this,y);if(R.isValid()){this.$d=R.$d,this.$L=R.$L,this.init();break}w===M&&(this.$d=new Date(""))}else A.call(this,b)}}})});var Wi=fn((Bo,qo)=>{"use strict";(function(s,e){typeof Bo=="object"&&typeof qo<"u"?qo.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis<"u"?globalThis:s||self).dayjs_plugin_timezone=e()})(Bo,function(){"use strict";var s={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(t,n,r){var o,i=function(u,c,d){d===void 0&&(d={});var m=new Date(u),g=function(h,f){f===void 0&&(f={});var x=f.timeZoneName||"short",A=h+"|"+x,b=e[A];return b||(b=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:h,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:x}),e[A]=b),b}(c,d);return g.formatToParts(m)},a=function(u,c){for(var d=i(u,c),m=[],g=0;g<d.length;g+=1){var h=d[g],f=h.type,x=h.value,A=s[f];A>=0&&(m[A]=parseInt(x,10))}var b=m[3],C=b===24?0:b,I=m[0]+"-"+m[1]+"-"+m[2]+" "+C+":"+m[4]+":"+m[5]+":000",y=+u;return(r.utc(I).valueOf()-(y-=y%1e3))/6e4},l=n.prototype;l.tz=function(u,c){u===void 0&&(u=o);var d,m=this.utcOffset(),g=this.toDate(),h=g.toLocaleString("en-US",{timeZone:u}),f=Math.round((g-new Date(h))/1e3/60),x=15*-Math.round(g.getTimezoneOffset()/15)-f;if(!Number(x))d=this.utcOffset(0,c);else if(d=r(h,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(x,!0),c){var A=d.utcOffset();d=d.add(m-A,"minute")}return d.$x.$timezone=u,d},l.offsetName=function(u){var c=this.$x.$timezone||r.tz.guess(),d=i(this.valueOf(),c,{timeZoneName:u}).find(function(m){return m.type.toLowerCase()==="timezonename"});return d&&d.value};var p=l.startOf;l.startOf=function(u,c){if(!this.$x||!this.$x.$timezone)return p.call(this,u,c);var d=r(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return p.call(d,u,c).tz(this.$x.$timezone,!0)},r.tz=function(u,c,d){var m=d&&c,g=d||c||o,h=a(+r(),g);if(typeof u!="string")return r(u).tz(g);var f=function(C,I,y){var T=C-60*I*1e3,S=a(T,y);if(I===S)return[T,I];var O=a(T-=60*(S-I)*1e3,y);return S===O?[T,S]:[C-60*Math.min(S,O)*1e3,Math.max(S,O)]}(r.utc(u,m).valueOf(),h,g),x=f[0],A=f[1],b=r(x).utcOffset(A);return b.$x.$timezone=g,b},r.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},r.tz.setDefault=function(u){o=u}}})});var Ji=fn((zo,jo)=>{"use strict";(function(s,e){typeof zo=="object"&&typeof jo<"u"?jo.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis<"u"?globalThis:s||self).dayjs_plugin_utc=e()})(zo,function(){"use strict";var s="minute",e=/[+-]\d\d(?::?\d\d)?/g,t=/([+-]|\d\d)/g;return function(n,r,o){var i=r.prototype;o.utc=function(m){var g={date:m,utc:!0,args:arguments};return new r(g)},i.utc=function(m){var g=o(this.toDate(),{locale:this.$L,utc:!0});return m?g.add(this.utcOffset(),s):g},i.local=function(){return o(this.toDate(),{locale:this.$L,utc:!1})};var a=i.parse;i.parse=function(m){m.utc&&(this.$u=!0),this.$utils().u(m.$offset)||(this.$offset=m.$offset),a.call(this,m)};var l=i.init;i.init=function(){if(this.$u){var m=this.$d;this.$y=m.getUTCFullYear(),this.$M=m.getUTCMonth(),this.$D=m.getUTCDate(),this.$W=m.getUTCDay(),this.$H=m.getUTCHours(),this.$m=m.getUTCMinutes(),this.$s=m.getUTCSeconds(),this.$ms=m.getUTCMilliseconds()}else l.call(this)};var p=i.utcOffset;i.utcOffset=function(m,g){var h=this.$utils().u;if(h(m))return this.$u?0:h(this.$offset)?p.call(this):this.$offset;if(typeof m=="string"&&(m=function(b){b===void 0&&(b="");var C=b.match(e);if(!C)return null;var I=(""+C[0]).match(t)||["-",0,0],y=I[0],T=60*+I[1]+ +I[2];return T===0?0:y==="+"?T:-T}(m),m===null))return this;var f=Math.abs(m)<=16?60*m:m,x=this;if(g)return x.$offset=f,x.$u=m===0,x;if(m!==0){var A=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(x=this.local().add(f+A,s)).$offset=f,x.$x.$localOffset=A}else x=this.utc();return x};var u=i.format;i.format=function(m){var g=m||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return u.call(this,g)},i.valueOf=function(){var m=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*m},i.isUTC=function(){return!!this.$u},i.toISOString=function(){return this.toDate().toISOString()},i.toString=function(){return this.toDate().toUTCString()};var c=i.toDate;i.toDate=function(m){return m==="s"&&this.$offset?o(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():c.call(this)};var d=i.diff;i.diff=function(m,g,h){if(m&&this.$u===m.$u)return d.call(this,m,g,h);var f=this.local(),x=o(m).local();return d.call(f,x,g,h)}}})});var Cp={};za(Cp,{AxAI:()=>Yt,AxAIAnthropic:()=>Je,AxAIAnthropicModel:()=>Dt,AxAIAnthropicVertexModel:()=>kn,AxAIAzureOpenAI:()=>et,AxAICohere:()=>tt,AxAICohereEmbedModel:()=>Gt,AxAICohereModel:()=>Lt,AxAIDeepSeek:()=>nt,AxAIDeepSeekModel:()=>Ut,AxAIGoogleGemini:()=>rt,AxAIGoogleGeminiEmbedModel:()=>Bn,AxAIGoogleGeminiEmbedTypes:()=>co,AxAIGoogleGeminiModel:()=>Bt,AxAIGoogleGeminiSafetyCategory:()=>qn,AxAIGoogleGeminiSafetyThreshold:()=>zn,AxAIGrok:()=>ht,AxAIGrokEmbedModels:()=>vo,AxAIGrokModel:()=>Jt,AxAIGroq:()=>st,AxAIGroqModel:()=>qt,AxAIHuggingFace:()=>it,AxAIHuggingFaceModel:()=>Vn,AxAIMistral:()=>at,AxAIMistralEmbedModels:()=>xo,AxAIMistralModel:()=>zt,AxAIOllama:()=>lt,AxAIOpenAI:()=>Ze,AxAIOpenAIBase:()=>j,AxAIOpenAIEmbedModel:()=>Ye,AxAIOpenAIModel:()=>Nt,AxAIOpenAIResponses:()=>ut,AxAIOpenAIResponsesBase:()=>jt,AxAIOpenAIResponsesImpl:()=>pt,AxAIOpenAIResponsesModel:()=>Qe,AxAIOpenRouter:()=>ct,AxAIRefusalError:()=>q,AxAIReka:()=>dt,AxAIRekaModel:()=>Kt,AxAIServiceAbortedError:()=>ze,AxAIServiceAuthenticationError:()=>ve,AxAIServiceError:()=>ne,AxAIServiceNetworkError:()=>Ae,AxAIServiceResponseError:()=>be,AxAIServiceStatusError:()=>De,AxAIServiceStreamTerminatedError:()=>ue,AxAIServiceTimeoutError:()=>$e,AxAITogether:()=>mt,AxAIWebLLM:()=>gt,AxAIWebLLMModel:()=>Wt,AxAgent:()=>dn,AxApacheTika:()=>yr,AxAssertionError:()=>ke,AxBalancer:()=>$n,AxBaseAI:()=>H,AxBaseOptimizer:()=>_e,AxBootstrapFewShot:()=>Rt,AxContentProcessingError:()=>ce,AxDB:()=>ir,AxDBBase:()=>pe,AxDBCloudflare:()=>ft,AxDBManager:()=>ar,AxDBMemory:()=>Me,AxDBPinecone:()=>At,AxDBWeaviate:()=>xt,AxDefaultCostTracker:()=>pn,AxDefaultResultReranker:()=>xr,AxDockerSession:()=>kr,AxEmbeddingAdapter:()=>Er,AxEvalUtil:()=>Ta,AxFlow:()=>cn,AxFlowDependencyAnalyzer:()=>Ct,AxFlowExecutionPlanner:()=>vt,AxFlowSubContextImpl:()=>Mt,AxFlowTypedSubContextImpl:()=>Or,AxFluentFieldType:()=>Q,AxFunctionError:()=>Zt,AxFunctionProcessor:()=>tn,AxGen:()=>se,AxGenerateError:()=>an,AxHFDataLoader:()=>Rr,AxInstanceRegistry:()=>It,AxLLMRequestTypeValues:()=>Jr,AxMCPClient:()=>Pr,AxMCPHTTPSSETransport:()=>_r,AxMCPStreambleHTTPTransport:()=>Fr,AxMediaNotSupportedError:()=>le,AxMemory:()=>yt,AxMiPRO:()=>Sr,AxMockAIService:()=>Yn,AxMultiServiceRouter:()=>Qn,AxOptimizedProgramImpl:()=>Tt,AxProgram:()=>Pe,AxPromptTemplate:()=>Ue,AxProviderRouter:()=>tr,AxRateLimiterTokenUsage:()=>ot,AxSignature:()=>K,AxSignatureBuilder:()=>on,AxSimpleClassifier:()=>br,AxSimpleClassifierClass:()=>Ir,AxSpanKindValues:()=>Yr,AxStringUtil:()=>Ar,AxTestPrompt:()=>Tr,agent:()=>$a,ai:()=>ki,ax:()=>qe,axAIAnthropicDefaultConfig:()=>oo,axAIAnthropicVertexDefaultConfig:()=>si,axAIAzureOpenAIBestConfig:()=>pi,axAIAzureOpenAICreativeConfig:()=>ai,axAIAzureOpenAIDefaultConfig:()=>io,axAIAzureOpenAIFastConfig:()=>li,axAICohereCreativeConfig:()=>gi,axAICohereDefaultConfig:()=>po,axAIDeepSeekCodeConfig:()=>hi,axAIDeepSeekDefaultConfig:()=>uo,axAIGoogleGeminiDefaultConfig:()=>ho,axAIGoogleGeminiDefaultCreativeConfig:()=>Ai,axAIGrokBestConfig:()=>Mi,axAIGrokDefaultConfig:()=>sr,axAIHuggingFaceCreativeConfig:()=>xi,axAIHuggingFaceDefaultConfig:()=>Ao,axAIMistralBestConfig:()=>yi,axAIMistralDefaultConfig:()=>Jn,axAIOllamaDefaultConfig:()=>yo,axAIOllamaDefaultCreativeConfig:()=>Ii,axAIOpenAIBestConfig:()=>_n,axAIOpenAICreativeConfig:()=>Fn,axAIOpenAIDefaultConfig:()=>Le,axAIOpenAIFastConfig:()=>Dn,axAIOpenAIResponsesBestConfig:()=>bi,axAIOpenAIResponsesCreativeConfig:()=>Ti,axAIOpenAIResponsesDefaultConfig:()=>Ht,axAIOpenRouterDefaultConfig:()=>bo,axAIRekaBestConfig:()=>wi,axAIRekaCreativeConfig:()=>vi,axAIRekaDefaultConfig:()=>Vt,axAIRekaFastConfig:()=>Si,axAITogetherDefaultConfig:()=>Ro,axAIWebLLMCreativeConfig:()=>Oi,axAIWebLLMDefaultConfig:()=>wo,axAnalyzeChatPromptRequirements:()=>Ri,axAnalyzeRequestRequirements:()=>Ge,axBaseAIDefaultConfig:()=>L,axBaseAIDefaultCreativeConfig:()=>W,axCheckMetricsHealth:()=>Ei,axCreateDefaultColorLogger:()=>Wr,axCreateDefaultOptimizerColorLogger:()=>ts,axCreateDefaultOptimizerTextLogger:()=>Ca,axCreateDefaultTextLogger:()=>Os,axCreateFlowColorLogger:()=>un,axCreateFlowTextLogger:()=>Ma,axDefaultFlowLogger:()=>ka,axDefaultMetricsConfig:()=>ko,axDefaultOptimizerLogger:()=>ln,axDefaultOptimizerMetricsConfig:()=>ns,axGetCompatibilityReport:()=>ui,axGetFormatCompatibility:()=>di,axGetMetricsConfig:()=>_i,axGetOptimizerMetricsConfig:()=>va,axGetProvidersWithMediaSupport:()=>ci,axGlobals:()=>U,axModelInfoAnthropic:()=>$t,axModelInfoCohere:()=>Gn,axModelInfoDeepSeek:()=>Un,axModelInfoGoogleGemini:()=>jn,axModelInfoGrok:()=>or,axModelInfoGroq:()=>Hn,axModelInfoHuggingFace:()=>Kn,axModelInfoMistral:()=>Wn,axModelInfoOpenAI:()=>Xe,axModelInfoOpenAIResponses:()=>Pn,axModelInfoReka:()=>er,axModelInfoTogether:()=>nr,axModelInfoWebLLM:()=>rr,axProcessContentForProvider:()=>Zn,axRAG:()=>Na,axScoreProvidersForRequest:()=>Nn,axSelectOptimalProvider:()=>Ln,axSpanAttributes:()=>D,axSpanEvents:()=>de,axUpdateMetricsConfig:()=>Pi,axUpdateOptimizerMetricsConfig:()=>wa,axValidateChatRequestMessage:()=>We,axValidateChatResponseResult:()=>Mn,axValidateProviderCapabilities:()=>ao,f:()=>bt,flow:()=>Mr,s:()=>Sa});function ae({model:s,modelInfo:e,models:t}){let n=t?.find(l=>l.key===s),r=n&&"model"in n?n.model:s,o=e.find(l=>l.name===s);if(o)return o;let i=r.replace(/^(anthropic\.|openai\.)/,"").replace(/-latest$/,"").replace(/-\d{8}$/,"").replace(/-v\d+:\d+$/,"").replace(/@\d{8}$/,"").replace(/-\d{2,}(-[a-zA-Z0-9-]+)?$/,"").replace(/-v\d+@\d{8}$/,"").replace(/-v\d+$/,""),a=e.find(l=>l.name===i);return a||null}var os=(()=>{if(globalThis.crypto&&typeof globalThis.crypto.randomUUID=="function")return globalThis.crypto;throw new Error("Web Crypto API with randomUUID support not available. Requires Node.js 16+ or modern browser.")})();function te(){return os.randomUUID()}async function Ha(s){let e=new TextEncoder,t=typeof s=="string"?e.encode(s):s,n=await os.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(n)).map(i=>i.toString(16).padStart(2,"0")).join("")}var Gr=class{data="";update(e){return this.data+=e,this}digest(e){if(e!=="hex")throw new Error("Only hex encoding is supported");let n=new TextEncoder().encode(this.data),r=0;for(let o=0;o<n.length;o++){let i=n[o];r=(r<<5)-r+i,r=r&r}return Math.abs(r).toString(16).padStart(8,"0")}async digestAsync(){return Ha(this.data)}};function xn(s){if(s!=="sha256")throw new Error("Only SHA-256 algorithm is supported");return new Gr}var yn=class extends TransformStream{buffer="";currentEvent={rawData:""};dataParser;onError;constructor(e={}){super({transform:(t,n)=>this.handleChunk(t,n),flush:t=>this.handleFlush(t)}),this.dataParser=e.dataParser||JSON.parse,this.onError=e.onError||((t,n)=>{console.warn("Failed to parse event data:",t),console.log("Raw data that failed to parse:",n)})}handleChunk(e,t){this.buffer+=e,this.processBuffer(t)}handleFlush(e){this.processBuffer(e),this.currentEvent.rawData&&this.processEvent(e)}processBuffer(e){let n=this.buffer.replace(/\r\n|\r/g,`
2
2
  `).split(`
3
3
  `);this.buffer=n.pop()||"";for(let r of n)r===""?this.processEvent(e):this.parseLine(r)}parseLine(e){if(e.startsWith(":"))return;let t=e.indexOf(":");if(t===-1){this.currentEvent.rawData+=(this.currentEvent.rawData&&!this.currentEvent.rawData.endsWith(`
4
4
  `)?`
@@ -8,10 +8,10 @@
8
8
  `)}[Symbol.for("nodejs.util.inspect.custom")](t,n){return this.toString()}},De=class extends ne{constructor(t,n,r,o,i,a){super(`HTTP ${t} - ${n}`,r,o,{httpStatus:t,httpStatusText:n,responseBody:i,...a});this.status=t;this.statusText=n;this.name=this.constructor.name}},Ae=class extends ne{constructor(t,n,r,o,i){super(`Network Error: ${t.message}`,n,r,o,{originalErrorName:t.name,originalErrorStack:t.stack,...i});this.originalError=t;this.name=this.constructor.name,this.stack=t.stack}},be=class extends ne{constructor(e,t,n,r){super(e,t,n,void 0,r),this.name=this.constructor.name}},ue=class extends ne{constructor(t,n,r,o){super("Stream terminated unexpectedly by remote host",t,n,void 0,{lastChunk:r,...o});this.lastChunk=r;this.name=this.constructor.name}},$e=class extends ne{constructor(e,t,n,r){super(`Request timed out after ${t}ms`,e,n,void 0,{timeoutMs:t,...r}),this.name=this.constructor.name}},ze=class extends ne{constructor(e,t,n,r){super(`Request aborted${t?`: ${t}`:""}`,e,n,void 0,{abortReason:t,...r}),this.name=this.constructor.name}},ve=class extends ne{constructor(e,t,n,r){super("Authentication failed",e,t,n,r),this.name=this.constructor.name}},q=class extends Error{constructor(t,n,r){super(`Model refused to fulfill request: ${t}`);this.refusalMessage=t;this.model=n;this.requestId=r;this.name="AxAIRefusalError",this.timestamp=new Date().toISOString(),this.errorId=te()}timestamp;errorId;toString(){return[`${this.name}: ${this.message}`,`Refusal: ${this.refusalMessage}`,this.model?`Model: ${this.model}`:"",this.requestId?`Request ID: ${this.requestId}`:"",`Timestamp: ${this.timestamp}`,`Error ID: ${this.errorId}`].filter(Boolean).join(`
9
9
  `)}[Symbol.for("nodejs.util.inspect.custom")](t,n){return this.toString()}},le=class extends Error{constructor(t,n,r=!1){super(`${t} not supported by ${n}${r?" (fallback available)":""}`);this.mediaType=t;this.provider=n;this.fallbackAvailable=r;this.name="AxMediaNotSupportedError",this.timestamp=new Date().toISOString(),this.errorId=te()}timestamp;errorId;toString(){return[`${this.name}: ${this.message}`,`Media Type: ${this.mediaType}`,`Provider: ${this.provider}`,`Fallback Available: ${this.fallbackAvailable}`,`Timestamp: ${this.timestamp}`,`Error ID: ${this.errorId}`].join(`
10
10
  `)}[Symbol.for("nodejs.util.inspect.custom")](t,n){return this.toString()}},ce=class extends Error{constructor(t,n,r){super(`Failed to process ${n} during ${r}: ${t.message}`);this.originalError=t;this.contentType=n;this.processingStep=r;this.name="AxContentProcessingError",this.timestamp=new Date().toISOString(),this.errorId=te()}timestamp;errorId;toString(){return[`${this.name}: ${this.message}`,`Content Type: ${this.contentType}`,`Processing Step: ${this.processingStep}`,`Original Error: ${this.originalError.message}`,`Timestamp: ${this.timestamp}`,`Error ID: ${this.errorId}`].join(`
11
- `)}[Symbol.for("nodejs.util.inspect.custom")](t,n){return this.toString()}};async function ss(s){try{return s.headers.get("content-type")?.includes("application/json")?await s.json():await s.clone().text()}catch(e){return`[ReadableStream - read failed: ${e.message}]`}}function is(s,e){return Math.min(e.maxDelayMs,e.initialDelayMs*e.backoffFactor**s)*(.75+Math.random()*.5)}function Wa(){return{startTime:Date.now(),retryCount:0}}function as(s){s.retryCount++,s.lastRetryTime=Date.now()}function ls(s,e,t,n){return t>=n.maxRetries?!1:e&&n.retryableStatusCodes.includes(e)?!0:s instanceof Ae&&!(s instanceof ve)}var re=async(s,e)=>{if(s.localCall)return await s.localCall(e,s.stream);if(!s.url)throw new Error("API URL is required when localCall is not provided");let t={...Ka,...s.retry},n=s.timeout,r=Wa(),o,i=new URL(s.url),a=`${[i.pathname,s.name].filter(Boolean).join("/").replace(/\/+/g,"/")}${i.search}`,l=new URL(a,i);if(s.corsProxy){let c=l.href;l=new URL(`${s.corsProxy}?url=${encodeURIComponent(c)}`)}let p=te();if(s.validateRequest&&!await s.validateRequest(e))throw new be("Invalid request data",l.href,e,{validation:"request"});s.span?.setAttributes({"http.request.method":s.put?"PUT":"POST","url.full":l.href,"request.id":p,"request.startTime":r.startTime});let u=0;for(;;){let c=new AbortController;if(s.abortSignal){if(s.abortSignal.aborted)throw new ze(l.href,s.abortSignal.reason,e,{metrics:r});let d=()=>{c.abort(s.abortSignal.reason||"User aborted request")};s.abortSignal.addEventListener("abort",d,{once:!0});let m=c.abort.bind(c);c.abort=g=>{s.abortSignal.removeEventListener("abort",d),m(g)}}n&&(o=setTimeout(()=>{c.abort("Request timeout")},n));try{let d=await(s.fetch??fetch)(l,{method:s.put?"PUT":"POST",headers:{"Content-Type":"application/json","X-Request-ID":p,"X-Retry-Count":u.toString(),...s.headers},body:JSON.stringify(e),signal:c.signal});if(o&&clearTimeout(o),d.status===401||d.status===403){let A=await ss(d);throw new ve(l.href,e,A,{metrics:r})}if(d.status>=400&&ls(new Error,d.status,u,t)){let A=is(u,t);u++,as(r),s.span?.addEvent("retry",{attempt:u,delay:A,status:d.status,"metrics.startTime":r.startTime,"metrics.retryCount":r.retryCount,"metrics.lastRetryTime":r.lastRetryTime}),await new Promise(b=>setTimeout(b,A));continue}if(d.status>=400){let A=await ss(d);throw new De(d.status,d.statusText,l.href,e,A,{metrics:r})}if(!s.stream){let A=await d.json();if(s.validateResponse&&!await s.validateResponse(A))throw new be("Invalid response data",l.href,e,{validation:"response"});return s.span?.setAttributes({"response.time":Date.now()-r.startTime,"response.retries":r.retryCount}),A}if(!d.body)throw new be("Response body is null",l.href,e,{metrics:r});let m,g=0;if(typeof window<"u"&&typeof EventSource<"u")return new ReadableStream({start(A){let b=d.body.getReader(),C=new TextDecoder,I="";async function y(){try{for(;;){let{done:T,value:S}=await b.read();if(T){x=!0,A.close();break}I+=C.decode(S,{stream:!0});let M=I.split(`
11
+ `)}[Symbol.for("nodejs.util.inspect.custom")](t,n){return this.toString()}};async function ss(s){try{return s.headers.get("content-type")?.includes("application/json")?await s.json():await s.clone().text()}catch(e){return`[ReadableStream - read failed: ${e.message}]`}}function is(s,e){return Math.min(e.maxDelayMs,e.initialDelayMs*e.backoffFactor**s)*(.75+Math.random()*.5)}function Wa(){return{startTime:Date.now(),retryCount:0}}function as(s){s.retryCount++,s.lastRetryTime=Date.now()}function ls(s,e,t,n){return t>=n.maxRetries?!1:e&&n.retryableStatusCodes.includes(e)?!0:s instanceof Ae&&!(s instanceof ve)}var re=async(s,e)=>{if(s.localCall)return await s.localCall(e,s.stream);if(!s.url)throw new Error("API URL is required when localCall is not provided");let t={...Ka,...s.retry},n=s.timeout,r=Wa(),o,i=new URL(s.url),a=`${[i.pathname,s.name].filter(Boolean).join("/").replace(/\/+/g,"/")}${i.search}`,l=new URL(a,i);if(s.corsProxy){let c=l.href;l=new URL(`${s.corsProxy}?url=${encodeURIComponent(c)}`)}let p=te();if(s.validateRequest&&!await s.validateRequest(e))throw new be("Invalid request data",l.href,e,{validation:"request"});s.span?.setAttributes({"http.request.method":s.put?"PUT":"POST","url.full":l.href,"request.id":p,"request.startTime":r.startTime});let u=0;for(;;){let c=new AbortController;if(s.abortSignal){if(s.abortSignal.aborted)throw new ze(l.href,s.abortSignal.reason,e,{metrics:r});let d=()=>{c.abort(s.abortSignal.reason||"User aborted request")};s.abortSignal.addEventListener("abort",d,{once:!0});let m=c.abort.bind(c);c.abort=g=>{s.abortSignal.removeEventListener("abort",d),m(g)}}n&&(o=setTimeout(()=>{c.abort("Request timeout")},n));try{let d=await(s.fetch??fetch)(l,{method:s.put?"PUT":"POST",headers:{"Content-Type":"application/json","X-Request-ID":p,"X-Retry-Count":u.toString(),...s.headers},body:JSON.stringify(e),signal:c.signal});if(o&&clearTimeout(o),d.status===401||d.status===403){let A=await ss(d);throw new ve(l.href,e,A,{metrics:r})}if(d.status>=400&&ls(new Error,d.status,u,t)){let A=is(u,t);u++,as(r),s.span?.addEvent("retry",{attempt:u,delay:A,status:d.status,"metrics.startTime":r.startTime,"metrics.retryCount":r.retryCount,"metrics.lastRetryTime":r.lastRetryTime}),await new Promise(b=>setTimeout(b,A));continue}if(d.status>=400){let A=await ss(d);throw new De(d.status,d.statusText,l.href,e,A,{metrics:r})}if(!s.stream){let A=await d.json();if(s.validateResponse&&!await s.validateResponse(A))throw new be("Invalid response data",l.href,e,{validation:"response"});return s.span?.setAttributes({"response.time":Date.now()-r.startTime,"response.retries":r.retryCount}),A}if(!d.body)throw new be("Response body is null",l.href,e,{metrics:r});let m,g=0;if(typeof window<"u"&&typeof EventSource<"u")return new ReadableStream({start(A){let b=d.body.getReader(),C=new TextDecoder,I="";async function y(){try{for(;;){let{done:T,value:S}=await b.read();if(T){x=!0,A.close();break}I+=C.decode(S,{stream:!0});let O=I.split(`
12
12
 
13
- `);I=M.pop()||"";for(let N of M){if(!N.trim())continue;let G=N.split(`
14
- `),O="",w="message";for(let R of G)R.startsWith("data: ")?O=R.slice(6):R.startsWith("event: ")&&(w=R.slice(7));if(O){if(O==="[DONE]"){A.close();return}try{let R=JSON.parse(O);m=R,g++,r.streamChunks=g,r.lastChunkTime=Date.now(),console.log("!!!!>>>>>>>>>parsed",R),A.enqueue(R),s.span?.addEvent("stream.chunk",{"stream.chunks":g,"stream.duration":Date.now()-r.startTime,"response.retries":r.retryCount,"sse.event.type":w})}catch(R){s.debug&&console.warn("Skipping non-JSON SSE data:",O,R)}}}}}catch(T){let S=T,M={...r,streamDuration:Date.now()-r.startTime};S.name==="AbortError"||S.message?.includes("aborted")?A.error(new ue(l.href,e,m,{streamMetrics:M})):A.error(new Ae(S,l.href,e,"[ReadableStream - consumed during streaming]",{streamMetrics:M}))}finally{b.releaseLock()}}y()}});let f=new TransformStream({transform(A,b){m=A,g++,r.streamChunks=g,r.lastChunkTime=Date.now(),b.enqueue(A),s.span?.addEvent("stream.chunk",{"stream.chunks":g,"stream.duration":Date.now()-r.startTime,"response.retries":r.retryCount})}}),x=!1;return new ReadableStream({start(A){let b=d.body.pipeThrough(new Va).pipeThrough(new yn).pipeThrough(f).getReader();async function C(){try{for(;;){let{done:I,value:y}=await b.read();if(I){x||(x=!0,A.close());break}if(x)break;A.enqueue(y)}}catch(I){let y=I,T={...r,streamDuration:Date.now()-r.startTime};throw y.name==="AbortError"||y.message?.includes("aborted")?A.error(new ue(l.href,e,m,{streamMetrics:T})):y instanceof TypeError&&y.message.includes("cancelled")?A.error(new ue(l.href,e,m,{streamMetrics:T,cancelReason:"Stream cancelled by client"})):A.error(new Ae(y,l.href,e,"[ReadableStream - consumed during streaming]",{streamMetrics:T})),y}finally{o&&clearTimeout(o),b.releaseLock()}}C()},cancel(){x=!0}})}catch(d){if(d instanceof Error&&d.name==="AbortError")throw s.abortSignal?.aborted?new ze(l.href,s.abortSignal.reason,e,{metrics:r}):new $e(l.href,n||0,e,{metrics:r});if(s.span?.isRecording()&&(s.span.recordException(d),s.span.setAttributes({"error.time":Date.now()-r.startTime,"error.retries":r.retryCount})),d instanceof Ae&&ls(d,void 0,u,t)){let m=is(u,t);u++,as(r),s.span?.addEvent("retry",{attempt:u,delay:m,error:d.message,"metrics.startTime":r.startTime,"metrics.retryCount":r.retryCount,"metrics.lastRetryTime":r.lastRetryTime}),await new Promise(g=>setTimeout(g,m));continue}throw d instanceof ne&&(d.context.metrics=r),d}finally{o!==void 0&&clearTimeout(o)}}};var ps=typeof globalThis=="object"?globalThis:global;var Te="1.9.0";var us=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function Ja(s){var e=new Set([s]),t=new Set,n=s.match(us);if(!n)return function(){return!1};var r={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(r.prerelease!=null)return function(l){return l===s};function o(a){return t.add(a),!1}function i(a){return e.add(a),!0}return function(l){if(e.has(l))return!0;if(t.has(l))return!1;var p=l.match(us);if(!p)return o(l);var u={major:+p[1],minor:+p[2],patch:+p[3],prerelease:p[4]};return u.prerelease!=null||r.major!==u.major?o(l):r.major===0?r.minor===u.minor&&r.patch<=u.patch?i(l):o(l):r.minor<=u.minor?i(l):o(l)}}var cs=Ja(Te);var Ya=Te.split(".")[0],kt=Symbol.for("opentelemetry.js.api."+Ya),Et=ps;function je(s,e,t,n){var r;n===void 0&&(n=!1);var o=Et[kt]=(r=Et[kt])!==null&&r!==void 0?r:{version:Te};if(!n&&o[s]){var i=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+s);return t.error(i.stack||i.message),!1}if(o.version!==Te){var i=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+s+" does not match previously registered API v"+Te);return t.error(i.stack||i.message),!1}return o[s]=e,t.debug("@opentelemetry/api: Registered a global for "+s+" v"+Te+"."),!0}function Re(s){var e,t,n=(e=Et[kt])===null||e===void 0?void 0:e.version;if(!(!n||!cs(n)))return(t=Et[kt])===null||t===void 0?void 0:t[s]}function He(s,e){e.debug("@opentelemetry/api: Unregistering a global for "+s+" v"+Te+".");var t=Et[kt];t&&delete t[s]}var Qa=function(s,e){var t=typeof Symbol=="function"&&s[Symbol.iterator];if(!t)return s;var n=t.call(s),r,o=[],i;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(i)throw i.error}}return o},Xa=function(s,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,o;n<r;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return s.concat(o||Array.prototype.slice.call(e))},ds=function(){function s(e){this._namespace=e.namespace||"DiagComponentLogger"}return s.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("debug",this._namespace,e)},s.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("error",this._namespace,e)},s.prototype.info=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("info",this._namespace,e)},s.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("warn",this._namespace,e)},s.prototype.verbose=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("verbose",this._namespace,e)},s}();function Pt(s,e,t){var n=Re("diag");if(n)return t.unshift(e),n[s].apply(n,Xa([],Qa(t),!1))}var X;(function(s){s[s.NONE=0]="NONE",s[s.ERROR=30]="ERROR",s[s.WARN=50]="WARN",s[s.INFO=60]="INFO",s[s.DEBUG=70]="DEBUG",s[s.VERBOSE=80]="VERBOSE",s[s.ALL=9999]="ALL"})(X||(X={}));function ms(s,e){s<X.NONE?s=X.NONE:s>X.ALL&&(s=X.ALL),e=e||{};function t(n,r){var o=e[n];return typeof o=="function"&&s>=r?o.bind(e):function(){}}return{error:t("error",X.ERROR),warn:t("warn",X.WARN),info:t("info",X.INFO),debug:t("debug",X.DEBUG),verbose:t("verbose",X.VERBOSE)}}var Za=function(s,e){var t=typeof Symbol=="function"&&s[Symbol.iterator];if(!t)return s;var n=t.call(s),r,o=[],i;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(i)throw i.error}}return o},el=function(s,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,o;n<r;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return s.concat(o||Array.prototype.slice.call(e))},tl="diag",Ke=function(){function s(){function e(r){return function(){for(var o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];var a=Re("diag");if(a)return a[r].apply(a,el([],Za(o),!1))}}var t=this,n=function(r,o){var i,a,l;if(o===void 0&&(o={logLevel:X.INFO}),r===t){var p=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error((i=p.stack)!==null&&i!==void 0?i:p.message),!1}typeof o=="number"&&(o={logLevel:o});var u=Re("diag"),c=ms((a=o.logLevel)!==null&&a!==void 0?a:X.INFO,r);if(u&&!o.suppressOverrideMessage){var d=(l=new Error().stack)!==null&&l!==void 0?l:"<failed to generate stacktrace>";u.warn("Current logger will be overwritten from "+d),c.warn("Current logger will overwrite one already registered from "+d)}return je("diag",c,t,!0)};t.setLogger=n,t.disable=function(){He(tl,t)},t.createComponentLogger=function(r){return new ds(r)},t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}return s.instance=function(){return this._instance||(this._instance=new s),this._instance},s}();function gs(s){return Symbol.for(s)}var nl=function(){function s(e){var t=this;t._currentContext=e?new Map(e):new Map,t.getValue=function(n){return t._currentContext.get(n)},t.setValue=function(n,r){var o=new s(t._currentContext);return o._currentContext.set(n,r),o},t.deleteValue=function(n){var r=new s(t._currentContext);return r._currentContext.delete(n),r}}return s}(),hs=new nl;var rl=function(s,e){var t=typeof Symbol=="function"&&s[Symbol.iterator];if(!t)return s;var n=t.call(s),r,o=[],i;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(i)throw i.error}}return o},ol=function(s,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,o;n<r;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return s.concat(o||Array.prototype.slice.call(e))},fs=function(){function s(){}return s.prototype.active=function(){return hs},s.prototype.with=function(e,t,n){for(var r=[],o=3;o<arguments.length;o++)r[o-3]=arguments[o];return t.call.apply(t,ol([n],rl(r),!1))},s.prototype.bind=function(e,t){return t},s.prototype.enable=function(){return this},s.prototype.disable=function(){return this},s}();var sl=function(s,e){var t=typeof Symbol=="function"&&s[Symbol.iterator];if(!t)return s;var n=t.call(s),r,o=[],i;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(i)throw i.error}}return o},il=function(s,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,o;n<r;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return s.concat(o||Array.prototype.slice.call(e))},Br="context",al=new fs,Ve=function(){function s(){}return s.getInstance=function(){return this._instance||(this._instance=new s),this._instance},s.prototype.setGlobalContextManager=function(e){return je(Br,e,Ke.instance())},s.prototype.active=function(){return this._getContextManager().active()},s.prototype.with=function(e,t,n){for(var r,o=[],i=3;i<arguments.length;i++)o[i-3]=arguments[i];return(r=this._getContextManager()).with.apply(r,il([e,t,n],sl(o),!1))},s.prototype.bind=function(e,t){return this._getContextManager().bind(e,t)},s.prototype._getContextManager=function(){return Re(Br)||al},s.prototype.disable=function(){this._getContextManager().disable(),He(Br,Ke.instance())},s}();var bn;(function(s){s[s.NONE=0]="NONE",s[s.SAMPLED=1]="SAMPLED"})(bn||(bn={}));var qr="0000000000000000",zr="00000000000000000000000000000000",As={traceId:zr,spanId:qr,traceFlags:bn.NONE};var Se=function(){function s(e){e===void 0&&(e=As),this._spanContext=e}return s.prototype.spanContext=function(){return this._spanContext},s.prototype.setAttribute=function(e,t){return this},s.prototype.setAttributes=function(e){return this},s.prototype.addEvent=function(e,t){return this},s.prototype.addLink=function(e){return this},s.prototype.addLinks=function(e){return this},s.prototype.setStatus=function(e){return this},s.prototype.updateName=function(e){return this},s.prototype.end=function(e){},s.prototype.isRecording=function(){return!1},s.prototype.recordException=function(e,t){},s}();var jr=gs("OpenTelemetry Context Key SPAN");function Tn(s){return s.getValue(jr)||void 0}function xs(){return Tn(Ve.getInstance().active())}function _t(s,e){return s.setValue(jr,e)}function ys(s){return s.deleteValue(jr)}function Is(s,e){return _t(s,new Se(e))}function Rn(s){var e;return(e=Tn(s))===null||e===void 0?void 0:e.spanContext()}var ll=/^([0-9a-f]{32})$/i,pl=/^[0-9a-f]{16}$/i;function ul(s){return ll.test(s)&&s!==zr}function cl(s){return pl.test(s)&&s!==qr}function Cn(s){return ul(s.traceId)&&cl(s.spanId)}function bs(s){return new Se(s)}var Hr=Ve.getInstance(),wn=function(){function s(){}return s.prototype.startSpan=function(e,t,n){n===void 0&&(n=Hr.active());var r=!!t?.root;if(r)return new Se;var o=n&&Rn(n);return dl(o)&&Cn(o)?new Se(o):new Se},s.prototype.startActiveSpan=function(e,t,n,r){var o,i,a;if(!(arguments.length<2)){arguments.length===2?a=t:arguments.length===3?(o=t,a=n):(o=t,i=n,a=r);var l=i??Hr.active(),p=this.startSpan(e,o,l),u=_t(l,p);return Hr.with(u,a,void 0,p)}},s}();function dl(s){return typeof s=="object"&&typeof s.spanId=="string"&&typeof s.traceId=="string"&&typeof s.traceFlags=="number"}var ml=new wn,Ts=function(){function s(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}return s.prototype.startSpan=function(e,t,n){return this._getTracer().startSpan(e,t,n)},s.prototype.startActiveSpan=function(e,t,n,r){var o=this._getTracer();return Reflect.apply(o.startActiveSpan,o,arguments)},s.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):ml},s}();var Rs=function(){function s(){}return s.prototype.getTracer=function(e,t,n){return new wn},s}();var gl=new Rs,Kr=function(){function s(){}return s.prototype.getTracer=function(e,t,n){var r;return(r=this.getDelegateTracer(e,t,n))!==null&&r!==void 0?r:new Ts(this,e,t,n)},s.prototype.getDelegate=function(){var e;return(e=this._delegate)!==null&&e!==void 0?e:gl},s.prototype.setDelegate=function(e){this._delegate=e},s.prototype.getDelegateTracer=function(e,t,n){var r;return(r=this._delegate)===null||r===void 0?void 0:r.getTracer(e,t,n)},s}();var oe;(function(s){s[s.INTERNAL=0]="INTERNAL",s[s.SERVER=1]="SERVER",s[s.CLIENT=2]="CLIENT",s[s.PRODUCER=3]="PRODUCER",s[s.CONSUMER=4]="CONSUMER"})(oe||(oe={}));var Oe=Ve.getInstance();var Vr="trace",Cs=function(){function s(){this._proxyTracerProvider=new Kr,this.wrapSpanContext=bs,this.isSpanContextValid=Cn,this.deleteSpan=ys,this.getSpan=Tn,this.getActiveSpan=xs,this.getSpanContext=Rn,this.setSpan=_t,this.setSpanContext=Is}return s.getInstance=function(){return this._instance||(this._instance=new s),this._instance},s.prototype.setGlobalTracerProvider=function(e){var t=je(Vr,this._proxyTracerProvider,Ke.instance());return t&&this._proxyTracerProvider.setDelegate(e),t},s.prototype.getTracerProvider=function(){return Re(Vr)||this._proxyTracerProvider},s.prototype.getTracer=function(e,t){return this.getTracerProvider().getTracer(e,t)},s.prototype.disable=function(){He(Vr,Ke.instance()),this._proxyTracerProvider=new Kr},s}();var Ne=Cs.getInstance();var U={signatureStrict:!0,tracer:void 0,meter:void 0,logger:void 0,optimizerLogger:void 0,functionResultFormatter:s=>typeof s=="string"?s:s==null?"":JSON.stringify(s,null,2)};var Z=class{ANSI_WHITE_BRIGHT="\x1B[97m";ANSI_GREEN_BRIGHT="\x1B[92m";ANSI_BLUE_BRIGHT="\x1B[94m";ANSI_RED_BRIGHT="\x1B[91m";ANSI_YELLOW_BRIGHT="\x1B[93m";ANSI_YELLOW="\x1B[93m";ANSI_RED="\x1B[91m";ANSI_RESET="\x1B[0m";ANSI_ORANGE="\x1B[38;5;208m";ANSI_WHITE="\x1B[37m";ANSI_CYAN_BRIGHT="\x1B[96m";ANSI_MAGENTA_BRIGHT="\x1B[95m";ANSI_GRAY="\x1B[90m";ANSI_GREEN="\x1B[32m";ANSI_CYAN="\x1B[36m";ANSI_MAGENTA="\x1B[35m";ANSI_BLUE="\x1B[34m";ANSI_YELLOW_DIM="\x1B[33m";colorize(e,t){return`${t}${e}${this.ANSI_RESET}`}whiteBright(e){return this.colorize(e,this.ANSI_WHITE_BRIGHT)}greenBright(e){return this.colorize(e,this.ANSI_GREEN_BRIGHT)}blueBright(e){return this.colorize(e,this.ANSI_BLUE_BRIGHT)}redBright(e){return this.colorize(e,this.ANSI_RED_BRIGHT)}white(e){return this.colorize(e,this.ANSI_WHITE)}yellow(e){return this.colorize(e,this.ANSI_YELLOW)}yellowBright(e){return this.colorize(e,this.ANSI_YELLOW_BRIGHT)}red(e){return this.colorize(e,this.ANSI_RED)}orange(e){return this.colorize(e,this.ANSI_ORANGE)}cyanBright(e){return this.colorize(e,this.ANSI_CYAN_BRIGHT)}magentaBright(e){return this.colorize(e,this.ANSI_MAGENTA_BRIGHT)}gray(e){return this.colorize(e,this.ANSI_GRAY)}green(e){return this.colorize(e,this.ANSI_GREEN)}cyan(e){return this.colorize(e,this.ANSI_CYAN)}magenta(e){return this.colorize(e,this.ANSI_MAGENTA)}blue(e){return this.colorize(e,this.ANSI_BLUE)}yellowDim(e){return this.colorize(e,this.ANSI_YELLOW_DIM)}};var Wu=new Z,ws=s=>{console.log(s)},vs=(s,e,t)=>{let n=(r,o)=>t&&o&&o in t?t[o](r):r;switch(s.role){case"system":return`${n("[ SYSTEM ]","magentaBright")}
13
+ `);I=O.pop()||"";for(let N of O){if(!N.trim())continue;let G=N.split(`
14
+ `),M="",w="message";for(let R of G)R.startsWith("data: ")?M=R.slice(6):R.startsWith("event: ")&&(w=R.slice(7));if(M){if(M==="[DONE]"){A.close();return}try{let R=JSON.parse(M);m=R,g++,r.streamChunks=g,r.lastChunkTime=Date.now(),console.log("!!!!>>>>>>>>>parsed",R),A.enqueue(R),s.span?.addEvent("stream.chunk",{"stream.chunks":g,"stream.duration":Date.now()-r.startTime,"response.retries":r.retryCount,"sse.event.type":w})}catch(R){s.debug&&console.warn("Skipping non-JSON SSE data:",M,R)}}}}}catch(T){let S=T,O={...r,streamDuration:Date.now()-r.startTime};S.name==="AbortError"||S.message?.includes("aborted")?A.error(new ue(l.href,e,m,{streamMetrics:O})):A.error(new Ae(S,l.href,e,"[ReadableStream - consumed during streaming]",{streamMetrics:O}))}finally{b.releaseLock()}}y()}});let f=new TransformStream({transform(A,b){m=A,g++,r.streamChunks=g,r.lastChunkTime=Date.now(),b.enqueue(A),s.span?.addEvent("stream.chunk",{"stream.chunks":g,"stream.duration":Date.now()-r.startTime,"response.retries":r.retryCount})}}),x=!1;return new ReadableStream({start(A){let b=d.body.pipeThrough(new Va).pipeThrough(new yn).pipeThrough(f).getReader();async function C(){try{for(;;){let{done:I,value:y}=await b.read();if(I){x||(x=!0,A.close());break}if(x)break;A.enqueue(y)}}catch(I){let y=I,T={...r,streamDuration:Date.now()-r.startTime};throw y.name==="AbortError"||y.message?.includes("aborted")?A.error(new ue(l.href,e,m,{streamMetrics:T})):y instanceof TypeError&&y.message.includes("cancelled")?A.error(new ue(l.href,e,m,{streamMetrics:T,cancelReason:"Stream cancelled by client"})):A.error(new Ae(y,l.href,e,"[ReadableStream - consumed during streaming]",{streamMetrics:T})),y}finally{o&&clearTimeout(o),b.releaseLock()}}C()},cancel(){x=!0}})}catch(d){if(d instanceof Error&&d.name==="AbortError")throw s.abortSignal?.aborted?new ze(l.href,s.abortSignal.reason,e,{metrics:r}):new $e(l.href,n||0,e,{metrics:r});if(s.span?.isRecording()&&(s.span.recordException(d),s.span.setAttributes({"error.time":Date.now()-r.startTime,"error.retries":r.retryCount})),d instanceof Ae&&ls(d,void 0,u,t)){let m=is(u,t);u++,as(r),s.span?.addEvent("retry",{attempt:u,delay:m,error:d.message,"metrics.startTime":r.startTime,"metrics.retryCount":r.retryCount,"metrics.lastRetryTime":r.lastRetryTime}),await new Promise(g=>setTimeout(g,m));continue}throw d instanceof ne&&(d.context.metrics=r),d}finally{o!==void 0&&clearTimeout(o)}}};var ps=typeof globalThis=="object"?globalThis:global;var Te="1.9.0";var us=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function Ja(s){var e=new Set([s]),t=new Set,n=s.match(us);if(!n)return function(){return!1};var r={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(r.prerelease!=null)return function(l){return l===s};function o(a){return t.add(a),!1}function i(a){return e.add(a),!0}return function(l){if(e.has(l))return!0;if(t.has(l))return!1;var p=l.match(us);if(!p)return o(l);var u={major:+p[1],minor:+p[2],patch:+p[3],prerelease:p[4]};return u.prerelease!=null||r.major!==u.major?o(l):r.major===0?r.minor===u.minor&&r.patch<=u.patch?i(l):o(l):r.minor<=u.minor?i(l):o(l)}}var cs=Ja(Te);var Ya=Te.split(".")[0],kt=Symbol.for("opentelemetry.js.api."+Ya),Et=ps;function je(s,e,t,n){var r;n===void 0&&(n=!1);var o=Et[kt]=(r=Et[kt])!==null&&r!==void 0?r:{version:Te};if(!n&&o[s]){var i=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+s);return t.error(i.stack||i.message),!1}if(o.version!==Te){var i=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+s+" does not match previously registered API v"+Te);return t.error(i.stack||i.message),!1}return o[s]=e,t.debug("@opentelemetry/api: Registered a global for "+s+" v"+Te+"."),!0}function Re(s){var e,t,n=(e=Et[kt])===null||e===void 0?void 0:e.version;if(!(!n||!cs(n)))return(t=Et[kt])===null||t===void 0?void 0:t[s]}function He(s,e){e.debug("@opentelemetry/api: Unregistering a global for "+s+" v"+Te+".");var t=Et[kt];t&&delete t[s]}var Qa=function(s,e){var t=typeof Symbol=="function"&&s[Symbol.iterator];if(!t)return s;var n=t.call(s),r,o=[],i;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(i)throw i.error}}return o},Xa=function(s,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,o;n<r;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return s.concat(o||Array.prototype.slice.call(e))},ds=function(){function s(e){this._namespace=e.namespace||"DiagComponentLogger"}return s.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("debug",this._namespace,e)},s.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("error",this._namespace,e)},s.prototype.info=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("info",this._namespace,e)},s.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("warn",this._namespace,e)},s.prototype.verbose=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return Pt("verbose",this._namespace,e)},s}();function Pt(s,e,t){var n=Re("diag");if(n)return t.unshift(e),n[s].apply(n,Xa([],Qa(t),!1))}var X;(function(s){s[s.NONE=0]="NONE",s[s.ERROR=30]="ERROR",s[s.WARN=50]="WARN",s[s.INFO=60]="INFO",s[s.DEBUG=70]="DEBUG",s[s.VERBOSE=80]="VERBOSE",s[s.ALL=9999]="ALL"})(X||(X={}));function ms(s,e){s<X.NONE?s=X.NONE:s>X.ALL&&(s=X.ALL),e=e||{};function t(n,r){var o=e[n];return typeof o=="function"&&s>=r?o.bind(e):function(){}}return{error:t("error",X.ERROR),warn:t("warn",X.WARN),info:t("info",X.INFO),debug:t("debug",X.DEBUG),verbose:t("verbose",X.VERBOSE)}}var Za=function(s,e){var t=typeof Symbol=="function"&&s[Symbol.iterator];if(!t)return s;var n=t.call(s),r,o=[],i;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(i)throw i.error}}return o},el=function(s,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,o;n<r;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return s.concat(o||Array.prototype.slice.call(e))},tl="diag",Ke=function(){function s(){function e(r){return function(){for(var o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];var a=Re("diag");if(a)return a[r].apply(a,el([],Za(o),!1))}}var t=this,n=function(r,o){var i,a,l;if(o===void 0&&(o={logLevel:X.INFO}),r===t){var p=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error((i=p.stack)!==null&&i!==void 0?i:p.message),!1}typeof o=="number"&&(o={logLevel:o});var u=Re("diag"),c=ms((a=o.logLevel)!==null&&a!==void 0?a:X.INFO,r);if(u&&!o.suppressOverrideMessage){var d=(l=new Error().stack)!==null&&l!==void 0?l:"<failed to generate stacktrace>";u.warn("Current logger will be overwritten from "+d),c.warn("Current logger will overwrite one already registered from "+d)}return je("diag",c,t,!0)};t.setLogger=n,t.disable=function(){He(tl,t)},t.createComponentLogger=function(r){return new ds(r)},t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}return s.instance=function(){return this._instance||(this._instance=new s),this._instance},s}();function gs(s){return Symbol.for(s)}var nl=function(){function s(e){var t=this;t._currentContext=e?new Map(e):new Map,t.getValue=function(n){return t._currentContext.get(n)},t.setValue=function(n,r){var o=new s(t._currentContext);return o._currentContext.set(n,r),o},t.deleteValue=function(n){var r=new s(t._currentContext);return r._currentContext.delete(n),r}}return s}(),hs=new nl;var rl=function(s,e){var t=typeof Symbol=="function"&&s[Symbol.iterator];if(!t)return s;var n=t.call(s),r,o=[],i;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(i)throw i.error}}return o},ol=function(s,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,o;n<r;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return s.concat(o||Array.prototype.slice.call(e))},fs=function(){function s(){}return s.prototype.active=function(){return hs},s.prototype.with=function(e,t,n){for(var r=[],o=3;o<arguments.length;o++)r[o-3]=arguments[o];return t.call.apply(t,ol([n],rl(r),!1))},s.prototype.bind=function(e,t){return t},s.prototype.enable=function(){return this},s.prototype.disable=function(){return this},s}();var sl=function(s,e){var t=typeof Symbol=="function"&&s[Symbol.iterator];if(!t)return s;var n=t.call(s),r,o=[],i;try{for(;(e===void 0||e-- >0)&&!(r=n.next()).done;)o.push(r.value)}catch(a){i={error:a}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(i)throw i.error}}return o},il=function(s,e,t){if(t||arguments.length===2)for(var n=0,r=e.length,o;n<r;n++)(o||!(n in e))&&(o||(o=Array.prototype.slice.call(e,0,n)),o[n]=e[n]);return s.concat(o||Array.prototype.slice.call(e))},Br="context",al=new fs,Ve=function(){function s(){}return s.getInstance=function(){return this._instance||(this._instance=new s),this._instance},s.prototype.setGlobalContextManager=function(e){return je(Br,e,Ke.instance())},s.prototype.active=function(){return this._getContextManager().active()},s.prototype.with=function(e,t,n){for(var r,o=[],i=3;i<arguments.length;i++)o[i-3]=arguments[i];return(r=this._getContextManager()).with.apply(r,il([e,t,n],sl(o),!1))},s.prototype.bind=function(e,t){return this._getContextManager().bind(e,t)},s.prototype._getContextManager=function(){return Re(Br)||al},s.prototype.disable=function(){this._getContextManager().disable(),He(Br,Ke.instance())},s}();var bn;(function(s){s[s.NONE=0]="NONE",s[s.SAMPLED=1]="SAMPLED"})(bn||(bn={}));var qr="0000000000000000",zr="00000000000000000000000000000000",As={traceId:zr,spanId:qr,traceFlags:bn.NONE};var Se=function(){function s(e){e===void 0&&(e=As),this._spanContext=e}return s.prototype.spanContext=function(){return this._spanContext},s.prototype.setAttribute=function(e,t){return this},s.prototype.setAttributes=function(e){return this},s.prototype.addEvent=function(e,t){return this},s.prototype.addLink=function(e){return this},s.prototype.addLinks=function(e){return this},s.prototype.setStatus=function(e){return this},s.prototype.updateName=function(e){return this},s.prototype.end=function(e){},s.prototype.isRecording=function(){return!1},s.prototype.recordException=function(e,t){},s}();var jr=gs("OpenTelemetry Context Key SPAN");function Tn(s){return s.getValue(jr)||void 0}function xs(){return Tn(Ve.getInstance().active())}function _t(s,e){return s.setValue(jr,e)}function ys(s){return s.deleteValue(jr)}function Is(s,e){return _t(s,new Se(e))}function Rn(s){var e;return(e=Tn(s))===null||e===void 0?void 0:e.spanContext()}var ll=/^([0-9a-f]{32})$/i,pl=/^[0-9a-f]{16}$/i;function ul(s){return ll.test(s)&&s!==zr}function cl(s){return pl.test(s)&&s!==qr}function Cn(s){return ul(s.traceId)&&cl(s.spanId)}function bs(s){return new Se(s)}var Hr=Ve.getInstance(),wn=function(){function s(){}return s.prototype.startSpan=function(e,t,n){n===void 0&&(n=Hr.active());var r=!!t?.root;if(r)return new Se;var o=n&&Rn(n);return dl(o)&&Cn(o)?new Se(o):new Se},s.prototype.startActiveSpan=function(e,t,n,r){var o,i,a;if(!(arguments.length<2)){arguments.length===2?a=t:arguments.length===3?(o=t,a=n):(o=t,i=n,a=r);var l=i??Hr.active(),p=this.startSpan(e,o,l),u=_t(l,p);return Hr.with(u,a,void 0,p)}},s}();function dl(s){return typeof s=="object"&&typeof s.spanId=="string"&&typeof s.traceId=="string"&&typeof s.traceFlags=="number"}var ml=new wn,Ts=function(){function s(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}return s.prototype.startSpan=function(e,t,n){return this._getTracer().startSpan(e,t,n)},s.prototype.startActiveSpan=function(e,t,n,r){var o=this._getTracer();return Reflect.apply(o.startActiveSpan,o,arguments)},s.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):ml},s}();var Rs=function(){function s(){}return s.prototype.getTracer=function(e,t,n){return new wn},s}();var gl=new Rs,Kr=function(){function s(){}return s.prototype.getTracer=function(e,t,n){var r;return(r=this.getDelegateTracer(e,t,n))!==null&&r!==void 0?r:new Ts(this,e,t,n)},s.prototype.getDelegate=function(){var e;return(e=this._delegate)!==null&&e!==void 0?e:gl},s.prototype.setDelegate=function(e){this._delegate=e},s.prototype.getDelegateTracer=function(e,t,n){var r;return(r=this._delegate)===null||r===void 0?void 0:r.getTracer(e,t,n)},s}();var oe;(function(s){s[s.INTERNAL=0]="INTERNAL",s[s.SERVER=1]="SERVER",s[s.CLIENT=2]="CLIENT",s[s.PRODUCER=3]="PRODUCER",s[s.CONSUMER=4]="CONSUMER"})(oe||(oe={}));var Oe=Ve.getInstance();var Vr="trace",Cs=function(){function s(){this._proxyTracerProvider=new Kr,this.wrapSpanContext=bs,this.isSpanContextValid=Cn,this.deleteSpan=ys,this.getSpan=Tn,this.getActiveSpan=xs,this.getSpanContext=Rn,this.setSpan=_t,this.setSpanContext=Is}return s.getInstance=function(){return this._instance||(this._instance=new s),this._instance},s.prototype.setGlobalTracerProvider=function(e){var t=je(Vr,this._proxyTracerProvider,Ke.instance());return t&&this._proxyTracerProvider.setDelegate(e),t},s.prototype.getTracerProvider=function(){return Re(Vr)||this._proxyTracerProvider},s.prototype.getTracer=function(e,t){return this.getTracerProvider().getTracer(e,t)},s.prototype.disable=function(){He(Vr,Ke.instance()),this._proxyTracerProvider=new Kr},s}();var Ne=Cs.getInstance();var U={signatureStrict:!0,tracer:void 0,meter:void 0,logger:void 0,optimizerLogger:void 0,functionResultFormatter:s=>typeof s=="string"?s:s==null?"":JSON.stringify(s,null,2)};var Z=class{ANSI_WHITE_BRIGHT="\x1B[97m";ANSI_GREEN_BRIGHT="\x1B[92m";ANSI_BLUE_BRIGHT="\x1B[94m";ANSI_RED_BRIGHT="\x1B[91m";ANSI_YELLOW_BRIGHT="\x1B[93m";ANSI_YELLOW="\x1B[93m";ANSI_RED="\x1B[91m";ANSI_RESET="\x1B[0m";ANSI_ORANGE="\x1B[38;5;208m";ANSI_WHITE="\x1B[37m";ANSI_CYAN_BRIGHT="\x1B[96m";ANSI_MAGENTA_BRIGHT="\x1B[95m";ANSI_GRAY="\x1B[90m";ANSI_GREEN="\x1B[32m";ANSI_CYAN="\x1B[36m";ANSI_MAGENTA="\x1B[35m";ANSI_BLUE="\x1B[34m";ANSI_YELLOW_DIM="\x1B[33m";colorize(e,t){return`${t}${e}${this.ANSI_RESET}`}whiteBright(e){return this.colorize(e,this.ANSI_WHITE_BRIGHT)}greenBright(e){return this.colorize(e,this.ANSI_GREEN_BRIGHT)}blueBright(e){return this.colorize(e,this.ANSI_BLUE_BRIGHT)}redBright(e){return this.colorize(e,this.ANSI_RED_BRIGHT)}white(e){return this.colorize(e,this.ANSI_WHITE)}yellow(e){return this.colorize(e,this.ANSI_YELLOW)}yellowBright(e){return this.colorize(e,this.ANSI_YELLOW_BRIGHT)}red(e){return this.colorize(e,this.ANSI_RED)}orange(e){return this.colorize(e,this.ANSI_ORANGE)}cyanBright(e){return this.colorize(e,this.ANSI_CYAN_BRIGHT)}magentaBright(e){return this.colorize(e,this.ANSI_MAGENTA_BRIGHT)}gray(e){return this.colorize(e,this.ANSI_GRAY)}green(e){return this.colorize(e,this.ANSI_GREEN)}cyan(e){return this.colorize(e,this.ANSI_CYAN)}magenta(e){return this.colorize(e,this.ANSI_MAGENTA)}blue(e){return this.colorize(e,this.ANSI_BLUE)}yellowDim(e){return this.colorize(e,this.ANSI_YELLOW_DIM)}};var Wu=new Z,ws=s=>{console.log(s)},vs=(s,e,t)=>{let n=(r,o)=>t&&o&&o in t?t[o](r):r;switch(s.role){case"system":return`${n("[ SYSTEM ]","magentaBright")}
15
15
  ${n(s.content,"magenta")}`;case"function":return`${n("[ FUNCTION RESULT ]","yellow")}
16
16
  ${n(s.result??"[No result]","yellowDim")}`;case"user":{let r=`${n("[ USER ]","greenBright")}
17
17
  `;if(typeof s.content=="string")return r+n(s.content,"green");let o=s.content.map(i=>{if(i.type==="text")return n(i.text,"green");if(i.type==="image"){let a=e?"[Image]":`[Image: ${i.image}]`;return n(a,"green")}if(i.type==="audio"){let a=e?"[Audio]":`[Audio: ${i.data}]`;return n(a,"green")}return n("[Unknown content type]","gray")});return r+o.join(`
@@ -64,7 +64,23 @@ ${t}
64
64
  ${t}
65
65
  `,r.value.forEach((i,a)=>{o+=e.white(`Embedding ${a+1}: [${i.sample.join(", ")}${i.truncated?", ...":""}] (length: ${i.length})`),a<r.value.length-1&&(o+=`
66
66
  ${t}
67
- `)});break;default:o=e.gray(JSON.stringify(r,null,2))}s(o)}},Ss=Wr(),Os=(s=ws)=>{let e="\u2500".repeat(60);return t=>{let n=t,r="";switch(n.name){case"ChatRequestChatPrompt":r=`
67
+ `)});break;case"ChatResponseUsage":{o=`${e.greenBright(`
68
+ [ CHAT RESPONSE USAGE ]`)}
69
+ `;let i=r.value;o+=`${e.white("AI:")} ${i.ai}
70
+ `,o+=`${e.white("Model:")} ${i.model}
71
+ `,i.tokens&&(o+=`${e.white("Total Tokens:")} ${i.tokens.totalTokens}
72
+ `,o+=`${e.white("Prompt Tokens:")} ${i.tokens.promptTokens}
73
+ `,o+=`${e.white("Completion Tokens:")} ${i.tokens.completionTokens}
74
+ `,i.tokens.thoughtsTokens!==void 0&&(o+=`${e.white("Thoughts Tokens:")} ${i.tokens.thoughtsTokens}
75
+ `),i.tokens.reasoningTokens!==void 0&&(o+=`${e.white("Reasoning Tokens:")} ${i.tokens.reasoningTokens}
76
+ `),i.tokens.cacheCreationTokens!==void 0&&(o+=`${e.white("Cache Creation Tokens:")} ${i.tokens.cacheCreationTokens}
77
+ `),i.tokens.cacheReadTokens!==void 0&&(o+=`${e.white("Cache Read Tokens:")} ${i.tokens.cacheReadTokens}
78
+ `),i.tokens.serviceTier!==void 0&&(o+=`${e.white("Service Tier:")} ${i.tokens.serviceTier}
79
+ `)),o+=t;break}case"ChatResponseCitations":{o=`${e.blueBright(`
80
+ [ CHAT RESPONSE CITATIONS ]`)}
81
+ `,r.value.forEach(i=>{o+=`${e.white("- ")}${e.cyan(i.title||i.url)}
82
+ `,i.description&&(o+=` ${e.gray(i.description)}
83
+ `)}),o+=t;break}default:o=e.gray(JSON.stringify(r,null,2))}s(o)}},Ss=Wr(),Os=(s=ws)=>{let e="\u2500".repeat(60);return t=>{let n=t,r="";switch(n.name){case"ChatRequestChatPrompt":r=`
68
84
  [ CHAT REQUEST Step ${n.step} ]
69
85
  ${e}
70
86
  `,n.value.forEach((o,i)=>{r+=vs(o),i<n.value.length-1&&(r+=`
@@ -106,8 +122,26 @@ ${e}
106
122
  ${e}
107
123
  `,n.value.forEach((o,i)=>{r+=`Embedding ${i+1}: [${o.sample.join(", ")}${o.truncated?", ...":""}] (length: ${o.length})`,i<n.value.length-1&&(r+=`
108
124
  ${e}
109
- `)});break;default:r=JSON.stringify(n,null,2)}s(r)}};var D={LLM_SYSTEM:"gen_ai.system",LLM_OPERATION_NAME:"gen_ai.operation.name",LLM_REQUEST_MODEL:"gen_ai.request.model",LLM_REQUEST_MAX_TOKENS:"gen_ai.request.max_tokens",LLM_REQUEST_TEMPERATURE:"gen_ai.request.temperature",LLM_REQUEST_TOP_K:"gen_ai.request.top_k",LLM_REQUEST_FREQUENCY_PENALTY:"gen_ai.request.frequency_penalty",LLM_REQUEST_PRESENCE_PENALTY:"gen_ai.request.presence_penalty",LLM_REQUEST_STOP_SEQUENCES:"gen_ai.request.stop_sequences",LLM_REQUEST_LLM_IS_STREAMING:"gen_ai.request.llm_is_streaming",LLM_REQUEST_TOP_P:"gen_ai.request.top_p",LLM_USAGE_INPUT_TOKENS:"gen_ai.usage.input_tokens",LLM_USAGE_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",LLM_USAGE_TOTAL_TOKENS:"gen_ai.usage.total_tokens",LLM_USAGE_THOUGHTS_TOKENS:"gen_ai.usage.thoughts_tokens",DB_SYSTEM:"db.system",DB_TABLE:"db.table",DB_NAMESPACE:"db.namespace",DB_ID:"db.id",DB_QUERY_TEXT:"db.query.text",DB_VECTOR:"db.vector",DB_OPERATION_NAME:"db.operation.name",DB_VECTOR_QUERY_TOP_K:"db.vector.query.top_k",DB_QUERY_EMBEDDINGS:"db.query.embeddings",DB_QUERY_RESULT:"db.query.result",DB_QUERY_EMBEDDINGS_VECTOR:"db.query.embeddings.vector",DB_QUERY_RESULT_ID:"db.query.result.id",DB_QUERY_RESULT_SCORE:"db.query.result.score",DB_QUERY_RESULT_DISTANCE:"db.query.result.distance",DB_QUERY_RESULT_METADATA:"db.query.result.metadata",DB_QUERY_RESULT_VECTOR:"db.query.result.vector",DB_QUERY_RESULT_DOCUMENT:"db.query.result.document"},de={GEN_AI_USER_MESSAGE:"gen_ai.user.message",GEN_AI_SYSTEM_MESSAGE:"gen_ai.system.message",GEN_AI_ASSISTANT_MESSAGE:"gen_ai.assistant.message",GEN_AI_TOOL_MESSAGE:"gen_ai.tool.message",GEN_AI_CHOICE:"gen_ai.choice",GEN_AI_USAGE:"gen_ai.usage"},Jr=(r=>(r.COMPLETION="completion",r.CHAT="chat",r.RERANK="rerank",r.UNKNOWN="unknown",r))(Jr||{}),Yr=(o=>(o.WORKFLOW="workflow",o.TASK="task",o.AGENT="agent",o.TOOL="tool",o.UNKNOWN="unknown",o))(Yr||{});var Qr=class{buffer;doneCallback;transformFn;constructor(e,t){this.transformFn=e,this.doneCallback=t,this.buffer=t?[]:void 0}async transform(e,t){let n=this.transformFn(e);n&&(t.enqueue(n),this.buffer?.push(n))}async flush(e){await this.doneCallback?.(this.buffer??[]),e.terminate()}},vn=class extends TransformStream{constructor(e,t){super(new Qr(e,t))}};function Sn(s,e){for(let t of e){let n=s.find(r=>r.id===t.id);n?(typeof t.function.name=="string"&&t.function.name.length>0&&(n.function.name+=t.function.name),typeof t.function.params=="string"&&t.function.params.length>0&&(n.function.params+=t.function.params),typeof t.function.params=="object"&&(n.function.params=t.function.params)):s.push(t)}}var Ms=(s,e,t,n)=>{let r=n?s.filter(i=>i.role!=="system"):[...s];t({name:"ChatRequestChatPrompt",step:e,value:r})};var ks=(s,e)=>{if(!s.results)return;let t={name:"ChatResponseResults",value:s.results};e(t)},Es=(s,e,t)=>{t({name:"ChatResponseStreamingResult",index:e,value:s})};function Ps(s,e){let t=new Map;for(let n of s)for(let r of n.results){if(!r)continue;let o=t.get(r.index);o?(r.content&&(o.content=(o.content??"")+r.content),r.thought&&(o.thought=(o.thought??"")+r.thought),r.finishReason&&(o.finishReason=r.finishReason),r.functionCalls&&(o.functionCalls?Sn(o.functionCalls,structuredClone(r.functionCalls)):o.functionCalls=structuredClone(r.functionCalls))):(o=structuredClone(r),t.set(r.index,o))}for(let n of t.values()){let r={name:"ChatResponseStreamingDoneResult",index:n.index,value:n};e(r)}}var _s=(s,e)=>{e({name:"FunctionResults",value:s})},Xr=(s,e,t,n)=>{n({name:"FunctionError",index:e,fixingInstructions:t,error:s})},Fs=(s,e,t,n)=>{n({name:"ValidationError",index:e,fixingInstructions:t,error:s})},Ds=(s,e,t,n)=>{n({name:"AssertionError",index:e,fixingInstructions:t,error:s})},$s=(s,e,t)=>{t({name:"RefusalError",index:e,error:s})};var Ns=(s,e,t)=>{t({name:"EmbedRequest",embedModel:e,value:s})},Ls=(s,e)=>{let t=s.slice(0,3).map(r=>({length:r.length,sample:r.slice(0,5),truncated:r.length>5})),n={name:"EmbedResponse",totalEmbeddings:s.length,value:t};e(n)},Gs=(s,e,t,n)=>{n({name:"ResultPickerUsed",sampleCount:s,selectedIndex:e,latency:t})};var Zr=s=>{let e={};for(let[t,n]of Object.entries(s))if(n!=null){let r=String(n);e[t]=r.length>100?r.substring(0,100):r}return e},On,Us=s=>{if(On)return On;if(s)return On=hl(s),On};var hl=s=>({latencyHistogram:s.createHistogram("ax_llm_request_duration_ms",{description:"Duration of LLM requests in milliseconds",unit:"ms"}),errorCounter:s.createCounter("ax_llm_errors_total",{description:"Total number of LLM request errors"}),requestCounter:s.createCounter("ax_llm_requests_total",{description:"Total number of LLM requests"}),tokenCounter:s.createCounter("ax_llm_tokens_total",{description:"Total number of LLM tokens consumed"}),inputTokenCounter:s.createCounter("ax_llm_input_tokens_total",{description:"Total number of input/prompt tokens consumed"}),outputTokenCounter:s.createCounter("ax_llm_output_tokens_total",{description:"Total number of output/completion tokens generated"}),errorRateGauge:s.createGauge("ax_llm_error_rate",{description:"Current error rate as a percentage (0-100)"}),meanLatencyGauge:s.createGauge("ax_llm_mean_latency_ms",{description:"Mean latency of LLM requests in milliseconds",unit:"ms"}),p95LatencyGauge:s.createGauge("ax_llm_p95_latency_ms",{description:"95th percentile latency of LLM requests in milliseconds",unit:"ms"}),p99LatencyGauge:s.createGauge("ax_llm_p99_latency_ms",{description:"99th percentile latency of LLM requests in milliseconds",unit:"ms"}),streamingRequestsCounter:s.createCounter("ax_llm_streaming_requests_total",{description:"Total number of streaming LLM requests"}),functionCallsCounter:s.createCounter("ax_llm_function_calls_total",{description:"Total number of function/tool calls made"}),functionCallLatencyHistogram:s.createHistogram("ax_llm_function_call_latency_ms",{description:"Latency of function calls in milliseconds",unit:"ms"}),requestSizeHistogram:s.createHistogram("ax_llm_request_size_bytes",{description:"Size of LLM request payloads in bytes",unit:"By"}),responseSizeHistogram:s.createHistogram("ax_llm_response_size_bytes",{description:"Size of LLM response payloads in bytes",unit:"By"}),temperatureGauge:s.createGauge("ax_llm_temperature_gauge",{description:"Temperature setting used for LLM requests"}),maxTokensGauge:s.createGauge("ax_llm_max_tokens_gauge",{description:"Maximum tokens setting used for LLM requests"}),estimatedCostCounter:s.createCounter("ax_llm_estimated_cost_total",{description:"Estimated cost of LLM requests in USD",unit:"$"}),promptLengthHistogram:s.createHistogram("ax_llm_prompt_length_chars",{description:"Length of prompts in characters"}),contextWindowUsageGauge:s.createGauge("ax_llm_context_window_usage_ratio",{description:"Context window utilization ratio (0-1)"}),timeoutsCounter:s.createCounter("ax_llm_timeouts_total",{description:"Total number of timed out LLM requests"}),abortsCounter:s.createCounter("ax_llm_aborts_total",{description:"Total number of aborted LLM requests"}),thinkingBudgetUsageCounter:s.createCounter("ax_llm_thinking_budget_usage_total",{description:"Total thinking budget tokens used"}),multimodalRequestsCounter:s.createCounter("ax_llm_multimodal_requests_total",{description:"Total number of multimodal requests (with images/audio)"})}),Bs=(s,e,t,n,r)=>{try{if(s.latencyHistogram){let o=Zr({operation:e,ai_service:n,...r?{model:r}:{}});s.latencyHistogram.record(t,o)}}catch(o){console.warn("Failed to record latency metric:",o)}},qs=(s,e,t,n,r,o,i)=>{let a={operation:e,ai_service:o,...i?{model:i}:{}};s.meanLatencyGauge&&s.meanLatencyGauge.record(t,a),s.p95LatencyGauge&&s.p95LatencyGauge.record(n,a),s.p99LatencyGauge&&s.p99LatencyGauge.record(r,a)},zs=(s,e,t,n)=>{try{if(s.errorCounter){let r=Zr({operation:e,ai_service:t,...n?{model:n}:{}});s.errorCounter.add(1,r)}}catch(r){console.warn("Failed to record error metric:",r)}},js=(s,e,t,n,r)=>{s.errorRateGauge&&s.errorRateGauge.record(t*100,{operation:e,ai_service:n,...r?{model:r}:{}})},Hs=(s,e,t,n)=>{s.requestCounter&&s.requestCounter.add(1,{operation:e,ai_service:t,...n?{model:n}:{}})},Ft=(s,e,t,n,r)=>{try{let o=Zr({ai_service:n,...r?{model:r}:{}});s.tokenCounter&&s.tokenCounter.add(t,{token_type:e,...o}),e==="input"&&s.inputTokenCounter&&s.inputTokenCounter.add(t,o),e==="output"&&s.outputTokenCounter&&s.outputTokenCounter.add(t,o)}catch(o){console.warn("Failed to record token metric:",o)}},Ks=(s,e,t,n,r)=>{t&&s.streamingRequestsCounter&&s.streamingRequestsCounter.add(1,{operation:e,ai_service:n,...r?{model:r}:{}})},Vs=(s,e,t,n,r)=>{let o={function_name:e,...n?{ai_service:n}:{},...r?{model:r}:{}};s.functionCallsCounter&&s.functionCallsCounter.add(1,o),t&&s.functionCallLatencyHistogram&&s.functionCallLatencyHistogram.record(t,o)},eo=(s,e,t,n,r)=>{s.requestSizeHistogram&&s.requestSizeHistogram.record(t,{operation:e,ai_service:n,...r?{model:r}:{}})},to=(s,e,t,n,r)=>{s.responseSizeHistogram&&s.responseSizeHistogram.record(t,{operation:e,ai_service:n,...r?{model:r}:{}})},Ws=(s,e,t,n,r)=>{let o={...n?{ai_service:n}:{},...r?{model:r}:{}};e!==void 0&&s.temperatureGauge&&s.temperatureGauge.record(e,o),t!==void 0&&s.maxTokensGauge&&s.maxTokensGauge.record(t,o)},no=(s,e,t,n,r)=>{s.estimatedCostCounter&&s.estimatedCostCounter.add(t,{operation:e,ai_service:n,...r?{model:r}:{}})},Js=(s,e,t,n)=>{s.promptLengthHistogram&&s.promptLengthHistogram.record(e,{ai_service:t,...n?{model:n}:{}})},Ys=(s,e,t,n)=>{s.contextWindowUsageGauge&&s.contextWindowUsageGauge.record(e,{ai_service:t,...n?{model:n}:{}})},Qs=(s,e,t,n)=>{s.timeoutsCounter&&s.timeoutsCounter.add(1,{operation:e,ai_service:t,...n?{model:n}:{}})},Xs=(s,e,t,n)=>{s.abortsCounter&&s.abortsCounter.add(1,{operation:e,ai_service:t,...n?{model:n}:{}})},Zs=(s,e,t,n)=>{s.thinkingBudgetUsageCounter&&s.thinkingBudgetUsageCounter.add(e,{ai_service:t,...n?{model:n}:{}})},ei=(s,e,t,n,r)=>{(e||t)&&s.multimodalRequestsCounter&&s.multimodalRequestsCounter.add(1,{ai_service:n,has_images:e.toString(),has_audio:t.toString(),...r?{model:r}:{}})};function ti(s){try{return JSON.stringify(s,null,2)}catch{return String(s)}}function me(s,e={}){let t=[s];throw e.fieldPath!==void 0&&t.push(`Field: ${e.fieldPath}`),e.value!==void 0&&t.push(`Value: ${ti(e.value)}`),e.note&&t.push(`Note: ${e.note}`),e.item!==void 0&&t.push(`Chat item: ${ti(e.item)}`),new Error(t.join(`
110
- `))}function We(s){let e=n=>JSON.stringify(n,null,2);if(!s)throw new Error(`Chat request message item cannot be null or undefined, received: ${e(s)}`);let t=typeof s=="object"&&s!==null&&"role"in s&&typeof s.role=="string"?s.role:void 0;if(!t)throw new Error(`Chat request message must have a role, received: ${e(t)}`);switch(t){case"system":{let n=typeof s=="object"&&s!==null&&"content"in s&&typeof s.content=="string"?s.content:void 0;if(!n||n.trim()==="")throw new Error(`System message content cannot be empty or whitespace-only, received: ${e(n)}`);break}case"user":{let n=typeof s=="object"&&s!==null&&"content"in s?s.content:void 0;if(n===void 0)throw new Error(`User message content cannot be undefined, received: ${e(n)}`);if(typeof n=="string"){if(n.trim()==="")throw new Error(`User message content cannot be empty or whitespace-only, received: ${e(n)}`)}else if(Array.isArray(n)){if(n.length===0)throw new Error(`User message content array cannot be empty, received: ${e(n)}`);for(let r=0;r<n.length;r++){let o=n[r];if(!o||typeof o!="object")throw new Error(`User message content item at index ${r} must be an object, received: ${e(o)}`);let i=typeof o=="object"&&o!==null&&"type"in o&&typeof o.type=="string"?o.type:void 0;if(!i)throw new Error(`User message content item at index ${r} must have a type, received: ${e(i)}`);switch(i){case"text":{let a="text"in o&&typeof o.text=="string"?o.text:void 0;if(!a||a.trim()==="")throw new Error(`User message text content at index ${r} cannot be empty or whitespace-only, received: ${e(a)}`);break}case"image":{let a="image"in o&&typeof o.image=="string"?o.image:void 0,l="mimeType"in o&&typeof o.mimeType=="string"?o.mimeType:void 0;if(!a||a.trim()==="")throw new Error(`User message image content at index ${r} cannot be empty, received: ${e(a)}`);if(!l||l.trim()==="")throw new Error(`User message image content at index ${r} must have a mimeType, received: ${e(l)}`);break}case"audio":{let a="data"in o&&typeof o.data=="string"?o.data:void 0;if(!a||a.trim()==="")throw new Error(`User message audio content at index ${r} cannot be empty, received: ${e(a)}`);break}case"file":{let a="fileUri"in o&&typeof o.fileUri=="string",l="data"in o&&typeof o.data=="string";if(!a&&!l)throw new Error(`User message file content at index ${r} must have either 'data' or 'fileUri', received: ${e(o)}`);if(a&&l)throw new Error(`User message file content at index ${r} cannot have both 'data' and 'fileUri', received: ${e(o)}`);if(a){let u=o.fileUri;if(!u||u.trim()==="")throw new Error(`User message file content at index ${r} fileUri cannot be empty, received: ${e(u)}`)}if(l){let u=o.data;if(!u||u.trim()==="")throw new Error(`User message file content at index ${r} data cannot be empty, received: ${e(u)}`)}let p="mimeType"in o&&typeof o.mimeType=="string"?o.mimeType:null;if(!p||p.trim()==="")throw new Error(`User message file content at index ${r} must have a mimeType, received: ${e(p)}`);break}case"url":{let a="url"in o&&typeof o.url=="string"?o.url:void 0;if(!a||a.trim()==="")throw new Error(`User message url content at index ${r} cannot be empty, received: ${e(a)}`);break}default:throw new Error(`User message content item at index ${r} has unsupported type: ${e(i)}`)}}}else throw new Error(`User message content must be a string or array of content objects, received: ${e(n)}`);break}case"assistant":{let n=typeof s=="object"&&s!==null&&"content"in s?s.content:void 0,r=typeof s=="object"&&s!==null&&"functionCalls"in s?s.functionCalls:void 0,o=typeof n=="string"&&n.trim()!=="",i=Array.isArray(r)&&r.length>0;if(!o&&!i&&me("Assistant message must include non-empty content or at least one function call",{fieldPath:"content | functionCalls",value:{content:n,functionCalls:r},item:s}),n!==void 0&&typeof n!="string"&&me("Assistant message content must be a string",{fieldPath:"content",value:n,item:s}),r!==void 0&&!Array.isArray(r)&&me("Assistant message functionCalls must be an array when provided",{fieldPath:"functionCalls",value:r,item:s}),Array.isArray(r))for(let a=0;a<r.length;a++){let l=r[a];if((!l||typeof l!="object")&&me("functionCalls entry must be an object",{fieldPath:`functionCalls[${a}]`,value:l,item:s}),(!("id"in l)||typeof l.id!="string"||l.id.trim()==="")&&me("functionCalls entry must include a non-empty string id",{fieldPath:`functionCalls[${a}].id`,value:l.id,item:s}),(!("type"in l)||l.type!=="function")&&me("functionCalls entry must have type 'function'",{fieldPath:`functionCalls[${a}].type`,value:l.type,item:s}),!("function"in l)||!l.function)me("functionCalls entry must include a function object",{fieldPath:`functionCalls[${a}].function`,value:l.function,item:s});else{let p=l.function;(!("name"in p)||typeof p.name!="string"||p.name.trim()==="")&&me("functionCalls entry must include a non-empty function name",{fieldPath:`functionCalls[${a}].function.name`,value:p?.name,item:s}),p.params!==void 0&&typeof p.params!="string"&&typeof p.params!="object"&&me("functionCalls entry params must be a string or object when provided",{fieldPath:`functionCalls[${a}].function.params`,value:p.params,item:s})}}if(s.name!==void 0){let a=s.name;(typeof a!="string"||a.trim()==="")&&me("Assistant message name must be a non-empty string when provided",{fieldPath:"name",value:a,item:s})}break}case"function":{let n=typeof s=="object"&&s!==null&&"functionId"in s&&typeof s.functionId=="string"?s.functionId:void 0,r=typeof s=="object"&&s!==null&&"result"in s?s.result:void 0;if(!n||n.trim()==="")throw new Error(`Function message must have a non-empty functionId, received: ${e(n)}`);if(r==null)throw new Error(`Function message must have a result, received: ${e(r)}`);if(typeof r!="string")throw new Error(`Function message result must be a string, received: ${e(r)}`);s.isError!==void 0&&typeof s.isError!="boolean"&&me("Function message isError must be a boolean when provided",{fieldPath:"isError",value:s.isError,item:s});break}default:throw new Error(`Unsupported message role: ${e(t)}`)}}function Mn(s){let e=n=>JSON.stringify(n,null,2),t=Array.isArray(s)?s:[s];if(t.length===0)throw new Error(`Chat response results cannot be empty, received: ${e(t)}`);for(let n=0;n<t.length;n++){let r=t[n];if(!r)throw new Error(`Chat response result at index ${n} cannot be null or undefined, received: ${e(r)}`);if(typeof r.index!="number")throw new Error(`Chat response result at index ${n} must have a numeric index, received: ${e(r.index)}`);if(r.index<0)throw new Error(`Chat response result at index ${n} must have a non-negative index, received: ${e(r.index)}`);if(!r.content&&!r.thought&&!r.functionCalls&&!r.finishReason)throw new Error(`Chat response result at index ${n} must have at least one of: content, thought, functionCalls, or finishReason, received: ${e({content:r.content,thought:r.thought,functionCalls:r.functionCalls,finishReason:r.finishReason})}`);if(r.content!==void 0&&typeof r.content!="string")throw new Error(`Chat response result content at index ${n} must be a string, received: ${e(r.content)}`);if(r.thought!==void 0&&typeof r.thought!="string")throw new Error(`Chat response result thought at index ${n} must be a string, received: ${e(r.thought)}`);if(r.name!==void 0){if(typeof r.name!="string")throw new Error(`Chat response result name at index ${n} must be a string, received: ${e(r.name)}`);if(r.name.trim()==="")throw new Error(`Chat response result name at index ${n} cannot be empty or whitespace-only, received: ${e(r.name)}`)}if(r.annotations!==void 0){if(!Array.isArray(r.annotations))throw new Error(`Chat response result annotations at index ${n} must be an array, received: ${e(r.annotations)}`);for(let o=0;o<r.annotations.length;o++){let i=r.annotations[o];if(!i||typeof i!="object")throw new Error(`Chat response result annotation at index ${n}[${o}] must be an object, received: ${e(i)}`);if(i.type!=="url_citation")throw new Error(`Chat response result annotation at index ${n}[${o}] must have type 'url_citation', received: ${e(i.type)}`);if(!i.url_citation||typeof i.url_citation!="object")throw new Error(`Chat response result annotation at index ${n}[${o}] must have a valid url_citation object, received: ${e(i.url_citation)}`);if(typeof i.url_citation.url!="string")throw new Error(`Chat response result annotation at index ${n}[${o}] url_citation.url must be a string, received: ${e(i.url_citation.url)}`)}}if(r.id!==void 0){if(typeof r.id!="string")throw new Error(`Chat response result id at index ${n} must be a string, received: ${e(r.id)}`);if(r.id.trim()==="")throw new Error(`Chat response result id at index ${n} cannot be empty or whitespace-only, received: ${e(r.id)}`)}if(r.functionCalls!==void 0){if(!Array.isArray(r.functionCalls))throw new Error(`Chat response result functionCalls at index ${n} must be an array, received: ${e(r.functionCalls)}`);for(let o=0;o<r.functionCalls.length;o++){let i=r.functionCalls[o];if(!i)throw new Error(`Function call at index ${o} in result ${n} cannot be null or undefined, received: ${e(i)}`);if(!i.id||typeof i.id!="string"||i.id.trim()==="")throw new Error(`Function call at index ${o} in result ${n} must have a non-empty string id, received: ${e(i.id)}`);if(i.type!=="function")throw new Error(`Function call at index ${o} in result ${n} must have type 'function', received: ${e(i.type)}`);if(!i.function)throw new Error(`Function call at index ${o} in result ${n} must have a function object, received: ${e(i.function)}`);if(!i.function.name||typeof i.function.name!="string"||i.function.name.trim()==="")throw new Error(`Function call at index ${o} in result ${n} must have a non-empty function name, received: ${e(i.function.name)}`);if(i.function.params!==void 0&&typeof i.function.params!="string"&&typeof i.function.params!="object")throw new Error(`Function call params at index ${o} in result ${n} must be a string or object, received: ${e(i.function.params)}`)}}if(r.finishReason!==void 0){let o=["stop","length","function_call","content_filter","error"];if(!o.includes(r.finishReason))throw new Error(`Chat response result finishReason at index ${n} must be one of: ${o.join(", ")}, received: ${e(r.finishReason)}`)}}}var L=()=>structuredClone({temperature:0}),W=()=>structuredClone({temperature:.4,frequencyPenalty:.2}),H=class{constructor(e,{name:t,apiURL:n,headers:r,modelInfo:o,defaults:i,options:a={},supportFor:l,models:p}){this.aiImpl=e;this.name=t,this.apiURL=n||"",this.headers=r,this.supportFor=l,this.tracer=a.tracer??U.tracer,this.meter=a.meter??U.meter,this.modelInfo=o,this.models=p,this.id=te();let u=this.getModel(i.model)??i.model,c=this.getEmbedModel(i.embedModel)??i.embedModel;if(this.defaults={model:u,embedModel:c},!i.model||typeof i.model!="string"||i.model==="")throw new Error("No model defined");this.setOptions(a),p&&Al(p)}debug=!1;rt;fetch;tracer;meter;timeout;excludeContentFromTrace;models;abortSignal;logger=U.logger??Ss;corsProxy;modelInfo;modelUsage;embedModelUsage;defaults;lastUsedModelConfig;lastUsedChatModel;lastUsedEmbedModel;apiURL;name;id;headers;supportFor;metrics={latency:{chat:{mean:0,p95:0,p99:0,samples:[]},embed:{mean:0,p95:0,p99:0,samples:[]}},errors:{chat:{count:0,rate:0,total:0},embed:{count:0,rate:0,total:0}}};getMetricsInstruments(){return Us(this.meter)}setName(e){this.name=e}getId(){return this.id}setAPIURL(e){this.apiURL=e}setHeaders(e){this.headers=e}setOptions(e){this.debug=e.debug??!1,this.rt=e.rateLimiter,this.fetch=e.fetch,this.timeout=e.timeout,this.tracer=e.tracer??U.tracer,this.meter=e.meter??U.meter,this.excludeContentFromTrace=e.excludeContentFromTrace,this.abortSignal=e.abortSignal,this.logger=e.logger??U.logger??this.logger,this.corsProxy=e.corsProxy}getOptions(){return{debug:this.debug,rateLimiter:this.rt,fetch:this.fetch,tracer:this.tracer,meter:this.meter,timeout:this.timeout,excludeContentFromTrace:this.excludeContentFromTrace,abortSignal:this.abortSignal,logger:this.logger,corsProxy:this.corsProxy}}getLogger(){return this.logger}getModelList(){let e=[];for(let t of this.models??[])t.isInternal||("model"in t&&t.model&&e.push({key:t.key,description:t.description,model:t.model}),"embedModel"in t&&t.embedModel&&e.push({key:t.key,description:t.description,embedModel:t.embedModel}));return e}getName(){return this.name}getFeatures(e){return typeof this.supportFor=="function"?this.supportFor(e??this.defaults.model):this.supportFor}getLastUsedChatModel(){return this.lastUsedChatModel}getLastUsedEmbedModel(){return this.lastUsedEmbedModel}getLastUsedModelConfig(){return this.lastUsedModelConfig}calculatePercentile(e,t){if(e.length===0)return 0;let n=[...e].sort((o,i)=>o-i),r=Math.ceil(t/100*n.length)-1;return n[r]??0}updateLatencyMetrics(e,t){let n=this.metrics.latency[e];n.samples.push(t),n.samples.length>1e3&&n.samples.shift(),n.mean=n.samples.reduce((o,i)=>o+i,0)/n.samples.length,n.p95=this.calculatePercentile(n.samples,95),n.p99=this.calculatePercentile(n.samples,99);let r=this.getMetricsInstruments();if(r){let o=e==="chat"?this.lastUsedChatModel:this.lastUsedEmbedModel;Bs(r,e,t,this.name,o),qs(r,e,n.mean,n.p95,n.p99,this.name,o)}}updateErrorMetrics(e,t){let n=this.metrics.errors[e];n.total++,t&&n.count++,n.rate=n.count/n.total;let r=this.getMetricsInstruments();if(r){let o=e==="chat"?this.lastUsedChatModel:this.lastUsedEmbedModel;Hs(r,e,this.name,o),t&&zs(r,e,this.name,o),js(r,e,n.rate,this.name,o)}}recordTokenUsage(e){let t=this.getMetricsInstruments();if(t&&e?.tokens){let{promptTokens:n,completionTokens:r,totalTokens:o,thoughtsTokens:i}=e.tokens;n&&Ft(t,"input",n,this.name,e.model),r&&Ft(t,"output",r,this.name,e.model),o&&Ft(t,"total",o,this.name,e.model),i&&Ft(t,"thoughts",i,this.name,e.model)}}calculateRequestSize(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}calculateResponseSize(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}detectMultimodalContent(e){let t=!1,n=!1;if(e.chatPrompt&&Array.isArray(e.chatPrompt)){for(let r of e.chatPrompt)if(r.role==="user"&&Array.isArray(r.content))for(let o of r.content)o.type==="image"?t=!0:o.type==="audio"&&(n=!0)}return{hasImages:t,hasAudio:n}}calculatePromptLength(e){let t=0;if(e.chatPrompt&&Array.isArray(e.chatPrompt))for(let n of e.chatPrompt)if(n.role==="system"||n.role==="assistant")n.content&&(t+=n.content.length);else if(n.role==="user"){if(typeof n.content=="string")t+=n.content.length;else if(Array.isArray(n.content))for(let r of n.content)r.type==="text"&&(t+=r.text.length)}else n.role==="function"&&n.result&&(t+=n.result.length);return t}calculateContextWindowUsage(e,t){if(!t?.tokens?.promptTokens)return 0;let n=this.modelInfo.find(r=>r.name===e);return n?.contextWindow?t.tokens.promptTokens/n.contextWindow:0}estimateCost(e,t){if(!t?.tokens)return 0;let n=this.modelInfo.find(l=>l.name===e);if(!n||!n.promptTokenCostPer1M&&!n.completionTokenCostPer1M)return 0;let{promptTokens:r=0,completionTokens:o=0}=t.tokens,i=n.promptTokenCostPer1M||0,a=n.completionTokenCostPer1M||0;return r*i/1e6+o*a/1e6}estimateCostByName(e,t){if(!t?.tokens)return 0;let n=this.modelInfo.find(l=>l.name===e);if(!n||!n.promptTokenCostPer1M&&!n.completionTokenCostPer1M)return 0;let{promptTokens:r=0,completionTokens:o=0}=t.tokens,i=n.promptTokenCostPer1M||0,a=n.completionTokenCostPer1M||0;return r*i/1e6+o*a/1e6}recordFunctionCallMetrics(e,t){let n=this.getMetricsInstruments();if(!(!n||!e))for(let r of e)r&&typeof r=="object"&&"function"in r&&r.function&&typeof r.function=="object"&&"name"in r.function&&Vs(n,r.function.name,void 0,this.name,t)}recordTimeoutMetric(e){let t=this.getMetricsInstruments();if(t){let n=e==="chat"?this.lastUsedChatModel:this.lastUsedEmbedModel;Qs(t,e,this.name,n)}}recordAbortMetric(e){let t=this.getMetricsInstruments();if(t){let n=e==="chat"?this.lastUsedChatModel:this.lastUsedEmbedModel;Xs(t,e,this.name,n)}}recordChatMetrics(e,t,n){let r=this.getMetricsInstruments();if(!r)return;let o=this.lastUsedChatModel,i=this.lastUsedModelConfig,a=i?.stream??!1;Ks(r,"chat",a,this.name,o);let{hasImages:l,hasAudio:p}=this.detectMultimodalContent(e);ei(r,l,p,this.name,o);let u=this.calculatePromptLength(e);Js(r,u,this.name,o),Ws(r,i?.temperature,i?.maxTokens,this.name,o),t?.thinkingTokenBudget&&this.modelUsage?.tokens?.thoughtsTokens&&Zs(r,this.modelUsage.tokens.thoughtsTokens,this.name,o);let c=this.calculateRequestSize(e);if(eo(r,"chat",c,this.name,o),n&&!a){let d=n,m=this.calculateResponseSize(d);if(to(r,"chat",m,this.name,o),d.results)for(let f of d.results)f.functionCalls&&this.recordFunctionCallMetrics(f.functionCalls,this.lastUsedChatModel);let g=this.calculateContextWindowUsage(this.lastUsedChatModel,d.modelUsage);g>0&&Ys(r,g,this.name,o);let h=this.estimateCost(this.lastUsedChatModel,d.modelUsage);h>0&&no(r,"chat",h,this.name,o)}}recordEmbedMetrics(e,t){let n=this.getMetricsInstruments();if(!n)return;let r=this.lastUsedEmbedModel,o=this.calculateRequestSize(e);eo(n,"embed",o,this.name,r);let i=this.calculateResponseSize(t);to(n,"embed",i,this.name,r);let a=this.estimateCostByName(r,t.modelUsage);a>0&&no(n,"embed",a,this.name,r)}getMetrics(){return structuredClone(this.metrics)}async chat(e,t){let n=performance.now(),r=!1,o,i=this.getModelByKey(e.model),a={...i?{thinkingTokenBudget:i.thinkingTokenBudget,showThoughts:i.showThoughts,stream:i.stream,debug:i.debug,useExpensiveModel:i.useExpensiveModel}:void 0,...t};try{return o=await this._chat1(e,a),o}catch(l){throw r=!0,l instanceof Error&&(l.message.includes("timeout")||l.name==="TimeoutError"?this.recordTimeoutMetric("chat"):(l.message.includes("abort")||l.name==="AbortError")&&this.recordAbortMetric("chat")),l}finally{let l=performance.now()-n;this.updateLatencyMetrics("chat",l),this.updateErrorMetrics("chat",r),r||this.recordChatMetrics(e,a,o)}}async _chat1(e,t){let n=this.getModel(e.model)??e.model??this.defaults.model;if(Array.isArray(e.chatPrompt))for(let p of e.chatPrompt)We(p);let r=this.getModelByKey(e.model),o={...this.aiImpl.getModelConfig(),...r?r.modelConfig:void 0,...e.modelConfig},i=this.modelInfo.find(p=>p.name===n);if(i?.notSupported?.temperature&&"temperature"in o&&delete o.temperature,i?.notSupported?.topP&&"topP"in o&&delete o.topP,t?.thinkingTokenBudget&&!this.getFeatures(n).hasThinkingBudget)throw new Error(`Model ${n} does not support thinkingTokenBudget.`);if(t?.showThoughts&&!this.getFeatures(n).hasShowThoughts)throw new Error(`Model ${n} does not support showThoughts.`);if(this.modelInfo.find(p=>p.name===n)?.isExpensive&&t?.useExpensiveModel!=="yes")throw new Error(`Model ${n} is marked as expensive and requires explicit confirmation. Set useExpensiveModel: "yes" to proceed.`);return o.stream=(t?.stream!==void 0?t.stream:o.stream)??!0,this.getFeatures(n).streaming||(o.stream=!1),this.tracer?await this.tracer.startActiveSpan("AI Chat Request",{kind:oe.SERVER,attributes:{[D.LLM_SYSTEM]:this.name,[D.LLM_OPERATION_NAME]:"chat",[D.LLM_REQUEST_MODEL]:n,[D.LLM_REQUEST_MAX_TOKENS]:o.maxTokens??"Not set",[D.LLM_REQUEST_TEMPERATURE]:o.temperature,[D.LLM_REQUEST_TOP_P]:o.topP??"Not set",[D.LLM_REQUEST_TOP_K]:o.topK??"Not set",[D.LLM_REQUEST_FREQUENCY_PENALTY]:o.frequencyPenalty??"Not set",[D.LLM_REQUEST_PRESENCE_PENALTY]:o.presencePenalty??"Not set",[D.LLM_REQUEST_STOP_SEQUENCES]:o.stopSequences?.join(", ")??"Not set",[D.LLM_REQUEST_LLM_IS_STREAMING]:o.stream??"Not set"}},t?.traceContext??Oe.active(),async p=>await this._chat2(n,o,e,t,p)):await this._chat2(n,o,e,t)}cleanupFunctionSchema(e){let t={...e};if(t.parameters){let n={...t.parameters};Array.isArray(n.required)&&n.required.length===0&&delete n.required,n.properties&&Object.keys(n.properties).length===0&&delete n.properties,Object.keys(n).length===0||Object.keys(n).length===1&&n.type==="object"?delete t.parameters:t.parameters=n}return t}async _chat2(e,t,n,r,o){if(!this.aiImpl.createChatReq)throw new Error("createChatReq not implemented");let i=r?.debug??this.debug,a;n.functions&&n.functions.length>0&&(a=n.functions.map(m=>this.cleanupFunctionSchema(m)));let l={...n,model:e,functions:a,modelConfig:t};this.lastUsedChatModel=e,this.lastUsedModelConfig=t;let p=async()=>{let[m,g]=await this.aiImpl.createChatReq(l,r);return o?.isRecording()&&fl(n,o,this.excludeContentFromTrace),await re({name:m.name,url:this.apiURL,localCall:m.localCall,headers:await this.buildHeaders(m.headers),stream:t.stream,timeout:this.timeout,debug:i,fetch:this.fetch,span:o,abortSignal:r?.abortSignal??this.abortSignal,corsProxy:this.corsProxy},g)};i&&Ms(l.chatPrompt,r?.stepIndex??0,r?.logger??this.logger,r?.debugHideSystemPrompt);let u=r?.rateLimiter??this.rt,c=u?await u(p,{modelUsage:this.modelUsage}):await p();if(t.stream){if(!this.aiImpl.createChatStreamResp)throw new Error("createChatStreamResp not implemented");let m=this.aiImpl.createChatStreamResp.bind(this),g=A=>b=>{let C=m(b,A);if(C.sessionId=r?.sessionId,!C.modelUsage){let I=this.aiImpl.getTokenUsage();I&&(C.modelUsage={ai:this.name,model:e,tokens:I})}if(this.modelUsage=C.modelUsage,this.recordTokenUsage(C.modelUsage),o?.isRecording()&&ni(C,o,this.excludeContentFromTrace),i)for(let I of C.results)Es(I,I.index,r?.logger??this.logger);return C},h=async A=>{o?.isRecording()&&o.end(),i&&Ps(A,r?.logger??this.logger)};if(typeof window<"u"){let A=c,b={},C=[],I=r?.abortSignal??this.abortSignal;return new ReadableStream({start:y=>{let T=A.getReader(),S=()=>{try{T.cancel().catch(()=>{})}catch{}try{this.recordAbortMetric("chat")}catch{}try{o?.isRecording()&&o.end()}catch{}try{y.error(new DOMException("Aborted","AbortError"))}catch{y.error(new Error("Aborted"))}};if(I){if(I.aborted){S();return}I.addEventListener("abort",S,{once:!0})}async function M(){try{for(;;){let{done:N,value:G}=await T.read();if(N){h&&await h(C),y.close();break}let O=g(b)(G);O&&(C.push(O),y.enqueue(O))}}catch(N){if(y.error(N),o?.isRecording())try{o.end()}catch{}}finally{if(T.releaseLock(),I)try{I.removeEventListener("abort",S)}catch{}}}M()}})}return c.pipeThrough(new vn(g({}),h))}if(!this.aiImpl.createChatResp)throw new Error("createChatResp not implemented");let d=this.aiImpl.createChatResp(c);if(d.sessionId=r?.sessionId,!d.modelUsage){let m=this.aiImpl.getTokenUsage();m&&(d.modelUsage={ai:this.name,model:e,tokens:m})}return d.modelUsage&&(this.modelUsage=d.modelUsage,this.recordTokenUsage(d.modelUsage)),o?.isRecording()&&(ni(d,o,this.excludeContentFromTrace),o.end()),i&&ks(d,r?.logger??this.logger),d}async embed(e,t){let n=performance.now(),r=!1,o,i=this.getModelByKey(e.embedModel),a={...i?{thinkingTokenBudget:i.thinkingTokenBudget,showThoughts:i.showThoughts,stream:i.stream,debug:i.debug,useExpensiveModel:i.useExpensiveModel}:void 0,...t};try{return o=await this._embed1(e,a),o}catch(l){throw r=!0,l instanceof Error&&(l.message.includes("timeout")||l.name==="TimeoutError"?this.recordTimeoutMetric("embed"):(l.message.includes("abort")||l.name==="AbortError")&&this.recordAbortMetric("embed")),l}finally{let l=performance.now()-n;this.updateLatencyMetrics("embed",l),this.updateErrorMetrics("embed",r),!r&&o&&this.recordEmbedMetrics(e,o)}}async _embed1(e,t){let n=this.getEmbedModel(e.embedModel)??e.embedModel??this.defaults.embedModel;if(!n)throw new Error("No embed model defined");return this.tracer?await this.tracer.startActiveSpan("AI Embed Request",{kind:oe.SERVER,attributes:{[D.LLM_SYSTEM]:this.name,[D.LLM_OPERATION_NAME]:"embeddings",[D.LLM_REQUEST_MODEL]:n}},t?.traceContext??Oe.active(),async r=>await this._embed2(n,e,t,r)):await this._embed2(n,e,t)}async _embed2(e,t,n,r){if(!this.aiImpl.createEmbedReq)throw new Error("createEmbedReq not implemented");if(!this.aiImpl.createEmbedResp)throw new Error("createEmbedResp not implemented");let o=this.aiImpl.createEmbedReq,i=n?.debug??this.debug,a={...t,embedModel:e};this.lastUsedEmbedModel=e,i&&Ns(a.texts??[],e,n?.logger??this.logger);let l=async()=>{let[d,m]=await o(a);return await re({name:d.name,url:this.apiURL,localCall:d.localCall,headers:await this.buildHeaders(d.headers),debug:i,fetch:this.fetch,timeout:this.timeout,span:r,abortSignal:n?.abortSignal??this.abortSignal,corsProxy:this.corsProxy},m)},p=n?.rateLimiter??this.rt,u=p?await p(l,{modelUsage:this.embedModelUsage}):await l(),c=this.aiImpl.createEmbedResp?.(u);if(c.sessionId=n?.sessionId,!c.modelUsage){let d=this.aiImpl.getTokenUsage();d&&(c.modelUsage={ai:this.name,model:e,tokens:d})}return this.embedModelUsage=c.modelUsage,this.recordTokenUsage(c.modelUsage),r?.isRecording()&&c.modelUsage?.tokens&&r.addEvent(de.GEN_AI_USAGE,{[D.LLM_USAGE_INPUT_TOKENS]:c.modelUsage.tokens.promptTokens,[D.LLM_USAGE_OUTPUT_TOKENS]:c.modelUsage.tokens.completionTokens??0,[D.LLM_USAGE_TOTAL_TOKENS]:c.modelUsage.tokens.totalTokens}),i&&Ls(c.embeddings,n?.logger??this.logger),r?.end(),c}async buildHeaders(e={}){return{...e,...await this.headers()}}getModelByKey(e){return e?this.models?.find(n=>n.key===e):void 0}getModel(e){let t=this.getModelByKey(e);return t&&"model"in t?t.model:void 0}getEmbedModel(e){let t=this.getModelByKey(e);return t&&"embedModel"in t?t.embedModel:void 0}};function fl(s,e,t){let n=[];if(s.chatPrompt&&Array.isArray(s.chatPrompt)&&s.chatPrompt.length>0)for(let o of s.chatPrompt)switch(o.role){case"system":if(o.content){let i={};t||(i.content=o.content),e.addEvent(de.GEN_AI_SYSTEM_MESSAGE,i)}break;case"user":if(typeof o.content=="string")n.push(o.content);else if(Array.isArray(o.content))for(let i of o.content)i.type==="text"&&n.push(i.text);break;case"assistant":{let i=o.functionCalls?.map(a=>({id:a.id,type:a.type,function:a.function.name,arguments:a.function.params}));if(i&&i.length>0){let a={function_calls:JSON.stringify(i,null,2)};!t&&o.content&&(a.content=o.content),e.addEvent(de.GEN_AI_ASSISTANT_MESSAGE,a)}else if(o.content){let a={};t||(a.content=o.content),e.addEvent(de.GEN_AI_ASSISTANT_MESSAGE,a)}break}case"function":{let i={id:o.functionId};t||(i.content=o.result),e.addEvent(de.GEN_AI_TOOL_MESSAGE,i);break}}let r={};t||(r.content=n.join(`
125
+ `)});break;case"ChatResponseUsage":{r=`
126
+ [ CHAT RESPONSE USAGE ]
127
+ `;let o=n.value;r+=`AI: ${o.ai}
128
+ `,r+=`Model: ${o.model}
129
+ `,o.tokens&&(r+=`Total Tokens: ${o.tokens.totalTokens}
130
+ `,r+=`Prompt Tokens: ${o.tokens.promptTokens}
131
+ `,r+=`Completion Tokens: ${o.tokens.completionTokens}
132
+ `,o.tokens.thoughtsTokens!==void 0&&(r+=`Thoughts Tokens: ${o.tokens.thoughtsTokens}
133
+ `),o.tokens.reasoningTokens!==void 0&&(r+=`Reasoning Tokens: ${o.tokens.reasoningTokens}
134
+ `),o.tokens.cacheCreationTokens!==void 0&&(r+=`Cache Creation Tokens: ${o.tokens.cacheCreationTokens}
135
+ `),o.tokens.cacheReadTokens!==void 0&&(r+=`Cache Read Tokens: ${o.tokens.cacheReadTokens}
136
+ `),o.tokens.serviceTier!==void 0&&(r+=`Service Tier: ${o.tokens.serviceTier}
137
+ `)),r+=`${e}
138
+ `;break}case"ChatResponseCitations":{r=`
139
+ [ CHAT RESPONSE CITATIONS ]
140
+ `,n.value.forEach(o=>{r+=`- ${o.title||o.url}
141
+ `,o.description&&(r+=` ${o.description}
142
+ `)}),r+=`${e}
143
+ `;break}default:r=JSON.stringify(n,null,2)}s(r)}};var D={LLM_SYSTEM:"gen_ai.system",LLM_OPERATION_NAME:"gen_ai.operation.name",LLM_REQUEST_MODEL:"gen_ai.request.model",LLM_REQUEST_MAX_TOKENS:"gen_ai.request.max_tokens",LLM_REQUEST_TEMPERATURE:"gen_ai.request.temperature",LLM_REQUEST_TOP_K:"gen_ai.request.top_k",LLM_REQUEST_FREQUENCY_PENALTY:"gen_ai.request.frequency_penalty",LLM_REQUEST_PRESENCE_PENALTY:"gen_ai.request.presence_penalty",LLM_REQUEST_STOP_SEQUENCES:"gen_ai.request.stop_sequences",LLM_REQUEST_LLM_IS_STREAMING:"gen_ai.request.llm_is_streaming",LLM_REQUEST_TOP_P:"gen_ai.request.top_p",LLM_USAGE_INPUT_TOKENS:"gen_ai.usage.input_tokens",LLM_USAGE_OUTPUT_TOKENS:"gen_ai.usage.output_tokens",LLM_USAGE_TOTAL_TOKENS:"gen_ai.usage.total_tokens",LLM_USAGE_THOUGHTS_TOKENS:"gen_ai.usage.thoughts_tokens",DB_SYSTEM:"db.system",DB_TABLE:"db.table",DB_NAMESPACE:"db.namespace",DB_ID:"db.id",DB_QUERY_TEXT:"db.query.text",DB_VECTOR:"db.vector",DB_OPERATION_NAME:"db.operation.name",DB_VECTOR_QUERY_TOP_K:"db.vector.query.top_k",DB_QUERY_EMBEDDINGS:"db.query.embeddings",DB_QUERY_RESULT:"db.query.result",DB_QUERY_EMBEDDINGS_VECTOR:"db.query.embeddings.vector",DB_QUERY_RESULT_ID:"db.query.result.id",DB_QUERY_RESULT_SCORE:"db.query.result.score",DB_QUERY_RESULT_DISTANCE:"db.query.result.distance",DB_QUERY_RESULT_METADATA:"db.query.result.metadata",DB_QUERY_RESULT_VECTOR:"db.query.result.vector",DB_QUERY_RESULT_DOCUMENT:"db.query.result.document"},de={GEN_AI_USER_MESSAGE:"gen_ai.user.message",GEN_AI_SYSTEM_MESSAGE:"gen_ai.system.message",GEN_AI_ASSISTANT_MESSAGE:"gen_ai.assistant.message",GEN_AI_TOOL_MESSAGE:"gen_ai.tool.message",GEN_AI_CHOICE:"gen_ai.choice",GEN_AI_USAGE:"gen_ai.usage"},Jr=(r=>(r.COMPLETION="completion",r.CHAT="chat",r.RERANK="rerank",r.UNKNOWN="unknown",r))(Jr||{}),Yr=(o=>(o.WORKFLOW="workflow",o.TASK="task",o.AGENT="agent",o.TOOL="tool",o.UNKNOWN="unknown",o))(Yr||{});var Qr=class{buffer;doneCallback;transformFn;constructor(e,t){this.transformFn=e,this.doneCallback=t,this.buffer=t?[]:void 0}async transform(e,t){let n=this.transformFn(e);n&&(t.enqueue(n),this.buffer?.push(n))}async flush(e){await this.doneCallback?.(this.buffer??[]),e.terminate()}},vn=class extends TransformStream{constructor(e,t){super(new Qr(e,t))}};function Sn(s,e){for(let t of e){let n=s.find(r=>r.id===t.id);n?(typeof t.function.name=="string"&&t.function.name.length>0&&(n.function.name+=t.function.name),typeof t.function.params=="string"&&t.function.params.length>0&&(n.function.params+=t.function.params),typeof t.function.params=="object"&&(n.function.params=t.function.params)):s.push(t)}}var Ms=(s,e,t,n)=>{let r=n?s.filter(i=>i.role!=="system"):[...s];t({name:"ChatRequestChatPrompt",step:e,value:r})};var ks=(s,e)=>{if(!s.results)return;let t={name:"ChatResponseResults",value:s.results};e(t)},Es=(s,e,t)=>{t({name:"ChatResponseStreamingResult",index:e,value:s})};function Ps(s,e){let t=new Map;for(let n of s)for(let r of n.results){if(!r)continue;let o=t.get(r.index);o?(r.content&&(o.content=(o.content??"")+r.content),r.thought&&(o.thought=(o.thought??"")+r.thought),r.finishReason&&(o.finishReason=r.finishReason),r.functionCalls&&(o.functionCalls?Sn(o.functionCalls,structuredClone(r.functionCalls)):o.functionCalls=structuredClone(r.functionCalls))):(o=structuredClone(r),t.set(r.index,o))}for(let n of t.values()){let r={name:"ChatResponseStreamingDoneResult",index:n.index,value:n};e(r)}}var _s=(s,e)=>{e({name:"FunctionResults",value:s})},Xr=(s,e,t,n)=>{n({name:"FunctionError",index:e,fixingInstructions:t,error:s})},Fs=(s,e,t,n)=>{n({name:"ValidationError",index:e,fixingInstructions:t,error:s})},Ds=(s,e,t,n)=>{n({name:"AssertionError",index:e,fixingInstructions:t,error:s})},$s=(s,e,t)=>{t({name:"RefusalError",index:e,error:s})};var Ns=(s,e,t)=>{t({name:"EmbedRequest",embedModel:e,value:s})},Ls=(s,e)=>{let t=s.slice(0,3).map(r=>({length:r.length,sample:r.slice(0,5),truncated:r.length>5})),n={name:"EmbedResponse",totalEmbeddings:s.length,value:t};e(n)},Gs=(s,e,t,n)=>{n({name:"ResultPickerUsed",sampleCount:s,selectedIndex:e,latency:t})};var Zr=s=>{let e={};for(let[t,n]of Object.entries(s))if(n!=null){let r=String(n);e[t]=r.length>100?r.substring(0,100):r}return e},On,Us=s=>{if(On)return On;if(s)return On=hl(s),On};var hl=s=>({latencyHistogram:s.createHistogram("ax_llm_request_duration_ms",{description:"Duration of LLM requests in milliseconds",unit:"ms"}),errorCounter:s.createCounter("ax_llm_errors_total",{description:"Total number of LLM request errors"}),requestCounter:s.createCounter("ax_llm_requests_total",{description:"Total number of LLM requests"}),tokenCounter:s.createCounter("ax_llm_tokens_total",{description:"Total number of LLM tokens consumed"}),inputTokenCounter:s.createCounter("ax_llm_input_tokens_total",{description:"Total number of input/prompt tokens consumed"}),outputTokenCounter:s.createCounter("ax_llm_output_tokens_total",{description:"Total number of output/completion tokens generated"}),errorRateGauge:s.createGauge("ax_llm_error_rate",{description:"Current error rate as a percentage (0-100)"}),meanLatencyGauge:s.createGauge("ax_llm_mean_latency_ms",{description:"Mean latency of LLM requests in milliseconds",unit:"ms"}),p95LatencyGauge:s.createGauge("ax_llm_p95_latency_ms",{description:"95th percentile latency of LLM requests in milliseconds",unit:"ms"}),p99LatencyGauge:s.createGauge("ax_llm_p99_latency_ms",{description:"99th percentile latency of LLM requests in milliseconds",unit:"ms"}),streamingRequestsCounter:s.createCounter("ax_llm_streaming_requests_total",{description:"Total number of streaming LLM requests"}),functionCallsCounter:s.createCounter("ax_llm_function_calls_total",{description:"Total number of function/tool calls made"}),functionCallLatencyHistogram:s.createHistogram("ax_llm_function_call_latency_ms",{description:"Latency of function calls in milliseconds",unit:"ms"}),requestSizeHistogram:s.createHistogram("ax_llm_request_size_bytes",{description:"Size of LLM request payloads in bytes",unit:"By"}),responseSizeHistogram:s.createHistogram("ax_llm_response_size_bytes",{description:"Size of LLM response payloads in bytes",unit:"By"}),temperatureGauge:s.createGauge("ax_llm_temperature_gauge",{description:"Temperature setting used for LLM requests"}),maxTokensGauge:s.createGauge("ax_llm_max_tokens_gauge",{description:"Maximum tokens setting used for LLM requests"}),estimatedCostCounter:s.createCounter("ax_llm_estimated_cost_total",{description:"Estimated cost of LLM requests in USD",unit:"$"}),promptLengthHistogram:s.createHistogram("ax_llm_prompt_length_chars",{description:"Length of prompts in characters"}),contextWindowUsageGauge:s.createGauge("ax_llm_context_window_usage_ratio",{description:"Context window utilization ratio (0-1)"}),timeoutsCounter:s.createCounter("ax_llm_timeouts_total",{description:"Total number of timed out LLM requests"}),abortsCounter:s.createCounter("ax_llm_aborts_total",{description:"Total number of aborted LLM requests"}),thinkingBudgetUsageCounter:s.createCounter("ax_llm_thinking_budget_usage_total",{description:"Total thinking budget tokens used"}),multimodalRequestsCounter:s.createCounter("ax_llm_multimodal_requests_total",{description:"Total number of multimodal requests (with images/audio)"})}),Bs=(s,e,t,n,r)=>{try{if(s.latencyHistogram){let o=Zr({operation:e,ai_service:n,...r?{model:r}:{}});s.latencyHistogram.record(t,o)}}catch(o){console.warn("Failed to record latency metric:",o)}},qs=(s,e,t,n,r,o,i)=>{let a={operation:e,ai_service:o,...i?{model:i}:{}};s.meanLatencyGauge&&s.meanLatencyGauge.record(t,a),s.p95LatencyGauge&&s.p95LatencyGauge.record(n,a),s.p99LatencyGauge&&s.p99LatencyGauge.record(r,a)},zs=(s,e,t,n)=>{try{if(s.errorCounter){let r=Zr({operation:e,ai_service:t,...n?{model:n}:{}});s.errorCounter.add(1,r)}}catch(r){console.warn("Failed to record error metric:",r)}},js=(s,e,t,n,r)=>{s.errorRateGauge&&s.errorRateGauge.record(t*100,{operation:e,ai_service:n,...r?{model:r}:{}})},Hs=(s,e,t,n)=>{s.requestCounter&&s.requestCounter.add(1,{operation:e,ai_service:t,...n?{model:n}:{}})},Ft=(s,e,t,n,r)=>{try{let o=Zr({ai_service:n,...r?{model:r}:{}});s.tokenCounter&&s.tokenCounter.add(t,{token_type:e,...o}),e==="input"&&s.inputTokenCounter&&s.inputTokenCounter.add(t,o),e==="output"&&s.outputTokenCounter&&s.outputTokenCounter.add(t,o)}catch(o){console.warn("Failed to record token metric:",o)}},Ks=(s,e,t,n,r)=>{t&&s.streamingRequestsCounter&&s.streamingRequestsCounter.add(1,{operation:e,ai_service:n,...r?{model:r}:{}})},Vs=(s,e,t,n,r)=>{let o={function_name:e,...n?{ai_service:n}:{},...r?{model:r}:{}};s.functionCallsCounter&&s.functionCallsCounter.add(1,o),t&&s.functionCallLatencyHistogram&&s.functionCallLatencyHistogram.record(t,o)},eo=(s,e,t,n,r)=>{s.requestSizeHistogram&&s.requestSizeHistogram.record(t,{operation:e,ai_service:n,...r?{model:r}:{}})},to=(s,e,t,n,r)=>{s.responseSizeHistogram&&s.responseSizeHistogram.record(t,{operation:e,ai_service:n,...r?{model:r}:{}})},Ws=(s,e,t,n,r)=>{let o={...n?{ai_service:n}:{},...r?{model:r}:{}};e!==void 0&&s.temperatureGauge&&s.temperatureGauge.record(e,o),t!==void 0&&s.maxTokensGauge&&s.maxTokensGauge.record(t,o)},no=(s,e,t,n,r)=>{s.estimatedCostCounter&&s.estimatedCostCounter.add(t,{operation:e,ai_service:n,...r?{model:r}:{}})},Js=(s,e,t,n)=>{s.promptLengthHistogram&&s.promptLengthHistogram.record(e,{ai_service:t,...n?{model:n}:{}})},Ys=(s,e,t,n)=>{s.contextWindowUsageGauge&&s.contextWindowUsageGauge.record(e,{ai_service:t,...n?{model:n}:{}})},Qs=(s,e,t,n)=>{s.timeoutsCounter&&s.timeoutsCounter.add(1,{operation:e,ai_service:t,...n?{model:n}:{}})},Xs=(s,e,t,n)=>{s.abortsCounter&&s.abortsCounter.add(1,{operation:e,ai_service:t,...n?{model:n}:{}})},Zs=(s,e,t,n)=>{s.thinkingBudgetUsageCounter&&s.thinkingBudgetUsageCounter.add(e,{ai_service:t,...n?{model:n}:{}})},ei=(s,e,t,n,r)=>{(e||t)&&s.multimodalRequestsCounter&&s.multimodalRequestsCounter.add(1,{ai_service:n,has_images:e.toString(),has_audio:t.toString(),...r?{model:r}:{}})};function ti(s){try{return JSON.stringify(s,null,2)}catch{return String(s)}}function me(s,e={}){let t=[s];throw e.fieldPath!==void 0&&t.push(`Field: ${e.fieldPath}`),e.value!==void 0&&t.push(`Value: ${ti(e.value)}`),e.note&&t.push(`Note: ${e.note}`),e.item!==void 0&&t.push(`Chat item: ${ti(e.item)}`),new Error(t.join(`
144
+ `))}function We(s){let e=n=>JSON.stringify(n,null,2);if(!s)throw new Error(`Chat request message item cannot be null or undefined, received: ${e(s)}`);let t=typeof s=="object"&&s!==null&&"role"in s&&typeof s.role=="string"?s.role:void 0;if(!t)throw new Error(`Chat request message must have a role, received: ${e(t)}`);switch(t){case"system":{let n=typeof s=="object"&&s!==null&&"content"in s&&typeof s.content=="string"?s.content:void 0;if(!n||n.trim()==="")throw new Error(`System message content cannot be empty or whitespace-only, received: ${e(n)}`);break}case"user":{let n=typeof s=="object"&&s!==null&&"content"in s?s.content:void 0;if(n===void 0)throw new Error(`User message content cannot be undefined, received: ${e(n)}`);if(typeof n=="string"){if(n.trim()==="")throw new Error(`User message content cannot be empty or whitespace-only, received: ${e(n)}`)}else if(Array.isArray(n)){if(n.length===0)throw new Error(`User message content array cannot be empty, received: ${e(n)}`);for(let r=0;r<n.length;r++){let o=n[r];if(!o||typeof o!="object")throw new Error(`User message content item at index ${r} must be an object, received: ${e(o)}`);let i=typeof o=="object"&&o!==null&&"type"in o&&typeof o.type=="string"?o.type:void 0;if(!i)throw new Error(`User message content item at index ${r} must have a type, received: ${e(i)}`);switch(i){case"text":{let a="text"in o&&typeof o.text=="string"?o.text:void 0;if(!a||a.trim()==="")throw new Error(`User message text content at index ${r} cannot be empty or whitespace-only, received: ${e(a)}`);break}case"image":{let a="image"in o&&typeof o.image=="string"?o.image:void 0,l="mimeType"in o&&typeof o.mimeType=="string"?o.mimeType:void 0;if(!a||a.trim()==="")throw new Error(`User message image content at index ${r} cannot be empty, received: ${e(a)}`);if(!l||l.trim()==="")throw new Error(`User message image content at index ${r} must have a mimeType, received: ${e(l)}`);break}case"audio":{let a="data"in o&&typeof o.data=="string"?o.data:void 0;if(!a||a.trim()==="")throw new Error(`User message audio content at index ${r} cannot be empty, received: ${e(a)}`);break}case"file":{let a="fileUri"in o&&typeof o.fileUri=="string",l="data"in o&&typeof o.data=="string";if(!a&&!l)throw new Error(`User message file content at index ${r} must have either 'data' or 'fileUri', received: ${e(o)}`);if(a&&l)throw new Error(`User message file content at index ${r} cannot have both 'data' and 'fileUri', received: ${e(o)}`);if(a){let u=o.fileUri;if(!u||u.trim()==="")throw new Error(`User message file content at index ${r} fileUri cannot be empty, received: ${e(u)}`)}if(l){let u=o.data;if(!u||u.trim()==="")throw new Error(`User message file content at index ${r} data cannot be empty, received: ${e(u)}`)}let p="mimeType"in o&&typeof o.mimeType=="string"?o.mimeType:null;if(!p||p.trim()==="")throw new Error(`User message file content at index ${r} must have a mimeType, received: ${e(p)}`);break}case"url":{let a="url"in o&&typeof o.url=="string"?o.url:void 0;if(!a||a.trim()==="")throw new Error(`User message url content at index ${r} cannot be empty, received: ${e(a)}`);break}default:throw new Error(`User message content item at index ${r} has unsupported type: ${e(i)}`)}}}else throw new Error(`User message content must be a string or array of content objects, received: ${e(n)}`);break}case"assistant":{let n=typeof s=="object"&&s!==null&&"content"in s?s.content:void 0,r=typeof s=="object"&&s!==null&&"functionCalls"in s?s.functionCalls:void 0,o=typeof n=="string"&&n.trim()!=="",i=Array.isArray(r)&&r.length>0;if(!o&&!i&&me("Assistant message must include non-empty content or at least one function call",{fieldPath:"content | functionCalls",value:{content:n,functionCalls:r},item:s}),n!==void 0&&typeof n!="string"&&me("Assistant message content must be a string",{fieldPath:"content",value:n,item:s}),r!==void 0&&!Array.isArray(r)&&me("Assistant message functionCalls must be an array when provided",{fieldPath:"functionCalls",value:r,item:s}),Array.isArray(r))for(let a=0;a<r.length;a++){let l=r[a];if((!l||typeof l!="object")&&me("functionCalls entry must be an object",{fieldPath:`functionCalls[${a}]`,value:l,item:s}),(!("id"in l)||typeof l.id!="string"||l.id.trim()==="")&&me("functionCalls entry must include a non-empty string id",{fieldPath:`functionCalls[${a}].id`,value:l.id,item:s}),(!("type"in l)||l.type!=="function")&&me("functionCalls entry must have type 'function'",{fieldPath:`functionCalls[${a}].type`,value:l.type,item:s}),!("function"in l)||!l.function)me("functionCalls entry must include a function object",{fieldPath:`functionCalls[${a}].function`,value:l.function,item:s});else{let p=l.function;(!("name"in p)||typeof p.name!="string"||p.name.trim()==="")&&me("functionCalls entry must include a non-empty function name",{fieldPath:`functionCalls[${a}].function.name`,value:p?.name,item:s}),p.params!==void 0&&typeof p.params!="string"&&typeof p.params!="object"&&me("functionCalls entry params must be a string or object when provided",{fieldPath:`functionCalls[${a}].function.params`,value:p.params,item:s})}}if(s.name!==void 0){let a=s.name;(typeof a!="string"||a.trim()==="")&&me("Assistant message name must be a non-empty string when provided",{fieldPath:"name",value:a,item:s})}break}case"function":{let n=typeof s=="object"&&s!==null&&"functionId"in s&&typeof s.functionId=="string"?s.functionId:void 0,r=typeof s=="object"&&s!==null&&"result"in s?s.result:void 0;if(!n||n.trim()==="")throw new Error(`Function message must have a non-empty functionId, received: ${e(n)}`);if(r==null)throw new Error(`Function message must have a result, received: ${e(r)}`);if(typeof r!="string")throw new Error(`Function message result must be a string, received: ${e(r)}`);s.isError!==void 0&&typeof s.isError!="boolean"&&me("Function message isError must be a boolean when provided",{fieldPath:"isError",value:s.isError,item:s});break}default:throw new Error(`Unsupported message role: ${e(t)}`)}}function Mn(s){let e=n=>JSON.stringify(n,null,2),t=Array.isArray(s)?s:[s];if(t.length===0)throw new Error(`Chat response results cannot be empty, received: ${e(t)}`);for(let n=0;n<t.length;n++){let r=t[n];if(!r)throw new Error(`Chat response result at index ${n} cannot be null or undefined, received: ${e(r)}`);if(typeof r.index!="number")throw new Error(`Chat response result at index ${n} must have a numeric index, received: ${e(r.index)}`);if(r.index<0)throw new Error(`Chat response result at index ${n} must have a non-negative index, received: ${e(r.index)}`);if(!r.content&&!r.thought&&!r.functionCalls&&!r.finishReason)throw new Error(`Chat response result at index ${n} must have at least one of: content, thought, functionCalls, or finishReason, received: ${e({content:r.content,thought:r.thought,functionCalls:r.functionCalls,finishReason:r.finishReason})}`);if(r.content!==void 0&&typeof r.content!="string")throw new Error(`Chat response result content at index ${n} must be a string, received: ${e(r.content)}`);if(r.thought!==void 0&&typeof r.thought!="string")throw new Error(`Chat response result thought at index ${n} must be a string, received: ${e(r.thought)}`);if(r.name!==void 0){if(typeof r.name!="string")throw new Error(`Chat response result name at index ${n} must be a string, received: ${e(r.name)}`);if(r.name.trim()==="")throw new Error(`Chat response result name at index ${n} cannot be empty or whitespace-only, received: ${e(r.name)}`)}if(r.annotations!==void 0){if(!Array.isArray(r.annotations))throw new Error(`Chat response result annotations at index ${n} must be an array, received: ${e(r.annotations)}`);for(let o=0;o<r.annotations.length;o++){let i=r.annotations[o];if(!i||typeof i!="object")throw new Error(`Chat response result annotation at index ${n}[${o}] must be an object, received: ${e(i)}`);if(i.type!=="url_citation")throw new Error(`Chat response result annotation at index ${n}[${o}] must have type 'url_citation', received: ${e(i.type)}`);if(!i.url_citation||typeof i.url_citation!="object")throw new Error(`Chat response result annotation at index ${n}[${o}] must have a valid url_citation object, received: ${e(i.url_citation)}`);if(typeof i.url_citation.url!="string")throw new Error(`Chat response result annotation at index ${n}[${o}] url_citation.url must be a string, received: ${e(i.url_citation.url)}`)}}if(r.id!==void 0){if(typeof r.id!="string")throw new Error(`Chat response result id at index ${n} must be a string, received: ${e(r.id)}`);if(r.id.trim()==="")throw new Error(`Chat response result id at index ${n} cannot be empty or whitespace-only, received: ${e(r.id)}`)}if(r.functionCalls!==void 0){if(!Array.isArray(r.functionCalls))throw new Error(`Chat response result functionCalls at index ${n} must be an array, received: ${e(r.functionCalls)}`);for(let o=0;o<r.functionCalls.length;o++){let i=r.functionCalls[o];if(!i)throw new Error(`Function call at index ${o} in result ${n} cannot be null or undefined, received: ${e(i)}`);if(!i.id||typeof i.id!="string"||i.id.trim()==="")throw new Error(`Function call at index ${o} in result ${n} must have a non-empty string id, received: ${e(i.id)}`);if(i.type!=="function")throw new Error(`Function call at index ${o} in result ${n} must have type 'function', received: ${e(i.type)}`);if(!i.function)throw new Error(`Function call at index ${o} in result ${n} must have a function object, received: ${e(i.function)}`);if(!i.function.name||typeof i.function.name!="string"||i.function.name.trim()==="")throw new Error(`Function call at index ${o} in result ${n} must have a non-empty function name, received: ${e(i.function.name)}`);if(i.function.params!==void 0&&typeof i.function.params!="string"&&typeof i.function.params!="object")throw new Error(`Function call params at index ${o} in result ${n} must be a string or object, received: ${e(i.function.params)}`)}}if(r.finishReason!==void 0){let o=["stop","length","function_call","content_filter","error"];if(!o.includes(r.finishReason))throw new Error(`Chat response result finishReason at index ${n} must be one of: ${o.join(", ")}, received: ${e(r.finishReason)}`)}}}var L=()=>structuredClone({temperature:0}),W=()=>structuredClone({temperature:.4,frequencyPenalty:.2}),H=class{constructor(e,{name:t,apiURL:n,headers:r,modelInfo:o,defaults:i,options:a={},supportFor:l,models:p}){this.aiImpl=e;this.name=t,this.apiURL=n||"",this.headers=r,this.supportFor=l,this.tracer=a.tracer??U.tracer,this.meter=a.meter??U.meter,this.modelInfo=o,this.models=p,this.id=te();let u=this.getModel(i.model)??i.model,c=this.getEmbedModel(i.embedModel)??i.embedModel;if(this.defaults={model:u,embedModel:c},!i.model||typeof i.model!="string"||i.model==="")throw new Error("No model defined");this.setOptions(a),p&&Al(p)}debug=!1;rt;fetch;tracer;meter;timeout;excludeContentFromTrace;models;abortSignal;logger=U.logger??Ss;corsProxy;modelInfo;modelUsage;embedModelUsage;defaults;lastUsedModelConfig;lastUsedChatModel;lastUsedEmbedModel;apiURL;name;id;headers;supportFor;metrics={latency:{chat:{mean:0,p95:0,p99:0,samples:[]},embed:{mean:0,p95:0,p99:0,samples:[]}},errors:{chat:{count:0,rate:0,total:0},embed:{count:0,rate:0,total:0}}};getMetricsInstruments(){return Us(this.meter)}setName(e){this.name=e}getId(){return this.id}setAPIURL(e){this.apiURL=e}setHeaders(e){this.headers=e}setOptions(e){this.debug=e.debug??!1,this.rt=e.rateLimiter,this.fetch=e.fetch,this.timeout=e.timeout,this.tracer=e.tracer??U.tracer,this.meter=e.meter??U.meter,this.excludeContentFromTrace=e.excludeContentFromTrace,this.abortSignal=e.abortSignal,this.logger=e.logger??U.logger??this.logger,this.corsProxy=e.corsProxy}getOptions(){return{debug:this.debug,rateLimiter:this.rt,fetch:this.fetch,tracer:this.tracer,meter:this.meter,timeout:this.timeout,excludeContentFromTrace:this.excludeContentFromTrace,abortSignal:this.abortSignal,logger:this.logger,corsProxy:this.corsProxy}}getLogger(){return this.logger}getModelList(){let e=[];for(let t of this.models??[])t.isInternal||("model"in t&&t.model&&e.push({key:t.key,description:t.description,model:t.model}),"embedModel"in t&&t.embedModel&&e.push({key:t.key,description:t.description,embedModel:t.embedModel}));return e}getName(){return this.name}getFeatures(e){return typeof this.supportFor=="function"?this.supportFor(e??this.defaults.model):this.supportFor}getLastUsedChatModel(){return this.lastUsedChatModel}getLastUsedEmbedModel(){return this.lastUsedEmbedModel}getLastUsedModelConfig(){return this.lastUsedModelConfig}calculatePercentile(e,t){if(e.length===0)return 0;let n=[...e].sort((o,i)=>o-i),r=Math.ceil(t/100*n.length)-1;return n[r]??0}updateLatencyMetrics(e,t){let n=this.metrics.latency[e];n.samples.push(t),n.samples.length>1e3&&n.samples.shift(),n.mean=n.samples.reduce((o,i)=>o+i,0)/n.samples.length,n.p95=this.calculatePercentile(n.samples,95),n.p99=this.calculatePercentile(n.samples,99);let r=this.getMetricsInstruments();if(r){let o=e==="chat"?this.lastUsedChatModel:this.lastUsedEmbedModel;Bs(r,e,t,this.name,o),qs(r,e,n.mean,n.p95,n.p99,this.name,o)}}updateErrorMetrics(e,t){let n=this.metrics.errors[e];n.total++,t&&n.count++,n.rate=n.count/n.total;let r=this.getMetricsInstruments();if(r){let o=e==="chat"?this.lastUsedChatModel:this.lastUsedEmbedModel;Hs(r,e,this.name,o),t&&zs(r,e,this.name,o),js(r,e,n.rate,this.name,o)}}recordTokenUsage(e){let t=this.getMetricsInstruments();if(t&&e?.tokens){let{promptTokens:n,completionTokens:r,totalTokens:o,thoughtsTokens:i}=e.tokens;n&&Ft(t,"input",n,this.name,e.model),r&&Ft(t,"output",r,this.name,e.model),o&&Ft(t,"total",o,this.name,e.model),i&&Ft(t,"thoughts",i,this.name,e.model)}}calculateRequestSize(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}calculateResponseSize(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}detectMultimodalContent(e){let t=!1,n=!1;if(e.chatPrompt&&Array.isArray(e.chatPrompt)){for(let r of e.chatPrompt)if(r.role==="user"&&Array.isArray(r.content))for(let o of r.content)o.type==="image"?t=!0:o.type==="audio"&&(n=!0)}return{hasImages:t,hasAudio:n}}calculatePromptLength(e){let t=0;if(e.chatPrompt&&Array.isArray(e.chatPrompt))for(let n of e.chatPrompt)if(n.role==="system"||n.role==="assistant")n.content&&(t+=n.content.length);else if(n.role==="user"){if(typeof n.content=="string")t+=n.content.length;else if(Array.isArray(n.content))for(let r of n.content)r.type==="text"&&(t+=r.text.length)}else n.role==="function"&&n.result&&(t+=n.result.length);return t}calculateContextWindowUsage(e,t){if(!t?.tokens?.promptTokens)return 0;let n=this.modelInfo.find(r=>r.name===e);return n?.contextWindow?t.tokens.promptTokens/n.contextWindow:0}estimateCost(e,t){if(!t?.tokens)return 0;let n=this.modelInfo.find(l=>l.name===e);if(!n||!n.promptTokenCostPer1M&&!n.completionTokenCostPer1M)return 0;let{promptTokens:r=0,completionTokens:o=0}=t.tokens,i=n.promptTokenCostPer1M||0,a=n.completionTokenCostPer1M||0;return r*i/1e6+o*a/1e6}estimateCostByName(e,t){if(!t?.tokens)return 0;let n=this.modelInfo.find(l=>l.name===e);if(!n||!n.promptTokenCostPer1M&&!n.completionTokenCostPer1M)return 0;let{promptTokens:r=0,completionTokens:o=0}=t.tokens,i=n.promptTokenCostPer1M||0,a=n.completionTokenCostPer1M||0;return r*i/1e6+o*a/1e6}recordFunctionCallMetrics(e,t){let n=this.getMetricsInstruments();if(!(!n||!e))for(let r of e)r&&typeof r=="object"&&"function"in r&&r.function&&typeof r.function=="object"&&"name"in r.function&&Vs(n,r.function.name,void 0,this.name,t)}recordTimeoutMetric(e){let t=this.getMetricsInstruments();if(t){let n=e==="chat"?this.lastUsedChatModel:this.lastUsedEmbedModel;Qs(t,e,this.name,n)}}recordAbortMetric(e){let t=this.getMetricsInstruments();if(t){let n=e==="chat"?this.lastUsedChatModel:this.lastUsedEmbedModel;Xs(t,e,this.name,n)}}recordChatMetrics(e,t,n){let r=this.getMetricsInstruments();if(!r)return;let o=this.lastUsedChatModel,i=this.lastUsedModelConfig,a=i?.stream??!1;Ks(r,"chat",a,this.name,o);let{hasImages:l,hasAudio:p}=this.detectMultimodalContent(e);ei(r,l,p,this.name,o);let u=this.calculatePromptLength(e);Js(r,u,this.name,o),Ws(r,i?.temperature,i?.maxTokens,this.name,o),t?.thinkingTokenBudget&&this.modelUsage?.tokens?.thoughtsTokens&&Zs(r,this.modelUsage.tokens.thoughtsTokens,this.name,o);let c=this.calculateRequestSize(e);if(eo(r,"chat",c,this.name,o),n&&!a){let d=n,m=this.calculateResponseSize(d);if(to(r,"chat",m,this.name,o),d.results)for(let f of d.results)f.functionCalls&&this.recordFunctionCallMetrics(f.functionCalls,this.lastUsedChatModel);let g=this.calculateContextWindowUsage(this.lastUsedChatModel,d.modelUsage);g>0&&Ys(r,g,this.name,o);let h=this.estimateCost(this.lastUsedChatModel,d.modelUsage);h>0&&no(r,"chat",h,this.name,o)}}recordEmbedMetrics(e,t){let n=this.getMetricsInstruments();if(!n)return;let r=this.lastUsedEmbedModel,o=this.calculateRequestSize(e);eo(n,"embed",o,this.name,r);let i=this.calculateResponseSize(t);to(n,"embed",i,this.name,r);let a=this.estimateCostByName(r,t.modelUsage);a>0&&no(n,"embed",a,this.name,r)}getMetrics(){return structuredClone(this.metrics)}async chat(e,t){let n=performance.now(),r=!1,o,i=this.getModelByKey(e.model),a={...i?{thinkingTokenBudget:i.thinkingTokenBudget,showThoughts:i.showThoughts,stream:i.stream,debug:i.debug,useExpensiveModel:i.useExpensiveModel}:void 0,...t};try{return o=await this._chat1(e,a),o}catch(l){throw r=!0,l instanceof Error&&(l.message.includes("timeout")||l.name==="TimeoutError"?this.recordTimeoutMetric("chat"):(l.message.includes("abort")||l.name==="AbortError")&&this.recordAbortMetric("chat")),l}finally{let l=performance.now()-n;this.updateLatencyMetrics("chat",l),this.updateErrorMetrics("chat",r),r||this.recordChatMetrics(e,a,o)}}async _chat1(e,t){let n=this.getModel(e.model)??e.model??this.defaults.model;if(Array.isArray(e.chatPrompt))for(let p of e.chatPrompt)We(p);let r=this.getModelByKey(e.model),o={...this.aiImpl.getModelConfig(),...r?r.modelConfig:void 0,...e.modelConfig},i=this.modelInfo.find(p=>p.name===n);if(i?.notSupported?.temperature&&"temperature"in o&&delete o.temperature,i?.notSupported?.topP&&"topP"in o&&delete o.topP,t?.thinkingTokenBudget&&!this.getFeatures(n).hasThinkingBudget)throw new Error(`Model ${n} does not support thinkingTokenBudget.`);if(t?.showThoughts&&!this.getFeatures(n).hasShowThoughts)throw new Error(`Model ${n} does not support showThoughts.`);if(this.modelInfo.find(p=>p.name===n)?.isExpensive&&t?.useExpensiveModel!=="yes")throw new Error(`Model ${n} is marked as expensive and requires explicit confirmation. Set useExpensiveModel: "yes" to proceed.`);return o.stream=(t?.stream!==void 0?t.stream:o.stream)??!0,this.getFeatures(n).streaming||(o.stream=!1),this.tracer?await this.tracer.startActiveSpan("AI Chat Request",{kind:oe.SERVER,attributes:{[D.LLM_SYSTEM]:this.name,[D.LLM_OPERATION_NAME]:"chat",[D.LLM_REQUEST_MODEL]:n,[D.LLM_REQUEST_MAX_TOKENS]:o.maxTokens??"Not set",[D.LLM_REQUEST_TEMPERATURE]:o.temperature,[D.LLM_REQUEST_TOP_P]:o.topP??"Not set",[D.LLM_REQUEST_TOP_K]:o.topK??"Not set",[D.LLM_REQUEST_FREQUENCY_PENALTY]:o.frequencyPenalty??"Not set",[D.LLM_REQUEST_PRESENCE_PENALTY]:o.presencePenalty??"Not set",[D.LLM_REQUEST_STOP_SEQUENCES]:o.stopSequences?.join(", ")??"Not set",[D.LLM_REQUEST_LLM_IS_STREAMING]:o.stream??"Not set"}},t?.traceContext??Oe.active(),async p=>await this._chat2(n,o,e,t,p)):await this._chat2(n,o,e,t)}cleanupFunctionSchema(e){let t={...e};if(t.parameters){let n={...t.parameters};Array.isArray(n.required)&&n.required.length===0&&delete n.required,n.properties&&Object.keys(n.properties).length===0&&delete n.properties,Object.keys(n).length===0||Object.keys(n).length===1&&n.type==="object"?delete t.parameters:t.parameters=n}return t}async _chat2(e,t,n,r,o){if(!this.aiImpl.createChatReq)throw new Error("createChatReq not implemented");let i=r?.debug??this.debug,a;n.functions&&n.functions.length>0&&(a=n.functions.map(m=>this.cleanupFunctionSchema(m)));let l={...n,model:e,functions:a,modelConfig:t};this.lastUsedChatModel=e,this.lastUsedModelConfig=t;let p=async()=>{let[m,g]=await this.aiImpl.createChatReq(l,r);return o?.isRecording()&&fl(n,o,this.excludeContentFromTrace),await re({name:m.name,url:this.apiURL,localCall:m.localCall,headers:await this.buildHeaders(m.headers),stream:t.stream,timeout:this.timeout,debug:i,fetch:this.fetch,span:o,abortSignal:r?.abortSignal??this.abortSignal,corsProxy:this.corsProxy},g)};i&&Ms(l.chatPrompt,r?.stepIndex??0,r?.logger??this.logger,r?.debugHideSystemPrompt);let u=r?.rateLimiter??this.rt,c=u?await u(p,{modelUsage:this.modelUsage}):await p();if(t.stream){if(!this.aiImpl.createChatStreamResp)throw new Error("createChatStreamResp not implemented");let m=this.aiImpl.createChatStreamResp.bind(this),g=A=>b=>{let C=m(b,A);if(C.sessionId=r?.sessionId,!C.modelUsage){let I=this.aiImpl.getTokenUsage();I&&(C.modelUsage={ai:this.name,model:e,tokens:I})}if(this.modelUsage=C.modelUsage,this.recordTokenUsage(C.modelUsage),o?.isRecording()&&ni(C,o,this.excludeContentFromTrace),i)for(let I of C.results)Es(I,I.index,r?.logger??this.logger);return C},h=async A=>{o?.isRecording()&&o.end(),i&&Ps(A,r?.logger??this.logger)};if(typeof window<"u"){let A=c,b={},C=[],I=r?.abortSignal??this.abortSignal;return new ReadableStream({start:y=>{let T=A.getReader(),S=()=>{try{T.cancel().catch(()=>{})}catch{}try{this.recordAbortMetric("chat")}catch{}try{o?.isRecording()&&o.end()}catch{}try{y.error(new DOMException("Aborted","AbortError"))}catch{y.error(new Error("Aborted"))}};if(I){if(I.aborted){S();return}I.addEventListener("abort",S,{once:!0})}async function O(){try{for(;;){let{done:N,value:G}=await T.read();if(N){h&&await h(C),y.close();break}let M=g(b)(G);M&&(C.push(M),y.enqueue(M))}}catch(N){if(y.error(N),o?.isRecording())try{o.end()}catch{}}finally{if(T.releaseLock(),I)try{I.removeEventListener("abort",S)}catch{}}}O()}})}return c.pipeThrough(new vn(g({}),h))}if(!this.aiImpl.createChatResp)throw new Error("createChatResp not implemented");let d=this.aiImpl.createChatResp(c);if(d.sessionId=r?.sessionId,!d.modelUsage){let m=this.aiImpl.getTokenUsage();m&&(d.modelUsage={ai:this.name,model:e,tokens:m})}return d.modelUsage&&(this.modelUsage=d.modelUsage,this.recordTokenUsage(d.modelUsage)),o?.isRecording()&&(ni(d,o,this.excludeContentFromTrace),o.end()),i&&ks(d,r?.logger??this.logger),d}async embed(e,t){let n=performance.now(),r=!1,o,i=this.getModelByKey(e.embedModel),a={...i?{thinkingTokenBudget:i.thinkingTokenBudget,showThoughts:i.showThoughts,stream:i.stream,debug:i.debug,useExpensiveModel:i.useExpensiveModel}:void 0,...t};try{return o=await this._embed1(e,a),o}catch(l){throw r=!0,l instanceof Error&&(l.message.includes("timeout")||l.name==="TimeoutError"?this.recordTimeoutMetric("embed"):(l.message.includes("abort")||l.name==="AbortError")&&this.recordAbortMetric("embed")),l}finally{let l=performance.now()-n;this.updateLatencyMetrics("embed",l),this.updateErrorMetrics("embed",r),!r&&o&&this.recordEmbedMetrics(e,o)}}async _embed1(e,t){let n=this.getEmbedModel(e.embedModel)??e.embedModel??this.defaults.embedModel;if(!n)throw new Error("No embed model defined");return this.tracer?await this.tracer.startActiveSpan("AI Embed Request",{kind:oe.SERVER,attributes:{[D.LLM_SYSTEM]:this.name,[D.LLM_OPERATION_NAME]:"embeddings",[D.LLM_REQUEST_MODEL]:n}},t?.traceContext??Oe.active(),async r=>await this._embed2(n,e,t,r)):await this._embed2(n,e,t)}async _embed2(e,t,n,r){if(!this.aiImpl.createEmbedReq)throw new Error("createEmbedReq not implemented");if(!this.aiImpl.createEmbedResp)throw new Error("createEmbedResp not implemented");let o=this.aiImpl.createEmbedReq,i=n?.debug??this.debug,a={...t,embedModel:e};this.lastUsedEmbedModel=e,i&&Ns(a.texts??[],e,n?.logger??this.logger);let l=async()=>{let[d,m]=await o(a);return await re({name:d.name,url:this.apiURL,localCall:d.localCall,headers:await this.buildHeaders(d.headers),debug:i,fetch:this.fetch,timeout:this.timeout,span:r,abortSignal:n?.abortSignal??this.abortSignal,corsProxy:this.corsProxy},m)},p=n?.rateLimiter??this.rt,u=p?await p(l,{modelUsage:this.embedModelUsage}):await l(),c=this.aiImpl.createEmbedResp?.(u);if(c.sessionId=n?.sessionId,!c.modelUsage){let d=this.aiImpl.getTokenUsage();d&&(c.modelUsage={ai:this.name,model:e,tokens:d})}return this.embedModelUsage=c.modelUsage,this.recordTokenUsage(c.modelUsage),r?.isRecording()&&c.modelUsage?.tokens&&r.addEvent(de.GEN_AI_USAGE,{[D.LLM_USAGE_INPUT_TOKENS]:c.modelUsage.tokens.promptTokens,[D.LLM_USAGE_OUTPUT_TOKENS]:c.modelUsage.tokens.completionTokens??0,[D.LLM_USAGE_TOTAL_TOKENS]:c.modelUsage.tokens.totalTokens}),i&&Ls(c.embeddings,n?.logger??this.logger),r?.end(),c}async buildHeaders(e={}){return{...e,...await this.headers()}}getModelByKey(e){return e?this.models?.find(n=>n.key===e):void 0}getModel(e){let t=this.getModelByKey(e);return t&&"model"in t?t.model:void 0}getEmbedModel(e){let t=this.getModelByKey(e);return t&&"embedModel"in t?t.embedModel:void 0}};function fl(s,e,t){let n=[];if(s.chatPrompt&&Array.isArray(s.chatPrompt)&&s.chatPrompt.length>0)for(let o of s.chatPrompt)switch(o.role){case"system":if(o.content){let i={};t||(i.content=o.content),e.addEvent(de.GEN_AI_SYSTEM_MESSAGE,i)}break;case"user":if(typeof o.content=="string")n.push(o.content);else if(Array.isArray(o.content))for(let i of o.content)i.type==="text"&&n.push(i.text);break;case"assistant":{let i=o.functionCalls?.map(a=>({id:a.id,type:a.type,function:a.function.name,arguments:a.function.params}));if(i&&i.length>0){let a={function_calls:JSON.stringify(i,null,2)};!t&&o.content&&(a.content=o.content),e.addEvent(de.GEN_AI_ASSISTANT_MESSAGE,a)}else if(o.content){let a={};t||(a.content=o.content),e.addEvent(de.GEN_AI_ASSISTANT_MESSAGE,a)}break}case"function":{let i={id:o.functionId};t||(i.content=o.result),e.addEvent(de.GEN_AI_TOOL_MESSAGE,i);break}}let r={};t||(r.content=n.join(`
111
145
  `)),e.addEvent(de.GEN_AI_USER_MESSAGE,r)}function ni(s,e,t){if(s.modelUsage?.tokens){let n=s.modelUsage.tokens.thoughtsTokens?{[D.LLM_USAGE_THOUGHTS_TOKENS]:s.modelUsage.tokens.thoughtsTokens}:{};e.addEvent(de.GEN_AI_USAGE,{[D.LLM_USAGE_INPUT_TOKENS]:s.modelUsage.tokens.promptTokens,[D.LLM_USAGE_OUTPUT_TOKENS]:s.modelUsage.tokens.completionTokens??0,[D.LLM_USAGE_TOTAL_TOKENS]:s.modelUsage.tokens.totalTokens,...n})}if(s.results)for(let n=0;n<s.results.length;n++){let r=s.results[n];if(!r||!r.content&&!r.thought&&!r.functionCalls?.length&&!r.finishReason)continue;let o=r.functionCalls?.map(a=>({id:a.id,type:a.type,function:a.function.name,arguments:a.function.params})),i={};o&&o.length>0?(t||(i.content=r.content),i.tool_calls=o):t||(i.content=r.content??""),e.addEvent(de.GEN_AI_CHOICE,{finish_reason:r.finishReason,index:n,message:JSON.stringify(i,null,2)})}}function ri(s){let e=0;for(let t of s){if(!t||typeof t!="object")throw new Error(`AxMessage array validation failed: Item at index ${e} is not a valid message object`);if(t.role!=="user"&&t.role!=="assistant")throw new Error(`AxMessage array validation failed: Item at index ${e} has invalid role: ${t.role}`);e++}}function Al(s){let e=new Set;for(let t of s){if(e.has(t.key))throw new Error(`Duplicate model key detected: "${t.key}". Each model key must be unique.`);e.add(t.key)}}var Dt=(c=>(c.Claude41Opus="claude-opus-4-1-20250805",c.Claude4Opus="claude-opus-4-20250514",c.Claude4Sonnet="claude-sonnet-4-20250514",c.Claude37Sonnet="claude-3-7-sonnet-latest",c.Claude35Sonnet="claude-3-5-sonnet-latest",c.Claude35Haiku="claude-3-5-haiku-latest",c.Claude3Opus="claude-3-opus-latest",c.Claude3Sonnet="claude-3-sonnet-20240229",c.Claude3Haiku="claude-3-haiku-20240307",c.Claude21="claude-2.1",c.ClaudeInstant12="claude-instant-1.2",c))(Dt||{}),kn=(i=>(i.Claude37Sonnet="claude-3-7-sonnet",i.Claude35Haiku="claude-3-5-haiku",i.Claude35Sonnet="claude-3-5-sonnet",i.Claude35SonnetV2="claude-3-5-sonnet-v2",i.Claude3Haiku="claude-3-haiku",i.Claude3Opus="claude-3-opus",i))(kn||{});var $t=[{name:"claude-opus-4-1-20250805",currency:"usd",promptTokenCostPer1M:15,completionTokenCostPer1M:75,maxTokens:32e3,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"claude-opus-4-20250514",currency:"usd",promptTokenCostPer1M:15,completionTokenCostPer1M:75,maxTokens:32e3,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"claude-sonnet-4-20250514",currency:"usd",promptTokenCostPer1M:3,completionTokenCostPer1M:15,maxTokens:64e3,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"claude-3-7-sonnet-latest",currency:"usd",promptTokenCostPer1M:3,completionTokenCostPer1M:15,maxTokens:64e3,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"claude-3-5-sonnet-latest",currency:"usd",promptTokenCostPer1M:3,completionTokenCostPer1M:15,maxTokens:8192},{name:"claude-3-5-haiku-latest",currency:"usd",promptTokenCostPer1M:.8,completionTokenCostPer1M:4,maxTokens:8192},{name:"claude-3-opus-latest",currency:"usd",promptTokenCostPer1M:15,completionTokenCostPer1M:75,maxTokens:4096},{name:"claude-3-sonnet-20240229",currency:"usd",promptTokenCostPer1M:3,completionTokenCostPer1M:15,maxTokens:4096},{name:"claude-3-haiku-20240307",currency:"usd",promptTokenCostPer1M:.25,completionTokenCostPer1M:1.25,maxTokens:4096},{name:"claude-2.1",currency:"usd",promptTokenCostPer1M:8,completionTokenCostPer1M:25,maxTokens:4096},{name:"claude-instant-1.2",currency:"usd",promptTokenCostPer1M:.8,completionTokenCostPer1M:2.24,maxTokens:4096}];var En=s=>{if(!s||typeof s!="object")return s;let e={...s};return delete e.additionalProperties,delete e.default,delete e.optional,delete e.oneOf,delete e.anyOf,delete e.allOf,e.properties&&typeof e.properties=="object"&&(e.properties=Object.fromEntries(Object.entries(e.properties).map(([t,n])=>[t,En(n)]))),e.items&&(e.items=En(e.items)),e},oo=()=>structuredClone({model:"claude-3-7-sonnet-latest",maxTokens:4e4,thinkingTokenBudgetLevels:{minimal:1024,low:5e3,medium:1e4,high:2e4,highest:32e3},...L()}),si=()=>structuredClone({model:"claude-3-7-sonnet",maxTokens:4e4,thinkingTokenBudgetLevels:{minimal:1024,low:5e3,medium:1e4,high:2e4,highest:32e3},...L()}),ro=class{constructor(e,t){this.config=e;this.isVertex=t}tokensUsed;currentPromptConfig;getTokenUsage(){return this.tokensUsed}getModelConfig(){let{config:e}=this;return{maxTokens:e.maxTokens??4096,temperature:e.temperature,topP:e.topP,topK:e.topK,stream:e.stream,stopSequences:e.stopSequences,endSequences:e.endSequences,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,n:e.n}}createChatReq=async(e,t)=>{this.currentPromptConfig=t;let n=e.model,r=e.modelConfig?.stream??this.config.stream,o;this.isVertex?o={name:r?`/models/${n}:streamRawPredict?alt=sse`:`/models/${n}:rawPredict`}:o={name:"/messages"};let i;if(e.functionCall&&e.functions&&e.functions.length>0)if(typeof e.functionCall=="string")switch(e.functionCall){case"auto":i={tool_choice:{type:"auto"}};break;case"required":i={tool_choice:{type:"any"}};break;case"none":throw new Error("functionCall none not supported")}else if("function"in e.functionCall)i={tool_choice:{type:"tool",name:e.functionCall.function.name}};else throw new Error("Invalid function call type, must be string or object");let a=e.chatPrompt.filter(y=>y.role==="system").map(y=>({type:"text",text:y.content,...y.cache?{cache:{type:"ephemeral"}}:{}})),l=e.chatPrompt.filter(y=>y.role!=="system"),p=xl(l),u=e.functions?.map(y=>({name:y.name,description:y.description,input_schema:y.parameters?En(y.parameters):void 0})),d=(this.config.tools??[]).map(y=>y&&typeof y=="object"&&"type"in y?y:{name:y.name,description:y.description,input_schema:y.input_schema?En(y.input_schema):void 0,...y.cache_control?{cache_control:y.cache_control}:{}}),m=[...u??[],...d];this.isVertex&&m.length>0&&(m=m.filter(y=>!(y&&typeof y=="object"&&"type"in y))),m.length===0&&(m=void 0);let g=e.modelConfig?.maxTokens??this.config.maxTokens,h=e.modelConfig?.stopSequences??this.config.stopSequences,f=e.modelConfig?.temperature,x=e.modelConfig?.topP,A=e.modelConfig?.topK??this.config.topK,b=e.modelConfig?.n??this.config.n;if(b&&b>1)throw new Error("Anthropic does not support sampling (n > 1)");let C;if(this.config.thinking?.budget_tokens&&(C=this.config.thinking),t?.thinkingTokenBudget){let y=this.config.thinkingTokenBudgetLevels;switch(t.thinkingTokenBudget){case"none":C=void 0;break;case"minimal":C={type:"enabled",budget_tokens:y?.minimal??1024};break;case"low":C={type:"enabled",budget_tokens:y?.low??5e3};break;case"medium":C={type:"enabled",budget_tokens:y?.medium??1e4};break;case"high":C={type:"enabled",budget_tokens:y?.high??2e4};break;case"highest":C={type:"enabled",budget_tokens:y?.highest??32e3};break}}let I={...this.isVertex?{anthropic_version:"vertex-2023-10-16"}:{model:n},...g?{max_tokens:g}:{},...h&&h.length>0?{stop_sequences:h}:{},...f!==void 0&&!C?{temperature:f}:{},...x!==void 0&&(!C||x>=.95)?{top_p:x}:{},...A&&!C?{top_k:A}:{},...i,...m?{tools:m}:{},...r?{stream:!0}:{},...a?{system:a}:{},...C?{thinking:C}:{},messages:p};return[o,I]};createChatResp=e=>{if(e.type==="error")throw new q(e.error.message,void 0,void 0);let t=oi(e.stop_reason),n=this.currentPromptConfig?.thinkingTokenBudget!=="none"&&this.currentPromptConfig?.showThoughts!==!1,r="",o="",i=[],a=[];for(let u of e.content)switch(u.type){case"text":if(r+=u.text??"",Array.isArray(u.citations))for(let c of u.citations)c?.url&&a.push({url:String(c.url),title:typeof c.title=="string"?c.title:void 0,snippet:typeof c.cited_text=="string"?c.cited_text:void 0});break;case"thinking":case"redacted_thinking":n&&(o+=u.thinking??"");break;case"tool_use":i.push({id:u.id,type:"function",function:{name:u.name,params:u.input}});break}let l={index:0,id:e.id,finishReason:t};r&&(l.content=r),o&&(l.thought=o),i.length>0&&(l.functionCalls=i),a.length>0&&(l.citations=a);let p=[l];return this.tokensUsed={promptTokens:e.usage.input_tokens,completionTokens:e.usage.output_tokens,totalTokens:e.usage.input_tokens+e.usage.output_tokens},{results:p,remoteId:e.id}};createChatStreamResp=(e,t)=>{if(!("type"in e))throw new Error("Invalid Anthropic streaming event");let n=t;if(n.indexIdMap||(n.indexIdMap={}),e.type==="error"){let{error:o}=e;throw new q(o.message,void 0,void 0)}let r=0;if(e.type==="message_start"){let{message:o}=e,i=[{index:r,content:"",id:o.id}];return this.tokensUsed={promptTokens:o.usage?.input_tokens??0,completionTokens:o.usage?.output_tokens??0,totalTokens:(o.usage?.input_tokens??0)+(o.usage?.output_tokens??0)},{results:i}}if(e.type==="content_block_start"){let{content_block:o}=e;if(o.type==="text"){let i=[];if(Array.isArray(o.citations))for(let a of o.citations)a?.url&&i.push({url:String(a.url),title:typeof a.title=="string"?a.title:void 0,snippet:typeof a.cited_text=="string"?a.cited_text:void 0});return{results:[{index:r,content:o.text,...i.length?{citations:i}:{}}]}}if(o.type==="thinking")return this.currentPromptConfig?.thinkingTokenBudget!=="none"&&this.currentPromptConfig?.showThoughts!==!1?{results:[{index:r,thought:o.thinking}]}:{results:[{index:r,content:""}]};if(o.type==="tool_use"&&typeof o.id=="string"&&typeof e.index=="number"&&!n.indexIdMap[e.index]){n.indexIdMap[e.index]=o.id;let i=[{id:o.id,type:"function",function:{name:o.name,params:""}}];return{results:[{index:r,functionCalls:i}]}}if(o.type==="web_search_tool_result"||o.type==="server_tool_use")return{results:[{index:r,content:""}]}}if(e.type==="content_block_delta"){let{delta:o}=e;if(o.type==="citations_delta"){let i=o.citation;if(i&&typeof i.url=="string"&&i.url.length>0){let a=[{url:String(i.url),title:typeof i.title=="string"?i.title:void 0,snippet:typeof i.cited_text=="string"?i.cited_text:void 0}];return{results:[{index:r,content:"",citations:a}]}}return{results:[{index:r,content:""}]}}if(o.type==="text_delta"){let i=[];if(Array.isArray(o.citations))for(let a of o.citations)a?.url&&i.push({url:String(a.url),title:typeof a.title=="string"?a.title:void 0,snippet:typeof a.cited_text=="string"?a.cited_text:void 0});return{results:[{index:r,content:o.text,...i.length?{citations:i}:{}}]}}if(o.type==="thinking_delta")return this.currentPromptConfig?.thinkingTokenBudget!=="none"&&this.currentPromptConfig?.showThoughts!==!1?{results:[{index:r,thought:o.thinking}]}:{results:[{index:r,content:""}]};if(o.type==="signature_delta")return{results:[{index:r,content:""}]};if(o.type==="input_json_delta"){let i=n.indexIdMap[e.index];if(!i)return{results:[{index:r,content:""}]};let a=[{id:i,type:"function",function:{name:"",params:o.partial_json}}];return{results:[{index:r,functionCalls:a}]}}}if(e.type==="message_delta"){let{delta:o,usage:i}=e;return this.tokensUsed={promptTokens:0,completionTokens:i.output_tokens,totalTokens:i.output_tokens},{results:[{index:r,content:"",finishReason:oi(o.stop_reason)}]}}return{results:[{index:r,content:""}]}}},Je=class s extends H{static create(e){return new s(e)}constructor({apiKey:e,projectId:t,region:n,config:r,options:o,models:i}){let a=t!==void 0&&n!==void 0,l,p;if(a){if(!e)throw new Error("Anthropic Vertex API key not set");if(typeof e!="function")throw new Error("Anthropic Vertex API key must be a function for token-based authentication");l=`https://${n}-aiplatform.googleapis.com/v1/projects/${t}/locations/${n}/publishers/anthropic/`,p=async()=>({Authorization:`Bearer ${await e()}`})}else{if(!e)throw new Error("Anthropic API key not set");l="https://api.anthropic.com/v1",p=async()=>({"anthropic-version":"2023-06-01","anthropic-beta":"prompt-caching-2024-07-31","x-api-key":typeof e=="function"?await e():e})}let u={...oo(),...r},c=new ro(u,a),d=m=>{let g=ae({model:m,modelInfo:$t,models:i});return{functions:!0,streaming:!0,hasThinkingBudget:g?.supported?.thinkingBudget??!1,hasShowThoughts:g?.supported?.showThoughts??!1,functionCot:!0,media:{images:{supported:!0,formats:["image/jpeg","image/png","image/gif","image/webp"],maxSize:5*1024*1024,detailLevels:["high","low","auto"]},audio:{supported:!1,formats:[],maxDuration:0},files:{supported:!1,formats:[],maxSize:0,uploadMethod:"none"},urls:{supported:!1,webSearch:!1,contextFetching:!1}},caching:{supported:!0,types:["ephemeral"]},thinking:g?.supported?.thinkingBudget??!1,multiTurn:!0}};super(c,{name:"Anthropic",apiURL:l,headers:p,modelInfo:$t,defaults:{model:u.model},options:o,supportFor:d,models:i})}};function xl(s){let e=s.map(t=>{switch(t.role){case"function":return{role:"user",content:[{type:"tool_result",content:t.result,tool_use_id:t.functionId,...t.isError?{is_error:!0}:{},...t.cache?{cache:{type:"ephemeral"}}:{}}]};case"user":return typeof t.content=="string"?{role:"user",content:t.content}:{role:"user",content:t.content.map(r=>{switch(r.type){case"text":return{type:"text",text:r.text,...r.cache?{cache:{type:"ephemeral"}}:{}};case"image":return{type:"image",source:{type:"base64",media_type:r.mimeType,data:r.image},...r.cache?{cache:{type:"ephemeral"}}:{}};default:throw new Error("Invalid content type")}})};case"assistant":{let n="";return typeof t.content=="string"&&(n=t.content),typeof t.functionCalls<"u"&&(n=t.functionCalls.map(r=>{let o={};return typeof r.function.params=="string"?o=JSON.parse(r.function.params):typeof r.function.params=="object"&&(o=r.function.params),{type:"tool_use",id:r.id,name:r.function.name,input:o,...t.cache?{cache:{type:"ephemeral"}}:{}}})),{role:"assistant",content:n}}default:throw new Error("Invalid role")}});return yl(e)}function yl(s){let e=[];for(let[t,n]of s.entries()){if(n.role!=="assistant"){e.push(n);continue}if(t>0&&s.at(t-1)?.role==="assistant"){let r=e.pop();e.push({...r||{},...n})}else e.push(n)}return e}function oi(s){if(s)switch(s){case"stop_sequence":return"stop";case"max_tokens":return"length";case"tool_use":return"function_call";case"end_turn":return"stop";default:return"stop"}}var Nt=(I=>(I.GPT4="gpt-4",I.GPT41="gpt-4.1",I.GPT41Mini="gpt-4.1-mini",I.GPT4O="gpt-4o",I.GPT4OMini="gpt-4o-mini",I.GPT4ChatGPT4O="chatgpt-4o-latest",I.GPT4Turbo="gpt-4-turbo",I.GPT35Turbo="gpt-3.5-turbo",I.GPT35TurboInstruct="gpt-3.5-turbo-instruct",I.GPT35TextDavinci002="text-davinci-002",I.GPT3TextBabbage002="text-babbage-002",I.GPT3TextAda001="text-ada-001",I.GPT5="gpt-5",I.GPT5Nano="gpt-5-nano",I.GPT5Mini="gpt-5-mini",I.GPT5Chat="gpt-5-chat",I.O1="o1",I.O1Mini="o1-mini",I.O3="o3",I.O3Mini="o3-mini",I.O4Mini="o4-mini",I))(Nt||{}),Ye=(n=>(n.TextEmbeddingAda002="text-embedding-ada-002",n.TextEmbedding3Small="text-embedding-3-small",n.TextEmbedding3Large="text-embedding-3-large",n))(Ye||{});var Qe=(T=>(T.GPT4="gpt-4",T.GPT41="gpt-4.1",T.GPT41Mini="gpt-4.1-mini",T.GPT4O="gpt-4o",T.GPT4OMini="gpt-4o-mini",T.GPT4ChatGPT4O="chatgpt-4o-latest",T.GPT4Turbo="gpt-4-turbo",T.GPT35Turbo="gpt-3.5-turbo",T.GPT35TurboInstruct="gpt-3.5-turbo-instruct",T.GPT35TextDavinci002="text-davinci-002",T.GPT3TextBabbage002="text-babbage-002",T.GPT3TextAda001="text-ada-001",T.GPT5="gpt-5",T.GPT5Nano="gpt-5-nano",T.GPT5Mini="gpt-5-mini",T.GPT5Chat="gpt-5-chat",T.O1Pro="o1-pro",T.O1="o1",T.O1Mini="o1-mini",T.O3Pro="o3-pro",T.O3="o3",T.O3Mini="o3-mini",T.O4Mini="o4-mini",T))(Qe||{});var Xe=[{name:"gpt-4",currency:"usd",promptTokenCostPer1M:30,completionTokenCostPer1M:60},{name:"gpt-4.1",currency:"usd",promptTokenCostPer1M:2,completionTokenCostPer1M:8},{name:"gpt-4.1-mini",currency:"usd",promptTokenCostPer1M:.4,completionTokenCostPer1M:1.6},{name:"gpt-4o",currency:"usd",promptTokenCostPer1M:5,completionTokenCostPer1M:15},{name:"gpt-4o-mini",currency:"usd",promptTokenCostPer1M:.15,completionTokenCostPer1M:.6},{name:"chatgpt-4o-latest",currency:"usd",promptTokenCostPer1M:5,completionTokenCostPer1M:15},{name:"gpt-4-turbo",currency:"usd",promptTokenCostPer1M:10,completionTokenCostPer1M:30},{name:"gpt-3.5-turbo",currency:"usd",promptTokenCostPer1M:.5,completionTokenCostPer1M:1.5},{name:"gpt-5-nano",currency:"usd",promptTokenCostPer1M:.5,completionTokenCostPer1M:1.5,notSupported:{temperature:!0,topP:!0}},{name:"gpt-5-mini",currency:"usd",promptTokenCostPer1M:2,completionTokenCostPer1M:6,notSupported:{temperature:!0,topP:!0}},{name:"gpt-5",currency:"usd",promptTokenCostPer1M:10,completionTokenCostPer1M:30,notSupported:{temperature:!0,topP:!0}},{name:"gpt-5-chat",currency:"usd",promptTokenCostPer1M:12,completionTokenCostPer1M:36,notSupported:{temperature:!0,topP:!0}},{name:"gpt-5",currency:"usd",promptTokenCostPer1M:20,completionTokenCostPer1M:60,notSupported:{temperature:!0,topP:!0}},{name:"o1",currency:"usd",promptTokenCostPer1M:15,completionTokenCostPer1M:60},{name:"o1-mini",currency:"usd",promptTokenCostPer1M:1.1,completionTokenCostPer1M:14.4},{name:"o3",currency:"usd",promptTokenCostPer1M:15,completionTokenCostPer1M:60},{name:"o3-mini",currency:"usd",promptTokenCostPer1M:1.1,completionTokenCostPer1M:4.4},{name:"o4-mini",currency:"usd",promptTokenCostPer1M:1.1,completionTokenCostPer1M:4.4},{name:"text-embedding-ada-002",currency:"usd",promptTokenCostPer1M:.1,completionTokenCostPer1M:.1},{name:"text-embedding-3-small",currency:"usd",promptTokenCostPer1M:.02,completionTokenCostPer1M:.02},{name:"text-embedding-3-large",currency:"usd",promptTokenCostPer1M:.13,completionTokenCostPer1M:.13}],Pn=[{name:"gpt-4",currency:"usd",promptTokenCostPer1M:30,completionTokenCostPer1M:60},{name:"gpt-4.1",currency:"usd",promptTokenCostPer1M:2,completionTokenCostPer1M:8},{name:"gpt-4.1-mini",currency:"usd",promptTokenCostPer1M:.4,completionTokenCostPer1M:1.6},{name:"gpt-4o",currency:"usd",promptTokenCostPer1M:5,completionTokenCostPer1M:15},{name:"gpt-4o-mini",currency:"usd",promptTokenCostPer1M:.15,completionTokenCostPer1M:.6},{name:"chatgpt-4o-latest",currency:"usd",promptTokenCostPer1M:5,completionTokenCostPer1M:15},{name:"gpt-4-turbo",currency:"usd",promptTokenCostPer1M:10,completionTokenCostPer1M:30},{name:"gpt-3.5-turbo",currency:"usd",promptTokenCostPer1M:.5,completionTokenCostPer1M:1.5},{name:"gpt-5-nano",currency:"usd",promptTokenCostPer1M:.5,completionTokenCostPer1M:1.5,notSupported:{temperature:!0,topP:!0},supported:{thinkingBudget:!0,showThoughts:!0}},{name:"gpt-5-mini",currency:"usd",promptTokenCostPer1M:2,completionTokenCostPer1M:6,notSupported:{temperature:!0,topP:!0},supported:{thinkingBudget:!0,showThoughts:!0}},{name:"gpt-5",currency:"usd",promptTokenCostPer1M:10,completionTokenCostPer1M:30,notSupported:{temperature:!0,topP:!0},supported:{thinkingBudget:!0,showThoughts:!0}},{name:"gpt-5-chat",currency:"usd",promptTokenCostPer1M:12,completionTokenCostPer1M:36,notSupported:{temperature:!0,topP:!0},supported:{thinkingBudget:!0,showThoughts:!0}},{name:"gpt-5",currency:"usd",promptTokenCostPer1M:20,completionTokenCostPer1M:60,notSupported:{temperature:!0,topP:!0},supported:{thinkingBudget:!0,showThoughts:!0}},{name:"o1-pro",currency:"usd",promptTokenCostPer1M:150,completionTokenCostPer1M:600,supported:{thinkingBudget:!0,showThoughts:!0},isExpensive:!0},{name:"o1",currency:"usd",promptTokenCostPer1M:15,completionTokenCostPer1M:60,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"o3-pro",currency:"usd",promptTokenCostPer1M:20,completionTokenCostPer1M:80,supported:{thinkingBudget:!0,showThoughts:!0},isExpensive:!0},{name:"o3",currency:"usd",promptTokenCostPer1M:15,completionTokenCostPer1M:60,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"o3-mini",currency:"usd",promptTokenCostPer1M:1.1,completionTokenCostPer1M:4.4,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"o4-mini",currency:"usd",promptTokenCostPer1M:1.1,completionTokenCostPer1M:4.4,supported:{thinkingBudget:!0,showThoughts:!0}}];var Il=s=>{let e=["o1","o1-mini","o3","o3-mini","o4-mini","o1-pro","o3-pro"];return e.includes(s)||e.includes(s)},Le=()=>structuredClone({model:"gpt-5-mini",embedModel:"text-embedding-3-small",...L()}),_n=()=>structuredClone({...Le(),model:"gpt-5"}),Fn=()=>structuredClone({model:"gpt-5-mini",embedModel:"text-embedding-3-small",...W()}),Dn=()=>({...Le(),model:"gpt-5-nano"}),so=class{constructor(e,t,n){this.config=e;this.streamingUsage=t;this.chatReqUpdater=n}tokensUsed;getTokenUsage(){return this.tokensUsed}getModelConfig(){let{config:e}=this;return{maxTokens:e.maxTokens,temperature:e.temperature,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,stopSequences:e.stopSequences,endSequences:e.endSequences,topP:e.topP,n:e.n,stream:e.stream}}createChatReq(e,t){let n=e.model;if(!e.chatPrompt||e.chatPrompt.length===0)throw new Error("Chat prompt is empty");let r={name:"/chat/completions"},o=e.functions?.map(m=>({type:"function",function:{name:m.name,description:m.description,parameters:m.parameters}})),i=!e.functionCall&&e.functions&&e.functions.length>0?"auto":e.functionCall,a=bl(e),l=e.modelConfig?.frequencyPenalty??this.config.frequencyPenalty,p=e.modelConfig?.stream??this.config.stream,u=this.config.store,c=Il(n),d={model:n,messages:a,...this.config?.responseFormat?{response_format:{type:this.config.responseFormat}}:{},...o?{tools:o}:{},...i?{tool_choice:i}:{},...c?{}:{...(e.modelConfig?.maxTokens??this.config.maxTokens)!==void 0?{max_completion_tokens:e.modelConfig?.maxTokens??this.config.maxTokens}:{},...e.modelConfig?.temperature!==void 0?{temperature:e.modelConfig.temperature}:{},...e.modelConfig?.topP!==void 0?{top_p:e.modelConfig.topP}:{},...(e.modelConfig?.n??this.config.n)!==void 0?{n:e.modelConfig?.n??this.config.n}:{},...(e.modelConfig?.presencePenalty??this.config.presencePenalty)!==void 0?{presence_penalty:e.modelConfig?.presencePenalty??this.config.presencePenalty}:{},...l!==void 0?{frequency_penalty:l}:{}},...(e.modelConfig?.stopSequences??this.config.stop)&&(e.modelConfig?.stopSequences??this.config.stop).length>0?{stop:e.modelConfig?.stopSequences??this.config.stop}:{},...this.config.logitBias!==void 0?{logit_bias:this.config.logitBias}:{},...p&&this.streamingUsage?{stream:!0,stream_options:{include_usage:!0}}:{},...u?{store:u}:{},...this.config.serviceTier?{service_tier:this.config.serviceTier}:{},...this.config.user?{user:this.config.user}:{}};if(this.config.reasoningEffort&&(d.reasoning_effort=this.config.reasoningEffort),this.config.webSearchOptions&&(d.web_search_options={...this.config.webSearchOptions.searchContextSize&&{search_context_size:this.config.webSearchOptions.searchContextSize},...this.config.webSearchOptions.userLocation&&{user_location:{approximate:{type:"approximate",...this.config.webSearchOptions.userLocation.approximate.city&&{city:this.config.webSearchOptions.userLocation.approximate.city},...this.config.webSearchOptions.userLocation.approximate.country&&{country:this.config.webSearchOptions.userLocation.approximate.country},...this.config.webSearchOptions.userLocation.approximate.region&&{region:this.config.webSearchOptions.userLocation.approximate.region},...this.config.webSearchOptions.userLocation.approximate.timezone&&{timezone:this.config.webSearchOptions.userLocation.approximate.timezone}}}}}),t?.thinkingTokenBudget)switch(t.thinkingTokenBudget){case"none":d.reasoning_effort=void 0;break;case"minimal":d.reasoning_effort="minimal";break;case"low":d.reasoning_effort="medium";break;case"medium":d.reasoning_effort="high";break;case"high":d.reasoning_effort="high";break;case"highest":d.reasoning_effort="high";break}return this.chatReqUpdater&&(d=this.chatReqUpdater(d)),[r,d]}createEmbedReq(e){let t=e.embedModel;if(!t)throw new Error("Embed model not set");if(!e.texts||e.texts.length===0)throw new Error("Embed texts is empty");let n={name:"/embeddings"},r={model:t,input:e.texts,dimensions:this.config.dimensions};return[n,r]}createChatResp(e){let{id:t,usage:n,choices:r,error:o}=e;if(o)throw o;return this.tokensUsed=n?{promptTokens:n.prompt_tokens,completionTokens:n.completion_tokens,totalTokens:n.total_tokens}:void 0,{results:r.map(a=>{if(a.message.refusal)throw new q(a.message.refusal,e.model,e.id);let l=ii(a.finish_reason),p=a.message.tool_calls?.map(({id:u,function:{arguments:c,name:d}})=>({id:u,type:"function",function:{name:d,params:c}}));return{index:a.index,id:`${a.index}`,content:a.message.content??void 0,thought:a.message.reasoning_content,citations:a.message.annotations?.filter(u=>u?.type==="url_citation"&&u.url_citation).map(u=>({url:u.url_citation?.url,title:u.url_citation?.title,description:u.url_citation?.description})),functionCalls:p,finishReason:l}}),remoteId:t}}createChatStreamResp(e,t){let{id:n,usage:r,choices:o}=e;this.tokensUsed=r?{promptTokens:r.prompt_tokens,completionTokens:r.completion_tokens,totalTokens:r.total_tokens}:void 0;let i=t;return i.indexIdMap||(i.indexIdMap={}),{results:o.map(({index:l,delta:{content:p,role:u,refusal:c,tool_calls:d,reasoning_content:m,annotations:g},finish_reason:h})=>{if(c)throw new q(c,void 0,n);let f=ii(h),x=d?.map(({id:A,index:b,function:{name:C,arguments:I}})=>{typeof A=="string"&&typeof b=="number"&&!i.indexIdMap[b]&&(i.indexIdMap[b]=A);let y=i.indexIdMap[b];return y?{id:y,type:"function",function:{name:C,params:I}}:null}).filter(A=>A!==null);return{index:l,content:p??void 0,role:u,thought:m,citations:g?.filter(A=>A?.type==="url_citation"&&A.url_citation).map(A=>({url:A.url_citation?.url,title:A.url_citation?.title,description:A.url_citation?.description})),functionCalls:x,finishReason:f,id:n}})}}createEmbedResp(e){let{data:t,usage:n}=e;return this.tokensUsed=n?{promptTokens:n.prompt_tokens,completionTokens:n.completion_tokens,totalTokens:n.total_tokens}:void 0,{embeddings:t.map(r=>r.embedding)}}},ii=s=>{switch(s){case"stop":return"stop";case"length":return"length";case"content_filter":return"error";case"tool_calls":return"function_call"}};function bl(s){return s.chatPrompt.map(t=>{switch(t.role){case"system":return{role:"system",content:t.content};case"user":{let n=Array.isArray(t.content)?t.content.map(r=>{switch(r.type){case"text":return{type:"text",text:r.text};case"image":return{type:"image_url",image_url:{url:`data:${r.mimeType};base64,${r.image}`,details:r.details??"auto"}};case"audio":return{type:"input_audio",input_audio:{data:r.data,format:r.format==="wav"?"wav":void 0}};default:throw new Error("Invalid content type")}}):t.content;return{role:"user",...t.name?{name:t.name}:{},content:n}}case"assistant":{let n=t.functionCalls?.map(r=>({id:r.id,type:"function",function:{name:r.function.name,arguments:typeof r.function.params=="object"?JSON.stringify(r.function.params):r.function.params}}));if(n&&n.length>0)return{role:"assistant",...t.content?{content:t.content}:{},name:t.name,tool_calls:n};if(t.content===void 0)throw new Error("Assistant content is required when no tool calls are provided");return{role:"assistant",content:t.content,...t.name?{name:t.name}:{}}}case"function":return{role:"tool",content:t.result,tool_call_id:t.functionId};default:throw new Error("Invalid role")}})}var j=class extends H{constructor({apiKey:e,config:t,options:n,apiURL:r,modelInfo:o,models:i,chatReqUpdater:a,supportFor:l}){if(!e||e==="")throw new Error("OpenAI API key not set");let p=new so(t,n?.streamingUsage??!0,a);super(p,{name:"OpenAI",apiURL:r||"https://api.openai.com/v1",headers:async()=>({Authorization:`Bearer ${e}`}),modelInfo:o,defaults:{model:t.model,embedModel:t.embedModel},options:n,supportFor:l,models:i})}},Ze=class extends j{constructor({apiKey:e,apiURL:t,config:n,options:r,models:o,modelInfo:i}){if(!e||e==="")throw new Error("OpenAI API key not set");i=[...Xe,...i??[]];let a=l=>{let p=ae({model:l,modelInfo:i,models:o});return{functions:!0,streaming:!0,hasThinkingBudget:p?.supported?.thinkingBudget??!1,hasShowThoughts:p?.supported?.showThoughts??!1,media:{images:{supported:!0,formats:["image/jpeg","image/png","image/gif","image/webp"],maxSize:20*1024*1024,detailLevels:["high","low","auto"]},audio:{supported:!0,formats:["wav","mp3","ogg"],maxDuration:25*60},files:{supported:!0,formats:["text/plain","application/pdf","image/jpeg","image/png"],maxSize:512*1024*1024,uploadMethod:"upload"},urls:{supported:!1,webSearch:!0,contextFetching:!1}},caching:{supported:!1,types:[]},thinking:p?.supported?.thinkingBudget??!1,multiTurn:!0}};super({apiKey:e,apiURL:t,config:{...Le(),...n},options:r,modelInfo:i,models:o,supportFor:a}),super.setName("OpenAI")}};var io=Le,ai=Fn,li=Dn,pi=_n,et=class extends j{constructor({apiKey:e,resourceName:t,deploymentName:n,version:r="api-version=2024-02-15-preview",config:o,options:i,models:a,modelInfo:l}){if(!e||e==="")throw new Error("Azure OpenAPI API key not set");if(!t||t==="")throw new Error("Azure OpenAPI resource name not set");if(!n||n==="")throw new Error("Azure OpenAPI deployment id not set");let p={...io(),...o};l=[...Xe,...l??[]];let u=d=>{let m=ae({model:d,modelInfo:l,models:a});return{functions:!0,streaming:!0,hasThinkingBudget:m?.supported?.thinkingBudget??!1,hasShowThoughts:m?.supported?.showThoughts??!1,functionCot:!1,media:{images:{supported:!0,formats:["image/jpeg","image/png","image/gif","image/webp"],maxSize:20*1024*1024,detailLevels:["high","low","auto"]},audio:{supported:!1,formats:[],maxDuration:0},files:{supported:!1,formats:[],maxSize:0,uploadMethod:"none"},urls:{supported:!1,webSearch:!1,contextFetching:!1}},caching:{supported:!1,types:[]},thinking:m?.supported?.thinkingBudget??!1,multiTurn:!0}};super({apiKey:e,config:p,options:i,models:a,modelInfo:l,supportFor:u});let c=t.includes("://")?t:`https://${t}.openai.azure.com/`;super.setName("Azure OpenAI"),super.setAPIURL(new URL(`/openai/deployments/${n}?api-version=${r}`,c).href),super.setHeaders(async()=>({"api-key":e}))}};var $n=class s{services;currentServiceIndex=0;currentService;debug;initialBackoffMs;maxBackoffMs;maxRetries;serviceFailures=new Map;constructor(e,t){if(e.length===0)throw new Error("No AI services provided.");Tl(e),this.services=[...e].sort(t?.comparator??s.metricComparator);let n=this.services[this.currentServiceIndex];if(n===void 0)throw new Error("Error initializing the AI services.");this.currentService=n,this.debug=t?.debug??!0,this.initialBackoffMs=t?.initialBackoffMs??1e3,this.maxBackoffMs=t?.maxBackoffMs??32e3,this.maxRetries=t?.maxRetries??3}static create(e,t){return new s(e,t)}getLastUsedChatModel(){return this.currentService.getLastUsedChatModel()}getLastUsedEmbedModel(){return this.currentService.getLastUsedEmbedModel()}getLastUsedModelConfig(){return this.currentService.getLastUsedModelConfig()}static inputOrderComparator=()=>0;static metricComparator=(e,t)=>{let n=e.getMetrics(),r=t.getMetrics();return n.latency.chat.mean-r.latency.chat.mean};getModelList(){return this.currentService.getModelList()}getNextService(){let e=this.services[++this.currentServiceIndex];return e===void 0?!1:(this.currentService=e,!0)}reset(){this.currentServiceIndex=0;let e=this.services[this.currentServiceIndex];if(e===void 0)throw new Error("No AI services provided.");this.currentService=e}getName(){return this.currentService.getName()}getId(){return this.currentService.getId()}getFeatures(e){return this.currentService.getFeatures(e)}getMetrics(){return this.currentService.getMetrics()}canRetryService(){let e=this.serviceFailures.get(this.currentService.getId());if(!e)return!0;let{retries:t,lastFailureTime:n}=e,r=Date.now()-n,o=Math.min(this.initialBackoffMs*2**t,this.maxBackoffMs);return r>=o}handleFailure(){let t=(this.serviceFailures.get(this.currentService.getId())?.retries??0)+1;if(this.serviceFailures.set(this.currentService.getId(),{retries:t,lastFailureTime:Date.now()}),this.debug&&console.warn(`AxBalancer: Service ${this.currentService.getName()} failed (retry ${t}/${this.maxRetries})`),t>=this.maxRetries){let n=this.getNextService();return this.debug&&console.warn(`AxBalancer: Switching to service ${this.currentService.getName()}`),n}return!0}handleSuccess(){this.serviceFailures.delete(this.currentService.getId())}async chat(e,t){for(this.reset();;){if(!this.canRetryService()){if(!this.getNextService())throw new Error("All services exhausted");continue}try{let n=await this.currentService.chat(e,t);return this.handleSuccess(),n}catch(n){if(!(n instanceof ne))throw n;switch(n.constructor){case ve:throw n;case De:break;case Ae:break;case be:break;case ue:break;case $e:break;default:throw n}if(!this.handleFailure())throw n}}}async embed(e,t){for(this.reset();;){if(!this.canRetryService()){if(!this.getNextService())throw new Error("All services exhausted");continue}try{let n=await this.currentService.embed(e,t);return this.handleSuccess(),n}catch(n){if(!this.handleFailure())throw n}}}setOptions(e){this.currentService.setOptions(e)}getOptions(){return this.currentService.getOptions()}getLogger(){return this.currentService.getLogger()}};function Tl(s){let e=s.find(r=>r.getModelList()!==void 0);if(!e)return;let t=e.getModelList();if(!t)throw new Error("No model list found in any service.");let n=new Set(t.map(r=>r.key));for(let r=0;r<s.length;r++){let o=s[r];if(!o)throw new Error(`Service at index ${r} is undefined`);let i=o.getModelList();if(!i)throw new Error(`Service at index ${r} (${o.getName()}) has no model list while another service does.`);let a=new Set(i.map(l=>l.key));for(let l of n)if(!a.has(l))throw new Error(`Service at index ${r} (${o.getName()}) is missing model "${l}"`);for(let l of a)if(!n.has(l))throw new Error(`Service at index ${r} (${o.getName()}) has extra model "${l}"`)}}function Ge(s){let e=!1,t=!1,n=!1,r=!1,o=!1,i=!1,a=!1,l=new Set,p=0;if(s.chatPrompt&&Array.isArray(s.chatPrompt))for(let u of s.chatPrompt){if(u.role==="user"&&Array.isArray(u.content))for(let c of u.content)switch(l.add(c.type),c.type){case"image":e=!0,c.cache&&(a=!0),p+=85;break;case"audio":t=!0,c.cache&&(a=!0),p+=c.duration||60;break;case"file":n=!0,c.cache&&(a=!0),p+=Math.ceil((c.extractedText?.length||1e3)/4);break;case"url":r=!0,c.cache&&(a=!0),p+=Math.ceil((c.cachedContent?.length||2e3)/4);break;case"text":c.cache&&(a=!0),p+=Math.ceil(c.text.length/4);break}else"content"in u&&typeof u.content=="string"&&(p+=Math.ceil(u.content.length/4));"cache"in u&&u.cache&&(a=!0)}return s.functions&&s.functions.length>0&&(o=!0),s.modelConfig?.stream===!0&&(i=!0),s.capabilities&&(s.capabilities.requiresImages&&(e=!0),s.capabilities.requiresAudio&&(t=!0),s.capabilities.requiresFiles&&(n=!0),s.capabilities.requiresWebSearch&&(r=!0)),{hasImages:e,hasAudio:t,hasFiles:n,hasUrls:r,requiresFunctions:o,requiresStreaming:i,requiresCaching:a,contentTypes:l,estimatedTokens:p}}function ao(s,e){let t=s.getFeatures(),n=[],r=[],o=[];if(e.hasImages&&!t.media.images.supported&&(n.push("Image support"),o.push("Use altText for images or imageToText service")),e.hasAudio&&!t.media.audio.supported&&(n.push("Audio support"),o.push("Pre-transcribe audio or use transcription field")),e.hasFiles&&!t.media.files.supported&&(n.push("File support"),o.push("Pre-extract text content or use extractedText field")),e.hasUrls&&!t.media.urls.supported&&(n.push("URL/Web search support"),o.push("Pre-fetch content or use cachedContent field")),e.requiresFunctions&&!t.functions&&n.push("Function calling"),e.requiresStreaming&&!t.streaming&&(n.push("Streaming responses"),o.push("Use non-streaming mode")),e.requiresCaching&&!t.caching.supported&&(n.push("Content caching"),o.push("Repeated content will not be cached")),e.hasImages&&t.media.images.supported){let a=t.media.images.maxSize;a&&a<10*1024*1024&&r.push(`Image size limit is ${Math.round(a/(1024*1024))}MB`)}if(e.hasAudio&&t.media.audio.supported){let a=t.media.audio.maxDuration;a&&a<600&&r.push(`Audio duration limit is ${Math.round(a/60)} minutes`)}return{isSupported:n.length===0,missingCapabilities:n,warnings:r,alternatives:o}}function Nn(s,e){return s.map(t=>{let n=t.getFeatures(),r=ao(t,e),o=0,i=[];return o+=10,e.hasImages&&n.media.images.supported&&(o+=25,i.push("Images"),n.media.images.detailLevels?.includes("high")&&(o+=5),n.media.images.maxSize&&n.media.images.maxSize>10*1024*1024&&(o+=3)),e.hasAudio&&n.media.audio.supported&&(o+=25,i.push("Audio"),n.media.audio.maxDuration&&n.media.audio.maxDuration>600&&(o+=5)),e.hasFiles&&n.media.files.supported&&(o+=25,i.push("Files"),n.media.files.uploadMethod==="cloud"&&(o+=3)),e.hasUrls&&n.media.urls.supported&&(o+=25,i.push("URLs"),n.media.urls.webSearch&&(o+=5)),e.requiresFunctions&&n.functions&&(o+=15,i.push("Functions"),n.functionCot&&(o+=3)),e.requiresStreaming&&n.streaming&&(o+=10,i.push("Streaming")),e.requiresCaching&&n.caching.supported&&(o+=8,i.push("Caching"),n.caching.types.includes("persistent")&&(o+=3)),n.thinking&&(o+=2),n.multiTurn&&(o+=2),n.hasThinkingBudget&&(o+=1),n.hasShowThoughts&&(o+=1),o-=r.missingCapabilities.length*10,{provider:t,score:o,missingCapabilities:r.missingCapabilities,supportedCapabilities:i}}).sort((t,n)=>n.score-t.score)}function Ln(s,e,t={}){if(e.length===0)throw new Error("No providers available");let n=Ge(s),r=Nn(e,n);if(t.requireExactMatch){let o=r.filter(i=>i.missingCapabilities.length===0);if(o.length===0)throw new Error(`No providers fully support the request requirements: ${r[0]?.missingCapabilities.join(", ")||"unknown requirements"}`);return o[0].provider}if(!t.allowDegradation){let o=r[0];if(o.missingCapabilities.length>0)throw new Error(`Best available provider (${o.provider.getName()}) is missing: ${o.missingCapabilities.join(", ")}`)}return r[0].provider}function ui(s,e){let t=Ge(s),n=Nn(e,t),r=n[0]?.provider||null,o=[t.hasImages&&"images",t.hasAudio&&"audio",t.hasFiles&&"files",t.hasUrls&&"URLs",t.requiresFunctions&&"functions",t.requiresStreaming&&"streaming",t.requiresCaching&&"caching"].filter(Boolean).length,i=r?n[0].supportedCapabilities.length:0,a=r?`${r.getName()} supports ${i}/${o} requirements (${Math.round(i/Math.max(o,1)*100)}% compatibility)`:"No suitable providers found";return{requirements:t,providerScores:n,recommendedProvider:r,summary:a}}function ci(s,e){return s.filter(t=>t.getFeatures().media[e].supported)}function di(s,e){let t={};for(let n of s){let o=n.getFeatures().media[e];if(o.supported)for(let i of o.formats)t[i]||(t[i]=[]),t[i].push(n)}return t}var Lt=(r=>(r.CommandRPlus="command-r-plus",r.CommandR="command-r",r.Command="command",r.CommandLight="command-light",r))(Lt||{}),Gt=(r=>(r.EmbedEnglishV30="embed-english-v3.0",r.EmbedEnglishLightV30="embed-english-light-v3.0",r.EmbedMultiLingualV30="embed-multilingual-v3.0",r.EmbedMultiLingualLightV30="embed-multilingual-light-v3.0",r))(Gt||{});var Gn=[{name:"command-r-plus",currency:"usd",promptTokenCostPer1M:3,completionTokenCostPer1M:15},{name:"command-r",currency:"usd",promptTokenCostPer1M:.5,completionTokenCostPer1M:1.5},{name:"command",currency:"usd",promptTokenCostPer1M:.5,completionTokenCostPer1M:1.5},{name:"command-light",currency:"usd",promptTokenCostPer1M:.3,completionTokenCostPer1M:.6},{name:"embed-english-light-v3.0",currency:"usd",promptTokenCostPer1M:.1,completionTokenCostPer1M:.1},{name:"embed-english-v3.0",currency:"usd",promptTokenCostPer1M:.1,completionTokenCostPer1M:.1},{name:"embed-multilingual-v3.0",currency:"usd",promptTokenCostPer1M:.1,completionTokenCostPer1M:.1},{name:"embed-multilingual-light-v3.0",currency:"usd",promptTokenCostPer1M:.1,completionTokenCostPer1M:.1}];var po=()=>structuredClone({model:"command-r-plus",embedModel:"embed-english-v3.0",...L()}),gi=()=>structuredClone({model:"command-r",embedModel:"embed-english-v3.0",...W()}),lo=class{constructor(e){this.config=e}tokensUsed;getTokenUsage(){return this.tokensUsed}getModelConfig(){let{config:e}=this;return{maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,frequencyPenalty:e.frequencyPenalty,presencePenalty:e.presencePenalty,endSequences:e.endSequences,stopSequences:e.stopSequences,stream:e.stream,n:e.n}}createChatReq(e){let t=e.model,n=e.chatPrompt.at(-1),r=e.chatPrompt.slice(0,-1),o;n&&n.role==="user"&&typeof n.content=="string"&&(o=n?.content);let i=Rl(r),a=e.functions?.map(c=>{let d={};if(c.parameters?.properties)for(let[m,g]of Object.entries(c.parameters.properties))d[m]={description:g.description,type:g.type,required:c.parameters.required?.includes(m)??!1};return{name:c.name,description:c.description,parameter_definitions:d}}),l=e.chatPrompt.filter(c=>c.role==="function").map(c=>{let d=a?.find(m=>m.name===c.functionId);if(!d)throw new Error("Function not found");return{call:{name:d.name,parameters:d.parameter_definitions},outputs:[{result:c.result??""}]}}),p={name:"/chat"},u={message:o,model:t,tools:a,...l&&!o?{tool_results:l}:{},chat_history:i,max_tokens:e.modelConfig?.maxTokens??this.config.maxTokens,...e.modelConfig?.temperature!==void 0?{temperature:e.modelConfig.temperature}:{},k:e.modelConfig?.topK??this.config.topK,...e.modelConfig?.topP!==void 0?{p:e.modelConfig.topP}:{},frequency_penalty:e.modelConfig?.frequencyPenalty??this.config.frequencyPenalty,presence_penalty:e.modelConfig?.presencePenalty??this.config.presencePenalty,end_sequences:this.config.endSequences,stop_sequences:e.modelConfig?.stopSequences??this.config.stopSequences};return[p,u]}createEmbedReq=e=>{let t=e.embedModel;if(!t)throw new Error("Embed model not set");if(!e.texts||e.texts.length===0)throw new Error("Embed texts is empty");let n={name:"/embed"},r={model:t,texts:e.texts??[],input_type:"classification",truncate:""};return[n,r]};createChatResp=e=>{this.tokensUsed=e.meta.billed_units?{promptTokens:e.meta.billed_units.input_tokens,completionTokens:e.meta.billed_units.output_tokens,totalTokens:e.meta.billed_units.input_tokens+e.meta.billed_units.output_tokens}:void 0;let t;if("finish_reason"in e)switch(e.finish_reason){case"COMPLETE":t="stop";break;case"MAX_TOKENS":t="length";break;case"ERROR":throw new Error("Finish reason: ERROR");case"ERROR_TOXIC":throw new Error("Finish reason: CONTENT_FILTER");default:t="stop";break}let n;return"tool_calls"in e&&(n=e.tool_calls?.map(o=>({id:o.name,type:"function",function:{name:o.name,params:o.parameters}}))),{results:[{index:0,id:e.generation_id,content:e.text,functionCalls:n,finishReason:t}],remoteId:e.response_id}};createChatStreamResp=(e,t)=>{let n=t;e.event_type==="stream-start"&&(n.generation_id=e.generation_id),this.tokensUsed={promptTokens:0,completionTokens:e.meta.billed_units?.output_tokens??0,totalTokens:e.meta.billed_units?.output_tokens??0};let{results:r}=this.createChatResp(e),o=r[0];if(!o)throw new Error("No result");return o.id=n.generation_id??"",{results:r}};createEmbedResp(e){return{remoteId:e.id,embeddings:e.embeddings}}},tt=class extends H{constructor({apiKey:e,config:t,options:n,models:r}){if(!e||e==="")throw new Error("Cohere API key not set");let o={...po(),...t},i=new lo(o);super(i,{name:"Cohere",apiURL:"https://api.cohere.ai/v1",headers:async()=>({Authorization:`Bearer ${e}`}),modelInfo:Gn,defaults:{model:o.model},supportFor:{functions:!0,streaming:!0,media:{images:{supported:!1,formats:[],maxSize:0,detailLevels:[]},audio:{supported:!1,formats:[],maxDuration:0},files:{supported:!1,formats:[],maxSize:0,uploadMethod:"none"},urls:{supported:!1,webSearch:!1,contextFetching:!1}},caching:{supported:!1,types:[]},thinking:!1,multiTurn:!0},options:n,models:r})}};function Rl(s){return s.map(e=>{let t="";if(e.role==="system"||e.role==="assistant"||e.role==="user")if(typeof e.content=="string")t=e.content;else throw new Error("Multi-modal content not supported");switch(e.role){case"user":return{role:"USER",message:t};case"system":return{role:"SYSTEM",message:t};case"assistant":{let n=mi(e.functionCalls);return{role:"CHATBOT",message:t,tool_calls:n}}case"function":{let n=s.map(i=>{if(i.role==="assistant")return i.functionCalls?.find(a=>a.id===e.functionId)}).filter(i=>i!==void 0),r=mi(n)?.at(0);if(!r)throw new Error("Function call not found");let o=[{result:e.result}];return{role:"TOOL",tool_results:[{call:r,outputs:o}]}}default:throw new Error("Unknown role")}})}function mi(s){return s?.map(e=>{let t=typeof e.function.params=="string"?JSON.parse(e.function.params):e.function.params;return{name:e.function.name,parameters:t}})}var Ut=(n=>(n.DeepSeekChat="deepseek-chat",n.DeepSeekCoder="deepseek-coder",n.DeepSeekReasoner="deepseek-reasoner",n))(Ut||{});var Un=[{name:"deepseek-chat",currency:"USD",promptTokenCostPer1M:.27,completionTokenCostPer1M:1.1},{name:"deepseek-reasoner",currency:"USD",promptTokenCostPer1M:.55,completionTokenCostPer1M:2.19}];var uo=()=>structuredClone({model:"deepseek-chat",...L()}),hi=()=>structuredClone({model:"deepseek-coder",...W()}),nt=class extends j{constructor({apiKey:e,config:t,options:n,models:r,modelInfo:o}){if(!e||e==="")throw new Error("DeepSeek API key not set");let i={...uo(),...t};o=[...Un,...o??[]],super({apiKey:e,config:i,options:n,apiURL:"https://api.deepseek.com",modelInfo:o,supportFor:{functions:!0,streaming:!0,hasThinkingBudget:!1,hasShowThoughts:!1,media:{images:{supported:!1,formats:[]},audio:{supported:!1,formats:[]},files:{supported:!1,formats:[],uploadMethod:"none"},urls:{supported:!1,webSearch:!1,contextFetching:!1}},caching:{supported:!1,types:[]},thinking:!1,multiTurn:!0},models:r}),super.setName("DeepSeek")}};var Bt=(u=>(u.Gemini25Pro="gemini-2.5-pro",u.Gemini25Flash="gemini-2.5-flash",u.Gemini25FlashLite="gemini-2.5-flash-lite",u.Gemini20Flash="gemini-2.0-flash",u.Gemini20FlashLite="gemini-2.0-flash-lite",u.Gemini1Pro="gemini-1.0-pro",u.Gemini15Flash="gemini-1.5-flash",u.Gemini15Flash002="gemini-1.5-flash-002",u.Gemini15Flash8B="gemini-1.5-flash-8b",u.Gemini15Pro="gemini-1.5-pro",u))(Bt||{}),Bn=(r=>(r.GeminiEmbedding="gemini-embedding-exp",r.TextEmbeddingLarge="text-embedding-large-exp-03-07",r.TextEmbedding004="text-embedding-004",r.TextEmbedding005="text-embedding-005",r))(Bn||{}),qn=(r=>(r.HarmCategoryHarassment="HARM_CATEGORY_HARASSMENT",r.HarmCategoryHateSpeech="HARM_CATEGORY_HATE_SPEECH",r.HarmCategorySexuallyExplicit="HARM_CATEGORY_SEXUALLY_EXPLICIT",r.HarmCategoryDangerousContent="HARM_CATEGORY_DANGEROUS_CONTENT",r))(qn||{}),zn=(o=>(o.BlockNone="BLOCK_NONE",o.BlockOnlyHigh="BLOCK_ONLY_HIGH",o.BlockMediumAndAbove="BLOCK_MEDIUM_AND_ABOVE",o.BlockLowAndAbove="BLOCK_LOW_AND_ABOVE",o.BlockDefault="HARM_BLOCK_THRESHOLD_UNSPECIFIED",o))(zn||{}),co=(l=>(l.SemanticSimilarity="SEMANTIC_SIMILARITY",l.Classification="CLASSIFICATION",l.Clustering="CLUSTERING",l.RetrievalDocument="RETRIEVAL_DOCUMENT",l.RetrievalQuery="RETRIEVAL_QUERY",l.QuestionAnswering="QUESTION_ANSWERING",l.FactVerification="FACT_VERIFICATION",l.CodeRetrievalQuery="CODE_RETRIEVAL_QUERY",l))(co||{});var jn=[{name:"gemini-2.5-pro",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:2.5,completionTokenCostPer1M:15,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"gemini-2.5-flash",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:15,completionTokenCostPer1M:3.5,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"gemini-2.5-flash-lite",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:.1,completionTokenCostPer1M:.4,supported:{thinkingBudget:!0,showThoughts:!0}},{name:"gemini-2.0-flash",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:.01,completionTokenCostPer1M:.4},{name:"gemini-2.0-flash-lite",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:0,completionTokenCostPer1M:0},{name:"gemini-1.5-flash",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:.075,completionTokenCostPer1M:.3},{name:"gemini-1.5-flash-8b",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:.0375,completionTokenCostPer1M:.15},{name:"gemini-1.5-pro",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:1.25,completionTokenCostPer1M:5},{name:"gemini-1.0-pro",currency:"usd",characterIsToken:!1,promptTokenCostPer1M:.5,completionTokenCostPer1M:1.5}];var mo=s=>{if(!s||typeof s!="object")return s;let e={...s};return delete e.additionalProperties,delete e.default,delete e.optional,delete e.maximum,delete e.oneOf,delete e.anyOf,e.properties&&typeof e.properties=="object"&&(e.properties=Object.fromEntries(Object.entries(e.properties).map(([t,n])=>[t,mo(n)]))),e.items&&(e.items=mo(e.items)),e},fi=[{category:"HARM_CATEGORY_HARASSMENT",threshold:"BLOCK_NONE"},{category:"HARM_CATEGORY_HATE_SPEECH",threshold:"BLOCK_NONE"},{category:"HARM_CATEGORY_SEXUALLY_EXPLICIT",threshold:"BLOCK_NONE"},{category:"HARM_CATEGORY_DANGEROUS_CONTENT",threshold:"BLOCK_NONE"}],ho=()=>structuredClone({model:"gemini-2.5-flash",embedModel:"text-embedding-005",safetySettings:fi,thinkingTokenBudgetLevels:{minimal:200,low:800,medium:5e3,high:1e4,highest:24500},...L()}),Ai=()=>structuredClone({model:"gemini-2.0-flash",embedModel:"text-embedding-005",safetySettings:fi,thinkingTokenBudgetLevels:{minimal:200,low:800,medium:5e3,high:1e4,highest:24500},...W()}),go=class{constructor(e,t,n,r,o){this.config=e;this.isVertex=t;this.endpointId=n;this.apiKey=r;this.options=o;if(!this.isVertex&&this.config.autoTruncate)throw new Error("Auto truncate is not supported for GoogleGemini")}tokensUsed;getTokenUsage(){return this.tokensUsed}getModelConfig(){let{config:e}=this;return{maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,presencePenalty:e.presencePenalty,frequencyPenalty:e.frequencyPenalty,stopSequences:e.stopSequences,endSequences:e.endSequences,stream:e.stream,n:e.n}}createChatReq=async(e,t)=>{let n=e.model,r=e.modelConfig?.stream??this.config.stream;if(!e.chatPrompt||e.chatPrompt.length===0)throw new Error("Chat prompt is empty");let o;if(this.endpointId?o={name:r?`/${this.endpointId}:streamGenerateContent?alt=sse`:`/${this.endpointId}:generateContent`}:o={name:r?`/models/${n}:streamGenerateContent?alt=sse`:`/models/${n}:generateContent`},!this.isVertex){let h=r?"&":"?",f=typeof this.apiKey=="function"?await this.apiKey():this.apiKey;o.name+=`${h}key=${f}`}let i=e.chatPrompt.filter(h=>h.role==="system").map(h=>h.content),a=i.length>0?{role:"user",parts:[{text:i.join(" ")}]}:void 0,l=e.chatPrompt.filter(h=>h.role!=="system").map((h,f)=>{switch(h.role){case"user":return{role:"user",parts:Array.isArray(h.content)?h.content.map((A,b)=>{switch(A.type){case"text":return{text:A.text};case"image":return{inlineData:{mimeType:A.mimeType,data:A.image}};case"audio":return{inlineData:{mimeType:`audio/${A.format??"mp3"}`,data:A.data}};case"file":return"fileUri"in A?{fileData:{mimeType:A.mimeType,fileUri:A.fileUri}}:{inlineData:{mimeType:A.mimeType,data:A.data}};default:throw new Error(`Chat prompt content type not supported (index: ${b})`)}}):[{text:h.content}]};case"assistant":{let x=[];if(h.functionCalls){if(x=h.functionCalls.map(A=>{let b=typeof A.function.params=="string"?JSON.parse(A.function.params):A.function.params;return{functionCall:{name:A.function.name,args:b}}}),!x)throw new Error("Function call is empty");return{role:"model",parts:x}}if(!h.content)throw new Error("Assistant content is empty");return x=[{text:h.content}],{role:"model",parts:x}}case"function":{if(!("functionId"in h))throw new Error(`Chat prompt functionId is empty (index: ${f})`);return{role:"user",parts:[{functionResponse:{name:h.functionId,response:{result:h.result}}}]}}default:throw new Error(`Invalid role: ${JSON.stringify(h)} (index: ${f})`)}}),p=[];if(e.functions&&e.functions.length>0){let h=e.functions.map(f=>({...f,parameters:f.parameters?mo(f.parameters):void 0}));p.push({function_declarations:h})}this.options?.codeExecution&&p.push({code_execution:{}}),this.options?.googleSearchRetrieval&&p.push({google_search_retrieval:{dynamic_retrieval_config:this.options.googleSearchRetrieval}}),this.options?.googleSearch&&p.push({google_search:{}}),this.options?.urlContext&&p.push({url_context:{}}),p.length===0&&(p=void 0);let u;if(e.functionCall)if(e.functionCall==="none")u={function_calling_config:{mode:"NONE"}};else if(e.functionCall==="auto")u={function_calling_config:{mode:"AUTO"}};else if(e.functionCall==="required")u={function_calling_config:{mode:"ANY"}};else{let h=e.functionCall.function?.name?{allowedFunctionNames:[e.functionCall.function.name]}:{};u={function_calling_config:{mode:"ANY"},...h}}else p&&p.length>0&&(u={function_calling_config:{mode:"AUTO"}});let c={};if(this.config.thinking?.includeThoughts&&(c.includeThoughts=!0),this.config.thinking?.thinkingTokenBudget&&(c.thinkingBudget=this.config.thinking.thinkingTokenBudget),t?.thinkingTokenBudget){let h=this.config.thinkingTokenBudgetLevels;switch(t.thinkingTokenBudget){case"none":c.thinkingBudget=0,c.includeThoughts=!1;break;case"minimal":c.thinkingBudget=h?.minimal??200;break;case"low":c.thinkingBudget=h?.low??800;break;case"medium":c.thinkingBudget=h?.medium??5e3;break;case"high":c.thinkingBudget=h?.high??1e4;break;case"highest":c.thinkingBudget=h?.highest??24500;break}}t?.showThoughts!==void 0&&t?.thinkingTokenBudget!=="none"&&(c.includeThoughts=t.showThoughts);let d={maxOutputTokens:e.modelConfig?.maxTokens??this.config.maxTokens,...e.modelConfig?.temperature!==void 0?{temperature:e.modelConfig.temperature}:{},...e.modelConfig?.topP!==void 0?{topP:e.modelConfig.topP}:{},topK:e.modelConfig?.topK??this.config.topK,frequencyPenalty:e.modelConfig?.frequencyPenalty??this.config.frequencyPenalty,candidateCount:1,stopSequences:e.modelConfig?.stopSequences??this.config.stopSequences,responseMimeType:"text/plain",...Object.keys(c).length>0?{thinkingConfig:c}:{}},m=this.config.safetySettings;return[o,{contents:l,tools:p,toolConfig:u,systemInstruction:a,generationConfig:d,safetySettings:m}]};createEmbedReq=async e=>{let t=e.embedModel;if(!t)throw new Error("Embed model not set");if(!e.texts||e.texts.length===0)throw new Error("Embed texts is empty");let n,r;if(this.isVertex)this.endpointId?n={name:`/${this.endpointId}:predict`}:n={name:`/models/${t}:predict`},r={instances:e.texts.map(o=>({content:o,...this.config.embedType&&{taskType:this.config.embedType}})),parameters:{autoTruncate:this.config.autoTruncate,outputDimensionality:this.config.dimensions}};else{let o=typeof this.apiKey=="function"?this.apiKey():this.apiKey;n={name:`/models/${t}:batchEmbedContents?key=${o}`},r={requests:e.texts.map(i=>({model:`models/${t}`,content:{parts:[{text:i}]},outputDimensionality:this.config.dimensions,...this.config.embedType&&{taskType:this.config.embedType}}))}}return[n,r]};createChatResp=e=>{let t=e.candidates?.map(n=>{let r={index:0};switch(n.finishReason){case"MAX_TOKENS":r.finishReason="length";break;case"STOP":r.finishReason="stop";break;case"SAFETY":throw new q("Content was blocked due to safety settings",void 0,void 0);case"RECITATION":throw new q("Content was blocked due to recitation policy",void 0,void 0);case"MALFORMED_FUNCTION_CALL":throw new q("Function call was malformed and blocked",void 0,void 0);case"UNEXPECTED_TOOL_CALL":throw new q("Unexpected tool call",void 0,void 0);case"FINISH_REASON_UNSPECIFIED":throw new q("Finish reason unspecified",void 0,void 0);case"BLOCKLIST":throw new q("Content was blocked due to blocklist",void 0,void 0);case"PROHIBITED_CONTENT":throw new q("Content was blocked due to prohibited content",void 0,void 0);case"SPII":throw new q("Content was blocked due to SPII",void 0,void 0);case"OTHER":throw new q("Other finish reason",void 0,void 0)}if(!n.content||!n.content.parts)return r;for(let i of n.content.parts){if("text"in i){"thought"in i&&i.thought?r.thought=i.text:r.content=i.text;continue}"functionCall"in i&&(r.functionCalls=[{id:te(),type:"function",function:{name:i.functionCall.name,params:i.functionCall.args}}])}let o=n.citationMetadata?.citations;if(Array.isArray(o)&&o.length){let i=a=>a?`${a.year}-${String(a.month).padStart(2,"0")}-${String(a.day).padStart(2,"0")}`:void 0;r.citations=o.filter(a=>typeof a?.uri=="string").map(a=>({url:a.uri,title:a.title,license:a.license,publicationDate:i(a.publicationDate)}))}return r});return e.usageMetadata&&(this.tokensUsed={totalTokens:e.usageMetadata.totalTokenCount,promptTokens:e.usageMetadata.promptTokenCount,completionTokens:e.usageMetadata.candidatesTokenCount,thoughtsTokens:e.usageMetadata.thoughtsTokenCount}),{results:t}};createChatStreamResp=e=>this.createChatResp(e);createEmbedResp=e=>{let t;return this.isVertex?t=e.predictions.map(n=>n.embeddings.values):t=e.embeddings.map(n=>n.values),{embeddings:t}}},rt=class s extends H{static create(e){return new s(e)}constructor({apiKey:e,projectId:t,region:n,endpointId:r,config:o,options:i,models:a,modelInfo:l}){let p=t!==void 0&&n!==void 0,u,c;if(p){if(!e)throw new Error("GoogleGemini Vertex API key not set");if(typeof e!="function")throw new Error("GoogleGemini Vertex API key must be a function for token-based authentication");let h;r?h="endpoints":h="publishers/google",u=`https://${n==="global"?"aiplatform":`${n}-aiplatform`}.googleapis.com/v1/projects/${t}/locations/${n}/${h}`,c=async()=>({Authorization:`Bearer ${typeof e=="function"?await e():e}`})}else{if(!e)throw new Error("GoogleGemini AI API key not set");u="https://generativelanguage.googleapis.com/v1beta",c=async()=>({})}let d={...ho(),...o},m=new go(d,p,r,e,i);l=[...jn,...l??[]];let g=h=>{let f=ae({model:h,modelInfo:l,models:a});return{functions:!0,streaming:!0,hasThinkingBudget:f?.supported?.thinkingBudget??!1,hasShowThoughts:f?.supported?.showThoughts??!1,media:{images:{supported:!0,formats:["image/jpeg","image/png","image/gif","image/webp"],maxSize:20*1024*1024,detailLevels:["high","low","auto"]},audio:{supported:!0,formats:["wav","mp3","aac","ogg"],maxDuration:9.5*60},files:{supported:!0,formats:["application/pdf","text/plain","text/csv","text/html","text/xml"],maxSize:2*1024*1024*1024,uploadMethod:"cloud"},urls:{supported:!0,webSearch:!0,contextFetching:!0}},caching:{supported:!1,types:[]},thinking:f?.supported?.thinkingBudget??!1,multiTurn:!0}};super(m,{name:"GoogleGeminiAI",apiURL:u,headers:c,modelInfo:l,defaults:{model:d.model,embedModel:d.embedModel},options:i,supportFor:g,models:a})}};var Cl=new Z,ot=class{options;maxTokens;refillRate;currentTokens;lastRefillTime;constructor(e,t,n){this.maxTokens=e,this.refillRate=t,this.currentTokens=e,this.lastRefillTime=Date.now(),this.options=n}refillTokens(){let e=Date.now(),n=(e-this.lastRefillTime)/1e3*this.refillRate;this.currentTokens=Math.min(this.maxTokens,this.currentTokens+n),this.lastRefillTime=e}async waitUntilTokensAvailable(e){if(this.refillTokens(),this.currentTokens>=e){this.currentTokens-=e;return}return this.options?.debug&&console.log(Cl.red(`Rate limiter: Waiting for ${e-this.currentTokens} tokens`)),await new Promise(t=>setTimeout(t,100)),this.waitUntilTokensAvailable(e)}async acquire(e){await this.waitUntilTokensAvailable(e)}};var qt=(r=>(r.Llama3_8B="llama3-8b-8192",r.Llama33_70B="llama-3.3-70b-versatile",r.Mixtral_8x7B="mixtral-8x7b-32768",r.Gemma2_9B="gemma2-9b-it",r))(qt||{});var Hn=[{name:"gemma2-9b-it",currency:"usd",characterIsToken:!0,promptTokenCostPer1M:.2,completionTokenCostPer1M:.2},{name:"llama-3.3-70b-versatile",currency:"usd",characterIsToken:!0,promptTokenCostPer1M:.59,completionTokenCostPer1M:.79},{name:"llama3-8b-8192",currency:"usd",characterIsToken:!0,promptTokenCostPer1M:.05,completionTokenCostPer1M:.08},{name:"mixtral-8x7b-32768",currency:"usd",characterIsToken:!0,promptTokenCostPer1M:.24,completionTokenCostPer1M:.24}];var wl=()=>structuredClone({model:"llama-3.3-70b-versatile",...L()}),st=class extends j{constructor({apiKey:e,config:t,options:n,models:r,modelInfo:o}){if(!e||e==="")throw new Error("Groq API key not set");let i={...wl(),...t},a={...n,streamingUsage:!1};o=[...Hn,...o??[]];let l={functions:!0,streaming:!0,hasThinkingBudget:!1,hasShowThoughts:!1,media:{images:{supported:!1,formats:[]},audio:{supported:!1,formats:[]},files:{supported:!1,formats:[],uploadMethod:"none"},urls:{supported:!1,webSearch:!1,contextFetching:!1}},caching:{supported:!1,types:[]},thinking:!1,multiTurn:!0};super({apiKey:e,config:i,options:a,modelInfo:o,apiURL:"https://api.groq.com/openai/v1",models:r,supportFor:l}),super.setName("Groq"),this.setOptions(a)}setOptions=e=>{let t=this.newRateLimiter(e);super.setOptions({...e,rateLimiter:t})};newRateLimiter=e=>{if(e?.rateLimiter)return e.rateLimiter;let t=e?.tokensPerMinute??4800,n=new ot(t,t/60,{debug:e?.debug});return async(o,i)=>{let a=i.modelUsage?.tokens?.totalTokens||0;return await n.acquire(a),await o()}}};var Kn=[];var Vn=(e=>(e.MetaLlama270BChatHF="meta-llama/Llama-2-70b-chat-hf",e))(Vn||{});var Ao=()=>structuredClone({model:"meta-llama/Llama-2-70b-chat-hf",...L()}),xi=()=>structuredClone({model:"meta-llama/Llama-2-70b-chat-hf",...W()}),fo=class{constructor(e){this.config=e}tokensUsed;getTokenUsage(){return this.tokensUsed}getModelConfig(){let{config:e}=this;return{maxTokens:e.maxTokens,temperature:e.temperature,topP:e.topP,topK:e.topK,n:e.n,presencePenalty:e.presencePenalty}}createChatReq=e=>{let t=e.model,n=e.functions?`Functions:
112
146
  ${JSON.stringify(e.functions,null,2)}
113
147
  `:"",r=e.chatPrompt?.map(l=>{switch(l.role){case"user":return`User: ${l.content}`;case"system":return`System: ${l.content}`;case"function":return`Function Result: ${l.result}`;case"assistant":{let p=l.functionCalls?.map(u=>{let c=typeof u.function.params=="string"?u.function.params:JSON.stringify(u.function.params);return`${u.function.name}(${c})`}).join(`
@@ -155,9 +189,9 @@ ${r.message}
155
189
  Tip: Arrays must include an "items" schema (e.g., { items: { type: "string" } } or items: { type: "object", properties: { ... } }).`,{cause:r}):r}return[...e??[],...t]},Do=async({ai:s,functionList:e,functionCalls:t,mem:n,sessionId:r,traceId:o,span:i,excludeContentFromTrace:a,index:l,functionResultFormatter:p,logger:u})=>{let c=new tn(e),d=new Set,m=t.map(f=>{if(!f.id)throw new Error(`Function ${f.name} did not return an ID`);let x=s.getOptions().tracer??U.tracer;return x?x.startActiveSpan(`Tool: ${f.name}`,async A=>{try{A?.setAttributes?.({"tool.name":f.name,"tool.mode":"native","function.id":f.id,"session.id":r??""});let b=await c.execute(f,{sessionId:r,ai:s,functionResultFormatter:p,traceId:A?.spanContext?.().traceId??o});if(d.add(f.name.toLowerCase()),a?A.addEvent("gen_ai.tool.message",{name:f.name}):A.addEvent("gen_ai.tool.message",{name:f.name,args:f.args,result:b??""}),i){let C={name:f.name};a||(C.args=f.args,C.result=b??""),i.addEvent("function.call",C)}return{result:b??"",role:"function",functionId:f.id,index:l}}catch(b){if(A?.recordException?.(b),b instanceof en){let C=b.getFixingInstructions(),I={name:f.name,message:b.toString()};return a||(I.args=f.args,I.fixing_instructions=C),A?.addEvent?.("function.error",I),s.getOptions().debug&&Xr(b,l,C,u),{functionId:f.id,isError:!0,index:l,result:C,role:"function"}}throw b}finally{A?.end?.()}}):c.execute(f,{sessionId:r,ai:s,functionResultFormatter:p,traceId:o}).then(A=>{if(d.add(f.name.toLowerCase()),i){let b={name:f.name};a||(b.args=f.args,b.result=A??""),i.addEvent("function.call",b)}return{result:A??"",role:"function",functionId:f.id,index:l}}).catch(A=>{if(!(A instanceof en))throw A;let b=A.getFixingInstructions();if(i){let C={name:f.name,message:A.toString()};a||(C.args=f.args,C.fixing_instructions=b),i.addEvent("function.error",C)}return s.getOptions().debug&&Xr(A,l,b,u),{functionId:f.id,isError:!0,index:l,result:b,role:"function"}})}),h=(await Promise.all(m)).filter(f=>f!==void 0);if(n.addFunctionResults(h,r),s.getOptions().debug){let f=h.filter(x=>!x.isError);f.length>0&&_s(f,u)}return h.some(f=>f.isError)&&n.addTag("error",r),d};function $o(s,e,t,n){if(!e||e.length===0)return;if(!s.getFeatures(n).functions)throw new Error("Functions are not supported by the AI service");return e.map(o=>({id:o.id,name:o.function.name,args:o.function.params}))}function Hi(s,e,t,n){let r=e;return n?.functionCallMode==="prompt"?{functions:[],functionCall:void 0}:!t&&(r==="required"||typeof r=="function")?{functions:[],functionCall:void 0}:s?{functions:s.map(i=>"toFunction"in i?i.toFunction():i).flat(),functionCall:r}:{functions:[],functionCall:r}}var Ee=An(Ki(),1),Yi=An(Vi(),1),Qi=An(Wi(),1),Xi=An(Ji(),1);Ee.default.extend(Xi.default);Ee.default.extend(Qi.default);Ee.default.extend(Yi.default);function Zi(s,e,t=!1){try{return _l(e)}catch(n){if(s.isOptional&&!t)return;let r=n.message;throw new Y({fields:[s],message:r,value:e})}}function _l(s){if(!(0,Ee.default)(s,"YYYY-MM-DD",!0).isValid())throw new Error('Invalid date format. Please provide the date in "YYYY-MM-DD" format.');return Ee.default.utc(s,"YYYY-MM-DD").startOf("day").toDate()}function ea(s,e,t=!1){try{return Fl(e)}catch(n){if(s.isOptional&&!t)return;let r=n.message;throw new Y({fields:[s],message:r,value:e})}}function Fl(s){let e=/^(\d{4}-\d{2}-\d{2} \d{2}:\d{2}(?::\d{2})?) (.+)$/,t=s.match(e);if(!t)throw new Error('Invalid date and time format. Please provide the date and time in "YYYY-MM-DD HH:mm" or "YYYY-MM-DD HH:mm:ss" format, followed by the timezone.');let[,n,r]=t;if(!n||!r)throw new Error('Invalid date and time format. Please provide the date and time in "YYYY-MM-DD HH:mm" or "YYYY-MM-DD HH:mm:ss" format, followed by the timezone.');try{let o=n.includes(":")&&n.split(":").length===3?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD HH:mm",i=Ee.default.tz(n,o,r);if(!i.isValid())throw new Error("Invalid date and time values. Please ensure all components are correct.");return i.utc().toDate()}catch{throw new Error(`Unrecognized time zone ${r}. Please provide a valid time zone name, abbreviation, or offset. For example, "America/New_York", or "EST".`)}}var ta=s=>(0,Ee.default)(s).utc().format("YYYY-MM-DD HH:mm:ss [UTC]");var $g=new Z;var dr=(s,e)=>{let t=s.type??{name:"string",isArray:!1},n=(p,u)=>{switch(p){case"class":return typeof u=="string";case"code":return typeof u=="string";case"string":return typeof u=="string";case"number":return typeof u=="number";case"boolean":return typeof u=="boolean";case"date":return u instanceof Date||typeof u=="string";case"datetime":return u instanceof Date||typeof u=="string";case"json":return typeof u=="object"||typeof u=="string";default:return!1}},r=p=>!(!p||typeof p!="object"||!("mimeType"in p)||!("data"in p));if(s.type?.name==="image"){let p;if(Array.isArray(e)){for(let u of e)if(!r(u)){p="object ({ mimeType: string; data: string })";break}}else r(e)||(p="object ({ mimeType: string; data: string })");if(p)throw new Error(`Validation failed: Expected '${s.name}' to be type '${p}' instead got '${e}'`);return}let o=p=>!(!p||typeof p!="object"||!("data"in p));if(s.type?.name==="audio"){let p;if(Array.isArray(e)){for(let u of e)if(!o(u)){p="object ({ data: string; format?: string })";break}}else o(e)||(p="object ({ data: string; format?: string })");if(p)throw new Error(`Validation failed: Expected '${s.name}' to be type '${p}' instead got '${e}'`);return}let i=p=>{if(!p||typeof p!="object"||!("mimeType"in p))return!1;let u="data"in p,c="fileUri"in p;return!(!u&&!c||u&&c)};if(s.type?.name==="file"){let p;if(Array.isArray(e)){for(let u of e)if(!i(u)){p="object ({ mimeType: string; data: string } | { mimeType: string; fileUri: string })";break}}else i(e)||(p="object ({ mimeType: string; data: string } | { mimeType: string; fileUri: string })");if(p)throw new Error(`Validation failed: Expected '${s.name}' to be type '${p}' instead got '${e}'`);return}let a=p=>typeof p=="string"?!0:!(!p||typeof p!="object"||!("url"in p));if(s.type?.name==="url"){let p;if(Array.isArray(e)){for(let u of e)if(!a(u)){p="string or object ({ url: string; title?: string; description?: string })";break}}else a(e)||(p="string or object ({ url: string; title?: string; description?: string })");if(p)throw new Error(`Validation failed: Expected '${s.name}' to be type '${p}' instead got '${e}'`);return}let l=!0;if(t.isArray){if(!Array.isArray(e))l=!1;else for(let p of e)if(!n(t.name,p)){l=!1;break}}else l=n(t.name,e);if(!l){let p=Array.isArray(e)?"array":typeof e;throw new Error(`Validation failed: Expected '${s.name}' to be a ${s.type?.isArray?"an array of ":""}${t.name} instead got '${p}' (${JSON.stringify(e)})`)}};function nn(s){let e={};for(let t of s){let n=`${t.ai}:${t.model}`;if(!e[n]){e[n]={...t};continue}let r=e[n];if(r){let o=r.tokens??{promptTokens:0,completionTokens:0,totalTokens:0};o.promptTokens+=t?.tokens?.promptTokens??0,o.completionTokens+=t?.tokens?.completionTokens??0,o.totalTokens+=t?.tokens?.totalTokens??0,r.tokens=o;let i=r.citations??[],a=t.citations??[];if(a.length){let l=new Set(i.map(p=>p.url));for(let p of a)p?.url&&!l.has(p.url)&&(i.push(p),l.add(p.url));r.citations=i}}}return Object.values(e)}var na=s=>{if(!s.trim())return[];let e=new Set(["-","*","+"]),t=/^\d+[\s]*[.)\]]\s*/,n=s.split(`
156
190
  `),r=[];for(let o of n){let i=o.trim();if(i){if(i[0]&&e.has(i[0]))r.push(i.slice(1).trim());else if(t.test(i))r.push(i.replace(t,"").trim());else if(r.length!==0)throw new Error("Could not parse markdown list: mixed content detected")}}if(r.length===0)throw new Error("Could not parse markdown list: no valid list items found");return r};function Ko(s,e){let{index:t,delta:n,version:r}=e,o=s.find(i=>i.index===t)?.delta;if(!o)return s.push({index:t,delta:n,version:r}),s;for(let i of Object.keys(n)){let a=o[i],l=n[i];a===void 0&&Array.isArray(l)?o[i]=[...l]:Array.isArray(a)&&Array.isArray(l)?o[i]=[...a,...l]:(a===void 0||typeof a=="string")&&typeof l=="string"?o[i]=`${a??""}${l}`:o[i]=l}return s}var Ho=class{cache=new Map;maxSize;constructor(e){this.maxSize=e}get(e){let t=this.cache.get(e);return t&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){let n=this.cache.keys().next().value;n&&this.cache.delete(n)}this.cache.set(e,t)}},Dl=new Ho(500);function Vo(s,e,t=0,n=Dl){if(/^```[a-zA-Z]*\s*$/.test(s))return-4;if(/^[\s`]*$/.test(s))return-3;let r=s.indexOf(e,t);if(r!==-1)return r;let o=n.get(e)??Array.from({length:e.length},(a,l)=>e.slice(0,l+1));n.get(e)||n.set(e,o);let i=-1;for(let a=o.length-1;a>=0;a--){let l=o[a];if(s.endsWith(l)){i=a;break}}return i>=0?-2:-1}var sa=(s,e,t,n=!1)=>{let r={extractedFields:[],streamedIndex:{},s:-1};Wo(s,e,r,t,{strictMode:n}),Jo(s,e,r,t,n);for(let o of s.getOutputFields())o.isInternal&&delete e[o.name]},$l=(s,e,t)=>{let n=[];for(let r of t)r&&!r.isOptional&&e[r.name]===void 0&&n.push(r);if(n.length>0)throw new Y({message:`Required ${n.length===1?"field":"fields"} not found`,fields:n})},Wo=(s,e,t,n,{strictMode:r,skipEarlyFail:o}={})=>{let i=s.getOutputFields(),a;for(let[l,p]of i.entries()){if(l===t.currFieldIndex&&!t.inAssumedField||p.name in e&&!(l===t.currFieldIndex&&t.inAssumedField))continue;let c=`${(t.extractedFields.length===0?"":`
157
191
  `)+p.title}:`,d=Vo(n,c,t.s),m=c.length;switch(d){case-1:if(o)continue;if(!r&&i.length===1&&t.currField===void 0){t.inAssumedField=!0,a=p,m=0,d=0;break}if(t.currField===void 0&&t.extractedFields.length===0){if(r&&!p.isOptional)throw new Y({message:"Expected (Required) field not found",fields:[p]});if(!r){let g=!1;for(let h=l;h<i.length;h++){let f=i[h];if(!f)continue;let x=`${(t.extractedFields.length===0?"":`
158
- `)+f.title}:`;if(Vo(n,x,t.s)>=0){g=!0;break}}if(!g){t.inAssumedField=!0,a=p,m=0,d=0;break}}}a=p.isOptional?void 0:p;continue;case-2:return!0;case-3:return!0;case-4:return t.inBlock=!0,!0}if(a&&a.name!==p.name)throw new Y({message:"Expected (Required) field not found",fields:[a]});if(t.currField!==void 0&&t.inAssumedField){let g=n.substring(0,d).trim();if(g&&t.currField.name===p.name){let h=rn(t.currField,g);h!==void 0&&(e[t.currField.name]=h)}else if(g){let h=rn(t.currField,g);h!==void 0&&(e[t.currField.name]=h)}t.inAssumedField=!1,t.streamedIndex[t.currField.name]=0,t.currField=void 0}if(t.currField){let g=n.substring(t.s,d).trim(),h=rn(t.currField,g);h!==void 0&&(e[t.currField.name]=h),t.prevFields?t.prevFields?.push({field:t.currField,s:t.s,e:d}):t.prevFields=[{field:t.currField,s:t.s,e:d}]}t.s=d+m,t.currField=p,t.currFieldIndex=l,t.extractedFields.includes(p)||t.extractedFields.push(p),t.streamedIndex[p.name]===void 0&&(t.streamedIndex[p.name]=0)}},Jo=(s,e,t,n,r=!1)=>{if(t.currField){let o=n.substring(t.s).trim(),i=rn(t.currField,o);i!==void 0&&(e[t.currField.name]=i)}if(r&&!t.currField&&t.extractedFields.length===0&&n.trim()){let a=s.getOutputFields().find(l=>!l.isOptional);if(a)throw new Y({message:"Expected field not found",fields:[a]})}Nl(s,e,n),$l(t,e,s.getOutputFields())},Nl=(s,e,t)=>{let n=s.getOutputFields();for(let r of n){if(!r.isOptional||r.name in e)continue;let o=`${r.title}:`,i=t.indexOf(o);if(i===-1)continue;let a=i+o.length,l=t.length;for(let u of n){if(u.name===r.name)continue;let c=`${u.title}:`,d=t.indexOf(c,a);d!==-1&&d<l&&(l=d)}let p=t.substring(a,l).trim();if(p)try{let u=rn(r,p);u!==void 0&&(e[r.name]=u)}catch{}}},ra=(s,e,t=!1)=>{switch(s.type?.name){case"code":return ia(e);case"string":return e;case"number":{let n=Number(e);if(Number.isNaN(n)){if(s.isOptional&&!t)return;throw new Error("Invalid number")}return n}case"boolean":{if(typeof e=="boolean")return e;let n=e.toLowerCase();if(n==="true")return!0;if(n==="false")return!1;if(s.isOptional&&!t)return;throw new Error("Invalid boolean")}case"date":return Zi(s,e,t);case"datetime":return ea(s,e,t);case"class":{let n=e;if(s.type.options&&!s.type.options.includes(n)){if(s.isOptional)return;throw new Error(`Invalid class '${e}', expected one of the following: ${s.type.options.join(", ")}`)}return n}default:return e}};function*oa(s,e,t,n,r,o){let{name:i,isInternal:a}=e,{isArray:l,name:p}=e.type??{};if(a||l||p&&p!=="string"&&p!=="code")return;let u=r.streamedIndex[i]??0,c=u===0,d=s.substring(t+u,n);if(d.length===0)return;let m=d.replace(/\s+$/,"");r.currField?.type?.name==="code"&&(m=m.replace(/\s*```\s*$/,""));let g=c?m.trimStart():m;r.currField?.type?.name==="code"&&(g=g.replace(/^[ ]*```[a-zA-Z0-9]*\n\s*/,"")),g.length>0&&(yield{index:o,delta:{[i]:g}},r.streamedIndex[i]=u+m.length)}function*Yo(s,e,t,n,r){for(let i of n.prevFields??[]){let{field:a,s:l,e:p}=i;yield*oa(e,a,l,p,n,r)}if(n.prevFields=void 0,!n.currField||n.currField.isInternal)return;yield*oa(e,n.currField,n.s,e.length,n,r);let o=s.getOutputFields();for(let i of Object.keys(t)){let a=o.find(p=>p.name===i);if(!a||a.isInternal)continue;let l=t[i];if(Array.isArray(l)){let p=n.streamedIndex?.[i]??0,u=l.slice(p);u&&u.length>0&&(yield{index:r,delta:{[i]:u}},n.streamedIndex[i]=p+u.length);continue}n.streamedIndex[i]||(yield{index:r,delta:{[i]:l}},n.streamedIndex[i]=1)}}function rn(s,e){if(!e||e===""||/^(null|undefined)\s*$/i.test(e)){if(s.isOptional)return;throw new Y({message:"Required field is missing",fields:[s],value:e})}let t;if(s.type?.name==="json")try{let n=ia(e);return t=JSON.parse(n),t}catch(n){throw new Y({message:`Invalid JSON: ${n.message}`,fields:[s],value:e})}if(s.type?.isArray)try{try{t=JSON.parse(e)}catch{t=na(e)}if(!Array.isArray(t))throw new Error("Expected an array")}catch(n){throw new Y({message:`Invalid Array: ${n.message}`,fields:[s],value:e})}try{if(Array.isArray(t)){for(let[n,r]of t.entries())if(r!==void 0){let o=typeof r=="string"?r.trim():r;t[n]=ra(s,o,!0)}}else t=ra(s,e)}catch(n){throw new Y({message:n.message,fields:[s],value:e})}if(!(typeof t=="string"&&t===""))return t}var ia=s=>{let t=/```([A-Za-z]*)\n([\s\S]*?)\n```/g.exec(s);return t?t.length===3?t[2]:t.length===2?t[1]:s:s};async function Qo(s,e,t,n){for(let r of s){if(e[r.field.name]===void 0)continue;let o=r.process,i=await o(e[r.field.name],{sessionId:n,values:e,done:!0});aa(r.field,t,i,n)}}async function Xo(s,e,t,n,r,o,i=!1){for(let a of s){if(t.currField?.name!==a.field.name)continue;let l=e.substring(t.s);t.currField?.type?.name==="code"&&(l=l.replace(/^[ ]*```[a-zA-Z0-9]*\n\s*/,""),l=l.replace(/\s*```\s*$/,""));let p=a.process,u=await p(l,{sessionId:o,values:r,done:i});aa(t.currField,n,u,o)}}var aa=(s,e,t,n)=>{if(t===void 0||typeof t=="string"&&(t===""||/^(null|undefined)\s*$/i.test(t)))return;let r=JSON.stringify(t,(i,a)=>typeof a=="bigint"?Number(a):a,2),o=Ll(s,r);e.addRequest([{role:"user",content:[{type:"text",text:o}]}],n),e.addTag("processor",n)};function Ll(s,e){let t=s.type?.name==="code",n=s.title;return t?`Code in the field "${n}" was executed. The code execution produced the following output: ${e}`:`The field "${n}" was processed. The field contents were transformed into the following output: ${e}`}async function*la({res:s,usage:e,states:t,...n}){let r=(n.ai.getFeatures().functionCot??!1)&&n.functions!==void 0&&n.functions.length>0,o,i=[],a=s.getReader();try{for(;;){let{done:l,value:p}=await a.read();if(l)break;let u=p;u.modelUsage&&(o=u.modelUsage);for(let c of u.results){if(Array.isArray(c.citations))for(let m of c.citations)m?.url&&i.push({url:m.url,title:m.title,description:m.description,license:m.license,publicationDate:m.publicationDate,snippet:m.snippet});if((!c.content||c.content==="")&&(!c.thought||c.thought==="")&&(!c.functionCalls||c.functionCalls.length===0))continue;let d=t.find(m=>m.index===c.index);if(!d)throw new Error(`No state found for result (index: ${c.index})`);yield*Gl({...n,result:c,skipEarlyFail:r,state:d})}}}finally{a.releaseLock()}for(let l of t)yield*Ul({...n,state:l});if(o){if(i.length){let l=Array.from(new Map(i.filter(p=>p.url).map(p=>[p.url,p])).values());o.citations=l}e.push(o),n.logger&&n.logger({name:"ChatResponseUsage",value:structuredClone(o)})}}async function*Gl({result:s,mem:e,sessionId:t,strictMode:n,skipEarlyFail:r,state:o,signature:i,streamingFieldProcessors:a,thoughtFieldName:l,streamingAsserts:p,asserts:u}){if(s.functionCalls&&s.functionCalls.length>0)Sn(o.functionCalls,s.functionCalls),e.updateResult({name:s.name,content:s.content,functionCalls:o.functionCalls,delta:s.functionCalls?.[0]?.function?.params,index:s.index},t);else if(s.content&&s.content.length>0){if(s.thought&&s.thought.length>0&&(yield{index:s.index,delta:{[l]:s.thought}}),o.content+=s.content,e.updateResult({name:s.name,content:o.content,delta:s.content,index:s.index},t),Wo(i,o.values,o.xstate,o.content,{strictMode:n,skipEarlyFail:r}))return;p.length!==0&&await Mo(p,o.xstate,o.content),a.length!==0&&await Xo(a,o.content,o.xstate,e,o.values,t),yield*Yo(i,o.content,o.values,o.xstate,s.index),await lr(u,o.values)}else s.thought&&s.thought.length>0&&(o.values[l]=(o.values[l]??"")+s.thought,yield{index:s.index,delta:{[l]:s.thought}});if(s.finishReason==="length")throw new Error(`Max tokens reached before completion
159
- Content: ${o.content}`)}async function*Ul({state:s,signature:e,ai:t,model:n,functions:r,mem:o,sessionId:i,traceId:a,span:l,strictMode:p,excludeContentFromTrace:u,streamingAsserts:c,asserts:d,fieldProcessors:m,streamingFieldProcessors:g,functionResultFormatter:h,logger:f}){let x=$o(t,s.functionCalls,s.values,n);if(x){if(!r)throw new Error("Functions are not defined");let A=await Do({ai:t,functionList:r,functionCalls:x,mem:o,sessionId:i,traceId:a,span:l,index:s.index,excludeContentFromTrace:u,functionResultFormatter:h,logger:f});s.functionsExecuted=new Set([...s.functionsExecuted,...A]),s.functionCalls=[]}else Jo(e,s.values,s.xstate,s.content,p),await Mo(c,s.xstate,s.content,!0),await lr(d,s.values),m.length&&await Qo(m,s.values,o,i),g.length!==0&&await Xo(g,s.content,s.xstate,o,s.values,i,!0),yield*Yo(e,s.content,s.values,s.xstate,s.index)}async function*pa({ai:s,res:e,mem:t,sessionId:n,traceId:r,functions:o,span:i,strictMode:a,states:l,usage:p,excludeContentFromTrace:u,asserts:c,fieldProcessors:d,thoughtFieldName:m,signature:g,functionResultFormatter:h,logger:f}){let x=e.results??[];t.addResponse(x,n);let A=[];for(let y of x)if(Array.isArray(y?.citations))for(let T of y.citations)T?.url&&A.push({url:T.url,title:T.title,description:T.description,license:T.license,publicationDate:T.publicationDate,snippet:T.snippet});for(let y of x){let T=l[y.index];if(!T)throw new Error(`No state found for result (index: ${y.index})`);if(e.modelUsage){let S=Array.from(new Map(A.filter(N=>N.url).map(N=>[N.url,N])).values()),M={...e.modelUsage,...S.length?{citations:S}:{}};p.push(M),f&&f({name:"ChatResponseUsage",value:structuredClone(M)})}if(y.functionCalls?.length){let S=$o(s,y.functionCalls,T.values);if(S){if(!o)throw new Error("Functions are not defined");let M=await Do({ai:s,functionList:o,functionCalls:S,mem:t,sessionId:n,traceId:r,span:i,excludeContentFromTrace:u,index:y.index,functionResultFormatter:h,logger:f});T.functionsExecuted=new Set([...T.functionsExecuted,...M])}}else y.content&&(y.thought&&y.thought.length>0&&(T.values[m]=y.thought),sa(g,T.values,y.content,a),await lr(c,T.values),d.length&&await Qo(d,T.values,t,n));if(y.finishReason==="length")throw new Error(`Max tokens reached before completion
160
- Content: ${y.content}`)}let b=l.map(y=>y.values);for(let y of b)for(let T of g.getOutputFields())T.isInternal&&delete y[T.name];let C=g.getOutputFields(),I=b.map((y,T)=>{let S={};for(let M of C)M.isInternal||(S[M.name]=y[M.name]);return y[m]!==void 0&&(S[m]=y[m]),{index:T,delta:S}});for(let y of I)yield y}function ua(s,e,t,n){let r=s.getLast(n);if(!r)return!0;for(let[o,i]of t.entries()){let a=e&&i.functionsExecuted.has(e);if(!r.chat[o])throw new Error(`No chat message found for result (index: ${o})`);let p=r.role==="function",u=r.tags?r.tags.some(c=>c==="processor"):!1;if(p&&e&&a||!(p||u))return!1}return!0}var It=class{reg;constructor(){this.reg=new Set}register(e){this.reg.add(e)}*[Symbol.iterator](){let e=Array.from(this.reg);for(let t=0;t<e.length;t++)yield e[t]}};var F=class extends Error{constructor(t,n,r,o){super(t);this.position=n;this.context=r;this.suggestion=o;this.name="SignatureValidationError"}},Zo=class{input;position;currentFieldName=null;currentSection="description";constructor(e){if(this.input=e.trim(),this.position=0,!this.input)throw new F("Empty signature provided",0,"",'A signature must contain at least input and output fields separated by "->". Example: "userQuery:string -> aiResponse:string"')}parse(){try{this.skipWhitespace();let e=this.parseParsedString();this.skipWhitespace(),this.currentSection="inputs";let t=this.parseFieldList(this.parseInputField.bind(this),"input");if(this.skipWhitespace(),this.position>=this.input.length)throw new F("Incomplete signature: Missing output section",this.position,this.getErrorContext(),'Add "->" followed by output fields. Example: "-> responseText:string"');if(this.expectArrow(),this.skipWhitespace(),this.position>=this.input.length)throw new F('Incomplete signature: No output fields specified after "->"',this.position,this.getErrorContext(),'Add at least one output field. Example: "-> responseText:string"');this.currentSection="outputs";let n=this.parseFieldList(this.parseOutputField.bind(this),"output");if(this.skipWhitespace(),this.position<this.input.length){let r=this.input.slice(this.position);throw new F(`Unexpected content after signature: "${r}"`,this.position,this.getErrorContext(),"Remove any extra content after the output fields")}return this.validateParsedSignature({desc:e?.trim(),inputs:t,outputs:n}),{desc:e?.trim(),inputs:t,outputs:n}}catch(e){if(e instanceof F)throw e;let t=e instanceof Error?e.message:"Unknown error";throw new F(t,this.position,this.getErrorContext())}}validateParsedSignature(e){let t=new Set;for(let r of e.inputs){if(t.has(r.name))throw new F(`Duplicate input field name: "${r.name}"`,0,"","Each field name must be unique within the signature");t.add(r.name)}let n=new Set;for(let r of e.outputs){if(n.has(r.name))throw new F(`Duplicate output field name: "${r.name}"`,0,"","Each field name must be unique within the signature");n.add(r.name)}for(let r of e.outputs)if(t.has(r.name))throw new F(`Field name "${r.name}" appears in both inputs and outputs`,0,"","Use different names for input and output fields to avoid confusion");if(e.inputs.length===0)throw new F("Signature must have at least one input field",0,"",'Add an input field before "->". Example: "userInput:string -> ..."');if(e.outputs.length===0)throw new F("Signature must have at least one output field",0,"",'Add an output field after "->". Example: "... -> responseText:string"')}getErrorContext(){let e=Math.max(0,this.position-25),t=Math.min(this.input.length,this.position+25),n=this.input.slice(e,this.position),r=this.input.slice(this.position,t),o=`${" ".repeat(n.length)}^`;return[`Position ${this.position} in signature:`,`"${n}${r}"`,` ${o}`].join(`
192
+ `)+f.title}:`;if(Vo(n,x,t.s)>=0){g=!0;break}}if(!g){t.inAssumedField=!0,a=p,m=0,d=0;break}}}a=p.isOptional?void 0:p;continue;case-2:return!0;case-3:return!0;case-4:return t.inBlock=!0,!0}if(a&&a.name!==p.name)throw new Y({message:"Expected (Required) field not found",fields:[a]});if(t.currField!==void 0&&t.inAssumedField){let g=n.substring(0,d).trim();if(g&&t.currField.name===p.name){let h=rn(t.currField,g);h!==void 0&&(e[t.currField.name]=h)}else if(g){let h=rn(t.currField,g);h!==void 0&&(e[t.currField.name]=h)}t.inAssumedField=!1,t.streamedIndex[t.currField.name]=0,t.currField=void 0}if(t.currField){let g=n.substring(t.s,d).trim(),h=rn(t.currField,g);h!==void 0&&(e[t.currField.name]=h),t.prevFields?t.prevFields?.push({field:t.currField,s:t.s,e:d}):t.prevFields=[{field:t.currField,s:t.s,e:d}]}t.s=d+m,t.currField=p,t.currFieldIndex=l,t.extractedFields.includes(p)||t.extractedFields.push(p),t.streamedIndex[p.name]===void 0&&(t.streamedIndex[p.name]=0)}},Jo=(s,e,t,n,r=!1)=>{if(t.currField){let o=n.substring(t.s).trim(),i=rn(t.currField,o);i!==void 0&&(e[t.currField.name]=i)}if(r&&!t.currField&&t.extractedFields.length===0&&n.trim()){let a=s.getOutputFields().find(l=>!l.isOptional);if(a)throw new Y({message:"Expected field not found",fields:[a]})}Nl(s,e,n),$l(t,e,s.getOutputFields())},Nl=(s,e,t)=>{let n=s.getOutputFields();for(let r of n){if(!r.isOptional||r.name in e)continue;let o=`${r.title}:`,i=t.indexOf(o);if(i===-1)continue;let a=i+o.length,l=t.length;for(let u of n){if(u.name===r.name)continue;let c=`${u.title}:`,d=t.indexOf(c,a);d!==-1&&d<l&&(l=d)}let p=t.substring(a,l).trim();if(p)try{let u=rn(r,p);u!==void 0&&(e[r.name]=u)}catch{}}},ra=(s,e,t=!1)=>{switch(s.type?.name){case"code":return ia(e);case"string":return e;case"number":{let n=Number(e);if(Number.isNaN(n)){if(s.isOptional&&!t)return;throw new Error("Invalid number")}return n}case"boolean":{if(typeof e=="boolean")return e;let n=e.toLowerCase();if(n==="true")return!0;if(n==="false")return!1;if(s.isOptional&&!t)return;throw new Error("Invalid boolean")}case"date":return Zi(s,e,t);case"datetime":return ea(s,e,t);case"class":{let n=e;if(s.type.options&&!s.type.options.includes(n)){if(s.isOptional)return;throw new Error(`Invalid class '${e}', expected one of the following: ${s.type.options.join(", ")}`)}return n}default:return e}};function*oa(s,e,t,n,r,o){let{name:i,isInternal:a}=e,{isArray:l,name:p}=e.type??{};if(a||l||p&&p!=="string"&&p!=="code")return;let u=r.streamedIndex[i]??0,c=u===0,d=s.substring(t+u,n);if(d.length===0)return;let m=d.replace(/\s+$/,"");r.currField?.type?.name==="code"&&(m=m.replace(/\s*```\s*$/,""));let g=c?m.trimStart():m;r.currField?.type?.name==="code"&&(g=g.replace(/^[ ]*```[a-zA-Z0-9]*\n\s*/,"")),g.length>0&&(yield{index:o,delta:{[i]:g}},r.streamedIndex[i]=u+m.length)}function*Yo(s,e,t,n,r){for(let i of n.prevFields??[]){let{field:a,s:l,e:p}=i;yield*oa(e,a,l,p,n,r)}if(n.prevFields=void 0,!n.currField||n.currField.isInternal)return;yield*oa(e,n.currField,n.s,e.length,n,r);let o=s.getOutputFields();for(let i of Object.keys(t)){let a=o.find(p=>p.name===i);if(!a||a.isInternal)continue;let l=t[i];if(Array.isArray(l)){let p=n.streamedIndex?.[i]??0,u=l.slice(p);u&&u.length>0&&(yield{index:r,delta:{[i]:u}},n.streamedIndex[i]=p+u.length);continue}n.streamedIndex[i]||(yield{index:r,delta:{[i]:l}},n.streamedIndex[i]=1)}}function rn(s,e){if(!e||e===""||/^(null|undefined)\s*$/i.test(e)){if(s.isOptional)return;throw new Y({message:"Required field is missing",fields:[s],value:e})}let t;if(s.type?.name==="json")try{let n=ia(e);return t=JSON.parse(n),t}catch(n){throw new Y({message:`Invalid JSON: ${n.message}`,fields:[s],value:e})}if(s.type?.isArray)try{try{t=JSON.parse(e)}catch{t=na(e)}if(!Array.isArray(t))throw new Error("Expected an array")}catch(n){throw new Y({message:`Invalid Array: ${n.message}`,fields:[s],value:e})}try{if(Array.isArray(t)){for(let[n,r]of t.entries())if(r!==void 0){let o=typeof r=="string"?r.trim():r;t[n]=ra(s,o,!0)}}else t=ra(s,e)}catch(n){throw new Y({message:n.message,fields:[s],value:e})}if(!(typeof t=="string"&&t===""))return t}var ia=s=>{let t=/```([A-Za-z]*)\n([\s\S]*?)\n```/g.exec(s);return t?t.length===3?t[2]:t.length===2?t[1]:s:s};async function Qo(s,e,t,n){for(let r of s){if(e[r.field.name]===void 0)continue;let o=r.process,i=await o(e[r.field.name],{sessionId:n,values:e,done:!0});aa(r.field,t,i,n)}}async function Xo(s,e,t,n,r,o,i=!1){for(let a of s){if(t.currField?.name!==a.field.name)continue;let l=e.substring(t.s);t.currField?.type?.name==="code"&&(l=l.replace(/^[ ]*```[a-zA-Z0-9]*\n\s*/,""),l=l.replace(/\s*```\s*$/,""));let p=a.process,u=await p(l,{sessionId:o,values:r,done:i});aa(t.currField,n,u,o)}}var aa=(s,e,t,n)=>{if(t===void 0||typeof t=="string"&&(t===""||/^(null|undefined)\s*$/i.test(t)))return;let r=JSON.stringify(t,(i,a)=>typeof a=="bigint"?Number(a):a,2),o=Ll(s,r);e.addRequest([{role:"user",content:[{type:"text",text:o}]}],n),e.addTag("processor",n)};function Ll(s,e){let t=s.type?.name==="code",n=s.title;return t?`Code in the field "${n}" was executed. The code execution produced the following output: ${e}`:`The field "${n}" was processed. The field contents were transformed into the following output: ${e}`}async function*la({res:s,usage:e,states:t,...n}){let r=(n.ai.getFeatures().functionCot??!1)&&n.functions!==void 0&&n.functions.length>0,o,i=[],a=s.getReader();try{for(;;){let{done:l,value:p}=await a.read();if(l)break;let u=p;u.modelUsage&&(o=u.modelUsage);for(let c of u.results){if(Array.isArray(c.citations))for(let m of c.citations)m?.url&&i.push({url:m.url,title:m.title,description:m.description,license:m.license,publicationDate:m.publicationDate,snippet:m.snippet});if((!c.content||c.content==="")&&(!c.thought||c.thought==="")&&(!c.functionCalls||c.functionCalls.length===0))continue;let d=t.find(m=>m.index===c.index);if(!d)throw new Error(`No state found for result (index: ${c.index})`);yield*Gl({...n,result:c,skipEarlyFail:r,state:d})}}}finally{a.releaseLock()}for(let l of t)yield*Ul({...n,state:l});if(o){if(i.length){let l=Array.from(new Map(i.filter(p=>p.url).map(p=>[p.url,p])).values());o.citations=l}if(e.push(o),n.logger){let l=structuredClone(o);delete l.citations,n.logger({name:"ChatResponseUsage",value:l}),o.citations&&o.citations.length>0&&n.logger({name:"ChatResponseCitations",value:o.citations})}}}async function*Gl({result:s,mem:e,sessionId:t,strictMode:n,skipEarlyFail:r,state:o,signature:i,streamingFieldProcessors:a,thoughtFieldName:l,streamingAsserts:p,asserts:u}){if(s.functionCalls&&s.functionCalls.length>0)Sn(o.functionCalls,s.functionCalls),e.updateResult({name:s.name,content:s.content,functionCalls:o.functionCalls,delta:s.functionCalls?.[0]?.function?.params,index:s.index},t);else if(s.content&&s.content.length>0){if(s.thought&&s.thought.length>0&&(yield{index:s.index,delta:{[l]:s.thought}}),o.content+=s.content,e.updateResult({name:s.name,content:o.content,delta:s.content,index:s.index},t),Wo(i,o.values,o.xstate,o.content,{strictMode:n,skipEarlyFail:r}))return;p.length!==0&&await Mo(p,o.xstate,o.content),a.length!==0&&await Xo(a,o.content,o.xstate,e,o.values,t),yield*Yo(i,o.content,o.values,o.xstate,s.index),await lr(u,o.values)}else s.thought&&s.thought.length>0&&(o.values[l]=(o.values[l]??"")+s.thought,yield{index:s.index,delta:{[l]:s.thought}});if(s.finishReason==="length")throw new Error(`Max tokens reached before completion
193
+ Content: ${o.content}`)}async function*Ul({state:s,signature:e,ai:t,model:n,functions:r,mem:o,sessionId:i,traceId:a,span:l,strictMode:p,excludeContentFromTrace:u,streamingAsserts:c,asserts:d,fieldProcessors:m,streamingFieldProcessors:g,functionResultFormatter:h,logger:f}){let x=$o(t,s.functionCalls,s.values,n);if(x){if(!r)throw new Error("Functions are not defined");let A=await Do({ai:t,functionList:r,functionCalls:x,mem:o,sessionId:i,traceId:a,span:l,index:s.index,excludeContentFromTrace:u,functionResultFormatter:h,logger:f});s.functionsExecuted=new Set([...s.functionsExecuted,...A]),s.functionCalls=[]}else Jo(e,s.values,s.xstate,s.content,p),await Mo(c,s.xstate,s.content,!0),await lr(d,s.values),m.length&&await Qo(m,s.values,o,i),g.length!==0&&await Xo(g,s.content,s.xstate,o,s.values,i,!0),yield*Yo(e,s.content,s.values,s.xstate,s.index)}async function*pa({ai:s,res:e,mem:t,sessionId:n,traceId:r,functions:o,span:i,strictMode:a,states:l,usage:p,excludeContentFromTrace:u,asserts:c,fieldProcessors:d,thoughtFieldName:m,signature:g,functionResultFormatter:h,logger:f}){let x=e.results??[];t.addResponse(x,n);let A=[];for(let y of x)if(Array.isArray(y?.citations))for(let T of y.citations)T?.url&&A.push({url:T.url,title:T.title,description:T.description,license:T.license,publicationDate:T.publicationDate,snippet:T.snippet});for(let y of x){let T=l[y.index];if(!T)throw new Error(`No state found for result (index: ${y.index})`);if(e.modelUsage){let S=Array.from(new Map(A.filter(N=>N.url).map(N=>[N.url,N])).values()),O={...e.modelUsage,...S.length?{citations:S}:{}};if(p.push(O),f){let N=structuredClone(O);delete N.citations,f({name:"ChatResponseUsage",value:N}),O.citations&&O.citations.length>0&&f({name:"ChatResponseCitations",value:O.citations})}}if(y.functionCalls?.length){let S=$o(s,y.functionCalls,T.values);if(S){if(!o)throw new Error("Functions are not defined");let O=await Do({ai:s,functionList:o,functionCalls:S,mem:t,sessionId:n,traceId:r,span:i,excludeContentFromTrace:u,index:y.index,functionResultFormatter:h,logger:f});T.functionsExecuted=new Set([...T.functionsExecuted,...O])}}else y.content&&(y.thought&&y.thought.length>0&&(T.values[m]=y.thought),sa(g,T.values,y.content,a),await lr(c,T.values),d.length&&await Qo(d,T.values,t,n));if(y.finishReason==="length")throw new Error(`Max tokens reached before completion
194
+ Content: ${y.content}`)}let b=l.map(y=>y.values);for(let y of b)for(let T of g.getOutputFields())T.isInternal&&delete y[T.name];let C=g.getOutputFields(),I=b.map((y,T)=>{let S={};for(let O of C)O.isInternal||(S[O.name]=y[O.name]);return y[m]!==void 0&&(S[m]=y[m]),{index:T,delta:S}});for(let y of I)yield y}function ua(s,e,t,n){let r=s.getLast(n);if(!r)return!0;for(let[o,i]of t.entries()){let a=e&&i.functionsExecuted.has(e);if(!r.chat[o])throw new Error(`No chat message found for result (index: ${o})`);let p=r.role==="function",u=r.tags?r.tags.some(c=>c==="processor"):!1;if(p&&e&&a||!(p||u))return!1}return!0}var It=class{reg;constructor(){this.reg=new Set}register(e){this.reg.add(e)}*[Symbol.iterator](){let e=Array.from(this.reg);for(let t=0;t<e.length;t++)yield e[t]}};var F=class extends Error{constructor(t,n,r,o){super(t);this.position=n;this.context=r;this.suggestion=o;this.name="SignatureValidationError"}},Zo=class{input;position;currentFieldName=null;currentSection="description";constructor(e){if(this.input=e.trim(),this.position=0,!this.input)throw new F("Empty signature provided",0,"",'A signature must contain at least input and output fields separated by "->". Example: "userQuery:string -> aiResponse:string"')}parse(){try{this.skipWhitespace();let e=this.parseParsedString();this.skipWhitespace(),this.currentSection="inputs";let t=this.parseFieldList(this.parseInputField.bind(this),"input");if(this.skipWhitespace(),this.position>=this.input.length)throw new F("Incomplete signature: Missing output section",this.position,this.getErrorContext(),'Add "->" followed by output fields. Example: "-> responseText:string"');if(this.expectArrow(),this.skipWhitespace(),this.position>=this.input.length)throw new F('Incomplete signature: No output fields specified after "->"',this.position,this.getErrorContext(),'Add at least one output field. Example: "-> responseText:string"');this.currentSection="outputs";let n=this.parseFieldList(this.parseOutputField.bind(this),"output");if(this.skipWhitespace(),this.position<this.input.length){let r=this.input.slice(this.position);throw new F(`Unexpected content after signature: "${r}"`,this.position,this.getErrorContext(),"Remove any extra content after the output fields")}return this.validateParsedSignature({desc:e?.trim(),inputs:t,outputs:n}),{desc:e?.trim(),inputs:t,outputs:n}}catch(e){if(e instanceof F)throw e;let t=e instanceof Error?e.message:"Unknown error";throw new F(t,this.position,this.getErrorContext())}}validateParsedSignature(e){let t=new Set;for(let r of e.inputs){if(t.has(r.name))throw new F(`Duplicate input field name: "${r.name}"`,0,"","Each field name must be unique within the signature");t.add(r.name)}let n=new Set;for(let r of e.outputs){if(n.has(r.name))throw new F(`Duplicate output field name: "${r.name}"`,0,"","Each field name must be unique within the signature");n.add(r.name)}for(let r of e.outputs)if(t.has(r.name))throw new F(`Field name "${r.name}" appears in both inputs and outputs`,0,"","Use different names for input and output fields to avoid confusion");if(e.inputs.length===0)throw new F("Signature must have at least one input field",0,"",'Add an input field before "->". Example: "userInput:string -> ..."');if(e.outputs.length===0)throw new F("Signature must have at least one output field",0,"",'Add an output field after "->". Example: "... -> responseText:string"')}getErrorContext(){let e=Math.max(0,this.position-25),t=Math.min(this.input.length,this.position+25),n=this.input.slice(e,this.position),r=this.input.slice(this.position,t),o=`${" ".repeat(n.length)}^`;return[`Position ${this.position} in signature:`,`"${n}${r}"`,` ${o}`].join(`
161
195
  `)}parseFieldList(e,t){let n=[];if(this.skipWhitespace(),this.position>=this.input.length)throw new F(`Empty ${t} section: Expected at least one field`,this.position,this.getErrorContext(),`Add a ${t} field. Example: ${t==="input"?"userInput:string":"responseText:string"}`);try{n.push(e())}catch(r){throw r instanceof F?r:new F(`Invalid first ${t} field: ${r instanceof Error?r.message:"Unknown error"}`,this.position,this.getErrorContext())}for(this.skipWhitespace();this.position<this.input.length&&!(this.input[this.position]==="-"&&this.position+1<this.input.length&&this.input[this.position+1]===">");)if(this.match(",")){if(this.skipWhitespace(),this.position>=this.input.length)throw new F(`Unexpected end of input after comma in ${t} section`,this.position,this.getErrorContext(),`Add another ${t} field after the comma`);try{n.push(e())}catch(r){throw r instanceof F?r:new F(`Invalid ${t} field after comma: ${r instanceof Error?r.message:"Unknown error"}`,this.position,this.getErrorContext())}this.skipWhitespace()}else break;return n}parseInputField(){this.skipWhitespace();let e=this.parseParsedIdentifier();this.currentFieldName=e,this.validateFieldName(e,"input");let t;for(;;){if(this.match("?")){t=!0;continue}if(this.match("!"))throw new F(`Input field "${e}" cannot use the internal marker "!"`,this.position-1,this.getErrorContext(),"Internal markers (!) are only allowed on output fields");break}let n;if(this.skipWhitespace(),this.match(":")){if(this.skipWhitespace(),/^class\b/.test(this.input.slice(this.position)))throw new F(`Input field "${e}" cannot use the "class" type`,this.position,this.getErrorContext(),'Class types are only allowed on output fields. Use "string" type for input classifications');try{let o=this.parseTypeNotClass(),i=this.match("[]");n={name:o,isArray:i}}catch(o){throw o instanceof F?o:new F(`Input field "${e}": ${o instanceof Error?o.message:"Unknown error"}`,this.position,this.getErrorContext())}}this.skipWhitespace();let r=this.parseParsedString();return{name:e,desc:r?.trim(),type:n,isOptional:t}}parseOutputField(){this.skipWhitespace();let e=this.parseParsedIdentifier();this.currentFieldName=e,this.validateFieldName(e,"output");let t=!1,n=!1;for(;;){if(this.match("?")){t=!0;continue}if(this.match("!")){n=!0;continue}break}let r;if(this.skipWhitespace(),this.match(":"))if(this.skipWhitespace(),this.match("class")){let i=this.match("[]");this.skipWhitespace();let a=this.parseParsedString();if(!a)throw new F(`Output field "${e}": Missing class options after "class" type`,this.position,this.getErrorContext(),'Add class names in quotes. Example: class "positive, negative, neutral"');let l=a.split(/[,|]/).map(p=>p.trim()).filter(p=>p.length>0);if(l.length===0)throw new F(`Output field "${e}": Empty class list provided`,this.position,this.getErrorContext(),'Provide at least one class option. Example: "positive, negative"');r={name:"class",isArray:i,options:l}}else try{let i=this.parseTypeNotClass(),a=this.match("[]");if(r={name:i,isArray:a},i==="image"&&a)throw new F(`Output field "${e}": Arrays of images are not supported`,this.position,this.getErrorContext(),'Use a single image type instead: "image"');if(i==="audio"&&a)throw new F(`Output field "${e}": Arrays of audio are not supported`,this.position,this.getErrorContext(),'Use a single audio type instead: "audio"');if(i==="image")throw new F(`Output field "${e}": Image type is not supported in output fields`,this.position,this.getErrorContext(),"Image types can only be used in input fields");if(i==="audio")throw new F(`Output field "${e}": Audio type is not supported in output fields`,this.position,this.getErrorContext(),"Audio types can only be used in input fields")}catch(i){throw i instanceof F?i:new F(`Output field "${e}": ${i instanceof Error?i.message:"Unknown error"}`,this.position,this.getErrorContext())}this.skipWhitespace();let o=this.parseParsedString();return{name:e,desc:o?.trim(),type:r,isOptional:t,isInternal:n}}validateFieldName(e,t){if(U.signatureStrict&&["text","object","image","string","number","boolean","json","array","datetime","date","time","type","class","input","output","data","value","result","response","request","item","element"].includes(e.toLowerCase())){let i=t==="input"?["userInput","questionText","documentContent","messageText"]:["responseText","analysisResult","categoryType","summaryText"];throw new F(`Field name "${e}" is too generic`,this.position,this.getErrorContext(),`Use a more descriptive name. Examples: ${i.join(", ")}`)}let n=/^[a-z][a-zA-Z0-9]*$/,r=/^[a-z]+(_[a-z0-9]+)*$/;if(!n.test(e)&&!r.test(e))throw new F(`Invalid field name "${e}"`,this.position,this.getErrorContext(),'Field names must be in camelCase (e.g., "userInput") or snake_case (e.g., "user_input")');if(e.length<2)throw new F(`Field name "${e}" is too short`,this.position,this.getErrorContext(),"Field names must be at least 2 characters long");if(e.length>50)throw new F(`Field name "${e}" is too long (${e.length} characters)`,this.position,this.getErrorContext(),"Field names should be 50 characters or less")}parseTypeNotClass(){let e=["string","number","boolean","json","image","audio","file","url","datetime","date","code"],t=e.find(n=>this.match(n));if(!t){let n=this.input.slice(this.position).match(/^\w+/)?.[0]||"",r=this.suggestType(n),o=`Invalid type "${n||"empty"}"`,i=r?`. Did you mean "${r}"?`:"",a=`${o}${i}`;throw new F(a,this.position,this.getErrorContext(),`Expected one of: ${e.join(", ")}`)}return t}suggestType(e){return{str:"string",text:"string",int:"number",integer:"number",float:"number",double:"number",bool:"boolean",object:"json",dict:"json",timestamp:"datetime",time:"datetime",img:"image",picture:"image",sound:"audio",voice:"audio",classification:"class",category:"class"}[e.toLowerCase()]||null}parseParsedIdentifier(){this.skipWhitespace();let e=/^[a-zA-Z_][a-zA-Z_0-9]*/.exec(this.input.slice(this.position));if(e)return this.position+=e[0].length,e[0];let t=/^\S+/.exec(this.input.slice(this.position)),n=t?t[0]:"";throw n===""?new F("Expected field name but found end of input",this.position,this.getErrorContext(),"Add a field name. Field names must start with a letter or underscore"):/^\d/.test(n)?new F(`Invalid field name "${n}" - cannot start with a number`,this.position,this.getErrorContext(),'Field names must start with a letter or underscore. Example: "userInput" or "_internal"'):new F(`Invalid field name "${n}"`,this.position,this.getErrorContext(),"Field names must start with a letter or underscore and contain only letters, numbers, or underscores")}parseParsedString(){let e=["'",'"'];for(let t of e)if(this.match(t)){let n="",r=!1,o=this.position-1;for(;this.position<this.input.length;){let a=this.input[this.position];if(this.position++,r)n+=a,r=!1;else if(a==="\\")r=!0;else{if(a===t)return n;n+=a}}let i=this.input.slice(o,Math.min(this.position,o+20));throw new F(`Unterminated string starting at position ${o}`,o,this.getErrorContext(),`Add closing ${t} to complete the string: ${i}${t}`)}}skipWhitespace(){let e=/^[\s\t\r\n]+/.exec(this.input.slice(this.position));e&&(this.position+=e[0].length)}match(e){let t;if(typeof e=="string"){if(this.input.startsWith(e,this.position))return this.position+=e.length,!0}else if(t=e.exec(this.input.slice(this.position)),t)return this.position+=t[0].length,!0;return!1}expectArrow(){if(!this.match("->")){let e=this.input.slice(this.position,this.position+10),t=e.includes(">")?'Use "->" (dash followed by greater-than)':e.includes("-")?'Add ">" after the dash':'Add "->" to separate input and output fields';throw new F(`Expected "->" but found "${e}..."`,this.position,this.getErrorContext(),t)}}};function ca(s){return new Zo(s).parse()}var on=class{inputFields=[];outputFields=[];desc;input(e,t,n=!1){let r={name:e,type:{name:t.type,isArray:t.isArray,options:t.options?[...t.options]:void 0},description:t.description,isOptional:t.isOptional,isInternal:t.isInternal};return n?this.inputFields.unshift(r):this.inputFields.push(r),this}output(e,t,n=!1){let r={name:e,type:{name:t.type,isArray:t.isArray,options:t.options?[...t.options]:void 0},description:t.description,isOptional:t.isOptional,isInternal:t.isInternal};return n?this.outputFields.unshift(r):this.outputFields.push(r),this}description(e){return this.desc=e,this}build(){let e={description:this.desc,inputs:this.inputFields,outputs:this.outputFields};return new K(e)}},Q=class s{type;isArray;options;description;isOptional;isInternal;constructor(e){this.type=e.type,this.isArray=e.isArray,this.options=e.options,this.description=e.description,this.isOptional=e.isOptional,this.isInternal=e.isInternal}optional(){return new s({...this,isOptional:!0})}array(){return new s({...this,isArray:!0})}internal(){return new s({...this,isInternal:!0})}},bt=Object.assign(()=>new on,{string:s=>new Q({type:"string",isArray:!1,description:s}),number:s=>new Q({type:"number",isArray:!1,description:s}),boolean:s=>new Q({type:"boolean",isArray:!1,description:s}),json:s=>new Q({type:"json",isArray:!1,description:s}),datetime:s=>new Q({type:"datetime",isArray:!1,description:s}),date:s=>new Q({type:"date",isArray:!1,description:s}),class:(s,e)=>new Q({type:"class",isArray:!1,options:s,description:e}),image:s=>new Q({type:"image",isArray:!1,description:s}),audio:s=>new Q({type:"audio",isArray:!1,description:s}),file:s=>new Q({type:"file",isArray:!1,description:s}),url:s=>new Q({type:"url",isArray:!1,description:s}),code:(s,e)=>new Q({type:"code",isArray:!1,description:e||s}),array:s=>({...s,isArray:!0}),optional:s=>({...s,isOptional:!0}),internal:s=>({...s,isInternal:!0}),legacyArray:s=>({...s,isArray:!0}),legacyOptional:s=>({...s,isOptional:!0}),legacyInternal:s=>({...s,isInternal:!0})});function mr(s){return{type:{name:s.type,isArray:s.isArray,options:s.options?[...s.options]:void 0},description:s.description,isOptional:s.isOptional,isInternal:s.isInternal}}var E=class extends Error{constructor(t,n,r){super(t);this.fieldName=n;this.suggestion=r;this.name="AxSignatureValidationError"}},K=class s{description;inputFields;outputFields;sigHash;sigString;validatedAtHash;constructor(e){if(!e){this.inputFields=[],this.outputFields=[],this.sigHash="",this.sigString="";return}if(typeof e=="string"){let t;try{t=ca(e)}catch(n){if(n instanceof Error){let r="suggestion"in n&&typeof n.suggestion=="string"?n.suggestion:'Please check the signature format. Example: "userInput:string -> responseText:string"';throw new E(`Invalid Signature: ${n.message}`,void 0,r)}throw new E(`Invalid Signature: ${e}`,void 0,'Please check the signature format. Example: "userInput:string -> responseText:string"')}this.description=t.desc,this.inputFields=t.inputs.map(n=>this.parseParsedField(n)),this.outputFields=t.outputs.map(n=>this.parseParsedField(n)),[this.sigHash,this.sigString]=this.updateHash()}else if(e instanceof s)this.description=e.getDescription(),this.inputFields=structuredClone(e.getInputFields()),this.outputFields=structuredClone(e.getOutputFields()),this.sigHash=e.hash(),this.sigString=e.toString(),e.validatedAtHash===this.sigHash&&(this.validatedAtHash=this.sigHash);else if(typeof e=="object"&&e!==null){if(!("inputs"in e)||!("outputs"in e))throw new E("Invalid signature object: missing inputs or outputs",void 0,'Signature object must have "inputs" and "outputs" arrays. Example: { inputs: [...], outputs: [...] }');if(!Array.isArray(e.inputs)||!Array.isArray(e.outputs))throw new E("Invalid signature object: inputs and outputs must be arrays",void 0,'Both "inputs" and "outputs" must be arrays of AxField objects');try{this.description=e.description,this.inputFields=e.inputs.map(t=>this.parseField(t)),this.outputFields=e.outputs.map(t=>this.parseField(t)),[this.sigHash,this.sigString]=this.updateHash()}catch(t){throw t instanceof E?t:new E(`Failed to create signature from object: ${t instanceof Error?t.message:"Unknown error"}`,void 0,"Check that all fields in inputs and outputs arrays are valid AxField objects")}}else throw new E("Invalid signature argument type",void 0,"Signature must be a string, another AxSignature instance, or an object with inputs and outputs arrays")}static create(e){return new s(e)}parseParsedField=e=>{if(!e.name||e.name.length===0)throw new E("Field name is required",e.name,'Every field must have a descriptive name. Example: "userInput", "responseText"');let t=this.toTitle(e.name);return{name:e.name,title:t,description:"desc"in e?e.desc:void 0,type:e.type??{name:"string",isArray:!1},..."isInternal"in e?{isInternal:e.isInternal}:{},..."isOptional"in e?{isOptional:e.isOptional}:{}}};parseField=e=>{let t=!e.title||e.title.length===0?this.toTitle(e.name):e.title;if(e.type&&(!e.type.name||e.type.name.length===0))throw new E("Field type name is required",e.name,"Specify a valid type. Available types: string, number, boolean, json, image, audio, file, url, date, datetime, class, code");return{...e,title:t}};setDescription=e=>{if(typeof e!="string")throw new E("Description must be a string",void 0,"Provide a string description for the signature");this.description=e,this.invalidateValidationCache(),this.updateHashLight()};addInputField=e=>{try{let t=this.parseField(e);xe(t,"input");for(let n of this.inputFields)if(n.name===t.name)throw new E(`Duplicate input field name: "${t.name}"`,t.name,"Each field name must be unique within the signature");for(let n of this.outputFields)if(n.name===t.name)throw new E(`Field name "${t.name}" appears in both inputs and outputs`,t.name,"Use different names for input and output fields to avoid confusion");this.inputFields.push(t),this.invalidateValidationCache(),this.updateHashLight()}catch(t){throw t instanceof E?t:new E(`Failed to add input field "${e.name}": ${t instanceof Error?t.message:"Unknown error"}`,e.name)}};addOutputField=e=>{try{let t=this.parseField(e);xe(t,"output");for(let n of this.outputFields)if(n.name===t.name)throw new E(`Duplicate output field name: "${t.name}"`,t.name,"Each field name must be unique within the signature");for(let n of this.inputFields)if(n.name===t.name)throw new E(`Field name "${t.name}" appears in both inputs and outputs`,t.name,"Use different names for input and output fields to avoid confusion");this.outputFields.push(t),this.invalidateValidationCache(),this.updateHashLight()}catch(t){throw t instanceof E?t:new E(`Failed to add output field "${e.name}": ${t instanceof Error?t.message:"Unknown error"}`,e.name)}};setInputFields=e=>{if(!Array.isArray(e))throw new E("Input fields must be an array",void 0,"Provide an array of field objects");try{let t=e.map(n=>{let r=this.parseField(n);return xe(r,"input"),r});this.inputFields=t,this.invalidateValidationCache(),this.updateHashLight()}catch(t){throw t instanceof E?t:new E(`Failed to set input fields: ${t instanceof Error?t.message:"Unknown error"}`)}};setOutputFields=e=>{if(!Array.isArray(e))throw new E("Output fields must be an array",void 0,"Provide an array of field objects");try{let t=e.map(n=>{let r=this.parseField(n);return xe(r,"output"),r});this.outputFields=t,this.invalidateValidationCache(),this.updateHashLight()}catch(t){throw t instanceof E?t:new E(`Failed to set output fields: ${t instanceof Error?t.message:"Unknown error"}`)}};getInputFields=()=>this.inputFields;getOutputFields=()=>this.outputFields;getDescription=()=>this.description;appendInputField=(e,t)=>{let n=new s(this);return n.addInputField({name:e,...mr(t)}),n};prependInputField=(e,t)=>{let n=new s(this),r={name:e,...mr(t)},o=n.parseField(r);xe(o,"input");for(let i of n.inputFields)if(i.name===o.name)throw new E(`Duplicate input field name: "${o.name}"`,o.name,"Each field name must be unique within the signature");for(let i of n.outputFields)if(i.name===o.name)throw new E(`Field name "${o.name}" appears in both inputs and outputs`,o.name,"Use different names for input and output fields to avoid confusion");return n.inputFields.unshift(o),n.invalidateValidationCache(),n.updateHashLight(),n};appendOutputField=(e,t)=>{let n=new s(this);return n.addOutputField({name:e,...mr(t)}),n};prependOutputField=(e,t)=>{let n=new s(this),r={name:e,...mr(t)},o=n.parseField(r);xe(o,"output");for(let i of n.outputFields)if(i.name===o.name)throw new E(`Duplicate output field name: "${o.name}"`,o.name,"Each field name must be unique within the signature");for(let i of n.inputFields)if(i.name===o.name)throw new E(`Field name "${o.name}" appears in both inputs and outputs`,o.name,"Use different names for input and output fields to avoid confusion");return n.outputFields.unshift(o),n.invalidateValidationCache(),n.updateHashLight(),n};invalidateValidationCache=()=>{this.validatedAtHash=void 0};toTitle=e=>{let t=e.replace(/_/g," ");return t=t.replace(/([A-Z]|[0-9]+)/g," $1").trim(),t.charAt(0).toUpperCase()+t.slice(1)};toJSONSchema=()=>{let e={},t=[];for(let r of this.inputFields){let o=r.type?r.type.name:"string";r.type?.isArray?e[r.name]={description:r.description,type:"array",items:{type:o,description:r.description}}:e[r.name]={description:r.description,type:o},r.isOptional||t.push(r.name)}return{type:"object",properties:e,required:t}};updateHashLight=()=>{try{return this.getInputFields().forEach(e=>{xe(e,"input")}),this.getOutputFields().forEach(e=>{xe(e,"output")}),this.sigHash=xn("sha256").update(JSON.stringify(this.inputFields)).update(JSON.stringify(this.outputFields)).digest("hex"),this.sigString=ma(this.description,this.inputFields,this.outputFields),[this.sigHash,this.sigString]}catch(e){throw e instanceof E?e:new E(`Signature validation failed: ${e instanceof Error?e.message:"Unknown error"}`)}};updateHash=()=>{try{return this.getInputFields().forEach(e=>{xe(e,"input")}),this.getOutputFields().forEach(e=>{xe(e,"output")}),this.validateSignatureConsistency(),this.sigHash=xn("sha256").update(this.description??"").update(JSON.stringify(this.inputFields)).update(JSON.stringify(this.outputFields)).digest("hex"),this.sigString=ma(this.description,this.inputFields,this.outputFields),[this.sigHash,this.sigString]}catch(e){throw e instanceof E?e:new E(`Signature validation failed: ${e instanceof Error?e.message:"Unknown error"}`)}};validateSignatureConsistency(){let e=new Set;for(let n of this.inputFields){if(e.has(n.name))throw new E(`Duplicate input field name: "${n.name}"`,n.name,"Each field name must be unique within the signature");e.add(n.name)}let t=new Set;for(let n of this.outputFields){if(t.has(n.name))throw new E(`Duplicate output field name: "${n.name}"`,n.name,"Each field name must be unique within the signature");t.add(n.name)}for(let n of this.outputFields)if(e.has(n.name))throw new E(`Field name "${n.name}" appears in both inputs and outputs`,n.name,"Use different names for input and output fields to avoid confusion");if(this.inputFields.length===0)throw new E("Signature must have at least one input field",void 0,'Add an input field. Example: "userInput:string -> ..."');if(this.outputFields.length===0)throw new E("Signature must have at least one output field",void 0,'Add an output field. Example: "... -> responseText:string"')}validate=()=>{if(this.validatedAtHash===this.sigHash)return!0;try{return this.updateHash(),this.validatedAtHash=this.sigHash,!0}catch(e){throw this.validatedAtHash=void 0,e}};hash=()=>this.sigHash;toString=()=>this.sigString;injectToolFields(e){let t=new s(this);for(let n of e)if(n.parameters?.properties&&Object.keys(n.parameters.properties).length>0){let r=this.generateToolParameterFields(n);for(let o of r)t.outputFields.some(a=>a.name===o.name)||t.addOutputField(o)}else{let r=this.sanitizeFieldName(n.name),o=this.inferToolFieldType(n.parameters);t.outputFields.some(a=>a.name===r)||t.addOutputField({name:r,title:this.formatTitle(n.name),type:o,description:n.description||`Parameters for ${n.name}`,isOptional:!0})}return t}generateToolParameterFields(e){let t=[];if(!e.parameters||!e.parameters.properties)return t;let n=e.parameters.properties,r=e.parameters.required||[],o=(i,a,l)=>{for(let[p,u]of Object.entries(i)){let c=a?`${a}.${p}`:p,d=`${e.name}.${c}`;if(u.type==="object"&&u.properties)o(u.properties,c,u.required||[]);else{let m=this.inferParameterType(u);t.push({name:this.sanitizeFieldName(d),title:this.formatParameterTitle(e.name,c),type:m,description:u.description||`${p} parameter for ${e.name}`,isOptional:!0})}}};return o(n,"",r),t}inferParameterType(e){switch(e.type){case"string":return{name:"string",isArray:!1};case"number":case"integer":return{name:"number",isArray:!1};case"boolean":return{name:"boolean",isArray:!1};case"array":{let t=e.items;if(t?.type)switch(t.type){case"string":return{name:"string",isArray:!0};case"number":case"integer":return{name:"number",isArray:!0};case"boolean":return{name:"boolean",isArray:!0};default:return{name:"json",isArray:!0}}return{name:"json",isArray:!0}}case"object":return{name:"json",isArray:!1};default:return{name:"string",isArray:!1}}}formatParameterTitle(e,t){return`${e} ${t.replace(/\./g," ")}`}sanitizeFieldName(e){return e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_|_$/g,"").replace(/[^a-z0-9_]/g,"_")}formatTitle(e){return e.replace(/([A-Z])/g," $1").replace(/^./,t=>t.toUpperCase()).trim()}inferToolFieldType(e){return!e||!e.properties||Object.keys(e.properties).length===0?{name:"string",isArray:!1}:{name:"json",isArray:!1}}toJSON=()=>({id:this.hash(),description:this.description,inputFields:this.inputFields,outputFields:this.outputFields})};function da(s){let e=s.name;return s.isOptional&&(e+="?"),s.isInternal&&(e+="!"),s.type&&(e+=`:${s.type.name}`,s.type.isArray&&(e+="[]"),s.type.name==="class"&&s.type.options&&(e+=` "${s.type.options.join(" | ")}"`)),s.description&&s.type?.name!=="class"&&(e+=` "${s.description}"`),e}function ma(s,e,t){let n=s?`"${s}" `:"",r=e.map(da).join(", "),o=t.map(da).join(", ");return`${n}${r} -> ${o}`}function Bl(s){let e=/^[a-z][a-zA-Z0-9]*$/,t=/^[a-z]+(_[a-z0-9]+)*$/;return e.test(s)||t.test(s)}function xe(s,e){if(!s.name||s.name.length===0)throw new E("Field name cannot be blank",s.name,"Every field must have a descriptive name");if(!Bl(s.name))throw new E(`Invalid field name '${s.name}' - must be camelCase or snake_case`,s.name,'Use camelCase (e.g., "userInput") or snake_case (e.g., "user_input")');if(U.signatureStrict&&["text","object","image","string","number","boolean","json","array","datetime","date","time","type","class","input","output","data","value","result","response","request","item","element"].includes(s.name.toLowerCase())){let n=e==="input"?["userInput","questionText","documentContent","messageText","queryString"]:["responseText","analysisResult","categoryType","summaryText","outputData"];throw new E(`Field name '${s.name}' is too generic`,s.name,`Use a more descriptive name. Examples for ${e} fields: ${n.join(", ")}`)}if(s.name.length<2)throw new E(`Field name '${s.name}' is too short`,s.name,"Field names must be at least 2 characters long");if(s.name.length>50)throw new E(`Field name '${s.name}' is too long (${s.name.length} characters)`,s.name,"Field names should be 50 characters or less");s.type&&ql(s,e)}function ql(s,e){if(!s.type)return;let{type:t}=s;if((t.name==="image"||t.name==="audio"||t.name==="file"||t.name==="url")&&e==="output")throw new E(`${t.name} type is not supported in output fields`,s.name,`${t.name} types can only be used in input fields`);if(t.name==="class"){if(e==="input")throw new E("Class type is not supported in input fields",s.name,'Class types are only allowed on output fields. Use "string" type for input classifications');if(!t.options||t.options.length===0)throw new E("Class type requires options",s.name,'Provide class options. Example: class "positive, negative, neutral"');for(let r of t.options){if(!r||r.trim().length===0)throw new E("Empty class option found",s.name,"All class options must be non-empty strings");let o=r.trim();if(o.includes(",")||o.includes("|"))throw new E(`Invalid class option "${o}"`,s.name,"Class options cannot contain commas (,) or pipes (|) as they are used to separate options")}if(new Set(t.options.map(r=>r.trim().toLowerCase())).size!==t.options.length)throw new E("Duplicate class options found",s.name,"Each class option must be unique (case-insensitive)")}if(t.name==="code"&&t.isArray)throw new E("Arrays of code are not commonly supported",s.name,"Consider using a single code field or an array of strings instead");if(s.isInternal&&e==="input")throw new E("Internal marker (!) is not allowed on input fields",s.name,"Internal markers are only allowed on output fields")}var Pe=class{signature;sigHash;examples;examplesOptions;demos;trace;usage=[];traceLabel;key;children;constructor(e,t){this.signature=new K(e),t?.description&&this.signature.setDescription(t.description),t?.traceLabel&&(this.traceLabel=t.traceLabel),e&&this.signature.validate(),this.sigHash=this.signature?.hash(),this.children=new It,this.key={id:this.signature.hash()}}getSignature(){return new K(this.signature)}setSignature(e){this.signature=new K(e),e&&this.signature.validate(),this.updateSignatureHash()}setDescription(e){this.signature.setDescription(e),this.updateSignatureHash()}updateSignatureHash(){this.sigHash=this.signature.hash(),this.key={id:this.signature.hash()}}register(e){this.key&&e.setParentId(this.key.id),this.children.register(e)}setId(e){this.key={id:e,custom:!0};for(let t of Array.from(this.children))t?.setParentId(e)}setParentId(e){this.key.custom||(this.key.id=[e,this.key.id].join("/"))}setExamples(e,t){if(this._setExamples(e,t),"programId"in e)for(let n of Array.from(this.children))n?.setExamples(e,t)}_setExamples(e,t){let n=[];if("programId"in e&&e.programId===this.key.id&&(n=e.traces),Array.isArray(e)&&(n=e),n){this.examplesOptions=t;let r=this.signature,o=[...r.getInputFields(),...r.getOutputFields()];this.examples=n.map(i=>{let a={};for(let l of o){let p=i[l.name];p!==void 0&&(dr(l,p),a[l.name]=p)}return a})}}getTraces(){let e=[];this.trace&&e.push({trace:this.trace,programId:this.key.id});for(let t of Array.from(this.children)){let n=t?.getTraces();e=[...e,...n??[]]}return e}getUsage(){let e=[...this.usage??[]];for(let t of Array.from(this.children)){let n=t?.getUsage();e=[...e,...n??[]]}return nn(e)}resetUsage(){this.usage=[];for(let e of Array.from(this.children))e?.resetUsage()}setDemos(e){let t=Array.from(this.children).length>0,n=e.some(r=>r.programId===this.key.id);if(t&&!n)throw new Error(`Program with id '${this.key.id}' has children but no matching programId found in demos`);this.demos=e.filter(r=>r.programId===this.key.id).map(r=>r.traces).flat();for(let r of Array.from(this.children))r?.setDemos(e)}applyOptimization(e){e.applyTo(this);for(let t of Array.from(this.children))t&&"applyOptimization"in t&&typeof t.applyOptimization=="function"&&t.applyOptimization(e)}};var zl=`
162
196
  ## Function Call Instructions
163
197
  - Complete the task, using the functions defined earlier in this prompt.
@@ -189,7 +223,7 @@ ${u}`),l&&l.length>0&&r.push(zl.trim()),r.push(jl.trim());let c=this.sig.getDesc
189
223
  `),n.push(t.map(r=>`- ${r}`).join(`
190
224
  `))):n.push(t),[{type:"text",text:n.join("")}]}},ga=s=>s.map(e=>`\`${e.title}\``).join(", "),Hl=s=>s.map(t=>{let n=t.title,r=t.type?.name?fa(t.type):"string",o=t.isOptional?`This optional ${r} field may be omitted`:`A ${r} field`,i=t.description?` ${gr(t.description)}`:"";return`${n}: (${o})${i}`.trim()}).join(`
191
225
  `),Kl=s=>s.map(t=>{let n=t.title,r=t.type?.name?fa(t.type):"string",o=t.isOptional?`Only include this ${r} field if its value is available`:`This ${r} field must be included`,i="";return t.description&&t.description.length>0&&(i=` ${t.type?.name==="class"?t.description:gr(t.description)}`),t.type?.options&&t.type.options.length>0&&(i.length>0&&(i+=". "),i+=`Allowed values: ${t.type.options.join(", ")}`),`${n}: (${o})${i}`.trim()}).join(`
192
- `),Vl=(s,e)=>{if(s.type?.name==="date"&&e instanceof Date){let t=e.toISOString();return t.slice(0,t.indexOf("T"))}return s.type?.name==="datetime"&&e instanceof Date?ta(e):s.type?.name==="image"&&typeof e=="object"||s.type?.name==="audio"&&typeof e=="object"||s.type?.name==="file"&&typeof e=="object"||s.type?.name==="url"&&(typeof e=="string"||typeof e=="object")||typeof e=="string"?e:JSON.stringify(e,null,2)},fa=s=>{let e=(()=>{switch(s?.name){case"string":return"string";case"number":return"number";case"boolean":return"boolean (true or false)";case"date":return'date ("YYYY-MM-DD" format)';case"datetime":return'date time ("YYYY-MM-DD HH:mm Timezone" format)';case"json":return"JSON object";case"class":return"classification class";case"code":return"code";case"file":return"file (with filename, mimeType, and data)";case"url":return"URL (string or object with url, title, description)";default:return"string"}})();return s?.isArray?`json array of ${e} items`:e};function ha(s){return(e,t)=>{if(t.type==="text"){let n=e.length>0?e[e.length-1]:null;n&&n.type==="text"?n.text+=s+t.text:e.push(t)}else e.push(t);return e}}var Wl=(s,e,t)=>{if(typeof e=="boolean")return!1;if(!e||(Array.isArray(e)||typeof e=="string")&&e.length===0){if(t?.isExample||s.isOptional||s.isInternal)return!0;let n=t?.isInputField!==!1?"input":"output";throw new Error(`Value for ${n} field '${s.name}' is required.`)}return!1};function gr(s){let e=s.trim();return e.length>0?`${e.charAt(0).toUpperCase()}${e.slice(1)}${e.endsWith(".")?"":"."}`:""}function Jl(s,e){let t=s.history(0,e),n=t.some(o=>o.role==="function");return t.some(o=>o.role==="assistant"&&"functionCalls"in o&&Array.isArray(o.functionCalls)&&o.functionCalls.length>0)&&n}function Yl(s,e){let t=s.history(0,e),n=[],r=t.filter(i=>i.role==="assistant"&&"functionCalls"in i&&Array.isArray(i.functionCalls)&&i.functionCalls.length>0),o=t.filter(i=>i.role==="function");for(let i of r)if("functionCalls"in i&&i.functionCalls)for(let a of i.functionCalls){let l=o.find(p=>"functionId"in p&&p.functionId===a.id);l&&"result"in l&&"functionId"in l&&n.push({index:n.length,functionName:a.function.name,functionId:a.id,args:a.function.params||"",result:String(l.result),isError:"isError"in l?!!l.isError:!1})}return n}async function hr(s,e,t,n){if(!e?.resultPicker||s.length<=1)return 0;let r=e.resultPicker;if((t?Jl(t,n):!1)&&t){let l=Yl(t,n),p=await r({type:"function",results:l});if(p<0||p>=l.length)throw new Error(`Result picker returned invalid index: ${p}. Must be between 0 and ${l.length-1}`);return p}let i=s.map((l,p)=>({index:p,sample:l.delta})),a=await r({type:"fields",results:i});if(a<0||a>=s.length)throw new Error(`Result picker returned invalid index: ${a}. Must be between 0 and ${s.length-1}`);return a}async function Aa(s,e,t){let n=s?.getLast(e);if(!n||n.role!=="assistant"||n.chat.length<=1)return 0;let r=n.chat.map(i=>({version:0,index:i.index,delta:i.value}));return await hr(r,t,s,e)}var sn=class{tools;logger;constructor(e,t){this.tools=new Map(e.map(n=>[n.name,n])),this.logger=t}async route(e,t){let n={},r={},o=[];for(let[a,l]of Object.entries(e)){let p=this.tools.get(this.normalizeToolName(a));if(p&&l!==void 0&&l!==null)try{let u=await this.executeTool(p,l,t);n[a]=u,o.push(p.name)}catch{r[a]=l}else r[a]=l}let i={...r,...n};return{toolResults:n,remainingFields:i}}async executeTool(e,t,n){if(!e.func)throw new Error(`Tool ${e.name} has no handler function`);let r=typeof t=="object"&&t!==null?t:{},o=U.tracer??Ne.getTracer("ax");if(!o){let i=e.func;return await i(r,{sessionId:n?.sessionId,traceId:n?.traceId})}return await o.startActiveSpan(`Tool: ${e.name}`,async i=>{try{i.setAttributes?.({"tool.name":e.name,"tool.mode":"prompt"});let a=e.func,l=await a(r,{sessionId:n?.sessionId,traceId:i.spanContext().traceId});return i.addEvent("gen_ai.tool.message",{name:e.name,args:JSON.stringify(r),result:typeof l=="string"?l:JSON.stringify(l??"")}),l}catch(a){throw i.recordException(a),i.addEvent("function.error",{name:e.name,message:a.toString()}),a}finally{i.end()}})}normalizeToolName(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}isToolField(e){return this.tools.has(this.normalizeToolName(e))}getToolFieldNames(){return Array.from(this.tools.keys()).map(e=>e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,""))}};var fr=class{functionCallMode;tools;router;usePromptMode=!1;constructor(e){this.functionCallMode=e.functionCallMode??"auto",this.tools=e.functions??[],this.functionCallMode==="prompt"&&this.tools.length>0&&(this.usePromptMode=!0,this.router=new sn(this.tools))}setUsePromptMode(e){this.usePromptMode=e,e&&this.tools.length>0&&!this.router&&(this.router=new sn(this.tools))}getMode(){return this.functionCallMode}processSignature(e){return this.usePromptMode&&this.tools.length>0?e.injectToolFields(this.tools):e}async processResults(e,t){return this.usePromptMode&&this.router?(await this.router.route(e,t)).remainingFields:e}isPromptModeEnabled(){return this.usePromptMode}isNativeModeEnabled(){return!this.usePromptMode&&this.tools.length>0}getRouter(){return this.router}};var se=class extends Pe{promptTemplate;asserts;streamingAsserts;options;functions;fieldProcessors=[];streamingFieldProcessors=[];excludeContentFromTrace=!1;thoughtFieldName;signatureToolCallingManager;constructor(e,t){super(e,{description:t?.description,traceLabel:t?.traceLabel}),this.options=t,this.thoughtFieldName=t?.thoughtFieldName??"thought";let n={functions:t?.functions,thoughtFieldName:this.thoughtFieldName};this.promptTemplate=new(t?.promptTemplate??Ue)(this.signature,n),this.asserts=this.options?.asserts??[],this.streamingAsserts=this.options?.streamingAsserts??[],this.excludeContentFromTrace=t?.excludeContentFromTrace??!1,this.usage=[],t?.functions&&(this.functions=Fo(t.functions),t?.functionCallMode&&(this.signatureToolCallingManager=new fr({functionCallMode:t.functionCallMode,functions:this.functions})))}getSignatureName(){return this.signature.getDescription()||"unknown_signature"}getMetricsInstruments(){return Eo()}updateMeter(e){Eo(e)}createStates(e){return Array.from({length:e},(t,n)=>({index:n,functionCalls:[],values:{},content:"",functionsExecuted:new Set,xstate:{extractedFields:[],streamedIndex:{},s:-1}}))}addAssert=(e,t)=>{this.asserts.push({fn:e,message:t})};addStreamingAssert=(e,t,n)=>{this.streamingAsserts.push({fieldName:e,fn:t,message:n})};addFieldProcessorInternal=(e,t,n=!1)=>{let r=this.signature.getOutputFields().find(o=>o.name===e);if(!r)throw new Error(`addFieldProcessor: field ${e} not found`);if(n){let o=r.type?.name;if(!(!o||o==="string"||o==="code"))throw new Error(`addFieldProcessor: field ${e} is must be a text field`);this.streamingFieldProcessors.push({field:r,process:t})}else this.fieldProcessors.push({field:r,process:t})};addStreamingFieldProcessor=(e,t)=>{this.addFieldProcessorInternal(e,t,!0)};addFieldProcessor=(e,t)=>{this.addFieldProcessorInternal(e,t,!1)};async forwardSendRequest({ai:e,mem:t,options:n,traceContext:r,functions:o,functionCall:i,stepIndex:a}){let{sessionId:l,model:p,rateLimiter:u,stream:c,thinkingTokenBudget:d,showThoughts:m}=n??{},g=await Aa(t,l,{resultPicker:n?.resultPicker}),h=t?.history(g,l)??[];if(h.length===0)throw new Error("No chat prompt found");let f={...n?.modelConfig,...n?.sampleCount?{n:n.sampleCount}:{},...n?.sampleCount&&n?.modelConfig?.temperature===1?{temperature:.8}:{}},x=this.isDebug(e,n),A=a===0,b=this.getLogger(e,n);return await e.chat({chatPrompt:h,functions:o,functionCall:i,modelConfig:f,model:p},{sessionId:l,rateLimiter:u,stream:c,debug:x,debugHideSystemPrompt:!A,thinkingTokenBudget:d,showThoughts:m,traceContext:r,abortSignal:n?.abortSignal,stepIndex:a,logger:b})}async*forwardCore({ai:e,mem:t,options:n,stepIndex:r,span:o,traceContext:i,states:a}){let{sessionId:l,functions:p}=n??{},u=n?.functionCall??this.options?.functionCall,c=n?.strictMode??!1,d=n.model,m=this.usage,g=r===0,h=this.getLogger(e,n),{functions:f,functionCall:x}=Hi(p,u,g,n),A=await this.forwardSendRequest({ai:e,mem:t,options:n,traceContext:i,functions:f,functionCall:x,stepIndex:r});A instanceof ReadableStream?yield*la({ai:e,model:d,res:A,mem:t,sessionId:l,traceId:o?o.spanContext?.().traceId:void 0,functions:f,strictMode:c,span:o,states:a,usage:m,asserts:this.asserts,streamingAsserts:this.streamingAsserts,fieldProcessors:this.fieldProcessors,streamingFieldProcessors:this.streamingFieldProcessors,thoughtFieldName:this.thoughtFieldName,excludeContentFromTrace:this.excludeContentFromTrace,signature:this.signature,logger:h,functionResultFormatter:n?.functionResultFormatter??this.options?.functionResultFormatter}):yield*pa({ai:e,model:d,res:A,mem:t,sessionId:l,traceId:o?o.spanContext?.().traceId:void 0,functions:f,span:o,strictMode:c,states:a,usage:m,asserts:this.asserts,fieldProcessors:this.fieldProcessors,thoughtFieldName:this.thoughtFieldName,excludeContentFromTrace:this.excludeContentFromTrace,signature:this.signature,logger:h,functionResultFormatter:n?.functionResultFormatter??this.options?.functionResultFormatter})}async*_forward2(e,t,n,r,o,i){let a=(r?.stopFunction??this.options?.stopFunction)?.toLowerCase(),l=r.maxRetries??this.options?.maxRetries??10,p=r.maxSteps??this.options?.maxSteps??10,u=r.mem??this.options?.mem??new yt;if(this.signatureToolCallingManager?.getMode()==="auto"&&this.functions&&this.functions.length>0){let b=e.getFeatures(r.model).functions;this.signatureToolCallingManager.setUsePromptMode(!b)}let c;{let A=this.options?.promptTemplate??Ue,b=this.signature;this.signatureToolCallingManager?.isPromptModeEnabled()&&(b=this.signatureToolCallingManager.processSignature(this.signature));let C={functions:r?.functions??this.functions,thoughtFieldName:this.thoughtFieldName};this.promptTemplate=new A(b,C)}let d,m=performance.now();Array.isArray(t)?(ri(t),d=this.promptTemplate.render(t,{examples:this.examples,demos:this.demos})):d=this.promptTemplate.render(t,{examples:this.examples,demos:this.demos});let g=performance.now()-m,h=this.getMetricsInstruments();h&&cr(h,"prompt_render",g,this.getSignatureName());let f=performance.now();u.addRequest(d,r.sessionId);let x=performance.now()-f;h&&cr(h,"memory_update",x,this.getSignatureName());e:for(let A=0;A<p;A++){for(let C=0;C<l;C++)try{let I=this.forwardCore({options:r,ai:e,mem:u,stepIndex:A,span:o,traceContext:i,states:n});for await(let S of I)S!==void 0&&(yield{version:C,index:S.index,delta:S.delta});if(ua(u,a,n,r?.sessionId)){let S=this.getMetricsInstruments();S&&ur(S,A+1,p,this.getSignatureName());continue e}let T=this.getMetricsInstruments();if(T){ur(T,A+1,p,this.getSignatureName());let S=new Set;n.forEach(M=>{M.functionsExecuted.forEach(N=>S.add(N))}),S.size>0&&$i(T,!0,S.size,!0,!1,this.getSignatureName()),Ni(T,this.fieldProcessors.length,this.streamingFieldProcessors.length,this.getSignatureName())}return}catch(I){let y,T=this.isDebug(e,r),S=this.getLogger(e,r),M=this.getMetricsInstruments(),N=this.getSignatureName(),G={error:I,errCount:C,logger:S,metricsInstruments:M,signatureName:N,span:o,debug:T};if(o?.recordException(I),I instanceof Y)y=Bi(G),c=I;else if(I instanceof ke)y=qi(G),c=I;else if(I instanceof q)zi(G);else if(!(I instanceof ue))throw es(I,e,this.signature);y&&(u.addRequest([{role:"user",content:this.promptTemplate.renderExtraFields(y)}],r.sessionId),u.addTag("error",r.sessionId))}let b=this.getMetricsInstruments();throw b&&_o(b,l,!1,l,this.getSignatureName()),es(new Error(`Unable to fix validation error: ${c?.toString()}`),e,this.signature)}throw h&&ur(h,p,p,this.getSignatureName()),es(new Error(`Max steps reached: ${p}`),e,this.signature)}async*_forward1(e,t,n){let r=performance.now(),o=this.createStates(n.sampleCount??1),i=performance.now()-r,a=this.getMetricsInstruments();a&&cr(a,"state_creation",i,this.getSignatureName());let l=n?.tracer??this.options?.tracer??e.getOptions().tracer,p=this.functions;if(n?.functions&&(p=Fo(n.functions,this.functions)),!l){yield*this._forward2(e,t,o,{...n,functions:p});return}let u=p?.map(x=>x.name).join(","),c={signature:JSON.stringify(this.signature.toJSON(),null,2),...this.examples?{examples:JSON.stringify(this.examples,null,2)}:{},...u?{provided_functions:u}:{},...n?.model?{model:n.model}:{},...n?.thinkingTokenBudget?{thinking_token_budget:n.thinkingTokenBudget}:{},...n?.showThoughts?{show_thoughts:n.showThoughts}:{},...n?.maxSteps?{max_steps:n.maxSteps}:{},...n?.maxRetries?{max_retries:n.maxRetries}:{}},d=this.traceLabel&&n.traceLabel?`${this.traceLabel} > ${n.traceLabel}`:n.traceLabel??this.traceLabel,m=d?`AxGen > ${d}`:"AxGen",g=l.startSpan(m,{kind:oe.SERVER,attributes:c}),h=Oe.active(),f=Ne.setSpan(h,g);try{if(this.excludeContentFromTrace||g.addEvent("input",{content:JSON.stringify(t,null,2)}),yield*this._forward2(e,t,o,{...n,functions:p},g,f),!this.excludeContentFromTrace){let x=o.map(b=>b.values),A=x.length===1?x[0]:x;g.addEvent("output",{content:JSON.stringify(A,null,2)})}}finally{g.end()}}async forward(e,t,n){let r=performance.now(),o=this.getSignatureName(),i=n?.stream??!1,a=!1,l=0,p=!1;try{let u=this.getMetricsInstruments();u&&Ui(u,this.signature.getInputFields().length,this.signature.getOutputFields().length,this.examples?.length??0,this.demos?.length??0,o);let c=this._forward1(e,t,n??{}),d=[],m=0,g=0;for await(let I of c)I.version!==m&&(d=[]),m=I.version,d=Ko(d,I),g++;l=m;let h=performance.now();p=!!n?.resultPicker;let f=await hr(d,{resultPicker:n?.resultPicker},n?.mem,n?.sessionId),x=performance.now()-h,b=d[f]?.delta??{};this.signatureToolCallingManager?.isPromptModeEnabled()&&(b=await this.signatureToolCallingManager.processResults(b,{sessionId:n?.sessionId}));let C=Array.isArray(t)?{}:t??{};if(this.trace={...C,...b},p&&this.isDebug(e,n)){let I=this.getLogger(e,n);Gs(d.length,f,x,I)}return a=!0,u&&(Gi(u,d.length,p,p?x:void 0,o),Li(u,i,g,void 0,o)),b}catch(u){throw a=!1,u}finally{let u=performance.now()-r,c=this.getMetricsInstruments();c&&(Fi(c,u,a,o,e.getName(),n?.model?String(n.model):void 0),l>0&&_o(c,l,a,n?.maxRetries??10,o))}}async*streamingForward(e,t,n){if(!n?.resultPicker){yield*this._forward1(e,t,{...n,stream:!0});return}let r=this._forward1(e,t,{...n,stream:!0}),o=[],i=0;for await(let p of r)p.version!==i&&(o=[]),i=p.version,o=Ko(o,p);let a=await hr(o,{resultPicker:n?.resultPicker},n?.mem,n?.sessionId),l=o[a];l&&(yield{version:i,index:a,delta:l.delta})}setExamples(e,t){super.setExamples(e,t)}isDebug(e,t){return t?.debug??this.options?.debug??e.getOptions().debug??!1}getLogger(e,t){return t?.logger??this.options?.logger??U.logger??e.getLogger()}},an=class extends Error{details;constructor(e,t,n){super(e),this.name="AxGenerateError",this.details=t,n?.cause&&(this.cause=n.cause)}};function es(s,e,t){let n=s instanceof Error?s:new Error(String(s)),r=e.getLastUsedChatModel(),o=e.getLastUsedModelConfig(),i={model:r,maxTokens:o?.maxTokens,streaming:o?.stream??!1,signature:{input:t.getInputFields(),output:t.getOutputFields(),description:t.getDescription()}};return new an("Generate failed",i,{cause:n})}var Ql=s=>s.replace(/^\W+|\W+$/g,""),Xl=(s,e)=>{let t=s.search(e);if(t===-1)return[s];let n=s.match(e);if(!n)throw new Error("Match failed unexpectedly.");let r=s.substring(0,t),o=s.substring(t+n[0].length);return[r,o]},Zl=s=>{let e=new Set,t=[];for(let n of s)e.has(n)||(e.add(n),t.push(n));return t},ep=s=>{let e=s.match(/^(\d+)[.,\s]+(.*)$/);if(!e||e.length<3)throw new Error('line must start with a number, a dot and then text. e.g. "1. hello"');let t=Number.parseInt(e[1],10),n=e[2].trim();return{id:t,text:n}},tp=s=>{let e=s.match(/^(\d+)[.,\s]+(.*)$/);return e&&e[2]!==void 0?e[2].trim():s},np=(s,e)=>{let t=[];for(let n=0;n<s.length;n+=e)t.push(s.slice(n,n+e));return t},Ar={trimNonAlphaNum:Ql,splitIntoTwo:Xl,dedup:Zl,extractIdAndText:ep,extractIndexPrefixedText:tp,batchArray:np};var xr=class extends se{constructor(e){super(`"You are a re-ranker assistant tasked with evaluating a set of content items in relation to a specific question. Your role involves critically analyzing each content item to determine its relevance to the question and re-ranking them accordingly. This process includes assigning a relevance score from 0 to 10 to each content item based on how well it answers the question, its coverage of the topic, and the reliability of its information. This re-ranked list should start with the content item that is most relevant to the question and end with the least relevant. Output only the list."
226
+ `),Vl=(s,e)=>{if(s.type?.name==="date"&&e instanceof Date){let t=e.toISOString();return t.slice(0,t.indexOf("T"))}return s.type?.name==="datetime"&&e instanceof Date?ta(e):s.type?.name==="image"&&typeof e=="object"||s.type?.name==="audio"&&typeof e=="object"||s.type?.name==="file"&&typeof e=="object"||s.type?.name==="url"&&(typeof e=="string"||typeof e=="object")||typeof e=="string"?e:JSON.stringify(e,null,2)},fa=s=>{let e=(()=>{switch(s?.name){case"string":return"string";case"number":return"number";case"boolean":return"boolean (true or false)";case"date":return'date ("YYYY-MM-DD" format)';case"datetime":return'date time ("YYYY-MM-DD HH:mm Timezone" format)';case"json":return"JSON object";case"class":return"classification class";case"code":return"code";case"file":return"file (with filename, mimeType, and data)";case"url":return"URL (string or object with url, title, description)";default:return"string"}})();return s?.isArray?`json array of ${e} items`:e};function ha(s){return(e,t)=>{if(t.type==="text"){let n=e.length>0?e[e.length-1]:null;n&&n.type==="text"?n.text+=s+t.text:e.push(t)}else e.push(t);return e}}var Wl=(s,e,t)=>{if(typeof e=="boolean")return!1;if(!e||(Array.isArray(e)||typeof e=="string")&&e.length===0){if(t?.isExample||s.isOptional||s.isInternal)return!0;let n=t?.isInputField!==!1?"input":"output";throw new Error(`Value for ${n} field '${s.name}' is required.`)}return!1};function gr(s){let e=s.trim();return e.length>0?`${e.charAt(0).toUpperCase()}${e.slice(1)}${e.endsWith(".")?"":"."}`:""}function Jl(s,e){let t=s.history(0,e),n=t.some(o=>o.role==="function");return t.some(o=>o.role==="assistant"&&"functionCalls"in o&&Array.isArray(o.functionCalls)&&o.functionCalls.length>0)&&n}function Yl(s,e){let t=s.history(0,e),n=[],r=t.filter(i=>i.role==="assistant"&&"functionCalls"in i&&Array.isArray(i.functionCalls)&&i.functionCalls.length>0),o=t.filter(i=>i.role==="function");for(let i of r)if("functionCalls"in i&&i.functionCalls)for(let a of i.functionCalls){let l=o.find(p=>"functionId"in p&&p.functionId===a.id);l&&"result"in l&&"functionId"in l&&n.push({index:n.length,functionName:a.function.name,functionId:a.id,args:a.function.params||"",result:String(l.result),isError:"isError"in l?!!l.isError:!1})}return n}async function hr(s,e,t,n){if(!e?.resultPicker||s.length<=1)return 0;let r=e.resultPicker;if((t?Jl(t,n):!1)&&t){let l=Yl(t,n),p=await r({type:"function",results:l});if(p<0||p>=l.length)throw new Error(`Result picker returned invalid index: ${p}. Must be between 0 and ${l.length-1}`);return p}let i=s.map((l,p)=>({index:p,sample:l.delta})),a=await r({type:"fields",results:i});if(a<0||a>=s.length)throw new Error(`Result picker returned invalid index: ${a}. Must be between 0 and ${s.length-1}`);return a}async function Aa(s,e,t){let n=s?.getLast(e);if(!n||n.role!=="assistant"||n.chat.length<=1)return 0;let r=n.chat.map(i=>({version:0,index:i.index,delta:i.value}));return await hr(r,t,s,e)}var sn=class{tools;logger;constructor(e,t){this.tools=new Map(e.map(n=>[n.name,n])),this.logger=t}async route(e,t){let n={},r={},o=[];for(let[a,l]of Object.entries(e)){let p=this.tools.get(this.normalizeToolName(a));if(p&&l!==void 0&&l!==null)try{let u=await this.executeTool(p,l,t);n[a]=u,o.push(p.name)}catch{r[a]=l}else r[a]=l}let i={...r,...n};return{toolResults:n,remainingFields:i}}async executeTool(e,t,n){if(!e.func)throw new Error(`Tool ${e.name} has no handler function`);let r=typeof t=="object"&&t!==null?t:{},o=U.tracer??Ne.getTracer("ax");if(!o){let i=e.func;return await i(r,{sessionId:n?.sessionId,traceId:n?.traceId})}return await o.startActiveSpan(`Tool: ${e.name}`,async i=>{try{i.setAttributes?.({"tool.name":e.name,"tool.mode":"prompt"});let a=e.func,l=await a(r,{sessionId:n?.sessionId,traceId:i.spanContext().traceId});return i.addEvent("gen_ai.tool.message",{name:e.name,args:JSON.stringify(r),result:typeof l=="string"?l:JSON.stringify(l??"")}),l}catch(a){throw i.recordException(a),i.addEvent("function.error",{name:e.name,message:a.toString()}),a}finally{i.end()}})}normalizeToolName(e){return e.replace(/_([a-z])/g,(t,n)=>n.toUpperCase())}isToolField(e){return this.tools.has(this.normalizeToolName(e))}getToolFieldNames(){return Array.from(this.tools.keys()).map(e=>e.replace(/([A-Z])/g,"_$1").toLowerCase().replace(/^_/,""))}};var fr=class{functionCallMode;tools;router;usePromptMode=!1;constructor(e){this.functionCallMode=e.functionCallMode??"auto",this.tools=e.functions??[],this.functionCallMode==="prompt"&&this.tools.length>0&&(this.usePromptMode=!0,this.router=new sn(this.tools))}setUsePromptMode(e){this.usePromptMode=e,e&&this.tools.length>0&&!this.router&&(this.router=new sn(this.tools))}getMode(){return this.functionCallMode}processSignature(e){return this.usePromptMode&&this.tools.length>0?e.injectToolFields(this.tools):e}async processResults(e,t){return this.usePromptMode&&this.router?(await this.router.route(e,t)).remainingFields:e}isPromptModeEnabled(){return this.usePromptMode}isNativeModeEnabled(){return!this.usePromptMode&&this.tools.length>0}getRouter(){return this.router}};var se=class extends Pe{promptTemplate;asserts;streamingAsserts;options;functions;fieldProcessors=[];streamingFieldProcessors=[];excludeContentFromTrace=!1;thoughtFieldName;signatureToolCallingManager;constructor(e,t){super(e,{description:t?.description,traceLabel:t?.traceLabel}),this.options=t,this.thoughtFieldName=t?.thoughtFieldName??"thought";let n={functions:t?.functions,thoughtFieldName:this.thoughtFieldName};this.promptTemplate=new(t?.promptTemplate??Ue)(this.signature,n),this.asserts=this.options?.asserts??[],this.streamingAsserts=this.options?.streamingAsserts??[],this.excludeContentFromTrace=t?.excludeContentFromTrace??!1,this.usage=[],t?.functions&&(this.functions=Fo(t.functions),t?.functionCallMode&&(this.signatureToolCallingManager=new fr({functionCallMode:t.functionCallMode,functions:this.functions})))}getSignatureName(){return this.signature.getDescription()||"unknown_signature"}getMetricsInstruments(){return Eo()}updateMeter(e){Eo(e)}createStates(e){return Array.from({length:e},(t,n)=>({index:n,functionCalls:[],values:{},content:"",functionsExecuted:new Set,xstate:{extractedFields:[],streamedIndex:{},s:-1}}))}addAssert=(e,t)=>{this.asserts.push({fn:e,message:t})};addStreamingAssert=(e,t,n)=>{this.streamingAsserts.push({fieldName:e,fn:t,message:n})};addFieldProcessorInternal=(e,t,n=!1)=>{let r=this.signature.getOutputFields().find(o=>o.name===e);if(!r)throw new Error(`addFieldProcessor: field ${e} not found`);if(n){let o=r.type?.name;if(!(!o||o==="string"||o==="code"))throw new Error(`addFieldProcessor: field ${e} is must be a text field`);this.streamingFieldProcessors.push({field:r,process:t})}else this.fieldProcessors.push({field:r,process:t})};addStreamingFieldProcessor=(e,t)=>{this.addFieldProcessorInternal(e,t,!0)};addFieldProcessor=(e,t)=>{this.addFieldProcessorInternal(e,t,!1)};async forwardSendRequest({ai:e,mem:t,options:n,traceContext:r,functions:o,functionCall:i,stepIndex:a}){let{sessionId:l,model:p,rateLimiter:u,stream:c,thinkingTokenBudget:d,showThoughts:m}=n??{},g=await Aa(t,l,{resultPicker:n?.resultPicker}),h=t?.history(g,l)??[];if(h.length===0)throw new Error("No chat prompt found");let f={...n?.modelConfig,...n?.sampleCount?{n:n.sampleCount}:{},...n?.sampleCount&&n?.modelConfig?.temperature===1?{temperature:.8}:{}},x=this.isDebug(e,n),A=a===0,b=this.getLogger(e,n);return await e.chat({chatPrompt:h,functions:o,functionCall:i,modelConfig:f,model:p},{sessionId:l,rateLimiter:u,stream:c,debug:x,debugHideSystemPrompt:!A,thinkingTokenBudget:d,showThoughts:m,traceContext:r,abortSignal:n?.abortSignal,stepIndex:a,logger:b})}async*forwardCore({ai:e,mem:t,options:n,stepIndex:r,span:o,traceContext:i,states:a}){let{sessionId:l,functions:p}=n??{},u=n?.functionCall??this.options?.functionCall,c=n?.strictMode??!1,d=n.model,m=this.usage,g=r===0,h=this.getLogger(e,n),{functions:f,functionCall:x}=Hi(p,u,g,n),A=await this.forwardSendRequest({ai:e,mem:t,options:n,traceContext:i,functions:f,functionCall:x,stepIndex:r});A instanceof ReadableStream?yield*la({ai:e,model:d,res:A,mem:t,sessionId:l,traceId:o?o.spanContext?.().traceId:void 0,functions:f,strictMode:c,span:o,states:a,usage:m,asserts:this.asserts,streamingAsserts:this.streamingAsserts,fieldProcessors:this.fieldProcessors,streamingFieldProcessors:this.streamingFieldProcessors,thoughtFieldName:this.thoughtFieldName,excludeContentFromTrace:this.excludeContentFromTrace,signature:this.signature,logger:h,functionResultFormatter:n?.functionResultFormatter??this.options?.functionResultFormatter}):yield*pa({ai:e,model:d,res:A,mem:t,sessionId:l,traceId:o?o.spanContext?.().traceId:void 0,functions:f,span:o,strictMode:c,states:a,usage:m,asserts:this.asserts,fieldProcessors:this.fieldProcessors,thoughtFieldName:this.thoughtFieldName,excludeContentFromTrace:this.excludeContentFromTrace,signature:this.signature,logger:h,functionResultFormatter:n?.functionResultFormatter??this.options?.functionResultFormatter})}async*_forward2(e,t,n,r,o,i){let a=(r?.stopFunction??this.options?.stopFunction)?.toLowerCase(),l=r.maxRetries??this.options?.maxRetries??10,p=r.maxSteps??this.options?.maxSteps??10,u=r.mem??this.options?.mem??new yt;if(this.signatureToolCallingManager?.getMode()==="auto"&&this.functions&&this.functions.length>0){let b=e.getFeatures(r.model).functions;this.signatureToolCallingManager.setUsePromptMode(!b)}let c;{let A=this.options?.promptTemplate??Ue,b=this.signature;this.signatureToolCallingManager?.isPromptModeEnabled()&&(b=this.signatureToolCallingManager.processSignature(this.signature));let C={functions:r?.functions??this.functions,thoughtFieldName:this.thoughtFieldName};this.promptTemplate=new A(b,C)}let d,m=performance.now();Array.isArray(t)?(ri(t),d=this.promptTemplate.render(t,{examples:this.examples,demos:this.demos})):d=this.promptTemplate.render(t,{examples:this.examples,demos:this.demos});let g=performance.now()-m,h=this.getMetricsInstruments();h&&cr(h,"prompt_render",g,this.getSignatureName());let f=performance.now();u.addRequest(d,r.sessionId);let x=performance.now()-f;h&&cr(h,"memory_update",x,this.getSignatureName());e:for(let A=0;A<p;A++){for(let C=0;C<l;C++)try{let I=this.forwardCore({options:r,ai:e,mem:u,stepIndex:A,span:o,traceContext:i,states:n});for await(let S of I)S!==void 0&&(yield{version:C,index:S.index,delta:S.delta});if(ua(u,a,n,r?.sessionId)){let S=this.getMetricsInstruments();S&&ur(S,A+1,p,this.getSignatureName());continue e}let T=this.getMetricsInstruments();if(T){ur(T,A+1,p,this.getSignatureName());let S=new Set;n.forEach(O=>{O.functionsExecuted.forEach(N=>S.add(N))}),S.size>0&&$i(T,!0,S.size,!0,!1,this.getSignatureName()),Ni(T,this.fieldProcessors.length,this.streamingFieldProcessors.length,this.getSignatureName())}return}catch(I){let y,T=this.isDebug(e,r),S=this.getLogger(e,r),O=this.getMetricsInstruments(),N=this.getSignatureName(),G={error:I,errCount:C,logger:S,metricsInstruments:O,signatureName:N,span:o,debug:T};if(o?.recordException(I),I instanceof Y)y=Bi(G),c=I;else if(I instanceof ke)y=qi(G),c=I;else if(I instanceof q)zi(G);else if(!(I instanceof ue))throw es(I,e,this.signature);y&&(u.addRequest([{role:"user",content:this.promptTemplate.renderExtraFields(y)}],r.sessionId),u.addTag("error",r.sessionId))}let b=this.getMetricsInstruments();throw b&&_o(b,l,!1,l,this.getSignatureName()),es(new Error(`Unable to fix validation error: ${c?.toString()}`),e,this.signature)}throw h&&ur(h,p,p,this.getSignatureName()),es(new Error(`Max steps reached: ${p}`),e,this.signature)}async*_forward1(e,t,n){let r=performance.now(),o=this.createStates(n.sampleCount??1),i=performance.now()-r,a=this.getMetricsInstruments();a&&cr(a,"state_creation",i,this.getSignatureName());let l=n?.tracer??this.options?.tracer??e.getOptions().tracer,p=this.functions;if(n?.functions&&(p=Fo(n.functions,this.functions)),!l){yield*this._forward2(e,t,o,{...n,functions:p});return}let u=p?.map(x=>x.name).join(","),c={signature:JSON.stringify(this.signature.toJSON(),null,2),...this.examples?{examples:JSON.stringify(this.examples,null,2)}:{},...u?{provided_functions:u}:{},...n?.model?{model:n.model}:{},...n?.thinkingTokenBudget?{thinking_token_budget:n.thinkingTokenBudget}:{},...n?.showThoughts?{show_thoughts:n.showThoughts}:{},...n?.maxSteps?{max_steps:n.maxSteps}:{},...n?.maxRetries?{max_retries:n.maxRetries}:{}},d=this.traceLabel&&n.traceLabel?`${this.traceLabel} > ${n.traceLabel}`:n.traceLabel??this.traceLabel,m=d?`AxGen > ${d}`:"AxGen",g=l.startSpan(m,{kind:oe.SERVER,attributes:c}),h=Oe.active(),f=Ne.setSpan(h,g);try{if(this.excludeContentFromTrace||g.addEvent("input",{content:JSON.stringify(t,null,2)}),yield*this._forward2(e,t,o,{...n,functions:p},g,f),!this.excludeContentFromTrace){let x=o.map(b=>b.values),A=x.length===1?x[0]:x;g.addEvent("output",{content:JSON.stringify(A,null,2)})}}finally{g.end()}}async forward(e,t,n){let r=performance.now(),o=this.getSignatureName(),i=n?.stream??!1,a=!1,l=0,p=!1;try{let u=this.getMetricsInstruments();u&&Ui(u,this.signature.getInputFields().length,this.signature.getOutputFields().length,this.examples?.length??0,this.demos?.length??0,o);let c=this._forward1(e,t,n??{}),d=[],m=0,g=0;for await(let I of c)I.version!==m&&(d=[]),m=I.version,d=Ko(d,I),g++;l=m;let h=performance.now();p=!!n?.resultPicker;let f=await hr(d,{resultPicker:n?.resultPicker},n?.mem,n?.sessionId),x=performance.now()-h,b=d[f]?.delta??{};this.signatureToolCallingManager?.isPromptModeEnabled()&&(b=await this.signatureToolCallingManager.processResults(b,{sessionId:n?.sessionId}));let C=Array.isArray(t)?{}:t??{};if(this.trace={...C,...b},p&&this.isDebug(e,n)){let I=this.getLogger(e,n);Gs(d.length,f,x,I)}return a=!0,u&&(Gi(u,d.length,p,p?x:void 0,o),Li(u,i,g,void 0,o)),b}catch(u){throw a=!1,u}finally{let u=performance.now()-r,c=this.getMetricsInstruments();c&&(Fi(c,u,a,o,e.getName(),n?.model?String(n.model):void 0),l>0&&_o(c,l,a,n?.maxRetries??10,o))}}async*streamingForward(e,t,n){if(!n?.resultPicker){yield*this._forward1(e,t,{...n,stream:!0});return}let r=this._forward1(e,t,{...n,stream:!0}),o=[],i=0;for await(let p of r)p.version!==i&&(o=[]),i=p.version,o=Ko(o,p);let a=await hr(o,{resultPicker:n?.resultPicker},n?.mem,n?.sessionId),l=o[a];l&&(yield{version:i,index:a,delta:l.delta})}setExamples(e,t){super.setExamples(e,t)}isDebug(e,t){return t?.debug??this.options?.debug??e.getOptions().debug??!1}getLogger(e,t){return t?.logger??this.options?.logger??U.logger??e.getLogger()}},an=class extends Error{details;constructor(e,t,n){super(e),this.name="AxGenerateError",this.details=t,n?.cause&&(this.cause=n.cause)}};function es(s,e,t){let n=s instanceof Error?s:new Error(String(s)),r=e.getLastUsedChatModel(),o=e.getLastUsedModelConfig(),i={model:r,maxTokens:o?.maxTokens,streaming:o?.stream??!1,signature:{input:t.getInputFields(),output:t.getOutputFields(),description:t.getDescription()}};return new an("Generate failed",i,{cause:n})}var Ql=s=>s.replace(/^\W+|\W+$/g,""),Xl=(s,e)=>{let t=s.search(e);if(t===-1)return[s];let n=s.match(e);if(!n)throw new Error("Match failed unexpectedly.");let r=s.substring(0,t),o=s.substring(t+n[0].length);return[r,o]},Zl=s=>{let e=new Set,t=[];for(let n of s)e.has(n)||(e.add(n),t.push(n));return t},ep=s=>{let e=s.match(/^(\d+)[.,\s]+(.*)$/);if(!e||e.length<3)throw new Error('line must start with a number, a dot and then text. e.g. "1. hello"');let t=Number.parseInt(e[1],10),n=e[2].trim();return{id:t,text:n}},tp=s=>{let e=s.match(/^(\d+)[.,\s]+(.*)$/);return e&&e[2]!==void 0?e[2].trim():s},np=(s,e)=>{let t=[];for(let n=0;n<s.length;n+=e)t.push(s.slice(n,n+e));return t},Ar={trimNonAlphaNum:Ql,splitIntoTwo:Xl,dedup:Zl,extractIdAndText:ep,extractIndexPrefixedText:tp,batchArray:np};var xr=class extends se{constructor(e){super(`"You are a re-ranker assistant tasked with evaluating a set of content items in relation to a specific question. Your role involves critically analyzing each content item to determine its relevance to the question and re-ranking them accordingly. This process includes assigning a relevance score from 0 to 10 to each content item based on how well it answers the question, its coverage of the topic, and the reliability of its information. This re-ranked list should start with the content item that is most relevant to the question and end with the least relevant. Output only the list."
193
227
  query: string, items: string[] -> rankedItems: string[] "list of id, 5-words Rationale, relevance score"`,e)}forward=async(e,t,n)=>{let{rankedItems:r}=await super.forward(e,t,n),o=r.map(a=>{let{id:l}=Ar.extractIdAndText(a);return l});return{rankedItems:t.items.map((a,l)=>{let p=o[l];return p!==void 0?t.items[p]:void 0}).filter(a=>a!==void 0)}}};var yr=class{tikaUrl;fetch;constructor(e){let t=e??{url:"http://localhost:9998/"};this.tikaUrl=new URL("/tika",t.url),this.fetch=t.fetch}async _convert(e,t){if(!e)throw new Error("Failed to read file data");let n=t?.format==="html"?"text/html":"text/plain";try{let r={body:e,headers:{Accept:n},method:"PUT"};typeof window>"u"&&typeof process<"u"&&(r.duplex="half");let o=await(this.fetch??fetch)(this.tikaUrl,r);if(!o.ok)throw new Error(`Failed to upload file: ${o.statusText}`);return await o.text()}catch(r){throw new Error(`Error converting file: ${r}`)}}async convert(e,t){let n=[],r=t?.batchSize??10;for(let o=0;o<e.length;o+=r){let a=e.slice(o,o+r).map(p=>this._convert(p,{format:t?.format})),l=await Promise.all(a);n.push(...l)}return n}};var xa=new Z,Ir=class{name;context;constructor(e,t){this.name=e,this.context=t}getName(){return this.name}getContext(){return this.context}},br=class{ai;db;debug;constructor(e){this.db=new Me,this.ai=e}getState(){return this.db.getDB()}setState(e){this.db.setDB(e)}setClasses=async(e,t)=>{for(let n of e){let r=await this.ai.embed({texts:n.getContext()},{abortSignal:t?.abortSignal});await this.db.upsert({id:n.getName(),table:"classes",values:r.embeddings[0]})}};async forward(e,t){let{embeddings:n}=await this.ai.embed({texts:[e]},{abortSignal:t?.abortSignal}),o=(await this.db.query({table:"classes",values:n[0]})).matches;if(typeof t?.cutoff=="number"){let{cutoff:a}=t;o=o.filter(l=>l.score<=a)}this.debug&&console.log(`${xa.whiteBright(`query: ${e}`)}
194
228
  ${xa.greenBright(JSON.stringify(o.map(a=>`${a.id}, ${a.score}`)))}`);let i=o.at(0);return i?i.id:""}setOptions(e){typeof e.debug=="boolean"&&(this.debug=e.debug)}};var ya=new Set(["0o","0s","3a","3b","3d","6b","6o","a","a1","a2","a3","a4","ab","able","about","above","abst","ac","accordance","according","accordingly","across","act","actually","ad","added","adj","ae","af","affected","affecting","affects","after","afterwards","ag","again","against","ah","ain","ain't","aj","al","all","allow","allows","almost","alone","along","already","also","although","always","am","among","amongst","amoungst","amount","an","and","announce","another","any","anybody","anyhow","anymore","anyone","anything","anyway","anyways","anywhere","ao","ap","apart","apparently","appear","appreciate","appropriate","approximately","ar","are","aren","arent","aren't","arise","around","as","a's","aside","ask","asking","associated","at","au","auth","av","available","aw","away","awfully","ax","ay","az","b","b1","b2","b3","ba","back","bc","bd","be","became","because","become","becomes","becoming","been","before","beforehand","begin","beginning","beginnings","begins","behind","being","believe","below","beside","besides","best","better","between","beyond","bi","bill","biol","bj","bk","bl","bn","both","bottom","bp","br","brief","briefly","bs","bt","bu","but","bx","by","c","c1","c2","c3","ca","call","came","can","cannot","cant","can't","cause","causes","cc","cd","ce","certain","certainly","cf","cg","ch","changes","ci","cit","cj","cl","clearly","cm","c'mon","cn","co","com","come","comes","con","concerning","consequently","consider","considering","contain","containing","contains","corresponding","could","couldn","couldnt","couldn't","course","cp","cq","cr","cry","cs","c's","ct","cu","currently","cv","cx","cy","cz","d","d2","da","date","dc","dd","de","definitely","describe","described","despite","detail","df","di","did","didn","didn't","different","dj","dk","dl","do","does","doesn","doesn't","doing","don","done","don't","down","downwards","dp","dr","ds","dt","du","due","during","dx","dy","e","e2","e3","ea","each","ec","ed","edu","ee","ef","effect","eg","ei","eight","eighty","either","ej","el","eleven","else","elsewhere","em","empty","en","end","ending","enough","entirely","eo","ep","eq","er","es","especially","est","et","et-al","etc","eu","ev","even","ever","every","everybody","everyone","everything","everywhere","ex","exactly","example","except","ey","f","f2","fa","far","fc","few","ff","fi","fifteen","fifth","fify","fill","find","fire","first","five","fix","fj","fl","fn","fo","followed","following","follows","for","former","formerly","forth","forty","found","four","fr","from","front","ft","fu","full","further","furthermore","fy","g","ga","gave","ge","get","gets","getting","gi","give","given","gives","giving","gj","gl","go","goes","going","gone","got","gotten","gr","greetings","gs","gy","h","h2","h3","had","hadn","hadn't","happens","hardly","has","hasn","hasnt","hasn't","have","haven","haven't","having","he","hed","he'd","he'll","hello","help","hence","her","here","hereafter","hereby","herein","heres","here's","hereupon","hers","herself","hes","he's","hh","hi","hid","him","himself","his","hither","hj","ho","home","hopefully","how","howbeit","however","how's","hr","hs","http","hu","hundred","hy","i","i2","i3","i4","i6","i7","i8","ia","ib","ibid","ic","id","i'd","ie","if","ig","ignored","ih","ii","ij","il","i'll","im","i'm","immediate","immediately","importance","important","in","inasmuch","inc","indeed","index","indicate","indicated","indicates","information","inner","insofar","instead","interest","into","invention","inward","io","ip","iq","ir","is","isn","isn't","it","itd","it'd","it'll","its","it's","itself","iv","i've","ix","iy","iz","j","jj","jr","js","jt","ju","just","k","ke","keep","keeps","kept","kg","kj","km","know","known","knows","ko","l","l2","la","largely","last","lately","later","latter","latterly","lb","lc","le","least","les","less","lest","let","lets","let's","lf","like","liked","likely","line","little","lj","ll","ll","ln","lo","look","looking","looks","los","lr","ls","lt","ltd","m","m2","ma","made","mainly","make","makes","many","may","maybe","me","mean","means","meantime","meanwhile","merely","mg","might","mightn","mightn't","mill","million","mine","miss","ml","mn","mo","more","moreover","most","mostly","move","mr","mrs","ms","mt","mu","much","mug","must","mustn","mustn't","my","myself","model","n","n2","na","name","namely","nay","nc","nd","ne","near","nearly","necessarily","necessary","need","needn","needn't","needs","neither","never","nevertheless","new","next","ng","ni","nine","ninety","nj","nl","nn","no","nobody","non","none","nonetheless","noone","nor","normally","nos","not","noted","nothing","novel","now","nowhere","nr","ns","nt","ny","o","oa","ob","obtain","obtained","obviously","oc","od","of","off","often","og","oh","oi","oj","ok","okay","ol","old","om","omitted","on","once","one","ones","only","onto","oo","op","oq","or","ord","os","ot","other","others","otherwise","ou","ought","our","ours","ourselves","out","outside","over","overall","ow","owing","own","ox","oz","p","p1","p2","p3","page","pagecount","pages","par","part","particular","particularly","pas","past","pc","pd","pe","per","perhaps","pf","ph","pi","pj","pk","pl","placed","please","plus","pm","pn","po","poorly","possible","possibly","potentially","pp","pq","pr","predominantly","present","presumably","previously","primarily","probably","promptly","proud","provides","ps","pt","pu","put","py","q","qj","qu","que","quickly","quite","qv","r","r2","ra","ran","rather","rc","rd","re","readily","really","reasonably","recent","recently","ref","refs","regarding","regardless","regards","related","relatively","research","research-articl","respectively","resulted","resulting","results","rf","rh","ri","right","rj","rl","rm","rn","ro","rq","rr","rs","rt","ru","run","rv","ry","s","s2","sa","said","same","saw","say","saying","says","sc","sd","se","sec","second","secondly","section","see","seeing","seem","seemed","seeming","seems","seen","self","selves","sensible","sent","serious","seriously","seven","several","sf","shall","shan","shan't","she","shed","she'd","she'll","shes","she's","should","shouldn","shouldn't","should've","show","showed","shown","showns","shows","si","side","significant","significantly","similar","similarly","since","sincere","six","sixty","sj","sl","slightly","sm","sn","so","some","somebody","somehow","someone","somethan","something","sometime","sometimes","somewhat","somewhere","soon","sorry","sp","specifically","specified","specify","specifying","sq","sr","ss","st","still","stop","strongly","sub","substantially","successfully","such","sufficiently","suggest","sup","sure","sy","system","sz","t","t1","t2","t3","take","taken","taking","tb","tc","td","te","tell","ten","tends","tf","th","than","thank","thanks","thanx","that","that'll","thats","that's","that've","the","their","theirs","them","themselves","then","thence","there","thereafter","thereby","thered","therefore","therein","there'll","thereof","therere","theres","there's","thereto","thereupon","there've","these","they","theyd","they'd","they'll","theyre","they're","they've","thickv","thin","think","third","this","thorough","thoroughly","those","thou","though","thoughh","thousand","three","throug","through","throughout","thru","thus","ti","til","tip","tj","tl","tm","tn","to","together","too","took","top","toward","towards","tp","tq","tr","tried","tries","truly","try","trying","ts","t's","tt","tv","twelve","twenty","twice","two","tx","u","u201d","ue","ui","uj","uk","um","un","under","unfortunately","unless","unlike","unlikely","until","unto","uo","up","upon","ups","ur","us","use","used","useful","usefully","usefulness","uses","using","usually","ut","v","va","value","various","vd","ve","ve","very","via","viz","vj","vo","vol","vols","volumtype","vq","vs","vt","vu","w","wa","want","wants","was","wasn","wasnt","wasn't","way","we","wed","we'd","welcome","well","we'll","well-b","went","were","we're","weren","werent","weren't","we've","what","whatever","what'll","whats","what's","when","whence","whenever","when's","where","whereafter","whereas","whereby","wherein","wheres","where's","whereupon","wherever","whether","which","while","whim","whither","who","whod","whoever","whole","who'll","whom","whomever","whos","who's","whose","why","why's","wi","widely","will","willing","wish","with","within","without","wo","won","wonder","wont","won't","words","world","would","wouldn","wouldnt","wouldn't","www","x","x1","x2","x3","xf","xi","xj","xk","xl","xn","xo","xs","xt","xv","xx","y","y2","yes","yet","yj","yl","you","youd","you'd","you'll","your","youre","you're","yours","yourself","yourselves","you've","yr","ys","yt","z","zero","zi","zz","task"]);function Ia(s,e){return s.filter(t=>!e.has(t))}function ba(s){let e={};for(let t of s)e[t]=(e[t]||0)+1;return e}function Be(s){let e=s.normalize("NFD");return e=e.replace(/\b(a|an|the)\b/g," "),e=e.split(/\s+/).join(" "),e=e.replace(/[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]/g,""),e.toLowerCase()}function rp(s,e){return Be(s)===Be(e)?1:0}function op(s,e){let t=Be(s).split(" "),n=Be(e).split(" "),r=ba(t),o=ba(n),i=0;for(let p in r){let u=r[p]??0,c=o[p]??0;i+=Math.min(u,c)}if(i===0)return 0;let a=i/t.length,l=i/n.length;return 2*a*l/(a+l)}function sp(s,e,t,n=!1){let r=Be(s).split(" "),o=Be(e).split(" "),i=Be(t).split(" "),a=new Set([...ya,...r]);o=Ia(o,a),i=Ia(i,a);let l=0,p=l/o.length,u=l/i.length,c=2*p*u/(p+u);return n?u:c}var Ta={emScore:rp,f1Score:op,novelF1ScoreOptimized:sp};var Tr=class{ai;program;examples;constructor({ai:e,program:t,examples:n=[]}){if(n.length===0)throw new Error("No examples found");this.ai=e,this.program=t,this.examples=n}async run(e){let t=Date.now(),n=this.examples.length,r=0;for(let i=0;i<n;i++){let a=this.examples[i];if(!a)throw new Error("Invalid example");try{let l=await this.program.forward(this.ai,a,{maxRetries:1}),p=await e({prediction:l,example:a});r+=p}catch(l){console.warn(`Program evaluation failed for example ${i}: ${l instanceof Error?l.message:"Unknown error"}`)}}let o=n>0?r/n:0;console.log(`
195
229
  Performance: `,r,"/",n,"Average Score: ",o,`
@@ -302,7 +336,7 @@ Requirements:
302
336
  5. Keep it concise but comprehensive
303
337
 
304
338
  Generate a single, well-crafted instruction:
305
- Instruction:`;try{let m=(await qe('programSummary?:string "Program context" , datasetSummary?:string "Dataset context" , tip?:string "Generation tip" -> instructionText:string "Well-crafted instruction for the program"').forward(n,{programSummary:r??"",datasetSummary:o??"",tip:e??""})).instructionText;if(m&&m.trim().length>10)return m.trim()}catch{}let p=["Analyze the input systematically and provide a precise, well-reasoned response.","Think through this step-by-step, considering all relevant factors before responding.","Examine the input carefully and generate an accurate, detailed answer.","Process the information methodically and deliver a clear, comprehensive response.","Consider the context thoroughly and provide a thoughtful, accurate answer."],u=p[t%p.length]||p[0];return e&&(u=`${u} ${e}`),u}async proposeInstructionCandidates(e,t,n=[]){let r=[],o=this.getTeacherOrStudentAI(t),i,a;this.programAwareProposer&&(i=await this.generateProgramSummary(e,o)),this.dataAwareProposer&&(a=await this.generateDatasetSummary([...n],o));let l=this.tipAwareProposer?this.generateTips():[];for(let p=0;p<this.numCandidates;p++){let u=l.length>0?p%l.length:-1,c=u>=0?l[u]:void 0,d=await this.generateInstruction({tip:c,candidateIndex:p,ai:o,programSummary:i,datasetSummary:a,previousInstructions:r});r.push(d)}return r}async bootstrapFewShotExamples(e,t,n){return(await new Rt({studentAI:this.studentAI,options:{maxDemos:this.maxBootstrappedDemos,maxRounds:3,verboseMode:this.verbose??!1}}).compile(e,n,t,{maxDemos:this.maxBootstrappedDemos})).demos||[]}selectLabeledExamples(e){let t=[],n=new Set;for(;n.size<this.maxLabeledDemos&&n.size<e.length;){let r=Math.floor(Math.random()*e.length);if(!n.has(r)){n.add(r);let o=e[r];o&&t.push(o)}}return t}applyConfigToProgram(e,t,n,r){e.setInstruction&&e.setInstruction(t.instruction),t.bootstrappedDemos>0&&e.setDemos&&e.setDemos(n.slice(0,t.bootstrappedDemos)),t.labeledExamples>0&&e.setExamples&&e.setExamples(r.slice(0,t.labeledExamples))}async compile(e,t,n,r){let o=Date.now();if(this.validateExamples(t),this.setupRandomSeed(),r?.auto&&this.configureAuto(r.auto),!this.pythonClient)throw new Error("AxMiPRO v2 requires the Python optimizer service. Please configure optimizerEndpoint.");if(!await this.pythonClient.healthCheck())throw new Error("Python optimizer service is not available or unhealthy");return await this.compilePython(e,t,n,r)}applyConfigToAxGen(e,t,n,r){"setInstruction"in e&&typeof e.setInstruction=="function"&&e.setInstruction(t.instruction),t.bootstrappedDemos>0&&e.setDemos(n.slice(0,t.bootstrappedDemos)),t.labeledExamples>0&&e.setExamples(r.slice(0,t.labeledExamples))}getConfiguration(){return{numCandidates:this.numCandidates,initTemperature:this.initTemperature,maxBootstrappedDemos:this.maxBootstrappedDemos,maxLabeledDemos:this.maxLabeledDemos,numTrials:this.numTrials,minibatch:this.minibatch,minibatchSize:this.minibatchSize,minibatchFullEvalSteps:this.minibatchFullEvalSteps,programAwareProposer:this.programAwareProposer,dataAwareProposer:this.dataAwareProposer,tipAwareProposer:this.tipAwareProposer,fewshotAwareProposer:this.fewshotAwareProposer,earlyStoppingTrials:this.earlyStoppingTrials,minImprovementThreshold:this.minImprovementThreshold,bayesianOptimization:this.bayesianOptimization,acquisitionFunction:this.acquisitionFunction,explorationWeight:this.explorationWeight,sampleCount:this.sampleCount}}updateConfiguration(e){e.numCandidates!==void 0&&(this.numCandidates=e.numCandidates),e.initTemperature!==void 0&&(this.initTemperature=e.initTemperature),e.maxBootstrappedDemos!==void 0&&(this.maxBootstrappedDemos=e.maxBootstrappedDemos),e.maxLabeledDemos!==void 0&&(this.maxLabeledDemos=e.maxLabeledDemos),e.numTrials!==void 0&&(this.numTrials=e.numTrials),e.minibatch!==void 0&&(this.minibatch=e.minibatch),e.minibatchSize!==void 0&&(this.minibatchSize=e.minibatchSize),e.earlyStoppingTrials!==void 0&&(this.earlyStoppingTrials=e.earlyStoppingTrials),e.minImprovementThreshold!==void 0&&(this.minImprovementThreshold=e.minImprovementThreshold),e.sampleCount!==void 0&&(this.sampleCount=e.sampleCount)}reset(){super.reset(),this.stats.convergenceInfo.convergenceThreshold=this.minImprovementThreshold}validateProgram(e){let t=[],n=[];return{isValid:t.length===0,issues:t,suggestions:n}}async compilePython(e,t,n,r){if(!this.pythonClient)throw new Error("Python client not initialized");let o=Date.now();this.localScoreHistory=[],this.localConfigurationHistory=[];let i=`mipro_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,a={study_name:i,parameters:[{name:"temperature",type:"float",low:.1,high:2},{name:"bootstrappedDemos",type:"int",low:0,high:this.maxBootstrappedDemos},...this.optimizeTopP?[{name:"topP",type:"float",low:.7,high:1}]:[]],objective:{name:"score",direction:"maximize"},n_trials:this.numTrials,sampler:"TPESampler",pruner:this.minibatch?"MedianPruner":void 0},l=await this.pythonClient.createOptimizationJob(a);this.getOptimizerLogger()?.({name:"OptimizationStart",value:{optimizerType:"MiPRO (Python)",exampleCount:t.length,validationCount:0,config:{jobId:l.job_id,numTrials:this.numTrials}}});let u=Number.NEGATIVE_INFINITY,c,d=0,m=0;for(let C=0;C<this.numTrials;C++)try{let I=await this.pythonClient.suggestParameters(i),y=I.params.temperature,T=I.params.bootstrappedDemos,S=this.optimizeTopP?I.params.topP:void 0;if(y===void 0)throw new Error(`Missing temperature parameter in suggestion: ${JSON.stringify(I)}`);if(T===void 0)throw new Error(`Missing bootstrappedDemos parameter in suggestion: ${JSON.stringify(I)}`);let N=!this.minibatch||this.minibatchFullEvalSteps>0&&C%this.minibatchFullEvalSteps===this.minibatchFullEvalSteps-1?[...t]:(()=>{let w=Math.min(this.minibatchSize,t.length),R=new Set;for(;R.size<w;)R.add(Math.floor(Math.random()*t.length));return Array.from(R).map(k=>t[k])})(),G=await this.evaluateConfiguration(e,n,{temperature:y,bootstrappedDemos:T,topP:S},N);d++,await this.pythonClient.evaluateTrial({study_name:i,trial_number:I.trial_number,value:G}),G>u+this.minImprovementThreshold?(u=G,c={temperature:y,bootstrappedDemos:T,...S!==void 0?{topP:S}:{},trialNumber:I.trial_number},m=0):m+=1,this.currentRound=C+1;let O={temperature:y,bootstrappedDemos:T,...S!==void 0?{topP:S}:{},trialNumber:I.trial_number};if(this.localScoreHistory.push(G),this.localConfigurationHistory.push(O),await this.updateOptimizationProgress(this.currentRound,G,O,"MiPRO (Python)",{sampler:"TPESampler"},u,c),this.onProgress?.({round:C+1,totalRounds:this.numTrials,currentScore:G,bestScore:u,tokensUsed:this.stats.estimatedTokenUsage,timeElapsed:Date.now()-o,successfulExamples:d,totalExamples:t.length}),this.earlyStoppingTrials>0&&m>=this.earlyStoppingTrials){this.getOptimizerLogger()?.({name:"EarlyStopping",value:{reason:`No improvement \u2265 ${this.minImprovementThreshold} for ${this.earlyStoppingTrials} trials`,finalScore:u,round:this.currentRound}}),this.onEarlyStop?.(`No improvement for ${this.earlyStoppingTrials} trials`,this.stats);break}}catch{}let g=u,h={},f=[];try{let C=await this.pythonClient.getStudyResults(i);if(g=C.best_value||u,h=C.best_params||{},h&&Object.keys(h).length>0){let I=h.bootstrappedDemos||0;I>0&&(f=await this.bootstrapFewShotExamples(e,n,t.slice(0,Math.floor(t.length*.8))),f=f.slice(0,I))}}catch{}let x;try{let I=await qe('optimizerType:string "Optimizer name" , bestScore:number "Final best score" , totalCalls:number "Total eval calls" , successfulDemos:number "Successful evals" , bestConfig:json "Best configuration" -> humanExplanation:string "Readable summary", recommendations:string[] "Next steps", performanceAssessment:string "Performance notes"').forward(this.studentAI,{optimizerType:"MiPRO (Python)",bestScore:g,totalCalls:this.stats.totalCalls,successfulDemos:this.stats.successfulDemos,bestConfig:h||{}});x={humanExplanation:I.humanExplanation??"",recommendations:I.recommendations??[],performanceAssessment:I.performanceAssessment??""}}catch{}await this.logOptimizationComplete("MiPRO (Python)",g,h,r,x);try{await this.pythonClient.deleteStudy(i)}catch{}this.stats.bestScore=g;let A=new se(e.getSignature());f.length>0&&A.setDemos(f),h.temperature&&(A._optimizedModelConfig={temperature:h.temperature});let b=new Tt({bestScore:g,stats:this.stats,instruction:void 0,demos:f,examples:[],modelConfig:{temperature:h.temperature},optimizerType:"MiPRO (Python)",optimizationTime:Date.now()-o,totalRounds:this.numTrials,converged:this.stats.convergenceInfo.converged,scoreHistory:[...this.localScoreHistory],configurationHistory:[...this.localConfigurationHistory]});return{bestScore:g,demos:f,stats:this.stats,optimizedGen:A,optimizedProgram:b,finalConfiguration:{temperature:h.temperature,bootstrappedDemos:h.bootstrappedDemos||0,...h}}}async evaluateConfiguration(e,t,n,r){let o=0,i=0,a=0,l=r,p=[];if(n.bootstrappedDemos>0)try{p=(await this.bootstrapFewShotExamples(e,t,l)).slice(0,n.bootstrappedDemos)}catch{p=[]}for(let u of l)try{p.length>0&&e.setDemos?.(p);let c=await e.forward(this.studentAI,u,{modelConfig:{temperature:n.temperature,...n.topP!==void 0?{topP:n.topP}:{}},sampleCount:this.sampleCount,resultPicker:this.sampleCount>1?this.customResultPicker??this.defaultResultPicker:void 0});this.stats.totalCalls+=1;let d=await t({prediction:c,example:u});if(typeof d=="number"&&!Number.isNaN(d)){o+=d,i++;let m=typeof this.targetScore=="number"?this.targetScore:.5;d>=m&&a++}}catch(c){this.getLogger()?.({name:"Notification",id:"mipro_evaluate",value:typeof c=="string"?c:String(c)})}return this.stats.successfulDemos+=a,i>0?o/i:0}};var Ct=class{analyzeMappingDependencies(e,t){if(!e||typeof e!="function")return[];let n=[];try{let r=e.toString(),o=Array.from(r.matchAll(/state\.(\w+)/g));for(let i of o)i[1]&&!n.includes(i[1])&&n.push(i[1]);if(n.length===0)try{let i=this.createDependencyTracker(n);e(i)}catch{}}catch(r){console.debug("Dependency analysis failed:",r)}return n}createTrackingProxy(e,t){let n=this;return new Proxy(e,{get(r,o){typeof o=="string"&&!t.includes(o)&&t.push(o);let i=r[o];return i&&typeof i=="object"?n.createTrackingProxy(i,t):i},has(r,o){return typeof o=="string"&&!t.includes(o)&&t.push(o),o in r}})}parseStaticDependencies(e){let t=[];try{let n=Array.from(e.matchAll(/state\.(\w+)/g));for(let i of n)i[1]&&!t.includes(i[1])&&t.push(i[1]);let r=Array.from(e.matchAll(/\$\{state\.(\w+)\}/g));for(let i of r)i[1]&&!t.includes(i[1])&&t.push(i[1]);let o=Array.from(e.matchAll(/\{\s*(\w+)(?:\s*,\s*(\w+))*\s*\}\s*=\s*state/g));for(let i of o)for(let a=1;a<i.length;a++)i[a]&&!t.includes(i[a])&&t.push(i[a])}catch(n){console.debug("Static dependency parsing failed:",n)}return t}createDependencyTracker(e){return new Proxy({},{get(t,n){return typeof n=="string"&&!e.includes(n)&&e.push(n),new Proxy({},{get:()=>{}})}})}};async function wt(s,e,t){if(!t||t<=0||t>=s.length){let r=s.map((o,i)=>e(o,i));return Promise.all(r)}let n=new Array(s.length);for(let r=0;r<s.length;r+=t){let i=s.slice(r,r+t).map((l,p)=>{let u=r+p;return e(l,u).then(c=>({result:c,originalIndex:u}))}),a=await Promise.all(i);for(let{result:l,originalIndex:p}of a)n[p]=l}return n}var vt=class{steps=[];parallelGroups=[];analyzer=new Ct;initialFields=new Set;addExecutionStep(e,t,n,r,o,i,a){let l=[],p=[],u=r||"map";if(t&&n)u="execute",l=this.analyzer.analyzeMappingDependencies(n,t),p=[`${t}Result`];else if(u==="map"&&o)p=this.analyzeMapTransformation(o),l=this.getAllProducedFields();else if(u==="parallel-map"){if(Array.isArray(o)){let d=new Set;for(let m of o)this.analyzeMapTransformation(m).forEach(h=>d.add(h));p=Array.from(d)}else o?p=this.analyzeMapTransformation(o):p=["_parallelMapResult"];l=this.getAllProducedFields()}else if(u==="merge"){if(i?.resultKey)p=[i.resultKey];else{let m=this.analyzeBranchMergeFields();p=m.length>0?m:["_mergedResult"]}e.toString().includes("_parallelResults")?l=["_parallelResults"]:l=this.getAllProducedFields()}else if(u==="parallel")p=["_parallelResults"],l=this.getAllProducedFields();else if(u==="derive")if(a?.outputFieldName&&a?.inputFieldName){p=[a.outputFieldName];let d=o?this.analyzer.analyzeMappingDependencies(o,"derive"):[];l=[a.inputFieldName,...d].filter((m,g,h)=>h.indexOf(m)===g)}else p=["_deriveResult"],l=this.getAllProducedFields();else e.toString().includes("transform(")?(u="map",l=this.getAllProducedFields(),p=["_mapResult"]):e.toString().includes("_parallelResults")&&(p=["_parallelResults"],l=this.getAllProducedFields());for(let d of l)this.getAllProducedFields().includes(d)||this.initialFields.add(d);let c={type:u,nodeName:t,dependencies:l,produces:p,stepFunction:e,stepIndex:this.steps.length};this.steps.push(c)}analyzeStepFunctionProduction(e){try{let t=this.analyzeStepFunctionSource(e);if(t.length>0&&!t.includes("_stepResult"))return t}catch(t){console.debug("Step function source analysis failed:",t)}try{let t=this.createMockState(),n=Object.keys(t),o=e(t,{mainAi:{getOptions:()=>({trace:!1}),forward:()=>Promise.resolve({text:"mock"})},mainOptions:void 0});if(o&&typeof o=="object"&&"then"in o)return this.analyzeStepFunctionSource(e);if(o&&typeof o=="object"&&!Array.isArray(o)){let a=Object.keys(o).filter(l=>!n.includes(l));if(a.length>0)return a}}catch(t){console.debug("Step function dynamic analysis failed:",t)}return this.analyzeStepFunctionSource(e)}analyzeStepFunctionSource(e){try{let t=e.toString(),n=t.match(/\{\s*\.\.\.state\s*,\s*(\w+)\s*:/g);if(n){let o=n.map(i=>{let a=i.match(/(\w+)\s*:/);return a?a[1]:null}).filter(Boolean);if(o.length>0)return o}let r=t.match(/state\.(\w+)\s*=/g);if(r){let o=r.map(i=>{let a=i.match(/state\.(\w+)\s*=/);return a?a[1]:null}).filter(Boolean);if(o.length>0)return o}}catch(t){console.debug("Step function source analysis failed:",t)}return["_stepResult"]}analyzeMapTransformation(e){try{let t=this.createMockState(),n=e(t);if(n&&typeof n=="object"&&!Array.isArray(n))return Object.keys(n)}catch(t){console.debug("Map transformation analysis failed:",t)}return["_mapResult"]}createMockState(){let e={};for(let t of this.initialFields)e[t]=this.createMockValue(t);for(let t of this.steps)for(let n of t.produces)n.endsWith("Result")?e[n]={text:"mockText",value:"mockValue",result:"mockResult",data:"mockData",processedText:"mockProcessedText",sentimentValue:"mockSentiment",confidenceScore:.8,isComplex:!1,mockValue:"mockValue",responseText:"mockResponseText",inputText:"mockInputText"}:e[n]=this.createMockValue(n);return e}createMockValue(e){return e.includes("List")||e.includes("Array")||e.endsWith("s")?["mockItem1","mockItem2"]:e.includes("count")||e.includes("Count")||e.includes("index")||e.includes("Index")?0:e.includes("is")||e.includes("has")||e.includes("can")?!1:"mockValue"}analyzeBranchMergeFields(){let e=this.steps.slice(-5).filter(t=>t.type==="execute"&&t.nodeName).flatMap(t=>t.produces);return e.length>0?e:this.steps.filter(t=>t.type==="execute"&&t.nodeName).flatMap(t=>t.produces)}setInitialFields(e){this.initialFields=new Set(e),this.rebuildParallelGroups()}rebuildParallelGroups(){this.parallelGroups=[];let e=new Set,t=new Set(this.initialFields),n=0;for(;e.size<this.steps.length;){let r=[];for(let o of this.steps){if(e.has(o.stepIndex))continue;if(o.dependencies.length===0||o.dependencies.every(a=>t.has(a))){if(o.type==="merge"&&r.length>0)continue;if(r.push(o),e.add(o.stepIndex),o.type==="merge")break}}if(r.length>0){for(let o of r)o.produces.forEach(i=>t.add(i));this.parallelGroups.push({level:n,steps:r}),n++}else{let o=this.steps.filter(i=>!e.has(i.stepIndex));if(o.length>0){let i=o[0];e.add(i.stepIndex),i.produces.forEach(a=>t.add(a)),this.parallelGroups.push({level:n,steps:[i]}),n++}else break}}}getAllProducedFields(){let e=[];for(let t of this.steps)e.push(...t.produces);return e}createOptimizedExecution(e){let t=[];for(let n of this.parallelGroups)if(n.steps.length===1){let r=n.steps[0];r&&t.push(r.stepFunction)}else if(n.steps.length>1){let r=async(o,i)=>{let a=await wt(n.steps,async u=>await u.stepFunction(o,i),e);if(a.some(u=>u&&typeof u=="object"&&"_parallelResults"in u)){let u=a.find(c=>c&&typeof c=="object"&&"_parallelResults"in c);return u||o}let p=o;for(let u of a)p={...p,...u};return p};t.push(r)}return t}getOptimizedExecutionSteps(){return this.parallelGroups.length===0&&this.steps.length>0&&this.rebuildParallelGroups(),this.createOptimizedExecution()}getExecutionPlan(){return this.parallelGroups.length===0&&this.steps.length>0&&this.rebuildParallelGroups(),{totalSteps:this.steps.length,parallelGroups:this.parallelGroups.length,maxParallelism:this.steps.length===0?1:Math.max(...this.parallelGroups.map(e=>e.steps.length),0),steps:this.steps,groups:this.parallelGroups}}};var Oa=s=>{console.log(s)},St=(s,e=!1)=>{if(e)return"[State hidden]";let t={};for(let[n,r]of Object.entries(s))if(typeof r=="string"&&r.length>100)t[n]=`${r.substring(0,100)}...`;else if(Array.isArray(r)&&r.length>3)t[n]=[...r.slice(0,3),`... (${r.length-3} more)`];else if(typeof r=="object"&&r!==null){let o=JSON.stringify(r);o.length>200?t[n]=`${o.substring(0,200)}...`:t[n]=r}else t[n]=r;return JSON.stringify(t,null,2)},Ot=s=>s<1e3?`${s.toFixed(1)}ms`:s<6e4?`${(s/1e3).toFixed(2)}s`:`${(s/6e4).toFixed(2)}min`,un=(s=Oa)=>{let e=new Z,t=e.gray(`${"\u2501".repeat(80)}
339
+ Instruction:`;try{let m=(await qe('programSummary?:string "Program context" , datasetSummary?:string "Dataset context" , tip?:string "Generation tip" -> instructionText:string "Well-crafted instruction for the program"').forward(n,{programSummary:r??"",datasetSummary:o??"",tip:e??""})).instructionText;if(m&&m.trim().length>10)return m.trim()}catch{}let p=["Analyze the input systematically and provide a precise, well-reasoned response.","Think through this step-by-step, considering all relevant factors before responding.","Examine the input carefully and generate an accurate, detailed answer.","Process the information methodically and deliver a clear, comprehensive response.","Consider the context thoroughly and provide a thoughtful, accurate answer."],u=p[t%p.length]||p[0];return e&&(u=`${u} ${e}`),u}async proposeInstructionCandidates(e,t,n=[]){let r=[],o=this.getTeacherOrStudentAI(t),i,a;this.programAwareProposer&&(i=await this.generateProgramSummary(e,o)),this.dataAwareProposer&&(a=await this.generateDatasetSummary([...n],o));let l=this.tipAwareProposer?this.generateTips():[];for(let p=0;p<this.numCandidates;p++){let u=l.length>0?p%l.length:-1,c=u>=0?l[u]:void 0,d=await this.generateInstruction({tip:c,candidateIndex:p,ai:o,programSummary:i,datasetSummary:a,previousInstructions:r});r.push(d)}return r}async bootstrapFewShotExamples(e,t,n){return(await new Rt({studentAI:this.studentAI,options:{maxDemos:this.maxBootstrappedDemos,maxRounds:3,verboseMode:this.verbose??!1}}).compile(e,n,t,{maxDemos:this.maxBootstrappedDemos})).demos||[]}selectLabeledExamples(e){let t=[],n=new Set;for(;n.size<this.maxLabeledDemos&&n.size<e.length;){let r=Math.floor(Math.random()*e.length);if(!n.has(r)){n.add(r);let o=e[r];o&&t.push(o)}}return t}applyConfigToProgram(e,t,n,r){e.setInstruction&&e.setInstruction(t.instruction),t.bootstrappedDemos>0&&e.setDemos&&e.setDemos(n.slice(0,t.bootstrappedDemos)),t.labeledExamples>0&&e.setExamples&&e.setExamples(r.slice(0,t.labeledExamples))}async compile(e,t,n,r){let o=Date.now();if(this.validateExamples(t),this.setupRandomSeed(),r?.auto&&this.configureAuto(r.auto),!this.pythonClient)throw new Error("AxMiPRO v2 requires the Python optimizer service. Please configure optimizerEndpoint.");if(!await this.pythonClient.healthCheck())throw new Error("Python optimizer service is not available or unhealthy");return await this.compilePython(e,t,n,r)}applyConfigToAxGen(e,t,n,r){"setInstruction"in e&&typeof e.setInstruction=="function"&&e.setInstruction(t.instruction),t.bootstrappedDemos>0&&e.setDemos(n.slice(0,t.bootstrappedDemos)),t.labeledExamples>0&&e.setExamples(r.slice(0,t.labeledExamples))}getConfiguration(){return{numCandidates:this.numCandidates,initTemperature:this.initTemperature,maxBootstrappedDemos:this.maxBootstrappedDemos,maxLabeledDemos:this.maxLabeledDemos,numTrials:this.numTrials,minibatch:this.minibatch,minibatchSize:this.minibatchSize,minibatchFullEvalSteps:this.minibatchFullEvalSteps,programAwareProposer:this.programAwareProposer,dataAwareProposer:this.dataAwareProposer,tipAwareProposer:this.tipAwareProposer,fewshotAwareProposer:this.fewshotAwareProposer,earlyStoppingTrials:this.earlyStoppingTrials,minImprovementThreshold:this.minImprovementThreshold,bayesianOptimization:this.bayesianOptimization,acquisitionFunction:this.acquisitionFunction,explorationWeight:this.explorationWeight,sampleCount:this.sampleCount}}updateConfiguration(e){e.numCandidates!==void 0&&(this.numCandidates=e.numCandidates),e.initTemperature!==void 0&&(this.initTemperature=e.initTemperature),e.maxBootstrappedDemos!==void 0&&(this.maxBootstrappedDemos=e.maxBootstrappedDemos),e.maxLabeledDemos!==void 0&&(this.maxLabeledDemos=e.maxLabeledDemos),e.numTrials!==void 0&&(this.numTrials=e.numTrials),e.minibatch!==void 0&&(this.minibatch=e.minibatch),e.minibatchSize!==void 0&&(this.minibatchSize=e.minibatchSize),e.earlyStoppingTrials!==void 0&&(this.earlyStoppingTrials=e.earlyStoppingTrials),e.minImprovementThreshold!==void 0&&(this.minImprovementThreshold=e.minImprovementThreshold),e.sampleCount!==void 0&&(this.sampleCount=e.sampleCount)}reset(){super.reset(),this.stats.convergenceInfo.convergenceThreshold=this.minImprovementThreshold}validateProgram(e){let t=[],n=[];return{isValid:t.length===0,issues:t,suggestions:n}}async compilePython(e,t,n,r){if(!this.pythonClient)throw new Error("Python client not initialized");let o=Date.now();this.localScoreHistory=[],this.localConfigurationHistory=[];let i=`mipro_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,a={study_name:i,parameters:[{name:"temperature",type:"float",low:.1,high:2},{name:"bootstrappedDemos",type:"int",low:0,high:this.maxBootstrappedDemos},...this.optimizeTopP?[{name:"topP",type:"float",low:.7,high:1}]:[]],objective:{name:"score",direction:"maximize"},n_trials:this.numTrials,sampler:"TPESampler",pruner:this.minibatch?"MedianPruner":void 0},l=await this.pythonClient.createOptimizationJob(a);this.getOptimizerLogger()?.({name:"OptimizationStart",value:{optimizerType:"MiPRO (Python)",exampleCount:t.length,validationCount:0,config:{jobId:l.job_id,numTrials:this.numTrials}}});let u=Number.NEGATIVE_INFINITY,c,d=0,m=0;for(let C=0;C<this.numTrials;C++)try{let I=await this.pythonClient.suggestParameters(i),y=I.params.temperature,T=I.params.bootstrappedDemos,S=this.optimizeTopP?I.params.topP:void 0;if(y===void 0)throw new Error(`Missing temperature parameter in suggestion: ${JSON.stringify(I)}`);if(T===void 0)throw new Error(`Missing bootstrappedDemos parameter in suggestion: ${JSON.stringify(I)}`);let N=!this.minibatch||this.minibatchFullEvalSteps>0&&C%this.minibatchFullEvalSteps===this.minibatchFullEvalSteps-1?[...t]:(()=>{let w=Math.min(this.minibatchSize,t.length),R=new Set;for(;R.size<w;)R.add(Math.floor(Math.random()*t.length));return Array.from(R).map(k=>t[k])})(),G=await this.evaluateConfiguration(e,n,{temperature:y,bootstrappedDemos:T,topP:S},N);d++,await this.pythonClient.evaluateTrial({study_name:i,trial_number:I.trial_number,value:G}),G>u+this.minImprovementThreshold?(u=G,c={temperature:y,bootstrappedDemos:T,...S!==void 0?{topP:S}:{},trialNumber:I.trial_number},m=0):m+=1,this.currentRound=C+1;let M={temperature:y,bootstrappedDemos:T,...S!==void 0?{topP:S}:{},trialNumber:I.trial_number};if(this.localScoreHistory.push(G),this.localConfigurationHistory.push(M),await this.updateOptimizationProgress(this.currentRound,G,M,"MiPRO (Python)",{sampler:"TPESampler"},u,c),this.onProgress?.({round:C+1,totalRounds:this.numTrials,currentScore:G,bestScore:u,tokensUsed:this.stats.estimatedTokenUsage,timeElapsed:Date.now()-o,successfulExamples:d,totalExamples:t.length}),this.earlyStoppingTrials>0&&m>=this.earlyStoppingTrials){this.getOptimizerLogger()?.({name:"EarlyStopping",value:{reason:`No improvement \u2265 ${this.minImprovementThreshold} for ${this.earlyStoppingTrials} trials`,finalScore:u,round:this.currentRound}}),this.onEarlyStop?.(`No improvement for ${this.earlyStoppingTrials} trials`,this.stats);break}}catch{}let g=u,h={},f=[];try{let C=await this.pythonClient.getStudyResults(i);if(g=C.best_value||u,h=C.best_params||{},h&&Object.keys(h).length>0){let I=h.bootstrappedDemos||0;I>0&&(f=await this.bootstrapFewShotExamples(e,n,t.slice(0,Math.floor(t.length*.8))),f=f.slice(0,I))}}catch{}let x;try{let I=await qe('optimizerType:string "Optimizer name" , bestScore:number "Final best score" , totalCalls:number "Total eval calls" , successfulDemos:number "Successful evals" , bestConfig:json "Best configuration" -> humanExplanation:string "Readable summary", recommendations:string[] "Next steps", performanceAssessment:string "Performance notes"').forward(this.studentAI,{optimizerType:"MiPRO (Python)",bestScore:g,totalCalls:this.stats.totalCalls,successfulDemos:this.stats.successfulDemos,bestConfig:h||{}});x={humanExplanation:I.humanExplanation??"",recommendations:I.recommendations??[],performanceAssessment:I.performanceAssessment??""}}catch{}await this.logOptimizationComplete("MiPRO (Python)",g,h,r,x);try{await this.pythonClient.deleteStudy(i)}catch{}this.stats.bestScore=g;let A=new se(e.getSignature());f.length>0&&A.setDemos(f),h.temperature&&(A._optimizedModelConfig={temperature:h.temperature});let b=new Tt({bestScore:g,stats:this.stats,instruction:void 0,demos:f,examples:[],modelConfig:{temperature:h.temperature},optimizerType:"MiPRO (Python)",optimizationTime:Date.now()-o,totalRounds:this.numTrials,converged:this.stats.convergenceInfo.converged,scoreHistory:[...this.localScoreHistory],configurationHistory:[...this.localConfigurationHistory]});return{bestScore:g,demos:f,stats:this.stats,optimizedGen:A,optimizedProgram:b,finalConfiguration:{temperature:h.temperature,bootstrappedDemos:h.bootstrappedDemos||0,...h}}}async evaluateConfiguration(e,t,n,r){let o=0,i=0,a=0,l=r,p=[];if(n.bootstrappedDemos>0)try{p=(await this.bootstrapFewShotExamples(e,t,l)).slice(0,n.bootstrappedDemos)}catch{p=[]}for(let u of l)try{p.length>0&&e.setDemos?.(p);let c=await e.forward(this.studentAI,u,{modelConfig:{temperature:n.temperature,...n.topP!==void 0?{topP:n.topP}:{}},sampleCount:this.sampleCount,resultPicker:this.sampleCount>1?this.customResultPicker??this.defaultResultPicker:void 0});this.stats.totalCalls+=1;let d=await t({prediction:c,example:u});if(typeof d=="number"&&!Number.isNaN(d)){o+=d,i++;let m=typeof this.targetScore=="number"?this.targetScore:.5;d>=m&&a++}}catch(c){this.getLogger()?.({name:"Notification",id:"mipro_evaluate",value:typeof c=="string"?c:String(c)})}return this.stats.successfulDemos+=a,i>0?o/i:0}};var Ct=class{analyzeMappingDependencies(e,t){if(!e||typeof e!="function")return[];let n=[];try{let r=e.toString(),o=Array.from(r.matchAll(/state\.(\w+)/g));for(let i of o)i[1]&&!n.includes(i[1])&&n.push(i[1]);if(n.length===0)try{let i=this.createDependencyTracker(n);e(i)}catch{}}catch(r){console.debug("Dependency analysis failed:",r)}return n}createTrackingProxy(e,t){let n=this;return new Proxy(e,{get(r,o){typeof o=="string"&&!t.includes(o)&&t.push(o);let i=r[o];return i&&typeof i=="object"?n.createTrackingProxy(i,t):i},has(r,o){return typeof o=="string"&&!t.includes(o)&&t.push(o),o in r}})}parseStaticDependencies(e){let t=[];try{let n=Array.from(e.matchAll(/state\.(\w+)/g));for(let i of n)i[1]&&!t.includes(i[1])&&t.push(i[1]);let r=Array.from(e.matchAll(/\$\{state\.(\w+)\}/g));for(let i of r)i[1]&&!t.includes(i[1])&&t.push(i[1]);let o=Array.from(e.matchAll(/\{\s*(\w+)(?:\s*,\s*(\w+))*\s*\}\s*=\s*state/g));for(let i of o)for(let a=1;a<i.length;a++)i[a]&&!t.includes(i[a])&&t.push(i[a])}catch(n){console.debug("Static dependency parsing failed:",n)}return t}createDependencyTracker(e){return new Proxy({},{get(t,n){return typeof n=="string"&&!e.includes(n)&&e.push(n),new Proxy({},{get:()=>{}})}})}};async function wt(s,e,t){if(!t||t<=0||t>=s.length){let r=s.map((o,i)=>e(o,i));return Promise.all(r)}let n=new Array(s.length);for(let r=0;r<s.length;r+=t){let i=s.slice(r,r+t).map((l,p)=>{let u=r+p;return e(l,u).then(c=>({result:c,originalIndex:u}))}),a=await Promise.all(i);for(let{result:l,originalIndex:p}of a)n[p]=l}return n}var vt=class{steps=[];parallelGroups=[];analyzer=new Ct;initialFields=new Set;addExecutionStep(e,t,n,r,o,i,a){let l=[],p=[],u=r||"map";if(t&&n)u="execute",l=this.analyzer.analyzeMappingDependencies(n,t),p=[`${t}Result`];else if(u==="map"&&o)p=this.analyzeMapTransformation(o),l=this.getAllProducedFields();else if(u==="parallel-map"){if(Array.isArray(o)){let d=new Set;for(let m of o)this.analyzeMapTransformation(m).forEach(h=>d.add(h));p=Array.from(d)}else o?p=this.analyzeMapTransformation(o):p=["_parallelMapResult"];l=this.getAllProducedFields()}else if(u==="merge"){if(i?.resultKey)p=[i.resultKey];else{let m=this.analyzeBranchMergeFields();p=m.length>0?m:["_mergedResult"]}e.toString().includes("_parallelResults")?l=["_parallelResults"]:l=this.getAllProducedFields()}else if(u==="parallel")p=["_parallelResults"],l=this.getAllProducedFields();else if(u==="derive")if(a?.outputFieldName&&a?.inputFieldName){p=[a.outputFieldName];let d=o?this.analyzer.analyzeMappingDependencies(o,"derive"):[];l=[a.inputFieldName,...d].filter((m,g,h)=>h.indexOf(m)===g)}else p=["_deriveResult"],l=this.getAllProducedFields();else e.toString().includes("transform(")?(u="map",l=this.getAllProducedFields(),p=["_mapResult"]):e.toString().includes("_parallelResults")&&(p=["_parallelResults"],l=this.getAllProducedFields());for(let d of l)this.getAllProducedFields().includes(d)||this.initialFields.add(d);let c={type:u,nodeName:t,dependencies:l,produces:p,stepFunction:e,stepIndex:this.steps.length};this.steps.push(c)}analyzeStepFunctionProduction(e){try{let t=this.analyzeStepFunctionSource(e);if(t.length>0&&!t.includes("_stepResult"))return t}catch(t){console.debug("Step function source analysis failed:",t)}try{let t=this.createMockState(),n=Object.keys(t),o=e(t,{mainAi:{getOptions:()=>({trace:!1}),forward:()=>Promise.resolve({text:"mock"})},mainOptions:void 0});if(o&&typeof o=="object"&&"then"in o)return this.analyzeStepFunctionSource(e);if(o&&typeof o=="object"&&!Array.isArray(o)){let a=Object.keys(o).filter(l=>!n.includes(l));if(a.length>0)return a}}catch(t){console.debug("Step function dynamic analysis failed:",t)}return this.analyzeStepFunctionSource(e)}analyzeStepFunctionSource(e){try{let t=e.toString(),n=t.match(/\{\s*\.\.\.state\s*,\s*(\w+)\s*:/g);if(n){let o=n.map(i=>{let a=i.match(/(\w+)\s*:/);return a?a[1]:null}).filter(Boolean);if(o.length>0)return o}let r=t.match(/state\.(\w+)\s*=/g);if(r){let o=r.map(i=>{let a=i.match(/state\.(\w+)\s*=/);return a?a[1]:null}).filter(Boolean);if(o.length>0)return o}}catch(t){console.debug("Step function source analysis failed:",t)}return["_stepResult"]}analyzeMapTransformation(e){try{let t=this.createMockState(),n=e(t);if(n&&typeof n=="object"&&!Array.isArray(n))return Object.keys(n)}catch(t){console.debug("Map transformation analysis failed:",t)}return["_mapResult"]}createMockState(){let e={};for(let t of this.initialFields)e[t]=this.createMockValue(t);for(let t of this.steps)for(let n of t.produces)n.endsWith("Result")?e[n]={text:"mockText",value:"mockValue",result:"mockResult",data:"mockData",processedText:"mockProcessedText",sentimentValue:"mockSentiment",confidenceScore:.8,isComplex:!1,mockValue:"mockValue",responseText:"mockResponseText",inputText:"mockInputText"}:e[n]=this.createMockValue(n);return e}createMockValue(e){return e.includes("List")||e.includes("Array")||e.endsWith("s")?["mockItem1","mockItem2"]:e.includes("count")||e.includes("Count")||e.includes("index")||e.includes("Index")?0:e.includes("is")||e.includes("has")||e.includes("can")?!1:"mockValue"}analyzeBranchMergeFields(){let e=this.steps.slice(-5).filter(t=>t.type==="execute"&&t.nodeName).flatMap(t=>t.produces);return e.length>0?e:this.steps.filter(t=>t.type==="execute"&&t.nodeName).flatMap(t=>t.produces)}setInitialFields(e){this.initialFields=new Set(e),this.rebuildParallelGroups()}rebuildParallelGroups(){this.parallelGroups=[];let e=new Set,t=new Set(this.initialFields),n=0;for(;e.size<this.steps.length;){let r=[];for(let o of this.steps){if(e.has(o.stepIndex))continue;if(o.dependencies.length===0||o.dependencies.every(a=>t.has(a))){if(o.type==="merge"&&r.length>0)continue;if(r.push(o),e.add(o.stepIndex),o.type==="merge")break}}if(r.length>0){for(let o of r)o.produces.forEach(i=>t.add(i));this.parallelGroups.push({level:n,steps:r}),n++}else{let o=this.steps.filter(i=>!e.has(i.stepIndex));if(o.length>0){let i=o[0];e.add(i.stepIndex),i.produces.forEach(a=>t.add(a)),this.parallelGroups.push({level:n,steps:[i]}),n++}else break}}}getAllProducedFields(){let e=[];for(let t of this.steps)e.push(...t.produces);return e}createOptimizedExecution(e){let t=[];for(let n of this.parallelGroups)if(n.steps.length===1){let r=n.steps[0];r&&t.push(r.stepFunction)}else if(n.steps.length>1){let r=async(o,i)=>{let a=await wt(n.steps,async u=>await u.stepFunction(o,i),e);if(a.some(u=>u&&typeof u=="object"&&"_parallelResults"in u)){let u=a.find(c=>c&&typeof c=="object"&&"_parallelResults"in c);return u||o}let p=o;for(let u of a)p={...p,...u};return p};t.push(r)}return t}getOptimizedExecutionSteps(){return this.parallelGroups.length===0&&this.steps.length>0&&this.rebuildParallelGroups(),this.createOptimizedExecution()}getExecutionPlan(){return this.parallelGroups.length===0&&this.steps.length>0&&this.rebuildParallelGroups(),{totalSteps:this.steps.length,parallelGroups:this.parallelGroups.length,maxParallelism:this.steps.length===0?1:Math.max(...this.parallelGroups.map(e=>e.steps.length),0),steps:this.steps,groups:this.parallelGroups}}};var Oa=s=>{console.log(s)},St=(s,e=!1)=>{if(e)return"[State hidden]";let t={};for(let[n,r]of Object.entries(s))if(typeof r=="string"&&r.length>100)t[n]=`${r.substring(0,100)}...`;else if(Array.isArray(r)&&r.length>3)t[n]=[...r.slice(0,3),`... (${r.length-3} more)`];else if(typeof r=="object"&&r!==null){let o=JSON.stringify(r);o.length>200?t[n]=`${o.substring(0,200)}...`:t[n]=r}else t[n]=r;return JSON.stringify(t,null,2)},Ot=s=>s<1e3?`${s.toFixed(1)}ms`:s<6e4?`${(s/1e3).toFixed(2)}s`:`${(s/6e4).toFixed(2)}min`,un=(s=Oa)=>{let e=new Z,t=e.gray(`${"\u2501".repeat(80)}
306
340
  `),n=e.gray(`${"\u2500".repeat(40)}
307
341
  `);return r=>{let o="";switch(r.name){case"FlowStart":o=`
308
342
  ${e.blueBright("\u{1F504} [ AXFLOW START ]")}