@arcgis/ai-components 5.2.0-next.36 → 5.2.0-next.38
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/dist/cdn/{KRE4U7V7.js → 2K3FTW7J.js} +1 -1
- package/dist/cdn/{TSEQVE2H.js → 32B6ZVYG.js} +1 -1
- package/dist/cdn/{L77BTGXY.js → 3RPE2QMJ.js} +1 -1
- package/dist/cdn/{4RZPOYZ7.js → 3X7JLPXS.js} +1 -1
- package/dist/cdn/53TGCGSX.js +18 -0
- package/dist/cdn/{JEIMRNYM.js → 7GE723EX.js} +1 -1
- package/dist/cdn/{S27EJSLC.js → B7W5WD4R.js} +1 -1
- package/dist/cdn/BLKXZEPZ.js +56 -0
- package/dist/cdn/{IGZWQJW7.js → D36UDLAY.js} +1 -1
- package/dist/cdn/{7IFCBXV7.js → DFF2LGQI.js} +1 -1
- package/dist/cdn/{YRBANNQ5.js → E2JBQWHX.js} +1 -1
- package/dist/cdn/{O7TGCM5P.js → EJ2LRQVR.js} +1 -1
- package/dist/cdn/{Q73PK7Q7.js → FDPJ5Y3M.js} +1 -1
- package/dist/cdn/FK7ENS6I.js +2 -0
- package/dist/cdn/{CIW3QMKV.js → FNFJYOHX.js} +1 -1
- package/dist/cdn/{2NMR43NW.js → GJHBXGNP.js} +1 -1
- package/dist/cdn/HW2FV2RU.js +48 -0
- package/dist/cdn/{XVQJBUMY.js → I4A2LAZS.js} +1 -1
- package/dist/cdn/{O3F47IO5.js → I5QIEV37.js} +1 -1
- package/dist/cdn/{YYY7HKYX.js → IBKTXP76.js} +1 -1
- package/dist/cdn/MU52B4SV.js +181 -0
- package/dist/cdn/{SMADRJ67.js → NV2KTZTO.js} +1 -1
- package/dist/cdn/ON5PWODA.js +208 -0
- package/dist/cdn/{IXAKT6L3.js → P22UEKRX.js} +1 -1
- package/dist/cdn/PA5W5PWE.js +2 -0
- package/dist/cdn/{WAVKMZA6.js → QA7IATZC.js} +1 -1
- package/dist/cdn/{IC5P5NYY.js → QJJ6YSAC.js} +1 -1
- package/dist/cdn/{HOCTVCHH.js → RHM3WKYV.js} +1 -1
- package/dist/cdn/{E7TMP4YV.js → SHFSDORL.js} +1 -1
- package/dist/cdn/{AMVOJNWN.js → TIEV263K.js} +1 -1
- package/dist/cdn/{HXOSLGWU.js → TKSWXCCJ.js} +1 -1
- package/dist/cdn/{AFLQZIKS.js → VAX3IAC3.js} +31 -31
- package/dist/cdn/{WDE3HN7K.js → XHJTT7BG.js} +1 -1
- package/dist/cdn/XNITXZDU.js +2 -0
- package/dist/cdn/{C7E7MJSR.js → XXIKORXX.js} +1 -1
- package/dist/cdn/{HBYZSLEZ.js → Y7KEZCVG.js} +1 -1
- package/dist/cdn/agent-utils/index.js +1 -1
- package/dist/cdn/agent-utils/middlewares/humanInTheLoop.js +1 -1
- package/dist/cdn/agent-utils/middlewares/middleware.js +1 -1
- package/dist/cdn/agent-utils/middlewares/trace.js +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/package.json +9 -9
- package/dist/cdn/6LZ6GOHF.js +0 -56
- package/dist/cdn/CJIV4KJZ.js +0 -179
- package/dist/cdn/CVHJMR5X.js +0 -2
- package/dist/cdn/EBRNMPPO.js +0 -48
- package/dist/cdn/IKEF7ZHH.js +0 -181
- package/dist/cdn/LODKJRS4.js +0 -2
- package/dist/cdn/PKHQW7QU.js +0 -18
- package/dist/cdn/VKU4WAQV.js +0 -2
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{$ as vr,$a as Ml,$b as H,A as Vc,Aa as gl,Ab as Cr,Ac as Cu,B as ks,Ba as _l,Bb as Kl,C as Uc,Ca as yl,Cb as zl,D as Hc,Da as Sr,Db as ql,E as Gc,Ea as bl,Eb as Jl,F as Wc,Fa as vl,Fb as Yl,G as Kc,Ga as wl,Gb as Xl,H as zc,Ha as Es,Hb as Zl,I as re,Ia as Sl,Ib as be,J as qc,Ja as Kt,Jb as Er,K as Jc,Ka as kl,Kb as Ns,L as Yc,La as Cl,Lb as Yt,M as Xc,Ma as Hr,Mb as Ql,N as Zc,Na as El,Nb as eu,O as En,Oa as Tl,Ob as Ms,P as Qc,Pa as xl,Pb as tu,Q as ee,Qa as Il,Qb as ru,R as It,Ra as Al,Rb as nu,S as el,Sa as De,T as tl,Ta as ma,Tb as Xt,U as Ge,Ua as oe,Ub as su,V as Tn,Va as Ol,W as rl,Wa as Ts,Wb as iu,X as Cs,Xa as Le,Xb as ve,Y as nl,Ya as At,Yb as au,Za as he,Zb as da,_ as br,_a as Nl,_b as ou,a as A,aa as sl,ab as Pl,ac as Zt,b as xc,ba as il,bb as Mn,bc as cu,c as kn,ca as q,cb as Ot,cc as lu,d as Cn,da as Ur,dc as et,e as Ic,ea as xn,eb as Rl,ec as Ps,f as pa,fa as me,fb as zt,fc as Fe,g as Ac,ga as Wt,gb as Dl,gc as uu,h as Oc,ha as In,hb as Ll,hc as hu,i as Nc,ia as al,ib as Gr,ic as we,j as Mc,ja as ol,jb as xs,jc as Rs,k as Pc,ka as An,kb as kr,kc as pu,l as Rc,la as On,lb as Fl,lc as fu,m as Xe,ma as cl,mb as jl,mc as mu,n as Dc,na as ll,nb as $l,nc as du,oa as xe,ob as Wr,oc as gu,p as vs,pa as Nn,pb as Bl,pc as _u,q as Lc,qa as ul,qb as Is,qc as yu,r as Fc,ra as hl,rb as Vl,rc as bu,s as jc,sa as Ze,sb as qt,t as Vr,ta as Qe,tb as Ul,u as fa,ua as wr,ub as Hl,uc as Ds,va as pl,vb as Gl,vc as vu,w as $c,wa as fl,wb as As,wc as wu,x as ws,xa as ml,xb as Os,xc as Su,y as Ss,ya as de,yb as Wl,yc as ga,z as Bc,za as dl,zb as Jt,zc as ku}from"./MU52B4SV.js";import{Dd as Qt}from"./ZEYIBYSF.js";function Eu(e,t){if(e!=null){if(typeof e!="number"||Number.isNaN(e)||e<=0)throw new Error(`${t} must be greater than 0`);return e}}function er(e){if(e==null)return;let t=typeof e=="number"?{runTimeout:e}:e,r=t.refreshOn??"auto";if(r!=="auto"&&r!=="heartbeat")throw new Error('refreshOn must be "auto" or "heartbeat"');let n=Eu(t.runTimeout,"runTimeout"),s=Eu(t.idleTimeout,"idleTimeout");if(!(n===void 0&&s===void 0))return{runTimeout:n,idleTimeout:s,refreshOn:r}}var Z="__start__",Q="__end__",dt="__input__";var tr="__error__",Rn="__error_source_node__",Ls="__pregel_ns_writes";function Tu(){let e=typeof process<"u"?process.env?.LANGGRAPH_DELTA_MAX_SUPERSTEPS_SINCE_SNAPSHOT:void 0;if(e!==void 0&&e!==""){let t=Number.parseInt(e,10);if(Number.isFinite(t)&&t>0)return t}return 5e3}var Se="__pregel_send",gt="__pregel_call",Ie="__pregel_read",We="__pregel_checkpointer",xr="__pregel_resuming",Kr="__pregel_task_id",Dn="__pregel_stream",Jm="__pregel_resume_value",Ir="__pregel_resume_map",Ae="__pregel_scratchpad",rr="__pregel_previous",Ym="__pregel_durability",nr="checkpoint_id",Ue="checkpoint_ns",xu="__pregel_node_finished",Ln="__pregel_node_error",ke="checkpoint_map",Fs="__pregel_replay_state",Iu="__pregel_abort_signals",Y="__interrupt__",Oe="__resume__",Fn="__no_writes__",sr="__return__",ir="__previous__",se="langsmith:hidden";var ya="__self__",_t="__pregel_tasks",Ne="__pregel_push",js="__pregel_pull",Me="00000000-0000-0000-0000-000000000000",Au=[se,dt,Y,Oe,tr,Rn,Fn,Se,Ie,We,Ym,Dn,xr,Kr,gt,Jm,Ae,rr,ke,Ue,nr,Fs],_a=Symbol.for("langgraph.command"),Ou=class{[_a];constructor(e){this[_a]=e}};function $s(e){let t=e;return t!=null&&typeof t.node=="string"&&t.args!==void 0}var Tr=class{lg_name="Send";node;args;timeout;constructor(e,t,r){this.node=e,this.args=Pn(t),this.timeout=er(r?.timeout)}toJSON(){return{lg_name:this.lg_name,node:this.node,args:this.args,timeout:this.timeout}}};function ce(e){return e instanceof Tr}var mt="__overwrite__",Xm=class{lg_name="Overwrite";[mt];constructor(e){this[mt]=e}get value(){return this[mt]}toJSON(){return{[mt]:this[mt]}}static isInstance(e){return!e||typeof e!="object"?!1:"__overwrite__"in e||"lg_name"in e&&e.lg_name==="Overwrite"}};function tt(e){if(typeof e=="object"&&e!==null){if("__overwrite__"in e)return[!0,e[mt]];let t=e;if(t.type==="__overwrite__"&&"value"in t)return[!0,t.value]}return[!1,void 0]}function Ar(e){return tt(e)[0]}function Or(e){return!e||typeof e!="object"||!("__interrupt__"in e)?!1:Array.isArray(e[Y])}var je=class extends Ou{lg_name="Command";lc_direct_tool_output=!0;graph;update;resume;goto=[];static PARENT="__parent__";constructor(e){super(e),this.resume=e.resume,this.graph=e.graph,this.update=e.update,e.goto&&(this.goto=Array.isArray(e.goto)?Pn(e.goto):[Pn(e.goto)])}_updateAsTuples(){return this.update&&typeof this.update=="object"&&!Array.isArray(this.update)?Object.entries(this.update):Array.isArray(this.update)&&this.update.every(e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="string")?this.update:[["__root__",this.update]]}toJSON(){let e;return typeof this.goto=="string"?e=this.goto:ce(this.goto)?e=this.goto.toJSON():e=this.goto?.map(t=>typeof t=="string"?t:t.toJSON()),{lg_name:this.lg_name,update:this.update,resume:this.resume,goto:e}}};function pe(e){return typeof e!="object"||e==null?!1:"lg_name"in e&&e.lg_name==="Command"}function Zm(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Pn(e,t=new Map){if(e!=null&&typeof e=="object"){if(t.has(e))return t.get(e);let r;if(Array.isArray(e))r=[],t.set(e,r),e.forEach((n,s)=>{r[s]=Pn(n,t)});else if(e instanceof je||e instanceof Tr||!Zm(e))r=e,t.set(e,r);else if(pe(e))r=new je(e),t.set(e,r);else if($s(e))r=new Tr(e.node,e.args,e.timeout!==void 0?{timeout:e.timeout}:void 0),t.set(e,r);else if("lc_serializable"in e&&e.lc_serializable)r=e,t.set(e,r);else{r={},t.set(e,r);for(let[n,s]of Object.entries(e))r[n]=Pn(s,t)}return r}return e}var Ke=class extends Error{lc_error_code;constructor(e,t){let r=e??"";t?.lc_error_code&&(r=`${r}
|
|
3
|
+
|
|
4
|
+
Troubleshooting URL: https://docs.langchain.com/oss/javascript/langgraph/${t.lc_error_code}/
|
|
5
|
+
`),super(r),this.lc_error_code=t?.lc_error_code}},Bs=class extends Ke{get is_bubble_up(){return!0}},ba=class extends Ke{constructor(e,t){super(e,t),this.name="GraphRecursionError"}static get unminifiable_name(){return"GraphRecursionError"}},Nr=class extends Ke{constructor(e,t){super(e,t),this.name="GraphValueError"}static get unminifiable_name(){return"GraphValueError"}},Vs=class extends Bs{reason;constructor(e="shutdown",t){super(`Graph drained: ${e}`,t),this.name="GraphDrained",this.reason=e}static get unminifiable_name(){return"GraphDrained"}};function Us(e){return e!==void 0&&e.name===Vs.unminifiable_name}var Nt=class extends Bs{interrupts;constructor(e,t){super(JSON.stringify(e,null,2),t),this.name="GraphInterrupt",this.interrupts=e??[]}static get unminifiable_name(){return"GraphInterrupt"}},Hs=class extends Nt{constructor(e,t){super([{value:e}],t),this.name="NodeInterrupt"}static get unminifiable_name(){return"NodeInterrupt"}},Gs=class{node;error;constructor(e,t){this.node=e,this.error=t}static get unminifiable_name(){return"NodeError"}};function Qm(e){return e!=null&&typeof e=="object"&&e.constructor!=null&&e.constructor.unminifiable_name===Gs.unminifiable_name}var Ws=class extends Bs{command;constructor(e){super(),this.name="ParentCommand",this.command=e}static get unminifiable_name(){return"ParentCommand"}};function va(e){return e!==void 0&&e.name===Ws.unminifiable_name}function ar(e){return e!==void 0&&e.is_bubble_up===!0}function Mt(e){return e!==void 0&&[Nt.unminifiable_name,Hs.unminifiable_name].includes(e.name)}var Ks=class extends Ke{node;kind;timeout;elapsed;runTimeout;idleTimeout;constructor(e,t){let{node:r,elapsed:n,kind:s,runTimeout:i,idleTimeout:a}=e,o,c;if(s==="idle"){if(a===void 0)throw new Error("idleTimeout is required when kind='idle'");c=a,o=`Node "${r}" exceeded its idle timeout of ${a}ms without making progress (elapsed: ${n}ms).`}else{if(i===void 0)throw new Error("runTimeout is required when kind='run'");c=i,o=`Node "${r}" exceeded its run timeout of ${i}ms (elapsed: ${n}ms).`}super(o,t),this.name="NodeTimeoutError",this.node=r,this.kind=s,this.timeout=c,this.elapsed=n,this.runTimeout=i,this.idleTimeout=a}static get unminifiable_name(){return"NodeTimeoutError"}};function ed(e){return e!==void 0&&e.name===Ks.unminifiable_name}var zs=class extends Ke{constructor(e,t){super(e,t),this.name="EmptyInputError"}static get unminifiable_name(){return"EmptyInputError"}},W=class extends Ke{constructor(e,t){let r=Error.stackTraceLimit;Error.stackTraceLimit=0,super(e,t),Error.stackTraceLimit=r,this.name="EmptyChannelError"}static get unminifiable_name(){return"EmptyChannelError"}},$=class extends Ke{constructor(e,t){super(e,t),this.name="InvalidUpdateError"}static get unminifiable_name(){return"InvalidUpdateError"}},td=class extends Ke{constructor(e,t){super(e,t),this.name="MultipleSubgraphError"}static get unminifiable_name(){return"MultipleSubgraphError"}},wa=class extends Ke{constructor(e,t){super(e,t),this.name="UnreachableNodeError"}static get unminifiable_name(){return"UnreachableNodeError"}},rd=class extends Ke{constructor(e,t){super(e,t),this.name="RemoteException"}static get unminifiable_name(){return"RemoteException"}},jn=class extends Ke{constructor(e,t){super(e,t),this.name="StateGraphInputError",this.message="Invalid StateGraph input. Make sure to pass a valid StateDefinition, Annotation.Root, or Zod schema."}static get unminifiable_name(){return"StateGraphInputError"}},nd=()=>(globalThis[Symbol.for("LG_CHECKPOINT_SEEN_NS_SET")]===void 0&&(globalThis[Symbol.for("LG_CHECKPOINT_SEEN_NS_SET")]=new Set),globalThis[Symbol.for("LG_CHECKPOINT_SEEN_NS_SET")]);var Sa=0,$n=0;function Bn(e){let t=Date.now();return t<=Sa?($n+=1,$n>=1e4&&($n=0,t=Sa+1)):$n=0,Sa=t,Ic({clockseq:e,msecs:t,nsecs:$n})}function yt(e,t){let r=t.replace(/-/g,"").match(/.{2}/g).map(n=>parseInt(n,16));return Cn(e,new Uint8Array(r))}var Vn="__pregel_tasks",ka="__error__",Mr="__scheduled__",Ca="__interrupt__",Ea="__resume__",zr=class{lg_name="DeltaSnapshot";value;constructor(e){this.value=e}};function Ta(e){return e!=null&&typeof e=="object"&&e.lg_name==="DeltaSnapshot"}var Nu="[...]",sd="[Circular]",qs=[],qr=[];function id(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function Mu(e,t,r,n){typeof n>"u"&&(n=id()),Ia(e,"",0,[],void 0,0,n);var s;try{qr.length===0?s=JSON.stringify(e,t,r):s=JSON.stringify(e,ad(t),r)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;qs.length!==0;){var i=qs.pop();i.length===4?Object.defineProperty(i[0],i[1],i[3]):i[0][i[1]]=i[2]}}return s}function xa(e,t,r,n){var s=Object.getOwnPropertyDescriptor(n,r);s.get!==void 0?s.configurable?(Object.defineProperty(n,r,{value:e}),qs.push([n,r,t,s])):qr.push([t,r,e]):(n[r]=e,qs.push([n,r,t]))}function Ia(e,t,r,n,s,i,a){i+=1;var o;if(typeof e=="object"&&e!==null){for(o=0;o<n.length;o++)if(n[o]===e){xa(sd,e,t,s);return}if(typeof a.depthLimit<"u"&&i>a.depthLimit){xa(Nu,e,t,s);return}if(typeof a.edgesLimit<"u"&&r+1>a.edgesLimit){xa(Nu,e,t,s);return}if(n.push(e),Array.isArray(e))for(o=0;o<e.length;o++)Ia(e[o],o,o,n,e,i,a);else{var c=Object.keys(e);for(o=0;o<c.length;o++){var l=c[o];Ia(e[l],l,o,n,e,i,a)}}n.pop()}}function ad(e){return e=typeof e<"u"?e:function(t,r){return r},function(t,r){if(qr.length>0)for(var n=0;n<qr.length;n++){var s=qr[n];if(s[1]===t&&s[0]===r){r=s[2],qr.splice(n,1);break}}return e.call(this,t,r)}}var Pu=[];var Ru=A({});var Du=A({});var Js=(e,t)=>{let r=[...new Set(t?.map(s=>{if(typeof s=="string")return s;let i=new s({});if(!("getType"in i)||typeof i.getType!="function")throw new Error("Invalid type provided.");return i.getType()}))],n=e.getType();return r.some(s=>s===n)};function Bu(e,t){return Array.isArray(e)?Lu(e,t):Fe.from(r=>Lu(r,e))}function Lu(e,t={}){let{includeNames:r,excludeNames:n,includeTypes:s,excludeTypes:i,includeIds:a,excludeIds:o}=t,c=[];for(let l of e)if(!(n&&l.name&&n.includes(l.name))){{if(i&&Js(l,i))continue;if(o&&l.id&&o.includes(l.id))continue}s||a||r?(r&&l.name&&r.some(u=>u===l.name)||s&&Js(l,s)||a&&l.id&&a.some(u=>u===l.id))&&c.push(l):c.push(l)}return c}function Vu(e){return Array.isArray(e)?Fu(e):Fe.from(Fu)}function Fu(e){if(!e.length)return[];let t=[];for(let r of e){let n=r,s=t.pop();if(!s)t.push(n);else if(n.getType()==="tool"||n.getType()!==s.getType())t.push(s,n);else{let i=Sr(s),a=Sr(n),o=i.concat(a);typeof i.content=="string"&&typeof a.content=="string"&&(o.content=`${i.content}
|
|
6
|
+
${a.content}`),t.push(cd(o))}}return t}function Uu(e,t){if(Array.isArray(e)){let r=e;if(!t)throw new Error("Options parameter is required when providing messages.");return ju(r,t)}else{let r=e;return Fe.from(n=>ju(n,r)).withConfig({runName:"trim_messages"})}}async function ju(e,t){let{maxTokens:r,tokenCounter:n,strategy:s="last",allowPartial:i=!1,endOn:a,startOn:o,includeSystem:c=!1,textSplitter:l}=t;if(o&&s==="first")throw new Error("`startOn` should only be specified if `strategy` is 'last'.");if(c&&s==="first")throw new Error("`includeSystem` should only be specified if `strategy` is 'last'.");let u;"getNumTokens"in n?u=async p=>(await Promise.all(p.map(m=>n.getNumTokens(m.content)))).reduce((m,d)=>m+d,0):u=async p=>n(p);let h=Oa;if(l&&("splitText"in l?h=l.splitText:h=async p=>l(p)),s==="first")return Hu(e,{maxTokens:r,tokenCounter:u,textSplitter:h,partialStrategy:i?"first":void 0,endOn:a});if(s==="last")return od(e,{maxTokens:r,tokenCounter:u,textSplitter:h,allowPartial:i,includeSystem:c,startOn:o,endOn:a});throw new Error(`Unrecognized strategy: '${s}'. Must be one of 'first' or 'last'.`)}async function Hu(e,t){let{maxTokens:r,tokenCounter:n,textSplitter:s,partialStrategy:i,endOn:a}=t,o=[...e],c=0;for(let l=0;l<o.length;l+=1)if(await n(l>0?o.slice(0,-l):o)<=r){c=o.length-l;break}if(c<o.length&&i){let l=!1;if(Array.isArray(o[c].content)){let u=o[c];if(typeof u.content=="string")throw new Error("Expected content to be an array.");let h=u.content.length,p=i==="last"?[...u.content].reverse():u.content;for(let m=1;m<=h;m+=1){let d=i==="first"?p.slice(0,m):p.slice(-m),y=Object.fromEntries(Object.entries(u).filter(([S])=>S!=="type"&&!S.startsWith("lc_"))),v=Aa(u.getType(),{...y,content:d}),b=[...o.slice(0,c),v];if(await n(b)<=r)o=b,c+=1,l=!0;else break}l&&i==="last"&&(u.content=[...p].reverse())}if(!l){let u=o[c],h;if(Array.isArray(u.content)&&u.content.some(p=>typeof p=="string"||p.type==="text")?h=u.content.find(p=>p.type==="text"&&p.text)?.text:typeof u.content=="string"&&(h=u.content),h){let p=await s(h),m=p.length;i==="last"&&p.reverse();for(let d=0;d<m-1;d+=1)if(p.pop(),u.content=p.join(""),await n([...o.slice(0,c),u])<=r){i==="last"&&(u.content=[...p].reverse().join("")),o=[...o.slice(0,c),u],c+=1;break}}}}if(a){let l=Array.isArray(a)?a:[a];for(;c>0&&!Js(o[c-1],l);)c-=1}return o.slice(0,c)}async function od(e,t){let{allowPartial:r=!1,includeSystem:n=!1,endOn:s,startOn:i,...a}=t,o=e.map(u=>{let h=Object.fromEntries(Object.entries(u).filter(([p])=>p!=="type"&&!p.startsWith("lc_")));return Aa(u.getType(),h,It(u))});if(s){let u=Array.isArray(s)?s:[s];for(;o.length>0&&!Js(o[o.length-1],u);)o=o.slice(0,-1)}let c=n&&o[0]?.getType()==="system",l=c?o.slice(0,1).concat(o.slice(1).reverse()):o.reverse();return l=await Hu(l,{...a,partialStrategy:r?"last":void 0,endOn:i}),c?[l[0],...l.slice(1).reverse()]:l.reverse()}var $u={human:{message:xe,messageChunk:Nn},ai:{message:q,messageChunk:me},system:{message:Qe,messageChunk:wr},developer:{message:Qe,messageChunk:wr},tool:{message:Ge,messageChunk:Tn},function:{message:An,messageChunk:On},generic:{message:Wt,messageChunk:In},remove:{message:Ze,messageChunk:Ze}};function Aa(e,t,r){let n,s;switch(e){case"human":r?n=new Nn(t):s=new xe(t);break;case"ai":if(r){let i={...t};"tool_calls"in i&&(i={...i,tool_call_chunks:i.tool_calls?.map(a=>({...a,type:"tool_call_chunk",index:void 0,args:JSON.stringify(a.args)}))}),n=new me(i)}else s=new q(t);break;case"system":r?n=new wr(t):s=new Qe(t);break;case"developer":r?n=new wr({...t,additional_kwargs:{...t.additional_kwargs,__openai_role__:"developer"}}):s=new Qe({...t,additional_kwargs:{...t.additional_kwargs,__openai_role__:"developer"}});break;case"tool":if("tool_call_id"in t)r?n=new Tn(t):s=new Ge(t);else throw new Error("Can not convert ToolMessage to ToolMessageChunk if 'tool_call_id' field is not defined.");break;case"function":if(r)n=new On(t);else{if(!t.name)throw new Error("FunctionMessage must have a 'name' field");s=new An(t)}break;case"generic":if("role"in t)r?n=new In(t):s=new Wt(t);else throw new Error("Can not convert ChatMessage to ChatMessageChunk if 'role' field is not defined.");break;default:throw new Error(`Unrecognized message type ${e}`)}if(r&&n)return n;if(s)return s;throw new Error(`Unrecognized message type ${e}`)}function cd(e){let t=e.getType(),r,n=Object.fromEntries(Object.entries(e).filter(([s])=>!["type","tool_call_chunks"].includes(s)&&!s.startsWith("lc_")));if(t in $u&&(r=Aa(t,n)),!r)throw new Error(`Unrecognized message chunk class ${t}. Supported classes are ${Object.keys($u)}`);return r}function Oa(e){let t=e.split(`
|
|
7
|
+
`);return Promise.resolve([...t.slice(0,-1).map(r=>`${r}
|
|
8
|
+
`),t[t.length-1]])}var Gu=["tool_call","tool_call_chunk","invalid_tool_call","server_tool_call","server_tool_call_chunk","server_tool_call_result"];var Wu=["image","video","audio","text-plain","file"];var Ku=["text","reasoning",...Gu,...Wu];var zu=A({AIMessage:()=>q,AIMessageChunk:()=>me,BaseMessage:()=>re,BaseMessageChunk:()=>En,ChatMessage:()=>Wt,ChatMessageChunk:()=>In,DEFAULT_MERGE_IGNORE_KEYS:()=>Jc,FunctionMessage:()=>An,FunctionMessageChunk:()=>On,HumanMessage:()=>xe,HumanMessageChunk:()=>Nn,KNOWN_BLOCK_TYPES:()=>Ku,RemoveMessage:()=>Ze,SystemMessage:()=>Qe,SystemMessageChunk:()=>wr,ToolMessage:()=>Ge,ToolMessageChunk:()=>Tn,_isMessageFieldWithRole:()=>Qc,_mergeDicts:()=>Yc,_mergeLists:()=>Xc,_mergeObj:()=>Zc,_mergeStatus:()=>zc,coerceMessageLikeToMessage:()=>de,collapseToolCallChunks:()=>bl,convertToChunk:()=>Sr,convertToOpenAIImageBlock:()=>ks,convertToProviderContentBlock:()=>Gc,defaultTextSplitter:()=>Oa,defaultToolCallParser:()=>rl,filterMessages:()=>Bu,getBufferString:()=>dl,iife:()=>ml,isAIMessage:()=>Ur,isAIMessageChunk:()=>xn,isBase64ContentBlock:()=>Ss,isBaseMessage:()=>ee,isBaseMessageChunk:()=>It,isChatMessage:()=>al,isChatMessageChunk:()=>ol,isDataContentBlock:()=>$c,isDirectToolOutput:()=>tl,isFunctionMessage:()=>cl,isFunctionMessageChunk:()=>ll,isHumanMessage:()=>ul,isHumanMessageChunk:()=>hl,isIDContentBlock:()=>Vc,isMessage:()=>Wc,isOpenAIToolCallArray:()=>qc,isPlainTextContentBlock:()=>Bc,isSystemMessage:()=>pl,isSystemMessageChunk:()=>fl,isToolMessage:()=>Cs,isToolMessageChunk:()=>nl,isURLContentBlock:()=>ws,mapChatMessagesToStoredMessages:()=>yl,mapStoredMessageToChatMessage:()=>gl,mapStoredMessagesToChatMessages:()=>_l,mergeContent:()=>Kc,mergeMessageRuns:()=>Vu,mergeResponseMetadata:()=>sl,mergeUsageMetadata:()=>il,parseBase64DataUrl:()=>Hc,parseMimeType:()=>Uc,trimMessages:()=>Uu});var qu=A({BaseChatMessageHistory:()=>Na,BaseListChatMessageHistory:()=>Ys,InMemoryChatMessageHistory:()=>ld}),Na=class extends Xe{async addMessages(e){for(let t of e)await this.addMessage(t)}},Ys=class extends Xe{addUserMessage(e){return this.addMessage(new xe(e))}addAIMessage(e){return this.addMessage(new q(e))}async addMessages(e){for(let t of e)await this.addMessage(t)}clear(){throw new Error("Not implemented.")}},ld=class extends Ys{lc_namespace=["langchain","stores","message","in_memory"];messages=[];constructor(e){super(...arguments),this.messages=e??[]}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async clear(){this.messages=[]}};var He=class{pageContent;metadata;id;constructor(e){this.pageContent=e.pageContent!==void 0?e.pageContent.toString():"",this.metadata=e.metadata??{},this.id=e.id}};var Ma=class extends H{lc_namespace=["langchain_core","documents","transformers"];invoke(e,t){return this.transformDocuments(e)}},Ju=class extends Ma{async transformDocuments(e){let t=[];for(let r of e){let n=await this._transformDocument(r);t.push(n)}return t}};var Yu=A({BaseDocumentTransformer:()=>Ma,Document:()=>He,MappingDocumentTransformer:()=>Ju});var Xu=A({BaseDocumentLoader:()=>Pa}),Pa=class{};var Zu=A({LangSmithLoader:()=>ud}),ud=class extends Pa{datasetId;datasetName;exampleIds;asOf;splits;inlineS3Urls;offset;limit;metadata;filter;contentKey;formatContent;client;constructor(e){if(super(),e.client&&e.clientConfig)throw new Error("client and clientConfig cannot both be provided.");this.client=e.client??new kl(e?.clientConfig),this.contentKey=e.contentKey?e.contentKey.split("."):[],this.formatContent=e.formatContent??hd,this.datasetId=e.datasetId,this.datasetName=e.datasetName,this.exampleIds=e.exampleIds,this.asOf=e.asOf,this.splits=e.splits,this.inlineS3Urls=e.inlineS3Urls,this.offset=e.offset,this.limit=e.limit,this.metadata=e.metadata,this.filter=e.filter}async load(){let e=[];for await(let t of this.client.listExamples({datasetId:this.datasetId,datasetName:this.datasetName,exampleIds:this.exampleIds,asOf:this.asOf,splits:this.splits,inlineS3Urls:this.inlineS3Urls,offset:this.offset,limit:this.limit,metadata:this.metadata,filter:this.filter})){let r=t.inputs;for(let i of this.contentKey)r=r[i];let n=this.formatContent(r),s=t;["created_at","modified_at"].forEach(i=>{i in s&&typeof s[i]=="object"&&(s[i]=s[i].toString())}),e.push({pageContent:n,metadata:s})}return e}};function hd(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var Qu=A({Embeddings:()=>Xs}),Xs=class{caller;constructor(e){this.caller=new jl(e??{})}};var Jr=class extends Xe{lc_namespace=["langchain_core","example_selectors","base"]};var Ra=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},eh=class extends Ra{defaultPrompt;conditionals;constructor(e,t=[]){super(),this.defaultPrompt=e,this.conditionals=t}getPrompt(e){for(let[t,r]of this.conditionals)if(t(e))return r;return this.defaultPrompt}};function th(e){return e._modelType()==="base_llm"}function rh(e){return e._modelType()==="base_chat_model"}function nh(e){return e.split(/\n| /).length}var sh=class ih extends Jr{examples=[];examplePrompt;getTextLength=nh;maxLength=2048;exampleTextLengths=[];constructor(t){super(t),this.examplePrompt=t.examplePrompt,this.maxLength=t.maxLength??2048,this.getTextLength=t.getTextLength??nh}async addExample(t){this.examples.push(t);let r=await this.examplePrompt.format(t);this.exampleTextLengths.push(this.getTextLength(r))}async calculateExampleTextLengths(t,r){if(t.length>0)return t;let{examples:n,examplePrompt:s}=r;return(await Promise.all(n.map(i=>s.format(i)))).map(i=>this.getTextLength(i))}async selectExamples(t){let r=Object.values(t).join(" "),n=this.maxLength-this.getTextLength(r),s=0,i=[];for(;n>0&&s<this.examples.length;){let a=n-this.exampleTextLengths[s];if(a<0)break;i.push(this.examples[s]),n=a,s+=1}return i}static async fromExamples(t,r){let n=new ih(r);return await Promise.all(t.map(s=>n.addExample(s))),n}};function Da(e){return Object.keys(e).sort().map(t=>e[t])}var ah=class oh extends Jr{vectorStoreRetriever;exampleKeys;inputKeys;constructor(t){if(super(t),this.exampleKeys=t.exampleKeys,this.inputKeys=t.inputKeys,t.vectorStore!==void 0)this.vectorStoreRetriever=t.vectorStore.asRetriever({k:t.k??4,filter:t.filter});else if(t.vectorStoreRetriever)this.vectorStoreRetriever=t.vectorStoreRetriever;else throw new Error('You must specify one of "vectorStore" and "vectorStoreRetriever".')}async addExample(t){let r=Da((this.inputKeys??Object.keys(t)).reduce((n,s)=>({...n,[s]:t[s]}),{})).join(" ");await this.vectorStoreRetriever.addDocuments([new He({pageContent:r,metadata:t})])}async selectExamples(t){let r=Da((this.inputKeys??Object.keys(t)).reduce((s,i)=>({...s,[i]:t[i]}),{})).join(" "),n=(await this.vectorStoreRetriever.invoke(r)).map(s=>s.metadata);return this.exampleKeys?n.map(s=>this.exampleKeys.reduce((i,a)=>({...i,[a]:s[a]}),{})):n}static async fromExamples(t,r,n,s={}){let i=s.inputKeys??null,a=t.map(o=>Da(i?i.reduce((c,l)=>({...c,[l]:o[l]}),{}):o).join(" "));return new oh({vectorStore:await n.fromTexts(a,t,r,s),k:s.k??4,exampleKeys:s.exampleKeys,inputKeys:s.inputKeys})}};var ch=A({BaseExampleSelector:()=>Jr,BasePromptSelector:()=>Ra,ConditionalPromptSelector:()=>eh,LengthBasedExampleSelector:()=>sh,SemanticSimilarityExampleSelector:()=>ah,isChatModel:()=>rh,isLLM:()=>th});var Un="10f90ea3-90a4-4962-bf75-83a0f3c1c62a",lh=class extends Xe{lc_namespace=["langchain","recordmanagers"]};var La=class{uid;hash_;contentHash;metadataHash;pageContent;metadata;keyEncoder=Lc;constructor(e){this.uid=e.uid,this.pageContent=e.pageContent,this.metadata=e.metadata}makeDefaultKeyEncoder(e){this.keyEncoder=e}calculateHashes(){let e=["hash_","content_hash","metadata_hash"];for(let r of e)if(r in this.metadata)throw new Error(`Metadata cannot contain key ${r} as it is reserved for internal use. Restricted keys: [${e.join(", ")}]`);let t=this._hashStringToUUID(this.pageContent);try{let r=this._hashNestedDictToUUID(this.metadata);this.contentHash=t,this.metadataHash=r}catch(r){throw new Error(`Failed to hash metadata: ${r}. Please use a dict that can be serialized using json.`)}this.hash_=this._hashStringToUUID(this.contentHash+this.metadataHash),this.uid||(this.uid=this.hash_)}toDocument(){return new He({pageContent:this.pageContent,metadata:this.metadata})}static fromDocument(e,t){let r=new this({pageContent:e.pageContent,metadata:e.metadata,uid:t||e.uid});return r.calculateHashes(),r}_hashStringToUUID(e){return Cn(this.keyEncoder(e),Un)}_hashNestedDictToUUID(e){let t=JSON.stringify(e,Object.keys(e).sort());return Cn(this.keyEncoder(t),Un)}};function Fa(e,t){let r=[],n=[];return t.forEach(s=>{n.push(s),n.length>=e&&(r.push(n),n=[])}),n.length>0&&r.push(n),r}function ja(e){let t=new Set,r=[];for(let n of e){if(!n.hash_)throw new Error("Hashed document does not have a hash");t.has(n.hash_)||(t.add(n.hash_),r.push(n))}return r}function $a(e){if(e===null)return t=>null;if(typeof e=="string")return t=>t.metadata[e];if(typeof e=="function")return e;throw new Error(`sourceIdKey should be null, a string or a function, got ${typeof e}`)}var Ba=e=>"load"in e&&typeof e.load=="function"&&"loadAndSplit"in e&&typeof e.loadAndSplit=="function";async function uh(e){let{docsSource:t,recordManager:r,vectorStore:n,options:s}=e,{batchSize:i=100,cleanup:a,sourceIdKey:o,cleanupBatchSize:c=1e3,forceUpdate:l=!1}=s??{};if(a==="incremental"&&!o)throw new Error("sourceIdKey is required when cleanup mode is incremental. Please provide through 'options.sourceIdKey'.");let u=Ba(t)?await t.load():t,h=$a(o??null),p=await r.getTime(),m=0,d=0,y=0,v=0,b=Fa(i??100,u);for(let S of b){let k=ja(S.map(M=>La.fromDocument(M))),C=k.map(M=>h(M));a==="incremental"&&k.forEach((M,F)=>{if(C[F]===null)throw new Error("sourceIdKey must be provided when cleanup is incremental")});let T=await r.exists(k.map(M=>M.uid)),O=[],x=[],_=[],P=new Set;if(k.forEach((M,F)=>{if(T[F])if(l)P.add(M.uid);else{_.push(M.uid);return}O.push(M.uid),x.push(M.toDocument())}),_.length>0&&(await r.update(_,{timeAtLeast:p}),v+=_.length),x.length>0&&(await n.addDocuments(x,{ids:O}),m+=x.length-P.size,y+=P.size),await r.update(k.map(M=>M.uid),{timeAtLeast:p,groupIds:C}),a==="incremental"){C.forEach(F=>{if(!F)throw new Error("Source id cannot be null")});let M=await r.listKeys({before:p,groupIds:C});M.length>0&&(await n.delete({ids:M}),await r.deleteKeys(M),d+=M.length)}}if(a==="full"){let S=await r.listKeys({before:p,limit:c});for(;S.length>0;)await n.delete({ids:S}),await r.deleteKeys(S),d+=S.length,S=await r.listKeys({before:p,limit:c})}return{numAdded:m,numDeleted:d,numUpdated:y,numSkipped:v}}var hh=A({RecordManager:()=>lh,UUIDV5_NAMESPACE:()=>Un,_HashedDocument:()=>La,_batch:()=>Fa,_deduplicateInOrder:()=>ja,_getSourceIdAssigner:()=>$a,_isBaseDocumentLoader:()=>Ba,index:()=>uh});var Pt=class extends H{static lc_name(){return"RunnablePassthrough"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;func;constructor(e){super(e),e&&(this.func=e.func)}async invoke(e,t){let r=At(t);return this.func&&await this.func(e,r),this._callWithConfig(n=>Promise.resolve(n),e,r)}async*transform(e,t){let r=At(t),n,s=!0;for await(let i of this._transformStreamWithConfig(e,a=>a,r))if(yield i,s)if(n===void 0)n=i;else try{n=Ot(n,i)}catch{n=void 0,s=!1}this.func&&n!==void 0&&await this.func(n,r)}static assign(e){return new Rs(new Ps({steps:e}))}};var ph=class extends H{static lc_name(){return"RouterRunnable"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;runnables;constructor(e){super(e),this.runnables=e.runnables}async invoke(e,t){let{key:r,input:n}=e,s=this.runnables[r];if(s===void 0)throw new Error(`No runnable associated with key "${r}".`);return s.invoke(n,At(t))}async batch(e,t,r){let n=e.map(u=>u.key),s=e.map(u=>u.input);if(n.find(u=>this.runnables[u]===void 0)!==void 0)throw new Error("One or more keys do not have a corresponding runnable.");let i=n.map(u=>this.runnables[u]),a=this._getOptionsList(t??{},e.length),o=a[0]?.maxConcurrency??r?.maxConcurrency,c=o&&o>0?o:e.length,l=[];for(let u=0;u<s.length;u+=c){let h=s.slice(u,u+c).map((m,d)=>i[d].invoke(m,a[d])),p=await Promise.all(h);l.push(p)}return l.flat()}async stream(e,t){let{key:r,input:n}=e,s=this.runnables[r];if(s===void 0)throw new Error(`No runnable associated with key "${r}".`);return s.stream(n,t)}};var fh=class extends H{static lc_name(){return"RunnableBranch"}lc_namespace=["langchain_core","runnables"];lc_serializable=!0;default;branches;constructor(e){super(e),this.branches=e.branches,this.default=e.default}static from(e){if(e.length<1)throw new Error("RunnableBranch requires at least one branch");let t=e.slice(0,-1).map(([n,s])=>[we(n),we(s)]),r=we(e[e.length-1]);return new this({branches:t,default:r})}async _invoke(e,t,r){let n;for(let s=0;s<this.branches.length;s+=1){let[i,a]=this.branches[s];if(await i.invoke(e,he(t,{callbacks:r?.getChild(`condition:${s+1}`)}))){n=await a.invoke(e,he(t,{callbacks:r?.getChild(`branch:${s+1}`)}));break}}return n||(n=await this.default.invoke(e,he(t,{callbacks:r?.getChild("branch:default")}))),n}async invoke(e,t={}){return this._callWithConfig(this._invoke,e,t)}async*_streamIterator(e,t){let r=await(await Ts(t))?.handleChainStart(this.toJSON(),ou(e,"input"),t?.runId,void 0,void 0,void 0,t?.runName),n,s=!0,i;try{for(let a=0;a<this.branches.length;a+=1){let[o,c]=this.branches[a];if(await o.invoke(e,he(t,{callbacks:r?.getChild(`condition:${a+1}`)}))){i=await c.stream(e,he(t,{callbacks:r?.getChild(`branch:${a+1}`)}));for await(let l of i)if(yield l,s)if(n===void 0)n=l;else try{n=Ot(n,l)}catch{n=void 0,s=!1}break}}if(i===void 0){i=await this.default.stream(e,he(t,{callbacks:r?.getChild("branch:default")}));for await(let a of i)if(yield a,s)if(n===void 0)n=a;else try{n=Ot(n,a)}catch{n=void 0,s=!1}}}catch(a){throw await r?.handleChainError(a),a}await r?.handleChainEnd(n??{})}};var mh=class extends Zt{runnable;inputMessagesKey;outputMessagesKey;historyMessagesKey;getMessageHistory;constructor(e){let t=Fe.from((i,a)=>this._enterHistory(i,a??{})).withConfig({runName:"loadHistory"}),r=e.historyMessagesKey??e.inputMessagesKey;r&&(t=Pt.assign({[r]:t}).withConfig({runName:"insertHistory"}));let n=t.pipe(e.runnable.withListeners({onEnd:(i,a)=>this._exitHistory(i,a??{})})).withConfig({runName:"RunnableWithMessageHistory"}),s=e.config??{};super({...e,config:s,bound:n}),this.runnable=e.runnable,this.getMessageHistory=e.getMessageHistory,this.inputMessagesKey=e.inputMessagesKey,this.outputMessagesKey=e.outputMessagesKey,this.historyMessagesKey=e.historyMessagesKey}_getInputMessages(e){let t;if(typeof e=="object"&&!Array.isArray(e)&&!ee(e)){let r;this.inputMessagesKey?r=this.inputMessagesKey:Object.keys(e).length===1?r=Object.keys(e)[0]:r="input",Array.isArray(e[r])&&Array.isArray(e[r][0])?t=e[r][0]:t=e[r]}else t=e;if(typeof t=="string")return[new xe(t)];if(Array.isArray(t))return t;if(ee(t))return[t];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages.
|
|
9
|
+
Got ${JSON.stringify(t,null,2)}`)}_getOutputMessages(e){let t;if(!Array.isArray(e)&&!ee(e)&&typeof e!="string"){let r;this.outputMessagesKey!==void 0?r=this.outputMessagesKey:Object.keys(e).length===1?r=Object.keys(e)[0]:r="output",e.generations!==void 0?t=e.generations[0][0].message:t=e[r]}else t=e;if(typeof t=="string")return[new q(t)];if(Array.isArray(t))return t;if(ee(t))return[t];throw new Error(`Expected a string, BaseMessage, or array of BaseMessages. Received: ${JSON.stringify(t,null,2)}`)}async _enterHistory(e,t){let r=await(t?.configurable?.messageHistory).getMessages();return this.historyMessagesKey===void 0?r.concat(this._getInputMessages(e)):r}async _exitHistory(e,t){let r=t.configurable?.messageHistory,n;Array.isArray(e.inputs)&&Array.isArray(e.inputs[0])?n=e.inputs[0]:n=e.inputs;let s=this._getInputMessages(n);if(this.historyMessagesKey===void 0){let o=await r.getMessages();s=s.slice(o.length)}let i=e.outputs;if(!i)throw new Error(`Output values from 'Run' undefined. Run: ${JSON.stringify(e,null,2)}`);let a=this._getOutputMessages(i);await r.addMessages([...s,...a])}async _mergeConfig(...e){let t=await super._mergeConfig(...e);if(!t.configurable||!t.configurable.sessionId){let n={[this.inputMessagesKey??"input"]:"foo"};throw new Error(`sessionId is required. Pass it in as part of the config argument to .invoke() or .stream()
|
|
10
|
+
eg. chain.invoke(${JSON.stringify(n)}, ${JSON.stringify({configurable:{sessionId:"123"}})})`)}let{sessionId:r}=t.configurable;return t.configurable.messageHistory=await this.getMessageHistory(r),t}};var dh=A({RouterRunnable:()=>ph,Runnable:()=>H,RunnableAssign:()=>Rs,RunnableBinding:()=>Zt,RunnableBranch:()=>fh,RunnableEach:()=>cu,RunnableLambda:()=>Fe,RunnableMap:()=>Ps,RunnableParallel:()=>uu,RunnablePassthrough:()=>Pt,RunnablePick:()=>pu,RunnableRetry:()=>lu,RunnableSequence:()=>et,RunnableToolLike:()=>fu,RunnableWithFallbacks:()=>hu,RunnableWithMessageHistory:()=>mh,_coerceToRunnable:()=>we,ensureConfig:()=>At,getCallbackManagerForConfig:()=>Ts,mergeConfigs:()=>Le,patchConfig:()=>he,pickRunnableConfigKeys:()=>Nl,raceWithSignal:()=>Ml});var gh=A({applyPatch:()=>Rl,compare:()=>zt});var Yr=class extends H{parseResultWithPrompt(e,t,r){return this.parseResult(e,r)}_baseMessageToString(e){return typeof e.content=="string"?e.content:this._baseMessageContentToString(e.content)}_baseMessageContentToString(e){return JSON.stringify(e)}async invoke(e,t){return typeof e=="string"?this._callWithConfig(async(r,n)=>this.parseResult([{text:r}],n?.callbacks),e,{...t,runType:"parser"}):this._callWithConfig(async(r,n)=>this.parseResult([{message:r,text:this._baseMessageToString(r)}],n?.callbacks),e,{...t,runType:"parser"})}},rt=class extends Yr{parseResult(e,t){return this.parse(e[0].text,t)}async parseWithPrompt(e,t,r){return this.parse(e,r)}_type(){throw new Error("_type not implemented")}},Ce=class extends Error{llmOutput;observation;sendToLLM;constructor(e,t,r,n=!1){if(super(e),this.llmOutput=t,this.observation=r,this.sendToLLM=n,n&&(r===void 0||t===void 0))throw new Error("Arguments 'observation' & 'llmOutput' are required if 'sendToLlm' is true");Vr(this,"OUTPUT_PARSING_FAILURE")}};var Rt=class extends rt{async*_transform(e){for await(let t of e)typeof t=="string"?yield this.parseResult([{text:t}]):yield this.parseResult([{message:t,text:this._baseMessageToString(t)}])}async*transform(e,t){yield*this._transformStreamWithConfig(e,this._transform.bind(this),{...t,runType:"parser"})}},bt=class extends Rt{diff=!1;constructor(e){super(e),this.diff=e?.diff??this.diff}async*_transform(e){let t,r;for await(let n of e){if(typeof n!="string"&&typeof n.content!="string")throw new Error("Cannot handle non-string output.");let s;if(It(n)){if(typeof n.content!="string")throw new Error("Cannot handle non-string message output.");s=new kr({message:n,text:n.content})}else if(ee(n)){if(typeof n.content!="string")throw new Error("Cannot handle non-string message output.");s=new kr({message:Sr(n),text:n.content})}else s=new xs({text:n});r===void 0?r=s:r=r.concat(s);let i=await this.parsePartialResult([r]);i!=null&&!su(i,t)&&(this.diff?yield this._diff(t,i):yield i,t=i)}}getFormatInstructions(){return""}};var _h=class extends Rt{static lc_name(){return"BytesOutputParser"}lc_namespace=["langchain_core","output_parsers","bytes"];lc_serializable=!0;textEncoder=new TextEncoder;parse(e){return Promise.resolve(this.textEncoder.encode(e))}getFormatInstructions(){return""}};var Xr=class extends Rt{re;async*_transform(e){let t="";for await(let r of e)if(typeof r=="string"?t+=r:t+=r.content,this.re){let n=[...t.matchAll(this.re)];if(n.length>1){let s=0;for(let i of n.slice(0,-1))yield[i[1]],s+=(i.index??0)+i[0].length;t=t.slice(s)}}else{let n=await this.parse(t);if(n.length>1){for(let s of n.slice(0,-1))yield[s];t=n[n.length-1]}}for(let r of await this.parse(t))yield[r]}},yh=class extends Xr{static lc_name(){return"CommaSeparatedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;async parse(e){try{return e.trim().split(",").map(t=>t.trim())}catch{throw new Ce(`Could not parse output: ${e}`,e)}}getFormatInstructions(){return"Your response should be a list of comma separated values, eg: `foo, bar, baz`"}},bh=class extends Xr{lc_namespace=["langchain_core","output_parsers","list"];length;separator;constructor({length:e,separator:t}){super(...arguments),this.length=e,this.separator=t||","}async parse(e){try{let t=e.trim().split(this.separator).map(r=>r.trim());if(this.length!==void 0&&t.length!==this.length)throw new Ce(`Incorrect number of items. Expected ${this.length}, got ${t.length}.`);return t}catch(t){throw Object.getPrototypeOf(t)===Ce.prototype?t:new Ce(`Could not parse output: ${e}`)}}getFormatInstructions(){return`Your response should be a list of ${this.length===void 0?"":`${this.length} `}items separated by "${this.separator}" (eg: \`foo${this.separator} bar${this.separator} baz\`)`}},vh=class extends Xr{static lc_name(){return"NumberedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
|
|
11
|
+
|
|
12
|
+
1. foo
|
|
13
|
+
|
|
14
|
+
2. bar
|
|
15
|
+
|
|
16
|
+
3. baz`}re=/\d+\.\s([^\n]+)/g;async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}},wh=class extends Xr{static lc_name(){return"NumberedListOutputParser"}lc_namespace=["langchain_core","output_parsers","list"];lc_serializable=!0;getFormatInstructions(){return`Your response should be a numbered list with each item on a new line. For example:
|
|
17
|
+
|
|
18
|
+
1. foo
|
|
19
|
+
|
|
20
|
+
2. bar
|
|
21
|
+
|
|
22
|
+
3. baz`}re=/^\s*[-*]\s([^\n]+)$/gm;async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}};var Sh=class extends Rt{static lc_name(){return"StrOutputParser"}lc_namespace=["langchain_core","output_parsers","string"];lc_serializable=!0;parse(e){return Promise.resolve(e)}getFormatInstructions(){return""}_textContentToString(e){return e.text}_imageUrlContentToString(e){throw new Error('Cannot coerce a multimodal "image_url" message part into a string.')}_messageContentToString(e){switch(e.type){case"text":case"text_delta":if("text"in e)return this._textContentToString(e);break;case"image_url":if("image_url"in e)return this._imageUrlContentToString(e);break;case"reasoning":case"thinking":case"redacted_thinking":return"";default:throw new Error(`Cannot coerce "${e.type}" message part into a string.`)}throw new Error(`Invalid content type: ${e.type}`)}_baseMessageContentToString(e){return e.reduce((t,r)=>t+this._messageContentToString(r),"")}};var Zs=class extends bt{static lc_name(){return"JsonOutputParser"}lc_namespace=["langchain_core","output_parsers"];lc_serializable=!0;_concatOutputChunks(e,t){return this.diff?super._concatOutputChunks(e,t):t}_diff(e,t){if(t)return e?zt(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return br(e[0].text)}async parse(e){return br(e,JSON.parse)}getFormatInstructions(){return""}_baseMessageToString(e){return e.text}};var Qs=class extends rt{static lc_name(){return"StandardSchemaOutputParser"}lc_namespace=["langchain","output_parsers","standard_schema"];schema;constructor(e){super(),this.schema=e}static fromSerializableSchema(e){return new this(e)}async parse(e){try{let t=br(e,JSON.parse),r=await this.schema["~standard"].validate(t);if(r.issues)throw new Error(`Validation failed: ${JSON.stringify(r.issues)}`);return r.value}catch(t){throw new Ce(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}_baseMessageToString(e){return e.text}getFormatInstructions(){return""}};var Hn=class extends rt{static lc_name(){return"StructuredOutputParser"}lc_namespace=["langchain","output_parsers","structured"];toJSON(){return this.toJSONNotImplemented()}constructor(e){super(e),this.schema=e}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=Xt.object(Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Xt.string().describe(n)])));return new this(t)}getFormatInstructions(){return`You must format your output as a JSON value that adheres to a given "JSON Schema" instance.
|
|
23
|
+
|
|
24
|
+
"JSON Schema" is a declarative language that allows you to annotate and validate JSON documents.
|
|
25
|
+
|
|
26
|
+
For example, the example "JSON Schema" instance {{"properties": {{"foo": {{"description": "a list of test words", "type": "array", "items": {{"type": "string"}}}}}}, "required": ["foo"]}}
|
|
27
|
+
would match an object with one required property, "foo". The "type" property specifies "foo" must be an "array", and the "description" property semantically describes it as "a list of test words". The items within "foo" must be strings.
|
|
28
|
+
Thus, the object {{"foo": ["bar", "baz"]}} is a well-formatted instance of this example "JSON Schema". The object {{"properties": {{"foo": ["bar", "baz"]}}}} is not well-formatted.
|
|
29
|
+
|
|
30
|
+
Your output will be parsed and type-checked according to the provided schema instance, so make sure all fields in your output match the schema exactly and there are no trailing commas!
|
|
31
|
+
|
|
32
|
+
Here is the JSON Schema instance your output must adhere to. Include the enclosing markdown codeblock:
|
|
33
|
+
\`\`\`json
|
|
34
|
+
${JSON.stringify(ve(this.schema))}
|
|
35
|
+
\`\`\`
|
|
36
|
+
`}async parse(e){try{let t=e.trim(),r=(t.match(/^```(?:json)?\s*([\s\S]*?)```/)?.[1]||t.match(/```json\s*([\s\S]*?)```/)?.[1]||t).replace(/"([^"\\]*(\\.[^"\\]*)*)"/g,(n,s)=>`"${s.replace(/\n/g,"\\n")}"`).replace(/\n/g,"");return await Os(this.schema,JSON.parse(r))}catch(t){throw new Ce(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}_baseMessageToString(e){return e.text}},Va=class extends Hn{static lc_name(){return"JsonMarkdownStructuredOutputParser"}getFormatInstructions(e){let t=e?.interpolationDepth??1;if(t<1)throw new Error("f string interpolation depth must be at least 1");return`Return a markdown code snippet with a JSON object formatted to look like:
|
|
37
|
+
\`\`\`json
|
|
38
|
+
${this._schemaToInstruction(ve(this.schema)).replaceAll("{","{".repeat(t)).replaceAll("}","}".repeat(t))}
|
|
39
|
+
\`\`\``}_schemaToInstruction(e,t=2){let r=e;if("type"in r){let n=!1,s;if(Array.isArray(r.type)){let o=r.type.findIndex(c=>c==="null");o!==-1&&(n=!0,r.type.splice(o,1)),s=r.type.join(" | ")}else s=r.type;if(r.type==="object"&&r.properties){let o=r.description?` // ${r.description}`:"";return`{
|
|
40
|
+
${Object.entries(r.properties).map(([c,l])=>{let u=r.required?.includes(c)?"":" (optional)";return`${" ".repeat(t)}"${c}": ${this._schemaToInstruction(l,t+2)}${u}`}).join(`
|
|
41
|
+
`)}
|
|
42
|
+
${" ".repeat(t-2)}}${o}`}if(r.type==="array"&&r.items){let o=r.description?` // ${r.description}`:"";return`array[
|
|
43
|
+
${" ".repeat(t)}${this._schemaToInstruction(r.items,t+2)}
|
|
44
|
+
${" ".repeat(t-2)}] ${o}`}let i=n?" (nullable)":"",a=r.description?` // ${r.description}`:"";return`${s}${a}${i}`}if("anyOf"in r)return r.anyOf.map(n=>this._schemaToInstruction(n,t)).join(`
|
|
45
|
+
${" ".repeat(t-2)}`);throw new Error("unsupported schema type")}static fromZodSchema(e){return new this(e)}static fromNamesAndDescriptions(e){let t=Xt.object(Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Xt.string().describe(n)])));return new this(t)}},kh=class extends rt{structuredInputParser;constructor({inputSchema:e}){super(...arguments),this.structuredInputParser=new Va(e)}async parse(e){let t;try{t=await this.structuredInputParser.parse(e)}catch(r){throw new Ce(`Failed to parse. Text: "${e}". Error: ${r}`,e)}return this.outputProcessor(t)}getFormatInstructions(){return this.structuredInputParser.getFormatInstructions()}};var pd=function(){let e={};e.parser=function(g,f){return new r(g,f)},e.SAXParser=r,e.SAXStream=l,e.createStream=c,e.MAX_BUFFER_LENGTH=65536;let t=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];e.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function r(g,f){if(!(this instanceof r))return new r(g,f);var E=this;s(E),E.q=E.c="",E.bufferCheckPosition=e.MAX_BUFFER_LENGTH,E.opt=f||{},E.opt.lowercase=E.opt.lowercase||E.opt.lowercasetags,E.looseCase=E.opt.lowercase?"toLowerCase":"toUpperCase",E.tags=[],E.closed=E.closedRoot=E.sawRoot=!1,E.tag=E.error=null,E.strict=!!g,E.noscript=!!(g||E.opt.noscript),E.state=_.BEGIN,E.strictEntities=E.opt.strictEntities,E.ENTITIES=E.strictEntities?Object.create(e.XML_ENTITIES):Object.create(e.ENTITIES),E.attribList=[],E.opt.xmlns&&(E.ns=Object.create(d)),E.trackPosition=E.opt.position!==!1,E.trackPosition&&(E.position=E.line=E.column=0),M(E,"onready")}Object.create||(Object.create=function(g){function f(){}return f.prototype=g,new f}),Object.keys||(Object.keys=function(g){var f=[];for(var E in g)g.hasOwnProperty(E)&&f.push(E);return f});function n(g){for(var f=Math.max(e.MAX_BUFFER_LENGTH,10),E=0,w=0,J=t.length;w<J;w++){var ne=g[t[w]].length;if(ne>f)switch(t[w]){case"textNode":j(g);break;case"cdata":F(g,"oncdata",g.cdata),g.cdata="";break;case"script":F(g,"onscript",g.script),g.script="";break;default:z(g,"Max buffer length exceeded: "+t[w])}E=Math.max(E,ne)}g.bufferCheckPosition=e.MAX_BUFFER_LENGTH-E+g.position}function s(g){for(var f=0,E=t.length;f<E;f++)g[t[f]]=""}function i(g){j(g),g.cdata!==""&&(F(g,"oncdata",g.cdata),g.cdata=""),g.script!==""&&(F(g,"onscript",g.script),g.script="")}r.prototype={end:function(){_e(this)},write:zm,resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){i(this)}};var a=ReadableStream;a||(a=function(){});var o=e.EVENTS.filter(function(g){return g!=="error"&&g!=="end"});function c(g,f){return new l(g,f)}function l(g,f){if(!(this instanceof l))return new l(g,f);a.apply(this),this._parser=new r(g,f),this.writable=!0,this.readable=!0;var E=this;this._parser.onend=function(){E.emit("end")},this._parser.onerror=function(w){E.emit("error",w),E._parser.error=null},this._decoder=null,o.forEach(function(w){Object.defineProperty(E,"on"+w,{get:function(){return E._parser["on"+w]},set:function(J){if(!J)return E.removeAllListeners(w),E._parser["on"+w]=J,J;E.on(w,J)},enumerable:!0,configurable:!1})})}l.prototype=Object.create(a.prototype,{constructor:{value:l}}),l.prototype.write=function(g){return this._parser.write(g.toString()),this.emit("data",g),!0},l.prototype.end=function(g){return g&&g.length&&this.write(g),this._parser.end(),!0},l.prototype.on=function(g,f){var E=this;return!E._parser["on"+g]&&o.indexOf(g)!==-1&&(E._parser["on"+g]=function(){var w=arguments.length===1?[arguments[0]]:Array.apply(null,arguments);w.splice(0,0,g),E.emit.apply(E,w)}),a.prototype.on.call(E,g,f)};var u="[CDATA[",h="DOCTYPE",p="http://www.w3.org/XML/1998/namespace",m="http://www.w3.org/2000/xmlns/",d={xml:p,xmlns:m},y=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,v=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,b=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,S=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function k(g){return g===" "||g===`
|
|
46
|
+
`||g==="\r"||g===" "}function C(g){return g==='"'||g==="'"}function T(g){return g===">"||k(g)}function O(g,f){return g.test(f)}function x(g,f){return!O(g,f)}var _=0;e.STATE={BEGIN:_++,BEGIN_WHITESPACE:_++,TEXT:_++,TEXT_ENTITY:_++,OPEN_WAKA:_++,SGML_DECL:_++,SGML_DECL_QUOTED:_++,DOCTYPE:_++,DOCTYPE_QUOTED:_++,DOCTYPE_DTD:_++,DOCTYPE_DTD_QUOTED:_++,COMMENT_STARTING:_++,COMMENT:_++,COMMENT_ENDING:_++,COMMENT_ENDED:_++,CDATA:_++,CDATA_ENDING:_++,CDATA_ENDING_2:_++,PROC_INST:_++,PROC_INST_BODY:_++,PROC_INST_ENDING:_++,OPEN_TAG:_++,OPEN_TAG_SLASH:_++,ATTRIB:_++,ATTRIB_NAME:_++,ATTRIB_NAME_SAW_WHITE:_++,ATTRIB_VALUE:_++,ATTRIB_VALUE_QUOTED:_++,ATTRIB_VALUE_CLOSED:_++,ATTRIB_VALUE_UNQUOTED:_++,ATTRIB_VALUE_ENTITY_Q:_++,ATTRIB_VALUE_ENTITY_U:_++,CLOSE_TAG:_++,CLOSE_TAG_SAW_WHITE:_++,SCRIPT:_++,SCRIPT_ENDING:_++},e.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},e.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(e.ENTITIES).forEach(function(g){var f=e.ENTITIES[g],E=typeof f=="number"?String.fromCharCode(f):f;e.ENTITIES[g]=E});for(var P in e.STATE)e.STATE[e.STATE[P]]=P;_=e.STATE;function M(g,f,E){g[f]&&g[f](E)}function F(g,f,E){g.textNode&&j(g),M(g,f,E)}function j(g){g.textNode=G(g.opt,g.textNode),g.textNode&&M(g,"ontext",g.textNode),g.textNode=""}function G(g,f){return g.trim&&(f=f.trim()),g.normalize&&(f=f.replace(/\s+/g," ")),f}function z(g,f){return j(g),g.trackPosition&&(f+=`
|
|
47
|
+
Line: `+g.line+`
|
|
48
|
+
Column: `+g.column+`
|
|
49
|
+
Char: `+g.c),f=new Error(f),g.error=f,M(g,"onerror",f),g}function _e(g){return g.sawRoot&&!g.closedRoot&&V(g,"Unclosed root tag"),g.state!==_.BEGIN&&g.state!==_.BEGIN_WHITESPACE&&g.state!==_.TEXT&&z(g,"Unexpected end"),j(g),g.c="",g.closed=!0,M(g,"onend"),r.call(g,g.strict,g.opt),g}function V(g,f){if(typeof g!="object"||!(g instanceof r))throw new Error("bad call to strictFail");g.strict&&z(g,f)}function N(g){g.strict||(g.tagName=g.tagName[g.looseCase]());var f=g.tags[g.tags.length-1]||g,E=g.tag={name:g.tagName,attributes:{}};g.opt.xmlns&&(E.ns=f.ns),g.attribList.length=0,F(g,"onopentagstart",E)}function R(g,f){var E=g.indexOf(":")<0?["",g]:g.split(":"),w=E[0],J=E[1];return f&&g==="xmlns"&&(w="xmlns",J=""),{prefix:w,local:J}}function D(g){if(g.strict||(g.attribName=g.attribName[g.looseCase]()),g.attribList.indexOf(g.attribName)!==-1||g.tag.attributes.hasOwnProperty(g.attribName)){g.attribName=g.attribValue="";return}if(g.opt.xmlns){var f=R(g.attribName,!0),E=f.prefix,w=f.local;if(E==="xmlns")if(w==="xml"&&g.attribValue!==p)V(g,"xml: prefix must be bound to "+p+`
|
|
50
|
+
Actual: `+g.attribValue);else if(w==="xmlns"&&g.attribValue!==m)V(g,"xmlns: prefix must be bound to "+m+`
|
|
51
|
+
Actual: `+g.attribValue);else{var J=g.tag,ne=g.tags[g.tags.length-1]||g;J.ns===ne.ns&&(J.ns=Object.create(ne.ns)),J.ns[w]=g.attribValue}g.attribList.push([g.attribName,g.attribValue])}else g.tag.attributes[g.attribName]=g.attribValue,F(g,"onattribute",{name:g.attribName,value:g.attribValue});g.attribName=g.attribValue=""}function L(g,f){if(g.opt.xmlns){var E=g.tag,w=R(g.tagName);E.prefix=w.prefix,E.local=w.local,E.uri=E.ns[w.prefix]||"",E.prefix&&!E.uri&&(V(g,"Unbound namespace prefix: "+JSON.stringify(g.tagName)),E.uri=w.prefix);var J=g.tags[g.tags.length-1]||g;E.ns&&J.ns!==E.ns&&Object.keys(E.ns).forEach(function(Tc){F(g,"onopennamespace",{prefix:Tc,uri:E.ns[Tc]})});for(var ne=0,Ve=g.attribList.length;ne<Ve;ne++){var Te=g.attribList[ne],Ye=Te[0],_r=Te[1],ye=R(Ye,!0),yr=ye.prefix,qm=ye.local,Ec=yr===""?"":E.ns[yr]||"",ha={name:Ye,value:_r,prefix:yr,local:qm,uri:Ec};yr&&yr!=="xmlns"&&!Ec&&(V(g,"Unbound namespace prefix: "+JSON.stringify(yr)),ha.uri=yr),g.tag.attributes[Ye]=ha,F(g,"onattribute",ha)}g.attribList.length=0}g.tag.isSelfClosing=!!f,g.sawRoot=!0,g.tags.push(g.tag),F(g,"onopentag",g.tag),f||(!g.noscript&&g.tagName.toLowerCase()==="script"?g.state=_.SCRIPT:g.state=_.TEXT,g.tag=null,g.tagName=""),g.attribName=g.attribValue="",g.attribList.length=0}function K(g){if(!g.tagName){V(g,"Weird empty close tag."),g.textNode+="</>",g.state=_.TEXT;return}if(g.script){if(g.tagName!=="script"){g.script+="</"+g.tagName+">",g.tagName="",g.state=_.SCRIPT;return}F(g,"onscript",g.script),g.script=""}var f=g.tags.length,E=g.tagName;g.strict||(E=E[g.looseCase]());for(var w=E;f--&&g.tags[f].name!==w;)V(g,"Unexpected close tag");if(f<0){V(g,"Unmatched closing tag: "+g.tagName),g.textNode+="</"+g.tagName+">",g.state=_.TEXT;return}g.tagName=E;for(var J=g.tags.length;J-- >f;){var ne=g.tag=g.tags.pop();g.tagName=g.tag.name,F(g,"onclosetag",g.tagName);var Ve={};for(var Te in ne.ns)Ve[Te]=ne.ns[Te];var Ye=g.tags[g.tags.length-1]||g;g.opt.xmlns&&ne.ns!==Ye.ns&&Object.keys(ne.ns).forEach(function(_r){var ye=ne.ns[_r];F(g,"onclosenamespace",{prefix:_r,uri:ye})})}f===0&&(g.closedRoot=!0),g.tagName=g.attribValue=g.attribName="",g.attribList.length=0,g.state=_.TEXT}function ft(g){var f=g.entity,E=f.toLowerCase(),w,J="";return g.ENTITIES[f]?g.ENTITIES[f]:g.ENTITIES[E]?g.ENTITIES[E]:(f=E,f.charAt(0)==="#"&&(f.charAt(1)==="x"?(f=f.slice(2),w=parseInt(f,16),J=w.toString(16)):(f=f.slice(1),w=parseInt(f,10),J=w.toString(10))),f=f.replace(/^0+/,""),isNaN(w)||J.toLowerCase()!==f?(V(g,"Invalid character entity"),"&"+g.entity+";"):String.fromCodePoint(w))}function wn(g,f){f==="<"?(g.state=_.OPEN_WAKA,g.startTagPosition=g.position):k(f)||(V(g,"Non-whitespace before first tag."),g.textNode=f,g.state=_.TEXT)}function Sn(g,f){var E="";return f<g.length&&(E=g.charAt(f)),E}function zm(g){var f=this;if(this.error)throw this.error;if(f.closed)return z(f,"Cannot write after close. Assign an onready handler.");if(g===null)return _e(f);typeof g=="object"&&(g=g.toString());for(var E=0,w="";w=Sn(g,E++),f.c=w,!!w;)switch(f.trackPosition&&(f.position++,w===`
|
|
52
|
+
`?(f.line++,f.column=0):f.column++),f.state){case _.BEGIN:if(f.state=_.BEGIN_WHITESPACE,w==="\uFEFF")continue;wn(f,w);continue;case _.BEGIN_WHITESPACE:wn(f,w);continue;case _.TEXT:if(f.sawRoot&&!f.closedRoot){for(var J=E-1;w&&w!=="<"&&w!=="&";)w=Sn(g,E++),w&&f.trackPosition&&(f.position++,w===`
|
|
53
|
+
`?(f.line++,f.column=0):f.column++);f.textNode+=g.substring(J,E-1)}w==="<"&&!(f.sawRoot&&f.closedRoot&&!f.strict)?(f.state=_.OPEN_WAKA,f.startTagPosition=f.position):(!k(w)&&(!f.sawRoot||f.closedRoot)&&V(f,"Text data outside of root node."),w==="&"?f.state=_.TEXT_ENTITY:f.textNode+=w);continue;case _.SCRIPT:w==="<"?f.state=_.SCRIPT_ENDING:f.script+=w;continue;case _.SCRIPT_ENDING:w==="/"?f.state=_.CLOSE_TAG:(f.script+="<"+w,f.state=_.SCRIPT);continue;case _.OPEN_WAKA:if(w==="!")f.state=_.SGML_DECL,f.sgmlDecl="";else if(!k(w))if(O(y,w))f.state=_.OPEN_TAG,f.tagName=w;else if(w==="/")f.state=_.CLOSE_TAG,f.tagName="";else if(w==="?")f.state=_.PROC_INST,f.procInstName=f.procInstBody="";else{if(V(f,"Unencoded <"),f.startTagPosition+1<f.position){var ne=f.position-f.startTagPosition;w=new Array(ne).join(" ")+w}f.textNode+="<"+w,f.state=_.TEXT}continue;case _.SGML_DECL:(f.sgmlDecl+w).toUpperCase()===u?(F(f,"onopencdata"),f.state=_.CDATA,f.sgmlDecl="",f.cdata=""):f.sgmlDecl+w==="--"?(f.state=_.COMMENT,f.comment="",f.sgmlDecl=""):(f.sgmlDecl+w).toUpperCase()===h?(f.state=_.DOCTYPE,(f.doctype||f.sawRoot)&&V(f,"Inappropriately located doctype declaration"),f.doctype="",f.sgmlDecl=""):w===">"?(F(f,"onsgmldeclaration",f.sgmlDecl),f.sgmlDecl="",f.state=_.TEXT):(C(w)&&(f.state=_.SGML_DECL_QUOTED),f.sgmlDecl+=w);continue;case _.SGML_DECL_QUOTED:w===f.q&&(f.state=_.SGML_DECL,f.q=""),f.sgmlDecl+=w;continue;case _.DOCTYPE:w===">"?(f.state=_.TEXT,F(f,"ondoctype",f.doctype),f.doctype=!0):(f.doctype+=w,w==="["?f.state=_.DOCTYPE_DTD:C(w)&&(f.state=_.DOCTYPE_QUOTED,f.q=w));continue;case _.DOCTYPE_QUOTED:f.doctype+=w,w===f.q&&(f.q="",f.state=_.DOCTYPE);continue;case _.DOCTYPE_DTD:f.doctype+=w,w==="]"?f.state=_.DOCTYPE:C(w)&&(f.state=_.DOCTYPE_DTD_QUOTED,f.q=w);continue;case _.DOCTYPE_DTD_QUOTED:f.doctype+=w,w===f.q&&(f.state=_.DOCTYPE_DTD,f.q="");continue;case _.COMMENT:w==="-"?f.state=_.COMMENT_ENDING:f.comment+=w;continue;case _.COMMENT_ENDING:w==="-"?(f.state=_.COMMENT_ENDED,f.comment=G(f.opt,f.comment),f.comment&&F(f,"oncomment",f.comment),f.comment=""):(f.comment+="-"+w,f.state=_.COMMENT);continue;case _.COMMENT_ENDED:w!==">"?(V(f,"Malformed comment"),f.comment+="--"+w,f.state=_.COMMENT):f.state=_.TEXT;continue;case _.CDATA:w==="]"?f.state=_.CDATA_ENDING:f.cdata+=w;continue;case _.CDATA_ENDING:w==="]"?f.state=_.CDATA_ENDING_2:(f.cdata+="]"+w,f.state=_.CDATA);continue;case _.CDATA_ENDING_2:w===">"?(f.cdata&&F(f,"oncdata",f.cdata),F(f,"onclosecdata"),f.cdata="",f.state=_.TEXT):w==="]"?f.cdata+="]":(f.cdata+="]]"+w,f.state=_.CDATA);continue;case _.PROC_INST:w==="?"?f.state=_.PROC_INST_ENDING:k(w)?f.state=_.PROC_INST_BODY:f.procInstName+=w;continue;case _.PROC_INST_BODY:if(!f.procInstBody&&k(w))continue;w==="?"?f.state=_.PROC_INST_ENDING:f.procInstBody+=w;continue;case _.PROC_INST_ENDING:w===">"?(F(f,"onprocessinginstruction",{name:f.procInstName,body:f.procInstBody}),f.procInstName=f.procInstBody="",f.state=_.TEXT):(f.procInstBody+="?"+w,f.state=_.PROC_INST_BODY);continue;case _.OPEN_TAG:O(v,w)?f.tagName+=w:(N(f),w===">"?L(f):w==="/"?f.state=_.OPEN_TAG_SLASH:(k(w)||V(f,"Invalid character in tag name"),f.state=_.ATTRIB));continue;case _.OPEN_TAG_SLASH:w===">"?(L(f,!0),K(f)):(V(f,"Forward-slash in opening tag not followed by >"),f.state=_.ATTRIB);continue;case _.ATTRIB:if(k(w))continue;w===">"?L(f):w==="/"?f.state=_.OPEN_TAG_SLASH:O(y,w)?(f.attribName=w,f.attribValue="",f.state=_.ATTRIB_NAME):V(f,"Invalid attribute name");continue;case _.ATTRIB_NAME:w==="="?f.state=_.ATTRIB_VALUE:w===">"?(V(f,"Attribute without value"),f.attribValue=f.attribName,D(f),L(f)):k(w)?f.state=_.ATTRIB_NAME_SAW_WHITE:O(v,w)?f.attribName+=w:V(f,"Invalid attribute name");continue;case _.ATTRIB_NAME_SAW_WHITE:if(w==="=")f.state=_.ATTRIB_VALUE;else{if(k(w))continue;V(f,"Attribute without value"),f.tag.attributes[f.attribName]="",f.attribValue="",F(f,"onattribute",{name:f.attribName,value:""}),f.attribName="",w===">"?L(f):O(y,w)?(f.attribName=w,f.state=_.ATTRIB_NAME):(V(f,"Invalid attribute name"),f.state=_.ATTRIB)}continue;case _.ATTRIB_VALUE:if(k(w))continue;C(w)?(f.q=w,f.state=_.ATTRIB_VALUE_QUOTED):(V(f,"Unquoted attribute value"),f.state=_.ATTRIB_VALUE_UNQUOTED,f.attribValue=w);continue;case _.ATTRIB_VALUE_QUOTED:if(w!==f.q){w==="&"?f.state=_.ATTRIB_VALUE_ENTITY_Q:f.attribValue+=w;continue}D(f),f.q="",f.state=_.ATTRIB_VALUE_CLOSED;continue;case _.ATTRIB_VALUE_CLOSED:k(w)?f.state=_.ATTRIB:w===">"?L(f):w==="/"?f.state=_.OPEN_TAG_SLASH:O(y,w)?(V(f,"No whitespace between attributes"),f.attribName=w,f.attribValue="",f.state=_.ATTRIB_NAME):V(f,"Invalid attribute name");continue;case _.ATTRIB_VALUE_UNQUOTED:if(!T(w)){w==="&"?f.state=_.ATTRIB_VALUE_ENTITY_U:f.attribValue+=w;continue}D(f),w===">"?L(f):f.state=_.ATTRIB;continue;case _.CLOSE_TAG:if(f.tagName)w===">"?K(f):O(v,w)?f.tagName+=w:f.script?(f.script+="</"+f.tagName,f.tagName="",f.state=_.SCRIPT):(k(w)||V(f,"Invalid tagname in closing tag"),f.state=_.CLOSE_TAG_SAW_WHITE);else{if(k(w))continue;x(y,w)?f.script?(f.script+="</"+w,f.state=_.SCRIPT):V(f,"Invalid tagname in closing tag."):f.tagName=w}continue;case _.CLOSE_TAG_SAW_WHITE:if(k(w))continue;w===">"?K(f):V(f,"Invalid characters in closing tag");continue;case _.TEXT_ENTITY:case _.ATTRIB_VALUE_ENTITY_Q:case _.ATTRIB_VALUE_ENTITY_U:var Ve,Te;switch(f.state){case _.TEXT_ENTITY:Ve=_.TEXT,Te="textNode";break;case _.ATTRIB_VALUE_ENTITY_Q:Ve=_.ATTRIB_VALUE_QUOTED,Te="attribValue";break;case _.ATTRIB_VALUE_ENTITY_U:Ve=_.ATTRIB_VALUE_UNQUOTED,Te="attribValue";break}if(w===";")if(f.opt.unparsedEntities){var Ye=ft(f);f.entity="",f.state=Ve,f.write(Ye)}else f[Te]+=ft(f),f.entity="",f.state=Ve;else O(f.entity.length?S:b,w)?f.entity+=w:(V(f,"Invalid character in entity name"),f[Te]+="&"+f.entity+w,f.entity="",f.state=Ve);continue;default:throw new Error(f,"Unknown state: "+f.state)}return f.position>=f.bufferCheckPosition&&n(f),f}return String.fromCodePoint||(function(){var g=String.fromCharCode,f=Math.floor,E=function(){var w=16384,J=[],ne,Ve,Te=-1,Ye=arguments.length;if(!Ye)return"";for(var _r="";++Te<Ye;){var ye=Number(arguments[Te]);if(!isFinite(ye)||ye<0||ye>1114111||f(ye)!==ye)throw RangeError("Invalid code point: "+ye);ye<=65535?J.push(ye):(ye-=65536,ne=(ye>>10)+55296,Ve=ye%1024+56320,J.push(ne,Ve)),(Te+1===Ye||J.length>w)&&(_r+=g.apply(null,J),J.length=0)}return _r};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:E,configurable:!0,writable:!0}):String.fromCodePoint=E})(),e},Ch=pd();var ei=`The output should be formatted as a XML file.
|
|
54
|
+
1. Output should conform to the tags below.
|
|
55
|
+
2. If tags are not given, make them on your own.
|
|
56
|
+
3. Remember to always open and close all the tags.
|
|
57
|
+
|
|
58
|
+
As an example, for the tags ["foo", "bar", "baz"]:
|
|
59
|
+
1. String "<foo>
|
|
60
|
+
<bar>
|
|
61
|
+
<baz></baz>
|
|
62
|
+
</bar>
|
|
63
|
+
</foo>" is a well-formatted instance of the schema.
|
|
64
|
+
2. String "<foo>
|
|
65
|
+
<bar>
|
|
66
|
+
</foo>" is a badly-formatted instance.
|
|
67
|
+
3. String "<foo>
|
|
68
|
+
<tag>
|
|
69
|
+
</tag>
|
|
70
|
+
</foo>" is a badly-formatted instance.
|
|
71
|
+
|
|
72
|
+
Here are the output tags:
|
|
73
|
+
\`\`\`
|
|
74
|
+
{tags}
|
|
75
|
+
\`\`\``,Eh=class extends bt{tags;constructor(e){super(e),this.tags=e?.tags}static lc_name(){return"XMLOutputParser"}lc_namespace=["langchain_core","output_parsers"];lc_serializable=!0;_diff(e,t){if(t)return e?zt(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return ti(e[0].text)}async parse(e){return ti(e)}getFormatInstructions(){return this.tags&&this.tags.length>0?ei.replace("{tags}",this.tags?.join(", ")??""):ei}},fd=e=>e.split(`
|
|
76
|
+
`).map(t=>t.replace(/^\s+/,"")).join(`
|
|
77
|
+
`).trim(),Th=e=>{if(Object.keys(e).length===0)return{};let t={};return e.children.length>0?(t[e.name]=e.children.map(Th),t):(t[e.name]=e.text??void 0,t)};function ti(e){let t=fd(e),r=Ch.parser(!0),n={},s=[];r.onopentag=o=>{let c={name:o.name,attributes:o.attributes,children:[],text:"",isSelfClosing:o.isSelfClosing};s.length>0?s[s.length-1].children.push(c):n=c,o.isSelfClosing||s.push(c)},r.onclosetag=()=>{if(s.length>0){let o=s.pop();s.length===0&&o&&(n=o)}},r.ontext=o=>{if(s.length>0){let c=s[s.length-1];c.text+=o}},r.onattribute=o=>{if(s.length>0){let c=s[s.length-1];c.attributes[o.name]=o.value}};let i=/```(xml)?(.*)```/s.exec(t),a=i?i[2]:t;return r.write(a).close(),n&&n.name==="?xml"&&(n=n.children[0]),Th(n)}var xh=A({AsymmetricStructuredOutputParser:()=>kh,BaseCumulativeTransformOutputParser:()=>bt,BaseLLMOutputParser:()=>Yr,BaseOutputParser:()=>rt,BaseTransformOutputParser:()=>Rt,BytesOutputParser:()=>_h,CommaSeparatedListOutputParser:()=>yh,CustomListOutputParser:()=>bh,JsonMarkdownStructuredOutputParser:()=>Va,JsonOutputParser:()=>Zs,ListOutputParser:()=>Xr,MarkdownListOutputParser:()=>wh,NumberedListOutputParser:()=>vh,OutputParserException:()=>Ce,StandardSchemaOutputParser:()=>Qs,StringOutputParser:()=>Sh,StructuredOutputParser:()=>Hn,XMLOutputParser:()=>Eh,XML_FORMAT_INSTRUCTIONS:()=>ei,parseJsonMarkdown:()=>br,parsePartialJson:()=>vr,parseXMLMarkdown:()=>ti});var Ih=A({extendInteropZodObject:()=>Ns,getInteropZodDefaultGetter:()=>Ms,getInteropZodObjectShape:()=>Er,getSchemaDescription:()=>Cr,interopParse:()=>Jt,interopParseAsync:()=>Os,interopSafeParse:()=>Wl,interopSafeParseAsync:()=>As,interopZodObjectMakeFieldsOptional:()=>ru,interopZodObjectPartial:()=>Yt,interopZodObjectPassthrough:()=>eu,interopZodObjectStrict:()=>Ql,interopZodTransformInputSchema:()=>tu,isInteropZodError:()=>nu,isInteropZodLiteral:()=>Gl,isInteropZodObject:()=>be,isInteropZodSchema:()=>qt,isShapelessZodSchema:()=>Kl,isSimpleStringZodSchema:()=>zl,isZodArrayV4:()=>Yl,isZodLiteralV3:()=>Ul,isZodLiteralV4:()=>Hl,isZodNullableV4:()=>Zl,isZodObjectV3:()=>ql,isZodObjectV4:()=>Jl,isZodOptionalV4:()=>Xl,isZodSchema:()=>Vl,isZodSchemaV3:()=>Is,isZodSchemaV4:()=>Bl});function Ua(e,t){if(e.function===void 0)return;let r;if(t?.partial)try{r=vr(e.function.arguments??"{}")}catch{return}else try{r=JSON.parse(e.function.arguments)}catch(s){throw new Ce([`Function "${e.function.name}" arguments:`,"",e.function.arguments,"","are not valid JSON.",`Error: ${s.message}`].join(`
|
|
78
|
+
`))}let n={name:e.function.name,args:r,type:"tool_call"};return t?.returnId&&(n.id=e.id),n}function Ah(e){if(e.id===void 0)throw new Error('All OpenAI tool calls must have an "id" field.');return{id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.args)}}}function Oh(e,t){return{name:e.function?.name,args:e.function?.arguments,id:e.id,error:t,type:"invalid_tool_call"}}var Ha=class extends bt{static lc_name(){return"JsonOutputToolsParser"}returnId=!1;lc_namespace=["langchain","output_parsers","openai_tools"];lc_serializable=!0;constructor(e){super(e),this.returnId=e?.returnId??this.returnId}_diff(){throw new Error("Not supported.")}async parse(){throw new Error("Not implemented.")}async parseResult(e){return await this.parsePartialResult(e,!1)}async parsePartialResult(e,t=!0){let r=e[0].message,n;if(Ur(r)&&r.tool_calls?.length?n=r.tool_calls.map(i=>{let{id:a,...o}=i;return this.returnId?{id:a,...o}:o}):r.additional_kwargs.tool_calls!==void 0&&(n=JSON.parse(JSON.stringify(r.additional_kwargs.tool_calls)).map(i=>Ua(i,{returnId:this.returnId,partial:t}))),!n)return[];let s=[];for(let i of n)if(i!==void 0){let a={type:i.name,args:i.args,id:i.id};s.push(a)}return s}},ri=class extends Ha{static lc_name(){return"JsonOutputKeyToolsParser"}lc_namespace=["langchain","output_parsers","openai_tools"];lc_serializable=!0;returnId=!1;keyName;returnSingle=!1;zodSchema;serializableSchema;constructor(e){super(e),this.keyName=e.keyName,this.returnSingle=e.returnSingle??this.returnSingle,"zodSchema"in e&&(this.zodSchema=e.zodSchema),"serializableSchema"in e&&(this.serializableSchema=e.serializableSchema)}async _validateResult(e){if(this.serializableSchema!==void 0){let r=await this.serializableSchema["~standard"].validate(e);if(r.issues)throw new Ce(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(r.issues)}`,JSON.stringify(e,null,2));return r.value}if(this.zodSchema===void 0)return e;let t=await As(this.zodSchema,e);if(t.success)return t.data;throw new Ce(`Failed to parse. Text: "${JSON.stringify(e,null,2)}". Error: ${JSON.stringify(t.error?.issues)}`,JSON.stringify(e,null,2))}async parsePartialResult(e){let t=(await super.parsePartialResult(e)).filter(n=>n.type===this.keyName),r=t;if(t.length)return this.returnId||(r=t.map(n=>n.args)),this.returnSingle?r[0]:r}async parseResult(e){let t=(await super.parsePartialResult(e,!1)).filter(n=>n.type===this.keyName),r=t;if(t.length)return this.returnId||(r=t.map(n=>n.args)),this.returnSingle?this._validateResult(r[0]):await Promise.all(r.map(n=>this._validateResult(n)))}};var Nh=A({assembleStructuredOutputPipeline:()=>Ga,createContentParser:()=>md,createFunctionCallingParser:()=>dd});function md(e){return qt(e)?Hn.fromZodSchema(e):Wr(e)?Qs.fromSerializableSchema(e):new Zs}function dd(e,t,r){let n=r??ri;return qt(e)?new n({returnSingle:!0,keyName:t,zodSchema:e}):Wr(e)?new n({returnSingle:!0,keyName:t,serializableSchema:e}):new n({returnSingle:!0,keyName:t})}function Ga(e,t,r,n){if(!r){let c=e.pipe(t);return n?c.withConfig({runName:n}):c}let s=Pt.assign({parsed:(c,l)=>t.invoke(c.raw,l)}),i=Pt.assign({parsed:()=>null}),a=s.withFallbacks({fallbacks:[i]}),o=et.from([{raw:e},a]);return n?o.withConfig({runName:n}):o}var Ph=A({ChatModelStream:()=>or,ReasoningContentStream:()=>Lh,TextContentStream:()=>Rh,ToolCallsStream:()=>Dh,UsageMetadataStream:()=>Fh}),gd=class{events=[];finished=!1;waiters=[];error=null;push(e){this.events.push(e);let t=this.waiters.splice(0);for(let r of t)r()}finish(){this.finished=!0;let e=this.waiters.splice(0);for(let t of e)t()}setError(e){this.error=e,this.finished=!0;let t=this.waiters.splice(0);for(let r of t)r()}async*iterate(){if(this.finished){if(this.error)throw this.error;yield*this.events;return}let e=0;for(;;){for(;e<this.events.length;)yield this.events[e],e++;if(this.finished){if(this.error)throw this.error;return}await new Promise(t=>{if(e<this.events.length||this.finished){t();return}this.waiters.push(t)})}}};function _d(e,t){switch(t.type){case"text-delta":return e.type==="text"?{...e,text:(e.text??"")+t.text}:e;case"reasoning-delta":return e.type==="thinking"?{...e,thinking:(e.thinking??"")+t.reasoning}:e.type==="reasoning"?{...e,reasoning:(e.reasoning??"")+t.reasoning}:e;case"data-delta":return{...e,data:(e.data??"")+t.data};case"block-delta":return{...e,...t.fields};default:throw new Error(`Unknown delta type: ${JSON.stringify(t)}`)}}function Gn(e){if(e.event!=="content-block-delta")return;if("delta"in e&&e.delta)return e.delta;let t=e.content;if(t==null||typeof t!="object")return;let r=t;if(r.type==="text"&&typeof r.text=="string")return{type:"text-delta",text:r.text};if(r.type==="reasoning"&&typeof r.reasoning=="string")return{type:"reasoning-delta",reasoning:r.reasoning};if(r.type==="thinking"&&typeof r.thinking=="string")return{type:"reasoning-delta",reasoning:r.thinking};if(typeof r.data=="string")return{type:"data-delta",data:r.data,encoding:"base64"};if(typeof r.type=="string")return{type:"block-delta",fields:{...r,type:r.type}}}function Mh(e){if(e==null||typeof e!="object")return;let t=e;if(t.type==="reasoning"&&typeof t.reasoning=="string")return t.reasoning;if(t.type==="thinking"&&typeof t.thinking=="string")return t.thinking}function ni(e){if(e==null||typeof e!="object")return!1;let t=e.type;return t==="reasoning"||t==="thinking"}function Zr(e){if(e)return{...e,input_tokens:e.input_tokens??0,output_tokens:e.output_tokens??0,total_tokens:e.total_tokens??0}}function yd(e){if(e!=null&&typeof e=="object"&&!Array.isArray(e))return e;if(typeof e!="string"||e.length===0)return{};try{let t=JSON.parse(e);return t!=null&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}function bd(e){let t=e;if(e.type==="tool_call"||e.type!=="tool_call_chunk"&&e.type!=="tool_use"&&e.type!=="input_json_delta")return e;let r=typeof t.name=="string"?t.name:void 0;if(r==null)return e;let n=t.args??t.input;return{...t,type:"tool_call",name:r,args:yd(n)}}var Rh=class{_buffer;constructor(e){this._buffer=e}get full(){let e=this._buffer;return{async*[Symbol.asyncIterator](){let t="";for await(let r of e.iterate()){let n=Gn(r);n?.type==="text-delta"&&(t+=n.text,yield t)}}}}[Symbol.asyncIterator](){let e=this._buffer;async function*t(){for await(let r of e.iterate()){let n=Gn(r);n?.type==="text-delta"&&(yield n.text)}}return t()}then(e,t){return(async()=>{let r="";for await(let n of this)r+=n;return r})().then(e,t)}},Dh=class{_buffer;constructor(e){this._buffer=e}get full(){let e=this._buffer;return{async*[Symbol.asyncIterator](){let t=[];for await(let r of e.iterate())r.event==="content-block-finish"&&r.content.type==="tool_call"&&(t.push(r.content),yield[...t])}}}[Symbol.asyncIterator](){let e=this._buffer;async function*t(){for await(let r of e.iterate())r.event==="content-block-finish"&&r.content.type==="tool_call"&&(yield r.content)}return t()}then(e,t){return(async()=>{let r=[];for await(let n of this)r.push(n);return r})().then(e,t)}},Lh=class{_buffer;constructor(e){this._buffer=e}get full(){let e=this._buffer;return{async*[Symbol.asyncIterator](){let t="",r=!1;for await(let n of e.iterate())if(n.event==="content-block-start"){if(!ni(n.content)){if(r)return;continue}r=!0;let s=Mh(n.content);if(s==null||s.length===0)continue;t+=s,yield t}else if(n.event==="content-block-delta"){let s=Gn(n);if(s?.type!=="reasoning-delta")continue;r=!0;let i=s.reasoning;if(i==null||i.length===0)continue;t+=i,yield t}else{if(n.event==="content-block-finish"&&ni(n.content))return;if(n.event==="message-finish")return}}}}[Symbol.asyncIterator](){let e=this._buffer;async function*t(){let r=!1;for await(let n of e.iterate())if(n.event==="content-block-start"){if(!ni(n.content)){if(r)return;continue}r=!0;let s=Mh(n.content);s!=null&&s.length>0&&(yield s)}else if(n.event==="content-block-delta"){let s=Gn(n);if(s?.type!=="reasoning-delta")continue;r=!0;let i=s.reasoning;i!=null&&i.length>0&&(yield i)}else{if(n.event==="content-block-finish"&&ni(n.content))return;if(n.event==="message-finish")return}}return t()}then(e,t){return(async()=>{let r="";for await(let n of this)r+=n;return r})().then(e,t)}},Fh=class{_buffer;constructor(e){this._buffer=e}[Symbol.asyncIterator](){let e=this._buffer;async function*t(){for await(let r of e.iterate())if(r.event==="usage"){let n=Zr(r.usage);n&&(yield n)}else if(r.event==="message-start"&&r.usage){let n=Zr(r.usage);n&&(yield n)}else if(r.event==="message-finish"&&r.usage){let n=Zr(r.usage);n&&(yield n)}}return t()}then(e,t){return(async()=>{let r;for await(let n of this)r=n;return r})().then(e,t)}},or=class{_buffer;constructor(e){this._buffer=new gd,this._consume(e)}async _consume(e){try{for await(let t of e)this._buffer.push(t);this._buffer.finish()}catch(t){this._buffer.setError(t instanceof Error?t:new Error(String(t)))}}[Symbol.asyncIterator](){return this._buffer.iterate()}get text(){return new Rh(this._buffer)}get toolCalls(){return new Dh(this._buffer)}get reasoning(){return new Lh(this._buffer)}get usage(){return new Fh(this._buffer)}get output(){return this._assembleMessage()}then(e,t){return this._assembleMessage().then(e,t)}async _assembleMessage(){let e=[],t,r,n={},s;for await(let a of this._buffer.iterate())switch(a.event){case"message-start":t=a.id??t,a.usage&&(r=Zr(a.usage));break;case"content-block-start":e[a.index]=a.content;break;case"content-block-delta":{let o=e[a.index],c=Gn(a);o&&c&&(e[a.index]=_d(o,c));break}case"content-block-finish":e[a.index]=a.content;break;case"usage":r=Zr(a.usage);break;case"message-finish":s=a.reason,a.usage&&(r=Zr(a.usage)),a.responseMetadata&&(n={...n,...a.responseMetadata});break;default:break}let i=e.filter(a=>a!=null).map(bd);return new q({id:t,content:i,usage_metadata:r,response_metadata:{...n,...s?{finish_reason:s}:{},output_version:"v1"}})}};var $h=A({convertChunksToEvents:()=>Wa,finalizeContentBlock:()=>si}),vd={wav:"audio/wav",mp3:"audio/mpeg",flac:"audio/flac",opus:"audio/opus",aac:"audio/aac",pcm16:"audio/pcm"},wd={png:"image/png",jpeg:"image/jpeg",jpg:"image/jpeg",webp:"image/webp",gif:"image/gif"};function jh(e){let t=0;for(let r of e.keys())r>=t&&(t=r+1);return t}function Bh(e){let t=e.additional_kwargs;return t!=null&&typeof t=="object"?t:{}}function Sd(e){let t=Bh(e).tool_outputs;if(!Array.isArray(t))return[];let r=[];for(let n of t){if(n==null||typeof n!="object")continue;let s=n;if(s.type!=="image_generation_call")continue;let i=typeof s.result=="string"?s.result:void 0,a=typeof s.url=="string"?s.url:void 0;if(i==null&&a==null)continue;let o=typeof s.output_format=="string"?s.output_format.toLowerCase():void 0,c=(o!=null?wd[o]:void 0)??"image/png";r.push({type:"image",...typeof s.id=="string"?{id:s.id}:{},...a!=null?{url:a}:{},...i!=null?{data:i}:{},mimeType:c})}return r}function kd(e){let t=Bh(e).audio;if(t==null||typeof t!="object")return;let r=t,n=typeof r.data=="string"?r.data:void 0,s=typeof r.url=="string"?r.url:void 0,i=typeof r.transcript=="string"?r.transcript:void 0;if(n==null&&s==null&&i==null)return;let a=typeof r.mime_type=="string"?r.mime_type:typeof r.mimeType=="string"?r.mimeType:void 0,o=typeof r.format=="string"?r.format.toLowerCase():void 0,c=a??(o!=null?vd[o]:void 0)??(n!=null?"audio/wav":"audio/pcm");return{...typeof r.id=="string"?{id:r.id}:{},...n!=null?{data:n}:{},...s!=null?{url:s}:{},...i!=null?{transcript:i}:{},mimeType:c}}async function*Wa(e,t){let r=new Map,n=!1,s,i,a=new Set;for await(let o of e){t?.signal?.throwIfAborted();let c=o.message,l=!1;if(!n){n=!0;let p={event:"message-start",id:c.id??void 0};me.isInstance(c)&&c.usage_metadata&&(p.usage=c.usage_metadata,s={...c.usage_metadata},l=!0),yield p}let u=c.content;if(typeof u=="string"){if(u!==""){if(!r.has(0)){let d={type:"text",text:""};r.set(0,{type:"text",accumulated:d}),yield{event:"content-block-start",index:0,content:d}}let m=r.get(0);m.accumulated={...m.accumulated,text:(m.accumulated.text??"")+u},yield{event:"content-block-delta",index:0,delta:{type:"text-delta",text:u}}}}else if(Array.isArray(u))for(let p of u){let m=typeof p.index=="number"?p.index:r.size;if(!r.has(m))r.set(m,{type:p.type,accumulated:{...p}}),yield{event:"content-block-start",index:m,content:{...p}};else{let d=r.get(m),y=Ed(p);d.accumulated=Cd(d.accumulated,y),yield{event:"content-block-delta",index:m,delta:y}}}if(me.isInstance(c)&&c.tool_call_chunks&&c.tool_call_chunks.length>0)for(let p of c.tool_call_chunks){let m=typeof p.index=="number"?p.index:r.size;if(!r.has(m)){let y={type:"tool_call_chunk",id:p.id,name:p.name,args:"",index:m};r.set(m,{type:"tool_call_chunk",accumulated:y}),yield{event:"content-block-start",index:m,content:y}}let d=r.get(m).accumulated;p.id!=null&&(d.id=p.id),p.name!=null&&(d.name=p.name),d.args=(d.args??"")+(p.args??""),yield{event:"content-block-delta",index:m,delta:{type:"block-delta",fields:{type:"tool_call_chunk",..."id"in d&&d.id!=null?{id:d.id}:{},..."name"in d&&d.name!=null?{name:d.name}:{},args:d.args}}}}let h=kd(c);if(h!=null){if(i==null){let m=jh(r);i={index:m,id:h.id,mimeType:h.mimeType,transcript:""};let d={type:"audio",...h.id!=null?{id:h.id}:{},...h.url!=null?{url:h.url}:{},data:"",mimeType:h.mimeType};r.set(m,{type:"audio",accumulated:d}),yield{event:"content-block-start",index:m,content:d}}let p=r.get(i.index);if(p!=null){let m=p.accumulated;h.id!=null&&i.id==null&&(i.id=h.id,m.id=h.id),h.transcript!=null&&(i.transcript+=h.transcript,m.transcript=i.transcript,yield{event:"content-block-delta",index:i.index,delta:{type:"block-delta",fields:{type:"audio",transcript:i.transcript}}}),h.data!=null&&h.data.length>0&&(m.data=(m.data??"")+h.data,yield{event:"content-block-delta",index:i.index,delta:{type:"data-delta",data:h.data,encoding:"base64"}})}}for(let p of Sd(c)){let m=p,d=m.id??m.url??(m.data!=null?`${m.data.length}:${m.data.slice(0,32)}`:void 0);if(d!=null&&a.has(d))continue;d!=null&&a.add(d);let y=jh(r);r.set(y,{type:"image",accumulated:p}),yield{event:"content-block-start",index:y,content:p}}if(!l&&me.isInstance(c)&&c.usage_metadata){let p=c.usage_metadata;s?s={input_tokens:s.input_tokens+p.input_tokens,output_tokens:s.output_tokens+p.output_tokens,total_tokens:s.total_tokens+p.total_tokens}:s={...p},yield{event:"usage",usage:{...s}}}}for(let[o,c]of r)yield{event:"content-block-finish",index:o,content:si(c.accumulated)};yield{event:"message-finish",reason:"stop",...s?{usage:s}:{}}}function Cd(e,t){switch(t.type){case"text-delta":return e.type==="text"?{...e,text:(e.text??"")+t.text}:e;case"reasoning-delta":return e.type==="thinking"?{...e,thinking:(e.thinking??"")+t.reasoning}:e.type==="reasoning"?{...e,reasoning:(e.reasoning??"")+t.reasoning}:e;case"data-delta":return{...e,data:(e.data??"")+t.data};case"block-delta":return{...e,...t.fields};default:throw new Error(`Unknown delta type: ${JSON.stringify(t)}`)}}function Ed(e){if(e.type==="text")return{type:"text-delta",text:e.text};if(e.type==="reasoning")return{type:"reasoning-delta",reasoning:e.reasoning};if(e.type==="thinking"&&typeof e.thinking=="string")return{type:"reasoning-delta",reasoning:e.thinking};if(typeof e.data=="string")return{type:"data-delta",data:e.data,encoding:"base64"};if(typeof e.type=="string")return{type:"block-delta",fields:{...e}};throw new Error(`Unsupported content block delta: ${JSON.stringify(e)}`)}function si(e){if(e.type==="tool_call_chunk"){let t=e,r;try{r=JSON.parse(t.args??"{}")}catch{return{type:"invalid_tool_call",id:t.id,name:t.name,args:t.args,error:"Failed to parse tool call arguments as JSON"}}return{type:"tool_call",id:t.id,name:t.name,args:r}}return e}var Vh=e=>e();function Wn(e){let t=e.constructor;return new t({...e,content:e.contentBlocks,response_metadata:{...e.response_metadata,output_version:"v1"}})}var Uh=A({BaseChatModel:()=>cr,SimpleChatModel:()=>Td});function Ka(e){let t=[];for(let r of e){let n=r;if(Array.isArray(r.content))for(let s=0;s<r.content.length;s++){let i=r.content[s];(ws(i)||Ss(i))&&n===r&&(n=new r.constructor({...n,content:[...r.content.slice(0,s),ks(i),...r.content.slice(s+1)]}))}t.push(n)}return t}var cr=class vt extends Ds{lc_namespace=["langchain","chat_models",this._llmType()];disableStreaming=!1;outputVersion;get callKeys(){return[...super.callKeys,"outputVersion"]}constructor(t){super(t),this.outputVersion=Vh(()=>{let r=t.outputVersion??vs("LC_OUTPUT_VERSION");return r&&["v0","v1"].includes(r)?r:"v0"})}_separateRunnableConfigFromCallOptionsCompat(t){let[r,n]=super._separateRunnableConfigFromCallOptions(t);return n.signal=r.signal,[r,n]}async invoke(t,r){let n=vt._convertInputToPromptValue(t);return(await this.generatePrompt([n],r,r?.callbacks)).generations[0][0].message}async*_streamResponseChunks(t,r,n){throw new Error("Not implemented.")}async*_streamChatModelEvents(t,r,n){yield*Wa(this._streamResponseChunks(t,r,n),{signal:r.signal})}streamEvents(t,r,n){if(r?.version==="v1"||r?.version==="v2")return super.streamEvents(t,r,n);let s=vt._convertInputToPromptValue(t).toChatMessages(),[,i]=this._separateRunnableConfigFromCallOptionsCompat(r);return new or(this._streamChatModelEvents(s,i))}streamV2(t,r){return this.streamEvents(t,r)}async*_streamIterator(t,r){if(this._streamResponseChunks===vt.prototype._streamResponseChunks||this.disableStreaming)yield this.invoke(t,r);else{let n=vt._convertInputToPromptValue(t).toChatMessages(),[s,i]=this._separateRunnableConfigFromCallOptionsCompat(r),a={...s.metadata,...this.getLsParamsWithDefaults(i)},o=this.invocationParams(i),c=await De.configure(s.callbacks,this.callbacks,s.tags,this.tags,a,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(o)}),l={options:i,invocation_params:o,batch_size:1},u=i.outputVersion??this.outputVersion,h=await c?.handleChatModelStart(this.toJSON(),[Ka(n)],s.runId,void 0,l,void 0,void 0,s.runName),p,m;try{for await(let d of this._streamResponseChunks(n,i,h?.[0])){if(i.signal?.throwIfAborted(),d.message.id==null){let y=h?.at(0)?.runId;y!=null&&d.message._updateId(`run-${y}`)}d.message.response_metadata={...d.generationInfo,...d.message.response_metadata},u==="v1"?yield Wn(d.message):yield d.message,p?p=p.concat(d):p=d,xn(d.message)&&d.message.usage_metadata!==void 0&&(m={tokenUsage:{promptTokens:d.message.usage_metadata.input_tokens,completionTokens:d.message.usage_metadata.output_tokens,totalTokens:d.message.usage_metadata.total_tokens}})}i.signal?.throwIfAborted()}catch(d){throw await Promise.all((h??[]).map(y=>y?.handleLLMError(d))),d}await Promise.all((h??[]).map(d=>d?.handleLLMEnd({generations:[[p]],llmOutput:m})))}}getLsParams(t){let r=this.getName().startsWith("Chat")?this.getName().replace("Chat",""):this.getName();return{ls_model_type:"chat",ls_stop:t.stop,ls_provider:r}}getLsParamsWithDefaults(t){return{...this.getLsParams(t),ls_integration:"langchain_chat_model"}}async _generateUncached(t,r,n,s){let i=t.map(m=>m.map(de)),a;if(s!==void 0&&s.length===i.length)a=s;else{let m={...n.metadata,...this.getLsParamsWithDefaults(r)},d=this.invocationParams(r),y=await De.configure(n.callbacks,this.callbacks,n.tags,this.tags,m,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(d)}),v={options:r,invocation_params:d,batch_size:1};a=await y?.handleChatModelStart(this.toJSON(),i.map(Ka),n.runId,void 0,v,void 0,void 0,n.runName)}let o=r.outputVersion??this.outputVersion,c=[],l=[],u=!!a?.[0].handlers.find(Sl),h=!!a?.[0].handlers.find(Es);if(u&&!this.disableStreaming&&i.length===1&&(this._streamChatModelEvents!==vt.prototype._streamChatModelEvents||this._streamResponseChunks!==vt.prototype._streamResponseChunks))try{let m=!1,d=a?.[0],y=this._streamChatModelEvents(i[0],r),v=await new or({async*[Symbol.asyncIterator](){for await(let k of y){r.signal?.throwIfAborted(),m=!0;let C=k.event==="message-start"&&k.id==null&&d?.runId!=null?{...k,id:`run-${d.runId}`}:k;await d?.handleChatModelStreamEvent(C),yield C}}});if(r.signal?.throwIfAborted(),!m)throw new Error("Received empty response from chat model call.");if(v.id==null){let k=a?.at(0)?.runId;k!=null&&v._updateId(`run-${k}`)}let b={text:v.text,message:v};c.push([b]);let S=v.usage_metadata!==void 0?{tokenUsage:{promptTokens:v.usage_metadata.input_tokens,completionTokens:v.usage_metadata.output_tokens,totalTokens:v.usage_metadata.total_tokens}}:void 0;await a?.[0].handleLLMEnd({generations:c,llmOutput:S})}catch(m){throw await a?.[0].handleLLMError(m),m}else if(h&&!this.disableStreaming&&i.length===1&&this._streamResponseChunks!==vt.prototype._streamResponseChunks)try{let m=await this._streamResponseChunks(i[0],r,a?.[0]),d,y;for await(let v of m){if(r.signal?.aborted){let b=d?.message;throw new fa("Model invocation was aborted.",b)}if(v.message.id==null){let b=a?.at(0)?.runId;b!=null&&v.message._updateId(`run-${b}`)}d===void 0?d=v:d=Ot(d,v),xn(v.message)&&v.message.usage_metadata!==void 0&&(y={tokenUsage:{promptTokens:v.message.usage_metadata.input_tokens,completionTokens:v.message.usage_metadata.output_tokens,totalTokens:v.message.usage_metadata.total_tokens}})}if(r.signal?.aborted){let v=d?.message;throw new fa("Model invocation was aborted.",v)}if(d===void 0)throw new Error("Received empty response from chat model call.");o==="v1"&&(d.message=Wn(d.message)),c.push([d]),await a?.[0].handleLLMEnd({generations:c,llmOutput:y})}catch(m){throw await a?.[0].handleLLMError(m),m}else{let m=await Promise.allSettled(i.map(async(d,y)=>{let v=await this._generate(d,{...r,promptIndex:y},a?.[y]);if(o==="v1")for(let b of v.generations)b.message=Wn(b.message);return v}));await Promise.all(m.map(async(d,y)=>{if(d.status==="fulfilled"){let v=d.value;for(let b of v.generations){if(b.message.id==null){let S=a?.at(0)?.runId;S!=null&&b.message._updateId(`run-${S}`)}b.message.response_metadata={...b.generationInfo,...b.message.response_metadata}}return v.generations.length===1&&(v.generations[0].message.response_metadata={...v.llmOutput,...v.generations[0].message.response_metadata}),c[y]=v.generations,l[y]=v.llmOutput,a?.[y]?.handleLLMEnd({generations:[v.generations],llmOutput:v.llmOutput})}else return await a?.[y]?.handleLLMError(d.reason),Promise.reject(d.reason)}))}let p={generations:c,llmOutput:l.length?this._combineLLMOutput?.(...l):void 0};return Object.defineProperty(p,Gr,{value:a?{runIds:a?.map(m=>m.runId)}:void 0,configurable:!0}),p}async _generateCached({messages:t,cache:r,llmStringKey:n,parsedOptions:s,handledOptions:i}){let a=t.map(b=>b.map(de)),o={...i.metadata,...this.getLsParamsWithDefaults(s)},c=this.invocationParams(s),l=await De.configure(i.callbacks,this.callbacks,i.tags,this.tags,o,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(c)}),u={options:s,invocation_params:c,batch_size:1},h=await l?.handleChatModelStart(this.toJSON(),a.map(Ka),i.runId,void 0,u,void 0,void 0,i.runName),p=[],m=(await Promise.allSettled(a.map(async(b,S)=>{let k=vt._convertInputToPromptValue(b).toString(),C=await r.lookup(k,n);return C==null&&p.push(S),C}))).map((b,S)=>({result:b,runManager:h?.[S]})).filter(({result:b})=>b.status==="fulfilled"&&b.value!=null||b.status==="rejected"),d=s.outputVersion??this.outputVersion,y=[];await Promise.all(m.map(async({result:b,runManager:S},k)=>{if(b.status==="fulfilled"){let C=b.value;return y[k]=C.map(T=>("message"in T&&ee(T.message)&&Ur(T.message)&&(T.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0},d==="v1"&&(T.message=Wn(T.message))),T.generationInfo={...T.generationInfo,tokenUsage:{}},T)),C.length&&await S?.handleLLMNewToken(C[0].text),S?.handleLLMEnd({generations:[C]},void 0,void 0,void 0,{cached:!0})}else return await S?.handleLLMError(b.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(b.reason)}));let v={generations:y,missingPromptIndices:p,startedRunManagers:h};return Object.defineProperty(v,Gr,{value:h?{runIds:h?.map(b=>b.runId)}:void 0,configurable:!0}),v}async generate(t,r,n){let s;Array.isArray(r)?s={stop:r}:s=r;let i=t.map(d=>d.map(de)),[a,o]=this._separateRunnableConfigFromCallOptionsCompat(s);if(a.callbacks=a.callbacks??n,!this.cache)return this._generateUncached(i,o,a);let{cache:c}=this,l=this._getSerializedCacheKeyParametersForCall(o),{generations:u,missingPromptIndices:h,startedRunManagers:p}=await this._generateCached({messages:i,cache:c,llmStringKey:l,parsedOptions:o,handledOptions:a}),m={};if(h.length>0){let d=await this._generateUncached(h.map(y=>i[y]),o,a,p!==void 0?h.map(y=>p?.[y]):void 0);await Promise.all(d.generations.map(async(y,v)=>{let b=h[v];u[b]=y;let S=vt._convertInputToPromptValue(i[b]).toString();return c.update(S,l,y)})),m=d.llmOutput??{}}return{generations:u,llmOutput:m}}invocationParams(t){return{}}_modelType(){return"base_chat_model"}async generatePrompt(t,r,n){let s=t.map(i=>i.toChatMessages());return this.generate(s,r,n)}withStructuredOutput(t,r){if(typeof this.bindTools!="function")throw new Error('Chat model must implement ".bindTools()" to use withStructuredOutput.');if(r?.strict)throw new Error('"strict" mode is not supported for this model by default.');let n=t,s=r?.name,i=Cr(n)??"A function available to call.",a=r?.method,o=r?.includeRaw;if(a==="jsonMode")throw new Error('Base withStructuredOutput implementation only supports "functionCalling" as a method.');let c=s??"extract";!qt(n)&&!Wr(n)&&"name"in n&&(c=n.name);let l=qt(n)||Wr(n)?ve(n):n,u=[{type:"function",function:{name:c,description:i,parameters:l}}];return Ga(this.bindTools(u),Fe.from(h=>{if(!me.isInstance(h))throw new Error("Input is not an AIMessageChunk.");if(!h.tool_calls||h.tool_calls.length===0)throw new Error("No tool calls found in the response.");let p=h.tool_calls.find(m=>m.name===c);if(!p)throw new Error(`No tool call found with name ${c}.`);return p.args}),o,o?"StructuredOutputRunnable":"StructuredOutput")}},Td=class extends cr{async _generate(e,t,r){let n=new q(await this._call(e,t,r));if(typeof n.content!="string")throw new Error("Cannot generate with a simple chat model when output is not a string.");return{generations:[{text:n.content,message:n}]}}};var Hh=A({convertOpenAICompletionsStream:()=>xd});async function*xd(e,t={}){let r=t.streamUsage??!0,n=t.provider??"openai",s=t.mapChunk,i=new Map,a=new Map,o=0,c=!1,l,u,h,p=!1,m=(d,y)=>{let v=a.get(d);if(v!==void 0)return{index:v,isNew:!1};let b=o++;return a.set(d,b),i.set(b,{...y}),{index:b,isNew:!0}};for await(let d of e){s&&(d=s(d)),c||(c=!0,yield{event:"message-start",id:d.id}),!p&&(d.model||d.service_tier)&&(p=!0,yield{event:"provider",provider:n,name:"stream_metadata",payload:{model:d.model,service_tier:d.service_tier}}),d.usage&&r&&(l=Nd(d.usage),yield{event:"usage",usage:l});let y=d.x_groq?.usage;y&&r&&(l=Ad(y),yield{event:"usage",usage:l});let v=d.choices?.[0];if(!v)continue;v.finish_reason!=null&&(u=Od(v.finish_reason),h=Md(d,v));let{delta:b}=v;if(!b)continue;let S=Id(b);if(S){let{index:k,isNew:C}=m("reasoning",{type:"reasoning",reasoning:""});C&&(yield{event:"content-block-start",index:k,content:{type:"reasoning",reasoning:""}});let T=i.get(k);T.reasoning=(T.reasoning??"")+S,yield{event:"content-block-delta",index:k,delta:{type:"reasoning-delta",reasoning:S}}}if(b.content){let{index:k,isNew:C}=m("text",{type:"text",text:""});C&&(yield{event:"content-block-start",index:k,content:{type:"text",text:""}});let T=i.get(k);T.text=(T.text??"")+b.content,yield{event:"content-block-delta",index:k,delta:{type:"text-delta",text:b.content}}}if(Array.isArray(b.tool_calls))for(let k of b.tool_calls){let C=k.index??0,{index:T,isNew:O}=m(`tool:${C}`,{type:"tool_call_chunk",id:k.id,name:k.function?.name,args:"",index:C});O&&(yield{event:"content-block-start",index:T,content:{type:"tool_call_chunk",id:k.id,name:k.function?.name,args:"",index:C}});let x=i.get(T);k.id!=null&&(x.id=k.id),k.function?.name!=null&&(x.name=k.function.name);let _=k.function?.arguments??"";x.args=(x.args??"")+_,yield{event:"content-block-delta",index:T,delta:{type:"block-delta",fields:{type:"tool_call_chunk",...x.id!=null?{id:x.id}:{},...x.name!=null?{name:x.name}:{},args:x.args}}}}if(b.audio){let{index:k,isNew:C}=m("audio",{type:"audio",id:b.audio.id,data:"",mimeType:"audio/pcm",transcript:b.audio.transcript??""});C&&(yield{event:"content-block-start",index:k,content:{type:"audio",id:b.audio.id,data:"",mimeType:"audio/pcm",transcript:b.audio.transcript??""}});let T=i.get(k);b.audio.transcript&&(T.transcript=(T.transcript??"")+b.audio.transcript,yield{event:"content-block-delta",index:k,delta:{type:"block-delta",fields:{type:"audio",transcript:T.transcript}}}),b.audio.data&&(T.data=(T.data??"")+b.audio.data,yield{event:"content-block-delta",index:k,delta:{type:"data-delta",data:b.audio.data,encoding:"base64"}})}b.function_call&&(yield{event:"provider",provider:n,name:"function_call",payload:b.function_call}),v.logprobs&&(yield{event:"provider",provider:n,name:"logprobs",payload:v.logprobs})}for(let[d,y]of i)yield{event:"content-block-finish",index:d,content:si(y)};yield{event:"message-finish",reason:u,...l?{usage:l}:{},...h?{responseMetadata:h}:{}}}function Id(e){let t=e.reasoning_content??e.reasoning;return typeof t=="string"&&t.length>0?t:void 0}function Ad(e){return{input_tokens:e.prompt_tokens??0,output_tokens:e.completion_tokens??0,total_tokens:e.total_tokens??0}}function Od(e){switch(e){case"stop":return"stop";case"length":case"max_tokens":return"length";case"tool_calls":case"function_call":return"tool_use";case"content_filter":return"content_filter";default:return"stop"}}function Nd(e){let t={...e.prompt_tokens_details?.audio_tokens!=null&&{audio:e.prompt_tokens_details.audio_tokens},...e.prompt_tokens_details?.cached_tokens!=null&&{cache_read:e.prompt_tokens_details.cached_tokens}},r={...e.completion_tokens_details?.audio_tokens!=null&&{audio:e.completion_tokens_details.audio_tokens},...e.completion_tokens_details?.reasoning_tokens!=null&&{reasoning:e.completion_tokens_details.reasoning_tokens}};return{input_tokens:e.prompt_tokens??0,output_tokens:e.completion_tokens??0,total_tokens:e.total_tokens??0,...Object.keys(t).length>0&&{input_token_details:t},...Object.keys(r).length>0&&{output_token_details:r}}}function Md(e,t){return{model_provider:"openai",model_name:e.model,system_fingerprint:e.system_fingerprint,service_tier:e.service_tier,finish_reason:t.finish_reason,...e.usage?{usage:e.usage}:{}}}var Gh=A({});var Wh=A({BaseLLM:()=>Kh,LLM:()=>ii}),Kh=class Kn extends Ds{lc_namespace=["langchain","llms",this._llmType()];async invoke(t,r){let n=Kn._convertInputToPromptValue(t);return(await this.generatePrompt([n],r,r?.callbacks)).generations[0][0].text}async*_streamResponseChunks(t,r,n){throw new Error("Not implemented.")}_separateRunnableConfigFromCallOptionsCompat(t){let[r,n]=super._separateRunnableConfigFromCallOptions(t);return n.signal=r.signal,[r,n]}async*_streamIterator(t,r){if(this._streamResponseChunks===Kn.prototype._streamResponseChunks)yield this.invoke(t,r);else{let n=Kn._convertInputToPromptValue(t),[s,i]=this._separateRunnableConfigFromCallOptionsCompat(r),a=this.invocationParams(i),o=await De.configure(s.callbacks,this.callbacks,s.tags,this.tags,s.metadata,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(a)}),c={options:i,invocation_params:a,batch_size:1},l=await o?.handleLLMStart(this.toJSON(),[n.toString()],s.runId,void 0,c,void 0,void 0,s.runName),u=new xs({text:""});try{for await(let h of this._streamResponseChunks(n.toString(),i,l?.[0]))u?u=u.concat(h):u=h,typeof h.text=="string"&&(yield h.text)}catch(h){throw await Promise.all((l??[]).map(p=>p?.handleLLMError(h))),h}await Promise.all((l??[]).map(h=>h?.handleLLMEnd({generations:[[u]]})))}}async generatePrompt(t,r,n){let s=t.map(i=>i.toString());return this.generate(s,r,n)}invocationParams(t){return{}}_flattenLLMResult(t){let r=[];for(let n=0;n<t.generations.length;n+=1){let s=t.generations[n];if(n===0)r.push({generations:[s],llmOutput:t.llmOutput});else{let i=t.llmOutput?{...t.llmOutput,tokenUsage:{}}:void 0;r.push({generations:[s],llmOutput:i})}}return r}async _generateUncached(t,r,n,s){let i;if(s!==void 0&&s.length===t.length)i=s;else{let l=this.invocationParams(r),u=await De.configure(n.callbacks,this.callbacks,n.tags,this.tags,n.metadata,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(l)}),h={options:r,invocation_params:l,batch_size:t.length};i=await u?.handleLLMStart(this.toJSON(),t,n.runId,void 0,h,void 0,void 0,n?.runName)}let a=!!i?.[0].handlers.find(Es),o;if(a&&t.length===1&&this._streamResponseChunks!==Kn.prototype._streamResponseChunks)try{let l=await this._streamResponseChunks(t[0],r,i?.[0]),u;for await(let h of l)u===void 0?u=h:u=Ot(u,h);if(u===void 0)throw new Error("Received empty response from chat model call.");o={generations:[[u]],llmOutput:{}},await i?.[0].handleLLMEnd(o)}catch(l){throw await i?.[0].handleLLMError(l),l}else{try{o=await this._generate(t,r,i?.[0])}catch(u){throw await Promise.all((i??[]).map(h=>h?.handleLLMError(u))),u}let l=this._flattenLLMResult(o);await Promise.all((i??[]).map((u,h)=>u?.handleLLMEnd(l[h])))}let c=i?.map(l=>l.runId)||void 0;return Object.defineProperty(o,Gr,{value:c?{runIds:c}:void 0,configurable:!0}),o}async _generateCached({prompts:t,cache:r,llmStringKey:n,parsedOptions:s,handledOptions:i,runId:a}){let o=this.invocationParams(s),c=await De.configure(i.callbacks,this.callbacks,i.tags,this.tags,i.metadata,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(o)}),l={options:s,invocation_params:o,batch_size:t.length},u=await c?.handleLLMStart(this.toJSON(),t,a,void 0,l,void 0,void 0,i?.runName),h=[],p=(await Promise.allSettled(t.map(async(y,v)=>{let b=await r.lookup(y,n);return b==null&&h.push(v),b}))).map((y,v)=>({result:y,runManager:u?.[v]})).filter(({result:y})=>y.status==="fulfilled"&&y.value!=null||y.status==="rejected"),m=[];await Promise.all(p.map(async({result:y,runManager:v},b)=>{if(y.status==="fulfilled"){let S=y.value;return m[b]=S.map(k=>(k.generationInfo={...k.generationInfo,tokenUsage:{}},k)),S.length&&await v?.handleLLMNewToken(S[0].text),v?.handleLLMEnd({generations:[S]},void 0,void 0,void 0,{cached:!0})}else return await v?.handleLLMError(y.reason,void 0,void 0,void 0,{cached:!0}),Promise.reject(y.reason)}));let d={generations:m,missingPromptIndices:h,startedRunManagers:u};return Object.defineProperty(d,Gr,{value:u?{runIds:u?.map(y=>y.runId)}:void 0,configurable:!0}),d}async generate(t,r,n){if(!Array.isArray(t))throw new Error("Argument 'prompts' is expected to be a string[]");let s;Array.isArray(r)?s={stop:r}:s=r;let[i,a]=this._separateRunnableConfigFromCallOptionsCompat(s);if(i.callbacks=i.callbacks??n,!this.cache)return this._generateUncached(t,a,i);let{cache:o}=this,c=this._getSerializedCacheKeyParametersForCall(a),{generations:l,missingPromptIndices:u,startedRunManagers:h}=await this._generateCached({prompts:t,cache:o,llmStringKey:c,parsedOptions:a,handledOptions:i,runId:i.runId}),p={};if(u.length>0){let m=await this._generateUncached(u.map(d=>t[d]),a,i,h!==void 0?u.map(d=>h?.[d]):void 0);await Promise.all(m.generations.map(async(d,y)=>{let v=u[y];return l[v]=d,o.update(t[v],c,d)})),p=m.llmOutput??{}}return{generations:l,llmOutput:p}}_identifyingParams(){return{}}_modelType(){return"base_llm"}},ii=class extends Kh{async _generate(e,t,r){return{generations:await Promise.all(e.map((n,s)=>this._call(n,{...t,promptIndex:s},r).then(i=>[{text:i}])))}}};var zh=A({});var qh=A({BaseMemory:()=>Pd,getInputValue:()=>Rd,getOutputValue:()=>Dd,getPromptInputKey:()=>Ld}),Pd=class{},Jh=(e,t)=>{if(t!==void 0)return e[t];let r=Object.keys(e);if(r.length===1)return e[r[0]]},Rd=(e,t)=>{let r=Jh(e,t);if(!r)throw new Error(`input values have ${Object.keys(e).length} keys, you must specify an input key or pass only 1 key as input`);return r},Dd=(e,t)=>{let r=Jh(e,t);if(!r&&r!=="")throw new Error(`output values have ${Object.keys(e).length} keys, you must specify an output key or pass only 1 key as output`);return r};function Ld(e,t){let r=Object.keys(e).filter(n=>!t.includes(n)&&n!=="stop");if(r.length!==1)throw new Error(`One input key expected, but got ${r.length}`);return r[0]}var za=class extends Yr{static lc_name(){return"OutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;argsOnly=!0;constructor(e){super(),this.argsOnly=e?.argsOnly??this.argsOnly}async parseResult(e){if("message"in e[0]){let t=e[0].message.additional_kwargs.function_call;if(!t)throw new Error(`No function_call in message ${JSON.stringify(e)}`);if(!t.arguments)throw new Error(`No arguments in function_call ${JSON.stringify(e)}`);return this.argsOnly?t.arguments:JSON.stringify(t)}else throw new Error(`No message in generations ${JSON.stringify(e)}`)}},qa=class extends bt{static lc_name(){return"JsonOutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;outputParser;argsOnly=!0;constructor(e){super(e),this.argsOnly=e?.argsOnly??this.argsOnly,this.outputParser=new za(e)}_diff(e,t){if(t)return zt(e??{},t)}async parsePartialResult(e){let t=e[0];if(!t.message)return;let{message:r}=t,n=r.additional_kwargs.function_call;if(n)return this.argsOnly?vr(n.arguments):{...n,arguments:vr(n.arguments)}}async parseResult(e){let t=await this.outputParser.parseResult(e);if(!t)throw new Error(`No result from "OutputFunctionsParser" ${JSON.stringify(e)}`);return this.parse(t)}async parse(e){let t=JSON.parse(e);return this.argsOnly||(t.arguments=JSON.parse(t.arguments)),t}getFormatInstructions(){return""}},Yh=class extends Yr{static lc_name(){return"JsonKeyOutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;outputParser=new qa;attrName;get lc_aliases(){return{attrName:"key_name"}}constructor(e){super(e),this.attrName=e.attrName}async parseResult(e){return(await this.outputParser.parseResult(e))[this.attrName]}};var Xh=A({JsonKeyOutputFunctionsParser:()=>Yh,JsonOutputFunctionsParser:()=>qa,OutputFunctionsParser:()=>za});var Zh=A({JsonOutputKeyToolsParser:()=>ri,JsonOutputToolsParser:()=>Ha,convertLangChainToolCallToOpenAI:()=>Ah,makeInvalidToolCall:()=>Oh,parseToolCall:()=>Ua});var wt=class extends H{lc_serializable=!0;lc_namespace=["langchain_core","prompts",this._getPromptType()];get lc_attributes(){return{partialVariables:void 0}}inputVariables;outputParser;partialVariables;metadata;tags;constructor(e){super(e);let{inputVariables:t}=e;if(t.includes("stop"))throw new Error("Cannot have an input variable named 'stop', as it is used internally, please rename.");Object.assign(this,e)}async mergePartialAndUserVariables(e){let t=this.partialVariables??{},r={};for(let[n,s]of Object.entries(t))typeof s=="string"?r[n]=s:r[n]=await s();return{...r,...e}}async invoke(e,t){let r={...this.metadata,...t?.metadata},n=[...this.tags??[],...t?.tags??[]];return this._callWithConfig(s=>this.formatPromptValue(s),e,{...t,tags:n,metadata:r,runType:"prompt"})}};var Dt=class extends wt{async formatPromptValue(e){return new du(await this.format(e))}};var Fd=Object.prototype.toString,en=Array.isArray||function(t){return Fd.call(t)==="[object Array]"};function Ya(e){return typeof e=="function"}function jd(e){return en(e)?"array":typeof e}function Ja(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Qh(e,t){return e!=null&&typeof e=="object"&&t in e}function $d(e,t){return e!=null&&typeof e!="object"&&e.hasOwnProperty&&e.hasOwnProperty(t)}var Bd=RegExp.prototype.test;function Vd(e,t){return Bd.call(e,t)}var Ud=/\S/;function Hd(e){return!Vd(Ud,e)}var Gd={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function Wd(e){return String(e).replace(/[&<>"'`=\/]/g,function(r){return Gd[r]})}var Kd=/\s*/,zd=/\s+/,ep=/\s*=/,qd=/\s*\}/,Jd=/#|\^|\/|>|\{|&|=|!/;function Yd(e,t){if(!e)return[];var r=!1,n=[],s=[],i=[],a=!1,o=!1,c="",l=0;function u(){if(a&&!o)for(;i.length;)delete s[i.pop()];else i=[];a=!1,o=!1}var h,p,m;function d(_){if(typeof _=="string"&&(_=_.split(zd,2)),!en(_)||_.length!==2)throw new Error("Invalid tags: "+_);h=new RegExp(Ja(_[0])+"\\s*"),p=new RegExp("\\s*"+Ja(_[1])),m=new RegExp("\\s*"+Ja("}"+_[1]))}d(t||ze.tags);for(var y=new qn(e),v,b,S,k,C,T;!y.eos();){if(v=y.pos,S=y.scanUntil(h),S)for(var O=0,x=S.length;O<x;++O)k=S.charAt(O),Hd(k)?(i.push(s.length),c+=k):(o=!0,r=!0,c+=" "),s.push(["text",k,v,v+1]),v+=1,k===`
|
|
79
|
+
`&&(u(),c="",l=0,r=!1);if(!y.scan(h))break;if(a=!0,b=y.scan(Jd)||"name",y.scan(Kd),b==="="?(S=y.scanUntil(ep),y.scan(ep),y.scanUntil(p)):b==="{"?(S=y.scanUntil(m),y.scan(qd),y.scanUntil(p),b="&"):S=y.scanUntil(p),!y.scan(p))throw new Error("Unclosed tag at "+y.pos);if(b==">"?C=[b,S,v,y.pos,c,l,r]:C=[b,S,v,y.pos],l++,s.push(C),b==="#"||b==="^")n.push(C);else if(b==="/"){if(T=n.pop(),!T)throw new Error('Unopened section "'+S+'" at '+v);if(T[1]!==S)throw new Error('Unclosed section "'+T[1]+'" at '+v)}else b==="name"||b==="{"||b==="&"?o=!0:b==="="&&d(S)}if(u(),T=n.pop(),T)throw new Error('Unclosed section "'+T[1]+'" at '+y.pos);return Zd(Xd(s))}function Xd(e){for(var t=[],r,n,s=0,i=e.length;s<i;++s)r=e[s],r&&(r[0]==="text"&&n&&n[0]==="text"?(n[1]+=r[1],n[3]=r[3]):(t.push(r),n=r));return t}function Zd(e){for(var t=[],r=t,n=[],s,i,a=0,o=e.length;a<o;++a)switch(s=e[a],s[0]){case"#":case"^":r.push(s),n.push(s),r=s[4]=[];break;case"/":i=n.pop(),i[5]=s[2],r=n.length>0?n[n.length-1][4]:t;break;default:r.push(s)}return t}function qn(e){this.string=e,this.tail=e,this.pos=0}qn.prototype.eos=function(){return this.tail===""};qn.prototype.scan=function(t){var r=this.tail.match(t);if(!r||r.index!==0)return"";var n=r[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n};qn.prototype.scanUntil=function(t){var r=this.tail.search(t),n;switch(r){case-1:n=this.tail,this.tail="";break;case 0:n="";break;default:n=this.tail.substring(0,r),this.tail=this.tail.substring(r)}return this.pos+=n.length,n};function Qr(e,t){this.view=e,this.cache={".":this.view},this.parent=t}Qr.prototype.push=function(t){return new Qr(t,this)};Qr.prototype.lookup=function(t){var r=this.cache,n;if(r.hasOwnProperty(t))n=r[t];else{for(var s=this,i,a,o,c=!1;s;){if(t.indexOf(".")>0)for(i=s.view,a=t.split("."),o=0;i!=null&&o<a.length;)o===a.length-1&&(c=Qh(i,a[o])||$d(i,a[o])),i=i[a[o++]];else i=s.view[t],c=Qh(s.view,t);if(c){n=i;break}s=s.parent}r[t]=n}return Ya(n)&&(n=n.call(this.view)),n};function Pe(){this.templateCache={_cache:{},set:function(t,r){this._cache[t]=r},get:function(t){return this._cache[t]},clear:function(){this._cache={}}}}Pe.prototype.clearCache=function(){typeof this.templateCache<"u"&&this.templateCache.clear()};Pe.prototype.parse=function(t,r){var n=this.templateCache,s=t+":"+(r||ze.tags).join(":"),i=typeof n<"u",a=i?n.get(s):void 0;return a==null&&(a=Yd(t,r),i&&n.set(s,a)),a};Pe.prototype.render=function(t,r,n,s){var i=this.getConfigTags(s),a=this.parse(t,i),o=r instanceof Qr?r:new Qr(r,void 0);return this.renderTokens(a,o,n,t,s)};Pe.prototype.renderTokens=function(t,r,n,s,i){for(var a="",o,c,l,u=0,h=t.length;u<h;++u)l=void 0,o=t[u],c=o[0],c==="#"?l=this.renderSection(o,r,n,s,i):c==="^"?l=this.renderInverted(o,r,n,s,i):c===">"?l=this.renderPartial(o,r,n,i):c==="&"?l=this.unescapedValue(o,r):c==="name"?l=this.escapedValue(o,r,i):c==="text"&&(l=this.rawValue(o)),l!==void 0&&(a+=l);return a};Pe.prototype.renderSection=function(t,r,n,s,i){var a=this,o="",c=r.lookup(t[1]);function l(p){return a.render(p,r,n,i)}if(c){if(en(c))for(var u=0,h=c.length;u<h;++u)o+=this.renderTokens(t[4],r.push(c[u]),n,s,i);else if(typeof c=="object"||typeof c=="string"||typeof c=="number")o+=this.renderTokens(t[4],r.push(c),n,s,i);else if(Ya(c)){if(typeof s!="string")throw new Error("Cannot use higher-order sections without the original template");c=c.call(r.view,s.slice(t[3],t[5]),l),c!=null&&(o+=c)}else o+=this.renderTokens(t[4],r,n,s,i);return o}};Pe.prototype.renderInverted=function(t,r,n,s,i){var a=r.lookup(t[1]);if(!a||en(a)&&a.length===0)return this.renderTokens(t[4],r,n,s,i)};Pe.prototype.indentPartial=function(t,r,n){for(var s=r.replace(/[^ \t]/g,""),i=t.split(`
|
|
80
|
+
`),a=0;a<i.length;a++)i[a].length&&(a>0||!n)&&(i[a]=s+i[a]);return i.join(`
|
|
81
|
+
`)};Pe.prototype.renderPartial=function(t,r,n,s){if(n){var i=this.getConfigTags(s),a=Ya(n)?n(t[1]):n[t[1]];if(a!=null){var o=t[6],c=t[5],l=t[4],u=a;c==0&&l&&(u=this.indentPartial(a,l,o));var h=this.parse(u,i);return this.renderTokens(h,r,n,u,s)}}};Pe.prototype.unescapedValue=function(t,r){var n=r.lookup(t[1]);if(n!=null)return n};Pe.prototype.escapedValue=function(t,r,n){var s=this.getConfigEscape(n)||ze.escape,i=r.lookup(t[1]);if(i!=null)return typeof i=="number"&&s===ze.escape?String(i):s(i)};Pe.prototype.rawValue=function(t){return t[1]};Pe.prototype.getConfigTags=function(t){return en(t)?t:t&&typeof t=="object"?t.tags:void 0};Pe.prototype.getConfigEscape=function(t){if(t&&typeof t=="object"&&!en(t))return t.escape};var ze={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(e){zn.templateCache=e},get templateCache(){return zn.templateCache}},zn=new Pe;ze.clearCache=function(){return zn.clearCache()};ze.parse=function(t,r){return zn.parse(t,r)};ze.render=function(t,r,n,s){if(typeof t!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+jd(t)+'" was given as the first argument for mustache#render(template, view, partials)');return zn.render(t,r,n,s)};ze.escape=Wd;ze.Scanner=qn;ze.Context=Qr;ze.Writer=Pe;var ai=ze;function tp(){ai.escape=e=>e}var Pr=e=>{let t=e.split(""),r=[],n=(i,a)=>{for(let o=a;o<t.length;o+=1)if(i.includes(t[o]))return o;return-1},s=0;for(;s<t.length;)if(t[s]==="{"&&s+1<t.length&&t[s+1]==="{")r.push({type:"literal",text:"{"}),s+=2;else if(t[s]==="}"&&s+1<t.length&&t[s+1]==="}")r.push({type:"literal",text:"}"}),s+=2;else if(t[s]==="{"){let i=n("}",s);if(i<0)throw new Error("Unclosed '{' in template.");r.push({type:"variable",name:t.slice(s+1,i).join("")}),s=i+1}else{if(t[s]==="}")throw new Error("Single '}' in template.");{let i=n("{}",s),a=(i<0?t.slice(s):t.slice(s,i)).join("");r.push({type:"literal",text:a}),s=i<0?t.length:i}}return r},rp=(e,t=[])=>{let r=[];for(let n of e)if(n[0]==="name"){let s=n[1].includes(".")?n[1].split(".")[0]:n[1];r.push({type:"variable",name:s})}else if(["#","&","^",">"].includes(n[0])){if(r.push({type:"variable",name:n[1]}),n[0]==="#"&&n.length>4&&Array.isArray(n[4])){let s=[...t,n[1]],i=rp(n[4],s);r.push(...i)}}else r.push({type:"literal",text:n[1]});return r},tn=e=>(tp(),rp(ai.parse(e))),Xa=(e,t)=>Pr(e).reduce((r,n)=>{if(n.type==="variable"){if(n.name in t)return r+(typeof t[n.name]=="string"?t[n.name]:JSON.stringify(t[n.name]));throw new Error(`(f-string) Missing value for input ${n.name}`)}return r+n.text},""),Za=(e,t)=>(tp(),ai.render(e,t)),Jn={"f-string":Xa,mustache:Za},Qa={"f-string":Pr,mustache:tn},Ee=(e,t,r)=>{try{return Jn[t](e,r)}catch(n){throw Vr(n,"INVALID_PROMPT_INPUT")}},Rr=(e,t)=>Qa[t](e),Lt=(e,t,r)=>{if(!(t in Jn))throw new Error(`Invalid template format. Got \`${t}\`;
|
|
82
|
+
should be one of ${Object.keys(Jn)}`);try{let n=Object.fromEntries(r.map(s=>[s,"foo"]));Array.isArray(e)?e.forEach(s=>{if(s.type==="text"&&"text"in s&&typeof s.text=="string")Ee(s.text,t,n);else if(s.type==="image_url"){if(typeof s.image_url=="string")Ee(s.image_url,t,n);else if(typeof s.image_url=="object"&&s.image_url!==null&&"url"in s.image_url&&typeof s.image_url.url=="string"){let i=s.image_url.url;Ee(i,t,n)}}else throw new Error(`Invalid message template received. ${JSON.stringify(s,null,2)}`)}):Ee(e,t,n)}catch(n){throw new Error(`Invalid prompt schema: ${n.message}`)}};var nt=class Yn extends Dt{static lc_name(){return"PromptTemplate"}template;templateFormat="f-string";validateTemplate=!0;additionalContentFields;constructor(t){if(super(t),t.templateFormat==="mustache"&&t.validateTemplate===void 0&&(this.validateTemplate=!1),Object.assign(this,t),this.validateTemplate){if(this.templateFormat==="mustache")throw new Error("Mustache templates cannot be validated.");let r=this.inputVariables;this.partialVariables&&(r=r.concat(Object.keys(this.partialVariables))),Lt(this.template,this.templateFormat,r)}}_getPromptType(){return"prompt"}async format(t){let r=await this.mergePartialAndUserVariables(t);return Ee(this.template,this.templateFormat,r)}static fromExamples(t,r,n,s=`
|
|
83
|
+
|
|
84
|
+
`,i=""){return new Yn({inputVariables:n,template:[i,...t,r].join(s)})}static fromTemplate(t,r){let{templateFormat:n="f-string",...s}=r??{},i=new Set;return Rr(t,n).forEach(a=>{a.type==="variable"&&i.add(a.name)}),new Yn({inputVariables:[...i],templateFormat:n,template:t,...s})}async partial(t){let r=this.inputVariables.filter(s=>!(s in t)),n={...this.partialVariables??{},...t};return new Yn({...this,inputVariables:r,partialVariables:n})}serialize(){if(this.outputParser!==void 0)throw new Error("Cannot serialize a prompt template with an output parser");return{_type:this._getPromptType(),input_variables:this.inputVariables,template:this.template,template_format:this.templateFormat}}static async deserialize(t){if(!t.template)throw new Error("Prompt template must have a template");return new Yn({inputVariables:t.input_variables,template:t.template,templateFormat:t.template_format})}};var rn=class np extends wt{static lc_name(){return"ImagePromptTemplate"}lc_namespace=["langchain_core","prompts","image"];template;templateFormat="f-string";validateTemplate=!0;additionalContentFields;constructor(t){if(super(t),this.template=t.template,this.templateFormat=t.templateFormat??this.templateFormat,this.validateTemplate=t.validateTemplate??this.validateTemplate,this.additionalContentFields=t.additionalContentFields,this.validateTemplate){let r=this.inputVariables;this.partialVariables&&(r=r.concat(Object.keys(this.partialVariables))),Lt([{type:"image_url",image_url:this.template}],this.templateFormat,r)}}_getPromptType(){return"prompt"}async partial(t){let r=this.inputVariables.filter(s=>!(s in t)),n={...this.partialVariables??{},...t};return new np({...this,inputVariables:r,partialVariables:n})}async format(t){let r={};for(let[a,o]of Object.entries(this.template))typeof o=="string"?r[a]=Ee(o,this.templateFormat,t):r[a]=o;let n=t.url||r.url,s=t.detail||r.detail;if(!n)throw new Error("Must provide either an image URL.");if(typeof n!="string")throw new Error("url must be a string.");let i={url:n};return s&&(i.detail=s),i}async formatPromptValue(t){return new _u(await this.format(t))}};var Xn=class extends H{lc_namespace=["langchain_core","prompts","dict"];lc_serializable=!0;template;templateFormat;inputVariables;static lc_name(){return"DictPromptTemplate"}constructor(e){let t=e.templateFormat??"f-string",r=eo(e.template,t);super({inputVariables:r,...e}),this.template=e.template,this.templateFormat=t,this.inputVariables=r}async format(e){return to(this.template,e,this.templateFormat)}async invoke(e){return await this._callWithConfig(this.format.bind(this),e,{runType:"prompt"})}};function eo(e,t){let r=[];for(let n of Object.values(e))if(typeof n=="string")Rr(n,t).forEach(s=>{s.type==="variable"&&r.push(s.name)});else if(Array.isArray(n))for(let s of n)typeof s=="string"?Rr(s,t).forEach(i=>{i.type==="variable"&&r.push(i.name)}):typeof s=="object"&&r.push(...eo(s,t));else typeof n=="object"&&n!==null&&r.push(...eo(n,t));return Array.from(new Set(r))}function to(e,t,r){let n={};for(let[s,i]of Object.entries(e))if(typeof i=="string")n[s]=Ee(i,r,t);else if(Array.isArray(i)){let a=[];for(let o of i)typeof o=="string"?a.push(Ee(o,r,t)):typeof o=="object"&&a.push(to(o,t,r));n[s]=a}else typeof i=="object"&&i!==null?n[s]=to(i,t,r):n[s]=i;return n}var Zn=class extends H{lc_namespace=["langchain_core","prompts","chat"];lc_serializable=!0;async invoke(e,t){return this._callWithConfig(r=>this.formatMessages(r),e,{...t,runType:"prompt"})}},ci=class extends Zn{static lc_name(){return"MessagesPlaceholder"}variableName;optional;constructor(e){typeof e=="string"&&(e={variableName:e}),super(e),this.variableName=e.variableName,this.optional=e.optional??!1}get inputVariables(){return[this.variableName]}async formatMessages(e){let t=e[this.variableName];if(this.optional&&!t)return[];if(!t){let n=new Error(`Field "${this.variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages as an input value. Received: undefined`);throw n.name="InputFormatError",n}let r;try{Array.isArray(t)?r=t.map(de):r=[de(t)]}catch(n){let s=typeof t=="string"?t:JSON.stringify(t,null,2),i=new Error([`Field "${this.variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages or coerceable values as input.`,`Received value: ${s}`,`Additional message: ${n.message}`].join(`
|
|
85
|
+
|
|
86
|
+
`));throw i.name="InputFormatError",i.lc_error_code=n.lc_error_code,i}return r}},ro=class extends Zn{prompt;constructor(e){"prompt"in e||(e={prompt:e}),super(e),this.prompt=e.prompt}get inputVariables(){return this.prompt.inputVariables}async formatMessages(e){return[await this.format(e)]}},Qn=class extends wt{constructor(e){super(e)}async format(e){return(await this.formatPromptValue(e)).toString()}async formatPromptValue(e){return new gu(await this.formatMessages(e))}},no=class extends ro{static lc_name(){return"ChatMessagePromptTemplate"}role;constructor(e,t){"prompt"in e||(e={prompt:e,role:t}),super(e),this.role=e.role}async format(e){return new Wt(await this.prompt.format(e),this.role)}static fromTemplate(e,t,r){return new this(nt.fromTemplate(e,{templateFormat:r?.templateFormat}),t)}};function Qd(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.keys(e).length===1&&"text"in e&&typeof e.text=="string"}function eg(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:"image_url"in e&&(typeof e.image_url=="string"||typeof e.image_url=="object"&&e.image_url!==null&&"url"in e.image_url&&typeof e.image_url.url=="string")}var so=class extends Zn{lc_namespace=["langchain_core","prompts","chat"];lc_serializable=!0;inputVariables=[];additionalOptions={};prompt;messageClass;static _messageClass(){throw new Error("Can not invoke _messageClass from inside _StringImageMessagePromptTemplate")}chatMessageClass;constructor(e,t){if("prompt"in e||(e={prompt:e}),super(e),this.prompt=e.prompt,Array.isArray(this.prompt)){let r=[];this.prompt.forEach(n=>{"inputVariables"in n&&(r=r.concat(n.inputVariables))}),this.inputVariables=r}else this.inputVariables=this.prompt.inputVariables;this.additionalOptions=t??this.additionalOptions}createMessage(e){let t=this.constructor;if(t._messageClass())return new(t._messageClass())({content:e});if(t.chatMessageClass){let r=t.chatMessageClass();return new r({content:e,role:this.getRoleFromMessageClass(r.lc_name())})}else throw new Error("No message class defined")}getRoleFromMessageClass(e){switch(e){case"HumanMessage":return"human";case"AIMessage":return"ai";case"SystemMessage":return"system";case"ChatMessage":return"chat";default:throw new Error("Invalid message class name")}}static fromTemplate(e,t){if(typeof e=="string")return new this(nt.fromTemplate(e,t));let r=[];for(let n of e)if(typeof n=="string")r.push(nt.fromTemplate(n,t));else if(n!==null)if(Qd(n)){let s="";typeof n.text=="string"&&(s=n.text??"");let i={...t,additionalContentFields:n};r.push(nt.fromTemplate(s,i))}else if(eg(n)){let s=n.image_url??"",i,a=[];if(typeof s=="string"){let o;t?.templateFormat==="mustache"?o=tn(s):o=Pr(s);let c=o.flatMap(l=>l.type==="variable"?[l.name]:[]);if((c?.length??0)>0){if(c.length>1)throw new Error(`Only one format variable allowed per image template.
|
|
87
|
+
Got: ${c}
|
|
88
|
+
From: ${s}`);a=[c[0]]}else a=[];s={url:s},i=new rn({template:s,inputVariables:a,templateFormat:t?.templateFormat,additionalContentFields:n})}else if(typeof s=="object"){if("url"in s){let o;t?.templateFormat==="mustache"?o=tn(s.url):o=Pr(s.url),a=o.flatMap(c=>c.type==="variable"?[c.name]:[])}else a=[];i=new rn({template:s,inputVariables:a,templateFormat:t?.templateFormat,additionalContentFields:n})}else throw new Error("Invalid image template");r.push(i)}else typeof n=="object"&&r.push(new Xn({template:n,templateFormat:t?.templateFormat}));return new this({prompt:r,additionalOptions:t})}async format(e){if(this.prompt instanceof Dt){let t=await this.prompt.format(e);return this.createMessage(t)}else{let t=[];for(let r of this.prompt){let n={};if(!("inputVariables"in r))throw new Error(`Prompt ${r} does not have inputVariables defined.`);for(let s of r.inputVariables)n||(n={[s]:e[s]}),n={...n,[s]:e[s]};if(r instanceof Dt){let s=await r.format(n),i;"additionalContentFields"in r&&(i=r.additionalContentFields),s!==""&&t.push({...i,type:"text",text:s})}else if(r instanceof rn){let s=await r.format(n),i;"additionalContentFields"in r&&(i=r.additionalContentFields),t.push({...i,type:"image_url",image_url:s})}else if(r instanceof Xn){let s=await r.format(n),i;"additionalContentFields"in r&&(i=r.additionalContentFields),t.push({...i,...s})}}return this.createMessage(t)}}async formatMessages(e){return[await this.format(e)]}},li=class extends so{static _messageClass(){return xe}static lc_name(){return"HumanMessagePromptTemplate"}},io=class extends so{static _messageClass(){return q}static lc_name(){return"AIMessagePromptTemplate"}},ao=class extends so{static _messageClass(){return Qe}static lc_name(){return"SystemMessagePromptTemplate"}};function tg(e){return typeof e.formatMessages=="function"}function rg(e,t){if(tg(e)||ee(e))return e;if(Array.isArray(e)&&e[0]==="placeholder"){let s=e[1];if(t?.templateFormat==="mustache"&&typeof s=="string"&&s.slice(0,2)==="{{"&&s.slice(-2)==="}}")return new ci({variableName:s.slice(2,-2),optional:!0});if(typeof s=="string"&&s[0]==="{"&&s[s.length-1]==="}")return new ci({variableName:s.slice(1,-1),optional:!0});throw new Error(`Invalid placeholder template for format ${t?.templateFormat??'"f-string"'}: "${e[1]}". Expected a variable name surrounded by ${t?.templateFormat==="mustache"?"double":"single"} curly braces.`)}let r=de(e),n;if(typeof r.content=="string"?n=r.content:n=r.content.map(s=>"text"in s?{...s,text:s.text}:"image_url"in s?{...s,image_url:s.image_url}:s),r._getType()==="human")return li.fromTemplate(n,t);if(r._getType()==="ai")return io.fromTemplate(n,t);if(r._getType()==="system")return ao.fromTemplate(n,t);if(Wt.isInstance(r))return no.fromTemplate(r.content,r.role,t);throw new Error(`Could not coerce message prompt template from input. Received message type: "${r._getType()}".`)}function ng(e){return e.constructor.lc_name()==="MessagesPlaceholder"}var nn=class oi extends Qn{static lc_name(){return"ChatPromptTemplate"}get lc_aliases(){return{promptMessages:"messages"}}promptMessages;validateTemplate=!0;templateFormat="f-string";constructor(t){if(super(t),t.templateFormat==="mustache"&&t.validateTemplate===void 0&&(this.validateTemplate=!1),Object.assign(this,t),this.validateTemplate){let r=new Set;for(let o of this.promptMessages)if(!(o instanceof re))for(let c of o.inputVariables)r.add(c);let n=this.inputVariables,s=new Set(this.partialVariables?n.concat(Object.keys(this.partialVariables)):n),i=new Set([...s].filter(o=>!r.has(o)));if(i.size>0)throw new Error(`Input variables \`${[...i]}\` are not used in any of the prompt messages.`);let a=new Set([...r].filter(o=>!s.has(o)));if(a.size>0)throw new Error(`Input variables \`${[...a]}\` are used in prompt messages but not in the prompt template.`)}}_getPromptType(){return"chat"}async _parseImagePrompts(t,r){return typeof t.content=="string"||(t.content=await Promise.all(t.content.map(async n=>{if(n.type!=="image_url")return n;let s="";typeof n.image_url=="string"?s=n.image_url:typeof n.image_url=="object"&&n.image_url!==null&&"url"in n.image_url&&typeof n.image_url.url=="string"&&(s=n.image_url.url);let i=await nt.fromTemplate(s,{templateFormat:this.templateFormat}).format(r);return typeof n.image_url=="object"&&n.image_url!==null&&"url"in n.image_url?n.image_url.url=i:n.image_url=i,n}))),t}async formatMessages(t){let r=await this.mergePartialAndUserVariables(t),n=[];for(let s of this.promptMessages)if(s instanceof re)n.push(await this._parseImagePrompts(s,r));else{let i;this.templateFormat==="mustache"?i={...r}:i=s.inputVariables.reduce((o,c)=>{if(!(c in r)&&!(ng(s)&&s.optional))throw Vr(new Error(`Missing value for input variable \`${c.toString()}\``),"INVALID_PROMPT_INPUT");return o[c]=r[c],o},{});let a=await s.formatMessages(i);n=n.concat(a)}return n}async partial(t){let r=this.inputVariables.filter(s=>!(s in t)),n={...this.partialVariables??{},...t};return new oi({...this,inputVariables:r,partialVariables:n})}static fromTemplate(t,r){let n=new li({prompt:nt.fromTemplate(t,r)});return this.fromMessages([n])}static fromMessages(t,r){let n=t.reduce((a,o)=>a.concat(o instanceof oi?o.promptMessages:[rg(o,r)]),[]),s=t.reduce((a,o)=>o instanceof oi?Object.assign(a,o.partialVariables):a,Object.create(null)),i=new Set;for(let a of n)if(!(a instanceof re))for(let o of a.inputVariables)o in s||i.add(o);return new this({...r,inputVariables:[...i],promptMessages:n,partialVariables:s,templateFormat:r?.templateFormat})}};var sp=class oo extends Dt{lc_serializable=!1;examples;exampleSelector;examplePrompt;suffix="";exampleSeparator=`
|
|
89
|
+
|
|
90
|
+
`;prefix="";templateFormat="f-string";validateTemplate=!0;constructor(t){if(super(t),Object.assign(this,t),this.examples!==void 0&&this.exampleSelector!==void 0)throw new Error("Only one of 'examples' and 'example_selector' should be provided");if(this.examples===void 0&&this.exampleSelector===void 0)throw new Error("One of 'examples' and 'example_selector' should be provided");if(this.validateTemplate){let r=this.inputVariables;this.partialVariables&&(r=r.concat(Object.keys(this.partialVariables))),Lt(this.prefix+this.suffix,this.templateFormat,r)}}_getPromptType(){return"few_shot"}static lc_name(){return"FewShotPromptTemplate"}async getExamples(t){if(this.examples!==void 0)return this.examples;if(this.exampleSelector!==void 0)return this.exampleSelector.selectExamples(t);throw new Error("One of 'examples' and 'example_selector' should be provided")}async partial(t){let r=this.inputVariables.filter(s=>!(s in t)),n={...this.partialVariables??{},...t};return new oo({...this,inputVariables:r,partialVariables:n})}async format(t){let r=await this.mergePartialAndUserVariables(t),n=await this.getExamples(r),s=await Promise.all(n.map(i=>this.examplePrompt.format(i)));return Ee([this.prefix,...s,this.suffix].join(this.exampleSeparator),this.templateFormat,r)}serialize(){if(this.exampleSelector||!this.examples)throw new Error("Serializing an example selector is not currently supported");if(this.outputParser!==void 0)throw new Error("Serializing an output parser is not currently supported");return{_type:this._getPromptType(),input_variables:this.inputVariables,example_prompt:this.examplePrompt.serialize(),example_separator:this.exampleSeparator,suffix:this.suffix,prefix:this.prefix,template_format:this.templateFormat,examples:this.examples}}static async deserialize(t){let{example_prompt:r}=t;if(!r)throw new Error("Missing example prompt");let n=await nt.deserialize(r),s;if(Array.isArray(t.examples))s=t.examples;else throw new Error("Invalid examples format. Only list or string are supported.");return new oo({inputVariables:t.input_variables,examplePrompt:n,examples:s,exampleSeparator:t.example_separator,prefix:t.prefix,suffix:t.suffix,templateFormat:t.template_format})}},ip=class ap extends Qn{lc_serializable=!0;examples;exampleSelector;examplePrompt;suffix="";exampleSeparator=`
|
|
91
|
+
|
|
92
|
+
`;prefix="";templateFormat="f-string";validateTemplate=!0;_getPromptType(){return"few_shot_chat"}static lc_name(){return"FewShotChatMessagePromptTemplate"}constructor(t){if(super(t),this.examples=t.examples,this.examplePrompt=t.examplePrompt,this.exampleSeparator=t.exampleSeparator??`
|
|
93
|
+
|
|
94
|
+
`,this.exampleSelector=t.exampleSelector,this.prefix=t.prefix??"",this.suffix=t.suffix??"",this.templateFormat=t.templateFormat??"f-string",this.validateTemplate=t.validateTemplate??!0,this.examples!==void 0&&this.exampleSelector!==void 0)throw new Error("Only one of 'examples' and 'example_selector' should be provided");if(this.examples===void 0&&this.exampleSelector===void 0)throw new Error("One of 'examples' and 'example_selector' should be provided");if(this.validateTemplate){let r=this.inputVariables;this.partialVariables&&(r=r.concat(Object.keys(this.partialVariables))),Lt(this.prefix+this.suffix,this.templateFormat,r)}}async getExamples(t){if(this.examples!==void 0)return this.examples;if(this.exampleSelector!==void 0)return this.exampleSelector.selectExamples(t);throw new Error("One of 'examples' and 'example_selector' should be provided")}async formatMessages(t){let r=await this.mergePartialAndUserVariables(t),n=await this.getExamples(r);n=n.map(i=>{let a={};return this.examplePrompt.inputVariables.forEach(o=>{a[o]=i[o]}),a});let s=[];for(let i of n){let a=await this.examplePrompt.formatMessages(i);s.push(...a)}return s}async format(t){let r=await this.mergePartialAndUserVariables(t),n=await this.getExamples(r),s=(await Promise.all(n.map(i=>this.examplePrompt.formatMessages(i)))).flat().map(i=>i.content);return Ee([this.prefix,...s,this.suffix].join(this.exampleSeparator),this.templateFormat,r)}async partial(t){let r=this.inputVariables.filter(s=>!(s in t)),n={...this.partialVariables??{},...t};return new ap({...this,inputVariables:r,partialVariables:n})}};var op=class ui extends wt{static lc_name(){return"PipelinePromptTemplate"}pipelinePrompts;finalPrompt;constructor(t){super({...t,inputVariables:[]}),this.pipelinePrompts=t.pipelinePrompts,this.finalPrompt=t.finalPrompt,this.inputVariables=this.computeInputValues()}computeInputValues(){let t=this.pipelinePrompts.map(n=>n.name),r=this.pipelinePrompts.map(n=>n.prompt.inputVariables.filter(s=>!t.includes(s))).flat();return[...new Set(r)]}static extractRequiredInputValues(t,r){return r.reduce((n,s)=>(n[s]=t[s],n),{})}async formatPipelinePrompts(t){let r=await this.mergePartialAndUserVariables(t);for(let{name:n,prompt:s}of this.pipelinePrompts){let i=ui.extractRequiredInputValues(r,s.inputVariables);s instanceof nn?r[n]=await s.formatMessages(i):r[n]=await s.format(i)}return ui.extractRequiredInputValues(r,this.finalPrompt.inputVariables)}async formatPromptValue(t){return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(t))}async format(t){return this.finalPrompt.format(await this.formatPipelinePrompts(t))}async partial(t){let r={...this};return r.inputVariables=this.inputVariables.filter(n=>!(n in t)),r.partialVariables={...this.partialVariables??{},...t},new ui(r)}serialize(){throw new Error("Not implemented.")}_getPromptType(){return"pipeline"}};function cp(e){return typeof e=="object"&&e!=null&&"withStructuredOutput"in e&&typeof e.withStructuredOutput=="function"}function sg(e){return typeof e=="object"&&e!=null&&"lc_id"in e&&Array.isArray(e.lc_id)&&e.lc_id.join("/")==="langchain_core/runnables/RunnableBinding"}var lp=class up extends nn{schema;method;lc_namespace=["langchain_core","prompts","structured"];get lc_aliases(){return{...super.lc_aliases,schema:"schema_"}}constructor(t){super(t),this.schema=t.schema,this.method=t.method}pipe(t){if(cp(t))return super.pipe(t.withStructuredOutput(this.schema));if(sg(t)&&cp(t.bound))return super.pipe(new Zt({bound:t.bound.withStructuredOutput(this.schema,...this.method?[{method:this.method}]:[]),kwargs:t.kwargs??{},config:t.config,configFactories:t.configFactories}));throw new Error('Structured prompts need to be piped to a language model that supports the "withStructuredOutput()" method.')}static fromMessagesAndSchema(t,r,n){return up.fromMessages(t,{schema:r,method:n})}};var hp=A({AIMessagePromptTemplate:()=>io,BaseChatPromptTemplate:()=>Qn,BaseMessagePromptTemplate:()=>Zn,BaseMessageStringPromptTemplate:()=>ro,BasePromptTemplate:()=>wt,BaseStringPromptTemplate:()=>Dt,ChatMessagePromptTemplate:()=>no,ChatPromptTemplate:()=>nn,DEFAULT_FORMATTER_MAPPING:()=>Jn,DEFAULT_PARSER_MAPPING:()=>Qa,DictPromptTemplate:()=>Xn,FewShotChatMessagePromptTemplate:()=>ip,FewShotPromptTemplate:()=>sp,HumanMessagePromptTemplate:()=>li,ImagePromptTemplate:()=>rn,MessagesPlaceholder:()=>ci,PipelinePromptTemplate:()=>op,PromptTemplate:()=>nt,StructuredPrompt:()=>lp,SystemMessagePromptTemplate:()=>ao,checkValidTemplate:()=>Lt,interpolateFString:()=>Xa,interpolateMustache:()=>Za,parseFString:()=>Pr,parseMustache:()=>tn,parseTemplate:()=>Rr,renderTemplate:()=>Ee});var pp=A({BaseDocumentCompressor:()=>ig}),ig=class{static isBaseDocumentCompressor(e){return e?.compressDocuments!==void 0}};var fp=A({BaseRetriever:()=>es}),es=class extends H{callbacks;tags;metadata;verbose;constructor(e){super(e),this.callbacks=e?.callbacks,this.tags=e?.tags??[],this.metadata=e?.metadata??{},this.verbose=e?.verbose??!1}_getRelevantDocuments(e,t){throw new Error("Not implemented!")}async invoke(e,t){let r=At(Al(t)),n=await(await De.configure(r.callbacks,this.callbacks,r.tags,this.tags,r.metadata,this.metadata,{verbose:this.verbose}))?.handleRetrieverStart(this.toJSON(),e,r.runId,void 0,void 0,void 0,r.runName);try{let s=await this._getRelevantDocuments(e,n);return await n?.handleRetrieverEnd(s),s}catch(s){throw await n?.handleRetrieverError(s),s}}};var mp=A({BaseStore:()=>dp,InMemoryStore:()=>ag}),dp=class extends Xe{},ag=class extends dp{lc_namespace=["langchain","storage"];store={};async mget(e){return e.map(t=>this.store[t])}async mset(e){for(let[t,r]of e)this.store[t]=r}async mdelete(e){for(let t of e)delete this.store[t]}async*yieldKeys(e){let t=Object.keys(this.store);for(let r of t)(e===void 0||r.startsWith(e))&&(yield r)}};var st={and:"and",or:"or",not:"not"},U={eq:"eq",ne:"ne",lt:"lt",gt:"gt",lte:"lte",gte:"gte"},hi=class{},pi=class{accept(e){if(this.exprName==="Operation")return e.visitOperation(this);if(this.exprName==="Comparison")return e.visitComparison(this);if(this.exprName==="StructuredQuery")return e.visitStructuredQuery(this);throw new Error("Unknown Expression type")}},fi=class extends pi{},gp=class extends fi{exprName="Comparison";constructor(e,t,r){super(),this.comparator=e,this.attribute=t,this.value=r}},_p=class extends fi{exprName="Operation";constructor(e,t){super(),this.operator=e,this.args=t}},yp=class extends pi{exprName="StructuredQuery";constructor(e,t){super(),this.query=e,this.filter=t}};function co(e){return e&&typeof e=="object"&&!Array.isArray(e)}function $e(e){return e?typeof e=="string"&&e.length>0||typeof e=="function"?!1:co(e)&&Object.keys(e).length===0:!0}function lo(e){if(typeof e=="number")return e%1===0;if(typeof e=="string"){let t=parseInt(e,10);return!Number.isNaN(t)&&t%1===0&&t.toString()===e}return!1}function uo(e){if(typeof e=="number")return e%1!==0;if(typeof e=="string"){let t=parseFloat(e);return!Number.isNaN(t)&&t%1!==0&&t.toString()===e}return!1}function ho(e){return typeof e=="string"&&(Number.isNaN(parseFloat(e))||parseFloat(e).toString()!==e)}function po(e){return typeof e=="boolean"}function sn(e){let t;if(ho(e))t=e;else if(lo(e))t=parseInt(e,10);else if(uo(e))t=parseFloat(e);else if(po(e))t=!!e;else throw new Error("Unsupported value type");return t}var ts=class extends hi{},bp=class extends ts{allowedOperators;allowedComparators;constructor(e){super(),this.allowedOperators=e?.allowedOperators??[st.and,st.or],this.allowedComparators=e?.allowedComparators??[U.eq,U.ne,U.gt,U.gte,U.lt,U.lte]}formatFunction(e){if(e in U){if(this.allowedComparators.length>0&&this.allowedComparators.indexOf(e)===-1)throw new Error(`Comparator ${e} not allowed. Allowed comparators: ${this.allowedComparators.join(", ")}`)}else if(e in st){if(this.allowedOperators.length>0&&this.allowedOperators.indexOf(e)===-1)throw new Error(`Operator ${e} not allowed. Allowed operators: ${this.allowedOperators.join(", ")}`)}else throw new Error("Unknown comparator or operator");return`$${e}`}visitOperation(e){let t=e.args?.map(r=>r.accept(this));return{[this.formatFunction(e.operator)]:t}}visitComparison(e){return{[e.attribute]:{[this.formatFunction(e.comparator)]:sn(e.value)}}}visitStructuredQuery(e){let t={};return e.filter&&(t={filter:e.filter.accept(this)}),t}mergeFilters(e,t,r="and",n=!1){if(!($e(e)&&$e(t))){if($e(e)||r==="replace")return $e(t)?void 0:t;if($e(t))return n?e:r==="and"?void 0:e;if(r==="and")return{$and:[e,t]};if(r==="or")return{$or:[e,t]};throw new Error("Unknown merge type")}}};var vp=class extends ts{allowedOperators=[st.and,st.or];allowedComparators=[U.eq,U.ne,U.gt,U.gte,U.lt,U.lte];formatFunction(){throw new Error("Not implemented")}getAllowedComparatorsForType(e){switch(e){case"string":return[U.eq,U.ne,U.gt,U.gte,U.lt,U.lte];case"number":return[U.eq,U.ne,U.gt,U.gte,U.lt,U.lte];case"boolean":return[U.eq,U.ne];default:throw new Error(`Unsupported data type: ${e}`)}}getComparatorFunction(e){switch(e){case U.eq:return(t,r)=>t===r;case U.ne:return(t,r)=>t!==r;case U.gt:return(t,r)=>t>r;case U.gte:return(t,r)=>t>=r;case U.lt:return(t,r)=>t<r;case U.lte:return(t,r)=>t<=r;default:throw new Error("Unknown comparator")}}getOperatorFunction(e){switch(e){case st.and:return(t,r)=>t&&r;case st.or:return(t,r)=>t||r;default:throw new Error("Unknown operator")}}visitOperation(e){let{operator:t,args:r}=e;if(this.allowedOperators.includes(t)){let n=this.getOperatorFunction(t);return s=>r?r.reduce((i,a)=>{let o=a.accept(this);if(typeof o=="function")return n(i,o(s));throw new Error("Filter is not a function")},!0):!0}else throw new Error("Operator not allowed")}visitComparison(e){let{comparator:t,attribute:r,value:n}=e,s=[U.ne];if(this.allowedComparators.includes(t)){if(!this.getAllowedComparatorsForType(typeof n).includes(t))throw new Error(`'${t}' comparator not allowed to be used with ${typeof n}`);let i=this.getComparatorFunction(t);return a=>{let o=a.metadata[r];return o===void 0?!!s.includes(t):i(o,sn(n))}}else throw new Error("Comparator not allowed")}visitStructuredQuery(e){if(!e.filter)return{};let t=e.filter?.accept(this);if(typeof t!="function")throw new Error("Structured query filter is not a function");return{filter:t}}mergeFilters(e,t,r="and"){if(!($e(e)&&$e(t))){if($e(e)||r==="replace")return $e(t)?void 0:t;if($e(t))return r==="and"?void 0:e;if(r==="and")return n=>e(n)&&t(n);if(r==="or")return n=>e(n)||t(n);throw new Error("Unknown merge type")}}};var wp=A({BaseTranslator:()=>ts,BasicTranslator:()=>bp,Comparators:()=>U,Comparison:()=>gp,Expression:()=>pi,FilterDirective:()=>fi,FunctionalTranslator:()=>vp,Operation:()=>_p,Operators:()=>st,StructuredQuery:()=>yp,Visitor:()=>hi,castValue:()=>sn,isBoolean:()=>po,isFilterEmpty:()=>$e,isFloat:()=>uo,isInt:()=>lo,isObject:()=>co,isString:()=>ho});function rs(e){if(e==null||typeof e!="object")return!1;let t=e;return typeof t.text<"u"&&typeof t.toolCalls<"u"&&typeof t.reasoning<"u"&&typeof t.usage<"u"&&typeof t.output<"u"&&typeof t[Symbol.asyncIterator]=="function"}function Sp(e,t,r){return e==null?!1:Object.entries(t).every(([n,s])=>r(e[n],s))}function kp(e,t,r){return e==null?!1:Sp(e,t,r)}function Cp(e){return e.content.find(t=>t.type==="text")?.text}function og(e,t,r){if(t.id!==void 0&&e.id!==t.id||t.text!==void 0&&Cp(e)!==t.text)return!1;if(t.toolCalls!==void 0){let n=e.tool_calls??[];if(n.length!==t.toolCalls.length)return!1;for(let s=0;s<t.toolCalls.length;s++){let i=n[s],a=t.toolCalls[s];if(i?.name!==a.name||!r(i.args,a.args))return!1}}return!(t.usage!==void 0&&!kp(e.usage_metadata,t.usage,r)||t.responseMetadata!==void 0&&!Sp(e.response_metadata,t.responseMetadata,r))}function ns(e,t,r){return{pass:!1,message:()=>`${r.matcherHint(t)}
|
|
95
|
+
|
|
96
|
+
Expected: ChatModelStream (return value of model.streamEvents("Hello"))
|
|
97
|
+
Received: ${r.printReceived(e)}`,actual:e,expected:"ChatModelStream"}}function ss(e,t){return t?!e:e}async function cg(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamText";if(!rs(e))return ns(e,s,n);let i=await e.text;return{pass:ss(i===t,r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
98
|
+
|
|
99
|
+
Expected stream text: ${r?"not ":""}${n.printExpected(t)}
|
|
100
|
+
Received stream text: ${n.printReceived(i)}`,actual:i,expected:t}}async function lg(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamReasoning";if(!rs(e))return ns(e,s,n);let i=await e.reasoning;return{pass:ss(i===t,r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
101
|
+
|
|
102
|
+
Expected stream reasoning: ${r?"not ":""}${n.printExpected(t)}
|
|
103
|
+
Received stream reasoning: ${n.printReceived(i)}`,actual:i,expected:t}}async function ug(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamToolCalls";if(!rs(e))return ns(e,s,n);let i=await e.toolCalls,a=i.length===t.length&&t.every((o,c)=>{let l=i[c];return l?.name===o.name&&this.equals(l.args,o.args)});return a=ss(a,r),{pass:a,message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
104
|
+
|
|
105
|
+
Expected stream tool calls: ${n.printExpected(t)}
|
|
106
|
+
Received stream tool calls: ${n.printReceived(i.map(o=>({name:o.name,args:o.args})))}`,actual:i.map(o=>({name:o.name,args:o.args})),expected:t}}async function hg(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamUsage";if(!rs(e))return ns(e,s,n);let i=await e.usage;return{pass:ss(kp(i,t,this.equals),r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
107
|
+
|
|
108
|
+
Expected stream usage: ${n.printExpected(t)}
|
|
109
|
+
Received stream usage: ${n.printReceived(i)}`,actual:i,expected:t}}async function pg(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamOutput";if(!rs(e))return ns(e,s,n);let i=await e.output;return{pass:ss(og(i,t,this.equals),r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
110
|
+
|
|
111
|
+
Expected stream output: ${n.printExpected(t)}
|
|
112
|
+
Received stream output: ${n.printReceived({id:i.id,text:Cp(i),tool_calls:i.tool_calls?.map(a=>({name:a.name,args:a.args})),usage_metadata:i.usage_metadata,response_metadata:i.response_metadata})}`,actual:i,expected:t}}var an={toHaveStreamText:cg,toHaveStreamReasoning:lg,toHaveStreamToolCalls:ug,toHaveStreamUsage:hg,toHaveStreamOutput:pg};function is(e){return re.isInstance(e)?e.constructor.name||e.type:typeof e}function mi(e,t){return function(r,n){let{isNot:s,utils:i}=this;if(!t(r))return{pass:!1,message:()=>`${i.matcherHint(`toBe${e}`,void 0,void 0)}
|
|
113
|
+
|
|
114
|
+
Expected: ${s?"not ":""}${e}
|
|
115
|
+
Received: ${is(r)}`,actual:is(r),expected:e};if(n===void 0)return{pass:!0,message:()=>`${i.matcherHint(`toBe${e}`,void 0,void 0)}
|
|
116
|
+
|
|
117
|
+
Expected: not ${e}
|
|
118
|
+
Received: ${e}`};let a=r;return typeof n=="string"?{pass:a.content===n,message:()=>`${i.matcherHint(`toBe${e}`,void 0,void 0)}
|
|
119
|
+
|
|
120
|
+
Expected: ${e} with content ${i.printExpected(n)}
|
|
121
|
+
Received: ${e} with content ${i.printReceived(a.content)}`,actual:a.content,expected:n}:{pass:Object.entries(n).every(([o,c])=>this.equals(a[o],c)),message:()=>{let o={};for(let c of Object.keys(n))o[c]=a[c];return`${i.matcherHint(`toBe${e}`,void 0,void 0)}
|
|
122
|
+
|
|
123
|
+
Expected: ${e} matching ${i.printExpected(n)}
|
|
124
|
+
Received: ${e} with ${i.printReceived(o)}`},actual:(()=>{let o={};for(let c of Object.keys(n))o[c]=a[c];return o})(),expected:n}}}var fo=mi("HumanMessage",xe.isInstance),mo=mi("AIMessage",q.isInstance),go=mi("SystemMessage",Qe.isInstance),_o=mi("ToolMessage",Ge.isInstance);function yo(e,t){let{isNot:r,utils:n}=this;if(!q.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
125
|
+
|
|
126
|
+
Expected: AIMessage
|
|
127
|
+
Received: ${is(e)}`};let s=e.tool_calls??[];if(s.length!==t.length)return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
128
|
+
|
|
129
|
+
Expected ${r?"not ":""}${t.length} tool call(s), received ${s.length}`,actual:s.length,expected:t.length};let i=t.filter(a=>!s.some(o=>Object.entries(a).every(([c,l])=>this.equals(o[c],l))));return i.length>0?{pass:!1,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
130
|
+
|
|
131
|
+
Could not find matching tool call(s) for:
|
|
132
|
+
${n.printExpected(i)}
|
|
133
|
+
Received tool calls: ${n.printReceived(s.map(a=>({name:a.name,id:a.id,args:a.args})))}`,actual:s.map(a=>({name:a.name,id:a.id,args:a.args})),expected:t}:{pass:!0,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
134
|
+
|
|
135
|
+
Expected AIMessage not to have matching tool calls`}}function bo(e,t){let{isNot:r,utils:n}=this;if(!q.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCallCount")}
|
|
136
|
+
|
|
137
|
+
Expected: AIMessage
|
|
138
|
+
Received: ${is(e)}`};let s=e.tool_calls?.length??0;return{pass:s===t,message:()=>`${n.matcherHint("toHaveToolCallCount")}
|
|
139
|
+
|
|
140
|
+
Expected ${r?"not ":""}${t} tool call(s)
|
|
141
|
+
Received: ${s}`,actual:s,expected:t}}function vo(e,t){let{isNot:r,utils:n}=this;if(!q.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toContainToolCall")}
|
|
142
|
+
|
|
143
|
+
Expected: AIMessage
|
|
144
|
+
Received: ${is(e)}`};let s=e.tool_calls??[];return{pass:s.some(i=>Object.entries(t).every(([a,o])=>this.equals(i[a],o))),message:()=>`${n.matcherHint("toContainToolCall")}
|
|
145
|
+
|
|
146
|
+
Expected AIMessage ${r?"not ":""}to contain a tool call matching ${n.printExpected(t)}
|
|
147
|
+
Received tool calls: ${n.printReceived(s.map(i=>({name:i.name,id:i.id})))}`,actual:s.map(i=>({name:i.name,id:i.id})),expected:t}}function wo(e,t){let{isNot:r,utils:n}=this;if(!Array.isArray(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
148
|
+
|
|
149
|
+
Expected an array of messages
|
|
150
|
+
Received: ${typeof e}`};let s=e.filter(Ge.isInstance);if(s.length!==t.length)return{pass:!1,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
151
|
+
|
|
152
|
+
Expected ${r?"not ":""}${t.length} tool message(s), found ${s.length}`,actual:s.length,expected:t.length};for(let i=0;i<t.length;i++)if(!Object.entries(t[i]).every(([a,o])=>this.equals(s[i][a],o)))return{pass:!1,message:()=>{let a={};for(let o of Object.keys(t[i]))a[o]=s[i][o];return`${n.matcherHint("toHaveToolMessages")}
|
|
153
|
+
|
|
154
|
+
Tool message at index ${i} did not match:
|
|
155
|
+
Expected: ${n.printExpected(t[i])}
|
|
156
|
+
Received: ${n.printReceived(a)}`},actual:s[i],expected:t[i]};return{pass:!0,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
157
|
+
|
|
158
|
+
Expected messages not to contain matching tool messages`}}function So(e,t){let{isNot:r,utils:n}=this,s=e?.__interrupt__;if(!(Array.isArray(s)&&s.length>0))return{pass:!1,message:()=>`${n.matcherHint("toHaveBeenInterrupted")}
|
|
159
|
+
|
|
160
|
+
Expected result ${r?"not ":""}to have been interrupted
|
|
161
|
+
Received __interrupt__: ${n.printReceived(s)}`};if(t===void 0)return{pass:!0,message:()=>`${n.matcherHint("toHaveBeenInterrupted")}
|
|
162
|
+
|
|
163
|
+
Expected result not to have been interrupted
|
|
164
|
+
Received ${s.length} interrupt(s)`};let i=s[0]?.value;return{pass:this.equals(i,t),message:()=>`${n.matcherHint("toHaveBeenInterrupted")}
|
|
165
|
+
|
|
166
|
+
Expected interrupt value: ${n.printExpected(t)}
|
|
167
|
+
Received interrupt value: ${n.printReceived(i)}`,actual:i,expected:t}}function ko(e,t){let{isNot:r,utils:n}=this,s=e?.structuredResponse;return s===void 0?{pass:!1,message:()=>`${n.matcherHint("toHaveStructuredResponse")}
|
|
168
|
+
|
|
169
|
+
Expected result ${r?"not ":""}to have a structured response
|
|
170
|
+
Received structuredResponse: undefined`}:t===void 0?{pass:!0,message:()=>`${n.matcherHint("toHaveStructuredResponse")}
|
|
171
|
+
|
|
172
|
+
Expected result not to have a structured response`}:{pass:Object.entries(t).every(([i,a])=>this.equals(s[i],a)),message:()=>`${n.matcherHint("toHaveStructuredResponse")}
|
|
173
|
+
|
|
174
|
+
Expected structured response: ${n.printExpected(t)}
|
|
175
|
+
Received structured response: ${n.printReceived(s)}`,actual:s,expected:t}}var Ep={toBeHumanMessage:fo,toBeAIMessage:mo,toBeSystemMessage:go,toBeToolMessage:_o,toHaveToolCalls:yo,toHaveToolCallCount:bo,toContainToolCall:vo,toHaveToolMessages:wo,toHaveBeenInterrupted:So,toHaveStructuredResponse:ko,...an};function fg(e){return e.map(t=>t.text).filter(Boolean).join("-")}var Tp=0;function mg(){return Tp+=1,`fake_tc_${Tp}`}var Co=class xp extends cr{queue=[];_alwaysThrowError;_structuredResponseValue;_tools=[];_state={callIndex:0,calls:[]};get calls(){return this._state.calls}get callCount(){return this._state.calls.length}constructor(){super({})}_llmType(){return"fake-model-builder"}_combineLLMOutput(){return[]}respond(t){return typeof t=="function"?this.queue.push({kind:"factory",factory:t}):re.isInstance(t)?this.queue.push({kind:"message",message:t}):this.queue.push({kind:"error",error:t}),this}respondWithTools(t){return this.queue.push({kind:"toolCalls",toolCalls:t.map(r=>({name:r.name,args:r.args,id:r.id??mg(),type:"tool_call"}))}),this}alwaysThrow(t){return this._alwaysThrowError=t,this}structuredResponse(t){return this._structuredResponseValue=t,this}bindTools(t){let r=[...this._tools,...t],n=new xp;return n.queue=this.queue,n._alwaysThrowError=this._alwaysThrowError,n._structuredResponseValue=this._structuredResponseValue,n._tools=r,n._state=this._state,n.withConfig({})}withStructuredOutput(t,r){let{_structuredResponseValue:n}=this;return Fe.from(async()=>n)}async _generate(t,r,n){this._state.calls.push({messages:[...t],options:r});let s=this._state.callIndex;if(this._state.callIndex+=1,this._alwaysThrowError)throw this._alwaysThrowError;let i=this.queue[s];if(!i)throw new Error(`FakeModel: no response queued for invocation ${s} (${this.queue.length} total queued).`);if(i.kind==="error")throw i.error;if(i.kind==="factory"){let o=i.factory(t);if(!re.isInstance(o))throw o;return{generations:[{text:"",message:o}]}}if(i.kind==="message")return{generations:[{text:"",message:i.message}]};let a=fg(t);return{generations:[{text:a,message:new q({content:a,id:s.toString(),tool_calls:i.toolCalls.length>0?i.toolCalls.map(o=>({...o,type:"tool_call"})):void 0})}],llmOutput:{}}}};function Ip(){return new Co}function di(e){return{async*[Symbol.asyncIterator](){for(let t of e)yield t}}}function gi(e="test-model"){let t=as(e),r=t[t.length-1];return t[t.length-1]={...r,usage:{prompt_tokens:10,completion_tokens:2,total_tokens:12}},t}function as(e="test-model"){return[{id:"chatcmpl-text",model:e,choices:[{index:0,delta:{role:"assistant",content:"Hello"},finish_reason:null}]},{id:"chatcmpl-text",model:e,choices:[{index:0,delta:{content:" world"},finish_reason:null}]},{id:"chatcmpl-text",model:e,choices:[{index:0,delta:{},finish_reason:"stop"}]}]}function _i(e="test-model"){return[{id:"chatcmpl-reason",model:e,choices:[{index:0,delta:{role:"assistant",reasoning_content:"Let me reason..."},finish_reason:null}]},{id:"chatcmpl-reason",model:e,choices:[{index:0,delta:{content:"Answer."},finish_reason:null}]},{id:"chatcmpl-reason",model:e,choices:[{index:0,delta:{},finish_reason:"stop"}]}]}function yi(e="test-model"){return[{id:"chatcmpl-tools",model:e,choices:[{index:0,delta:{role:"assistant",content:"Let me search."},finish_reason:null}]},{id:"chatcmpl-tools",model:e,choices:[{index:0,delta:{tool_calls:[{index:0,id:"call_abc",type:"function",function:{name:"web_search",arguments:'{"query"'}}]},finish_reason:null}]},{id:"chatcmpl-tools",model:e,choices:[{index:0,delta:{tool_calls:[{index:0,function:{arguments:':"weather"}'}}]},finish_reason:null}]},{id:"chatcmpl-tools",model:e,choices:[{index:0,delta:{},finish_reason:"tool_calls"}]}]}function bi(e){let t=new TextEncoder;return new Response(new ReadableStream({start(r){for(let n of e)r.enqueue(t.encode(`data: ${JSON.stringify(n)}
|
|
176
|
+
|
|
177
|
+
`));r.close()}}),{status:200,headers:{"Content-Type":"text/event-stream"}})}var Ap=A({FakeBuiltModel:()=>Co,asAsyncIterable:()=>di,fakeModel:()=>Ip,langchainMatchers:()=>Ep,openAIReasoningTextChunks:()=>_i,openAITextOnlyChunks:()=>as,openAITextOnlyChunksWithUsage:()=>gi,openAIToolCallChunks:()=>yi,sseResponseFromOpenAIChunks:()=>bi,streamMatchers:()=>an,toBeAIMessage:()=>mo,toBeHumanMessage:()=>fo,toBeSystemMessage:()=>go,toBeToolMessage:()=>_o,toContainToolCall:()=>vo,toHaveBeenInterrupted:()=>So,toHaveStructuredResponse:()=>ko,toHaveToolCallCount:()=>bo,toHaveToolCalls:()=>yo,toHaveToolMessages:()=>wo});var Op=A({RunCollectorCallbackHandler:()=>dg}),dg=class extends Hr{name="run_collector";exampleId;tracedRuns;constructor({exampleId:e}={}){super({_awaitHandler:!0}),this.exampleId=e,this.tracedRuns=[]}async persistRun(e){let t={...e};t.reference_example_id=this.exampleId,this.tracedRuns.push(t)}};var Np=A({});var Mp=A({chunkArray:()=>gg}),gg=(e,t)=>e.reduce((r,n,s)=>{let i=Math.floor(s/t);return r[i]=(r[i]||[]).concat([n]),r},[]);var Pp=A({context:()=>_g});function _g(e,...t){let r=e.raw,n="";for(let s=0;s<r.length;s++){let i=r[s].replace(/\\\n[ \t]*/g,"").replace(/\\`/g,"`").replace(/\\\$/g,"$").replace(/\\\{/g,"{");if(n+=i,s<t.length){let a=yg(t[s],n);n+=typeof a=="string"?a:JSON.stringify(a)}}return n=bg(n),n=n.trim(),n=n.replace(/\\n/g,`
|
|
178
|
+
`),n}function yg(e,t){if(typeof e!="string"||!e.includes(`
|
|
179
|
+
`))return e;let r=t.slice(t.lastIndexOf(`
|
|
180
|
+
`)+1).match(/^(\s+)/);if(r){let n=r[1];return e.replace(/\n/g,`
|
|
181
|
+
${n}`)}return e}function bg(e){let t=e.split(`
|
|
182
|
+
`),r=null;for(let n of t){let s=n.match(/^(\s+)\S+/);if(s){let i=s[1].length;r===null?r=i:r=Math.min(r,i)}}return r===null?e:t.map(n=>n[0]===" "||n[0]===" "?n.slice(r):n).join(`
|
|
183
|
+
`)}var Rp=A({EventStreamContentType:()=>vg,convertEventStreamToIterableReadableDataStream:()=>Sg,getBytes:()=>Dp,getLines:()=>Lp,getMessages:()=>Fp}),vg="text/event-stream";async function Dp(e,t){if(e instanceof ReadableStream){let r=e.getReader();for(;;){let n=await r.read();if(n.done){t(new Uint8Array,!0);break}t(n.value)}}else try{for await(let r of e)t(new Uint8Array(r));t(new Uint8Array,!0)}catch(r){throw new Error(["Parsing event source stream failed.","Ensure your implementation of fetch returns a web or Node readable stream.",`Error: ${r.message}`].join(`
|
|
184
|
+
`))}}function Lp(e){let t,r,n,s=!1;return function(a,o){if(o){e(a,0,!0);return}t===void 0?(t=a,r=0,n=-1):t=wg(t,a);let c=t.length,l=0;for(;r<c;){s&&(t[r]===10&&(l=++r),s=!1);let u=-1;for(;r<c&&u===-1;++r)switch(t[r]){case 58:n===-1&&(n=r-l);break;case 13:s=!0;case 10:u=r;break}if(u===-1)break;e(t.subarray(l,u),n),l=r,n=-1}l===c?t=void 0:l!==0&&(t=t.subarray(l),r-=l)}}function Fp(e,t,r){let n=Eo(),s=new TextDecoder;return function(a,o,c){if(c){kg(n)||(e?.(n),n=Eo());return}if(a.length===0)e?.(n),n=Eo();else if(o>0){let l=s.decode(a.subarray(0,o)),u=o+(a[o+1]===32?2:1),h=s.decode(a.subarray(u));switch(l){case"data":n.data=n.data?n.data+`
|
|
185
|
+
`+h:h;break;case"event":n.event=h;break;case"id":t?.(n.id=h);break;case"retry":{let p=parseInt(h,10);Number.isNaN(p)||r?.(n.retry=p);break}}}}}function wg(e,t){let r=new Uint8Array(e.length+t.length);return r.set(e),r.set(t,e.length),r}function Eo(){return{data:"",event:"",id:"",retry:void 0}}function Sg(e,t){let r=new ReadableStream({async start(n){let s=Fp(a=>{if(a.event==="error")throw new Error(a.data??"Unspecified event streaming error.");a.event==="metadata"?t?.(a):a.data&&n.enqueue(a.data)});await Dp(e,Lp((a,o,c)=>{s(a,o,c),c&&n.close()}))}});return Mn.fromReadableStream(r)}function kg(e){return e.data===""&&e.event===""&&e.id===""&&e.retry===void 0}var jp=A({});var $p=A({convertToOpenAIFunction:()=>Bp,convertToOpenAITool:()=>Cg,isLangChainTool:()=>ga,isRunnableToolLike:()=>wu,isStructuredTool:()=>vu,isStructuredToolParams:()=>Su});function Bp(e,t){let r=typeof t=="number"?void 0:t;return{name:e.name,description:e.description,parameters:ve(e.schema),...r?.strict!==void 0?{strict:r.strict}:{}}}function Cg(e,t){let r=typeof t=="number"?void 0:t,n;return ga(e)?n={type:"function",function:Bp(e)}:n=e,r?.strict!==void 0&&(n.function.strict=r.strict),n}function vi(e,t){let r=0,n=0,s=0;for(let i=0;i<e.length;i++)r+=e[i]*t[i],n+=e[i]*e[i],s+=t[i]*t[i];return r/(Math.sqrt(n)*Math.sqrt(s))}function Vp(e,t){let r=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n];return r}function Eg(e,t){let r=0;for(let n=0;n<e.length;n++)r+=(e[n]-t[n])*(e[n]-t[n]);return r}function Up(e,t){return Math.sqrt(Eg(e,t))}var Hp=A({cosineSimilarity:()=>To,euclideanDistance:()=>Ig,innerProduct:()=>xg,matrixFunc:()=>wi,maximalMarginalRelevance:()=>Ag,normalize:()=>Tg});function wi(e,t,r){if(e.length===0||e[0].length===0||t.length===0||t[0].length===0)return[[]];if(e[0].length!==t[0].length)throw new Error(`Number of columns in X and Y must be the same. X has shape ${[e.length,e[0].length]} and Y has shape ${[t.length,t[0].length]}.`);return e.map(n=>t.map(s=>r(n,s)).map(s=>Number.isNaN(s)?0:s))}function Tg(e,t=!1){let r=Og(e);return e.map(n=>n.map(s=>t?1-s/r:s/r))}function To(e,t){return wi(e,t,vi)}function xg(e,t){return wi(e,t,Vp)}function Ig(e,t){return wi(e,t,Up)}function Ag(e,t,r=.5,n=4){if(Math.min(n,t.length)<=0)return[];let s=To(Array.isArray(e[0])?e:[e],t)[0],i=Gp(s).maxIndex,a=[t[i]],o=[i];for(;o.length<Math.min(n,t.length);){let c=-1/0,l=-1,u=To(t,a);s.forEach((h,p)=>{if(o.includes(p))return;let m=Math.max(...u[p]),d=r*h-(1-r)*m;d>c&&(c=d,l=p)}),a.push(t[l]),o.push(l)}return o}function Gp(e){if(e.length===0)return{maxIndex:-1,maxValue:NaN};let t=e[0],r=0;for(let n=1;n<e.length;n+=1)e[n]>t&&(r=n,t=e[n]);return{maxIndex:r,maxValue:t}}function Og(e){return e.reduce((t,r)=>Math.max(t,Gp(r).maxValue),0)}var Wp=A({isCloudMetadata:()=>xo,isLocalhost:()=>Io,isPrivateIp:()=>Yp,isSafeUrl:()=>jg,isSameOrigin:()=>$g,validateSafeUrl:()=>Xp}),Ng=["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","127.0.0.0/8","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10","ff00::/8"],Mg=["169.254.169.254","169.254.170.2","100.100.100.200"],Pg=["metadata.google.internal","metadata","instance-data"],Rg=["localhost","localhost.localdomain"],Dg=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function Kp(e){return Dg.test(e)}function Si(e){return Jp(e)!==null}function zp(e){return Kp(e)||Si(e)}function qp(e){if(Kp(e))return e.split(".").map(t=>parseInt(t,10));if(Si(e)){let t=Jp(e);if(!t)return null;let r=t.split(":"),n=[];for(let s of r)n.push(parseInt(s,16));return n}return null}function Jp(e){if(!e||typeof e!="string"||!e.includes(":")||!/^[0-9a-fA-F:]+$/.test(e))return null;let t=e;if(t.includes("::")){let n=t.split("::");if(n.length>2)return null;let[s,i]=n,a=s?s.split(":"):[],o=i?i.split(":"):[],c=8-(a.length+o.length);if(c<0)return null;let l=Array(c).fill("0");t=[...a,...l,...o].filter(u=>u!=="").join(":")}let r=t.split(":");if(r.length!==8)return null;for(let n of r)if(n.length===0||n.length>4||!/^[0-9a-fA-F]+$/.test(n))return null;return r.map(n=>n.padStart(4,"0").toLowerCase()).join(":")}function Lg(e){let[t,r]=e.split("/");if(!t||!r)return null;let n=qp(t);if(!n)return null;let s=parseInt(r,10);if(isNaN(s))return null;let i=Si(t);return i&&s>128||!i&&s>32?null:{addr:n,prefixLen:s,isIpv6:i}}function Fg(e,t){let r=qp(e);if(!r)return!1;let n=Lg(t);if(!n)return!1;let s=Si(e);if(s!==n.isIpv6)return!1;let{addr:i,prefixLen:a}=n;if(s)for(let o=0;o<Math.ceil(a/16);o++){let c=65535<<16-Math.min(16,a-o*16)&65535;if((r[o]&c)!==(i[o]&c))return!1}else for(let o=0;o<Math.ceil(a/8);o++){let c=255<<8-Math.min(8,a-o*8)&255;if((r[o]&c)!==(i[o]&c))return!1}return!0}function Yp(e){if(!zp(e))return!1;for(let t of Ng)if(Fg(e,t))return!0;return!1}function xo(e,t){if(Mg.includes(t||""))return!0;let r=e.toLowerCase();return!!Pg.includes(r)}function Io(e,t){if(t&&(t==="127.0.0.1"||t==="::1"||t==="0.0.0.0"||t.startsWith("127.")))return!0;let r=e.toLowerCase();return!!Rg.includes(r)}function Xp(e,t){let r=t?.allowPrivate??!1,n=t?.allowHttp??!1;try{let s;try{s=new URL(e)}catch{throw new Error(`Invalid URL: ${e}`)}let i=s.hostname;if(!i)throw new Error("URL missing hostname.");if(xo(i))throw new Error(`URL points to cloud metadata endpoint: ${i}`);if(Io(i)){if(!r)throw new Error(`URL points to localhost: ${i}`);return e}let a=s.protocol;if(a!=="http:"&&a!=="https:")throw new Error(`Invalid URL scheme: ${a}. Only http and https are allowed.`);if(a==="http:"&&!n)throw new Error("HTTP scheme not allowed. Use HTTPS or set allowHttp: true.");if(zp(i)){let o=i;if(Io(i,o)){if(!r)throw new Error(`URL points to localhost: ${i}`);return e}if(xo(i,o))throw new Error(`URL resolves to cloud metadata IP: ${o} (${i})`);if(Yp(o)&&!r)throw new Error(`URL resolves to private IP: ${o} (${i}). Set allowPrivate: true to allow.`);return e}return e}catch(s){throw s&&typeof s=="object"&&"message"in s?s:new Error(`URL validation failed: ${s}`)}}function jg(e,t){try{return Xp(e,t),!0}catch{return!1}}function $g(e,t){try{return new URL(e).origin===new URL(t).origin}catch{return!1}}var Zp=A({SaveableVectorStore:()=>Bg,VectorStore:()=>Ci,VectorStoreRetriever:()=>ki}),ki=class extends es{static lc_name(){return"VectorStoreRetriever"}get lc_namespace(){return["langchain_core","vectorstores"]}vectorStore;k=4;searchType="similarity";searchKwargs;filter;_vectorstoreType(){return this.vectorStore._vectorstoreType()}constructor(e){super(e),this.vectorStore=e.vectorStore,this.k=e.k??this.k,this.searchType=e.searchType??this.searchType,this.filter=e.filter,e.searchType==="mmr"&&(this.searchKwargs=e.searchKwargs)}async _getRelevantDocuments(e,t){if(this.searchType==="mmr"){if(typeof this.vectorStore.maxMarginalRelevanceSearch!="function")throw new Error(`The vector store backing this retriever, ${this._vectorstoreType()} does not support max marginal relevance search.`);return this.vectorStore.maxMarginalRelevanceSearch(e,{k:this.k,filter:this.filter,...this.searchKwargs},t?.getChild("vectorstore"))}return this.vectorStore.similaritySearch(e,this.k,this.filter,t?.getChild("vectorstore"))}async addDocuments(e,t){return this.vectorStore.addDocuments(e,t)}},Ci=class extends Xe{lc_namespace=["langchain","vectorstores",this._vectorstoreType()];embeddings;constructor(e,t){super(t),this.embeddings=e}async delete(e){throw new Error("Not implemented.")}async similaritySearch(e,t=4,r=void 0,n=void 0){return(await this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,r)).map(s=>s[0])}async similaritySearchWithScore(e,t=4,r=void 0,n=void 0){return this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,r)}static fromTexts(e,t,r,n){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}static fromDocuments(e,t,r){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}asRetriever(e,t,r,n,s,i){if(typeof e=="number")return new ki({vectorStore:this,k:e,filter:t,tags:[...n??[],this._vectorstoreType()],metadata:s,verbose:i,callbacks:r});{let a={vectorStore:this,k:e?.k,filter:e?.filter,tags:[...e?.tags??[],this._vectorstoreType()],metadata:e?.metadata,verbose:e?.verbose,callbacks:e?.callbacks,searchType:e?.searchType};return e?.searchType==="mmr"?new ki({...a,searchKwargs:e.searchKwargs}):new ki({...a})}}},Bg=class extends Ci{static load(e,t){throw new Error("Not implemented")}};var Qp=class extends cr{_combineLLMOutput(){return[]}_llmType(){return"fake"}async _generate(e,t,r){if(t?.stop?.length)return{generations:[{message:new q(t.stop[0]),text:t.stop[0]}]};let n=e.map(s=>typeof s.content=="string"?s.content:JSON.stringify(s.content,null,2)).join(`
|
|
186
|
+
`);return await r?.handleLLMNewToken(n),{generations:[{message:new q(n),text:n}],llmOutput:{}}}},ef=class tf extends cr{sleep=50;responses=[];chunks=[];toolStyle="openai";thrownErrorString;tools=[];constructor({sleep:t=50,responses:r=[],chunks:n=[],toolStyle:s="openai",thrownErrorString:i,...a}){super(a),this.sleep=t,this.responses=r,this.chunks=n,this.toolStyle=s,this.thrownErrorString=i}_llmType(){return"fake"}bindTools(t){let r=[...this.tools,...t],n=r.map(a=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:a.name,description:a.description,parameters:ve(a.schema)}};case"anthropic":return{name:a.name,description:a.description,input_schema:ve(a.schema)};case"bedrock":return{toolSpec:{name:a.name,description:a.description,inputSchema:ve(a.schema)}};case"google":return{name:a.name,description:a.description,parameters:ve(a.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:n}]:n,i=new tf({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return i.tools=r,i.withConfig({tools:s})}async _generate(t,r,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);return{generations:[{text:"",message:new q({content:this.responses?.[0]?.content??t[0].content??"",tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(t,r,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);if(this.chunks?.length){for(let a of this.chunks){let o=new kr({message:new me({content:a.content,tool_calls:a.tool_calls,additional_kwargs:a.additional_kwargs??{}}),text:a.content?.toString()??""});if(r.signal?.aborted)break;yield o,await n?.handleLLMNewToken(a.content,void 0,void 0,void 0,void 0,{chunk:o})}return}let s=this.responses?.[0]??new q(typeof t[0].content=="string"?t[0].content:""),i=typeof s.content=="string"?s.content:"";for(let a of i){await new Promise(c=>setTimeout(c,this.sleep));let o=new kr({message:new me({content:a}),text:a});if(r.signal?.aborted)break;yield o,await n?.handleLLMNewToken(a,void 0,void 0,void 0,void 0,{chunk:o})}}},rf=class nf extends cr{static lc_name(){return"FakeListChatModel"}lc_serializable=!0;responses;i=0;sleep;emitCustomEvent=!1;generationInfo;tools=[];toolStyle="openai";constructor(t){super(t);let{responses:r,sleep:n,emitCustomEvent:s,generationInfo:i}=t;this.responses=r,this.sleep=n,this.emitCustomEvent=s??this.emitCustomEvent,this.generationInfo=i}_combineLLMOutput(){return[]}_llmType(){return"fake-list"}async _generate(t,r,n){if(await this._sleepIfRequested(),r?.thrownErrorString)throw new Error(r.thrownErrorString);if(this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0}),r?.stop?.length)return{generations:[this._formatGeneration(r.stop[0])]};{let s=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(s)],llmOutput:{}}}}_formatGeneration(t){return{message:new q(t),text:t}}async*_streamResponseChunks(t,r,n){let s=this._currentResponse();this._incrementResponse(),this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0});let i=[...s];for(let a=0;a<i.length;a++){let o=i[a],c=a===i.length-1;if(await this._sleepIfRequested(),r?.thrownErrorString)throw new Error(r.thrownErrorString);let l=this._createResponseChunk(o,c?this.generationInfo:void 0);if(r.signal?.aborted)break;yield l,n?.handleLLMNewToken(o)}}async _sleepIfRequested(){this.sleep!==void 0&&await this._sleep()}async _sleep(){return new Promise(t=>{setTimeout(()=>t(),this.sleep)})}_createResponseChunk(t,r){return new kr({message:new me({content:t}),text:t,generationInfo:r})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){this.i<this.responses.length-1?this.i+=1:this.i=0}bindTools(t){let r=[...this.tools,...t],n=r.map(a=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:a.name,description:a.description,parameters:ve(a.schema)}};case"anthropic":return{name:a.name,description:a.description,input_schema:ve(a.schema)};case"bedrock":return{toolSpec:{name:a.name,description:a.description,inputSchema:ve(a.schema)}};case"google":return{name:a.name,description:a.description,parameters:ve(a.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:n}]:n,i=new nf({responses:this.responses,sleep:this.sleep,emitCustomEvent:this.emitCustomEvent,generationInfo:this.generationInfo});return i.tools=r,i.toolStyle=this.toolStyle,i.i=this.i,i.withConfig({tools:s})}withStructuredOutput(t,r){return Fe.from(async n=>{let s=await this.invoke(n);if(s.tool_calls?.[0]?.args)return s.tool_calls[0].args;if(typeof s.content=="string")return JSON.parse(s.content);throw new Error("No structured output found")})}};var sf=class extends Xs{vectorSize;constructor(e){super(e??{}),this.vectorSize=e?.vectorSize??4}async embedDocuments(e){return Promise.all(e.map(t=>this.embedQuery(t)))}async embedQuery(e){let t=e;t=t.toLowerCase().replaceAll(/[^a-z ]/g,"");let r=t.length%this.vectorSize,n=r===0?0:this.vectorSize-r,s=t.length+n;t=t.padEnd(s," ");let i=t.length/this.vectorSize,a=[];for(let o=0;o<t.length;o+=i)a.push(t.slice(o,o+i));return a.map(o=>{let c=0;for(let l=0;l<o.length;l+=1)c+=o===" "?0:o.charCodeAt(l);return c%26/26})}},af=class extends Xs{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}};var of=class extends ii{response;thrownErrorString;constructor(e){super(e),this.response=e.response,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e,t,r){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let n=this.response??e;return await r?.handleLLMNewToken(n),n}},cf=class extends ii{sleep=50;responses;thrownErrorString;constructor(e){super(e),this.sleep=e.sleep??this.sleep,this.responses=e.responses,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let t=this.responses?.[0];return this.responses=this.responses?.slice(1),t??e}async*_streamResponseChunks(e,t,r){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let n=this.responses?.[0];this.responses=this.responses?.slice(1);for(let s of n??e)await new Promise(i=>setTimeout(i,this.sleep)),yield{text:s,generationInfo:{}},await r?.handleLLMNewToken(s)}};var lf=class extends Na{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new xe(e))}async addAIMessage(e){this.messages.push(new q(e))}async clear(){this.messages=[]}},uf=class extends Ys{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},hf=class extends Hr{name="fake_tracer";runs=[];constructor(){super()}persistRun(e){return this.runs.push(e),Promise.resolve()}};var pf=class extends rt{lc_namespace=["tests","fake"];getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}};var ff=class extends es{lc_namespace=["test","fake"];output=[new He({pageContent:"foo"}),new He({pageContent:"bar"})];constructor(e){super(),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}};var mf=class extends H{lc_namespace=["tests","fake"];returnOptions;constructor(e){super(e),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}};var df=class extends Cu{name;description;schema;constructor(e){super(e),this.name=e.name,this.description=e.description,this.schema=e.schema}async _call(e,t){return JSON.stringify(e)}};var gf=class extends Hr{runPromiseResolver;runPromise;name="single_run_extractor";constructor(){super(),this.runPromise=new Promise(e=>{this.runPromiseResolver=e})}async persistRun(e){this.runPromiseResolver(e)}async extract(){return this.runPromise}};var _f=class yf extends Ci{memoryVectors=[];similarity;_vectorstoreType(){return"memory"}constructor(t,{similarity:r,...n}={}){super(t,n),this.similarity=r??vi}async addDocuments(t){let r=t.map(({pageContent:n})=>n);return this.addVectors(await this.embeddings.embedDocuments(r),t)}async addVectors(t,r){let n=t.map((s,i)=>({content:r[i].pageContent,embedding:s,metadata:r[i].metadata}));this.memoryVectors=this.memoryVectors.concat(n)}async similaritySearchVectorWithScore(t,r,n){let s=a=>n?n(new He({metadata:a.metadata,pageContent:a.content})):!0,i=this.memoryVectors.filter(s);return i.map((a,o)=>({similarity:this.similarity(t,a.embedding),index:o})).sort((a,o)=>a.similarity>o.similarity?-1:0).slice(0,r).map(a=>[new He({metadata:i[a.index].metadata,pageContent:i[a.index].content}),a.similarity])}static async fromTexts(t,r,n,s){let i=[];for(let a=0;a<t.length;a+=1){let o=Array.isArray(r)?r[a]:r,c=new He({pageContent:t[a],metadata:o});i.push(c)}return yf.fromDocuments(i,n,s)}static async fromDocuments(t,r,n){let s=new this(r,n);return await s.addDocuments(t),s}static async fromExistingIndex(t,r){return new this(t,r)}};var bf=A({FakeChatMessageHistory:()=>lf,FakeChatModel:()=>Qp,FakeEmbeddings:()=>af,FakeLLM:()=>of,FakeListChatMessageHistory:()=>uf,FakeListChatModel:()=>rf,FakeRetriever:()=>ff,FakeRunnable:()=>mf,FakeSplitIntoListParser:()=>pf,FakeStreamingChatModel:()=>ef,FakeStreamingLLM:()=>cf,FakeTool:()=>df,FakeTracer:()=>hf,FakeVectorStore:()=>_f,SingleRunExtractor:()=>gf,SyntheticEmbeddings:()=>sf,asAsyncIterable:()=>di,openAIReasoningTextChunks:()=>_i,openAITextOnlyChunks:()=>as,openAITextOnlyChunksWithUsage:()=>gi,openAIToolCallChunks:()=>yi,sseResponseFromOpenAIChunks:()=>bi,streamMatchers:()=>an});var vf=A({agents:()=>Du,caches:()=>vl,callbacks__base:()=>wl,callbacks__manager:()=>Il,callbacks__promises:()=>xl,chat_history:()=>qu,document_loaders__base:()=>Xu,document_loaders__langsmith:()=>Zu,documents:()=>Yu,embeddings:()=>Qu,errors:()=>jc,example_selectors:()=>ch,index:()=>Ru,indexing:()=>hh,language_models__base:()=>bu,language_models__chat_models:()=>Uh,language_models__compat:()=>$h,language_models__event:()=>Gh,language_models__llms:()=>Wh,language_models__openai_completions_stream:()=>Hh,language_models__profile:()=>zh,language_models__stream:()=>Ph,language_models__structured_output:()=>Nh,load__serializable:()=>Pc,memory:()=>qh,messages:()=>zu,messages__tool:()=>el,output_parsers:()=>xh,output_parsers__openai_functions:()=>Xh,output_parsers__openai_tools:()=>Zh,outputs:()=>Ll,prompt_values:()=>mu,prompts:()=>hp,retrievers:()=>fp,retrievers__document_compressors:()=>pp,runnables:()=>dh,runnables__graph:()=>au,singletons:()=>Ol,stores:()=>mp,structured_query:()=>wp,testing:()=>Ap,tools:()=>ku,tracers__base:()=>Cl,tracers__console:()=>El,tracers__log_stream:()=>Dl,tracers__run_collector:()=>Op,tracers__tracer_langchain:()=>Tl,types__stream:()=>Np,utils__async_caller:()=>Fl,utils__chunk_array:()=>Mp,utils__context:()=>Pp,utils__env:()=>Dc,utils__event_source_parse:()=>Rp,utils__format:()=>jp,utils__function_calling:()=>$p,utils__hash:()=>Fc,utils__json_patch:()=>gh,utils__json_schema:()=>iu,utils__math:()=>Hp,utils__ssrf:()=>Wp,utils__standard_schema:()=>$l,utils__stream:()=>Pl,utils__testing:()=>bf,utils__tiktoken:()=>yu,utils__types:()=>Ih,utils__uuid:()=>xc,vectorstores:()=>Zp});var Vg=50;function Ug(e){let t={};for(let r=e;r&&r.prototype;r=Object.getPrototypeOf(r))Object.assign(t,Reflect.get(r.prototype,"lc_aliases"));return Object.entries(t).reduce((r,[n,s])=>(r[s]=n,r),{})}async function Ei(e){let{optionalImportsMap:t,optionalImportEntrypoints:r,importMap:n,secretsMap:s,secretsFromEnv:i,path:a,depth:o,maxDepth:c}=this,l=a.join(".");if(o>c)throw new Error(`Maximum recursion depth (${c}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof e!="object"||e==null)return e;if(Array.isArray(e))return Promise.all(e.map((p,m)=>Ei.call({...this,path:[...a,`${m}`],depth:o+1},p)));let u=e;if(Nc(u))return Mc(u);if("lc"in u&&"type"in u&&"id"in u&&u.lc===1&&u.type==="secret"){let[p]=u.id;if(p in s)return s[p];if(i){let m=vs(p);if(m)return m}throw new Error(`Missing secret "${p}" at ${l}`)}if("lc"in u&&"type"in u&&"id"in u&&u.lc===1&&u.type==="not_implemented"){let p=JSON.stringify(u);throw new Error(`Trying to load an object that doesn't implement serialization: ${l} -> ${p}`)}if("lc"in u&&"type"in u&&"id"in u&&"kwargs"in u&&u.lc===1&&u.type==="constructor"){let p=u,m=JSON.stringify(p),[d,...y]=p.id.slice().reverse(),v=y.reverse(),b={langchain_core:vf,langchain:n},S=null,k=[v.join("/")];v[0]==="langchain_community"&&k.push(["langchain",...v.slice(1)].join("/"));let C=k.find(x=>x in t);if(Pu.concat(r).includes(v.join("/"))||C)if(C!==void 0)S=await t[C];else throw new Error(`Missing key "${v.join("/")}" for ${l} in load(optionalImportsMap={})`);else{let x;if(v[0]==="langchain"||v[0]==="langchain_core")x=b[v[0]],v.shift();else throw new Error(`Invalid namespace: ${l} -> ${m}`);if(v.length===0)throw new Error(`Invalid namespace: ${l} -> ${m}`);let _;do{if(_=v.join("__"),_ in x)break;v.pop()}while(v.length>0);_ in x&&(S=x[_])}if(typeof S!="object"||S===null)throw new Error(`Invalid namespace: ${l} -> ${m}`);let T=S[d]??Object.values(S).find(x=>typeof x=="function"&&Rc(x)===d);if(typeof T!="function")throw new Error(`Invalid identifer: ${l} -> ${m}`);let O=new T(Oc(await Ei.call({...this,path:[...a,"kwargs"],depth:o+1},p.kwargs),Ac,Ug(T)));return Object.defineProperty(O.constructor,"name",{value:d}),O}let h={};for(let[p,m]of Object.entries(u))h[p]=await Ei.call({...this,path:[...a,p],depth:o+1},m);return h}async function wf(e,t){let r=JSON.parse(e),n={optionalImportsMap:t?.optionalImportsMap??{},optionalImportEntrypoints:t?.optionalImportEntrypoints??[],secretsMap:t?.secretsMap??{},secretsFromEnv:t?.secretsFromEnv??!1,importMap:t?.importMap??{},path:["$"],depth:0,maxDepth:t?.maxDepth??Vg};return Ei.call(n,r)}function Hg(e){return e!==null&&e.lc===1&&e.type==="constructor"&&Array.isArray(e.id)}async function Ao(e){if(e&&typeof e=="object"){if(Array.isArray(e))return await Promise.all(e.map(t=>Ao(t)));{let t={};for(let[r,n]of Object.entries(e))t[r]=await Ao(n);if(t.lc===2&&t.type==="undefined")return;if(t.lc===2&&t.type==="delta_snapshot")return new zr(t.value);if(t.lc===2&&t.type==="constructor"&&Array.isArray(t.id))try{let r=t.id[t.id.length-1],n;switch(r){case"Set":n=Set;break;case"Map":n=Map;break;case"RegExp":n=RegExp;break;case"Error":n=Error;break;case"Uint8Array":n=Uint8Array;break;default:return t}return t.method?n[t.method](...t.args||[]):new n(...t.args||[])}catch{return t}else if(Hg(t))return wf(JSON.stringify(t));return t}}return e}function Ti(e,t,r,n){return{lc:2,type:"constructor",id:[e.name],method:t??null,args:r??[],kwargs:n??{}}}function Gg(e){return e===void 0?{lc:2,type:"undefined"}:e instanceof zr?{lc:2,type:"delta_snapshot",value:e.value}:e instanceof Set||e instanceof Map?Ti(e.constructor,void 0,[Array.from(e)]):e instanceof RegExp?Ti(RegExp,void 0,[e.source,e.flags]):e instanceof Error?Ti(e.constructor,void 0,[e.message]):e?.lg_name==="Send"?{node:e.node,args:e.args,...e.timeout!==void 0?{timeout:e.timeout}:{}}:e instanceof Uint8Array?Ti(Uint8Array,"from",[Array.from(e)]):e}var xi=class{_dumps(e){return new TextEncoder().encode(Mu(e,(t,r)=>Gg(r)))}async dumpsTyped(e){return e instanceof Uint8Array?["bytes",e]:["json",this._dumps(e)]}async _loads(e){return Ao(JSON.parse(e))}async loadsTyped(e,t){if(e==="bytes")return typeof t=="string"?new TextEncoder().encode(t):t;if(e==="json")return this._loads(typeof t=="string"?t:new TextDecoder().decode(t));throw new Error(`Unknown serialization type: ${e}`)}};function Oo(e){if(typeof e!="object"||e===null)return e;let t=Array.isArray(e)?[]:{};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=Oo(e[r]));return t}function Dr(){return{v:4,id:Bn(0),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function it(e){return{v:e.v,id:e.id,ts:e.ts,channel_values:{...e.channel_values??{}},channel_versions:{...e.channel_versions??{}},versions_seen:Oo(e.versions_seen??{})}}var Ii=class{serde=new xi;constructor(e){this.serde=e||this.serde}toJSON(){return`[${this.constructor.name}]`}async get(e){let t=await this.getTuple(e);return t?t.checkpoint:void 0}async getDeltaChannelHistory(e){let{config:t,channels:r}=e;if(r.length===0)return{};let n={},s={},i=new Set(r);for(let c of r)n[c]=[];let a=(await this.getTuple(t))?.parentConfig;for(;a!=null&&i.size>0;){let c=await this.getTuple(a);if(c===void 0)break;if(c.pendingWrites&&c.pendingWrites.length>0){let l={};for(let u of c.pendingWrites){let h=u[1];i.has(h)&&(l[h]??=[]).push(u)}for(let u of Object.keys(l)){let h=l[u];h.sort((p,m)=>p[0]<m[0]?-1:p[0]>m[0]?1:0);for(let p=h.length-1;p>=0;p-=1)n[u].push(h[p])}}for(let l of Array.from(i))Object.prototype.hasOwnProperty.call(c.checkpoint.channel_values,l)&&(s[l]=c.checkpoint.channel_values[l],i.delete(l));a=c.parentConfig}let o={};for(let c of r){let l={writes:n[c].slice().reverse()};Object.prototype.hasOwnProperty.call(s,c)&&(l.seed=s[c]),o[c]=l}return o}getNextVersion(e){if(typeof e=="string")throw new Error("Please override this method to use string versions.");return e!==void 0&&typeof e=="number"?e+1:1}};function Ai(e,t){return typeof e=="number"&&typeof t=="number"?Math.sign(e-t):String(e).localeCompare(String(t))}function os(...e){return e.reduce((t,r,n)=>n===0?r:Ai(t,r)>=0?t:r)}var cs={[ka]:-1,[Mr]:-2,[Ca]:-3,[Ea]:-4},No=new Set(["thread_id","checkpoint_id","checkpoint_ns","checkpoint_map","langgraph_step","langgraph_node","langgraph_triggers","langgraph_path","langgraph_checkpoint_ns"]);function Oi(e){return e.configurable?.checkpoint_id||e.configurable?.thread_ts||""}var Wg=new Set(["__proto__","constructor","prototype"]);function ge(e,t,r={}){let{allowEmpty:n=!1}=r;if(typeof t!="string"){let s=t===null?"null":t===void 0?"undefined":Array.isArray(t)?"array":typeof t;throw new Error(`Invalid configurable value for key "${e}": expected a string identifier (got ${s}). This guard protects MemorySaver from prototype pollution.`)}if(!n&&t==="")throw new Error(`Invalid configurable value for key "${e}": empty string is not permitted as an in-memory storage key.`);if(Wg.has(t))throw new Error(`Invalid configurable value for key "${e}": value "${t}" is reserved (would mutate Object.prototype). This guard protects MemorySaver from prototype pollution.`)}function on(e,t,r){return JSON.stringify([e,t,r])}function Kg(e){let[t,r,n]=JSON.parse(e);return{threadId:t,checkpointNamespace:r,checkpointId:n}}var Sf=class extends Ii{storage=Object.create(null);writes=Object.create(null);constructor(e){super(e)}async _migratePendingSends(e,t,r,n){let s=e,i=on(t,r,n),a=await Promise.all(Object.values(this.writes[i]??{}).filter(([o,c])=>c===Vn).map(async([o,c,l])=>await this.serde.loadsTyped("json",l)));s.channel_values??={},s.channel_values[Vn]=a,s.channel_versions??={},s.channel_versions[Vn]=Object.keys(s.channel_versions).length>0?os(...Object.values(s.channel_versions)):this.getNextVersion(void 0)}async getTuple(e){let t=e.configurable?.thread_id,r=e.configurable?.checkpoint_ns??"",n=Oi(e);if(t!==void 0&&ge("thread_id",t),ge("checkpoint_ns",r,{allowEmpty:!0}),n&&ge("checkpoint_id",n),n){let s=this.storage[t]?.[r]?.[n];if(s!==void 0){let[i,a,o]=s,c=on(t,r,n),l=await this.serde.loadsTyped("json",i);l.v<4&&o!==void 0&&await this._migratePendingSends(l,t,r,o);let u=await Promise.all(Object.values(this.writes[c]||{}).map(async([p,m,d])=>[p,m,await this.serde.loadsTyped("json",d)])),h={config:e,checkpoint:l,metadata:await this.serde.loadsTyped("json",a),pendingWrites:u};return o!==void 0&&(h.parentConfig={configurable:{thread_id:t,checkpoint_ns:r,checkpoint_id:o}}),h}}else{let s=this.storage[t]?.[r];if(s!==void 0){n=Object.keys(s).sort((p,m)=>m.localeCompare(p))[0];let[i,a,o]=s[n],c=on(t,r,n),l=await this.serde.loadsTyped("json",i);l.v<4&&o!==void 0&&await this._migratePendingSends(l,t,r,o);let u=await Promise.all(Object.values(this.writes[c]||{}).map(async([p,m,d])=>[p,m,await this.serde.loadsTyped("json",d)])),h={config:{configurable:{thread_id:t,checkpoint_id:n,checkpoint_ns:r}},checkpoint:l,metadata:await this.serde.loadsTyped("json",a),pendingWrites:u};return o!==void 0&&(h.parentConfig={configurable:{thread_id:t,checkpoint_ns:r,checkpoint_id:o}}),h}}}async*list(e,t){let{before:r,limit:n,filter:s}=t??{};e.configurable?.thread_id!==void 0&&ge("thread_id",e.configurable.thread_id),e.configurable?.checkpoint_ns!==void 0&&ge("checkpoint_ns",e.configurable.checkpoint_ns,{allowEmpty:!0}),e.configurable?.checkpoint_id&&ge("checkpoint_id",e.configurable.checkpoint_id),r?.configurable?.checkpoint_id&&ge("checkpoint_id",r.configurable.checkpoint_id);let i=e.configurable?.thread_id?[e.configurable?.thread_id]:Object.keys(this.storage),a=e.configurable?.checkpoint_ns,o=e.configurable?.checkpoint_id;for(let c of i)for(let l of Object.keys(this.storage[c]??{})){if(a!==void 0&&l!==a)continue;let u=this.storage[c]?.[l]??{},h=Object.entries(u).sort((p,m)=>m[0].localeCompare(p[0]));for(let[p,[m,d,y]]of h){if(o&&p!==o||r&&r.configurable?.checkpoint_id&&p>=r.configurable.checkpoint_id)continue;let v=await this.serde.loadsTyped("json",d);if(s&&!Object.entries(s).every(([O,x])=>v[O]===x))continue;if(n!==void 0){if(n<=0)break;n-=1}let b=on(c,l,p),S=Object.values(this.writes[b]||{}),k=await Promise.all(S.map(async([O,x,_])=>[O,x,await this.serde.loadsTyped("json",_)])),C=await this.serde.loadsTyped("json",m);C.v<4&&y!==void 0&&await this._migratePendingSends(C,c,l,y);let T={config:{configurable:{thread_id:c,checkpoint_ns:l,checkpoint_id:p}},checkpoint:C,metadata:v,pendingWrites:k};y!==void 0&&(T.parentConfig={configurable:{thread_id:c,checkpoint_ns:l,checkpoint_id:y}}),yield T}}}async put(e,t,r){let n=it(t),s=e.configurable?.thread_id,i=e.configurable?.checkpoint_ns??"";if(s===void 0)throw new Error('Failed to put checkpoint. The passed RunnableConfig is missing a required "thread_id" field in its "configurable" property. When using a checkpointer, you must pass a "thread_id" so the checkpointer knows which conversation thread to persist state for. Example: graph.stream(input, { configurable: { thread_id: "my-thread-id" } })');ge("thread_id",s),ge("checkpoint_ns",i,{allowEmpty:!0}),ge("checkpoint_id",t.id),this.storage[s]||(this.storage[s]=Object.create(null)),this.storage[s][i]||(this.storage[s][i]=Object.create(null));let[[,a],[,o]]=await Promise.all([this.serde.dumpsTyped(n),this.serde.dumpsTyped(r)]);return this.storage[s][i][t.id]=[a,o,e.configurable?.checkpoint_id],{configurable:{thread_id:s,checkpoint_ns:i,checkpoint_id:t.id}}}async putWrites(e,t,r){let n=e.configurable?.thread_id,s=e.configurable?.checkpoint_ns,i=e.configurable?.checkpoint_id;if(n===void 0)throw new Error('Failed to put writes. The passed RunnableConfig is missing a required "thread_id" field in its "configurable" property. When using a checkpointer, you must pass a "thread_id" so the checkpointer knows which conversation thread to persist state for. Example: graph.stream(input, { configurable: { thread_id: "my-thread-id" } })');if(i===void 0)throw new Error('Failed to put writes. The passed RunnableConfig is missing a required "checkpoint_id" field in its "configurable" property.');ge("thread_id",n),ge("checkpoint_ns",s,{allowEmpty:!0}),ge("checkpoint_id",i),ge("task_id",r);let a=on(n,s,i),o=this.writes[a];this.writes[a]===void 0&&(this.writes[a]=Object.create(null)),await Promise.all(t.map(async([c,l],u)=>{let[,h]=await this.serde.dumpsTyped(l),p=[r,cs[c]||u],m=`${p[0]},${p[1]}`;p[1]>=0&&o&&m in o||(this.writes[a][m]=[r,c,h])}))}async deleteThread(e){ge("thread_id",e),delete this.storage[e];for(let t of Object.keys(this.writes))Kg(t).threadId===e&&delete this.writes[t]}async getDeltaChannelHistory(e){let{config:t,channels:r}=e;if(r.length===0)return{};let n=t.configurable?.thread_id,s=t.configurable?.checkpoint_ns??"",i=Oi(t);n!==void 0&&ge("thread_id",n),ge("checkpoint_ns",s,{allowEmpty:!0});let a=this.storage[n]?.[s]??{},o=[],c=(i?a[i]:void 0)?.[2];for(;c!==void 0;){let m=a[c];if(m===void 0)break;o.push(c),c=m[2]}let l={},u={},h=new Set(r);for(let m of r)l[m]=[];for(let m of o){if(h.size===0)break;let d=a[m],y=d!==void 0?await this.serde.loadsTyped("json",d[0]):void 0,v={},b=new Set;if(y!==void 0)for(let C of h)Object.prototype.hasOwnProperty.call(y.channel_values,C)&&y.channel_values[C]!==void 0&&(v[C]=y.channel_values[C],b.add(C));let S=on(n,s,m),k=Object.entries(this.writes[S]??{});k.sort(([C],[T])=>{let[O,x]=C.split(","),[_,P]=T.split(",");return O!==_?O<_?1:-1:Number(P)-Number(x)});for(let[,[C,T,O]]of k)h.has(T)&&l[T].push([C,T,await this.serde.loadsTyped("json",O)]);for(let C of b)u[C]=v[C],h.delete(C)}let p={};for(let m of r){let d={writes:l[m].slice().reverse()};Object.prototype.hasOwnProperty.call(u,m)&&(d.seed=u[m]),p[m]=d}return p}};var cn=class extends Error{constructor(e){super(e),this.name="InvalidNamespaceError"}};function zg(e){if(e.length===0)throw new cn("Namespace cannot be empty.");for(let t of e){if(typeof t!="string")throw new cn(`Invalid namespace label '${t}' found in ${e}. Namespace labels must be strings, but got ${typeof t}.`);if(t.includes("."))throw new cn(`Invalid namespace label '${t}' found in ${e}. Namespace labels cannot contain periods ('.').`);if(t==="")throw new cn(`Namespace labels cannot be empty strings. Got ${t} in ${e}`)}if(e[0]==="langgraph")throw new cn(`Root label for namespace cannot be "langgraph". Got: ${e}`)}var ln=class{async get(e,t){return(await this.batch([{namespace:e,key:t}]))[0]}async search(e,t={}){let{filter:r,limit:n=10,offset:s=0,query:i}=t;return(await this.batch([{namespacePrefix:e,filter:r,limit:n,offset:s,query:i}]))[0]}async put(e,t,r,n){zg(e),await this.batch([{namespace:e,key:t,value:r,index:n}])}async delete(e,t){await this.batch([{namespace:e,key:t,value:null}])}async listNamespaces(e={}){let{prefix:t,suffix:r,maxDepth:n,limit:s=100,offset:i=0}=e,a=[];return t&&a.push({matchType:"prefix",path:t}),r&&a.push({matchType:"suffix",path:r}),(await this.batch([{matchConditions:a.length?a:void 0,maxDepth:n,limit:s,offset:i}]))[0]}start(){}stop(){}};var qg=e=>"lg_name"in e&&e.lg_name==="AsyncBatchedStore"?e.store:e,Ni=class extends ln{lg_name="AsyncBatchedStore";store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(e){super(),this.store=qg(e)}get isRunning(){return this.running}async batch(e){throw new Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(e,t){return this.enqueueOperation({namespace:e,key:t})}async search(e,t){let{filter:r,limit:n=10,offset:s=0,query:i}=t||{};return this.enqueueOperation({namespacePrefix:e,filter:r,limit:n,offset:s,query:i})}async put(e,t,r){return this.enqueueOperation({namespace:e,key:t,value:r})}async delete(e,t){return this.enqueueOperation({namespace:e,key:t,value:null})}start(){this.running||(this.running=!0,this.processingTask=this.processBatchQueue())}async stop(){this.running=!1,this.processingTask&&await this.processingTask}enqueueOperation(e){return new Promise((t,r)=>{let n=this.nextKey;this.nextKey+=1,this.queue.set(n,{operation:e,resolve:t,reject:r})})}async processBatchQueue(){for(;this.running;){if(await new Promise(t=>{setTimeout(t,0)}),this.queue.size===0)continue;let e=new Map(this.queue);this.queue.clear();try{let t=Array.from(e.values()).map(({operation:n})=>n),r=await this.store.batch(t);e.forEach(({resolve:n},s)=>{n(r[Array.from(e.keys()).indexOf(s)])})}catch(t){e.forEach(({reject:r})=>{r(t)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:"[LangGraphStore]"}}};function ls(e){if(!e)return[];let t=[],r=[],n=0;for(;n<e.length;){let s=e[n];if(s==="["){r.length&&(t.push(r.join("")),r=[]);let i=1,a=["["];for(n+=1;n<e.length&&i>0;)e[n]==="["?i+=1:e[n]==="]"&&(i-=1),a.push(e[n]),n+=1;t.push(a.join(""));continue}else if(s==="{"){r.length&&(t.push(r.join("")),r=[]);let i=1,a=["{"];for(n+=1;n<e.length&&i>0;)e[n]==="{"?i+=1:e[n]==="}"&&(i-=1),a.push(e[n]),n+=1;t.push(a.join(""));continue}else s==="."?r.length&&(t.push(r.join("")),r=[]):r.push(s);n+=1}return r.length&&t.push(r.join("")),t}function Jg(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>t==="$eq"||t==="$ne"||t==="$gt"||t==="$gte"||t==="$lt"||t==="$lte"||t==="$in"||t==="$nin")}function kf(e,t){return Jg(t)?Object.keys(t).filter(r=>r.startsWith("$")).every(r=>{let n=t[r];switch(r){case"$eq":return e===n;case"$ne":return e!==n;case"$gt":return Number(e)>Number(n);case"$gte":return Number(e)>=Number(n);case"$lt":return Number(e)<Number(n);case"$lte":return Number(e)<=Number(n);case"$in":return Array.isArray(n)?n.includes(e):!1;case"$nin":return Array.isArray(n)?!n.includes(e):!0;default:return!1}}):e===t}function Cf(e,t){if(!t||t==="$")return[JSON.stringify(e,null,2)];let r=Array.isArray(t)?t:ls(t);function n(s,i,a){if(a>=i.length)return typeof s=="string"||typeof s=="number"||typeof s=="boolean"?[String(s)]:s==null?[]:Array.isArray(s)||typeof s=="object"?[JSON.stringify(s,null,2)]:[];let o=i[a],c=[];if(a===0&&o==="$"&&c.push(JSON.stringify(s,null,2)),o.startsWith("[")&&o.endsWith("]")){if(!Array.isArray(s))return[];let l=o.slice(1,-1);if(l==="*")for(let u of s)c.push(...n(u,i,a+1));else try{let u=parseInt(l,10);u<0&&(u=s.length+u),u>=0&&u<s.length&&c.push(...n(s[u],i,a+1))}catch{return[]}}else if(o.startsWith("{")&&o.endsWith("}")){if(typeof s!="object"||s===null)return[];let l=o.slice(1,-1).split(",").map(u=>u.trim());for(let u of l){let h=ls(u);if(h.length){let p=s;for(let m of h)if(p&&typeof p=="object"&&m in p)p=p[m];else{p=void 0;break}p!==void 0&&(typeof p=="string"||typeof p=="number"||typeof p=="boolean"?c.push(String(p)):(Array.isArray(p)||typeof p=="object")&&c.push(JSON.stringify(p,null,2)))}}}else if(o==="*"){if(Array.isArray(s))for(let l of s)c.push(...n(l,i,a+1));else if(typeof s=="object"&&s!==null)for(let l of Object.values(s))c.push(...n(l,i,a+1))}else typeof s=="object"&&s!==null&&o in s&&c.push(...n(s[o],i,a+1));return c}return n(e,r,0)}var Ef=class extends ln{data=new Map;vectors=new Map;_indexConfig;constructor(e){super(),e?.index&&(this._indexConfig={...e.index,__tokenizedFields:(e.index.fields??["$"]).map(t=>[t,t==="$"?[t]:ls(t)])})}async batch(e){let t=[],r=new Map,n=new Map;for(let s=0;s<e.length;s+=1){let i=e[s];if("key"in i&&"namespace"in i&&!("value"in i))t.push(this.getOperation(i));else if("namespacePrefix"in i){let a=this.filterItems(i);n.set(s,[i,a]),t.push(null)}else if("value"in i){let a=`${i.namespace.join(":")}:${i.key}`;r.set(a,i),t.push(null)}else"matchConditions"in i&&t.push(this.listNamespacesOperation(i))}if(n.size>0)if(this._indexConfig?.embeddings){let s=new Set;for(let[o]of n.values())o.query&&s.add(o.query);let i=s.size>0?await Promise.all(Array.from(s).map(o=>this._indexConfig.embeddings.embedQuery(o))):[],a=Object.fromEntries(Array.from(s).map((o,c)=>[o,i[c]]));for(let[o,[c,l]]of n.entries())if(c.query&&a[c.query]){let u=a[c.query];t[o]=this.scoreResults(l,u,c.offset??0,c.limit??10)}else t[o]=this.paginateResults(l.map(u=>({...u,score:void 0})),c.offset??0,c.limit??10)}else for(let[s,[i,a]]of n.entries())t[s]=this.paginateResults(a.map(o=>({...o,score:void 0})),i.offset??0,i.limit??10);if(r.size>0&&this._indexConfig?.embeddings){let s=this.extractTexts(Array.from(r.values()));if(Object.keys(s).length>0){let i=await this._indexConfig.embeddings.embedDocuments(Object.keys(s));this.insertVectors(s,i)}}for(let s of r.values())this.putOperation(s);return t}getOperation(e){let t=e.namespace.join(":");return this.data.get(t)?.get(e.key)??null}putOperation(e){let t=e.namespace.join(":");this.data.has(t)||this.data.set(t,new Map);let r=this.data.get(t);if(e.value===null)r.delete(e.key);else{let n=new Date;if(r.has(e.key)){let s=r.get(e.key);s.value=e.value,s.updatedAt=n}else r.set(e.key,{value:e.value,key:e.key,namespace:e.namespace,createdAt:n,updatedAt:n})}}listNamespacesOperation(e){let t=Array.from(this.data.keys()).map(r=>r.split(":"));return e.matchConditions&&e.matchConditions.length>0&&(t=t.filter(r=>e.matchConditions.every(n=>this.doesMatch(n,r)))),e.maxDepth!==void 0&&(t=Array.from(new Set(t.map(r=>r.slice(0,e.maxDepth).join(":")))).map(r=>r.split(":"))),t.sort((r,n)=>r.join(":").localeCompare(n.join(":"))),t.slice(e.offset??0,(e.offset??0)+(e.limit??t.length))}doesMatch(e,t){let{matchType:r,path:n}=e;if(r==="prefix")return n.length>t.length?!1:n.every((s,i)=>{let a=t[i];return s==="*"||a===s});if(r==="suffix")return n.length>t.length?!1:n.every((s,i)=>{let a=t[t.length-n.length+i];return s==="*"||a===s});throw new Error(`Unsupported match type: ${r}`)}filterItems(e){let t=[];for(let[n,s]of this.data.entries())n.startsWith(e.namespacePrefix.join(":"))&&t.push(...s.values());let r=t;return e.filter&&(r=t.filter(n=>Object.entries(e.filter).every(([s,i])=>kf(n.value[s],i)))),r}scoreResults(e,t,r=0,n=10){let s=[],i=[],a=[];for(let u of e){let h=this.getVectors(u);if(h.length)for(let p of h)s.push(u),i.push(p);else a.push(u)}let o=this.cosineSimilarity(t,i).map((u,h)=>[u,s[h]]).sort((u,h)=>h[0]-u[0]),c=new Set,l=[];for(let[u,h]of o){let p=`${h.namespace.join(":")}:${h.key}`;if(c.has(p))continue;let m=c.size;if(m>=r+n)break;if(m<r){c.add(p);continue}c.add(p),l.push([u,h])}if(a.length&&l.length<n)for(let u of a.slice(0,n-l.length)){let h=`${u.namespace.join(":")}:${u.key}`;c.has(h)||(c.add(h),l.push([void 0,u]))}return l.map(([u,h])=>({...h,score:u}))}paginateResults(e,t,r){return e.slice(t,t+r)}extractTexts(e){if(!e.length||!this._indexConfig)return{};let t={};for(let r of e)if(r.value!==null&&r.index!==!1){let n=r.index===null||r.index===void 0?this._indexConfig.__tokenizedFields??[]:r.index.map(s=>[s,ls(s)]);for(let[s,i]of n){let a=Cf(r.value,i);a.length&&(a.length>1?a.forEach((o,c)=>{t[o]||(t[o]=[]),t[o].push([r.namespace,r.key,`${s}.${c}`])}):(t[a[0]]||(t[a[0]]=[]),t[a[0]].push([r.namespace,r.key,s])))}}return t}insertVectors(e,t){for(let[r,n]of Object.entries(e)){let s=t.shift();if(!s)throw new Error(`No embedding found for text: ${r}`);for(let[i,a,o]of n){let c=i.join(":");this.vectors.has(c)||this.vectors.set(c,new Map);let l=this.vectors.get(c);l.has(a)||l.set(a,new Map),l.get(a).set(o,s)}}}getVectors(e){let t=e.namespace.join(":"),r=e.key;if(!this.vectors.has(t))return[];let n=this.vectors.get(t);if(!n.has(r))return[];let s=n.get(r),i=Array.from(s.values());return i.length?i:[]}cosineSimilarity(e,t){if(!t.length)return[];let r=t.map(i=>i.reduce((a,o,c)=>a+o*e[c],0)),n=Math.sqrt(e.reduce((i,a)=>i+a*a,0)),s=t.map(i=>Math.sqrt(i.reduce((a,o)=>a+o*o,0)));return r.map((i,a)=>{let o=s[a];return n&&o?i/(n*o):0})}get indexConfig(){return this._indexConfig}};var Mi=class{serde=new xi;constructor(e){this.serde=e||this.serde}};var Yg=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function qe(e){return e!=null&&e.lc_graph_name==="DeltaChannel"}function Po(e){return e!=null&&e.lg_is_channel===!0}var ie=class{ValueType;UpdateType;lg_is_channel=!0;consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===W.unminifiable_name)return!1;throw e}}equals(e){return this===e}},Mo=Symbol.for("LG_IS_ONLY_BASE_CHANNEL");function un(e){if(e[Mo]===!0)return e;let t={};for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let n=e[r];Po(n)&&(t[r]=n)}return Object.assign(t,{[Mo]:!0}),t}function Pi(e,t){let r=un(e),n={};for(let s in r){if(!Object.prototype.hasOwnProperty.call(r,s))continue;let i=t.channel_values[s];n[s]=r[s].fromCheckpoint(i)}return Object.assign(n,{[Mo]:!0}),n}function Ro(e,t){if(!Yg.test(t))throw new TypeError(`Invalid task id for exit delta: ${t}`);let r=t.toLowerCase().split("-");return`${String(e).padStart(8,"0")}-${r[1]}-${r[2]}-${r[3]}-${r[4]}`}function Ri(e,t){let r=new Set,n=Tu();for(let s in e){if(!Object.prototype.hasOwnProperty.call(e,s))continue;let i=e[s];if(!qe(i)||!i.isAvailable())continue;let[a,o]=t[s]??[0,0];(a>=i.snapshotFrequency||o>=n)&&r.add(s)}return r}function at(e,t,r,n){let s=n?.channelsToSnapshot??new Set,{updatedChannels:i,getNextVersion:a}=n??{},o,c=e.channel_versions;if(t===void 0)o=e.channel_values;else{o={},c={...e.channel_versions};for(let l in t){if(!Object.prototype.hasOwnProperty.call(t,l))continue;let u=t[l];if(s.has(l)){a!==void 0&&(i===void 0||!i.has(l))&&(c[l]=a(c[l])),o[l]=new zr(u.get());continue}if(!qe(u))try{o[l]=u.checkpoint()}catch(h){if(h.name!==W.unminifiable_name)throw h}}}return{v:4,id:n?.id??Bn(r),ts:new Date().toISOString(),channel_values:o,channel_versions:c,versions_seen:e.versions_seen}}async function hn(e,t,r){let n=Pi(e,t),{saver:s,config:i}=r??{},a=un(e),o=[];for(let l in a)Object.prototype.hasOwnProperty.call(a,l)&&qe(a[l])&&!Object.prototype.hasOwnProperty.call(t.channel_values,l)&&o.push(l);if(o.length===0||s===void 0||i===void 0)return n;let c=await s.getDeltaChannelHistory({config:i,channels:o});for(let l of o){let u=c[l];if(u===void 0)continue;let h=a[l].fromCheckpoint(u.seed);h.replayWrites(u.writes),n[l]=h}return n}var Xg=e=>e!=null&&e.lc_graph_name==="BinaryOperatorAggregate",Ft=class Tf extends ie{lc_graph_name="BinaryOperatorAggregate";value;operator;initialValueFactory;constructor(t,r){super(),this.operator=t,this.initialValueFactory=r,this.value=r?.()}fromCheckpoint(t){let r=new Tf(this.operator,this.initialValueFactory);return typeof t<"u"&&(r.value=t),r}update(t){let r=t;if(!r.length)return!1;if(this.value===void 0){let s=r[0],[i,a]=tt(s);i?this.value=a:this.value=s,r=r.slice(1)}let n=!1;for(let s of r)if(Ar(s)){if(n)throw new $("Can receive only one Overwrite value per step.");let[,i]=tt(s);this.value=i,n=!0;continue}else!n&&this.value!==void 0&&(this.value=this.operator(this.value,s));return!0}get(){if(this.value===void 0)throw new W;return this.value}checkpoint(){if(this.value===void 0)throw new W;return this.value}isAvailable(){return this.value!==void 0}equals(t){return this===t?!0:Xg(t)?this.operator===t.operator:!1}};var ot=class xf extends ie{lc_graph_name="LastValue";value=[];constructor(t){super(),this.initialValueFactory=t,t&&(this.value=[t()])}fromCheckpoint(t){let r=new xf(this.initialValueFactory);return typeof t<"u"&&(r.value=[t]),r}update(t){if(t.length===0)return!1;if(t.length!==1)throw new $("LastValue can only receive one value per step.",{lc_error_code:"INVALID_CONCURRENT_GRAPH_UPDATE"});return this.value=[t[t.length-1]],!0}get(){if(this.value.length===0)throw new W;return this.value[0]}checkpoint(){if(this.value.length===0)throw new W;return this.value[0]}isAvailable(){return this.value.length!==0}},Do=class If extends ie{lc_graph_name="LastValueAfterFinish";value=[];finished=!1;fromCheckpoint(t){let r=new If;if(typeof t<"u"){let[n,s]=t;r.value=[n],r.finished=s}return r}update(t){return t.length===0?!1:(this.finished=!1,this.value=[t[t.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new W;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}};var Di=class{lc_graph_name="AnnotationRoot";spec;constructor(e){this.spec=e}static isInstance(e){return typeof e=="object"&&e!==null&&"lc_graph_name"in e&&e.lc_graph_name==="AnnotationRoot"}},us=function(e){return e?Li(e):new ot};us.Root=e=>new Di(e);function Li(e){return typeof e=="object"&&e&&"reducer"in e&&e.reducer?new Ft(e.reducer,e.default):typeof e=="object"&&e&&"value"in e&&e.value?new Ft(e.value,e.default):new ot}var Zg=["tags","metadata","callbacks","configurable"],Qg=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","interrupt","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal","heartbeat","executionInfo","serverInfo","control"],e_=25,t_=new Set(["thread_id","checkpoint_id","checkpoint_ns","task_id","run_id","assistant_id","graph_id"]);function r_(e,t){if(!e)return t;let r=t??{};for(let n of t_){if(n in r)continue;let s=e[n];s!==void 0&&(r[n]=s)}return r}function Af(e){if(e==null||e.length===0)return;let t=e.filter(r=>!r.startsWith("seq:step"));return t.length>0?t:void 0}function n_(e,t){if(t===void 0)return e;if(e===void 0)return Array.isArray(t)?[...t]:t.copy();if(Array.isArray(t)){if(Array.isArray(e))return e.concat(t);let r=e.copy();for(let n of t)r.addHandler(ma(n),!0);return r}if(Array.isArray(e)){let r=t.copy();for(let n of e)r.addHandler(ma(n),!0);return r}return new De(t._parentRunId,{handlers:e.handlers.concat(t.handlers),inheritableHandlers:e.inheritableHandlers.concat(t.inheritableHandlers),tags:Array.from(new Set(e.tags.concat(t.tags))),inheritableTags:Array.from(new Set(e.inheritableTags.concat(t.inheritableTags))),metadata:{...e.metadata,...t.metadata},inheritableMetadata:{...e.inheritableMetadata,...t.inheritableMetadata}})}function s_(e){let t;for(let i=e.length-1;i>=0;i-=1)if(e[i]!==void 0){t=e[i];break}let r=t?.configurable?.thread_id!==void 0,n=e.some(i=>i?.configurable?.[Ie]!==void 0),s=oe.getRunnableConfig()?.configurable?.[Ie]!==void 0;return r&&!n&&!s}function pn(...e){let t={tags:[],metadata:{},callbacks:void 0,recursionLimit:e_,configurable:{}},r=s_(e),n=oe.getRunnableConfig();if(n!==void 0){for(let[s,i]of Object.entries(n))if(i!==void 0){if(s==="configurable"&&r)continue;if(Zg.includes(s)){let a;Array.isArray(i)?a=[...i]:typeof i=="object"?s==="callbacks"&&"copy"in i&&typeof i.copy=="function"?a=i.copy():a={...i}:a=i,t[s]=a}else t[s]=i}}for(let s of e)if(s!==void 0)for(let[i,a]of Object.entries(s))a===void 0||!Qg.includes(i)||(i==="configurable"?t.configurable={...t.configurable,...a}:i==="metadata"?t.metadata={...t.metadata,...a}:i==="tags"?t.tags=[...t.tags??[],...a]:i==="callbacks"?t.callbacks=n_(t.callbacks,a):t[i]=a);return t.metadata=r_(t.configurable,t.metadata)??{},t}function i_(e){let t=e??oe.getRunnableConfig();if(t===void 0)throw new Error(["Config not retrievable. This is likely because you are running in an environment without support for AsyncLocalStorage.","If you're running `getStore` in such environment, pass the `config` from the node function directly."].join(`
|
|
187
|
+
`));return t?.store}function a_(e){let t=e??oe.getRunnableConfig();if(t===void 0)throw new Error(["Config not retrievable. This is likely because you are running in an environment without support for AsyncLocalStorage.","If you're running `getWriter` in such environment, pass the `config` from the node function directly."].join(`
|
|
188
|
+
`));return t?.writer||t?.configurable?.writer}function Fi(){return oe.getRunnableConfig()}function o_(e){let t=e??oe.getRunnableConfig();if(t===void 0)throw new Error(["Config not retrievable. This is likely because you are running in an environment without support for AsyncLocalStorage.","If you're running `getCurrentTaskInput` in such environment, pass the `config` from the node function directly."].join(`
|
|
189
|
+
`));if(t.configurable?.__pregel_scratchpad?.currentTaskInput===void 0)throw new Error("BUG: internal scratchpad not initialized.");return t.configurable[Ae].currentTaskInput}function ji(e){return e.split("|").filter(t=>!t.match(/^\d+$/)).map(t=>t.split(":")[0]).join("|")}function Of(e){let t=e.split("|");for(;t.length>1&&t[t.length-1].match(/^\d+$/);)t.pop();return t.slice(0,-1).join("|")}var Lo=class{#e=void 0;requestDrain(e="shutdown"){this.#e=e}get drainRequested(){return this.#e!==void 0}get drainReason(){return this.#e}};var Fo=["values","updates","messages","tools","custom","tasks"];function fn(e){if(e==null||typeof e!="object")return!1;let t=e;return typeof t.id=="string"&&("source"in t||typeof t.step=="number")&&!("values"in t)&&!("config"in t)}function c_(e){if(!Array.isArray(e)||e.length!==2)return{data:e};let[t,r]=e;if(r==null||typeof r!="object")return{data:e};let n=r,s=typeof n.langgraph_node=="string"?n.langgraph_node:void 0,i=typeof n.run_id=="string"?n.run_id:void 0;return{data:i!=null&&t!=null&&typeof t=="object"?{...t,run_id:i}:t,node:s}}function jo({namespace:e,mode:t,payload:r,seq:n}){let s=Date.now(),i={type:"event"};switch(t){case"messages":{let{data:a,node:o}=c_(r);return[{...i,seq:n,method:"messages",params:{namespace:e,timestamp:s,...o?{node:o}:{},data:a}}]}case"tools":return[{...i,seq:n,method:"tools",params:{namespace:e,timestamp:s,data:l_(r)}}];case"checkpoints":return fn(r)?[{...i,seq:n,method:"checkpoints",params:{namespace:e,timestamp:s,data:r}}]:[];case"values":return[{...i,seq:n,method:"values",params:{namespace:e,timestamp:s,data:r}}];case"updates":{let a=u_(r);return[{...i,seq:n,method:"updates",params:{namespace:e,timestamp:s,...typeof a.node=="string"?{node:a.node}:{},data:a}}]}case"custom":{let a=typeof r=="object"&&r!==null&&!Array.isArray(r)&&"name"in r?r:{payload:r};return[{...i,seq:n,method:"custom",params:{namespace:e,timestamp:s,data:a}}]}case"tasks":return[{...i,seq:n,method:"tasks",params:{namespace:e,timestamp:s,data:r}}];default:return[]}}function l_(e){if(typeof e!="object"||e===null)return{event:"tool-error",tool_call_id:"",message:"Unexpected tools payload shape"};let t=e,r=String(t.toolCallId??"");switch(t.event){case"on_tool_start":return{event:"tool-started",tool_call_id:r,tool_name:String(t.name??"unknown"),input:t.input};case"on_tool_event":return{event:"tool-output-delta",tool_call_id:r,delta:typeof t.data=="string"?t.data:JSON.stringify(t.data??"")};case"on_tool_end":return{event:"tool-finished",tool_call_id:r,output:t.output};case"on_tool_error":{let n=t.error;return{event:"tool-error",tool_call_id:r,message:typeof n=="object"&&n!==null&&"message"in n&&typeof n.message=="string"?n.message:String(n??"unknown error")}}default:return{event:"tool-error",tool_call_id:"",message:`Unknown tool event: ${String(t.event)}`}}}function u_(e){if(typeof e!="object"||e===null)return{values:{}};let t=Object.entries(e);if(t.length===0)return{values:{}};let[r,n]=t[0];return{node:r,values:typeof n=="object"&&n!==null?n:{value:n}}}var $o=Symbol.for("langgraph.stream_channel"),Je=class Bo{[$o]=!0;channelName;#e=[];#t=[];#n=!1;#i;#s;constructor(t){this.channelName=t}static local(){return new Bo}static remote(t){return new Bo(t)}static isInstance(t){return typeof t=="object"&&t!==null&&$o in t&&t[$o]===!0}push(t){this.#e.push(t),this.#r(),this.#s?.(t)}iterate(t=0){let r=t;return{next:async()=>{for(;;){if(r<this.#e.length)return{value:this.#e[r++],done:!1};if(this.#n){if(this.#i)throw this.#i;return{value:void 0,done:!0}}await new Promise(n=>this.#t.push(n))}}}}toAsyncIterable(t=0){return{[Symbol.asyncIterator]:()=>this.iterate(t)}}toEventStream(t={}){let r=new TextEncoder,n=this.iterate(t.startAt),s=t.event??this.channelName,i=t.serialize??(a=>JSON.stringify(a)??"null");return new ReadableStream({async pull(a){try{let o=await n.next();if(o.done){a.close();return}let c=[];s!=null&&c.push(`event: ${s}`);for(let l of i(o.value).split(/\r\n|\r|\n/))c.push(`data: ${l}`);a.enqueue(r.encode(`${c.join(`
|
|
190
|
+
`)}
|
|
191
|
+
|
|
192
|
+
`))}catch(o){a.error(o)}},async cancel(){await n.return?.()}})}get(t){if(t<0||t>=this.#e.length)throw new RangeError(`StreamChannel index ${t} out of bounds (size=${this.#e.length})`);return this.#e[t]}get size(){return this.#e.length}get done(){return this.#n}close(){this.#n=!0,this.#r()}fail(t){this.#i=t,this.#n=!0,this.#r()}_wire(t){this.#s=t}_close(){this.close()}_fail(t){this.fail(t)}[Symbol.asyncIterator](){return this.iterate()}#r(){let t=this.#t.splice(0);for(let r of t)r()}};function Nf(e){return Je.isInstance(e)}var h_="custom:";function p_(e){return`${h_}${e}`}function f_(e){return e!=null&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}var $i=Symbol("resolveValues"),Vo=Symbol("rejectValues"),Mf=class{_events=Je.local();_discoveries=Je.local();#e=0;#t=!1;#n;#i=!1;#s=[];#r=[];#o=[];#a=new Map;#l=new Map;#c=[];#u=[];register(e,t){this.#a.set(ae(e),t)}addTransformer(e){let t=this._events.size;this.#r.push(e),e.onRegister&&e.onRegister({push:(r,n)=>this.push(r,n)});for(let r=0;r<t;r+=1)e.process(this._events.get(r));this.#t&&(this.#n!==void 0?e.fail?.(this.#n):e.finalize?.())}wireChannels(e){for(let[t,r]of Object.entries(e)){if(Nf(r)){if(this.#o.push(r),typeof r.channelName!="string")continue;let n=p_(r.channelName);r._wire(s=>{this._events.push({type:"event",seq:this.#e++,method:n,params:{namespace:this.#s,timestamp:Date.now(),data:s}})});continue}f_(r)&&this.#u.push({name:t,promise:Promise.resolve(r)})}}push(e,t){t.method==="values"&&this.#l.set(ae(e),t.params.data);let r=this.#s;this.#s=e;let n=!0;for(let s of this.#r)s.process(t)||(n=!1);this.#s=r,n&&this._events.push({...t,seq:this.#e++})}close(){this.#t=!0;for(let[r,n]of this.#l.entries()){let s=r?r.split("\0"):[];this.#a.get(ae(s))?.[$i](n)}let e=[];for(let r of this.#r){let n=r.finalize?.();n!=null&&typeof n.then=="function"&&e.push(n)}for(let r of this.#o)r._close();let t=this.#u;t.length===0&&e.length===0?(this._events.close(),this._discoveries.close()):Promise.allSettled([...e,...t.map(async({name:r,promise:n})=>{try{let s=await n;this._events.done||this._events.push({type:"event",seq:this.#e++,method:"custom",params:{namespace:[],timestamp:Date.now(),data:{name:r,payload:s}}})}catch{}})]).then(()=>{this._events.close(),this._discoveries.close()});for(let r of this.#a.values())r[$i](void 0)}fail(e){this.#t=!0,this.#n=e;for(let t of this.#r)t.fail?.(e);for(let t of this.#o)t._fail(e);this._events.fail(e),this._discoveries.fail(e);for(let t of this.#a.values())t[Vo](e)}markInterrupted(e){this.#i=!0,this.#c.push(...e)}get interrupted(){return this.#i}get interrupts(){return this.#c}subscribeEvents(e,t=0){let r=this._events.iterate(t);return{async next(){for(;;){let n=await r.next();if(n.done||St(n.value.params.namespace,e))return n}}}}};async function Pf(e,t){let r=0;try{for await(let n of e){let[s,i,a]=n;if(i==="values"&&Or(a)){let c=a[Y];t.markInterrupted(c.map(l=>({interruptId:l.id??"",payload:l.value})))}let o=jo({namespace:s,mode:i,payload:a,seq:r});r+=o.length;for(let c of o)t.push(s,c)}}catch(n){t.fail(n);return}t.close()}function ae(e){return e.join("\0")}function St(e,t){if(t.length>e.length)return!1;for(let r=0;r<t.length;r+=1)if(e[r]!==t[r])return!1;return!0}function Bi(e,t,r=0){return{[Symbol.asyncIterator](){let n=e.iterate(r);return{async next(){for(;;){let s=await n.next();if(s.done)return{value:void 0,done:!0};if(St(s.value.namespace,t))return{value:s.value,done:!1}}}}}}}var Rf="root";function m_(e){if(e.length===0)return Rf;let t=e[e.length-1],r=t.indexOf(":");return r===-1?t:t.slice(0,r)}function d_(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function kt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function g_(e){if(!kt(e)||e.event!=="started")return;let t=e.cause;if(kt(t)&&typeof t.type=="string")return t}function __(e){if(kt(e)&&"result"in e&&typeof e.name=="string"&&typeof e.id=="string"&&!e.name.startsWith("__"))return{name:e.name,id:e.id}}function Uo(e={}){let t=e.rootGraphName??Rf,r=e.initialStatus??"running",n=e.emitRootOnRegister??!0,s=e.getGraphName??m_,i=e.serializeError??d_,a=e.getTerminalStatusOverride,o=Je.local(),c=new Map,l=new Map,u=new Map,h=new Map,p=new Set,m=[],d,y=0,v=!1,b=N=>{if(N.length===0)return t;let R=u.get(ae(N));return typeof R=="string"&&R.length>0?R:s(N)},S=(N,R)=>{let D=ae(N);if(u.has(D))return;let L=(kt(R)&&kt(R.metadata)?R.metadata:void 0)?.lc_agent_name;u.set(D,typeof L=="string"?L:void 0)},k=N=>{if(!kt(N))return;let R=N.id;if(typeof R!="string")return;let D=N.input,L;if(kt(D)&&kt(D.tool_call)){let K=D.tool_call.id;typeof K=="string"&&(L=K)}else if(Array.isArray(D)){for(let K of D)if(kt(K)&&typeof K.id=="string"){L=K.id;break}}L!=null&&h.set(R,L)},C=N=>{if(N.length===0)return;let R=u.get(ae(N));if(typeof R!="string"||R.length===0)return;let D=N[N.length-1],L=D.indexOf(":");if(L===-1)return;let K=D.slice(L+1);if(K.length===0)return;let ft=h.get(K);if(!(typeof ft!="string"||ft.length===0))return{type:"toolCall",tool_call_id:ft}},T=N=>l.get(ae(N))??C(N),O=(N,R,D)=>{let L=ae(N),K=c.get(L),ft=K?.graphName??b(N);if(K!=null&&K.status===R&&K.graphName===ft&&D?.error==null)return;K==null?(K={namespace:N,graphName:ft,status:R},c.set(L,K)):K.status=R;let wn={event:R,graph_name:ft,...D?.cause!=null?{cause:D.cause}:{},...D?.error!=null?{error:D.error}:{}},Sn=Date.now();if(o.push({namespace:N,timestamp:Sn,...wn}),!(N.length===0&&!n)&&d!=null){y+=1;try{d.push(N,{type:"event",seq:0,method:"lifecycle",params:{namespace:N,timestamp:Sn,data:wn}})}finally{y-=1}}},x=N=>{let R=ae(N),D=c.get(R);return D==null&&(D={namespace:N,graphName:b(N),status:void 0},c.set(R,D)),D},_=()=>{if(m.length===0)return;let N=m.splice(0,m.length);for(let R of N){let D=ae(R.namespace),L=c.get(D);L==null||L.status!=="started"||O(R.namespace,"completed")}},P=N=>{let R=ae(N.namespace),D=c.get(R);D==null||D.status!=="started"||m.some(L=>ae(L.namespace)===R)||m.push(N)},M=(N,R)=>{for(let D=m.length-1;D>=0;D-=1){let L=m[D];L.source.type==="node"&&L.source.node===R&&ae(L.source.parent)===ae(N)&&m.splice(D,1)}},F=N=>{for(let R=1;R<=N.length;R+=1){let D=N.slice(0,R),L=ae(D);if(c.has(L))continue;x(D);let K=T(D);O(D,"started",K!=null?{cause:K}:void 0)}},j=()=>p.size>0?"interrupted":"completed",G=N=>{for(let R of c.values())R.namespace.length!==0&&R.status==="started"&&O(R.namespace,N);O([],N),o.close()},z=async()=>{if(a==null)return j();try{return await a()??j()}catch{return j()}},_e=(N,R)=>{let D=`${R}:`;for(let L of c.values()){if(L.namespace.length!==N.length+1||L.status!=="started"||!St(L.namespace,N))continue;let K=L.namespace[L.namespace.length-1];if(K===R||K.startsWith(D))return L.namespace}},V=(N,R)=>{let D=[...N,`${R.name}:${R.id}`];return c.get(ae(D))?.status==="started"?D:void 0};return{__native:!0,init(){return{_lifecycleLog:o,lifecycle:Bi(o,[],0)}},onRegister(N){d=N,x([]),n&&O([],r)},process(N){let R=N.params.namespace;if(y>0)return!0;let D=N.method==="tasks"?__(N.params.data):void 0;if(D!=null?M(R,D.name):N.method==="tasks"&&(S(R,N.params.data),k(N.params.data)),_(),N.method==="lifecycle"){let L=g_(N.params.data);return L!=null&&l.set(ae(R),L),F(R),!1}if(F(R),N.method==="input"&&kt(N.params.data)&&N.params.data.event==="requested"){let L=N.params.data.id;typeof L=="string"&&p.add(L)}if(D!=null){let L=V(R,D);L!=null&&P({namespace:L,source:{type:"task"}})}if(N.method==="updates"){let L=N.params.node;if(typeof L=="string"&&!L.startsWith("__")){let K=_e(R,L);K!=null&&P({namespace:K,source:{type:"node",parent:R,node:L}})}}return!0},finalize(){if(!v){if(v=!0,_(),a==null){G(j());return}return z().then(G).catch(N=>{o.fail(N)})}},fail(N){if(v)return;v=!0;let R=i(N);for(let D of c.values())D.namespace.length!==0&&D.status==="started"&&O(D.namespace,"failed");O([],"failed",{error:R}),o.fail(N)}}}function mn(e){let t=e;return typeof t.run_id=="string"?`run:${t.run_id}`:e.event==="message-start"&&typeof t.id=="string"?`message:${t.id}`:"__default__"}function hs(e,t){let r=Je.local(),n=new Map,s=new Set;return{init:()=>({messages:r.toAsyncIterable()}),process(i){if(i.method!=="messages"||!St(i.params.namespace,e)||i.params.namespace.length!==e.length+1||t!==void 0&&i.params.node!==t)return!0;let a=i.params.data;switch(a.event){case"message-start":{let o=mn(a);if(a.role==="tool"){s.add(o);break}let c=Je.local(),l=Object.assign(new or(c.toAsyncIterable()),{namespace:i.params.namespace,node:i.params.node});n.set(o,{source:c,stream:l}),c.push(a),r.push(l);break}case"content-block-start":case"content-block-delta":case"content-block-finish":if(s.has(mn(a)))break;n.get(mn(a))?.source.push(a);break;case"message-finish":{let o=mn(a);if(s.delete(o))break;let c=n.get(o);c&&(c.source.push(a),c.source.close(),n.delete(o));break}case"error":if(s.has(mn(a)))break;n.get(mn(a))?.source.push(a);break}return!0},finalize(){for(let[i,a]of n)a.source.push({event:"message-finish"}),a.source.close(),n.delete(i);s.clear(),r.close()},fail(i){for(let[a,o]of n)o.source.fail(i),n.delete(a);s.clear(),r.fail(i)}}}function ps(e,t,r=0){let n=t.length+1;return{[Symbol.asyncIterator](){let s=e.iterate(r);return{async next(){for(;;){let i=await s.next();if(i.done)return{value:void 0,done:!0};let{ns:a,stream:o}=i.value;if(a.length===n&&St(a,t))return{value:o,done:!1}}}}}}}function Ho(e,t){let{createStream:r}=t,n=new Set;return{__native:!0,init(){return{_discoveries:e._discoveries,subgraphs:ps(e._discoveries,[],0)}},process(s){let i=s.params.namespace;if(i.length===0)return!0;let a=i.slice(0,1),o=ae(a);if(n.has(o))return!0;n.add(o);let c=r(a,e._discoveries.size,e._events.size);return e.register(a,c),e._discoveries.push({ns:a,stream:c}),!0}}}function Go(e){let t=Je.local();return{init:()=>({_valuesLog:t}),process(r){return r.method!=="values"||r.params.namespace.length!==e.length||!St(r.params.namespace,e)||t.push(r.params.data),!0},finalize(){t.close()},fail(r){t.fail(r)}}}function Vi(e){return"__native"in e&&e.__native===!0}var Df=Symbol("setValuesLog"),Lf=Symbol("setMessagesIterable"),Wo=Symbol("setLifecycleIterable"),Ko=Symbol("setSubgraphsIterable"),y_={[Symbol.asyncIterator](){return{next:()=>Promise.resolve({value:void 0,done:!0})}}},zo=class{path;extensions;_mux;#e;#t;#n;#i;#s;#r;#o;#a;#l;#c;constructor(e,t,r=0,n=0,s,i){this.path=e,this._mux=t,this.#t=r,this.#e=n,this.extensions=s??{},this.#n=i??new AbortController,this.#r=new Promise((a,o)=>{this.#i=a,this.#s=o}),this.#r.catch(()=>{})}[Symbol.asyncIterator](){return this._mux.subscribeEvents(this.path,this.#e)}get subgraphs(){return this.#c?this.#c:ps(this._mux._discoveries,this.path,this.#t)}get values(){let e=this.#o,t=this.#r,r=this._mux,n=this.#e,s=this.path,i=e?e.toAsyncIterable():{[Symbol.asyncIterator]:()=>{let a=r.subscribeEvents(s,n);return{async next(){for(;;){let o=await a.next();if(o.done)return{value:void 0,done:!0};if(o.value.method==="values"&&o.value.params.namespace.length===s.length)return{value:o.value.params.data,done:!1}}}}}};return{[Symbol.asyncIterator]:()=>i[Symbol.asyncIterator](),then:t.then.bind(t)}}get messages(){if(this.#a)return this.#a;let e=hs(this.path),t=e.init();return this._mux.addTransformer(e),this.#a=t.messages,this.#a}get lifecycle(){return this.#l??y_}messagesFrom(e){let t=hs(this.path,e),r=t.init();return this._mux.addTransformer(t),r.messages}get output(){return this.#r}get interrupted(){return this._mux.interrupted}get interrupts(){return this._mux.interrupts}abort(e){this.#n.abort(e)}get signal(){return this.#n.signal}[$i](e){this.#i?.(e),this.#i=void 0}[Vo](e){this.#s?.(e),this.#s=void 0}[Df](e){this.#o=e}[Lf](e){this.#a=e}[Wo](e){this.#l=e}[Ko](e){this.#c=e}},Ff=class extends zo{name;index;constructor(e,t,r=0,n=0,s,i){super(e,t,r,n,s,i);let a=e[e.length-1]??"",o=a.lastIndexOf(":");if(o>=0){this.name=a.slice(0,o);let c=a.slice(o+1);this.index=/^\d+$/.test(c)?Number(c):0}else this.name=a,this.index=0}};function qo(e,t=[],r){let{abortController:n}=r instanceof AbortController?{abortController:r}:r??{},s=new Mf,i=Uo(),a=i.init(),o=a._lifecycleLog,c=Ho(s,{createStream:(b,S,k)=>{let C=new Ff(b,s,S,k);return C[Ko](ps(s._discoveries,b,S)),C[Wo](Bi(o,b,o.size)),C}}),l=c.init();s.addTransformer(c),s.addTransformer(i);let u=Go([]),h=hs([]);s.addTransformer(u),s.addTransformer(h);let p={},m=[];for(let b of t){let S=b();s.addTransformer(S);let k=S.init();Vi(S)?m.push(k):Object.assign(p,k),typeof k=="object"&&k!==null&&!Vi(S)&&s.wireChannels(k)}let d=new zo([],s,0,0,p,n);for(let b of m)Object.assign(d,b);let y=u.init();d[Df](y._valuesLog);let v=h.init();return d[Lf](v.messages),d[Wo](a.lifecycle),d[Ko](l.subgraphs),s.register([],d),Pf(e,s).catch(b=>{}),d}var I=e=>BigInt(e),X=(e,t=0)=>new DataView(e.buffer,e.byteOffset+t,e.byteLength-t),Vf=I("0x9E3779B1"),Uf=I("0x85EBCA77"),b_=I("0xC2B2AE3D"),lr=I("0x9E3779B185EBCA87"),Lr=I("0xC2B2AE3D27D4EB4F"),Hf=I("0x165667B19E3779F9"),Xo=I("0x85EBCA77C2B2AE63"),v_=I("0x27D4EB2F165667C5"),w_=I("0x165667919E3779F9"),S_=I("0x9FB21C651E98DF25"),k_=e=>{let t=e.length;if(t%2!==0)throw new Error("String should have an even number of characters");let r=t/2,n=new Uint8Array(r),s=0,i=0;for(;i<r;){let a=e.slice(s,s+=2);n[i]=Number.parseInt(a,16),i+=1}return X(n)},Ct=k_("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),dn=(I(1)<<I(128))-I(1),B=(I(1)<<I(64))-I(1),Wi=(I(1)<<I(32))-I(1),jt=64,Gf=jt/8,C_=8,Ui=4;function gn(e){if(!e)throw new Error("Assert failed")}function E_(e){let t=new DataView(new ArrayBuffer(8));return t.setBigUint64(0,e,!0),t.getBigUint64(0,!1)}function T_(e){let t=e;return t=(t&I(65535))<<I(16)|(t&I(4294901760))>>I(16),t=(t&I(16711935))<<I(8)|(t&I(4278255360))>>I(8),t}function x_(e,t){return(e&Wi)*(t&Wi)&B}function I_(e,t){return(e<<t|e>>I(32)-t)&Wi}function Wf(e,t,r){for(let n=0;n<Gf;n+=1){let s=t.getBigUint64(n*8,!0),i=s^r.getBigUint64(n*8,!0);e[n^1]+=s,e[n]+=x_(i,i>>I(32))}return e}function jf(e,t,r,n){for(let s=0;s<n;s+=1)Wf(e,X(t,s*jt),X(r,s*8));return e}function A_(e,t){for(let r=0;r<Gf;r+=1){let n=t.getBigUint64(r*8,!0),s=e[r];s=Jo(s,I(47)),s^=n,s*=Vf,e[r]=s&B}return e}function Hi(e,t){return Kf(e[0]^t.getBigUint64(0,!0),e[1]^t.getBigUint64(C_,!0))}function $f(e,t,r){let n=r;return n+=Hi(e.slice(0),X(t,0*Ui)),n+=Hi(e.slice(2),X(t,4*Ui)),n+=Hi(e.slice(4),X(t,8*Ui)),n+=Hi(e.slice(6),X(t,12*Ui)),Et(n&B)}function O_(e,t,r,n,s){let i=e,a=Math.floor((r.byteLength-jt)/8),o=jt*a,c=Math.floor((t.byteLength-1)/o);for(let l=0;l<c;l+=1)i=jf(i,X(t,l*o),r,a),i=s(i,X(r,r.byteLength-jt));{let l=Math.floor((t.byteLength-1-o*c)/jt);i=jf(i,X(t,c*o),r,l),i=n(i,X(t,t.byteLength-jt),X(r,r.byteLength-jt-7))}return i}function N_(e,t){let r=new BigUint64Array([b_,lr,Lr,Hf,Xo,Uf,v_,Vf]);gn(e.byteLength>128),r=O_(r,e,t,Wf,A_),gn(r.length*8===64);{let n=$f(r,X(t,11),I(e.byteLength)*lr&B);return $f(r,X(t,t.byteLength-jt-11),~(I(e.byteLength)*Lr)&B)<<I(64)|n}}function Kf(e,t){let r=e*t&dn;return r&B^r>>I(64)}function Bf(e,t,r){return Kf((e.getBigUint64(0,!0)^t.getBigUint64(0,!0)+r)&B,(e.getBigUint64(8,!0)^t.getBigUint64(8,!0)-r)&B)}function Gi(e,t,r,n,s){let i=e&B,a=e>>I(64)&B;return i+=Bf(t,n,s),i^=r.getBigUint64(0,!0)+r.getBigUint64(8,!0),i&=B,a+=Bf(r,X(n,16),s),a^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),a&=B,a<<I(64)|i}function Et(e){let t=e;return t^=t>>I(37),t*=w_,t&=B,t^=t>>I(32),t}function Ki(e){let t=e;return t^=t>>I(33),t*=Lr,t&=B,t^=t>>I(29),t*=Hf,t&=B,t^=t>>I(32),t}function M_(e,t,r){let n=e.byteLength;gn(n>0&&n<=3);let s=I(e.getUint8(n-1))|I(n<<8)|I(e.getUint8(0)<<16)|I(e.getUint8(n>>1)<<24),i=(s^(I(t.getUint32(0,!0))^I(t.getUint32(4,!0)))+r)&B,a=(I(t.getUint32(8,!0))^I(t.getUint32(12,!0)))-r;return(Ki((I_(T_(s),I(13))^a)&B)&B)<<I(64)|Ki(i)}function Jo(e,t){return e^e>>t}function P_(e,t,r){let n=e.byteLength;gn(n>=4&&n<=8);{let s=e.getUint32(0,!0),i=e.getUint32(n-4,!0),a=((I(s)|I(i)<<I(32))^(t.getBigUint64(16,!0)^t.getBigUint64(24,!0))+r&B)*(lr+(I(n)<<I(2)))&dn;return a+=(a&B)<<I(65),a&=dn,a^=a>>I(67),Jo(Jo(a&B,I(35))*S_&B,I(28))|Et(a>>I(64))<<I(64)}}function R_(e,t,r){let n=e.byteLength;gn(n>=9&&n<=16);{let s=(t.getBigUint64(32,!0)^t.getBigUint64(40,!0))+r&B,i=(t.getBigUint64(48,!0)^t.getBigUint64(56,!0))-r&B,a=e.getBigUint64(0,!0),o=e.getBigUint64(n-8,!0),c=(a^o^s)*lr,l=(c&B)+(I(n-1)<<I(54));c=c&(dn^B)|l,o^=i,c+=o+(o&Wi)*(Uf-I(1))<<I(64),c&=dn,c^=E_(c>>I(64));let u=(c&B)*Lr;return u+=(c>>I(64))*Lr<<I(64),u&=dn,Et(u&B)|Et(u>>I(64))<<I(64)}}function D_(e,t){let r=e.byteLength;return gn(r<=16),r>8?R_(e,Ct,t):r>=4?P_(e,Ct,t):r>0?M_(e,Ct,t):Ki(t^Ct.getBigUint64(64,!0)^Ct.getBigUint64(72,!0))|Ki(t^Ct.getBigUint64(80,!0)^Ct.getBigUint64(88,!0))<<I(64)}function Yo(e){return~e+I(1)&B}function L_(e,t,r){let n=I(e.byteLength)*lr&B,s=I(e.byteLength-1)/I(32);for(;s>=0;){let o=Number(s);n=Gi(n,X(e,16*o),X(e,e.byteLength-16*(o+1)),X(t,32*o),r),s-=I(1)}let i=n+(n>>I(64))&B;i=Et(i);let a=(n&B)*lr+(n>>I(64))*Xo+(I(e.byteLength)-r&B)*Lr;return a&=B,a=Yo(Et(a)),i|a<<I(64)}function F_(e,t,r){let n=I(e.byteLength)*lr&B;for(let a=32;a<160;a+=32)n=Gi(n,X(e,a-32),X(e,a-16),X(t,a-32),r);n=Et(n&B)|Et(n>>I(64))<<I(64);for(let a=160;a<=e.byteLength;a+=32)n=Gi(n,X(e,a-32),X(e,a-16),X(t,3+a-160),r);n=Gi(n,X(e,e.byteLength-16),X(e,e.byteLength-32),X(t,103),Yo(r));let s=n+(n>>I(64))&B;s=Et(s);let i=(n&B)*lr+(n>>I(64))*Xo+(I(e.byteLength)-r&B)*Lr;return i&=B,i=Yo(Et(i)),s|i<<I(64)}function Tt(e,t=I(0)){let r=new TextEncoder,n=X(typeof e=="string"?r.encode(e):e),s=n.byteLength,i=a=>a.toString(16).padStart(32,"0");return s<=16?i(D_(n,t)):s<=128?i(L_(n,Ct,t)):s<=240?i(F_(n,Ct,t)):i(N_(n,Ct))}function zi(e){return/^[0-9a-f]{32}$/.test(e)}function Zo(e){let t=oe.getRunnableConfig();if(!t)throw new Error("Called interrupt() outside the context of a graph.");let r=t.configurable;if(!r)throw new Error("No configurable found in config");if(!r.__pregel_checkpointer)throw new Nr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=r[Ae];n.interruptCounter+=1;let s=n.interruptCounter;if(n.resume.length>0&&s<n.resume.length)return r[Se]?.([[Oe,n.resume]]),n.resume[s];if(n.nullResume!==void 0){if(n.resume.length!==s)throw new Error(`Resume length mismatch: ${n.resume.length} !== ${s}`);let a=n.consumeNullResume();return n.resume.push(a),r[Se]?.([[Oe,n.resume]]),a}let i=r[Ue]?.split("|");throw new Nt([{id:i?Tt(i.join("|")):void 0,value:e}])}var fe=class extends H{lc_namespace=["langgraph"];func;tags;config;trace=!0;recurse=!0;constructor(e){super(),this.name=e.name??e.func.name,this.func=e.func,this.config=e.tags?{tags:e.tags}:void 0,this.trace=e.trace??this.trace,this.recurse=e.recurse??this.recurse}async _tracedInvoke(e,t,r){return new Promise((n,s)=>{let i=he(t,{callbacks:r?.getChild()});oe.runWithConfig(i,async()=>{try{n(await this.func(e,i))}catch(a){s(a)}})})}async invoke(e,t){let r,n=pn(t),s=Le(this.config,n);return this.trace?r=await this._callWithConfig(this._tracedInvoke,e,s):r=await oe.runWithConfig(s,async()=>this.func(e,s)),H.isRunnable(r)&&this.recurse?await oe.runWithConfig(s,async()=>r.invoke(e,s)):r}};function*xt(e,t){if(t===void 0)yield*e;else for(let r of e)yield[t,r]}async function ct(e){let t=[];for await(let r of await e)t.push(r);return t}function ur(e){let t=[];for(let r of e)t.push(r);return t}function Fr(e,t){return e?"configurable"in e?{...e,configurable:{...e.configurable,...t}}:{...e,configurable:t}:{configurable:t}}function Qo(e){return e!=null&&typeof e=="function"&&e instanceof Object.getPrototypeOf(async function*(){}).constructor}function ec(e){return e!=null&&typeof e=="function"&&e instanceof Object.getPrototypeOf(function*(){}).constructor}function j_(e){return typeof e=="object"&&e?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var Be={[Symbol.for("LG_PASSTHROUGH")]:!0};function qi(e){return typeof e=="object"&&e?.[Symbol.for("LG_PASSTHROUGH")]!==void 0}var tc=Symbol("IS_WRITER"),te=class nc extends fe{writes;constructor(t,r){let n=`ChannelWrite<${t.map(s=>ce(s)?s.node:"channel"in s?s.channel:"...").join(",")}>`;super({writes:t,name:n,tags:r,trace:!1,func:async(s,i)=>this._write(s,i??{})}),this.writes=t}async _write(t,r){let n=this.writes.map(s=>rc(s)&&qi(s.value)?{mapper:s.mapper,value:t}:Ji(s)&&qi(s.value)?{channel:s.channel,value:t,skipNone:s.skipNone,mapper:s.mapper}:s);return await nc.doWrite(r,n),t}static async doWrite(t,r){for(let i of r){if(Ji(i)){if(i.channel==="__pregel_tasks")throw new $("Cannot write to the reserved channel TASKS");if(qi(i.value))throw new $("PASSTHROUGH value must be replaced")}if(rc(i)&&qi(i.value))throw new $("PASSTHROUGH value must be replaced")}let n=[];for(let i of r)if(ce(i))n.push([_t,i]);else if(rc(i)){let a=await i.mapper.invoke(i.value,t);a!=null&&a.length>0&&n.push(...a)}else if(Ji(i)){let a=i.mapper!==void 0?await i.mapper.invoke(i.value,t):i.value;if(j_(a)||i.skipNone&&a===void 0)continue;n.push([i.channel,a])}else throw new Error(`Invalid write entry: ${JSON.stringify(i)}`);let s=t.configurable?.[Se];s(n)}static isWriter(t){return t instanceof nc||tc in t&&!!t[tc]}static registerWriter(t){return Object.defineProperty(t,tc,{value:!0})}};function Ji(e){return e!==void 0&&typeof e.channel=="string"}function rc(e){return e!==void 0&&!Ji(e)&&H.isRunnable(e.mapper)}var zf=class qf extends fe{lc_graph_name="ChannelRead";channel;fresh=!1;mapper;constructor(t,r,n=!1){super({trace:!1,func:(s,i)=>qf.doRead(i,this.channel,this.fresh,this.mapper)}),this.fresh=n,this.mapper=r,this.channel=t,this.name=Array.isArray(t)?`ChannelRead<${t.join(",")}>`:`ChannelRead<${t}>`}static doRead(t,r,n,s){let i=t.configurable?.[Ie];if(!i)throw new Error("Runnable is not configured with a read function. Make sure to call in the context of a Pregel process");return s?s(i(r,n)):i(r,n)}},_n=new Pt,lt=class fs extends Zt{lc_graph_name="PregelNode";channels;triggers=[];mapper;writers=[];bound=_n;kwargs={};metadata={};tags=[];retryPolicy;cachePolicy;timeout;subgraphs;ends;isErrorHandler;errorHandlerNode;constructor(t){let{channels:r,triggers:n,mapper:s,writers:i,bound:a,kwargs:o,metadata:c,retryPolicy:l,cachePolicy:u,timeout:h,tags:p,subgraphs:m,ends:d,isErrorHandler:y,errorHandlerNode:v}=t,b=[...t.config?.tags?t.config.tags:[],...p??[]];super({...t,bound:t.bound??_n,config:{...t.config?t.config:{},tags:b}}),this.channels=r,this.triggers=n,this.mapper=s,this.writers=i??this.writers,this.bound=a??this.bound,this.kwargs=o??this.kwargs,this.metadata=c??this.metadata,this.tags=b,this.retryPolicy=l,this.cachePolicy=u,this.timeout=h,this.subgraphs=m,this.ends=d,this.isErrorHandler=y,this.errorHandlerNode=v}getWriters(){let t=[...this.writers];for(;t.length>1&&t[t.length-1]instanceof te&&t[t.length-2]instanceof te;){let r=t.slice(-2),n=r[0].writes.concat(r[1].writes);t[t.length-2]=new te(n,r[0].config?.tags),t.pop()}return t}getNode(){let t=this.getWriters();if(!(this.bound===_n&&t.length===0))return this.bound===_n&&t.length===1?t[0]:this.bound===_n?new et({first:t[0],middle:t.slice(1,t.length-1),last:t[t.length-1],omitSequenceTags:!0}):t.length>0?new et({first:this.bound,middle:t.slice(0,t.length-1),last:t[t.length-1],omitSequenceTags:!0}):this.bound}join(t){if(!Array.isArray(t))throw new Error("channels must be a list");if(typeof this.channels!="object")throw new Error("all channels must be named when using .join()");return new fs({channels:{...this.channels,...Object.fromEntries(t.map(r=>[r,r]))},triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound,kwargs:this.kwargs,config:this.config,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout})}pipe(t){return te.isWriter(t)?new fs({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:[...this.writers,t],bound:this.bound,config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout}):this.bound===_n?new fs({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:we(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout}):new fs({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound.pipe(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout})}};function $_(e){return"steps"in e&&Array.isArray(e.steps)}function ms(e){return"lg_is_pregel"in e&&e.lg_is_pregel===!0}function Yi(e){let t=[e];for(let r of t){if(ms(r))return r;$_(r)&&t.push(...r.steps)}}function jr(e,t,r=!0,n=!1){try{return e[t].get()}catch(s){if(s.name===W.unminifiable_name){if(n)return s;if(r)return null}throw s}}function ut(e,t,r=!0){if(Array.isArray(t)){let n={};for(let s of t)try{n[s]=jr(e,s,!r)}catch(i){if(i.name===W.unminifiable_name)continue}return n}else return jr(e,t)}function*Jf(e,t){if(e.graph===je.PARENT)throw new $("There is no parent graph.");if(e.goto){let r;Array.isArray(e.goto)?r=e.goto:r=[e.goto];for(let n of r)if(ce(n))yield[Me,_t,n];else if(typeof n=="string")yield[Me,`branch:to:${n}`,"__start__"];else throw new Error(`In Command.send, expected Send or string, got ${typeof n}`)}if(e.resume)if(typeof e.resume=="object"&&Object.keys(e.resume).length&&Object.keys(e.resume).every(zi))for(let[r,n]of Object.entries(e.resume)){let s=t.filter(i=>i[0]===r&&i[1]==="__resume__").map(i=>i[2]).slice(0,1)??[];s.push(n),yield[r,Oe,s]}else yield[Me,Oe,e.resume];if(e.update){if(typeof e.update!="object"||!e.update)throw new Error("Expected cmd.update to be a dict mapping channel names to update values");if(Array.isArray(e.update))for(let[r,n]of e.update)yield[Me,r,n];else for(let[r,n]of Object.entries(e.update))yield[Me,r,n]}}function*Xi(e,t){if(t!=null)if(Array.isArray(e)&&typeof t=="object"&&!Array.isArray(t))for(let r in t)e.includes(r)&&(yield[r,t[r]]);else{if(Array.isArray(e))throw new Error('Input chunk must be an object when "inputChannels" is an array');yield[e,t]}}function*Zi(e,t,r){Array.isArray(e)?(t===!0||t.find(([n,s])=>e.includes(n)))&&(yield ut(r,e)):(t===!0||t.some(([n,s])=>n===e))&&(yield jr(r,e))}function*Yf(e,t,r){let n=t.filter(([o,c])=>(o.config===void 0||!o.config.tags?.includes("langsmith:hidden"))&&c[0][0]!=="__error__"&&c[0][0]!=="__interrupt__");if(!n.length)return;let s;n.some(([o])=>o.writes.some(([c,l])=>c==="__return__"))?s=n.flatMap(([o])=>o.writes.filter(([c,l])=>c===sr).map(([c,l])=>[o.name,l])):Array.isArray(e)?s=n.flatMap(([o])=>{let{writes:c}=o,l={};for(let[u]of c)e.includes(u)&&(l[u]=(l[u]||0)+1);return Object.values(l).some(u=>u>1)?c.filter(([u])=>e.includes(u)).map(([u,h])=>[o.name,{[u]:h}]):[[o.name,Object.fromEntries(c.filter(([u])=>e.includes(u)))]]}):s=n.flatMap(([o])=>o.writes.filter(([c,l])=>c===e).map(([c,l])=>[o.name,l]));let i={};for(let[o,c]of s)o in i||(i[o]=[]),i[o].push(c);let a={};for(let o in i)if(i[o].length===1){let[c]=i[o];a[o]=c}else a[o]=i[o];r&&(a.__metadata__={cached:r}),yield a}function Qi(e){let t=typeof e[Z];if(t==="number")return 0;if(t==="string")return"";for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let n=typeof e[r];if(n==="number")return 0;if(n==="string")return"";break}}function yn(e,t){if(Object.keys(e).length>0){let r=Qi(t);return Object.fromEntries(Object.entries(t).filter(([n,s])=>s>(e[n]??r)))}else return t}function Xf(e,t){return e&&!Array.isArray(e)&&!(e instanceof Date)&&typeof e=="object"?e:{[t]:e}}function le(e,t){return e===null?{configurable:t}:e?.configurable===void 0?{...e,configurable:t}:{...e,configurable:{...e.configurable,...t}}}function hr(e,t){let r=t?.parents??{};return Object.keys(r).length>0?le(e,{[ke]:{...r,[e.configurable?.checkpoint_ns??""]:e.configurable?.checkpoint_id}}):e}function pr(...e){let t=[...new Set(e.filter(Boolean))];if(t.length===0)return{signal:void 0,dispose:void 0};if(t.length===1)return{signal:t[0],dispose:void 0};let r=new AbortController,n=()=>{let i=t.find(a=>a.aborted)?.reason;r.abort(i),t.forEach(a=>a.removeEventListener("abort",n))};t.forEach(i=>i.addEventListener("abort",n,{once:!0}));let s=t.find(i=>i.aborted);return s&&r.abort(s.reason),{signal:r.signal,dispose:()=>{t.forEach(i=>i.removeEventListener("abort",n))}}}var Zf=class{func;name;input;retry;cache;timeout;callbacks;__lg_type="call";constructor({func:e,name:t,input:r,retry:n,cache:s,timeout:i,callbacks:a}){this.func=e,this.name=t,this.input=r,this.retry=n,this.cache=s,this.timeout=i,this.callbacks=a}};function Qf(e){return typeof e=="object"&&e!==null&&"__lg_type"in e&&e.__lg_type==="call"}function em(e,t){return new et({name:e,first:new fe({func:r=>t(...r),name:e,trace:!1,recurse:!1}),last:new te([{channel:sr,value:Be}],[se])})}function tm(e,t){return new fe({func:(r,n)=>t(r,n),name:e,trace:!1,recurse:!1})}function rm({func:e,name:t,cache:r,retry:n,timeout:s},...i){let a=oe.getRunnableConfig();if(typeof a.configurable?.__pregel_call=="function")return a.configurable[gt](e,t,i,{retry:n,cache:r,timeout:s,callbacks:a.callbacks});throw new Error("Async local storage not initialized. Please call initializeAsyncLocalStorageSingleton() before using this function.")}var nm=e=>e!==void 0?e+1:1;function B_(e,t){if(t==null)return!1;for(let r of e)if(t[r])return!0;return!1}function V_(e){let t;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t==null?t=e[r]:t=os(t,e[r]));return t}function ds(e,t,r){let n=Qi(e.channel_versions),s=e.versions_seen.__interrupt__??{},i=!1;if((e.channel_versions.__start__??n)>(s.__start__??n))i=!0;else for(let o in e.channel_versions)if(Object.prototype.hasOwnProperty.call(e.channel_versions,o)&&e.channel_versions[o]>(s[o]??n)){i=!0;break}let a=r.some(o=>t==="*"?!o.config?.tags?.includes(se):t.includes(o.name));return i&&a}function bn(e,t,r,n,s=!1){let i=new Set;if(Array.isArray(n))i=new Set(n.filter(o=>r.writes.some(([c,l])=>c===o)));else{for(let[o]of r.writes)if(o===n){i=new Set([o]);break}i=i||new Set}let a;if(s&&i.size>0){let o=Object.fromEntries(Object.entries(t).filter(([h,p])=>i.has(h))),c=new Set;for(let h in o){if(!Object.prototype.hasOwnProperty.call(o,h))continue;let p=o[h];qe(p)&&p.isAvailable()&&c.add(h)}let l=at(e,o,-1,{channelsToSnapshot:c}),u=Pi(o,l);Re(it(l),u,[r],void 0,void 0),a=ut({...t,...u},n)}else a=ut(t,n);return a}function ea(e,t,r){for(let[n,s]of r)if(["__pregel_push","__pregel_tasks"].includes(n)&&s!=null){if(!ce(s))throw new $(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(s)}`);if(!(s.node in t))throw new $(`Invalid node name "${s.node}" in Send packet`)}e(r)}var U_=new Set([Fn,Ne,Oe,Y,sr,tr,Rn]),H_=new Set(Au);function Re(e,t,r,n,s){let i=new Map;for(let d of r)i.set(d,d.path?.slice(0,3)||[]);r.sort((d,y)=>{let v=i.get(d),b=i.get(y);for(let S=0;S<Math.min(v.length,b.length);S+=1){if(v[S]<b[S])return-1;if(v[S]>b[S])return 1}return v.length-b.length});let a=un(t),o=!1,c=new Set;for(let d of r){d.triggers.length>0&&(o=!0),e.versions_seen[d.name]??={};for(let y of d.triggers)y in e.channel_versions&&(e.versions_seen[d.name][y]=e.channel_versions[y]),H_.has(y)||c.add(y)}let l=V_(e.channel_versions),u=!1;for(let d of c)d in a&&a[d].consume()&&n!==void 0&&(e.channel_versions[d]=n(l),u=!0);let h={},p={};for(let d of r){let y=d.id??"";for(let[v,b]of d.writes)U_.has(v)||v in a&&(h[v]??=[],h[v].push(b),p[v]??=[],p[v].push(y))}for(let[d,y]of Object.entries(h)){if(y.length<2||a[d]?.lc_graph_name!=="DeltaChannel")continue;let v=p[d],b=y.map((S,k)=>({val:S,taskId:v[k]}));b.sort((S,k)=>S.taskId<k.taskId?-1:S.taskId>k.taskId?1:0),h[d]=b.map(S=>S.val)}l!=null&&n!=null&&(l=u?n(l):l);let m=new Set;for(let[d,y]of Object.entries(h))if(d in a){let v=a[d],b;try{b=v.update(y)}catch(S){if(S.name===$.unminifiable_name){let k=new $(`Invalid update for channel "${d}" with values ${JSON.stringify(y)}: ${S.message}`);throw k.lc_error_code=S.lc_error_code,k}else throw S}b&&n!==void 0&&(e.channel_versions[d]=n(l),v.isAvailable()&&m.add(d))}if(o)for(let d in a){if(!Object.prototype.hasOwnProperty.call(a,d))continue;let y=a[d];y.isAvailable()&&!m.has(d)&&y.update([])&&n!==void 0&&(e.channel_versions[d]=n(l),y.isAvailable()&&m.add(d))}if(o&&!B_(m,s))for(let d in a){if(!Object.prototype.hasOwnProperty.call(a,d))continue;let y=a[d];y.finish()&&n!==void 0&&(e.channel_versions[d]=n(l),y.isAvailable()&&m.add(d))}return m}function*G_(e,t,r){if(r.updatedChannels!=null&&r.triggerToNodes!=null){let n=new Set;for(let s of r.updatedChannels){let i=r.triggerToNodes[s];for(let a of i??[])n.add(a)}yield*[...n].sort();return}if(!(()=>{for(let n in e.channel_versions)if(e.channel_versions[n]!==null)return!1;return!0})())for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(yield n)}function W_(e){let t,r=new Map,n=new Set;if(e)for(let[s,i,a]of e){if(s==="00000000-0000-0000-0000-000000000000"&&i==="__resume__"&&t===void 0&&(t=a),i==="__resume__"&&s!=="00000000-0000-0000-0000-000000000000"){let o=r.get(s);o||(o=[],r.set(s,o)),o.push(a)}i!=="__error__"&&n.add(s)}return{nullResume:t,resumeByTaskId:r,successfulWriteTaskIds:n}}function fr(e,t,r,n,s,i,a){let o={},c=a.pendingWritesIndex?a:{...a,pendingWritesIndex:W_(t)},l=n[_t];if(l?.isAvailable()){let u=l.get().length;for(let h=0;h<u;h+=1){let p=ra([Ne,h],e,t,r,n,s,i,c);p!==void 0&&(o[p.id]=p)}}for(let u of G_(e,r,c)){let h=ra([js,u],e,t,r,n,s,i,c);h!==void 0&&(o[h.id]=h)}return o}function ra(e,t,r,n,s,i,a,o){let{step:c,checkpointer:l,manager:u}=o,h=i.configurable??{},p=h.checkpoint_ns??"";if(e[0]==="__pregel_push"&&Qf(e[e.length-1])){let m=e[e.length-1],d=em(m.name,m.func),y=[Ne],v=p===""?m.name:`${p}|${m.name}`,b=yt(JSON.stringify([v,c.toString(),m.name,Ne,e[1],e[2]]),t.id),S=`${v}:${b}`,k=[...e.slice(0,3),!0],C={langgraph_step:c,langgraph_node:m.name,langgraph_triggers:y,langgraph_path:k,langgraph_checkpoint_ns:S,checkpoint_ns:S};if(a){let T=[],O={checkpointId:t.id,checkpointNs:S,taskId:b,threadId:h.thread_id,runId:i.runId!=null?String(i.runId):void 0,nodeAttempt:1};return{name:m.name,input:m.input,proc:d,writes:T,config:{...he(Le(i,{metadata:C,store:o.store??i.store}),{runName:m.name,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[Kr]:b,[Se]:x=>ea(_=>T.push(..._),n,x),[Ie]:(x,_=!1)=>bn(t,s,{name:m.name,writes:T,triggers:y,path:k},x,_),[We]:l??h.__pregel_checkpointer,[ke]:{...h[ke],[p]:t.id},[Ae]:ta({pendingWrites:r??[],taskId:b,currentTaskInput:m.input,resumeMap:i.configurable?.[Ir],namespaceHash:Tt(S),pendingWritesIndex:o.pendingWritesIndex}),[rr]:t.channel_values[ir],checkpoint_id:void 0,checkpoint_ns:S}}),executionInfo:O},triggers:y,retry_policy:m.retry,cache_key:m.cache?{key:Tt((m.cache.keyFunc??JSON.stringify)([m.input])),ns:[Ls,m.name??"__dynamic__"],ttl:m.cache.ttl}:void 0,id:b,path:k,writers:[],timeout:m.timeout}}else return{id:b,name:m.name,interrupts:[],path:k}}else if(e[0]==="__pregel_push"){let m=typeof e[1]=="number"?e[1]:parseInt(e[1],10);if(!s.__pregel_tasks?.isAvailable())return;let d=s[_t].get();if(m<0||m>=d.length)return;let y=$s(d[m])&&!ce(d[m])?new Tr(d[m].node,d[m].args,d[m].timeout!==void 0?{timeout:d[m].timeout}:void 0):d[m];if(!$s(y)){console.warn(`Ignoring invalid packet ${JSON.stringify(y)} in pending sends.`);return}if(!(y.node in n)){console.warn(`Ignoring unknown node name ${y.node} in pending sends.`);return}let v=[Ne],b=p===""?y.node:`${p}|${y.node}`,S=yt(JSON.stringify([b,c.toString(),y.node,Ne,m.toString()]),t.id),k=`${b}:${S}`,C={langgraph_step:c,langgraph_node:y.node,langgraph_triggers:v,langgraph_path:e.slice(0,3),langgraph_checkpoint_ns:k,checkpoint_ns:k};if(a){let T=n[y.node],O=T.getNode();if(O!==void 0){T.metadata!==void 0&&(C={...C,...T.metadata});let x=[],_={checkpointId:t.id,checkpointNs:k,taskId:S,threadId:h.thread_id,runId:i.runId!=null?String(i.runId):void 0,nodeAttempt:1};return{name:y.node,input:y.args,proc:O,subgraphs:T.subgraphs,writes:x,config:{...he(Le(i,{metadata:C,tags:T.tags,store:o.store??i.store}),{runName:y.node,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[Kr]:S,[Se]:P=>ea(M=>x.push(...M),n,P),[Ie]:(P,M=!1)=>bn(t,s,{name:y.node,writes:x,triggers:v,path:e},P,M),[We]:l??h.__pregel_checkpointer,[ke]:{...h[ke],[p]:t.id},[Ae]:ta({pendingWrites:r??[],taskId:S,currentTaskInput:y.args,resumeMap:i.configurable?.[Ir],namespaceHash:Tt(k),pendingWritesIndex:o.pendingWritesIndex}),[rr]:t.channel_values[ir],checkpoint_id:void 0,checkpoint_ns:k}}),executionInfo:_},triggers:v,retry_policy:T.retryPolicy,cache_key:T.cachePolicy?{key:Tt((T.cachePolicy.keyFunc??JSON.stringify)([y.args])),ns:[Ls,T.name??"__dynamic__",y.node],ttl:T.cachePolicy.ttl}:void 0,id:S,path:e,writers:T.getWriters(),timeout:y.timeout??T.timeout}}}else return{id:S,name:y.node,interrupts:[],path:e}}else if(e[0]==="__pregel_pull"){let m=e[1].toString(),d=n[m];if(d===void 0)return;if(r?.length){let S=p===""?m:`${p}|${m}`,k=yt(JSON.stringify([S,c.toString(),m,js,m]),t.id);if(o.pendingWritesIndex?o.pendingWritesIndex.successfulWriteTaskIds.has(k):r.some(C=>C[0]===k&&C[1]!=="__error__"))return}let y=Qi(t.channel_versions);if(y===void 0)return;let v=t.versions_seen[m]??{},b=d.triggers.find(S=>s[S].isAvailable()?(t.channel_versions[S]??y)>(v[S]??y):!1);if(b!==void 0){let S=K_(d,s,a);if(S===void 0)return;let k=p===""?m:`${p}|${m}`,C=yt(JSON.stringify([k,c.toString(),m,js,[b]]),t.id),T=`${k}:${C}`,O={langgraph_step:c,langgraph_node:m,langgraph_triggers:[b],langgraph_path:e,langgraph_checkpoint_ns:T,checkpoint_ns:T};if(a){let x=d.getNode();if(x!==void 0){d.metadata!==void 0&&(O={...O,...d.metadata});let _=[],P={checkpointId:t.id,checkpointNs:T,taskId:C,threadId:h.thread_id,runId:i.runId!=null?String(i.runId):void 0,nodeAttempt:1};return{name:m,input:S,proc:x,subgraphs:d.subgraphs,writes:_,config:{...he(Le(i,{metadata:O,tags:d.tags,store:o.store??i.store}),{runName:m,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[Kr]:C,[Se]:M=>ea(F=>{_.push(...F)},n,M),[Ie]:(M,F=!1)=>bn(t,s,{name:m,writes:_,triggers:[b],path:e},M,F),[We]:l??h.__pregel_checkpointer,[ke]:{...h[ke],[p]:t.id},[Ae]:ta({pendingWrites:r??[],taskId:C,currentTaskInput:S,resumeMap:i.configurable?.[Ir],namespaceHash:Tt(T),pendingWritesIndex:o.pendingWritesIndex}),[rr]:t.channel_values[ir],checkpoint_id:void 0,checkpoint_ns:T}}),executionInfo:P},triggers:[b],retry_policy:d.retryPolicy,cache_key:d.cachePolicy?{key:Tt((d.cachePolicy.keyFunc??JSON.stringify)([S])),ns:[Ls,d.name??"__dynamic__",m],ttl:d.cachePolicy.ttl}:void 0,id:C,path:e,writers:d.getWriters(),timeout:d.timeout}}}else return{id:C,name:m,interrupts:[],path:e}}}}function sm(e,t,r,n,s,i,a,o,c){let{step:l,checkpointer:u,manager:h}=c,p=i[t];if(p===void 0)return;let m=p.getNode();if(m===void 0)return;let d=o.configurable??{},y=d.checkpoint_ns??"",v=[Ne],b=y===""?t:`${y}|${t}`,S=yt(JSON.stringify([b,l.toString(),t,Ne,"node_error_handler",e.id]),n.id),k=`${b}:${S}`,C=[Ne,String(e.name),t,!1],T={langgraph_step:l,langgraph_node:t,langgraph_triggers:v,langgraph_path:C,langgraph_checkpoint_ns:k,checkpoint_ns:k};p.metadata!==void 0&&(T={...T,...p.metadata});let O=[],x={checkpointId:n.id,checkpointNs:k,taskId:S,threadId:d.thread_id,runId:o.runId!=null?String(o.runId):void 0,nodeAttempt:1};return{name:t,input:e.input,proc:m,subgraphs:p.subgraphs,writes:O,config:{...he(Le(o,{metadata:T,tags:p.tags,store:c.store??o.store}),{runName:t,callbacks:h?.getChild(`graph:step:${l}`),configurable:{[Kr]:S,[Se]:_=>ea(P=>O.push(...P),i,_),[Ie]:(_,P=!1)=>bn(n,a,{name:t,writes:O,triggers:v,path:C},_,P),[We]:u??d.__pregel_checkpointer,[ke]:{...d[ke],[y]:n.id},[Ae]:ta({pendingWrites:s??[],taskId:S,currentTaskInput:e.input,resumeMap:o.configurable?.[Ir],namespaceHash:Tt(k)}),[rr]:n.channel_values[ir],[Ln]:new Gs(String(e.name),r),checkpoint_id:void 0,checkpoint_ns:k}}),executionInfo:x},triggers:v,retry_policy:p.retryPolicy,cache_key:void 0,id:S,path:C,writers:p.getWriters()}}function K_(e,t,r){let n;if(typeof e.channels=="object"&&!Array.isArray(e.channels)){n={};for(let[s,i]of Object.entries(e.channels))if(e.triggers.includes(i))try{n[s]=jr(t,i,!1)}catch(a){if(a.name===W.unminifiable_name)return;throw a}else if(i in t)try{n[s]=jr(t,i,!1)}catch(a){if(a.name===W.unminifiable_name)continue;throw a}}else if(Array.isArray(e.channels)){let s=!1;for(let i of e.channels)try{n=jr(t,i,!1),s=!0;break}catch(a){if(a.name===W.unminifiable_name)continue;throw a}if(!s)return}else throw new Error(`Invalid channels type, expected list or dict, got ${e.channels}`);return r&&e.mapper!==void 0&&(n=e.mapper(n)),n}function im(e,t){if(typeof e.args!="object"||e.args===null)return e;let r={};for(let[n,s]of Object.entries(e.args)){let i=t[n];(!i||i.lc_graph_name!=="UntrackedValue")&&(r[n]=s)}return new Tr(e.node,r)}function ta({pendingWrites:e,taskId:t,currentTaskInput:r,resumeMap:n,namespaceHash:s,pendingWritesIndex:i}){let a=i?i.nullResume:e.find(([c,l])=>c==="00000000-0000-0000-0000-000000000000"&&l==="__resume__")?.[2],o={callCounter:0,interruptCounter:-1,resume:(()=>{let c=i?(i.resumeByTaskId.get(t)??[]).flat():e.filter(([l,u])=>l===t&&u==="__resume__").flatMap(([l,u,h])=>h);if(n!=null&&s in n){let l=n[s];c.push(l)}return c})(),nullResume:a,subgraphCounter:0,currentTaskInput:r,consumeNullResume:()=>{if(o.nullResume)return delete o.nullResume,e.splice(e.findIndex(([c,l])=>c==="00000000-0000-0000-0000-000000000000"&&l==="__resume__"),1),a}};return o}var gs={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},_s=(e,t)=>`${e.start}${t}${e.end}`;function z_(e){if(e==null)return;let t={};if(e.metadata!=null)for(let[n,s]of Object.entries(e.metadata))No.has(n)||(t[n]=s);let r=Af(e.tags);return r!=null&&(t.tags=r),Object.keys(t).length>0?t:void 0}function*na(e){for(let{id:t,name:r,input:n,config:s,triggers:i,writes:a}of e){if(s?.tags?.includes("langsmith:hidden"))continue;let o={id:t,name:r,input:n,triggers:i,interrupts:a.filter(([l,u])=>l===t&&u==="__interrupt__").map(([,l])=>l)},c=z_(s);c!=null&&(o.metadata=c),yield o}}function q_(e){return typeof e!="object"||e===null?!1:"$writes"in e&&Array.isArray(e.$writes)}function am(e){let t={};for(let[r,n]of e){let s=String(r);if(s in t){let i=q_(t[s])?t[s].$writes:[t[s]];i.push(n),t[s]={$writes:i}}else t[s]=n}return t}function*om(e,t){for(let[{id:r,name:n,config:s},i]of e)s?.tags?.includes("langsmith:hidden")||(yield{id:r,name:n,result:am(i.filter(([a])=>Array.isArray(t)?t.includes(a):a===t)),interrupts:i.filter(a=>a[0]===Y).map(a=>a[1])})}function*cm(e,t,r,n,s,i,a,o){function c(h){let p={};return h.callbacks!=null&&(p.callbacks=h.callbacks),h.configurable!=null&&(p.configurable=h.configurable),h.maxConcurrency!=null&&(p.max_concurrency=h.maxConcurrency),h.metadata!=null&&(p.metadata=h.metadata),h.recursionLimit!=null&&(p.recursion_limit=h.recursionLimit),h.runId!=null&&(p.run_id=h.runId),h.runName!=null&&(p.run_name=h.runName),h.tags!=null&&(p.tags=h.tags),p}let l=e.configurable?.checkpoint_ns,u={};for(let h of s){if(!(h.subgraphs?.length?h.subgraphs:[h.proc]).find(Yi))continue;let p=`${h.name}:${h.id}`;l&&(p=`${l}|${p}`),u[h.id]={configurable:{thread_id:e.configurable?.thread_id,checkpoint_ns:p}}}yield{config:c(e),values:ut(t,r),metadata:n,next:s.map(h=>h.name),tasks:sc(s,i,u,o),parentConfig:a?c(a):void 0}}function sc(e,t,r,n){return e.map(s=>{let i=t.find(([l,u])=>l===s.id&&u==="__error__")?.[2],a=t.filter(([l,u])=>l===s.id&&u==="__interrupt__").map(([,,l])=>l),o=(()=>{if(i||a.length||!t.length)return;let l=t.findIndex(([u,h])=>u===s.id&&h==="__return__");if(l>=0)return t[l][2];if(typeof n=="string")return t.find(([u,h])=>u===s.id&&h===n)?.[2];if(Array.isArray(n)){let u=t.filter(([h,p])=>h===s.id&&n.includes(p)).map(([,h,p])=>[h,p]);return u.length?am(u):void 0}})();if(i)return{id:s.id,name:s.name,path:s.path,error:i,interrupts:a,result:o};let c=r?.[s.id];return{id:s.id,name:s.name,path:s.path,interrupts:a,...c!==void 0?{state:c}:{},result:o}})}function lm(e,t,r){console.log([`${_s(gs.blue,`[${e}:checkpoint]`)}`,`\x1B[1m State at the end of step ${e}:\x1B[0m
|
|
193
|
+
`,JSON.stringify(ut(t,r),null,2)].join(""))}function ys(e,t){let r=t.length;console.log([`${_s(gs.blue,`[${e}:tasks]`)}`,`\x1B[1m Starting step ${e} with ${r} task${r===1?"":"s"}:\x1B[0m
|
|
194
|
+
`,t.map(n=>`- ${_s(gs.green,String(n.name))} -> ${JSON.stringify(n.input,null,2)}`).join(`
|
|
195
|
+
`)].join(""))}function um(e,t,r){let n={};for(let[s,i]of t)r.includes(s)&&(n[s]||(n[s]=[]),n[s].push(i));console.log([`${_s(gs.blue,`[${e}:writes]`)}`,`\x1B[1m Finished step ${e} with writes to ${Object.keys(n).length} channel${Object.keys(n).length!==1?"s":""}:\x1B[0m
|
|
196
|
+
`,Object.entries(n).map(([s,i])=>`- ${_s(gs.yellow,s)} -> ${i.map(a=>JSON.stringify(a)).join(", ")}`).join(`
|
|
197
|
+
`)].join(""))}var sa=class extends Mn{_abortController;_innerReader;constructor(e,t){let r=e.getReader(),n=t??new AbortController;super({start(s){return i();function i(){return r.read().then(({done:a,value:o})=>{if(a){s.close();return}return s.enqueue(o),i()})}}}),this._abortController=n,this._innerReader=r}async cancel(e){this._abortController.abort(e),this._innerReader.releaseLock()}get signal(){return this._abortController.signal}},ac=class extends Mn{modes;controller;passthroughFn;_closed=!1;get closed(){return this._closed}constructor(e){let t,r=new Promise(n=>{t=n});super({start:n=>{t(n)}}),r.then(n=>{this.controller=n}),this.passthroughFn=e.passthroughFn,this.modes=e.modes}push(e){this._closed||!this.controller||(this.passthroughFn?.(e),this.controller.enqueue(e))}close(){try{this.controller.close()}catch{}finally{this._closed=!0}}error(e){try{this.controller?.error(e)}finally{this._closed=!0}}},fm=class extends Kt{name="StreamToolsHandler";awaitHandlers=!0;streamFn;runs={};constructor(e){super(),this.streamFn=e}handleToolStart(e,t,r,n,s,i,a,o){if(!i||s&&s.includes("langsmith:hidden"))return;let c=i.langgraph_checkpoint_ns?.split("|")??[],l={ns:c,toolCallId:o,toolName:a??"unknown",input:t};this.runs[r]=l,this.streamFn([c,"tools",{event:"on_tool_start",toolCallId:l.toolCallId,name:l.toolName,input:t}])}handleToolEvent(e,t){let r=this.runs[t];r&&this.streamFn([r.ns,"tools",{event:"on_tool_event",toolCallId:r.toolCallId,name:r.toolName,data:e}])}handleToolEnd(e,t){let r=this.runs[t];delete this.runs[t],r&&this.streamFn([r.ns,"tools",{event:"on_tool_end",toolCallId:r.toolCallId,name:r.toolName,output:e}])}handleToolError(e,t){let r=this.runs[t];delete this.runs[t],r&&this.streamFn([r.ns,"tools",{event:"on_tool_error",toolCallId:r.toolCallId,name:r.toolName,error:e}])}};function J_(e){return JSON.stringify(e,function(t,r){let n=this[t];if(n!=null&&typeof n=="object"&&"toDict"in n&&typeof n.toDict=="function"){let{type:s,data:i}=n.toDict();return{...i,type:s}}return r})}function Y_(e){return e instanceof Error?{error:e.name,message:e.message}:{error:"Error",message:JSON.stringify(e)}}function oc(e){return typeof e!="object"||e==null?!1:"configurable"in e&&typeof e.configurable=="object"&&e.configurable!=null}function ic(e){return!oc(e)||!e.configurable.thread_id?null:{thread_id:e.configurable.thread_id,checkpoint_ns:e.configurable.checkpoint_ns||"",checkpoint_id:e.configurable.checkpoint_id||null,checkpoint_map:e.configurable.checkpoint_map||null}}function hm(e){if(oc(e)){let t=Object.fromEntries(Object.entries(e.configurable).filter(([n])=>!n.startsWith("__"))),r={...e,configurable:t};return delete r.callbacks,r}return e}function pm(e){let t={...e,checkpoint:ic(e.config),parent_checkpoint:ic(e.parentConfig),config:hm(e.config),parent_config:hm(e.parentConfig),tasks:e.tasks.map(r=>{if(oc(r.state)){let n=ic(r.state);if(n!=null){let s={...r,checkpoint:n};return delete s.state,s}}return r})};return delete t.parentConfig,t}function mm(e){let t=new TextEncoder;return new ReadableStream({async start(r){let n=s=>{r.enqueue(t.encode(`event: ${s.event}
|
|
198
|
+
data: ${J_(s.data)}
|
|
199
|
+
|
|
200
|
+
`))};try{for await(let s of e){let[i,a,o]=s,c=o;if(a==="debug"){let l=o;l.type==="checkpoint"&&(c={...l,payload:pm(l.payload)})}a==="checkpoints"&&(c=pm(o)),n({event:i?.length?`${a}|${i.join("|")}`:a,data:c})}}catch(s){n({event:"error",data:Y_(s)})}r.close()}})}function dm(...e){return new ac({passthroughFn:t=>{let r=t[1]==="checkpoints"&&fn(t[2]);for(let n of e)(n.modes.has(t[1])||r)&&n.push(t)},modes:new Set(e.flatMap(t=>Array.from(t.modes)))})}var gm=class{checkpointId;#e=new Set;constructor(e){this.checkpointId=e}#t(e){let t=e.includes(":")?e.slice(0,e.lastIndexOf(":")):e;return this.#e.has(t)?!1:(this.#e.add(t),!0)}async getCheckpoint(e,t,r){if(this.#t(e)){let n=[];for await(let s of t.list(r,{before:{configurable:{checkpoint_id:this.checkpointId}},limit:1}))n.push(s);return n.length>0?n[0]:void 0}return await t.getTuple(r)??void 0}};var ia=Symbol.for("INPUT_DONE"),cc=Symbol.for("INPUT_RESUMING"),X_=25;function _m(e){if(!(e==null||typeof e!="object")){if(re.isInstance(e)){let t=e;t.id==null&&(t.id=kn(),t.lc_kwargs!=null&&(t.lc_kwargs.id=t.id));return}if(Array.isArray(e)){for(let t of e)_m(t);return}}}function ym(e){return e===void 0||e===""?[]:e.split("|")}function Z_(e){if(!e)return[];let t="";for(let r of Object.keys(e))r!==""&&r.length>t.length&&(t=r);return ym(t)}var Q_=class extends Mi{cache;queue=Promise.resolve();constructor(e){super(),this.cache=e}async get(e){return this.enqueueOperation("get",e)}async set(e){return this.enqueueOperation("set",e)}async clear(e){return this.enqueueOperation("clear",e)}async stop(){await this.queue}enqueueOperation(e,...t){let r=this.queue.then(()=>this.cache[e](...t));return this.queue=r.then(()=>{},()=>{}),r}},bm=class vm{input;output;config;checkpointer;checkpointerGetNextVersion;channels;checkpoint;checkpointIdSaved;_exitDeltaWrites;_deltaChannelsWithOverwrite=new Set;_hasPersistedParent=!1;_initialCheckpointConfig;checkpointConfig;checkpointMetadata;checkpointNamespace;checkpointPendingWrites=[];checkpointPreviousVersions;step;stop;durability;outputKeys;streamKeys;nodes;skipDoneTasks;prevCheckpointConfig;updatedChannels;status="pending";control;tasks={};stream;checkpointerPromises=new Set;isNested;resumeAtHead;_checkpointerChainedPromise=Promise.resolve();_trackCheckpointerPromise(t){let r=t.then(n=>(this.checkpointerPromises.delete(r),n),n=>{throw n});this.checkpointerPromises.add(r)}store;cache;manager;interruptAfter;interruptBefore;toInterrupt=[];debug=!1;triggerToNodes;get isResuming(){let t=!1;if("__start__"in this.checkpoint.channel_versions)t=!0;else for(let o in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,o)){t=!0;break}let r=this.config.configurable?.__pregel_resuming!==void 0&&this.config.configurable?.__pregel_resuming,n=this.input===null||this.input===void 0,s=pe(this.input)&&this.input.resume!=null,i=this.input===cc,a=!this.isNested&&this.config.metadata?.run_id!==void 0&&this.checkpointMetadata?.run_id!==void 0&&this.config.metadata.run_id===this.checkpointMetadata?.run_id;return t&&(r||n||s||i||a)}get isReplaying(){return!this.skipDoneTasks}constructor(t){this.input=t.input,this.checkpointer=t.checkpointer,this.checkpointer!==void 0?this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer):this.checkpointerGetNextVersion=nm,this.checkpoint=t.checkpoint,this.checkpointMetadata=t.checkpointMetadata,this.checkpointPreviousVersions=t.checkpointPreviousVersions,this.channels=t.channels,this.checkpointPendingWrites=t.checkpointPendingWrites,this.step=t.step,this.stop=t.stop,this.config=t.config,this.checkpointConfig=t.checkpointConfig,this.isNested=t.isNested,this.resumeAtHead=t.resumeAtHead,this.manager=t.manager,this.outputKeys=t.outputKeys,this.streamKeys=t.streamKeys,this.nodes=t.nodes,this.skipDoneTasks=t.skipDoneTasks,this.store=t.store,this.cache=t.cache?new Q_(t.cache):void 0,this.stream=t.stream,this.checkpointNamespace=t.checkpointNamespace,this.prevCheckpointConfig=t.prevCheckpointConfig,this.interruptAfter=t.interruptAfter,this.interruptBefore=t.interruptBefore,this.durability=t.durability,this.debug=t.debug,this.triggerToNodes=t.triggerToNodes,this.control=this.config.control,this._exitDeltaWrites=this.durability==="exit"&&this.checkpointer!=null?[]:void 0,this._hasPersistedParent=t.hasPersistedParent??!1,this._initialCheckpointConfig=t.checkpointConfig,this.checkpointIdSaved=t.checkpoint.id}static async initialize(t){let{config:r,stream:n}=t;n!==void 0&&r.configurable?.__pregel_stream!==void 0&&(n=dm(n,r.configurable[Dn]));let s=r.configurable?!("checkpoint_id"in r.configurable):!0,i=r.configurable?.[Ae];r.configurable&&i&&(i.subgraphCounter>0&&(r=le(r,{[Ue]:[r.configurable[Ue],i.subgraphCounter.toString()].join("|")})),i.subgraphCounter+=1);let a=r.configurable?.checkpoint_id,o=Ie in(r.configurable??{});!o&&r.configurable?.checkpoint_ns!==void 0&&r.configurable?.checkpoint_ns!==""&&(r=le(r,{checkpoint_ns:"",checkpoint_id:void 0}));let c=r;r.configurable?.checkpoint_id===void 0&&r.configurable?.checkpoint_map!==void 0&&r.configurable?.checkpoint_map?.[r.configurable?.checkpoint_ns]&&(c=le(r,{checkpoint_id:r.configurable[ke][r.configurable?.checkpoint_ns]}));let l=ym(r.configurable?.checkpoint_ns),u;t.checkpointer?c.configurable?.checkpoint_id?u=await t.checkpointer.getTuple(c):r.configurable?.__pregel_replay_state?(u=await r.configurable[Fs].getCheckpoint(r.configurable?.checkpoint_ns??"",t.checkpointer,c),r.configurable&&delete r.configurable[xr]):u=await t.checkpointer.getTuple(c):u=void 0;let h=u!==void 0;u||(u={config:r,checkpoint:Dr(),metadata:{source:"input",step:-2,parents:{}},pendingWrites:[]}),c={...r,...u.config,configurable:{checkpoint_ns:"",...r.configurable,...u.config.configurable}};let p=u.parentConfig,m=it(u.checkpoint),d={...u.metadata},y=u.pendingWrites??[],v=r.configurable?.checkpoint_ns,b=r.configurable?.[ke];typeof v=="string"&&v!==""&&typeof b=="object"&&b!==null&&v in b&&y.length>0&&(y=y.filter(([,M])=>M!==Oe));let S=!1,k=c.configurable?.thread_id,C=c.configurable?.checkpoint_ns??"";t.checkpointer&&a&&typeof k=="string"&&(S=(await t.checkpointer.getTuple({configurable:{thread_id:k,checkpoint_ns:C}}))?.config.configurable?.checkpoint_id===a&&d.source!=="update"&&d.source!=="fork");let T=await hn(t.channelSpecs,m,{saver:t.checkpointer,config:c}),O=(d.step??0)+1,x=O+(r.recursionLimit??X_)+1,_={...m.channel_versions},P=t.store?new Ni(t.store):void 0;return P&&await P.start(),new vm({input:t.input,config:r,checkpointer:t.checkpointer,checkpoint:m,checkpointMetadata:d,checkpointConfig:c,prevCheckpointConfig:p,checkpointNamespace:l,channels:T,isNested:o,resumeAtHead:S,manager:t.manager,skipDoneTasks:s,step:O,stop:x,checkpointPreviousVersions:_,checkpointPendingWrites:y,outputKeys:t.outputKeys??[],streamKeys:t.streamKeys??[],nodes:t.nodes,stream:n,store:P,cache:t.cache,interruptAfter:t.interruptAfter,interruptBefore:t.interruptBefore,durability:t.durability,debug:t.debug,triggerToNodes:t.triggerToNodes,hasPersistedParent:h})}_checkpointerPutAfterPrevious(t){this._checkpointerChainedPromise=this._checkpointerChainedPromise.then(()=>this.checkpointer?.put(t.config,t.checkpoint,t.metadata,t.newVersions)),this._trackCheckpointerPromise(this._checkpointerChainedPromise)}putWrites(t,r){let n=r;if(n.length===0)return;n.every(([c])=>c in cs)&&(n=Array.from(new Map(n.map(c=>[c[0],c])).values()));let s=!1;for(let c in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,c)&&this.channels[c].lc_graph_name==="UntrackedValue"){s=!0;break}let i=n;s&&(i=n.filter(([c])=>{let l=this.channels[c];return!l||l.lc_graph_name!=="UntrackedValue"}).map(([c,l])=>c==="__pregel_tasks"&&ce(l)?[c,im(l,this.channels)]:[c,l])),this.checkpointPendingWrites=this.checkpointPendingWrites.filter(c=>c[0]!==t);for(let[c,l]of i)this.checkpointPendingWrites.push([t,c,l]);for(let[c,l]of i){let u=this.channels[c];u!=null&&qe(u)&&_m(l)}let a=le(this.checkpointConfig,{[Ue]:this.config.configurable?.checkpoint_ns??"",[nr]:this.checkpoint.id});if(this.durability!=="exit"&&this.checkpointer!=null&&this._trackCheckpointerPromise(this.checkpointer.putWrites(a,i,t)),this.tasks&&this._outputWrites(t,n),!r.length||!this.cache||!this.tasks)return;let o=this.tasks[t];o==null||o.cache_key==null||r[0][0]==="__error__"||r[0][0]==="__interrupt__"||this.cache.set([{key:[o.cache_key.ns,o.cache_key.key],value:o.writes,ttl:o.cache_key.ttl}])}_outputWrites(t,r,n=!1){let s=this.tasks[t];if(s!==void 0){if(s.config!==void 0&&(s.config.tags??[]).includes("langsmith:hidden"))return;if(r.length>0)if(r[0][0]==="__interrupt__"){if(s.path?.[0]==="__pregel_push"&&s.path?.[s.path.length-1]===!0)return;let i=r.filter(a=>a[0]===Y).flatMap(a=>a[1]);this._emit([["updates",{[Y]:i}],["values",{[Y]:i}]])}else r[0][0]!=="__error__"&&this._emit(ur(xt(Yf(this.outputKeys,[[s,r]],n),"updates")));n||this._emit(ur(xt(om([[s,r]],this.streamKeys),"tasks")))}}async _matchCachedWrites(){if(!this.cache)return[];let t=[],r=([a,o])=>`ns:${a.join(",")}|key:${o}`,n=[],s={};for(let a of Object.values(this.tasks))a.cache_key!=null&&!a.writes.length&&(n.push([a.cache_key.ns,a.cache_key.key]),s[r([a.cache_key.ns,a.cache_key.key])]=a);if(n.length===0)return[];let i=await this.cache.get(n);for(let{key:a,value:o}of i){let c=s[r(a)];c!=null&&(c.writes.push(...o),t.push({task:c,result:o}))}return t}async tick(t){this.store&&!this.store.isRunning&&await this.store?.start();let{inputKeys:r=[]}=t;if(this.status!=="pending")throw new Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);if(![ia,cc].includes(this.input))await this._first(r);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new Nt;if(Object.values(this.tasks).every(s=>s.writes.length>0)){let s=Object.values(this.tasks),i=s.flatMap(o=>o.writes);this.updatedChannels=Re(this.checkpoint,this.channels,s,this.checkpointerGetNextVersion,this.triggerToNodes);for(let[o,c]of i){let l=this.channels[o];l!=null&&qe(l)&&Ar(c)&&this._deltaChannelsWithOverwrite.add(o)}let a=await ct(xt(Zi(this.outputKeys,i,this.channels),"values"));if(this._exitDeltaWrites!==void 0)for(let[o,c,l]of this.checkpointPendingWrites){let u=this.channels[c];u!=null&&qe(u)&&this._exitDeltaWrites.push([this.step,o,c,l])}if(this.checkpointPendingWrites=[],await this._putCheckpoint({source:"loop"}),this._emitValuesWithCheckpointMeta(a),ds(this.checkpoint,this.interruptAfter,s))throw this.status="interrupt_after",new Nt;this.config.configurable?.__pregel_resuming!==void 0&&delete this.config.configurable?.[xr]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;this.tasks=fr(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step,checkpointer:this.checkpointer,isResuming:this.isResuming,manager:this.manager,store:this.store,stream:this.stream,triggerToNodes:this.triggerToNodes,updatedChannels:this.updatedChannels});let n=Object.values(this.tasks);if(this.checkpointer&&(this.stream.modes.has("checkpoints")||this.stream.modes.has("debug"))&&this._emit(await ct(xt(cm(this.checkpointConfig,this.channels,this.streamKeys,this.checkpointMetadata,n,this.checkpointPendingWrites,this.prevCheckpointConfig,this.outputKeys),"checkpoints"))),n.length===0)return this.status="done",!1;if(this.control!=null&&this.control.drainRequested)return this.status="draining",!1;if(this.skipDoneTasks&&this.checkpointPendingWrites.length>0){for(let[s,i,a]of this.checkpointPendingWrites){if(i==="__error__"||i==="__error_source_node__"||i==="__interrupt__"||i==="__resume__")continue;let o=n.find(c=>c.id===s);o&&o.writes.push([i,a])}this._resumeErrorHandlersIfApplicable(),n=Object.values(this.tasks);for(let s of n)s.writes.length>0&&this._outputWrites(s.id,s.writes,!0)}if(n.every(s=>s.writes.length>0))return this.tick({inputKeys:r});if(ds(this.checkpoint,this.interruptBefore,n))throw this.status="interrupt_before",new Nt;if(this.stream.modes.has("tasks")||this.stream.modes.has("debug")){let s=await ct(xt(na(n),"tasks"));this._emit(s)}return!0}async finishAndHandleError(t){this.durability==="exit"&&(!this.isNested||typeof t<"u"||this.checkpointNamespace.every(n=>!n.includes(":")))&&(await this._putExitDeltaWrites(),this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let r=this._suppressInterrupt(t);return(r||t===void 0)&&(this.output=ut(this.channels,this.outputKeys)),r&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(n=>n.writes.length>0)&&(this.updatedChannels=Re(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emitValuesWithCheckpointMeta(ur(xt(Zi(this.outputKeys,Object.values(this.tasks).flatMap(n=>n.writes),this.channels),"values")))),Mt(t)&&!t.interrupts.length&&this._emit([["updates",{[Y]:[]}],["values",{[Y]:[]}]],this.#e())),r}async acceptPush(t,r,n){if(this.interruptAfter?.length>0&&ds(this.checkpoint,this.interruptAfter,[t])){this.toInterrupt.push(t);return}let s=ra([Ne,t.path??[],r,t.id,n],this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,t.config??{},!0,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(!s)return;if(this.interruptBefore?.length>0&&ds(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}(this.stream.modes.has("tasks")||this.stream.modes.has("debug"))&&this._emit(ur(xt(na([s]),"tasks"))),this.debug&&ys(this.step,[s]),this.tasks[s.id]=s,this.skipDoneTasks&&this._matchWrites({[s.id]:s});let i=await this._matchCachedWrites();for(let{task:a}of i)this._outputWrites(a.id,a.writes,!0);return s}getErrorHandlerNode(t){return this.nodes[t]?.errorHandlerNode}isErrorHandlerNode(t){return this.nodes[t]?.isErrorHandler===!0}scheduleErrorHandler(t,r){let n=this.getErrorHandlerNode(String(t.name));if(!n)return;let s=sm(t,n,r,this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,t.config??this.config,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(s!==void 0)return this.tasks[s.id]=s,this._emit(ur(xt(na([s]),"tasks"))),this.debug&&ys(this.step,[s]),s}_resumeErrorHandlersIfApplicable(){let t=new Map;for(let[r,n]of this.checkpointPendingWrites){if(n!=="__error_source_node__")continue;let s=this.checkpointPendingWrites.find(([o,c])=>o===r&&c==="__error__");if(s===void 0)continue;let i=s[2],a=new Error(i?.message??String(i));i?.name&&(a.name=i.name),t.set(r,a)}for(let[r,n]of t){let s=this.tasks[r];s!==void 0&&this.getErrorHandlerNode(String(s.name))&&(s.writes.length===0&&s.writes.push([tr,{message:n.message,name:n.name}]),this.scheduleErrorHandler(s,n))}}_suppressInterrupt(t){return Mt(t)&&!this.isNested}async _first(t){let{configurable:r}=this.config,n=r?.[Ae];if(n&&n.nullResume!==void 0&&this.putWrites(Me,[[Oe,n.nullResume]]),pe(this.input)){let l=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume=="object"&&Object.keys(this.input.resume).every(zi)&&(this.config.configurable??={},this.config.configurable[Ir]=this.input.resume),l&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let u={};for(let[h,p,m]of Jf(this.input,this.checkpointPendingWrites))u[h]??=[],u[h].push([p,m]);if(Object.keys(u).length===0)throw new zs("Received empty Command input");for(let[h,p]of Object.entries(u))this.putWrites(h,p)}let s=(this.checkpointPendingWrites??[]).filter(l=>l[0]===Me).map(l=>l.slice(1));s.length>0&&Re(this.checkpoint,this.channels,[{name:dt,writes:s,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let i=pe(this.input),a=i&&s.length>0,o=this.isReplaying&&(this.isNested&&r?.checkpoint_ns!==void 0&&r?.checkpoint_ns!==""&&r?.checkpoint_map!==void 0&&r.checkpoint_ns in r.checkpoint_map||!(i&&this.input.resume!=null||r?.__pregel_resuming===!0||this.resumeAtHead));o&&(this.checkpointPendingWrites=this.checkpointPendingWrites.filter(l=>l[1]!==Oe));let c=this.isResuming;if(c||a){let l={...this.checkpoint.versions_seen[Y]};for(let h in this.channels)Object.prototype.hasOwnProperty.call(this.channels,h)&&this.checkpoint.channel_versions[h]!==void 0&&(l[h]=this.checkpoint.channel_versions[h]);this.checkpoint.versions_seen[Y]=l,o&&this.checkpointMetadata.source!=="update"&&this.checkpointMetadata.source!=="fork"&&(this.checkpointPendingWrites=this.checkpointPendingWrites.filter(h=>h[1]!==Y),await this._putCheckpoint({source:"fork"}));let u=await ct(xt(Zi(this.outputKeys,!0,this.channels),"values"));c?this.input=cc:a&&(await this._putCheckpoint({source:"input"}),this.input=ia),this._emitValuesWithCheckpointMeta(u)}else{let l=await ct(Xi(t,this.input));if(l.length>0){let u=fr(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});this.updatedChannels=Re(this.checkpoint,this.channels,Object.values(u).concat([{name:dt,writes:l,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes);let h=l.filter(([p])=>{let m=this.channels[p];return m!=null&&qe(m)});for(let[p,m]of h)Ar(m)&&this._deltaChannelsWithOverwrite.add(p);if(h.length>0)if(this._exitDeltaWrites!==void 0)for(let[p,m]of h)this._exitDeltaWrites.push([this.step,Me,p,m]);else this.checkpointer!=null&&this.putWrites(Me,h);await this._putCheckpoint({source:"input"}),this.input=ia}else if("__pregel_resuming"in(this.config.configurable??{}))this.input=ia;else throw new zs(`Received no input writes for ${JSON.stringify(t,null,2)}`)}if(!this.isNested){let l;if(o){let u=this.checkpoint.id;(this.checkpointMetadata.source==="update"||this.checkpointMetadata.source==="fork")&&this.prevCheckpointConfig&&(u=this.prevCheckpointConfig.configurable?.checkpoint_id??u),l=new gm(u)}this.config=le(this.config,{[xr]:this.isResuming,[Fs]:l})}}#e(){let t=this.checkpointNamespace;if(!(t.length===0||t.length===1&&t[0]==="")||this.config.configurable?.__pregel_stream===void 0)return t;let r=Z_(this.config.configurable?.[ke]);return r.length>0?r:t}_emit(t,r=this.checkpointNamespace){for(let[n,s]of t)if(this.stream.modes.has(n)&&this.stream.push([r,n,s]),(n==="checkpoints"||n==="tasks")&&this.stream.modes.has("debug")){let i=n==="checkpoints"?this.step-1:this.step,a=new Date().toISOString(),o=n==="checkpoints"?"checkpoint":typeof s=="object"&&s!=null&&"result"in s?"task_result":"task";this.stream.push([r,"debug",{step:i,type:o,timestamp:a,payload:s}])}}_currentCheckpointMeta(){if(!this.checkpointMetadata||!this.checkpoint?.id)return;let t=this.prevCheckpointConfig?.configurable?.checkpoint_id;return{checkpoint:{id:this.checkpoint.id,...t?{parent_id:t}:{},step:this.checkpointMetadata.step,source:this.checkpointMetadata.source}}}_emitValuesWithCheckpointMeta(t){let r=this._currentCheckpointMeta();for(let[n,s]of t)n==="values"&&r?.checkpoint!=null&&!this.stream.modes.has("checkpoints")&&this.stream.push([this.checkpointNamespace,"checkpoints",r.checkpoint]),this.stream.modes.has(n)&&this.stream.push([this.checkpointNamespace,n,s])}_putCheckpoint(t){let r=this.checkpointMetadata===t,n=this.checkpointer!=null&&(this.durability!=="exit"||r),s=c=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=le(this.checkpointConfig,{[Ue]:this.config.configurable?.checkpoint_ns??""});let l={...this.checkpoint.channel_versions},u=yn(this.checkpointPreviousVersions,l);this.checkpointPreviousVersions=l,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:it(c),metadata:{...this.checkpointMetadata},newVersions:u}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}},i;if(r)i={...this.checkpointMetadata.counters_since_delta_snapshot??{}};else{let c=this.checkpointMetadata.counters_since_delta_snapshot??{};i={};let l=this.updatedChannels??new Set;for(let u in this.channels){if(!Object.prototype.hasOwnProperty.call(this.channels,u)||!qe(this.channels[u]))continue;let[h,p]=c[u]??[0,0];i[u]=[l.has(u)?h+1:h,p+1]}this.checkpointMetadata={...t,step:this.step,parents:this.config.configurable?.checkpoint_map??{}}}let a=n?Ri(this.channels,i):new Set;if(n)for(let c of this._deltaChannelsWithOverwrite)a.add(c);this.checkpoint=at(this.checkpoint,n?this.channels:void 0,this.step,{id:r?this.checkpoint.id:void 0,channelsToSnapshot:a,updatedChannels:this.updatedChannels,getNextVersion:n?c=>this.checkpointerGetNextVersion(c):void 0});for(let c of a)i[c]=[0,0],this._deltaChannelsWithOverwrite.delete(c);let o={};for(let c in i){if(!Object.prototype.hasOwnProperty.call(i,c))continue;let[l,u]=i[c];(l!==0||u!==0)&&(o[c]=[l,u])}Object.keys(o).length>0?this.checkpointMetadata.counters_since_delta_snapshot=o:delete this.checkpointMetadata.counters_since_delta_snapshot,n&&s(this.checkpoint),r||(this.step+=1)}async _putExitDeltaWrites(){if(this._exitDeltaWrites===void 0||this._exitDeltaWrites.length===0||this.checkpointer==null||this._initialCheckpointConfig===void 0)return;let t=this.checkpointMetadata.counters_since_delta_snapshot??{},r=Ri(this.channels,t);for(let c of this._deltaChannelsWithOverwrite)r.add(c);let n=this._exitDeltaWrites.filter(([,,c])=>!r.has(c));if(n.length===0)return;let s;if(this._hasPersistedParent)s=this._initialCheckpointConfig;else{let c=Dr();c.id=this.checkpointIdSaved??c.id,c.ts=new Date().toISOString();let l=le(this._initialCheckpointConfig,{[nr]:void 0});s=le(this._initialCheckpointConfig,{[nr]:c.id}),this._trackCheckpointerPromise(this.checkpointer.put(l,c,{source:"loop",step:-2,parents:{}},{})),this.checkpointConfig=s}let i=le(s,{[Ue]:this.config.configurable?.checkpoint_ns??"",[nr]:s.configurable?.[nr]}),a=new Map,o=[];for(let[c,l,u,h]of n){let p=`${c}\0${l}`,m=a.get(p);m===void 0&&(m=[],a.set(p,m),o.push({key:p,step:c,tid:l})),m.push([u,h])}for(let{key:c,step:l,tid:u}of o){let h=Ro(l,u);this._trackCheckpointerPromise(this.checkpointer.putWrites(i,a.get(c),h))}}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let t=le(this.checkpointConfig,{[Ue]:this.config.configurable?.checkpoint_ns??"",[nr]:this.checkpoint.id}),r={};for(let[n,s,i]of this.checkpointPendingWrites)r[n]??=[],r[n].push([s,i]);for(let[n,s]of Object.entries(r))this._trackCheckpointerPromise(this.checkpointer.putWrites(t,s,n))}_matchWrites(t){for(let[r,n,s]of this.checkpointPendingWrites){if(n==="__error__"||n==="__interrupt__"||n==="__resume__")continue;let i=Object.values(t).find(a=>a.id===r);i&&i.writes.push([n,s])}for(let r of Object.values(t))r.writes.length>0&&this._outputWrites(r.id,r.writes,!0)}};function ey(e){return ee(e?.message)}function wm(e,t,r){if(!e)return;let n=e.langgraph_checkpoint_ns,s=e.checkpoint_ns,i=n??s;if(i)return[i.split("|"),{tags:t,name:r,...e}]}var Sm=class extends Kt{name="StreamMessagesHandler";streamFn;metadatas={};seen={};emittedChatModelRunIds={};stableMessageIdMap={};lc_prefer_streaming=!0;constructor(e){super(),this.streamFn=e}_emit(e,t,r,n=!1){if(n&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let s=t.id;r!=null&&(Cs(t)?s??=`run-${r}-tool-${t.tool_call_id}`:((s==null||s===`run-${r}`)&&(s=this.stableMessageIdMap[r]??s??`run-${r}`),this.stableMessageIdMap[r]??=s)),s!==t.id&&(t.id=s,t.lc_kwargs.id=s),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],"messages",[t,e[1]]])}handleChatModelStart(e,t,r,n,s,i,a,o){a&&(!i||!i.includes("langsmith:nostream")&&!i.includes("nostream"))&&(this.metadatas[r]=wm(a,i,o))}handleLLMNewToken(e,t,r,n,s,i){let a=i?.chunk;this.emittedChatModelRunIds[r]=!0,this.metadatas[r]!==void 0&&(ey(a)?this._emit(this.metadatas[r],a.message,r):this._emit(this.metadatas[r],new me({content:e}),r))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let r=e.generations?.[0]?.[0];ee(r?.message)&&this._emit(this.metadatas[t],r?.message,t,!0),delete this.emittedChatModelRunIds[t]}delete this.metadatas[t],delete this.stableMessageIdMap[t]}}handleLLMError(e,t){delete this.metadatas[t]}handleChainStart(e,t,r,n,s,i,a,o){if(i!==void 0&&o===i.langgraph_node&&(s===void 0||!s.includes("langsmith:hidden"))&&(this.metadatas[r]=wm(i,s,o),typeof t=="object")){for(let c of Object.values(t))if((ee(c)||It(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(ee(l)||It(l))&&l.id!==void 0&&(this.seen[l.id]=l)}}handleChainEnd(e,t){let r=this.metadatas[t];if(delete this.metadatas[t],r!==void 0){if(ee(e))this._emit(r,e,t,!0);else if(Array.isArray(e))for(let n of e)ee(n)&&this._emit(r,n,t,!0);else if(e!=null&&typeof e=="object"){for(let n of Object.values(e))if(ee(n))this._emit(r,n,t,!0);else if(Array.isArray(n))for(let s of n)ee(s)&&this._emit(r,s,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}};function km(e){if("response_metadata"in e&&typeof e.response_metadata=="object"&&e.response_metadata!=null)return e.response_metadata}function Cm(e){if("usage_metadata"in e&&typeof e.usage_metadata=="object"&&e.usage_metadata!=null)return e.usage_metadata}function ty(e){switch(e.type){case"text":return{type:"text",text:""};case"reasoning":return{type:"reasoning",reasoning:""};case"tool_call":case"tool_call_chunk":return{type:"tool_call_chunk",...e.id!=null?{id:e.id}:{},...e.name!=null?{name:e.name}:{},args:""};default:return e}}function ry(e){switch(e.type){case"text":{let t=typeof e.text=="string"?e.text:"";return t.length>0?{event:"content-block-delta",index:typeof e.index=="number"?e.index:0,delta:{type:"text-delta",text:t}}:void 0}case"reasoning":{let t=typeof e.reasoning=="string"?e.reasoning:"";return t.length>0?{event:"content-block-delta",index:typeof e.index=="number"?e.index:0,delta:{type:"reasoning-delta",reasoning:t}}:void 0}case"tool_call_chunk":return{event:"content-block-delta",index:typeof e.index=="number"?e.index:0,delta:{type:"block-delta",fields:{...e,type:"tool_call_chunk"}}};default:return}}var Em=class extends Kt{name="StreamProtocolMessagesHandler";streamFn;metadatas={};seen={};streamedRunIds=new Set;stableMessageIdMap={};lc_prefer_chat_model_stream_events=!0;awaitHandlers=!0;constructor(e){super(),this.streamFn=e}normalizeMessageId(e,t){let r=e.id;return t!=null&&(Ge.isInstance(e)?r??=`run-${t}-tool-${e.tool_call_id}`:((r==null||r===`run-${t}`)&&(r=this.stableMessageIdMap[t]??r??`run-${t}`),this.stableMessageIdMap[t]??=r)),r!==e.id&&(e.id=r,e.lc_kwargs.id=r),e.id!=null&&(this.seen[e.id]=e),e.id}emit(e,t,r){let n=r!=null?{...e[1],run_id:r}:e[1];this.streamFn([e[0],"messages",[t,n]])}emitFinalMessage(e,t,r,n=!1){let s=t.id??(r!=null?this.stableMessageIdMap[r]:void 0);if(n&&s!=null&&this.seen[s]!==void 0)return;let i=this.normalizeMessageId(t,r),a=t.type==="human"?"human":t.type==="system"?"system":t.type==="tool"?"tool":"ai",o=a==="tool"&&Ge.isInstance(t)?t.tool_call_id:void 0;this.emit(e,{event:"message-start",...i!=null?{id:i}:{},...a!=="ai"?{role:a}:{},...typeof o=="string"?{tool_call_id:o}:{}},r),(Array.isArray(t.content)?t.content:typeof t.content=="string"&&t.content.length>0?[{type:"text",text:t.content}]:[]).forEach((c,l)=>{let u=typeof c.index=="number"?c.index:l;this.emit(e,{event:"content-block-start",index:u,content:ty(c)},r);let h=ry({...c,index:u});h!=null&&this.emit(e,h,r),this.emit(e,{event:"content-block-finish",index:u,content:c},r)}),this.emit(e,{event:"message-finish",...Cm(t)!=null?{usage:Cm(t)}:{},...km(t)!=null?{responseMetadata:km(t)}:{}},r)}handleChatModelStart(e,t,r,n,s,i,a,o){a&&(!i||!i.includes("langsmith:nostream")&&!i.includes("nostream"))&&(this.metadatas[r]=[a.langgraph_checkpoint_ns.split("|"),{tags:i,name:o,...a}])}handleLLMNewToken(){}handleChatModelStreamEvent(e,t){let r=this.metadatas[t];if(r===void 0)return;let n=e;if(e.event==="message-start"){this.streamedRunIds.add(t);let s=e.id??`run-${t}`;this.seen[s]=!0,this.stableMessageIdMap[t]??=s,e.id==null&&(n={...e,id:s})}this.emit(r,n,t)}handleLLMEnd(e,t){let r=this.metadatas[t];if(r===void 0)return;let n=e.generations?.[0]?.[0],s=re.isInstance(n?.message)?n.message:void 0;if(s!=null)if(this.streamedRunIds.has(t)){let i=this.normalizeMessageId(s,t);i!=null&&(this.seen[i]=s)}else this.emitFinalMessage(r,s,t,!0);this.streamedRunIds.delete(t),delete this.metadatas[t],delete this.stableMessageIdMap[t]}handleLLMError(e,t){this.streamedRunIds.delete(t),delete this.metadatas[t],delete this.stableMessageIdMap[t]}handleChainStart(e,t,r,n,s,i,a,o){if(i!==void 0&&o===i.langgraph_node&&(s===void 0||!s.includes("langsmith:hidden"))&&(this.metadatas[r]=[i.langgraph_checkpoint_ns.split("|"),{tags:s,name:o,...i}],typeof t=="object")){for(let c of Object.values(t))if((re.isInstance(c)||En.isInstance(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(re.isInstance(l)||En.isInstance(l))&&l.id!==void 0&&(this.seen[l.id]=l)}}handleChainEnd(e,t){let r=this.metadatas[t];if(delete this.metadatas[t],r===void 0)return;let n=s=>{re.isInstance(s)&&!Ge.isInstance(s)&&this.emitFinalMessage(r,s,t,!0)};if(re.isInstance(e))n(e);else if(Array.isArray(e))for(let s of e)n(s);else if(e!=null&&typeof e=="object")for(let s of Object.values(e))if(Array.isArray(s))for(let i of s)n(i);else n(s);delete this.stableMessageIdMap[t]}handleChainError(e,t){delete this.metadatas[t],delete this.stableMessageIdMap[t]}};var ny=class{active=!0;lastProgress=Date.now();refreshOn;constructor(e){this.refreshOn=e}touch(){this.lastProgress=Date.now()}autoTouch(){this.refreshOn==="auto"&&(this.lastProgress=Date.now())}close(){this.active=!1}},sy=class extends Kt{name="IdleProgressCallbackHandler";awaitHandlers=!1;#e;constructor(e){super(),this.#e=e}#t=()=>{this.#e.autoTouch()};handleLLMStart=this.#t;handleChatModelStart=this.#t;handleLLMNewToken=this.#t;handleLLMEnd=this.#t;handleLLMError=this.#t;handleChainStart=this.#t;handleChainEnd=this.#t;handleChainError=this.#t;handleToolStart=this.#t;handleToolEnd=this.#t;handleToolError=this.#t;handleText=this.#t;handleRetrieverStart=this.#t;handleRetrieverEnd=this.#t;handleRetrieverError=this.#t;handleCustomEvent=this.#t};function iy(e,t,r,n){let s=e.configurable??{},i={},a=s[Se];typeof a=="function"&&(i[Se]=l=>{if(t.active)return l&&l.length&&t.autoTouch(),a(l)});let o=s[gt];typeof o=="function"&&(i[gt]=(...l)=>{if(!t.active)throw new Error(`Node "${n}" attempt was cancelled after its timeout fired`);return t.autoTouch(),o(...l)});let c={...Object.keys(i).length>0?le(e,i):e};if(c.heartbeat=()=>{r.idleTimeout!==void 0&&t.touch()},typeof c.writer=="function"){let l=c.writer;c.writer=(u=>{if(t.active)return t.autoTouch(),l(u)})}if((r.refreshOn??"auto")==="auto"&&r.idleTimeout!==void 0){let l=new sy(t),u=c.callbacks;if(u===void 0)c.callbacks=[l];else if(Array.isArray(u))c.callbacks=[...u,l];else{let h=u.copy();h.addHandler(l,!0),c.callbacks=h}}return c}async function Tm(e,t,r,n){let s=new ny(r.refreshOn??"auto"),i=new AbortController,{signal:a,dispose:o}=pr(t.signal,i.signal),c=iy({...t,signal:a},s,r,String(e.name)),l=Date.now(),u=n(c).then(b=>({type:"ok",value:b}),b=>({type:"err",error:b})),h,p,m=()=>{h!==void 0&&clearTimeout(h),p!==void 0&&clearTimeout(p)},d=new Promise(b=>{if(r.runTimeout!==void 0&&(h=setTimeout(()=>b({type:"timeout",kind:"run"}),r.runTimeout)),r.idleTimeout!==void 0){let S=r.idleTimeout,k=()=>{let C=s.lastProgress+S-Date.now();C<=0?b({type:"timeout",kind:"idle"}):p=setTimeout(k,C)};p=setTimeout(k,S)}}),y;try{y=await Promise.race([u,d])}finally{m()}if(y.type!=="timeout"){let b=Date.now();r.runTimeout!==void 0&&b-l>=r.runTimeout?y={type:"timeout",kind:"run"}:r.idleTimeout!==void 0&&b-s.lastProgress>=r.idleTimeout&&(y={type:"timeout",kind:"idle"})}if(y.type==="ok")return o?.(),y.value;if(y.type==="err")throw o?.(),y.error;let v=Date.now()-l;throw s.close(),e.writes.splice(0,e.writes.length),i.abort(),o?.(),new Ks({node:String(e.name),elapsed:v,kind:y.kind,runTimeout:r.runTimeout,idleTimeout:r.idleTimeout})}var ay=[400,401,402,403,404,405,406,407,409],oy=e=>{if(e.message.startsWith("Cancel")||e.message.startsWith("AbortError")||e.name==="AbortError"||e.name==="GraphValueError"||e?.code==="ECONNABORTED")return!1;let t=e?.response?.status??e?.status;return!(t&&ay.includes(+t)||e?.error?.code==="insufficient_quota")};async function aa(e,t,r,n){let s=e.retry_policy??t,i=0,a,o,c=e.config??{};r&&(c=le(c,r)),c={...c,signal:n};let l=Date.now();for(c.executionInfo!=null&&(c.executionInfo={...c.executionInfo,nodeFirstAttemptTime:l});!n?.aborted;){e.writes.splice(0,e.writes.length),a=void 0;try{e.timeout!==void 0?o=await Tm(e,c,e.timeout,u=>e.proc.invoke(e.input,u)):o=await e.proc.invoke(e.input,c);break}catch(u){if(a=u,a.pregelTaskId=e.id,va(a)){let y=c?.configurable?.checkpoint_ns,v=a.command;if(v.graph===y){for(let b of e.writers)await b.invoke(v,c);a=void 0;break}else if(v.graph===je.PARENT){let b=Of(y);a.command=new je({...a.command,graph:b})}}if(ar(a)||s===void 0||(i+=1,i>=(s.maxAttempts??3))||!(s.retryOn??oy)(a))break;let h=s.initialInterval??500,p=Math.min(s.maxInterval??128e3,h*(s.backoffFactor??2)**(i-1)),m=s.jitter??!0?p+Math.random()*1e3:p;await new Promise(y=>setTimeout(y,m));let d=a.name??a.constructor.unminifiable_name??a.constructor.name;(s?.logWarning??!0)&&console.log(`Retrying task "${String(e.name)}" after ${m.toFixed(2)}ms (attempt ${i}) after ${d}: ${a}`),c=le(c,{[xr]:!0}),c.executionInfo!=null&&(c.executionInfo={...c.executionInfo,nodeAttempt:i+1,nodeFirstAttemptTime:l})}}return{task:e,result:o,error:a,signalAborted:n?.aborted}}var lc=Symbol.for("promiseAdded");function cy(){let e={next:()=>{},wait:Promise.resolve(lc)};function t(r){e.next=()=>{e.wait=new Promise(t),r(lc)}}return e.wait=new Promise(t),e}var xm=class{nodeFinished;loop;handledExceptions=new WeakSet;constructor({loop:e,nodeFinished:t}){this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:r,onStepWrite:n,maxConcurrency:s}=e,i=new Set,a,o=new AbortController,c=o.signal,l=t?AbortSignal.timeout(t):void 0,u=Object.values(this.loop.tasks),h=u.filter(y=>y.writes.length===0),{signals:p,disposeCombinedSignal:m}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:l,signal:e.signal}),d=this._executeTasksWithRetry(h,{signals:p,retryPolicy:r,maxConcurrency:s});for await(let{task:y,error:v,signalAborted:b}of d)this._commit(y,v),!(v!==void 0&&this.handledExceptions.has(v))&&(Mt(v)||ar(v)&&!Mt(a)?a=v:v&&(i.size===0||!b)&&(o.abort(),i.add(v)));if(m?.(),n?.(this.loop.step,u.map(y=>y.writes).flat()),i.size===1)throw Array.from(i)[0];if(i.size>1)throw new AggregateError(Array.from(i),`Multiple errors occurred during superstep ${this.loop.step}. See the "errors" field of this exception for more details.`);if(Mt(a)||Us(a)||ar(a)&&this.loop.isNested)throw a}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:r}){let n=this.loop.config.configurable?.__pregel_abort_signals??{},s=n.externalAbortSignal??r,i=t??n.timeoutAbortSignal,{signal:a,dispose:o}=pr(s,i,e),c={externalAbortSignal:s,timeoutAbortSignal:i,composedAbortSignal:a};return this.loop.config=le(this.loop.config,{[Iu]:c}),{signals:c,disposeCombinedSignal:o}}async*_executeTasksWithRetry(e,t){let{retryPolicy:r,maxConcurrency:n,signals:s}=t??{},i=cy(),a={},o={executingTasksMap:a,barrier:i,retryPolicy:r,scheduleTask:async(p,m,d)=>this.loop.acceptPush(p,m,d)};if(s?.composedAbortSignal?.aborted)throw new Error("Abort");let c=0,l,u=pr(s?.externalAbortSignal,s?.timeoutAbortSignal),h=u.signal?new Promise((p,m)=>{l=()=>m(new Error("Abort")),u.signal?.addEventListener("abort",l,{once:!0})}):void 0;for(;(c===0||Object.keys(a).length>0)&&e.length;){for(;Object.values(a).length<(n??e.length)&&c<e.length;c+=1){let v=e[c];a[v.id]=aa(v,r,{[gt]:uc?.bind(o,this,v)},s?.composedAbortSignal).catch(b=>({task:v,error:b,signalAborted:s?.composedAbortSignal?.aborted}))}let p=await Promise.race([...Object.values(a),...h?[h]:[],i.wait]);if(p===lc)continue;let m=p,{task:d,error:y}=m;if(y!==void 0&&!ar(y)&&!this.loop.isErrorHandlerNode(String(d.name))&&this.loop.getErrorHandlerNode(String(d.name))!==void 0){let v=this.loop.scheduleErrorHandler(d,y);v!==void 0&&(a[v.id]=aa(v,r,{[gt]:uc?.bind(o,this,v)},s?.composedAbortSignal).catch(b=>({task:v,error:b,signalAborted:s?.composedAbortSignal?.aborted})),i.next())}yield m,l!=null&&(u.signal?.removeEventListener("abort",l),u.dispose?.()),delete a[p.task.id]}}_shouldRouteToErrorHandler(e){let t=String(e.name);return this.loop.isErrorHandlerNode(t)?!1:this.loop.getErrorHandlerNode(t)!==void 0}_commit(e,t){if(t!==void 0)if(Mt(t)){if(t.interrupts.length){let r=t.interrupts.map(s=>[Y,s]),n=e.writes.filter(s=>s[0]===Oe);n.length&&r.push(...n),this.loop.putWrites(e.id,r)}}else Us(t)?e.writes.length&&this.loop.putWrites(e.id,e.writes):ar(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):(e.writes.push([tr,{message:t.message,name:t.name}]),this._shouldRouteToErrorHandler(e)&&(e.writes.push([Rn,String(e.name)]),this.handledExceptions.add(t)),this.loop.putWrites(e.id,e.writes));else this.nodeFinished&&(e.config?.tags==null||!e.config.tags.includes("langsmith:hidden"))&&this.nodeFinished(String(e.name)),e.writes.length===0&&e.writes.push([Fn,null]),this.loop.putWrites(e.id,e.writes)}};async function uc(e,t,r,n,s,i={}){let a=t.config?.configurable?.[Ae];if(!a)throw new Error(`BUG: No scratchpad found on task ${t.name}__${t.id}`);let o=a.callCounter;a.callCounter+=1;let c=new Zf({func:r,name:n,input:s,cache:i.cache,retry:i.retry,timeout:i.timeout,callbacks:i.callbacks}),l=await this.scheduleTask(t,o,c);if(!l)return;let u=this.executingTasksMap[l.id];if(u!==void 0)return u;if(l.writes.length>0){let h=l.writes.filter(([m])=>m===sr),p=l.writes.filter(([m])=>m===tr);if(h.length>0){if(h.length===1)return Promise.resolve(h[0][1]);throw new Error(`BUG: multiple returns found for task ${l.name}__${l.id}`)}if(p.length>0){if(p.length===1){let m=p[0][1],d=m instanceof Error?m:new Error(String(m));return Promise.reject(d)}throw new Error(`BUG: multiple errors found for task ${l.name}__${l.id}`)}return}else{let h=aa(l,i.retry,{[gt]:uc.bind(this,e,l)});return this.executingTasksMap[l.id]=h,this.barrier.next(),h.then(({result:p,error:m})=>m?Promise.reject(m):p)}}var $t=class extends Error{constructor(e){super(e),this.name="GraphValidationError"}};function Im({nodes:e,channels:t,inputChannels:r,outputChannels:n,streamChannels:s,interruptAfterNodes:i,interruptBeforeNodes:a}){if(!t)throw new $t("Channels not provided");let o=new Set,c=new Set;for(let[l,u]of Object.entries(e)){if(l==="__interrupt__")throw new $t(`"Node name ${Y} is reserved"`);if(u.constructor===lt)u.triggers.forEach(h=>o.add(h));else throw new $t(`Invalid node type ${typeof u}, expected PregelNode`)}for(let l of o)if(!(l in t))throw new $t(`Subscribed channel '${String(l)}' not in channels`);if(Array.isArray(r)){if(r.every(l=>!o.has(l)))throw new $t(`None of the input channels ${r} are subscribed to by any node`)}else if(!o.has(r))throw new $t(`Input channel ${String(r)} is not subscribed to by any node`);Array.isArray(n)?n.forEach(l=>c.add(l)):c.add(n),s&&!Array.isArray(s)?c.add(s):Array.isArray(s)&&s.forEach(l=>c.add(l));for(let l of c)if(!(l in t))throw new $t(`Output channel '${String(l)}' not in channels`);if(i&&i!=="*"){for(let l of i)if(!(l in e))throw new $t(`Node ${String(l)} not in nodes`)}if(a&&a!=="*"){for(let l of a)if(!(l in e))throw new $t(`Node ${String(l)} not in nodes`)}}function hc(e,t){if(Array.isArray(e)){for(let r of e)if(!(r in t))throw new Error(`Key ${String(r)} not found in channels`)}else if(!(e in t))throw new Error(`Key ${String(e)} not found in channels`)}var pc=class Am extends ie{lc_graph_name="Topic";unique=!1;accumulate=!1;seen;values;constructor(t){super(),this.unique=t?.unique??this.unique,this.accumulate=t?.accumulate??this.accumulate,this.seen=new Set,this.values=[]}fromCheckpoint(t){let r=new Am({unique:this.unique,accumulate:this.accumulate});return typeof t<"u"&&(r.seen=new Set(t[0]),r.values=t[1]),r}update(t){let r=!1;this.accumulate||(r=this.values.length>0,this.values=[]);let n=t.flat();if(n.length>0)if(this.unique)for(let s of n)this.seen.has(s)||(r=!0,this.seen.add(s),this.values.push(s));else r=!0,this.values.push(...n);return r}get(){if(this.values.length===0)throw new W;return this.values}checkpoint(){return[[...this.seen],this.values]}isAvailable(){return this.values.length!==0}};function ly(e){let t=new TextEncoder;return new ReadableStream({async start(r){try{for await(let n of e){let s=n.params.namespace,i=s.length?`${n.method}|${s.join("|")}`:n.method;r.enqueue(t.encode(`event: ${i}
|
|
201
|
+
data: ${JSON.stringify(n.params.data??{})}
|
|
202
|
+
|
|
203
|
+
`))}}catch(n){r.enqueue(t.encode(`event: error
|
|
204
|
+
data: ${JSON.stringify({message:String(n)})}
|
|
205
|
+
|
|
206
|
+
`))}finally{r.close()}}})}var Om=class{static subscribeTo(e,t){let{key:r,tags:n}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&r!==void 0)throw new Error("Can't specify a key when subscribing to multiple channels");let s;return typeof e=="string"?r?s={[r]:e}:s=[e]:s=Object.fromEntries(e.map(i=>[i,i])),new lt({channels:s,triggers:Array.isArray(e)?e:[e],tags:n})}static writeTo(e,t){let r=[];for(let n of e)r.push({channel:n,value:Be,skipNone:!1});for(let[n,s]of Object.entries(t??{}))H.isRunnable(s)||typeof s=="function"?r.push({channel:n,value:Be,skipNone:!0,mapper:we(s)}):r.push({channel:n,value:s,skipNone:!1});return new te(r)}},uy=class extends H{lc_namespace=["langgraph","pregel"];invoke(e,t){throw new Error("Not implemented")}withConfig(e){return super.withConfig(e)}stream(e,t){return super.stream(e,t)}},oa=class extends uy{static lc_name(){return"LangGraph"}lc_namespace=["langgraph","pregel"];lg_is_pregel=!0;nodes;channels;inputChannels;outputChannels;autoValidate=!0;streamMode=["values"];streamChannels;interruptAfter;interruptBefore;stepTimeout;debug=!1;checkpointer;retryPolicy;config;store;cache;userInterrupt;streamTransformers;triggerToNodes={};constructor(e){super(e);let{streamMode:t}=e;if(t!=null&&!Array.isArray(t)&&(t=[t]),this.nodes=e.nodes,this.channels=e.channels,"__pregel_tasks"in this.channels&&"lc_graph_name"in this.channels.__pregel_tasks&&this.channels.__pregel_tasks.lc_graph_name!=="Topic")throw new Error(`Channel '${_t}' is reserved and cannot be used in the graph.`);this.channels[_t]=new pc({accumulate:!1}),this.autoValidate=e.autoValidate??this.autoValidate,this.streamMode=t??this.streamMode,this.inputChannels=e.inputChannels,this.outputChannels=e.outputChannels,this.streamChannels=e.streamChannels??this.streamChannels,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.stepTimeout=e.stepTimeout??this.stepTimeout,this.debug=e.debug??this.debug,this.checkpointer=e.checkpointer,this.retryPolicy=e.retryPolicy,this.config=e.config,this.store=e.store,this.cache=e.cache,this.name=e.name,this.triggerToNodes=e.triggerToNodes??this.triggerToNodes,this.userInterrupt=e.userInterrupt,this.streamTransformers=e.streamTransformers??[],this.autoValidate&&this.validate()}withConfig(e){let{streamTransformers:t,...r}=e,n=Le(this.config,r),s=[...this.streamTransformers,...t??[]];return new this.constructor({...this,config:n,streamTransformers:s})}validate(){Im({nodes:this.nodes,channels:this.channels,outputChannels:this.outputChannels,inputChannels:this.inputChannels,streamChannels:this.streamChannels,interruptAfterNodes:this.interruptAfter,interruptBeforeNodes:this.interruptBefore});for(let[e,t]of Object.entries(this.nodes))for(let r of t.triggers)this.triggerToNodes[r]??=[],this.triggerToNodes[r].push(e);return this}get streamChannelsList(){return Array.isArray(this.streamChannels)?this.streamChannels:this.streamChannels?[this.streamChannels]:Object.keys(this.channels)}get streamChannelsAsIs(){return this.streamChannels?this.streamChannels:Object.keys(this.channels)}async getGraphAsync(e){return this.getGraph(e)}*getSubgraphs(e,t){for(let[r,n]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(r))continue;let s=n.subgraphs?.length?n.subgraphs:[n.bound];for(let i of s){let a=Yi(i);if(a!==void 0){if(r===e){yield[r,a];return}if(e===void 0&&(yield[r,a]),t){let o=e;e!==void 0&&(o=e.slice(r.length+1));for(let[c,l]of a.getSubgraphs(o,t))yield[`${r}|${c}`,l]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:r,applyPendingWrites:n=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let s=await hn(this.channels,t.checkpoint,{saver:typeof this.checkpointer=="object"?this.checkpointer:void 0,config:t.config??e});if(t.pendingWrites?.length){let h=t.pendingWrites.filter(([p,m])=>p===Me).map(([p,m,d])=>[String(m),d]);h.length>0&&Re(t.checkpoint,s,[{name:dt,writes:h,triggers:[]}],void 0,this.triggerToNodes)}let i=Object.values(fr(t.checkpoint,t.pendingWrites,this.nodes,s,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),a=await ct(this.getSubgraphsAsync()),o=t.config.configurable?.checkpoint_ns??"",c={};for(let h of i){let p=a.find(([d])=>d===h.name);if(!p)continue;let m=`${String(h.name)}:${h.id}`;if(o&&(m=`${o}|${m}`),r===void 0){let d={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:m}};c[h.id]=d}else{let d={configurable:{[We]:r,thread_id:t.config.configurable?.thread_id,checkpoint_ns:m}},y=p[1];c[h.id]=await y.getState(d,{subgraphs:!0})}}if(n&&t.pendingWrites?.length){let h=Object.fromEntries(i.map(m=>[m.id,m]));for(let[m,d,y]of t.pendingWrites)["__error__","__interrupt__",Mr].includes(d)||m in h&&h[m].writes.push([String(d),y]);let p=i.filter(m=>m.writes.length>0);p.length>0&&Re(t.checkpoint,s,p,void 0,this.triggerToNodes)}let l=t?.metadata;l&&t?.config?.configurable?.thread_id&&(l={...l,thread_id:t.config.configurable.thread_id});let u=i.filter(h=>h.writes.length===0).map(h=>h.name);return{values:ut(s,this.streamChannelsAsIs),next:u,tasks:sc(i,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:l,config:hr(t.config,t.metadata),createdAt:t.checkpoint.ts,parentConfig:t.parentConfig}}async getState(e,t){let r=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!r)throw new Nr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_read===void 0&&e.configurable?.__pregel_checkpointer===void 0){let a=ji(n);for await(let[o,c]of this.getSubgraphsAsync(a,!0))if(o===a)return await c.getState(Fr(e,{[We]:r}),{subgraphs:t?.subgraphs})}let s=Le(this.config,e),i=await r.getTuple(e);return await this._prepareStateSnapshot({config:s,saved:i,subgraphCheckpointer:t?.subgraphs?r:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let r=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!r)throw new Nr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_checkpointer===void 0){let i=ji(n);for await(let[a,o]of this.getSubgraphsAsync(i,!0))if(a===i){yield*o.getStateHistory(Fr(e,{[We]:r}),t);return}}let s=Le(this.config,e,{configurable:{checkpoint_ns:n}});for await(let i of r.list(s,t))yield this._prepareStateSnapshot({config:i.config,saved:i})}async bulkUpdateState(e,t){let r=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!r)throw new Nr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});if(t.length===0)throw new Error("No supersteps provided");if(t.some(a=>a.updates.length===0))throw new Error("No updates provided");let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_checkpointer===void 0){let a=ji(n);for await(let[,o]of this.getSubgraphsAsync(a,!0))return await o.bulkUpdateState(Fr(e,{[We]:r}),t);throw new Error(`Subgraph "${a}" not found`)}let s=async(a,o)=>{let c=this.config?Le(this.config,a):a,l=await r.getTuple(c),u=l!==void 0?it(l.checkpoint):Dr(),h={...l?.checkpoint.channel_versions},p=l?.metadata?.step??-1,m=Fr(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),d=c.metadata??{};l?.config.configurable&&(m=Fr(c,l.config.configurable),d={...l.metadata,...d});let{values:y,asNode:v}=o[0];if(y==null&&v===void 0){if(o.length>1)throw new $("Cannot create empty checkpoint with multiple updates");return hr(await r.put(m,at(u,void 0,p),{source:"update",step:p+1,parents:l?.metadata?.parents??{}},{}),l?l.metadata:void 0)}let b=await hn(this.channels,u,{saver:r,config:l?.config??m});if(y===null&&v==="__end__"){if(o.length>1)throw new $("Cannot apply multiple updates when clearing state");if(l){let x=fr(u,l.pendingWrites||[],this.nodes,b,l.config,!0,{step:(l.metadata?.step??-1)+1,checkpointer:r,store:this.store}),_=(l.pendingWrites||[]).filter(P=>P[0]===Me).map(P=>P.slice(1));_.length>0&&Re(u,b,[{name:dt,writes:_,triggers:[]}],r.getNextVersion.bind(r),this.triggerToNodes);for(let[P,M,F]of l.pendingWrites||[])["__error__","__interrupt__",Mr].includes(M)||P in x&&x[P].writes.push([M,F]);Re(u,b,Object.values(x),r.getNextVersion.bind(r),this.triggerToNodes)}return hr(await r.put(m,at(u,b,p),{...d,source:"update",step:p+1,parents:l?.metadata?.parents??{}},yn(h,u.channel_versions)),l?l.metadata:void 0)}if(v==="__copy__"){if(o.length>1)throw new $("Cannot copy checkpoint with multiple updates");if(l==null)throw new $("Cannot copy a non-existent checkpoint");let x=M=>!Array.isArray(M)||M.length===0?!1:M.every(F=>Array.isArray(F)&&F.length===2),_=at(u,void 0,p),P=await r.put(l.parentConfig??Fr(l.config,{checkpoint_id:void 0}),_,{source:"fork",step:p+1,parents:l.metadata?.parents??{}},{});if(x(y)){let M=fr(_,l.pendingWrites,this.nodes,b,P,!1,{step:p+2}),F=Object.values(M).reduce((G,{name:z,id:_e})=>(G[z]??=[],G[z].push({id:_e}),G),{}),j=y.reduce((G,z)=>{let[_e,V]=z;G[V]??=[];let N=G[V].length,R=F[V]?.[N]?.id;return G[V].push({values:_e,asNode:V,taskId:R}),G},{});return s(hr(P,l.metadata),Object.values(j).flat())}return hr(P,l.metadata)}if(v==="__input__"){if(o.length>1)throw new $("Cannot apply multiple updates when updating as input");let x=await ct(Xi(this.inputChannels,y));if(x.length===0)throw new $(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);Re(u,b,[{name:dt,writes:x,triggers:[]}],r.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let _=l?.metadata?.step!=null?l.metadata.step+1:-1,P=await r.put(m,at(u,b,_),{source:"input",step:_,parents:l?.metadata?.parents??{}},yn(h,u.channel_versions));return await r.putWrites(P,x,yt(dt,u.id)),hr(P,l?l.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&l?.pendingWrites!==void 0&&l.pendingWrites.length>0){let x=fr(u,l.pendingWrites,this.nodes,b,l.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(l.metadata?.step??-1)+1}),_=(l.pendingWrites??[]).filter(M=>M[0]===Me).map(M=>M.slice(1));_.length>0&&Re(l.checkpoint,b,[{name:dt,writes:_,triggers:[]}],void 0,this.triggerToNodes);for(let[M,F,j]of l.pendingWrites)["__error__","__interrupt__",Mr].includes(F)||x[M]===void 0||x[M].writes.push([F,j]);let P=Object.values(x).filter(M=>M.writes.length>0);P.length>0&&Re(u,b,P,void 0,this.triggerToNodes)}let S=Object.values(u.versions_seen).map(x=>Object.values(x)).flat().find(x=>!!x),k=[];if(o.length===1){let{values:x,asNode:_,taskId:P}=o[0];if(_===void 0&&Object.keys(this.nodes).length===1)[_]=Object.keys(this.nodes);else if(_===void 0&&S===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(_=this.inputChannels);else if(_===void 0){let M=Object.entries(u.versions_seen).map(([F,j])=>Object.values(j).map(G=>[G,F])).flat().filter(([F,j])=>j!==Y).sort(([F],[j])=>Ai(F,j));M&&(M.length===1?_=M[0][1]:M[M.length-1][0]!==M[M.length-2][0]&&(_=M[M.length-1][1]))}if(_===void 0)throw new $('Ambiguous update, specify "asNode"');k.push({values:x,asNode:_,taskId:P})}else for(let{asNode:x,values:_,taskId:P}of o){if(x==null)throw new $('"asNode" is required when applying multiple updates');k.push({values:_,asNode:x,taskId:P})}let C=[];for(let{asNode:x,values:_,taskId:P}of k){if(this.nodes[x]===void 0)throw new $(`Node "${x.toString()}" does not exist`);let M=this.nodes[x].getWriters();if(!M.length)throw new $(`No writers found for node "${x.toString()}"`);C.push({name:x,input:_,proc:M.length>1?et.from(M,{omitSequenceTags:!0}):M[0],writes:[],triggers:[Y],id:P??yt("__interrupt__",u.id),writers:[]})}for(let x of C)await x.proc.invoke(x.input,he({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[Se]:_=>x.writes.push(..._),[Ie]:(_,P=!1)=>bn(u,b,x,_,P)}}));for(let x of C){let _=x.writes.filter(P=>P[0]!==Ne);l!==void 0&&_.length>0&&await r.putWrites(m,_,x.id)}Re(u,b,C,r.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let T=yn(h,u.channel_versions),O=await r.put(m,at(u,b,p+1),{source:"update",step:p+1,parents:l?.metadata?.parents??{}},T);for(let x of C){let _=x.writes.filter(P=>P[0]===Ne);_.length>0&&await r.putWrites(O,_,x.id)}return hr(O,l?l.metadata:void 0)},i=e;for(let{updates:a}of t)i=await s(i,a);return i}async updateState(e,t,r){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:r}]}])}_defaults(e){let{debug:t,streamMode:r,inputKeys:n,outputKeys:s,interruptAfter:i,interruptBefore:a,...o}=e,c=!0,l=t!==void 0?t:this.debug,u=s;u===void 0?u=this.streamChannelsAsIs:hc(u,this.channels);let h=n;h===void 0?h=this.inputChannels:hc(h,this.channels);let p=a??this.interruptBefore??[],m=i??this.interruptAfter??[],d;r!==void 0?(d=Array.isArray(r)?r:[r],c=typeof r=="string"):(e.configurable?.__pregel_task_id!==void 0?d=["values"]:d=this.streamMode,c=!0);let y;if(this.checkpointer===!1)y=void 0;else if(e!==void 0&&e.configurable?.__pregel_checkpointer!==void 0)y=e.configurable[We];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");y=this.checkpointer}let v=e.store??this.store,b=e.cache??this.cache;if(e.durability!=null&&e.checkpointDuring!=null)throw new Error("Cannot use both `durability` and `checkpointDuring` at the same time.");let S=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),k=e.durability??S??e?.configurable?.__pregel_durability??"async";return[l,d,h,u,o,p,m,y,v,c,b,k]}async stream(e,t){let r=new AbortController,n=Fi()?.configurable;n?.__pregel_read!==void 0&&t?.configurable?.__pregel_read===void 0&&(t={...t,configurable:{...n,...t?.configurable}});let s={recursionLimit:this.config?.recursionLimit,...t,signal:pr(t?.signal,r.signal).signal},i=await super.stream(e,s);return new sa(t?.encoding==="text/event-stream"?mm(i):i,r)}async#e(e,t){let{version:r,encoding:n,transformers:s,...i}=t,a={recursionLimit:this.config?.recursionLimit,...i,configurable:{...this.config?.configurable,...i?.configurable},version:r,streamMode:Fo,subgraphs:!0,encoding:void 0},o=this.stream(e,a),c=qo({[Symbol.asyncIterator]:async function*(){let l=await o;for await(let u of l)yield u}},[...this.streamTransformers??[],...s??[]]);if(n==="text/event-stream"){let l=new AbortController;return l.signal.addEventListener("abort",()=>c.abort(l.signal.reason),{once:!0}),new sa(ly(c),l)}return c}streamEvents(e,t,r){if(t.version==="v3")return this.#e(e,t);let n=new AbortController,s={recursionLimit:this.config?.recursionLimit,...t,signal:pr(t?.signal,n.signal).signal};return new sa(super.streamEvents(e,s,r),n)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let r="version"in(t??{})?void 0:t?.encoding??void 0,n=t?.subgraphs,s=t?.version==="v3",i=pn(this.config,t);if(i.recursionLimit===void 0||i.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&i.configurable===void 0)throw new Error('Checkpointer requires one or more of the following "configurable" keys: "thread_id", "checkpoint_ns", "checkpoint_id"');let a=await this._validateInput(e),{runId:o,...c}=i,[l,u,,h,p,m,d,y,v,b,S,k]=this._defaults(c);p.metadata={ls_integration:"langgraph",...p.metadata},typeof p.context<"u"?p.context=await this._validateContext(p.context):p.configurable=await this._validateContext(p.configurable);let C=new ac({modes:new Set(u)});if(this.checkpointer===!0){p.configurable??={};let j=p.configurable.checkpoint_ns??"";p.configurable[Ue]=j.split("|").map(G=>G.split(":")[0]).join("|")}if(u.includes("messages")){let j=s?new Em(z=>C.push(z)):new Sm(z=>C.push(z)),{callbacks:G}=p;if(G===void 0)p.callbacks=[j];else if(Array.isArray(G))p.callbacks=G.concat(j);else{let z=G.copy();z.addHandler(j,!0),p.callbacks=z}}if(u.includes("tools")){let j=new fm(z=>C.push(z)),{callbacks:G}=p;if(G===void 0)p.callbacks=[j];else if(Array.isArray(G))p.callbacks=G.concat(j);else{let z=G.copy();z.addHandler(j,!0),p.callbacks=z}}p.writer??=j=>{if(!u.includes("custom"))return;let G=Fi()?.configurable?.[Ue]?.split("|").slice(0,-1);C.push([G??[],"custom",j])},p.interrupt??=this.userInterrupt??Zo,p.serverInfo==null&&(p.serverInfo=hy(p)),p.control??=new Lo;let T={tracerInheritableMetadata:my(p)},O=await(await De._configureSync(p?.callbacks,void 0,p?.tags,void 0,p?.metadata,void 0,T))?.handleChainStart(this.toJSON(),Xf(e,"input"),o,void 0,void 0,void 0,p?.runName??this.getName()),x=un(this.channels),_,P,F=(async()=>{try{_=await bm.initialize({input:a,config:p,checkpointer:y,nodes:this.nodes,channelSpecs:x,outputKeys:h,streamKeys:this.streamChannelsAsIs,store:v,cache:S,stream:C,interruptAfter:d,interruptBefore:m,manager:O,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:k});let j=new xm({loop:_,nodeFinished:p.configurable?.[xu]});t?.subgraphs&&(_.config.configurable={..._.config.configurable,[Dn]:_.stream}),await this._runLoop({loop:_,runner:j,debug:l,config:p}),k==="sync"&&await Promise.all(_?.checkpointerPromises??[])}catch(j){P=j}finally{try{_&&(await _.store?.stop(),await _.cache?.stop()),await Promise.all(_?.checkpointerPromises??[])}catch(j){P=P??j}P?(await new Promise(j=>{queueMicrotask(j)}),C.error(P)):C.close()}})();try{for await(let j of C){if(j===void 0)throw new Error("Data structure error.");let[G,z,_e]=j,V="version"in(t??{});if(u.includes(z)||z==="checkpoints"&&fn(_e)&&(s||V&&n&&u.includes("values"))){if(r==="text/event-stream"){n?yield[G,z,_e]:yield[null,z,_e];continue}n&&!b?yield[G,z,_e]:b?n?yield[G,_e]:yield _e:yield[z,_e]}}}catch(j){throw await O?.handleChainError(P),j}finally{await F}await O?.handleChainEnd(_?.output??{},o,void 0,void 0,void 0)}async invoke(e,t){let r=t?.streamMode??"values",n={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:r,encoding:void 0},s=[],i=await this.stream(e,n),a=[],o;for await(let c of i)r==="values"?Or(c)?a.push(c[Y]):o=c:s.push(c);if(r==="values"){if(a.length>0){let c=a.flat(1);if(o==null)return{[Y]:c};if(typeof o=="object")return{...o,[Y]:c}}return o}return s}async _runLoop(e){let{loop:t,runner:r,debug:n,config:s}=e,i;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:a}of await t._matchCachedWrites())t._outputWrites(a.id,a.writes,!0);n&&lm(t.checkpointMetadata.step,t.channels,this.streamChannelsList),n&&ys(t.step,Object.values(t.tasks)),await r.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(a,o)=>{n&&um(a,o,this.streamChannelsList)},maxConcurrency:s.maxConcurrency,signal:s.signal})}if(t.status==="draining")throw t.control==null?new Error("Draining status requires run control"):new Vs(t.control.drainReason??"shutdown");if(t.status==="out_of_steps")throw new ba([`Recursion limit of ${s.recursionLimit} reached`,"without hitting a stop condition. You can increase the",'limit by setting the "recursionLimit" config key.'].join(" "),{lc_error_code:"GRAPH_RECURSION_LIMIT"})}catch(a){if(i=a,!await t.finishAndHandleError(i))throw a}finally{i===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}};function hy(e){let t=e.metadata??{},r=e.configurable??{},n=r.assistant_id??t.assistant_id,s=r.graph_id??t.graph_id,i=r.langgraph_auth_user,a;if(i!=null&&typeof i=="object"&&"identity"in i&&(a=i),n!=null||s!=null||a!=null)return{assistantId:n!=null?String(n):"",graphId:s!=null?String(s):"",user:a}}var py=new Set(["key","token","secret","password","auth"]);function fy(e,t){let r=e.toLowerCase(),n=!1;for(let s of py)if(r.includes(s)){n=!0;break}return e.startsWith("__")||!(typeof t=="string"||typeof t=="number"||typeof t=="boolean")||n}function my(e){let t=e.configurable;if(!t)return;let r={};for(let[n,s]of Object.entries(t))fy(n,s)||(r[n]=s);return Object.keys(r).length>0?r:void 0}var ht=class Nm extends ie{lc_graph_name="EphemeralValue";guard;value=[];constructor(t=!0){super(),this.guard=t}fromCheckpoint(t){let r=new Nm(this.guard);return typeof t<"u"&&(r.value=[t]),r}update(t){if(t.length===0){let r=this.value.length>0;return this.value=[],r}if(t.length!==1&&this.guard)throw new $("EphemeralValue can only receive one value per step.");return this.value=[t[t.length-1]],!0}get(){if(this.value.length===0)throw new W;return this.value[0]}checkpoint(){if(this.value.length===0)throw new W;return this.value[0]}isAvailable(){return this.value.length!==0}};var fc=class{path;ends;constructor(e){H.isRunnable(e.path)?this.path=e.path:this.path=we(e.path),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,r)=>(t[r]=r,t),{}):e.pathMap}run(e,t){return te.registerWriter(new fe({name:"<branch_run>",trace:!1,func:async(r,n)=>{try{return await this._route(r,n,e,t)}catch(s){throw s.name===Hs.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
|
|
207
|
+
NodeInterrupt should only be thrown inside a node, not in edge conditions.`),s}}}))}async _route(e,t,r,n){let s=await this.path.invoke(n?n(t):e,t);Array.isArray(s)||(s=[s]);let i;if(this.ends?i=s.map(a=>ce(a)?a:this.ends[a]):i=s,i.some(a=>!a))throw new Error("Branch condition returned unknown or null destination");if(i.filter(ce).some(a=>a.node==="__end__"))throw new $("Cannot send a packet to the END node");return await r(i,t)??e}},mc=class{nodes;edges;branches;entryPoint;compiled=!1;constructor(){this.nodes={},this.edges=new Set,this.branches={}}warnIfCompiled(e){this.compiled&&console.warn(e)}get allEdges(){return this.edges}addNode(...e){function t(n){return n.length>=1&&typeof n[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[n,s,i]of r){for(let o of["|",":"])if(n.includes(o))throw new Error(`"${o}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),n in this.nodes)throw new Error(`Node \`${n}\` already present.`);if(n==="__end__")throw new Error(`Node \`${n}\` is reserved.`);let a=we(s);this.nodes[n]={runnable:a,metadata:i?.metadata,subgraphs:ms(a)?[a]:i?.subgraphs,ends:i?.ends}}return this}addEdge(e,t){if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),e==="__end__")throw new Error("END cannot be a start node");if(t==="__start__")throw new Error("START cannot be an end node");if(Array.from(this.edges).some(([r])=>r===e)&&!("channels"in this))throw new Error(`Already found path for ${e}. For multiple edges, use StateGraph.`);return this.edges.add([e,t]),this}addConditionalEdges(e,t,r){let n=typeof e=="object"?e:{source:e,path:t,pathMap:r};this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),H.isRunnable(n.path)||(n.path=we(n.path));let s=n.path.getName()==="RunnableLambda"?"condition":n.path.getName();if(this.branches[n.source]&&this.branches[n.source][s])throw new Error(`Condition \`${s}\` already present for node \`${e}\``);return this.branches[n.source]??={},this.branches[n.source][s]=new fc(n),this}setEntryPoint(e){return this.warnIfCompiled("Setting the entry point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(Z,e)}setFinishPoint(e){return this.warnIfCompiled("Setting a finish point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(e,Q)}compile({checkpointer:e,interruptBefore:t,interruptAfter:r,name:n,transformers:s}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(r)?r:[]]);let i=new dc({builder:this,checkpointer:e,interruptAfter:r,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[Z]:new ht,[Q]:new ht},inputChannels:Z,outputChannels:Q,streamChannels:[],streamMode:"values",name:n,streamTransformers:s});for(let[a,o]of Object.entries(this.nodes))i.attachNode(a,o);for(let[a,o]of this.edges)i.attachEdge(a,o);for(let[a,o]of Object.entries(this.branches))for(let[c,l]of Object.entries(o))i.attachBranch(a,c,l);return i.validate()}validate(e){let t=new Set([...this.allEdges].map(([n,s])=>n));for(let[n]of Object.entries(this.branches))t.add(n);for(let n of t)if(n!=="__start__"&&!(n in this.nodes))throw new Error(`Found edge starting at unknown node \`${n}\``);let r=new Set([...this.allEdges].map(([n,s])=>s));for(let[n,s]of Object.entries(this.branches))for(let i of Object.values(s))if(i.ends!=null)for(let a of Object.values(i.ends))r.add(a);else{r.add(Q);for(let a of Object.keys(this.nodes))a!==n&&r.add(a)}for(let n of Object.values(this.nodes))for(let s of n.ends??[])r.add(s);if(Object.values(this.nodes).some(n=>n.isErrorHandler))for(let n of Object.keys(this.nodes))r.add(n);for(let n of Object.keys(this.nodes))if(!this.nodes[n].isErrorHandler&&!r.has(n))throw new wa([`Node \`${n}\` is not reachable.`,"","If you are returning Command objects from your node,",'make sure you are passing names of potential destination nodes as an "ends" array','into ".addNode(..., { ends: ["node1", "node2"] })".'].join(`
|
|
208
|
+
`),{lc_error_code:"UNREACHABLE_NODE"});for(let n of r)if(n!=="__end__"&&!(n in this.nodes))throw new Error(`Found edge ending at unknown node \`${n}\``);if(e){for(let n of e)if(!(n in this.nodes))throw new Error(`Interrupt node \`${n}\` is not present`)}this.compiled=!0}},dc=class extends oa{builder;constructor({builder:e,...t}){super(t),this.builder=e}withConfig(e){return super.withConfig(e)}attachNode(e,t){this.channels[e]=new ht,this.nodes[e]=new lt({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new te([{channel:e,value:Be}],[se])),this.streamChannels.push(e)}attachEdge(e,t){if(t==="__end__"){if(e==="__start__")throw new Error("Cannot have an edge from START to END");this.nodes[e].writers.push(new te([{channel:Q,value:Be}],[se]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,r){e==="__start__"&&!this.nodes.__start__&&(this.nodes[Z]=Om.subscribeTo(Z,{tags:[se]})),this.nodes[e].pipe(r.run(s=>new te(s.map(i=>ce(i)?i:{channel:i==="__end__"?Q:`branch:${e}:${t}:${i}`,value:Be}),[se])));let n=r.ends?Object.values(r.ends):Object.keys(this.nodes);for(let s of n)if(s!=="__end__"){let i=`branch:${e}:${t}:${s}`;this.channels[i]=new ht,this.nodes[s].triggers.push(i),this.nodes[s].channels.push(i)}}async getGraphAsync(e){let t=e?.xray,r=new da,n={[Z]:r.addNode({schema:Qt.any()},Z)},s={},i={};t&&(i=Object.fromEntries((await ct(this.getSubgraphsAsync())).filter(l=>Mm(l[1]))));let a=[];function o(l,u,h,p=!1){if(u==="__end__"&&s.__end__===void 0&&(s[Q]=r.addNode({schema:Qt.any()},Q)),n[l]!==void 0){if(s[u]===void 0)throw new Error(`End node ${u} not found!`);return a.push({src:l,dest:u,conditional:p}),r.addEdge(n[l],s[u],h!==u?h:void 0,p)}}for(let[l,u]of Object.entries(this.builder.nodes)){let h=ue(l),p=u.runnable,m=u.metadata??{};if(this.interruptBefore?.includes(l)&&this.interruptAfter?.includes(l)?m.__interrupt="before,after":this.interruptBefore?.includes(l)?m.__interrupt="before":this.interruptAfter?.includes(l)&&(m.__interrupt="after"),t){let d=typeof t=="number"?t-1:t,y=i[l]!==void 0?await i[l].getGraphAsync({...e,xray:d}):p.getGraph(e);if(y.trimFirstNode(),y.trimLastNode(),Object.keys(y.nodes).length>1){let S=function(C){return C?C.lc_runnable:!1},k=function(C,T){if(C!==void 0&&!pa(C))return C;if(S(T))try{let O=T.getName();return O=O.startsWith("Runnable")?O.slice(8):O,O}catch{return T.getName()}else return T.name??"UnknownSchema"},[v,b]=r.extend(y,h);if(v===void 0)throw new Error(`Could not extend subgraph "${l}" due to missing entrypoint.`);b!==void 0&&(n[h]={name:k(b.id,b.data),...b}),s[h]={name:k(v.id,v.data),...v}}else{let v=r.addNode(p,h,m);n[h]=v,s[h]=v}}else{let d=r.addNode(p,h,m);n[h]=d,s[h]=d}}let c=[...this.builder.allEdges].sort(([l],[u])=>l<u?-1:u>l?1:0);for(let[l,u]of c)o(ue(l),ue(u));for(let[l,u]of Object.entries(this.builder.branches)){let h={...Object.fromEntries(Object.keys(this.builder.nodes).filter(p=>p!==l).map(p=>[ue(p),ue(p)])),[Q]:Q};for(let p of Object.values(u)){let m;p.ends!==void 0?m=p.ends:m=h;for(let[d,y]of Object.entries(m))o(ue(l),ue(y),d,!0)}}for(let[l,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let h of u.ends)o(ue(l),ue(h),void 0,!0);return Pm(this.builder.nodes,a,o),r}getGraph(e){let t=e?.xray,r=new da,n={[Z]:r.addNode({schema:Qt.any()},Z)},s={},i={};t&&(i=Object.fromEntries(ur(this.getSubgraphs()).filter(l=>Mm(l[1]))));let a=[];function o(l,u,h,p=!1){if(u==="__end__"&&s.__end__===void 0&&(s[Q]=r.addNode({schema:Qt.any()},Q)),n[l]!==void 0){if(s[u]===void 0)throw new Error(`End node ${u} not found!`);return a.push({src:l,dest:u,conditional:p}),r.addEdge(n[l],s[u],h!==u?h:void 0,p)}}for(let[l,u]of Object.entries(this.builder.nodes)){let h=ue(l),p=u.runnable,m=u.metadata??{};if(this.interruptBefore?.includes(l)&&this.interruptAfter?.includes(l)?m.__interrupt="before,after":this.interruptBefore?.includes(l)?m.__interrupt="before":this.interruptAfter?.includes(l)&&(m.__interrupt="after"),t){let d=typeof t=="number"?t-1:t,y=i[l]!==void 0?i[l].getGraph({...e,xray:d}):p.getGraph(e);if(y.trimFirstNode(),y.trimLastNode(),Object.keys(y.nodes).length>1){let S=function(C){return C?C.lc_runnable:!1},k=function(C,T){if(C!==void 0&&!pa(C))return C;if(S(T))try{let O=T.getName();return O=O.startsWith("Runnable")?O.slice(8):O,O}catch{return T.getName()}else return T.name??"UnknownSchema"},[v,b]=r.extend(y,h);if(v===void 0)throw new Error(`Could not extend subgraph "${l}" due to missing entrypoint.`);b!==void 0&&(n[h]={name:k(b.id,b.data),...b}),s[h]={name:k(v.id,v.data),...v}}else{let v=r.addNode(p,h,m);n[h]=v,s[h]=v}}else{let d=r.addNode(p,h,m);n[h]=d,s[h]=d}}let c=[...this.builder.allEdges].sort(([l],[u])=>l<u?-1:u>l?1:0);for(let[l,u]of c)o(ue(l),ue(u));for(let[l,u]of Object.entries(this.builder.branches)){let h={...Object.fromEntries(Object.keys(this.builder.nodes).filter(p=>p!==l).map(p=>[ue(p),ue(p)])),[Q]:Q};for(let p of Object.values(u)){let m;p.ends!==void 0?m=p.ends:m=h;for(let[d,y]of Object.entries(m))o(ue(l),ue(y),d,!0)}}for(let[l,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let h of u.ends)o(ue(l),ue(h),void 0,!0);return Pm(this.builder.nodes,a,o),r}};function Mm(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function ue(e){return e==="subgraph"?`"${e}"`:e}function Pm(e,t,r){let n=new Set(t.map(i=>i.src)),s=[...new Set(t.filter(i=>!i.conditional&&i.dest!=="__end__").map(i=>i.dest))].sort();for(let i of s){if(n.has(i))continue;let a=Object.keys(e).find(o=>ue(o)===i);a!==void 0&&e[a]?.isErrorHandler||r(i,Q)}}function Bt(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"validate"in e["~standard"]}function gc(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"jsonSchema"in e["~standard"]}function dy(e){return Bt(e)&&gc(e)}function mr(e){if(gc(e))try{return e["~standard"].jsonSchema.input({target:"draft-07"})}catch{return}}function Vt(e){if(e!=null&&Bt(e))try{let t=e["~standard"].validate(void 0);if(t&&typeof t=="object"&&!("then"in t&&typeof t.then=="function")){let r=t;if(!r.issues){let n=r.value;return()=>n}}}catch{}}var gy=e=>e!=null&&e.lc_graph_name==="DeltaChannel",ca=class Rm extends ie{lc_graph_name="DeltaChannel";value;reducer;snapshotFrequency;initialValueFactory;constructor(t,r){super();let n=r?.snapshotFrequency??1e3;if(!Number.isInteger(n)||n<=0)throw new Error(`snapshotFrequency must be a positive integer, got ${n}`);this.reducer=t,this.snapshotFrequency=n,this.initialValueFactory=r?.initialValueFactory??(()=>[]),this.value=void 0}fromCheckpoint(t){let r=new Rm(this.reducer,{snapshotFrequency:this.snapshotFrequency,initialValueFactory:this.initialValueFactory});return t===void 0?r.value=this.initialValueFactory():Ta(t)?r.value=t.value:r.value=t,r}replayWrites(t){let r=t.map(a=>a[2]);if(r.length===0)return;let n=this.value,s=0;for(let a=0;a<r.length;a+=1){let[o,c]=tt(r[a]);o&&(n=c??this.initialValueFactory(),s=a+1)}let i=r.slice(s);this.value=i.length>0?this.reducer(n,i):n}update(t){if(t.length===0)return!1;let r,n=!1;for(let i of t)if(Ar(i)){if(n)throw new $("Can receive only one Overwrite value per step.");n=!0,[,r]=tt(i)}if(n)return this.value=r??this.initialValueFactory(),!0;let s=this.value===void 0?this.initialValueFactory():this.value;return this.value=this.reducer(s,t),!0}get(){if(this.value===void 0)throw new W;return this.value}checkpoint(){}isAvailable(){return this.value!==void 0}equals(t){return this===t?!0:!gy(t)||this.snapshotFrequency!==t.snapshotFrequency?!1:this.reducer===t.reducer}};var _c=Symbol.for("langgraph.channel.missing"),la=class Dm extends ie{lc_graph_name="UntrackedValue";guard;_value=_c;initialValueFactory;constructor(t){super(),this.guard=t?.guard??!0,this.initialValueFactory=t?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new Dm({guard:this.guard,initialValueFactory:this.initialValueFactory})}update(t){if(t.length===0)return!1;if(t.length!==1&&this.guard)throw new $("UntrackedValue(guard=true) can receive only one value per step. Use guard=false if you want to store any one of multiple values.",{lc_error_code:"INVALID_CONCURRENT_GRAPH_UPDATE"});return this._value=t[t.length-1],!0}get(){if(this._value===_c)throw new W;return this._value}checkpoint(){}isAvailable(){return this._value!==_c}};var dr=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),yc=class Lm extends ie{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let r=new Lm(this.names);return typeof t<"u"&&(r.seen=new Set(t)),r}update(t){let r=!1;for(let n of t)if(this.names.has(n))this.seen.has(n)||(this.seen.add(n),r=!0);else throw new $(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!dr(this.names,this.seen))throw new W}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&dr(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&dr(this.names,this.seen)}},bc=class Fm extends ie{lc_graph_name="NamedBarrierValueAfterFinish";names;seen;finished;constructor(t){super(),this.names=t,this.seen=new Set,this.finished=!1}fromCheckpoint(t){let r=new Fm(this.names);if(typeof t<"u"){let[n,s]=t;r.seen=new Set(n),r.finished=s}return r}update(t){let r=!1;for(let n of t)if(this.names.has(n)&&!this.seen.has(n))this.seen.add(n),r=!0;else if(!this.names.has(n))throw new $(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!this.finished||!dr(this.names,this.seen))throw new W}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&dr(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&dr(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&dr(this.names,this.seen)}};var vc=Symbol.for("langgraph.state.reduced_value"),Ut=class{[vc]=!0;valueSchema;inputSchema;reducer;jsonSchemaExtra;constructor(e,t){this.reducer=t.reducer,this.jsonSchemaExtra=t.jsonSchemaExtra,this.valueSchema=e,this.inputSchema="inputSchema"in t?t.inputSchema:e,this.jsonSchemaExtra=t.jsonSchemaExtra}static isInstance(e){return typeof e=="object"&&e!==null&&vc in e&&e[vc]===!0}};var jm=Symbol.for("langgraph.state.untracked_value"),$r=class{[jm]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&jm in e}};var wc=Symbol.for("langgraph.state.delta_value"),Ht=class{[wc]=!0;valueSchema;inputSchema;reducer;snapshotFrequency;jsonSchemaExtra;constructor(e,t){this.reducer=t.reducer,this.valueSchema=e,this.inputSchema="inputSchema"in t?t.inputSchema:e,this.snapshotFrequency=t.snapshotFrequency,this.jsonSchemaExtra=t.jsonSchemaExtra}static isInstance(e){return typeof e=="object"&&e!==null&&wc in e&&e[wc]===!0}};var Sc=Symbol.for("langgraph.state.state_schema"),pt=class{[Sc]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,r]of Object.entries(this.fields))if(Ht.isInstance(r)){let n=Vt(r.valueSchema);e[t]=new ca(r.reducer,{snapshotFrequency:r.snapshotFrequency,initialValueFactory:n})}else if(Ut.isInstance(r)){let n=Vt(r.valueSchema);e[t]=new Ft(r.reducer,n)}else if($r.isInstance(r)){let n=r.schema?Vt(r.schema):void 0;e[t]=new la({guard:r.guard,initialValueFactory:n})}else if(Bt(r))e[t]=new ot(Vt(r));else throw new Error(`Invalid state field "${t}": must be a schema, ReducedValue, DeltaValue, UntrackedValue, or ManagedValue`);return e}getJsonSchema(){let e={},t=[];for(let[r,n]of Object.entries(this.fields)){let s;if(Ht.isInstance(n)||Ut.isInstance(n)?(s=mr(n.valueSchema),n.jsonSchemaExtra&&(s={...s??{},...n.jsonSchemaExtra})):$r.isInstance(n)?s=n.schema?mr(n.schema):void 0:Bt(n)&&(s=mr(n)),s){e[r]=s;let i=!1;Ht.isInstance(n)||Ut.isInstance(n)?i=Vt(n.valueSchema)!==void 0:$r.isInstance(n)?i=n.schema?Vt(n.schema)!==void 0:!1:i=Vt(n)!==void 0,i||t.push(r)}}return{type:"object",properties:e,required:t.length>0?t:void 0}}getInputJsonSchema(){let e={};for(let[t,r]of Object.entries(this.fields)){let n;Ht.isInstance(r)||Ut.isInstance(r)?(n=mr(r.inputSchema),r.jsonSchemaExtra&&(n={...n??{},...r.jsonSchemaExtra})):$r.isInstance(r)?n=r.schema?mr(r.schema):void 0:Bt(r)&&(n=mr(r)),n&&(e[t]=n)}return{type:"object",properties:e}}getChannelKeys(){return Object.entries(this.fields).map(([e])=>e)}getAllKeys(){return Object.keys(this.fields)}async validateInput(e){if(e==null||typeof e!="object")return e;let t={};for(let[r,n]of Object.entries(e)){let s=this.fields[r];if(s===void 0){t[r]=n;continue}let i;if(Ht.isInstance(s)||Ut.isInstance(s)){let[a,o]=tt(n);if(a){i=s.valueSchema;let c=await i["~standard"].validate(o);if(c.issues)throw new Error(`Validation failed for field "${r}": ${JSON.stringify(c.issues)}`);t[r]={[mt]:c.value};continue}i=s.inputSchema}else $r.isInstance(s)?i=s.schema:Bt(s)&&(i=s);if(i){let a=await i["~standard"].validate(n);if(a.issues)throw new Error(`Validation failed for field "${r}": ${JSON.stringify(a.issues)}`);t[r]=a.value}else t[r]=n}return t}static isInstance(e){return typeof e=="object"&&e!==null&&Sc in e&&e[Sc]===!0}};var _y="__remove_all__";function gr(e,t){let r=Array.isArray(e)?e:[e],n=Array.isArray(t)?t:[t],s=r.map(de),i=n.map(de);for(let u of s)(u.id===null||u.id===void 0)&&(u.id=kn(),u.lc_kwargs.id=u.id);let a;for(let u=0;u<i.length;u+=1){let h=i[u];(h.id===null||h.id===void 0)&&(h.id=kn(),h.lc_kwargs.id=h.id),Ze.isInstance(h)&&h.id==="__remove_all__"&&(a=u)}if(a!=null)return i.slice(a+1);let o=[...s],c=new Map(o.map((u,h)=>[u.id,h])),l=new Set;for(let u of i){let h=c.get(u.id);if(h!==void 0)Ze.isInstance(u)?l.add(u.id):(l.delete(u.id),o[h]=u);else{if(Ze.isInstance(u))throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${u.id}')`);c.set(u.id,o.length),o.push(u)}}return o.filter(u=>!l.has(u.id))}function kc(e,t){let r=[];for(let o of t)Array.isArray(o)?r.push(...o):r.push(o);let n=e.length>0&&re.isInstance(e[0])?e:e.map(de),s=r.map(de),i=new Map;for(let o=0;o<n.length;o+=1){let c=n[o].id;c!=null&&i.set(c,o)}let a=[...n];for(let o of s){let c=o.id;Ze.isInstance(o)&&c==="__remove_all__"?(a.length=0,i.clear()):c==null?a.push(o):Ze.isInstance(o)?i.has(c)&&(a[i.get(c)]=null,i.delete(c)):i.has(c)?a[i.get(c)]=o:(i.set(c,a.length),a.push(o))}return a.filter(o=>o!==null)}var $m=Qt.custom().default(()=>[]),Bm=Qt.custom(),yy=new Ut($m,{inputSchema:Bm,reducer:gr,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}}),by=new Ht($m,{inputSchema:Bm,reducer:kc,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var vy=class{_map=new Map;_extensionCache=new Map;get(e){return this._map.get(e)}extend(e,t){let r=this.get(e);this._map.set(e,t(r))}remove(e){return this._map.delete(e),this}has(e){return this._map.has(e)}getChannelsForSchema(e){let t={},r=Er(e);for(let[n,s]of Object.entries(r)){let i=this.get(s);i?.reducer?t[n]=new Ft(i.reducer.fn,i.default):t[n]=new ot(i?.default)}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let r=Object.entries(t).filter(([,i])=>i===!0).sort(([i],[a])=>i.localeCompare(a)).map(([i,a])=>`${i}:${a}`).join("|"),n=this._extensionCache.get(r)??new Map;if(n.has(e))return n.get(e);let s=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let i=Object.entries(Er(e)).map(([a,o])=>{let c=this.get(o),l=t.withReducerSchema?c?.reducer?.schema??o:o;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let u=Cr(l)??Cr(o),h=JSON.stringify({...c.jsonSchemaExtra,description:u});l=l.describe(`lg:${h}`)}return[a,l]});s=Ns(e,Object.fromEntries(i)),Is(s)&&(s._def.unknownKeys="strip")}return t.asPartial&&(s=Yt(s)),n.set(e,s),this._extensionCache.set(r,n),s}},bs=new vy;function Vm(e,t){if(t.reducer&&!t.default){let r=Ms(e);r!=null&&(t.default=r)}if(t.reducer){let r=Object.assign(e,{lg_reducer_schema:t.reducer?.schema??e});return bs.extend(r,()=>t),r}else return bs.extend(e,()=>t),e}function Br(e){return e==null?!1:!!(pt.isInstance(e)||be(e)||typeof e=="object"&&"lc_graph_name"in e&&e.lc_graph_name==="AnnotationRoot"||typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length>0&&Object.values(e).every(t=>typeof t=="function"||Po(t)))}function Um(e){if(typeof e!="object"||e==null)return!1;let t=e,r="state"in t&&Br(t.state),n="stateSchema"in t&&Br(t.stateSchema),s="input"in t&&Br(t.input);return!(!r&&!n&&!s||"input"in t&&t.input!=null&&!Br(t.input)||"output"in t&&t.output!=null&&!Br(t.output))}var Gt="__root__",vn="__default_error_handler__",ua=Symbol.for("langgraph.state.partial"),Cc=class extends mc{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=bs;_configSchema;_configRuntimeSchema;_interrupt;_writer;_nodeDefaults={};constructor(e,t){super();let r=this._normalizeToStateGraphInit(e,t),n=r.state??r.stateSchema??r.input;if(!n)throw new jn;let s=this._getChannelsFromSchema(n);this._schemaDefinition=s,pt.isInstance(n)?this._schemaRuntimeDefinition=n:be(n)&&(this._schemaRuntimeDefinition=n),r.input?pt.isInstance(r.input)?this._inputRuntimeDefinition=r.input:be(r.input)?this._inputRuntimeDefinition=r.input:this._inputRuntimeDefinition=ua:this._inputRuntimeDefinition=ua,r.output?pt.isInstance(r.output)?this._outputRuntimeDefinition=r.output:be(r.output)?this._outputRuntimeDefinition=r.output:this._outputRuntimeDefinition=this._schemaRuntimeDefinition:this._outputRuntimeDefinition=this._schemaRuntimeDefinition;let i=r.input?this._getChannelsFromSchema(r.input):s,a=r.output?this._getChannelsFromSchema(r.output):s;this._inputDefinition=i,this._outputDefinition=a,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),r.context&&be(r.context)&&(this._configRuntimeSchema=r.context),this._interrupt=r.interrupt,this._writer=r.writer}setNodeDefaults(e){return e.retryPolicy!==void 0&&(this._nodeDefaults.retryPolicy=e.retryPolicy),e.cachePolicy!==void 0&&(this._nodeDefaults.cachePolicy=typeof e.cachePolicy=="boolean"?e.cachePolicy?{}:void 0:e.cachePolicy),e.timeout!==void 0&&(this._nodeDefaults.timeout=er(e.timeout)),e.errorHandler!==void 0&&(this._nodeDefaults.errorHandler=e.errorHandler),this}_createDefaultErrorHandlerSpec(){let e=this._nodeDefaults.errorHandler;if(e!==void 0)return{runnable:new fe({func:(t,r)=>{let n=r?.configurable?.[Ln];return e(t,n,r)},name:vn,trace:!1}),metadata:void 0,input:this._schemaDefinition,retryPolicy:void 0,cachePolicy:void 0,isErrorHandler:!0}}_normalizeToStateGraphInit(e,t){if(Um(e)){if(be(t)||Di.isInstance(t))return{...e,context:t};let r=t;return{...e,input:e.input??r?.input,output:e.output??r?.output,context:e.context??r?.context,interrupt:e.interrupt??r?.interrupt,writer:e.writer??r?.writer,nodes:e.nodes??r?.nodes}}if(Br(e)){if(be(t)||Di.isInstance(t))return{state:e,context:t};let r=t;return{state:e,input:r?.input,output:r?.output,context:r?.context,interrupt:r?.interrupt,writer:r?.writer,nodes:r?.nodes}}if(Sy(e))return{state:wy(e.channels)};throw new jn}_getChannelsFromSchema(e){if(pt.isInstance(e))return e.getChannels();if(be(e))return this._metaRegistry.getChannelsForSchema(e);if(typeof e=="object"&&"lc_graph_name"in e&&e.lc_graph_name==="AnnotationRoot")return e.spec;if(typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length>0)return e;throw new jn("Invalid schema type. Expected StateSchema, Zod object, AnnotationRoot, or StateDefinition.")}get allEdges(){return new Set([...this.edges,...Array.from(this.waitingEdges).flatMap(([e,t])=>e.map(r=>[r,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,r]of Object.entries(e)){let n;if(typeof r=="function"?n=r():n=r,this.channels[t]!==void 0){if(!this.channels[t].equals(n)&&n.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=n}}}addNode(...e){function t(n){return n.length>=1&&typeof n[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([n,s])=>[n,s]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[n,s,i]of r){if(n in this.channels)throw new Error(`${n} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let p of["|",":"])if(n.includes(p))throw new Error(`"${p}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),n in this.nodes)throw new Error(`Node \`${n}\` already present.`);if(n==="__end__"||n==="__start__")throw new Error(`Node \`${n}\` is reserved.`);let a=this._schemaDefinition;i?.input!==void 0&&(a=this._getChannelsFromSchema(i.input)),this._addSchema(a);let o;H.isRunnable(s)?o=s:typeof s=="function"?o=new fe({func:s,name:n,trace:!1}):o=we(s);let c=i?.cachePolicy,l;c!==void 0&&(l=typeof c=="boolean"?c?{}:!1:c);let u;if(i?.errorHandler!==void 0){if(u=`__error_handler__${n}`,u in this.nodes)throw new Error(`Cannot add error handler to node \`${n}\`: the reserved name \`${u}\` is already in use. StateGraph registers \`__error_handler__<nodeName>\` when you pass \`errorHandler\` in addNode options. Remove or rename the existing node with that name (for example, you may have added it manually).`);let p=i.errorHandler,m={runnable:new fe({func:(d,y)=>{let v=y?.configurable?.[Ln];return p(d,v,y)},name:u,trace:!1}),metadata:void 0,input:a??this._schemaDefinition,retryPolicy:void 0,cachePolicy:void 0,isErrorHandler:!0};this.nodes[u]=m}let h={runnable:o,retryPolicy:i?.retryPolicy,cachePolicy:l,timeout:er(i?.timeout),metadata:i?.metadata,input:a??this._schemaDefinition,subgraphs:ms(o)?[o]:i?.subgraphs,ends:i?.ends,defer:i?.defer,errorHandlerNode:u};this.nodes[n]=h}return this}addEdge(e,t){if(typeof e=="string")return super.addEdge(e,t);this.compiled&&console.warn("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.");for(let r of e){if(r==="__end__")throw new Error("END cannot be a start node");if(!Object.keys(this.nodes).some(n=>n===r))throw new Error(`Need to add a node named "${r}" first`)}if(t==="__end__")throw new Error("END cannot be an end node");if(!Object.keys(this.nodes).some(r=>r===t))throw new Error(`Need to add a node named "${t}" first`);return this.waitingEdges.add([e,t]),this}addSequence(e){let t=Array.isArray(e)?e:Object.entries(e);if(t.length===0)throw new Error("Sequence requires at least one node.");let r;for(let[n,s,i]of t){if(n in this.nodes)throw new Error(`Node names must be unique: node with the name "${n}" already exists.`);let a=n;this.addNode(n,s,i),r!=null&&this.addEdge(r,a),r=a}return this}compile({checkpointer:e,store:t,cache:r,interruptBefore:n,interruptAfter:s,name:i,description:a,transformers:o}={}){let c=this._createDefaultErrorHandlerSpec();if(c!==void 0){if(vn in this.nodes)throw new Error(`Cannot apply a default error handler: the reserved node name \`${vn}\` is already in use. setNodeDefaults({ errorHandler }) registers a node with that name; rename the conflicting node.`);this.nodes[vn]=c}try{return this._compileResolved({checkpointer:e,store:t,cache:r,interruptBefore:n,interruptAfter:s,name:i,description:a,transformers:o,defaultErrorHandlerNode:c!==void 0?vn:void 0})}finally{c!==void 0&&delete this.nodes[vn]}}_compileResolved({checkpointer:e,store:t,cache:r,interruptBefore:n,interruptAfter:s,name:i,description:a,transformers:o,defaultErrorHandlerNode:c}){this.validate([...Array.isArray(n)?n:[],...Array.isArray(s)?s:[]]);let l=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),u=l.length===1&&l[0]===Gt?Gt:l,h=Object.keys(this.channels),p=h.length===1&&h[0]===Gt?Gt:h,m=this._interrupt,d=new Gm({builder:this,checkpointer:e,interruptAfter:s,interruptBefore:n,autoValidate:!1,nodes:{},channels:{...this.channels,[Z]:new ht},inputChannels:Z,outputChannels:u,streamChannels:p,streamMode:"updates",store:t,cache:r,name:i,description:a,userInterrupt:m,streamTransformers:o});d.attachNode(Z);let y=this._nodeDefaults,v=y.retryPolicy!==void 0||y.cachePolicy!==void 0||y.timeout!==void 0||c!==void 0;for(let[b,S]of Object.entries(this.nodes)){let k=S.isErrorHandler===!0,C=v?{...S,retryPolicy:S.retryPolicy??y.retryPolicy,cachePolicy:k||S.cachePolicy===!1?void 0:S.cachePolicy??y.cachePolicy,timeout:S.timeout??y.timeout,errorHandlerNode:!k&&c!==void 0&&S.errorHandlerNode===void 0?c:S.errorHandlerNode}:S;d.attachNode(b,C)}d.attachBranch(Z,ya,Hm(),{withReader:!1});for(let[b]of Object.entries(this.nodes))d.attachBranch(b,ya,Hm(),{withReader:!1});for(let[b,S]of this.edges)d.attachEdge(b,S);for(let[b,S]of this.waitingEdges)d.attachEdge(b,S);for(let[b,S]of Object.entries(this.branches))for(let[k,C]of Object.entries(S))d.attachBranch(b,k,C);return d.validate()}};function wy(e){let t={};for(let[r,n]of Object.entries(e))r===Gt?t[r]=Li(n):t[r]=Li(n);return t}var Gm=class extends dc{description;_metaRegistry=bs;constructor({description:e,...t}){super(t),this.description=e}attachNode(e,t){let r;e==="__start__"?r=Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([c])=>c):r=Object.keys(this.builder.channels);function n(c){if(pe(c))return c.graph===je.PARENT?null:c._updateAsTuples();if(Array.isArray(c)&&c.length>0&&c.some(l=>pe(l))){let l=[];for(let u of c)if(pe(u)){if(u.graph===je.PARENT)continue;l.push(...u._updateAsTuples())}else l.push([Gt,u]);return l}else if(c!=null)return[[Gt,c]];return null}let s=e,i=async c=>{if(c==null||c.length===0)return c;let l=this.builder._schemaRuntimeDefinition;if(pt.isInstance(l)){let u=new Set(l.getChannelKeys());return Promise.all(c.map(async([h,p])=>{if(!u.has(h))return[h,p];let m=await l.validateInput({[h]:p});return[h,Object.prototype.hasOwnProperty.call(m,h)?m[h]:p]}))}if(be(l)){let u=new Set(Object.keys(Er(l)));if(c.filter(([m])=>u.has(m)).length===0)return c;let h=Yt(this._metaRegistry.getExtendedChannelSchemas(l,{withReducerSchema:!0})),p=Yt(l);return c.map(([m,d])=>{if(!u.has(m))return[m,d];let[y,v]=tt(d);if(y){let S=Jt(p,{[m]:v});return[m,Object.prototype.hasOwnProperty.call(S,m)?{[mt]:S[m]}:d]}let b=Jt(h,{[m]:d});return[m,Object.prototype.hasOwnProperty.call(b,m)?b[m]:d]})}return c};async function a(c){if(c){if(pe(c))return c.graph===je.PARENT?null:i(c._updateAsTuples().filter(([l])=>r.includes(l)));if(Array.isArray(c)&&c.length>0&&c.some(pe)){let l=[];for(let u of c)if(pe(u)){if(u.graph===je.PARENT)continue;l.push(...u._updateAsTuples().filter(([h])=>r.includes(h)))}else{let h=await a(u);h&&l.push(...h??[])}return i(l)}else{if(typeof c=="object"&&!Array.isArray(c))return i(Object.entries(c).filter(([l])=>r.includes(l)));{let l=Array.isArray(c)?"array":typeof c;throw new $(`Expected node "${s.toString()}" to return an object or an array containing at least one Command object, received ${l}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let o=[{value:Be,mapper:new fe({func:r.length&&r[0]===Gt?n:a,trace:!1,recurse:!1})}];if(e==="__start__")this.nodes[e]=new lt({tags:[se],triggers:[Z],channels:[Z],writers:[new te(o,[se])]});else{let c=t?.input??this.builder._schemaDefinition,l=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(c)).map(d=>[d,d])),u=Object.keys(l).length===1&&Gt in l,h=`branch:to:${e}`;this.channels[h]=t?.defer?new Do:new ht(!1);let p=t?.cachePolicy,m=p===!1?void 0:p;this.nodes[e]=new lt({triggers:[h],channels:u?Object.keys(l):l,writers:[new te(o,[se])],mapper:u?void 0:d=>Object.fromEntries(Object.entries(d).filter(([y])=>y in l)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:m,timeout:t?.timeout,subgraphs:t?.subgraphs,ends:t?.ends,isErrorHandler:t?.isErrorHandler,errorHandlerNode:t?.errorHandlerNode})}}attachEdge(e,t){if(t!=="__end__"){if(typeof e=="string")this.nodes[e].writers.push(new te([{channel:`branch:to:${t}`,value:null}],[se]));else if(Array.isArray(e)){let r=`join:${e.join("+")}:${t}`;this.channels[r]=this.builder.nodes[t].defer?new bc(new Set(e)):new yc(new Set(e)),this.nodes[t].triggers.push(r);for(let n of e)this.nodes[n].writers.push(new te([{channel:r,value:n}],[se]))}}}attachBranch(e,t,r,n={withReader:!0}){let s=async(i,a)=>{let o=i.filter(l=>l!==Q);if(!o.length)return;let c=o.map(l=>ce(l)?l:{channel:l==="__end__"?l:`branch:to:${l}`,value:e});await te.doWrite({...a,tags:(a.tags??[]).concat([se])},c)};this.nodes[e].writers.push(r.run(s,n.withReader?i=>zf.doRead(i,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=this.builder._inputRuntimeDefinition,r=this.builder._schemaRuntimeDefinition;if(pt.isInstance(t)){if(pe(e)){let s=e;return e.update&&(s.update=await t.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),s}return await t.validateInput(e)}if(t===ua&&pt.isInstance(r)){if(pe(e)){let s=e;return e.update&&(s.update=await r.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),s}return await r.validateInput(e)}let n=(()=>{let s=i=>{if(i!=null)return this._metaRegistry.getExtendedChannelSchemas(i,{withReducerSchema:!0})};if(be(t))return s(t);if(t===ua)return be(r)?Yt(s(r)):void 0})();if(pe(e)){let s=e;if(e.update&&n!=null){let i=Array.isArray(e.update)?Object.fromEntries(e.update):e.update,a=Jt(n,i);s.update=Object.fromEntries(Object.keys(i).map(o=>[o,a[o]]))}return s}return n!=null?Jt(n,e):e}isInterrupted(e){return Or(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return be(t)&&Jt(t,e),e}};function Sy(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function ky(e){if(ce(e))return[e];let t=[];pe(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(pe));let r=[];for(let n of t){if(n.graph===je.PARENT)throw new Ws(n);ce(n.goto)||typeof n.goto=="string"?r.push(n.goto):Array.isArray(n.goto)&&r.push(...n.goto)}return r}function Hm(){return new fc({path:new fe({func:ky,tags:[se],trace:!1,recurse:!1,name:"<control_branch>"})})}var Cy=class extends Cc{constructor(){super({channels:{__root__:{reducer:gr,default:()=>[]}}})}};function Ey(e,t){let{stateKey:r,...n}=t??{},s=pn(n),i=r??"messages";r===null&&(i=void 0);let a=de(e);if(!a.id)throw new Error("Message ID is required.");let o=(Array.isArray(s.callbacks)?s.callbacks:typeof s.callbacks<"u"?s.callbacks.handlers:[]).find(c=>"name"in c&&c.name==="StreamMessagesHandler");if(o){let c=s.metadata??{},l=(c.langgraph_checkpoint_ns??"").split("|");o._emit([l,c],a,void 0,!1)}return i&&s.configurable?.__pregel_send?.([[i,a]]),a}function Ty(e,t){let r=typeof e=="string"?{name:e,retry:void 0,cachePolicy:void 0,timeout:void 0}:e,{name:n,retry:s}=r,i=er(r.timeout);if(Qo(t)||ec(t))throw new Error("Generators are disallowed as tasks. For streaming responses, use config.write.");let a=r.cachePolicy??("cache"in r?r.cache:void 0),o;return typeof a=="boolean"?o=a?{}:void 0:o=a,(...c)=>rm({func:t,name:n,retry:s,cache:o,timeout:i},...c)}var Wm=function(t,r){let{name:n,checkpointer:s,store:i,cache:a}=typeof t=="string"?{name:t,checkpointer:void 0,store:void 0}:t,o=er(typeof t=="string"?void 0:t.timeout);if(Qo(r)||ec(r))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let c="updates",l=tm(n,r);function u(d){return typeof d=="object"&&d!==null&&"__lg_type"in d&&d.__lg_type==="__pregel_final"}let h=new fe({name:"pluckReturnValue",func:d=>u(d)?d.value:d}),p=new fe({name:"pluckSaveValue",func:d=>u(d)?d.save:d}),m=new lt({bound:l,triggers:[Z],channels:[Z],timeout:o,writers:[new te([{channel:Q,value:Be,mapper:h},{channel:ir,value:Be,mapper:p}],[se])]});return new oa({name:n,checkpointer:s,nodes:{[n]:m},channels:{[Z]:new ht,[Q]:new ot,[ir]:new ot},inputChannels:Z,outputChannels:Q,streamChannels:Q,streamMode:c,store:i,cache:a})};Wm.final=function({value:t,save:r}){return{value:t,save:r,__lg_type:"__pregel_final"}};function xy(){return oe.getRunnableConfig().configurable?.[rr]}var Iy=us.Root({messages:us({reducer:gr,default:()=>[]})}),Km={reducer:{fn:gr},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},Ay=Xt.object({messages:Vm(Xt.custom(),Km)});function Oy(e){let t=oe.getRunnableConfig();if(!t)throw new Error("Called interrupt() outside the context of a graph.");let r=t.configurable;if(!r)throw new Error("No configurable found in config");return r.writer?.(e)}export{Z as a,Q as b,Y as c,_a as d,Ou as e,Tr as f,ce as g,Xm as h,Or as i,je as j,pe as k,Ke as l,Bs as m,ba as n,Nr as o,Vs as p,Us as q,Nt as r,Hs as s,Gs as t,Qm as u,Ws as v,va as w,ar as x,Mt as y,Ks as z,ed as A,zs as B,W as C,$ as D,td as E,wa as F,rd as G,jn as H,nd as I,Uu as J,Xs as K,Zs as L,Ua as M,Ah as N,Oh as O,md as P,dd as Q,Ga as R,or as S,si as T,cr as U,xd as V,ao as W,nn as X,gg as Y,Cg as Z,Dr as _,it as $,Ii as aa,Sf as ba,ln as ca,Ni as da,Ef as ea,ie as fa,Ft as ga,us as ha,i_ as ia,a_ as ja,Fi as ka,o_ as la,Lo as ma,Fo as na,fn as oa,jo as pa,Je as qa,Bi as ra,Uo as sa,hs as ta,ps as ua,Ho as va,Go as wa,Vi as xa,zo as ya,Ff as za,qo as Aa,Zo as Ba,fe as Ca,mc as Da,Bt as Ea,dy as Fa,mr as Ga,Vt as Ha,ca as Ia,la as Ja,Ut as Ka,$r as La,Ht as Ma,pt as Na,_y as Oa,gr as Pa,kc as Qa,yy as Ra,by as Sa,bs as Ta,Vm as Ua,Cc as Va,Gm as Wa,Cy as Xa,Ey as Ya,Ty as Za,Wm as _a,xy as $a,Iy as ab,Km as bb,Ay as cb,Oy as db};
|