@arcgis/ai-components 5.2.0-next.72 → 5.2.0-next.74
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/agent-utils/LLMAgent.d.ts +5 -2
- package/dist/agent-utils/LLMAgent.js +1 -1
- package/dist/agentic-workflow/jsonTypes.d.ts +8 -1
- package/dist/agentic-workflow/nodes/AgentNode.d.ts +2 -0
- package/dist/agentic-workflow/nodes/tools/ArcgisTool.d.ts +21 -0
- package/dist/cdn/253R5CBD.js +2 -0
- package/dist/cdn/2VBPA27M.js +18 -0
- package/dist/cdn/{DWYODVWW.js → 323DHVYA.js} +5 -5
- package/dist/cdn/34O57OGV.js +2 -0
- package/dist/cdn/{FSMHR7GK.js → 4HDDRBIY.js} +1 -1
- package/dist/cdn/4MFEKBKL.js +11 -0
- package/dist/cdn/{Y5UFOH54.js → 4NJ2FF7H.js} +1 -1
- package/dist/cdn/4YXYLX4H.js +2 -0
- package/dist/cdn/5DVRVY4L.js +2 -0
- package/dist/cdn/5PJXNTLZ.js +2 -0
- package/dist/cdn/5R6QUF5B.js +2 -0
- package/dist/cdn/5RVELJU4.js +36 -0
- package/dist/cdn/5WLNL4HZ.js +2 -0
- package/dist/cdn/66SKMECC.js +2 -0
- package/dist/cdn/6CLF7KIK.js +2 -0
- package/dist/cdn/{S6ZAQRC6.js → 6KFMRBAA.js} +1 -1
- package/dist/cdn/77QFSIWW.js +5 -0
- package/dist/cdn/7E2QMWK6.js +2 -0
- package/dist/cdn/{HO2YDJI2.js → 7M6VKBTK.js} +1 -1
- package/dist/cdn/{HJG7QM2R.js → 7VAQUCBU.js} +1 -1
- package/dist/cdn/ACJTJLZN.js +2 -0
- package/dist/cdn/AI6DYOKR.js +181 -0
- package/dist/cdn/AT4XVTJR.js +44 -0
- package/dist/cdn/BS2PFNU4.js +2 -0
- package/dist/cdn/CCC6LBMY.js +2 -0
- package/dist/cdn/CGXQAB3A.js +2 -0
- package/dist/cdn/{M3MRIGDZ.js → CP5BVGJU.js} +1 -1
- package/dist/cdn/CWD37QFT.js +2 -0
- package/dist/cdn/DY36ATOA.js +2 -0
- package/dist/cdn/DYASSC7Z.js +2 -0
- package/dist/cdn/EAEQONP7.js +2 -0
- package/dist/cdn/EMLOVMD4.js +2 -0
- package/dist/cdn/EWLXNGKH.js +208 -0
- package/dist/cdn/FAR3DFFK.js +2 -0
- package/dist/cdn/FDOMMK2M.js +2 -0
- package/dist/cdn/GRHIFCQX.js +2 -0
- package/dist/cdn/{S3XUYAUX.js → HHFNQR6Z.js} +1 -1
- package/dist/cdn/{WQKNV6KK.js → HMUWQCXU.js} +1 -1
- package/dist/cdn/HZ5ARNAM.js +2 -0
- package/dist/cdn/I6PD2HSL.js +2 -0
- package/dist/cdn/IDUC4CPV.js +2 -0
- package/dist/cdn/IRNSIUBT.js +2 -0
- package/dist/cdn/{OYNIFMCJ.js → J6SZIQJA.js} +1 -1
- package/dist/cdn/K335IAIE.js +2 -0
- package/dist/cdn/K33MZ726.js +2 -0
- package/dist/cdn/KA3FF3ZO.js +2 -0
- package/dist/cdn/{DBHLKLKM.js → KPO4XX6J.js} +1 -1
- package/dist/cdn/{I4L45WQS.js → L7XTRDFM.js} +1 -1
- package/dist/cdn/LCFIADOZ.js +2 -0
- package/dist/cdn/MDM2K3U7.js +2 -0
- package/dist/cdn/MM33KJPF.js +2 -0
- package/dist/cdn/NIY32GK2.js +2 -0
- package/dist/cdn/{3ZPPYCNL.js → ONMNQBPO.js} +1 -1
- package/dist/cdn/ONQ6JSBJ.js +2 -0
- package/dist/cdn/{6QJFOL6M.js → OWTGH34K.js} +1 -1
- package/dist/cdn/{XPTCV6YV.js → PSYRZMX2.js} +1 -1
- package/dist/cdn/Q4IQUEZN.js +14 -0
- package/dist/cdn/QNNGPA3Q.js +2 -0
- package/dist/cdn/QRHZXLZN.js +2 -0
- package/dist/cdn/QVOMX3R6.js +2 -0
- package/dist/cdn/QZ3NQTNQ.js +2 -0
- package/dist/cdn/RADWN4ZP.js +2 -0
- package/dist/cdn/RU2T7GUX.js +2 -0
- package/dist/cdn/S6OYR4VI.js +156 -0
- package/dist/cdn/T2GJLEYV.js +2 -0
- package/dist/cdn/TKYI5QRL.js +2 -0
- package/dist/cdn/{5SFZS2RD.js → TQXLSW4A.js} +2 -2
- package/dist/cdn/{NJJYZP3R.js → U6FBRUM4.js} +1 -1
- package/dist/cdn/UIXX3XEN.js +2 -0
- package/dist/cdn/UPWAOZXQ.js +2 -0
- package/dist/cdn/{5SF6DEMO.js → VNJMTA6O.js} +1 -1
- package/dist/cdn/VOKXKU7M.js +56 -0
- package/dist/cdn/{33BF35AO.js → VYTYVWR6.js} +4 -4
- package/dist/cdn/WMZ24LWS.js +2 -0
- package/dist/cdn/{JYVBCHR6.js → WP7ORLSB.js} +1 -1
- package/dist/cdn/WS3T73IY.js +2 -0
- package/dist/cdn/{UZL6UVE4.js → ZLWWWTH4.js} +1 -1
- package/dist/cdn/{PAUIFUMO.js → ZQMBJ6MI.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/chunks/adapter.js +938 -1938
- package/dist/chunks/adapter10.js +21 -0
- package/dist/chunks/adapter11.js +30 -0
- package/dist/chunks/adapter12.js +22 -0
- package/dist/chunks/adapter13.js +22 -0
- package/dist/chunks/adapter14.js +109 -0
- package/dist/chunks/adapter15.js +40 -0
- package/dist/chunks/adapter16.js +154 -0
- package/dist/chunks/adapter17.js +141 -0
- package/dist/chunks/adapter18.js +127 -0
- package/dist/chunks/adapter2.js +52 -0
- package/dist/chunks/adapter3.js +30 -0
- package/dist/chunks/adapter4.js +50 -0
- package/dist/chunks/adapter5.js +27 -0
- package/dist/chunks/adapter6.js +24 -0
- package/dist/chunks/adapter7.js +26 -0
- package/dist/chunks/adapter8.js +21 -0
- package/dist/chunks/adapter9.js +42 -0
- package/dist/chunks/arcgisKnowledgeGraph.js +5 -5
- package/dist/chunks/dataExplorationGraph.js +30 -27
- package/dist/chunks/fetchAgentContext.js +13 -0
- package/dist/chunks/fetchService.js +10 -0
- package/dist/chunks/formatFeatureAttributes.js +132 -0
- package/dist/chunks/generateLayerDescriptions.js +145 -148
- package/dist/chunks/helpGraph.js +11 -9
- package/dist/chunks/layerStylingGraph.js +22 -21
- package/dist/chunks/mergeWhereClauses.js +15 -0
- package/dist/chunks/navigationGraph.js +68 -57
- package/dist/chunks/types.js +59 -0
- package/dist/components/arcgis-assistant-agent/customElement.js +404 -279
- package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +15 -5
- package/dist/components/arcgis-assistant-help-agent/customElement.js +21 -5
- package/dist/components/arcgis-assistant-knowledge-agent/customElement.js +39 -22
- package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +22 -5
- package/dist/components/arcgis-assistant-navigation-agent/customElement.js +13 -5
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/types/stencil.d.ts +2 -2
- package/dist/utils/index.d.ts +4 -5
- package/dist/utils/index.js +19 -20
- package/package.json +8 -8
- package/dist/cdn/55M2HE4U.js +0 -2
- package/dist/cdn/5RZGG4F2.js +0 -2
- package/dist/cdn/BAB3MK4Y.js +0 -2
- package/dist/cdn/BMBV6Y2A.js +0 -2
- package/dist/cdn/D3RKQSWS.js +0 -2
- package/dist/cdn/E7KEOJZG.js +0 -208
- package/dist/cdn/IGQFAL3H.js +0 -2
- package/dist/cdn/LUY6V4TP.js +0 -181
- package/dist/cdn/NSXX2KYS.js +0 -2
- package/dist/cdn/OFRFP4BX.js +0 -2
- package/dist/cdn/OUFGJV3R.js +0 -2
- package/dist/cdn/RWM5T4XB.js +0 -180
- package/dist/cdn/SRFLL6ET.js +0 -2
- package/dist/cdn/WDOM6Z5O.js +0 -18
- package/dist/cdn/WZFC5HUX.js +0 -56
- package/dist/cdn/Z4XUJQ2I.js +0 -36
- package/dist/cdn/ZJEWP2ND.js +0 -44
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{$a as he,$b as ma,A as Ss,Aa as de,Ab as Wl,Ac as da,B as Bc,Ba as dl,Bb as Xt,Bc as ku,C as Vc,Ca as gl,Cb as Er,Cc as Cu,D as ks,Da as _l,Db as Kl,E as Uc,Ea as yl,Eb as zl,F as Hc,Fa as kr,Fb as ql,G as Gc,Ga as bl,Gb as Jl,H as Wc,Ha as vl,Hb as Yl,I as Kc,Ia as wl,Ib as Xl,J as zc,Ja as Es,Jb as Zl,K as re,Ka as Sl,Kb as be,L as qc,La as qt,Lb as Tr,M as Jc,Ma as kl,Mb as Ns,N as Yc,Na as Cl,Nb as Zt,O as Xc,Oa as Gr,Ob as Ql,P as Zc,Pa as El,Pb as eu,Q as Tn,Qa as Tl,Qb as Ms,R as Qc,Ra as xl,Rb as tu,S as ee,Sa as Il,Sb as ru,T as It,Ta as Al,Tb as nu,U as el,Ua as Le,V as tl,Va as fa,Vb as Qt,W as Ge,Wa as oe,Wb as su,X as xn,Xa as Ol,Y as rl,Ya as Ts,Yb as iu,Z as Cs,Za as De,Zb as ve,_ as nl,_a as At,_b as au,a as A,aa as wr,ab as Nl,ac as ou,b as xc,ba as Kt,bb as Ml,bc as H,c as Cn,ca as sl,cb as Pl,cc as er,d as En,da as il,db as Pn,dc as cu,e as Ic,ea as q,eb as Ot,ec as lu,f as ha,fa as Hr,fc as et,g as Ac,ga as In,gb as Rl,gc as Ps,h as Oc,ha as me,hb as Jt,hc as Fe,i as Nc,ia as zt,ib as Ll,ic as uu,j as Mc,ja as An,jb as Dl,jc as hu,k as Pc,ka as al,kb as Wr,kc as we,l as Rc,la as ol,lb as xs,lc as Rs,m as Xe,ma as On,mb as Cr,mc as pu,n as Lc,na as Nn,nb as Fl,nc as fu,oa as cl,ob as jl,oc as mu,p as Wt,pa as ll,pb as $l,pc as du,q as Dc,qa as xe,qb as Kr,qc as gu,r as Fc,ra as Mn,rb as Bl,rc as _u,s as jc,sa as ul,sb as Is,sc as yu,t as Ur,ta as hl,tb as Vl,tc as bu,ua as Ze,ub as Yt,va as Qe,vb as Ul,w as pa,wa as Sr,wb as Hl,wc as Ls,xa as pl,xb as Gl,xc as vu,y as $c,ya as fl,yb as As,yc as wu,z as ws,za as ml,zb as Os,zc as Su}from"./AI6DYOKR.js";import{Dd as tr}from"./MWYBF3F3.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 rr(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 nr="__error__",Ln="__error_source_node__",Ds="__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",Ir="__pregel_resuming",zr="__pregel_task_id",Dn="__pregel_stream",Ym="__pregel_resume_value",Ar="__pregel_resume_map",Ae="__pregel_scratchpad",sr="__pregel_previous",Xm="__pregel_durability",ir="checkpoint_id",Ue="checkpoint_ns",xu="__pregel_node_finished",Fn="__pregel_node_error",ke="checkpoint_map",Fs="__pregel_replay_state",Iu="__pregel_abort_signals",Y="__interrupt__",Oe="__resume__",jn="__no_writes__",ar="__return__",or="__previous__",se="langsmith:hidden";var _a="__self__",_t="__pregel_tasks",Ne="__pregel_push",js="__pregel_pull",Me="00000000-0000-0000-0000-000000000000",Au=[se,dt,Y,Oe,nr,Ln,jn,Se,Ie,We,Xm,Dn,Ir,zr,gt,Ym,Ae,sr,ke,Ue,ir,Fs],ga=Symbol.for("langgraph.command"),Ou=class{[ga];constructor(e){this[ga]=e}};function $s(e){let t=e;return t!=null&&typeof t.node=="string"&&t.args!==void 0}var xr=class{lg_name="Send";node;args;timeout;constructor(e,t,r){this.node=e,this.args=Rn(t),this.timeout=rr(r?.timeout)}toJSON(){return{lg_name:this.lg_name,node:this.node,args:this.args,timeout:this.timeout}}};function ce(e){return e instanceof xr}var mt="__overwrite__",Zm=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 Or(e){return tt(e)[0]}function Nr(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)?Rn(e.goto):[Rn(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 Qm(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Rn(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]=Rn(n,t)});else if(e instanceof je||e instanceof xr||!Qm(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 xr(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]=Rn(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}},ya=class extends Ke{constructor(e,t){super(e,t),this.name="GraphRecursionError"}static get unminifiable_name(){return"GraphRecursionError"}},Mr=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 ed(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 ba(e){return e!==void 0&&e.name===Ws.unminifiable_name}function cr(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 td(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"}},rd=class extends Ke{constructor(e,t){super(e,t),this.name="MultipleSubgraphError"}static get unminifiable_name(){return"MultipleSubgraphError"}},va=class extends Ke{constructor(e,t){super(e,t),this.name="UnreachableNodeError"}static get unminifiable_name(){return"UnreachableNodeError"}},nd=class extends Ke{constructor(e,t){super(e,t),this.name="RemoteException"}static get unminifiable_name(){return"RemoteException"}},$n=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"}},sd=()=>(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 wa=0,Bn=0;function Vn(e){let t=Date.now();return t<=wa?(Bn+=1,Bn>=1e4&&(Bn=0,t=wa+1)):Bn=0,wa=t,Ic({clockseq:e,msecs:t,nsecs:Bn})}function yt(e,t){let r=t.replace(/-/g,"").match(/.{2}/g).map(n=>parseInt(n,16));return En(e,new Uint8Array(r))}var Un="__pregel_tasks",Sa="__error__",Pr="__scheduled__",ka="__interrupt__",Ca="__resume__",qr=class{lg_name="DeltaSnapshot";value;constructor(e){this.value=e}};function Ea(e){return e!=null&&typeof e=="object"&&e.lg_name==="DeltaSnapshot"}var Nu="[...]",id="[Circular]",qs=[],Jr=[];function ad(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function Mu(e,t,r,n){typeof n>"u"&&(n=ad()),xa(e,"",0,[],void 0,0,n);var s;try{Jr.length===0?s=JSON.stringify(e,t,r):s=JSON.stringify(e,od(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 Ta(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])):Jr.push([t,r,e]):(n[r]=e,qs.push([n,r,t]))}function xa(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){Ta(id,e,t,s);return}if(typeof a.depthLimit<"u"&&i>a.depthLimit){Ta(Nu,e,t,s);return}if(typeof a.edgesLimit<"u"&&r+1>a.edgesLimit){Ta(Nu,e,t,s);return}if(n.push(e),Array.isArray(e))for(o=0;o<e.length;o++)xa(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];xa(e[l],l,o,n,e,i,a)}}n.pop()}}function od(e){return e=typeof e<"u"?e:function(t,r){return r},function(t,r){if(Jr.length>0)for(var n=0;n<Jr.length;n++){var s=Jr[n];if(s[1]===t&&s[0]===r){r=s[2],Jr.splice(n,1);break}}return e.call(this,t,r)}}var Pu=[];var Ru=A({});var Lu=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)?Du(e,t):Fe.from(r=>Du(r,e))}function Du(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=kr(s),a=kr(n),o=i.concat(a);typeof i.content=="string"&&typeof a.content=="string"&&(o.content=`${i.content}
|
|
6
|
+
${a.content}`),t.push(ld(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=Aa;if(l&&("splitText"in l?h=l.splitText.bind(l):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 cd(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=Ia(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 cd(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 Ia(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:Mn},ai:{message:q,messageChunk:me},system:{message:Qe,messageChunk:Sr},developer:{message:Qe,messageChunk:Sr},tool:{message:Ge,messageChunk:xn},function:{message:On,messageChunk:Nn},generic:{message:zt,messageChunk:An},remove:{message:Ze,messageChunk:Ze}};function Ia(e,t,r){let n,s;switch(e){case"human":r?n=new Mn(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 Sr(t):s=new Qe(t);break;case"developer":r?n=new Sr({...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 xn(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 Nn(t);else{if(!t.name)throw new Error("FunctionMessage must have a 'name' field");s=new On(t)}break;case"generic":if("role"in t)r?n=new An(t):s=new zt(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 ld(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=Ia(t,n)),!r)throw new Error(`Unrecognized message chunk class ${t}. Supported classes are ${Object.keys($u)}`);return r}function Aa(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:()=>Tn,ChatMessage:()=>zt,ChatMessageChunk:()=>An,DEFAULT_MERGE_IGNORE_KEYS:()=>Jc,FunctionMessage:()=>On,FunctionMessageChunk:()=>Nn,HumanMessage:()=>xe,HumanMessageChunk:()=>Mn,KNOWN_BLOCK_TYPES:()=>Ku,RemoveMessage:()=>Ze,SystemMessage:()=>Qe,SystemMessageChunk:()=>Sr,ToolMessage:()=>Ge,ToolMessageChunk:()=>xn,_isMessageFieldWithRole:()=>Qc,_mergeDicts:()=>Yc,_mergeLists:()=>Xc,_mergeObj:()=>Zc,_mergeStatus:()=>zc,coerceMessageLikeToMessage:()=>de,collapseToolCallChunks:()=>bl,convertToChunk:()=>kr,convertToOpenAIImageBlock:()=>ks,convertToProviderContentBlock:()=>Gc,defaultTextSplitter:()=>Aa,defaultToolCallParser:()=>rl,filterMessages:()=>Bu,getBufferString:()=>dl,iife:()=>ml,isAIMessage:()=>Hr,isAIMessageChunk:()=>In,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:()=>Oa,BaseListChatMessageHistory:()=>Ys,InMemoryChatMessageHistory:()=>ud}),Oa=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.")}},ud=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 Na=class extends H{lc_namespace=["langchain_core","documents","transformers"];invoke(e,t){return this.transformDocuments(e)}},Ju=class extends Na{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:()=>Na,Document:()=>He,MappingDocumentTransformer:()=>Ju});var Xu=A({BaseDocumentLoader:()=>Ma}),Ma=class{};var Zu=A({LangSmithLoader:()=>hd}),hd=class extends Ma{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??pd,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 pd(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 Yr=class extends Xe{lc_namespace=["langchain_core","example_selectors","base"]};var Pa=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},eh=class extends Pa{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 Yr{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 Ra(e){return Object.keys(e).sort().map(t=>e[t])}var ah=class oh extends Yr{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=Ra((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=Ra((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(c=>Ra(i?i.reduce((l,u)=>({...l,[u]:c[u]}),{}):c).join(" ")),o=await n.fromTexts(a,t,r,s);return new oh({vectorStore:o,k:s.k??4,exampleKeys:s.exampleKeys,inputKeys:s.inputKeys})}};var ch=A({BaseExampleSelector:()=>Yr,BasePromptSelector:()=>Pa,ConditionalPromptSelector:()=>eh,LengthBasedExampleSelector:()=>sh,SemanticSimilarityExampleSelector:()=>ah,isChatModel:()=>rh,isLLM:()=>th});var Hn="10f90ea3-90a4-4962-bf75-83a0f3c1c62a",lh=class extends Xe{lc_namespace=["langchain","recordmanagers"]};var La=class{uid;hash_;contentHash;metadataHash;pageContent;metadata;keyEncoder=Dc;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 En(this.keyEncoder(e),Hn)}_hashNestedDictToUUID(e){let t=JSON.stringify(e,Object.keys(e).sort());return En(this.keyEncoder(t),Hn)}};function Da(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 Fa(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 ja(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 $a=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=$a(t)?await t.load():t,h=ja(o??null),p=await r.getTime(),m=0,d=0,y=0,v=0,b=Da(i??100,u);for(let S of b){let k=Fa(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:()=>Hn,_HashedDocument:()=>La,_batch:()=>Da,_deduplicateInOrder:()=>Fa,_getSourceIdAssigner:()=>ja,_isBaseDocumentLoader:()=>$a,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 er{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:()=>er,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:()=>De,patchConfig:()=>he,pickRunnableConfigKeys:()=>Nl,raceWithSignal:()=>Ml});var gh=A({applyPatch:()=>Rl,compare:()=>Jt});var Xr=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 Xr{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");Ur(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 Cr({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 Cr({message:kr(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 Zr=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 Zr{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 Zr{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 Zr{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 Zr{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?Jt(e,t):[{op:"replace",path:"",value:t}]}async parsePartialResult(e){return wr(e[0].text)}async parse(e){return wr(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=wr(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 Gn=class extends rt{schema;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=Qt.object(Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Qt.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}},Ba=class extends Gn{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=Qt.object(Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Qt.string().describe(n)])));return new this(t)}},kh=class extends rt{structuredInputParser;constructor({inputSchema:e}){super(...arguments),this.structuredInputParser=new Ba(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 fd=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:qm,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 L(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 D(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],br=Te[1],ye=R(Ye,!0),vr=ye.prefix,Jm=ye.local,Ec=vr===""?"":E.ns[vr]||"",ua={name:Ye,value:br,prefix:vr,local:Jm,uri:Ec};vr&&vr!=="xmlns"&&!Ec&&(V(g,"Unbound namespace prefix: "+JSON.stringify(vr)),ua.uri=vr),g.tag.attributes[Ye]=ua,F(g,"onattribute",ua)}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(br){var ye=ne.ns[br];F(g,"onclosenamespace",{prefix:br,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 Sn(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 kn(g,f){var E="";return f<g.length&&(E=g.charAt(f)),E}function qm(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=kn(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;Sn(f,w);continue;case _.BEGIN_WHITESPACE:Sn(f,w);continue;case _.TEXT:if(f.sawRoot&&!f.closedRoot){for(var J=E-1;w&&w!=="<"&&w!=="&";)w=kn(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===">"?D(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===">"?(D(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===">"?D(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,L(f),D(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===">"?D(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}L(f),f.q="",f.state=_.ATTRIB_VALUE_CLOSED;continue;case _.ATTRIB_VALUE_CLOSED:k(w)?f.state=_.ATTRIB:w===">"?D(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}L(f),w===">"?D(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 br="";++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)&&(br+=g.apply(null,J),J.length=0)}return br};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:E,configurable:!0,writable:!0}):String.fromCodePoint=E})(),e},Ch=fd();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?Jt(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}},md=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=md(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:()=>Xr,BaseOutputParser:()=>rt,BaseTransformOutputParser:()=>Rt,BytesOutputParser:()=>_h,CommaSeparatedListOutputParser:()=>yh,CustomListOutputParser:()=>bh,JsonMarkdownStructuredOutputParser:()=>Ba,JsonOutputParser:()=>Zs,ListOutputParser:()=>Zr,MarkdownListOutputParser:()=>wh,NumberedListOutputParser:()=>vh,OutputParserException:()=>Ce,StandardSchemaOutputParser:()=>Qs,StringOutputParser:()=>Sh,StructuredOutputParser:()=>Gn,XMLOutputParser:()=>Eh,XML_FORMAT_INSTRUCTIONS:()=>ei,parseJsonMarkdown:()=>wr,parsePartialJson:()=>Kt,parseXMLMarkdown:()=>ti});var Ih=A({extendInteropZodObject:()=>Ns,getInteropZodDefaultGetter:()=>Ms,getInteropZodObjectShape:()=>Tr,getSchemaDescription:()=>Er,interopParse:()=>Xt,interopParseAsync:()=>Os,interopSafeParse:()=>Wl,interopSafeParseAsync:()=>As,interopZodObjectMakeFieldsOptional:()=>ru,interopZodObjectPartial:()=>Zt,interopZodObjectPassthrough:()=>eu,interopZodObjectStrict:()=>Ql,interopZodTransformInputSchema:()=>tu,isInteropZodError:()=>nu,isInteropZodLiteral:()=>Gl,isInteropZodObject:()=>be,isInteropZodSchema:()=>Yt,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 Va(e,t){if(e.function===void 0)return;let r;if(t?.partial)try{r=Kt(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 Ua=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(Hr(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=>Va(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 Ua{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:()=>Ha,createContentParser:()=>dd,createFunctionCallingParser:()=>gd});function dd(e){return Yt(e)?Gn.fromZodSchema(e):Kr(e)?Qs.fromSerializableSchema(e):new Zs}function gd(e,t,r){let n=r??ri;return Yt(e)?new n({returnSingle:!0,keyName:t,zodSchema:e}):Kr(e)?new n({returnSingle:!0,keyName:t,serializableSchema:e}):new n({returnSingle:!0,keyName:t})}function Ha(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:()=>lr,ReasoningContentStream:()=>Dh,TextContentStream:()=>Rh,ToolCallsStream:()=>Lh,UsageMetadataStream:()=>Fh}),_d=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 yd(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 Wn(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 Qr(e){if(e)return{...e,input_tokens:e.input_tokens??0,output_tokens:e.output_tokens??0,total_tokens:e.total_tokens??0}}function bd(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 vd(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:bd(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=Wn(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=Wn(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)}},Lh=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)}},Dh=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=Wn(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=Wn(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=Qr(r.usage);n&&(yield n)}else if(r.event==="message-start"&&r.usage){let n=Qr(r.usage);n&&(yield n)}else if(r.event==="message-finish"&&r.usage){let n=Qr(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)}},lr=class{_buffer;constructor(e){this._buffer=new _d,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 Lh(this._buffer)}get reasoning(){return new Dh(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=Qr(a.usage));break;case"content-block-start":e[a.index]=a.content;break;case"content-block-delta":{let o=e[a.index],c=Wn(a);o&&c&&(e[a.index]=yd(o,c));break}case"content-block-finish":e[a.index]=a.content;break;case"usage":r=Qr(a.usage);break;case"message-finish":s=a.reason,a.usage&&(r=Qr(a.usage)),a.responseMetadata&&(n={...n,...a.responseMetadata});break;default:break}let i=e.filter(a=>a!=null).map(vd);return new q({id:t,content:i,usage_metadata:r,response_metadata:{...n,...s?{finish_reason:s}:{},output_version:"v1"}})}};var $h=A({convertChunksToEvents:()=>Ga,finalizeContentBlock:()=>si}),wd={wav:"audio/wav",mp3:"audio/mpeg",flac:"audio/flac",opus:"audio/opus",aac:"audio/aac",pcm16:"audio/pcm"},Sd={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 kd(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?Sd[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 Cd(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?wd[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*Ga(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=Td(p);d.accumulated=Ed(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=Cd(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 kd(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 Ed(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 Td(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 Kn(e){let t=e.constructor;return new t({...e,content:e.contentBlocks,response_metadata:{...e.response_metadata,output_version:"v1"}})}var Uh=A({BaseChatModel:()=>ur,SimpleChatModel:()=>xd});function Wa(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 ur=class vt extends Ls{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??Wt("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*Ga(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 lr(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._getInvocationParamsForTracing(i),c=await Le.configure(s.callbacks,this.callbacks,s.tags,this.tags,a,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(o)}),l={options:this._getCallOptionsForTracing(i,o),invocation_params:o,batch_size:1},u=i.outputVersion??this.outputVersion,h=await c?.handleChatModelStart(this.toJSON(),[Wa(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 Kn(d.message):yield d.message,p?p=p.concat(d):p=d,In(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._getInvocationParamsForTracing(r),y=await Le.configure(n.callbacks,this.callbacks,n.tags,this.tags,m,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(d)}),v={options:this._getCallOptionsForTracing(r,d),invocation_params:d,batch_size:1};a=await y?.handleChatModelStart(this.toJSON(),i.map(Wa),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 lr({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 pa("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),In(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 pa("Model invocation was aborted.",v)}if(d===void 0)throw new Error("Received empty response from chat model call.");o==="v1"&&(d.message=Kn(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=Kn(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,Wr,{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._getInvocationParamsForTracing(s),l=await Le.configure(i.callbacks,this.callbacks,i.tags,this.tags,o,this.metadata,{verbose:this.verbose,tracerInheritableMetadata:this._filterInvocationParamsForTracing(c)}),u={options:this._getCallOptionsForTracing(s,c),invocation_params:c,batch_size:1},h=await l?.handleChatModelStart(this.toJSON(),a.map(Wa),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)&&Hr(T.message)&&(T.message.usage_metadata={input_tokens:0,output_tokens:0,total_tokens:0},d==="v1"&&(T.message=Kn(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,Wr,{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}}_getInvocationParamsForTracing(t){return this.invocationParams(t)}_getCallOptionsForTracing(t,r){return t}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=Er(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";!Yt(n)&&!Kr(n)&&"name"in n&&(c=n.name);let l=Yt(n)||Kr(n)?ve(n):n,u=[{type:"function",function:{name:c,description:i,parameters:l}}];return Ha(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")}},xd=class extends ur{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:()=>Id});async function*Id(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=Md(d.usage),yield{event:"usage",usage:l});let y=d.x_groq?.usage;y&&r&&(l=Od(y),yield{event:"usage",usage:l});let v=d.choices?.[0];if(!v)continue;v.finish_reason!=null&&(u=Nd(v.finish_reason),h=Pd(d,v));let{delta:b}=v;if(!b)continue;let S=Ad(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 Ad(e){let t=e.reasoning_content??e.reasoning;return typeof t=="string"&&t.length>0?t:void 0}function Od(e){return{input_tokens:e.prompt_tokens??0,output_tokens:e.completion_tokens??0,total_tokens:e.total_tokens??0}}function Nd(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 Md(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 Pd(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 zn extends Ls{lc_namespace=["langchain","llms",this._llmType()];async invoke(t,r){let n=zn._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===zn.prototype._streamResponseChunks)yield this.invoke(t,r);else{let n=zn._convertInputToPromptValue(t),[s,i]=this._separateRunnableConfigFromCallOptionsCompat(r),a=this.invocationParams(i),o=await Le.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 Le.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!==zn.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,Wr,{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 Le.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,Wr,{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:()=>Rd,getInputValue:()=>Ld,getOutputValue:()=>Dd,getPromptInputKey:()=>Fd}),Rd=class{},Jh=(e,t)=>{if(t!==void 0)return e[t];let r=Object.keys(e);if(r.length===1)return e[r[0]]},Ld=(e,t)=>{let r=Jh(e,t);if(!r){let n=Object.keys(e);throw new Error(`input values have ${n.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!==""){let n=Object.keys(e);throw new Error(`output values have ${n.length} keys, you must specify an output key or pass only 1 key as output`)}return r};function Fd(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 Ka=class extends Xr{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)}`)}},za=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 Ka(e)}_diff(e,t){if(t)return Jt(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?Kt(n.arguments):{...n,arguments:Kt(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 Xr{static lc_name(){return"JsonKeyOutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;outputParser=new za;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:()=>za,OutputFunctionsParser:()=>Ka});var Zh=A({JsonOutputKeyToolsParser:()=>ri,JsonOutputToolsParser:()=>Ua,convertLangChainToolCallToOpenAI:()=>Ah,makeInvalidToolCall:()=>Oh,parseToolCall:()=>Va});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 Lt=class extends wt{async formatPromptValue(e){return new du(await this.format(e))}};var jd=Object.prototype.toString,tn=Array.isArray||function(t){return jd.call(t)==="[object Array]"};function Ja(e){return typeof e=="function"}function $d(e){return tn(e)?"array":typeof e}function qa(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Qh(e,t){return e!=null&&typeof e=="object"&&t in e}function Bd(e,t){return e!=null&&typeof e!="object"&&e.hasOwnProperty&&e.hasOwnProperty(t)}var Vd=RegExp.prototype.test;function Ud(e,t){return Vd.call(e,t)}var Hd=/\S/;function Gd(e){return!Ud(Hd,e)}var Wd={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function Kd(e){return String(e).replace(/[&<>"'`=\/]/g,function(r){return Wd[r]})}var zd=/\s*/,qd=/\s+/,ep=/\s*=/,Jd=/\s*\}/,Yd=/#|\^|\/|>|\{|&|=|!/;function Xd(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(qd,2)),!tn(_)||_.length!==2)throw new Error("Invalid tags: "+_);h=new RegExp(qa(_[0])+"\\s*"),p=new RegExp("\\s*"+qa(_[1])),m=new RegExp("\\s*"+qa("}"+_[1]))}d(t||ze.tags);for(var y=new Jn(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),Gd(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(Yd)||"name",y.scan(zd),b==="="?(S=y.scanUntil(ep),y.scan(ep),y.scanUntil(p)):b==="{"?(S=y.scanUntil(m),y.scan(Jd),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 Qd(Zd(s))}function Zd(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 Qd(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 Jn(e){this.string=e,this.tail=e,this.pos=0}Jn.prototype.eos=function(){return this.tail===""};Jn.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};Jn.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 en(e,t){this.view=e,this.cache={".":this.view},this.parent=t}en.prototype.push=function(t){return new en(t,this)};en.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])||Bd(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 Ja(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=Xd(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 en?r:new en(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(tn(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(Ja(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||tn(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=Ja(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 tn(t)?t:t&&typeof t=="object"?t.tags:void 0};Pe.prototype.getConfigEscape=function(t){if(t&&typeof t=="object"&&!tn(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){qn.templateCache=e},get templateCache(){return qn.templateCache}},qn=new Pe;ze.clearCache=function(){return qn.clearCache()};ze.parse=function(t,r){return qn.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 "'+$d(t)+'" was given as the first argument for mustache#render(template, view, partials)');return qn.render(t,r,n,s)};ze.escape=Kd;ze.Scanner=Jn;ze.Context=en;ze.Writer=Pe;var Ya=ze;var eg={escape:e=>e},Rr=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},tp=(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=tp(n[4],s);r.push(...i)}}else r.push({type:"literal",text:n[1]});return r},rn=e=>{let t=Ya.parse(e);return tp(t)},Xa=(e,t)=>Rr(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)=>Ya.render(e,t,void 0,eg),Yn={"f-string":Xa,mustache:Za},Qa={"f-string":Rr,mustache:rn},Ee=(e,t,r)=>{try{return Yn[t](e,r)}catch(n){throw Ur(n,"INVALID_PROMPT_INPUT")}},Lr=(e,t)=>Qa[t](e),Dt=(e,t,r)=>{if(!(t in Yn)){let n=Object.keys(Yn);throw new Error(`Invalid template format. Got \`${t}\`;
|
|
82
|
+
should be one of ${n}`)}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 Xn extends Lt{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))),Dt(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=""){let a=[i,...t,r].join(s);return new Xn({inputVariables:n,template:a})}static fromTemplate(t,r){let{templateFormat:n="f-string",...s}=r??{},i=new Set;return Lr(t,n).forEach(a=>{a.type==="variable"&&i.add(a.name)}),new Xn({inputVariables:[...i],templateFormat:n,template:t,...s})}async partial(t){let r=this.inputVariables.filter(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new Xn(s)}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 Xn({inputVariables:t.input_variables,template:t.template,templateFormat:t.template_format})}};var nn=class rp 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))),Dt([{type:"image_url",image_url:this.template}],this.templateFormat,r)}}_getPromptType(){return"prompt"}async partial(t){let r=this.inputVariables.filter(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new rp(s)}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 Zn=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")Lr(n,t).forEach(s=>{s.type==="variable"&&r.push(s.name)});else if(Array.isArray(n))for(let s of n)typeof s=="string"?Lr(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 Qn=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"})}},oi=class extends Qn{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 Qn{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)]}},es=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 zt(await this.prompt.format(e),this.role)}static fromTemplate(e,t,r){return new this(nt.fromTemplate(e,{templateFormat:r?.templateFormat}),t)}};function tg(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.keys(e).length===1&&"text"in e&&typeof e.text=="string"}function rg(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 Qn{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(tg(n)){let s="";typeof n.text=="string"&&(s=n.text??"");let i={...t,additionalContentFields:n};r.push(nt.fromTemplate(s,i))}else if(rg(n)){let s=n.image_url??"",i,a=[];if(typeof s=="string"){let o;t?.templateFormat==="mustache"?o=rn(s):o=Rr(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 nn({template:s,inputVariables:a,templateFormat:t?.templateFormat,additionalContentFields:n})}else if(typeof s=="object"){if("url"in s){let o;t?.templateFormat==="mustache"?o=rn(s.url):o=Rr(s.url),a=o.flatMap(c=>c.type==="variable"?[c.name]:[])}else a=[];i=new nn({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 Zn({template:n,templateFormat:t?.templateFormat}));return new this({prompt:r,additionalOptions:t})}async format(e){if(this.prompt instanceof Lt){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 Lt){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 nn){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 Zn){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)]}},ci=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 ng(e){return typeof e.formatMessages=="function"}function sg(e,t){if(ng(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 oi({variableName:s.slice(2,-2),optional:!0});if(typeof s=="string"&&s[0]==="{"&&s[s.length-1]==="}")return new oi({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 ci.fromTemplate(n,t);if(r._getType()==="ai")return io.fromTemplate(n,t);if(r._getType()==="system")return ao.fromTemplate(n,t);if(zt.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 ig(e){return e.constructor.lc_name()==="MessagesPlaceholder"}var sn=class ai extends es{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)&&!(ig(s)&&s.optional))throw Ur(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(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new ai(s)}static fromTemplate(t,r){let n=new ci({prompt:nt.fromTemplate(t,r)});return this.fromMessages([n])}static fromMessages(t,r){let n=t.reduce((a,o)=>a.concat(o instanceof ai?o.promptMessages:[sg(o,r)]),[]),s=t.reduce((a,o)=>o instanceof ai?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 np=class oo extends Lt{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))),Dt(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(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new oo(s)}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})}},sp=class ip extends es{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))),Dt(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(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new ip(s)}};var ap=class li 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=li.extractRequiredInputValues(r,s.inputVariables);s instanceof sn?r[n]=await s.formatMessages(i):r[n]=await s.format(i)}return li.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 li(r)}serialize(){throw new Error("Not implemented.")}_getPromptType(){return"pipeline"}};function op(e){return typeof e=="object"&&e!=null&&"withStructuredOutput"in e&&typeof e.withStructuredOutput=="function"}function ag(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 cp=class lp extends sn{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(op(t))return super.pipe(t.withStructuredOutput(this.schema));if(ag(t)&&op(t.bound))return super.pipe(new er({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 lp.fromMessages(t,{schema:r,method:n})}};var up=A({AIMessagePromptTemplate:()=>io,BaseChatPromptTemplate:()=>es,BaseMessagePromptTemplate:()=>Qn,BaseMessageStringPromptTemplate:()=>ro,BasePromptTemplate:()=>wt,BaseStringPromptTemplate:()=>Lt,ChatMessagePromptTemplate:()=>no,ChatPromptTemplate:()=>sn,DEFAULT_FORMATTER_MAPPING:()=>Yn,DEFAULT_PARSER_MAPPING:()=>Qa,DictPromptTemplate:()=>Zn,FewShotChatMessagePromptTemplate:()=>sp,FewShotPromptTemplate:()=>np,HumanMessagePromptTemplate:()=>ci,ImagePromptTemplate:()=>nn,MessagesPlaceholder:()=>oi,PipelinePromptTemplate:()=>ap,PromptTemplate:()=>nt,StructuredPrompt:()=>cp,SystemMessagePromptTemplate:()=>ao,checkValidTemplate:()=>Dt,interpolateFString:()=>Xa,interpolateMustache:()=>Za,parseFString:()=>Rr,parseMustache:()=>rn,parseTemplate:()=>Lr,renderTemplate:()=>Ee});var hp=A({BaseDocumentCompressor:()=>og}),og=class{static isBaseDocumentCompressor(e){return e?.compressDocuments!==void 0}};var pp=A({BaseRetriever:()=>ts}),ts=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 Le.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 fp=A({BaseStore:()=>mp,InMemoryStore:()=>cg}),mp=class extends Xe{},cg=class extends mp{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"},ui=class{},hi=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")}},pi=class extends hi{},dp=class extends pi{comparator;attribute;value;exprName="Comparison";constructor(e,t,r){super(),this.comparator=e,this.attribute=t,this.value=r}},gp=class extends pi{operator;args;exprName="Operation";constructor(e,t){super(),this.operator=e,this.args=t}},_p=class extends hi{query;filter;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 an(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 rs=class extends ui{},yp=class extends rs{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)]:an(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 bp=class extends rs{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,an(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 vp=A({BaseTranslator:()=>rs,BasicTranslator:()=>yp,Comparators:()=>U,Comparison:()=>dp,Expression:()=>hi,FilterDirective:()=>pi,FunctionalTranslator:()=>bp,Operation:()=>gp,Operators:()=>st,StructuredQuery:()=>_p,Visitor:()=>ui,castValue:()=>an,isBoolean:()=>po,isFilterEmpty:()=>$e,isFloat:()=>uo,isInt:()=>lo,isObject:()=>co,isString:()=>ho});function ns(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 wp(e,t,r){return e==null?!1:Object.entries(t).every(([n,s])=>r(e[n],s))}function Sp(e,t,r){return e==null?!1:wp(e,t,r)}function kp(e){return e.content.find(t=>t.type==="text")?.text}function lg(e,t,r){if(t.id!==void 0&&e.id!==t.id||t.text!==void 0&&kp(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&&!Sp(e.usage_metadata,t.usage,r)||t.responseMetadata!==void 0&&!wp(e.response_metadata,t.responseMetadata,r))}function ss(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 is(e,t){return t?!e:e}async function ug(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamText";if(!ns(e))return ss(e,s,n);let i=await e.text;return{pass:is(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 hg(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamReasoning";if(!ns(e))return ss(e,s,n);let i=await e.reasoning;return{pass:is(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 pg(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamToolCalls";if(!ns(e))return ss(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=is(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 fg(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamUsage";if(!ns(e))return ss(e,s,n);let i=await e.usage;return{pass:is(Sp(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 mg(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamOutput";if(!ns(e))return ss(e,s,n);let i=await e.output;return{pass:is(lg(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:kp(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 on={toHaveStreamText:ug,toHaveStreamReasoning:hg,toHaveStreamToolCalls:pg,toHaveStreamUsage:fg,toHaveStreamOutput:mg};function as(e){return re.isInstance(e)?e.constructor.name||e.type:typeof e}function fi(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: ${as(r)}`,actual:as(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=fi("HumanMessage",xe.isInstance),mo=fi("AIMessage",q.isInstance),go=fi("SystemMessage",Qe.isInstance),_o=fi("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: ${as(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: ${as(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: ${as(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 Cp={toBeHumanMessage:fo,toBeAIMessage:mo,toBeSystemMessage:go,toBeToolMessage:_o,toHaveToolCalls:yo,toHaveToolCallCount:bo,toContainToolCall:vo,toHaveToolMessages:wo,toHaveBeenInterrupted:So,toHaveStructuredResponse:ko,...on};function dg(e){return e.map(t=>t.text).filter(Boolean).join("-")}var Ep=0;function gg(){return Ep+=1,`fake_tc_${Ep}`}var Co=class Tp extends ur{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??gg(),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 Tp;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=dg(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 xp(){return new Co}function mi(e){return{async*[Symbol.asyncIterator](){for(let t of e)yield t}}}function di(e="test-model"){let t=os(e),r=t[t.length-1];return t[t.length-1]={...r,usage:{prompt_tokens:10,completion_tokens:2,total_tokens:12}},t}function os(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 gi(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 _i(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 yi(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 Ip=A({FakeBuiltModel:()=>Co,asAsyncIterable:()=>mi,fakeModel:()=>xp,langchainMatchers:()=>Cp,openAIReasoningTextChunks:()=>gi,openAITextOnlyChunks:()=>os,openAITextOnlyChunksWithUsage:()=>di,openAIToolCallChunks:()=>_i,sseResponseFromOpenAIChunks:()=>yi,streamMatchers:()=>on,toBeAIMessage:()=>mo,toBeHumanMessage:()=>fo,toBeSystemMessage:()=>go,toBeToolMessage:()=>_o,toContainToolCall:()=>vo,toHaveBeenInterrupted:()=>So,toHaveStructuredResponse:()=>ko,toHaveToolCallCount:()=>bo,toHaveToolCalls:()=>yo,toHaveToolMessages:()=>wo});var Ap=A({RunCollectorCallbackHandler:()=>_g}),_g=class extends Gr{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 Op=A({});var Np=A({chunkArray:()=>yg}),yg=(e,t)=>e.reduce((r,n,s)=>{let i=Math.floor(s/t);return r[i]=(r[i]||[]).concat([n]),r},[]);var Mp=A({context:()=>bg});function bg(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=vg(t[s],n);n+=typeof a=="string"?a:JSON.stringify(a)}}return n=wg(n),n=n.trim(),n=n.replace(/\\n/g,`
|
|
178
|
+
`),n}function vg(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 wg(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 Pp=A({EventStreamContentType:()=>Sg,convertEventStreamToIterableReadableDataStream:()=>Cg,getBytes:()=>Rp,getLines:()=>Lp,getMessages:()=>Dp}),Sg="text/event-stream";async function Rp(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=kg(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 Dp(e,t,r){let n=Eo(),s=new TextDecoder;return function(a,o,c){if(c){Eg(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 kg(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 Cg(e,t){let r=new ReadableStream({async start(n){let s=Dp(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 Rp(e,Lp((a,o,c)=>{s(a,o,c),c&&n.close()}))}});return Pn.fromReadableStream(r)}function Eg(e){return e.data===""&&e.event===""&&e.id===""&&e.retry===void 0}var Fp=A({});var jp=A({convertToOpenAIFunction:()=>$p,convertToOpenAITool:()=>Tg,isLangChainTool:()=>da,isRunnableToolLike:()=>wu,isStructuredTool:()=>vu,isStructuredToolParams:()=>Su});function $p(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 Tg(e,t){let r=typeof t=="number"?void 0:t,n;return da(e)?n={type:"function",function:$p(e)}:n=e,r?.strict!==void 0&&(n.function.strict=r.strict),n}var Bp=A({DEFAULT_LANGSMITH_GATEWAY:()=>Vp,resolveLangSmithGatewayConfig:()=>Pg}),xg="LANGSMITH_GATEWAY",Ig="LANGSMITH_GATEWAY_API_KEY",Ag="LANGSMITH_API_KEY",Vp="https://gateway.smith.langchain.com",Og=["true","1","yes"],Ng=["false","0","no"];function Mg(e){let t=Wt(xg);if(!(!t||Ng.includes(t.toLowerCase())))return`${Og.includes(t.toLowerCase())?Vp:t.replace(/\/+$/,"")}/${e}`}function Pg({baseURL:e,providerPath:t}){if(e!==void 0)return{baseURL:e};let r=Mg(t);return r===void 0?{}:{baseURL:r,apiKey:Wt(Ig)||Wt(Ag)}}function bi(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 Up(e,t){let r=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n];return r}function Rg(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 Hp(e,t){return Math.sqrt(Rg(e,t))}var Gp=A({cosineSimilarity:()=>To,euclideanDistance:()=>Fg,innerProduct:()=>Dg,matrixFunc:()=>vi,maximalMarginalRelevance:()=>jg,normalize:()=>Lg});function vi(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 Lg(e,t=!1){let r=$g(e);return e.map(n=>n.map(s=>t?1-s/r:s/r))}function To(e,t){return vi(e,t,bi)}function Dg(e,t){return vi(e,t,Up)}function Fg(e,t){return vi(e,t,Hp)}function jg(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=Wp(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 Wp(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 $g(e){return e.reduce((t,r)=>Math.max(t,Wp(r).maxValue),0)}var Kp=A({isCloudMetadata:()=>xo,isLocalhost:()=>Io,isPrivateIp:()=>Xp,isSafeUrl:()=>zg,isSameOrigin:()=>qg,validateSafeUrl:()=>Zp}),Bg=["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"],Vg=["169.254.169.254","169.254.170.2","100.100.100.200"],Ug=["metadata.google.internal","metadata","instance-data"],Hg=["localhost","localhost.localdomain"],Gg=/^(?:(?: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 zp(e){return Gg.test(e)}function wi(e){return Yp(e)!==null}function qp(e){return zp(e)||wi(e)}function Jp(e){if(zp(e))return e.split(".").map(t=>parseInt(t,10));if(wi(e)){let t=Yp(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 Yp(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 Wg(e){let[t,r]=e.split("/");if(!t||!r)return null;let n=Jp(t);if(!n)return null;let s=parseInt(r,10);if(isNaN(s))return null;let i=wi(t);return i&&s>128||!i&&s>32?null:{addr:n,prefixLen:s,isIpv6:i}}function Kg(e,t){let r=Jp(e);if(!r)return!1;let n=Wg(t);if(!n)return!1;let s=wi(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 Xp(e){if(!qp(e))return!1;for(let t of Bg)if(Kg(e,t))return!0;return!1}function xo(e,t){if(Vg.includes(t||""))return!0;let r=e.toLowerCase();return!!Ug.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!!Hg.includes(r)}function Zp(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(qp(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(Xp(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 zg(e,t){try{return Zp(e,t),!0}catch{return!1}}function qg(e,t){try{return new URL(e).origin===new URL(t).origin}catch{return!1}}var Qp=A({SaveableVectorStore:()=>Jg,VectorStore:()=>ki,VectorStoreRetriever:()=>Si}),Si=class extends ts{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)}},ki=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 Si({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 Si({...a,searchKwargs:e.searchKwargs}):new Si({...a})}}},Jg=class extends ki{static load(e,t){throw new Error("Not implemented")}};var ef=class extends ur{_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:{}}}},tf=class rf extends ur{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 rf({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 Cr({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 Cr({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})}}},nf=class sf extends ur{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 Cr({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 sf({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 af=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})}},of=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 cf=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}},lf=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 uf=class extends Oa{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=[]}},hf=class extends Ys{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},pf=class extends Gr{name="fake_tracer";runs=[];constructor(){super()}persistRun(e){return this.runs.push(e),Promise.resolve()}};var ff=class extends rt{lc_namespace=["tests","fake"];getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}};var mf=class extends ts{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 df=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 gf=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 _f=class extends Gr{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 yf=class bf extends ki{memoryVectors=[];similarity;_vectorstoreType(){return"memory"}constructor(t,{similarity:r,...n}={}){super(t,n),this.similarity=r??bi}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 bf.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 vf=A({FakeChatMessageHistory:()=>uf,FakeChatModel:()=>ef,FakeEmbeddings:()=>of,FakeLLM:()=>cf,FakeListChatMessageHistory:()=>hf,FakeListChatModel:()=>nf,FakeRetriever:()=>mf,FakeRunnable:()=>df,FakeSplitIntoListParser:()=>ff,FakeStreamingChatModel:()=>tf,FakeStreamingLLM:()=>lf,FakeTool:()=>gf,FakeTracer:()=>pf,FakeVectorStore:()=>yf,SingleRunExtractor:()=>_f,SyntheticEmbeddings:()=>af,asAsyncIterable:()=>mi,openAIReasoningTextChunks:()=>gi,openAITextOnlyChunks:()=>os,openAITextOnlyChunksWithUsage:()=>di,openAIToolCallChunks:()=>_i,sseResponseFromOpenAIChunks:()=>yi,streamMatchers:()=>on});var wf=A({agents:()=>Lu,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:()=>Dl,prompt_values:()=>mu,prompts:()=>up,retrievers:()=>pp,retrievers__document_compressors:()=>hp,runnables:()=>dh,runnables__graph:()=>au,singletons:()=>Ol,stores:()=>fp,structured_query:()=>vp,testing:()=>Ip,tools:()=>ku,tracers__base:()=>Cl,tracers__console:()=>El,tracers__log_stream:()=>Ll,tracers__run_collector:()=>Ap,tracers__tracer_langchain:()=>Tl,types__stream:()=>Op,utils__async_caller:()=>Fl,utils__chunk_array:()=>Np,utils__context:()=>Mp,utils__env:()=>Lc,utils__event_source_parse:()=>Pp,utils__format:()=>Fp,utils__function_calling:()=>jp,utils__gateway:()=>Bp,utils__hash:()=>Fc,utils__json_patch:()=>gh,utils__json_schema:()=>iu,utils__math:()=>Gp,utils__ssrf:()=>Kp,utils__standard_schema:()=>$l,utils__stream:()=>Pl,utils__testing:()=>vf,utils__tiktoken:()=>yu,utils__types:()=>Ih,utils__uuid:()=>xc,vectorstores:()=>Qp});var Yg=50;function Xg(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 Ci(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)=>Ci.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=Wt(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:wf,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 Ci.call({...this,path:[...a,"kwargs"],depth:o+1},p.kwargs),Ac,Xg(T)));return Object.defineProperty(O.constructor,"name",{value:d}),O}let h={};for(let[p,m]of Object.entries(u))h[p]=await Ci.call({...this,path:[...a,p],depth:o+1},m);return h}async function Sf(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??Yg};return Ci.call(n,r)}function Zg(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 qr(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(Zg(t))return Sf(JSON.stringify(t));return t}}return e}function Ei(e,t,r,n){return{lc:2,type:"constructor",id:[e.name],method:t??null,args:r??[],kwargs:n??{}}}function Qg(e){return e===void 0?{lc:2,type:"undefined"}:e instanceof qr?{lc:2,type:"delta_snapshot",value:e.value}:e instanceof Set||e instanceof Map?Ei(e.constructor,void 0,[Array.from(e)]):e instanceof RegExp?Ei(RegExp,void 0,[e.source,e.flags]):e instanceof Error?Ei(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?Ei(Uint8Array,"from",[Array.from(e)]):e}var Ti=class{_dumps(e){return new TextEncoder().encode(Mu(e,(t,r)=>Qg(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:Vn(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 xi=class{serde=new Ti;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 Ii(e,t){return typeof e=="number"&&typeof t=="number"?Math.sign(e-t):String(e).localeCompare(String(t))}function cs(...e){return e.reduce((t,r,n)=>n===0?r:Ii(t,r)>=0?t:r)}var ls={[Sa]:-1,[Pr]:-2,[ka]:-3,[Ca]:-4},No=new Set(["thread_id","checkpoint_id","checkpoint_ns","checkpoint_map","langgraph_step","langgraph_node","langgraph_triggers","langgraph_path","langgraph_checkpoint_ns"]);function Ai(e){return e.configurable?.checkpoint_id||e.configurable?.thread_ts||""}var e_=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(e_.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 cn(e,t,r){return JSON.stringify([e,t,r])}function t_(e){let[t,r,n]=JSON.parse(e);return{threadId:t,checkpointNamespace:r,checkpointId:n}}var kf=class extends xi{storage=Object.create(null);writes=Object.create(null);constructor(e){super(e)}async _migratePendingSends(e,t,r,n){let s=e,i=cn(t,r,n),a=await Promise.all(Object.values(this.writes[i]??{}).filter(([o,c])=>c===Un).map(async([o,c,l])=>await this.serde.loadsTyped("json",l)));s.channel_values??={},s.channel_values[Un]=a,s.channel_versions??={},s.channel_versions[Un]=Object.keys(s.channel_versions).length>0?cs(...Object.values(s.channel_versions)):this.getNextVersion(void 0)}async getTuple(e){let t=e.configurable?.thread_id,r=e.configurable?.checkpoint_ns??"",n=Ai(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=cn(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=cn(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=cn(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=cn(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,ls[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))t_(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=Ai(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=cn(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 ln=class extends Error{constructor(e){super(e),this.name="InvalidNamespaceError"}};function r_(e){if(e.length===0)throw new ln("Namespace cannot be empty.");for(let t of e){if(typeof t!="string")throw new ln(`Invalid namespace label '${t}' found in ${e}. Namespace labels must be strings, but got ${typeof t}.`);if(t.includes("."))throw new ln(`Invalid namespace label '${t}' found in ${e}. Namespace labels cannot contain periods ('.').`);if(t==="")throw new ln(`Namespace labels cannot be empty strings. Got ${t} in ${e}`)}if(e[0]==="langgraph")throw new ln(`Root label for namespace cannot be "langgraph". Got: ${e}`)}var un=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){r_(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 n_=e=>"lg_name"in e&&e.lg_name==="AsyncBatchedStore"?e.store:e,Oi=class extends un{lg_name="AsyncBatchedStore";store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(e){super(),this.store=n_(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 us(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 s_(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 Cf(e,t){return s_(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 Ef(e,t){if(!t||t==="$")return[JSON.stringify(e,null,2)];let r=Array.isArray(t)?t:us(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=us(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 Tf=class extends un{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]:us(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])=>Cf(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,us(s)]);for(let[s,i]of n){let a=Ef(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 Ni=class{serde=new Ti;constructor(e){this.serde=e||this.serde}};var i_=/^[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 hn(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 Mi(e,t){let r=hn(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(!i_.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 Pi(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 qr(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??Vn(r),ts:new Date().toISOString(),channel_values:o,channel_versions:c,versions_seen:e.versions_seen}}async function pn(e,t,r){let n=Mi(e,t),{saver:s,config:i}=r??{},a=hn(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 a_=e=>e!=null&&e.lc_graph_name==="BinaryOperatorAggregate",Ft=class xf 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 xf(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(Or(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:a_(t)?this.operator===t.operator:!1}};var ot=class If extends ie{lc_graph_name="LastValue";value=[];constructor(t){super(),this.initialValueFactory=t,t&&(this.value=[t()])}fromCheckpoint(t){let r=new If(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}},Lo=class Af extends ie{lc_graph_name="LastValueAfterFinish";value=[];finished=!1;fromCheckpoint(t){let r=new Af;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 Ri=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"}},hs=function(e){return e?Li(e):new ot};hs.Root=e=>new Ri(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 o_=["tags","metadata","callbacks","configurable"],c_=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","interrupt","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal","heartbeat","executionInfo","serverInfo","control"],l_=25,u_=new Set(["thread_id","checkpoint_id","checkpoint_ns","task_id","run_id","assistant_id","graph_id"]);function h_(e,t){if(!e)return t;let r=t??{};for(let n of u_){if(n in r)continue;let s=e[n];s!==void 0&&(r[n]=s)}return r}function Of(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 p_(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(fa(n),!0);return r}if(Array.isArray(e)){let r=t.copy();for(let n of e)r.addHandler(fa(n),!0);return r}return new Le(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 f_(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 fn(...e){let t={tags:[],metadata:{},callbacks:void 0,recursionLimit:l_,configurable:{}},r=f_(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(o_.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||!c_.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=p_(t.callbacks,a):t[i]=a);return t.metadata=h_(t.configurable,t.metadata)??{},t}function m_(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 d_(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 Di(){return oe.getRunnableConfig()}function g_(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 Fi(e){return e.split("|").filter(t=>!t.match(/^\d+$/)).map(t=>t.split(":")[0]).join("|")}function Nf(e){let t=e.split("|");for(;t.length>1&&t[t.length-1].match(/^\d+$/);)t.pop();return t.slice(0,-1).join("|")}var Do=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 mn(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 __(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}=__(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:y_(r)}}];case"checkpoints":return mn(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=b_(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 y_(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 b_(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 Mf(e){return Je.isInstance(e)}var v_="custom:";function w_(e){return`${v_}${e}`}function S_(e){return e!=null&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}var ji=Symbol("resolveValues"),Vo=Symbol("rejectValues"),Pf=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(Mf(r)){if(this.#o.push(r),typeof r.channelName!="string")continue;let n=w_(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}S_(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))?.[ji](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[ji](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 Rf(e,t){let r=0;try{for await(let n of e){let[s,i,a]=n;if(i==="values"&&Nr(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 $i(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 Lf="root";function k_(e){if(e.length===0)return Lf;let t=e[e.length-1],r=t.indexOf(":");return r===-1?t:t.slice(0,r)}function C_(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 E_(e){if(!kt(e)||e.event!=="started")return;let t=e.cause;if(kt(t)&&typeof t.type=="string")return t}function T_(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??Lf,r=e.initialStatus??"running",n=e.emitRootOnRegister??!0,s=e.getGraphName??k_,i=e.serializeError??C_,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 L=ae(N);if(u.has(L))return;let D=(kt(R)&&kt(R.metadata)?R.metadata:void 0)?.lc_agent_name;u.set(L,typeof D=="string"?D:void 0)},k=N=>{if(!kt(N))return;let R=N.id;if(typeof R!="string")return;let L=N.input,D;if(kt(L)&&kt(L.tool_call)){let K=L.tool_call.id;typeof K=="string"&&(D=K)}else if(Array.isArray(L)){for(let K of L)if(kt(K)&&typeof K.id=="string"){D=K.id;break}}D!=null&&h.set(R,D)},C=N=>{if(N.length===0)return;let R=u.get(ae(N));if(typeof R!="string"||R.length===0)return;let L=N[N.length-1],D=L.indexOf(":");if(D===-1)return;let K=L.slice(D+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,L)=>{let D=ae(N),K=c.get(D),ft=K?.graphName??b(N);if(K!=null&&K.status===R&&K.graphName===ft&&L?.error==null)return;K==null?(K={namespace:N,graphName:ft,status:R},c.set(D,K)):K.status=R;let Sn={event:R,graph_name:ft,...L?.cause!=null?{cause:L.cause}:{},...L?.error!=null?{error:L.error}:{}},kn=Date.now();if(o.push({namespace:N,timestamp:kn,...Sn}),!(N.length===0&&!n)&&d!=null){y+=1;try{d.push(N,{type:"event",seq:0,method:"lifecycle",params:{namespace:N,timestamp:kn,data:Sn}})}finally{y-=1}}},x=N=>{let R=ae(N),L=c.get(R);return L==null&&(L={namespace:N,graphName:b(N),status:void 0},c.set(R,L)),L},_=()=>{if(m.length===0)return;let N=m.splice(0,m.length);for(let R of N){let L=ae(R.namespace),D=c.get(L);D==null||D.status!=="started"||O(R.namespace,"completed")}},P=N=>{let R=ae(N.namespace),L=c.get(R);L==null||L.status!=="started"||m.some(D=>ae(D.namespace)===R)||m.push(N)},M=(N,R)=>{for(let L=m.length-1;L>=0;L-=1){let D=m[L];D.source.type==="node"&&D.source.node===R&&ae(D.source.parent)===ae(N)&&m.splice(L,1)}},F=N=>{for(let R=1;R<=N.length;R+=1){let L=N.slice(0,R),D=ae(L);if(c.has(D))continue;x(L);let K=T(L);O(L,"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 L=`${R}:`;for(let D of c.values()){if(D.namespace.length!==N.length+1||D.status!=="started"||!St(D.namespace,N))continue;let K=D.namespace[D.namespace.length-1];if(K===R||K.startsWith(L))return D.namespace}},V=(N,R)=>{let L=[...N,`${R.name}:${R.id}`];return c.get(ae(L))?.status==="started"?L:void 0};return{__native:!0,init(){return{_lifecycleLog:o,lifecycle:$i(o,[],0)}},onRegister(N){d=N,x([]),n&&O([],r)},process(N){let R=N.params.namespace;if(y>0)return!0;let L=N.method==="tasks"?T_(N.params.data):void 0;if(L!=null?M(R,L.name):N.method==="tasks"&&(S(R,N.params.data),k(N.params.data)),_(),N.method==="lifecycle"){let D=E_(N.params.data);return D!=null&&l.set(ae(R),D),F(R),!1}if(F(R),N.method==="input"&&kt(N.params.data)&&N.params.data.event==="requested"){let D=N.params.data.id;typeof D=="string"&&p.add(D)}if(L!=null){let D=V(R,L);D!=null&&P({namespace:D,source:{type:"task"}})}if(N.method==="updates"){let D=N.params.node;if(typeof D=="string"&&!D.startsWith("__")){let K=_e(R,D);K!=null&&P({namespace:K,source:{type:"node",parent:R,node:D}})}}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 L of c.values())L.namespace.length!==0&&L.status==="started"&&O(L.namespace,"failed");O([],"failed",{error:R}),o.fail(N)}}}function dn(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 ps(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=dn(a);if(a.role==="tool"){s.add(o);break}let c=Je.local(),l=Object.assign(new lr(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(dn(a)))break;n.get(dn(a))?.source.push(a);break;case"message-finish":{let o=dn(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(dn(a)))break;n.get(dn(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 fs(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:fs(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 Bi(e){return"__native"in e&&e.__native===!0}var Df=Symbol("setValuesLog"),Ff=Symbol("setMessagesIterable"),Wo=Symbol("setLifecycleIterable"),Ko=Symbol("setSubgraphsIterable"),x_={[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:fs(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=ps(this.path),t=e.init();return this._mux.addTransformer(e),this.#a=t.messages,this.#a}get lifecycle(){return this.#l??x_}messagesFrom(e){let t=ps(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}[ji](e){this.#i?.(e),this.#i=void 0}[Vo](e){this.#s?.(e),this.#s=void 0}[Df](e){this.#o=e}[Ff](e){this.#a=e}[Wo](e){this.#l=e}[Ko](e){this.#c=e}},jf=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 Pf,i=Uo(),a=i.init(),o=a._lifecycleLog,c=Ho(s,{createStream:(b,S,k)=>{let C=new jf(b,s,S,k);return C[Ko](fs(s._discoveries,b,S)),C[Wo]($i(o,b,o.size)),C}}),l=c.init();s.addTransformer(c),s.addTransformer(i);let u=Go([]),h=ps([]);s.addTransformer(u),s.addTransformer(h);let p={},m=[];for(let b of t){let S=b();s.addTransformer(S);let k=S.init();Bi(S)?m.push(k):Object.assign(p,k),typeof k=="object"&&k!==null&&!Bi(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[Ff](v.messages),d[Wo](a.lifecycle),d[Ko](l.subgraphs),s.register([],d),Rf(e,s).catch(b=>{}),d}var I=e=>BigInt(e),X=(e,t=0)=>new DataView(e.buffer,e.byteOffset+t,e.byteLength-t),Uf=I("0x9E3779B1"),Hf=I("0x85EBCA77"),I_=I("0xC2B2AE3D"),hr=I("0x9E3779B185EBCA87"),Fr=I("0xC2B2AE3D27D4EB4F"),Gf=I("0x165667B19E3779F9"),Xo=I("0x85EBCA77C2B2AE63"),A_=I("0x27D4EB2F165667C5"),O_=I("0x165667919E3779F9"),N_=I("0x9FB21C651E98DF25"),M_=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=M_("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),gn=(I(1)<<I(128))-I(1),B=(I(1)<<I(64))-I(1),Gi=(I(1)<<I(32))-I(1),jt=64,Wf=jt/8,P_=8,Vi=4;function _n(e){if(!e)throw new Error("Assert failed")}function R_(e){let t=new DataView(new ArrayBuffer(8));return t.setBigUint64(0,e,!0),t.getBigUint64(0,!1)}function L_(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 D_(e,t){return(e&Gi)*(t&Gi)&B}function F_(e,t){return(e<<t|e>>I(32)-t)&Gi}function Kf(e,t,r){for(let n=0;n<Wf;n+=1){let s=t.getBigUint64(n*8,!0),i=s^r.getBigUint64(n*8,!0);e[n^1]+=s,e[n]+=D_(i,i>>I(32))}return e}function $f(e,t,r,n){for(let s=0;s<n;s+=1)Kf(e,X(t,s*jt),X(r,s*8));return e}function j_(e,t){for(let r=0;r<Wf;r+=1){let n=t.getBigUint64(r*8,!0),s=e[r];s=Jo(s,I(47)),s^=n,s*=Uf,e[r]=s&B}return e}function Ui(e,t){return zf(e[0]^t.getBigUint64(0,!0),e[1]^t.getBigUint64(P_,!0))}function Bf(e,t,r){let n=r;return n+=Ui(e.slice(0),X(t,0*Vi)),n+=Ui(e.slice(2),X(t,4*Vi)),n+=Ui(e.slice(4),X(t,8*Vi)),n+=Ui(e.slice(6),X(t,12*Vi)),Et(n&B)}function $_(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=$f(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=$f(i,X(t,c*o),r,l),i=n(i,X(t,t.byteLength-jt),X(r,r.byteLength-jt-7))}return i}function B_(e,t){let r=new BigUint64Array([I_,hr,Fr,Gf,Xo,Hf,A_,Uf]);_n(e.byteLength>128),r=$_(r,e,t,Kf,j_),_n(r.length*8===64);{let n=Bf(r,X(t,11),I(e.byteLength)*hr&B);return Bf(r,X(t,t.byteLength-jt-11),~(I(e.byteLength)*Fr)&B)<<I(64)|n}}function zf(e,t){let r=e*t&gn;return r&B^r>>I(64)}function Vf(e,t,r){return zf((e.getBigUint64(0,!0)^t.getBigUint64(0,!0)+r)&B,(e.getBigUint64(8,!0)^t.getBigUint64(8,!0)-r)&B)}function Hi(e,t,r,n,s){let i=e&B,a=e>>I(64)&B;return i+=Vf(t,n,s),i^=r.getBigUint64(0,!0)+r.getBigUint64(8,!0),i&=B,a+=Vf(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*=O_,t&=B,t^=t>>I(32),t}function Wi(e){let t=e;return t^=t>>I(33),t*=Fr,t&=B,t^=t>>I(29),t*=Gf,t&=B,t^=t>>I(32),t}function V_(e,t,r){let n=e.byteLength;_n(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(Wi((F_(L_(s),I(13))^a)&B)&B)<<I(64)|Wi(i)}function Jo(e,t){return e^e>>t}function U_(e,t,r){let n=e.byteLength;_n(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)*(hr+(I(n)<<I(2)))&gn;return a+=(a&B)<<I(65),a&=gn,a^=a>>I(67),Jo(Jo(a&B,I(35))*N_&B,I(28))|Et(a>>I(64))<<I(64)}}function H_(e,t,r){let n=e.byteLength;_n(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)*hr,l=(c&B)+(I(n-1)<<I(54));c=c&(gn^B)|l,o^=i,c+=o+(o&Gi)*(Hf-I(1))<<I(64),c&=gn,c^=R_(c>>I(64));let u=(c&B)*Fr;return u+=(c>>I(64))*Fr<<I(64),u&=gn,Et(u&B)|Et(u>>I(64))<<I(64)}}function G_(e,t){let r=e.byteLength;return _n(r<=16),r>8?H_(e,Ct,t):r>=4?U_(e,Ct,t):r>0?V_(e,Ct,t):Wi(t^Ct.getBigUint64(64,!0)^Ct.getBigUint64(72,!0))|Wi(t^Ct.getBigUint64(80,!0)^Ct.getBigUint64(88,!0))<<I(64)}function Yo(e){return~e+I(1)&B}function W_(e,t,r){let n=I(e.byteLength)*hr&B,s=I(e.byteLength-1)/I(32);for(;s>=0;){let o=Number(s);n=Hi(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)*hr+(n>>I(64))*Xo+(I(e.byteLength)-r&B)*Fr;return a&=B,a=Yo(Et(a)),i|a<<I(64)}function K_(e,t,r){let n=I(e.byteLength)*hr&B;for(let a=32;a<160;a+=32)n=Hi(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=Hi(n,X(e,a-32),X(e,a-16),X(t,3+a-160),r);n=Hi(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)*hr+(n>>I(64))*Xo+(I(e.byteLength)-r&B)*Fr;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(G_(n,t)):s<=128?i(W_(n,Ct,t)):s<=240?i(K_(n,Ct,t)):i(B_(n,Ct))}function Ki(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 Mr("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=fn(t),s=De(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 pr(e){let t=[];for(let r of e)t.push(r);return t}function jr(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 z_(e){return typeof e=="object"&&e?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var Be={[Symbol.for("LG_PASSTHROUGH")]:!0};function zi(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)&&zi(s.value)?{mapper:s.mapper,value:t}:qi(s)&&zi(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(qi(i)){if(i.channel==="__pregel_tasks")throw new $("Cannot write to the reserved channel TASKS");if(zi(i.value))throw new $("PASSTHROUGH value must be replaced")}if(rc(i)&&zi(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(qi(i)){let a=i.mapper!==void 0?await i.mapper.invoke(i.value,t):i.value;if(z_(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 qi(e){return e!==void 0&&typeof e.channel=="string"}function rc(e){return e!==void 0&&!qi(e)&&H.isRunnable(e.mapper)}var qf=class Jf extends fe{lc_graph_name="ChannelRead";channel;fresh=!1;mapper;constructor(t,r,n=!1){super({trace:!1,func:(s,i)=>Jf.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)}},yn=new Pt,lt=class ms extends er{lc_graph_name="PregelNode";channels;triggers=[];mapper;writers=[];bound=yn;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??yn,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===yn&&t.length===0))return this.bound===yn&&t.length===1?t[0]:this.bound===yn?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 ms({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 ms({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===yn?new ms({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 ms({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 q_(e){return"steps"in e&&Array.isArray(e.steps)}function ds(e){return"lg_is_pregel"in e&&e.lg_is_pregel===!0}function Ji(e){let t=[e];for(let r of t){if(ds(r))return r;q_(r)&&t.push(...r.steps)}}function $r(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]=$r(e,s,!r)}catch(i){if(i.name===W.unminifiable_name)continue}return n}else return $r(e,t)}function*Yf(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(Ki))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*Yi(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*Xi(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 $r(r,e))}function*Xf(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===ar).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 Zi(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 bn(e,t){if(Object.keys(e).length>0){let r=Zi(t);return Object.fromEntries(Object.entries(t).filter(([n,s])=>s>(e[n]??r)))}else return t}function Zf(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 fr(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 mr(...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 Qf=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 em(e){return typeof e=="object"&&e!==null&&"__lg_type"in e&&e.__lg_type==="call"}function tm(e,t){return new et({name:e,first:new fe({func:r=>t(...r),name:e,trace:!1,recurse:!1}),last:new te([{channel:ar,value:Be}],[se])})}function rm(e,t){return new fe({func:(r,n)=>t(r,n),name:e,trace:!1,recurse:!1})}function nm({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 sm=e=>e!==void 0?e+1:1;function J_(e,t){if(t==null)return!1;for(let r of e)if(t[r])return!0;return!1}function Y_(e){let t;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t==null?t=e[r]:t=cs(t,e[r]));return t}function gs(e,t,r){let n=Zi(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 vn(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=Mi(o,l);Re(it(l),u,[r],void 0,void 0),a=ut({...t,...u},n)}else a=ut(t,n);return a}function Qi(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 X_=new Set([jn,Ne,Oe,Y,ar,nr,Ln]),Z_=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=hn(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]),Z_.has(y)||c.add(y)}let l=Y_(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)X_.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&&!J_(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*Q_(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 ey(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 dr(e,t,r,n,s,i,a){let o={},c=a.pendingWritesIndex?a:{...a,pendingWritesIndex:ey(t)},l=n[_t];if(l?.isAvailable()){let u=l.get().length;for(let h=0;h<u;h+=1){let p=ta([Ne,h],e,t,r,n,s,i,c);p!==void 0&&(o[p.id]=p)}}for(let u of Q_(e,r,c)){let h=ta([js,u],e,t,r,n,s,i,c);h!==void 0&&(o[h.id]=h)}return o}function ta(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"&&em(e[e.length-1])){let m=e[e.length-1],d=tm(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(De(i,{metadata:C,store:o.store??i.store}),{runName:m.name,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[zr]:b,[Se]:x=>Qi(_=>T.push(..._),n,x),[Ie]:(x,_=!1)=>vn(t,s,{name:m.name,writes:T,triggers:y,path:k},x,_),[We]:l??h.__pregel_checkpointer,[ke]:{...h[ke],[p]:t.id},[Ae]:ea({pendingWrites:r??[],taskId:b,currentTaskInput:m.input,resumeMap:i.configurable?.[Ar],namespaceHash:Tt(S),pendingWritesIndex:o.pendingWritesIndex}),[sr]:t.channel_values[or],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:[Ds,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 xr(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(De(i,{metadata:C,tags:T.tags,store:o.store??i.store}),{runName:y.node,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[zr]:S,[Se]:P=>Qi(M=>x.push(...M),n,P),[Ie]:(P,M=!1)=>vn(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]:ea({pendingWrites:r??[],taskId:S,currentTaskInput:y.args,resumeMap:i.configurable?.[Ar],namespaceHash:Tt(k),pendingWritesIndex:o.pendingWritesIndex}),[sr]:t.channel_values[or],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:[Ds,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=Zi(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=ty(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(De(i,{metadata:O,tags:d.tags,store:o.store??i.store}),{runName:m,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[zr]:C,[Se]:M=>Qi(F=>{_.push(...F)},n,M),[Ie]:(M,F=!1)=>vn(t,s,{name:m,writes:_,triggers:[b],path:e},M,F),[We]:l??h.__pregel_checkpointer,[ke]:{...h[ke],[p]:t.id},[Ae]:ea({pendingWrites:r??[],taskId:C,currentTaskInput:S,resumeMap:i.configurable?.[Ar],namespaceHash:Tt(T),pendingWritesIndex:o.pendingWritesIndex}),[sr]:t.channel_values[or],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:[Ds,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 im(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(De(o,{metadata:T,tags:p.tags,store:c.store??o.store}),{runName:t,callbacks:h?.getChild(`graph:step:${l}`),configurable:{[zr]:S,[Se]:_=>Qi(P=>O.push(...P),i,_),[Ie]:(_,P=!1)=>vn(n,a,{name:t,writes:O,triggers:v,path:C},_,P),[We]:u??d.__pregel_checkpointer,[ke]:{...d[ke],[y]:n.id},[Ae]:ea({pendingWrites:s??[],taskId:S,currentTaskInput:e.input,resumeMap:o.configurable?.[Ar],namespaceHash:Tt(k)}),[sr]:n.channel_values[or],[Fn]: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 ty(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]=$r(t,i,!1)}catch(a){if(a.name===W.unminifiable_name)return;throw a}else if(i in t)try{n[s]=$r(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=$r(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 am(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 xr(e.node,r)}function ea({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 _s={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},ys=(e,t)=>`${e.start}${t}${e.end}`;function ry(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=Of(e.tags);return r!=null&&(t.tags=r),Object.keys(t).length>0?t:void 0}function*ra(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=ry(s);c!=null&&(o.metadata=c),yield o}}function ny(e){return typeof e!="object"||e===null?!1:"$writes"in e&&Array.isArray(e.$writes)}function om(e){let t={};for(let[r,n]of e){let s=String(r);if(s in t){let i=ny(t[s])?t[s].$writes:[t[s]];i.push(n),t[s]={$writes:i}}else t[s]=n}return t}function*cm(e,t){for(let[{id:r,name:n,config:s},i]of e)s?.tags?.includes("langsmith:hidden")||(yield{id:r,name:n,result:om(i.filter(([a])=>Array.isArray(t)?t.includes(a):a===t)),interrupts:i.filter(a=>a[0]===Y).map(a=>a[1])})}function*lm(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(Ji))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?om(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 um(e,t,r){console.log([`${ys(_s.blue,`[${e}:checkpoint]`)}`,`\x1B[1m State at the end of step ${e}:\x1B[0m
|
|
193
|
+
`,JSON.stringify(ut(t,r),null,2)].join(""))}function bs(e,t){let r=t.length;console.log([`${ys(_s.blue,`[${e}:tasks]`)}`,`\x1B[1m Starting step ${e} with ${r} task${r===1?"":"s"}:\x1B[0m
|
|
194
|
+
`,t.map(n=>`- ${ys(_s.green,String(n.name))} -> ${JSON.stringify(n.input,null,2)}`).join(`
|
|
195
|
+
`)].join(""))}function hm(e,t,r){let n={};for(let[s,i]of t)r.includes(s)&&(n[s]||(n[s]=[]),n[s].push(i));console.log([`${ys(_s.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])=>`- ${ys(_s.yellow,s)} -> ${i.map(a=>JSON.stringify(a)).join(", ")}`).join(`
|
|
197
|
+
`)].join(""))}var na=class extends Pn{_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 Pn{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}}},mm=class extends qt{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 sy(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 iy(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 pm(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 fm(e){let t={...e,checkpoint:ic(e.config),parent_checkpoint:ic(e.parentConfig),config:pm(e.config),parent_config:pm(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 dm(e){let t=new TextEncoder;return new ReadableStream({async start(r){let n=s=>{r.enqueue(t.encode(`event: ${s.event}
|
|
198
|
+
data: ${sy(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:fm(l.payload)})}a==="checkpoints"&&(c=fm(o)),n({event:i?.length?`${a}|${i.join("|")}`:a,data:c})}}catch(s){n({event:"error",data:iy(s)})}r.close()}})}function gm(...e){return new ac({passthroughFn:t=>{let r=t[1]==="checkpoints"&&mn(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 _m=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 sa=Symbol.for("INPUT_DONE"),cc=Symbol.for("INPUT_RESUMING"),ay=25;function ym(e){if(!(e==null||typeof e!="object")){if(re.isInstance(e)){let t=e;t.id==null&&(t.id=Cn(),t.lc_kwargs!=null&&(t.lc_kwargs.id=t.id));return}if(Array.isArray(e)){for(let t of e)ym(t);return}}}function bm(e){return e===void 0||e===""?[]:e.split("|")}function oy(e){if(!e)return[];let t="";for(let r of Object.keys(e))r!==""&&r.length>t.length&&(t=r);return bm(t)}var cy=class extends Ni{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}},vm=class wm{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)}async _awaitCheckpointerPromises(){await Promise.all([...this.checkpointerPromises])}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=sm,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 cy(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=gm(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=bm(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[Ir]):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 pn(t.channelSpecs,m,{saver:t.checkpointer,config:c}),O=(d.step??0)+1,x=O+(r.recursionLimit??ay)+1,_={...m.channel_versions},P=t.store?new Oi(t.store):void 0;return P&&await P.start(),new wm({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 ls)&&(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,am(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)&&ym(l)}let a=le(this.checkpointConfig,{[Ue]:this.config.configurable?.checkpoint_ns??"",[ir]: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(pr(xt(Xf(this.outputKeys,[[s,r]],n),"updates")));n||this._emit(pr(xt(cm([[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(![sa,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)&&Or(c)&&this._deltaChannelsWithOverwrite.add(o)}let a=await ct(xt(Xi(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.durability==="sync"&&await this._awaitCheckpointerPromises(),this._emitValuesWithCheckpointMeta(a),gs(this.checkpoint,this.interruptAfter,s))throw this.status="interrupt_after",new Nt;this.config.configurable?.__pregel_resuming!==void 0&&delete this.config.configurable?.[Ir]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;this.tasks=dr(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(lm(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(gs(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(ra(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(pr(xt(Xi(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&&gs(this.checkpoint,this.interruptAfter,[t])){this.toInterrupt.push(t);return}let s=ta([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&&gs(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}(this.stream.modes.has("tasks")||this.stream.modes.has("debug"))&&this._emit(pr(xt(ra([s]),"tasks"))),this.debug&&bs(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=im(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(pr(xt(ra([s]),"tasks"))),this.debug&&bs(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([nr,{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(Ki)&&(this.config.configurable??={},this.config.configurable[Ar]=this.input.resume),l&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let u={};for(let[h,p,m]of Yf(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(Xi(this.outputKeys,!0,this.channels),"values"));c?this.input=cc:a&&(await this._putCheckpoint({source:"input"}),this.input=sa),this._emitValuesWithCheckpointMeta(u)}else{let l=await ct(Yi(t,this.input));if(l.length>0){let u=dr(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)Or(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=sa}else if("__pregel_resuming"in(this.config.configurable??{}))this.input=sa;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 _m(u)}this.config=le(this.config,{[Ir]: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=oy(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=bn(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?Pi(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=Pi(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,{[ir]:void 0});s=le(this._initialCheckpointConfig,{[ir]: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??"",[ir]:s.configurable?.[ir]}),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??"",[ir]: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 ly(e){return ee(e?.message)}function Sm(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 km=class extends qt{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]=Sm(a,i,o))}handleLLMNewToken(e,t,r,n,s,i){let a=i?.chunk;this.emittedChatModelRunIds[r]=!0,this.metadatas[r]!==void 0&&(ly(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]=Sm(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 Cm(e){if("response_metadata"in e&&typeof e.response_metadata=="object"&&e.response_metadata!=null)return e.response_metadata}function Em(e){if("usage_metadata"in e&&typeof e.usage_metadata=="object"&&e.usage_metadata!=null)return e.usage_metadata}function uy(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 hy(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 Tm=class extends qt{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:uy(c)},r);let h=hy({...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",...Em(t)!=null?{usage:Em(t)}:{},...Cm(t)!=null?{responseMetadata:Cm(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)||Tn.isInstance(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(re.isInstance(l)||Tn.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 py=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}},fy=class extends qt{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 my(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 fy(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 xm(e,t,r,n){let s=new py(r.refreshOn??"auto"),i=new AbortController,{signal:a,dispose:o}=mr(t.signal,i.signal),c=my({...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 dy=[400,401,402,403,404,405,406,407,409],gy=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&&dy.includes(+t)||e?.error?.code==="insufficient_quota")};async function ia(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 xm(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,ba(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=Nf(y);a.command=new je({...a.command,graph:b})}}if(cr(a)||s===void 0||(i+=1,i>=(s.maxAttempts??3))||!(s.retryOn??gy)(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,{[Ir]:!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 _y(){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 Im=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)||cr(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)||cr(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}=mr(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=_y(),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=mr(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]=ia(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&&!cr(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]=ia(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):cr(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):(e.writes.push([nr,{message:t.message,name:t.name}]),this._shouldRouteToErrorHandler(e)&&(e.writes.push([Ln,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([jn,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 Qf({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===ar),p=l.writes.filter(([m])=>m===nr);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=ia(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 Am({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`)}function yy(e){return Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1])}var pc=class Om 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 Om({unique:this.unique,accumulate:this.accumulate});return typeof t>"u"?r:yy(t)?(r.seen=new Set(t[0]),r.values=[...t[1]],r):(r.values=[...t],this.unique&&(r.seen=new Set(r.values)),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.unique?[[...this.seen],[...this.values]]:[...this.values]}isAvailable(){return this.values.length!==0}};function by(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 Nm=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)}},vy=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)}},aa=class extends vy{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=De(this.config,r),s=[...this.streamTransformers,...t??[]];return new this.constructor({...this,config:n,streamTransformers:s})}validate(){Am({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=Ji(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 pn(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(dr(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__",Pr].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:fr(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 Mr("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=Fi(n);for await(let[o,c]of this.getSubgraphsAsync(a,!0))if(o===a)return await c.getState(jr(e,{[We]:r}),{subgraphs:t?.subgraphs})}let s=De(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 Mr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_checkpointer===void 0){let i=Fi(n);for await(let[a,o]of this.getSubgraphsAsync(i,!0))if(a===i){yield*o.getStateHistory(jr(e,{[We]:r}),t);return}}let s=De(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 Mr("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=Fi(n);for await(let[,o]of this.getSubgraphsAsync(a,!0))return await o.bulkUpdateState(jr(e,{[We]:r}),t);throw new Error(`Subgraph "${a}" not found`)}let s=async(a,o)=>{let c=this.config?De(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=jr(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),d=c.metadata??{};l?.config.configurable&&(m=jr(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 fr(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 pn(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=dr(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__",Pr].includes(M)||P in x&&x[P].writes.push([M,F]);Re(u,b,Object.values(x),r.getNextVersion.bind(r),this.triggerToNodes)}return fr(await r.put(m,at(u,b,p),{...d,source:"update",step:p+1,parents:l?.metadata?.parents??{}},bn(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??jr(l.config,{checkpoint_id:void 0}),_,{source:"fork",step:p+1,parents:l.metadata?.parents??{}},{});if(x(y)){let M=dr(_,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(fr(P,l.metadata),Object.values(j).flat())}return fr(P,l.metadata)}if(v==="__input__"){if(o.length>1)throw new $("Cannot apply multiple updates when updating as input");let x=await ct(Yi(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??{}},bn(h,u.channel_versions));return await r.putWrites(P,x,yt(dt,u.id)),fr(P,l?l.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&l?.pendingWrites!==void 0&&l.pendingWrites.length>0){let x=dr(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__",Pr].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])=>Ii(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)=>vn(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=bn(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 fr(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=Di()?.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:mr(t?.signal,r.signal).signal},i=await super.stream(e,s);return new na(t?.encoding==="text/event-stream"?dm(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 na(by(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:mr(t?.signal,n.signal).signal};return new na(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=fn(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 Tm(z=>C.push(z)):new km(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 mm(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=Di()?.configurable?.[Ue]?.split("|").slice(0,-1);C.push([G??[],"custom",j])},p.interrupt??=this.userInterrupt??Zo,p.serverInfo==null&&(p.serverInfo=wy(p)),p.control??=new Do;let T={tracerInheritableMetadata:Cy(p)},O=await(await Le._configureSync(p?.callbacks,void 0,p?.tags,void 0,p?.metadata,void 0,T))?.handleChainStart(this.toJSON(),Zf(e,"input"),o,void 0,void 0,void 0,p?.runName??this.getName()),x=hn(this.channels),_,P,F=(async()=>{try{_=await vm.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 Im({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"&&mn(_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"?Nr(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&&um(t.checkpointMetadata.step,t.channels,this.streamChannelsList),n&&bs(t.step,Object.values(t.tasks)),await r.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(a,o)=>{n&&hm(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 ya([`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 wy(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 Sy=new Set(["key","token","secret","password","auth"]);function ky(e,t){let r=e.toLowerCase(),n=!1;for(let s of Sy)if(r.includes(s)){n=!0;break}return e.startsWith("__")||!(typeof t=="string"||typeof t=="number"||typeof t=="boolean")||n}function Cy(e){let t=e.configurable;if(!t)return;let r=e.context,n={};for(let[s,i]of Object.entries(t)){if(r!=null&&Object.prototype.hasOwnProperty.call(r,s)&&Object.is(r[s],i)){s.startsWith("__")||(n[s]=void 0);continue}ky(s,i)||(n[s]=i)}return Object.keys(n).length>0?n:void 0}var ht=class Mm extends ie{lc_graph_name="EphemeralValue";guard;value=[];constructor(t=!0){super(),this.guard=t}fromCheckpoint(t){let r=new Mm(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:ds(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 va([`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 aa{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]=Nm.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 ma,n={[Z]:r.addNode({schema:tr.any()},Z)},s={},i={};t&&(i=Object.fromEntries((await ct(this.getSubgraphsAsync())).filter(l=>Pm(l[1]))));let a=[];function o(l,u,h,p=!1){if(u==="__end__"&&s.__end__===void 0&&(s[Q]=r.addNode({schema:tr.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&&!ha(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 Rm(this.builder.nodes,a,o),r}getGraph(e){let t=e?.xray,r=new ma,n={[Z]:r.addNode({schema:tr.any()},Z)},s={},i={};t&&(i=Object.fromEntries(pr(this.getSubgraphs()).filter(l=>Pm(l[1]))));let a=[];function o(l,u,h,p=!1){if(u==="__end__"&&s.__end__===void 0&&(s[Q]=r.addNode({schema:tr.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&&!ha(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 Rm(this.builder.nodes,a,o),r}};function Pm(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function ue(e){return e==="subgraph"?`"${e}"`:e}function Rm(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 Ey(e){return Bt(e)&&gc(e)}function gr(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 Ty=e=>e!=null&&e.lc_graph_name==="DeltaChannel",oa=class Lm 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 Lm(this.reducer,{snapshotFrequency:this.snapshotFrequency,initialValueFactory:this.initialValueFactory});return t===void 0?r.value=this.initialValueFactory():Ea(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(Or(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:!Ty(t)||this.snapshotFrequency!==t.snapshotFrequency?!1:this.reducer===t.reducer}};var _c=Symbol.for("langgraph.channel.missing"),ca=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 _r=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),yc=class Fm extends ie{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let r=new Fm(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(!_r(this.names,this.seen))throw new W}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&_r(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&_r(this.names,this.seen)}},bc=class jm 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 jm(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||!_r(this.names,this.seen))throw new W}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&_r(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&_r(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&_r(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 $m=Symbol.for("langgraph.state.untracked_value"),Br=class{[$m]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&$m 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 oa(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(Br.isInstance(r)){let n=r.schema?Vt(r.schema):void 0;e[t]=new ca({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=gr(n.valueSchema),n.jsonSchemaExtra&&(s={...s??{},...n.jsonSchemaExtra})):Br.isInstance(n)?s=n.schema?gr(n.schema):void 0:Bt(n)&&(s=gr(n)),s){e[r]=s;let i=!1;Ht.isInstance(n)||Ut.isInstance(n)?i=Vt(n.valueSchema)!==void 0:Br.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=gr(r.inputSchema),r.jsonSchemaExtra&&(n={...n??{},...r.jsonSchemaExtra})):Br.isInstance(r)?n=r.schema?gr(r.schema):void 0:Bt(r)&&(n=gr(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 Br.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 xy="__remove_all__";function yr(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=Cn(),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=Cn(),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 Bm=tr.custom().default(()=>[]),Vm=tr.custom(),Iy=new Ut(Bm,{inputSchema:Vm,reducer:yr,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}}),Ay=new Ht(Bm,{inputSchema:Vm,reducer:kc,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var Oy=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=Tr(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(Tr(e)).map(([a,o])=>{let c=this.get(o),l=t.withReducerSchema?c?.reducer?.schema??o:o;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let u=Er(l)??Er(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=Zt(s)),n.set(e,s),this._extensionCache.set(r,n),s}},vs=new Oy;function Um(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 vs.extend(r,()=>t),r}else return vs.extend(e,()=>t),e}function Vr(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 Hm(e){if(typeof e!="object"||e==null)return!1;let t=e,r="state"in t&&Vr(t.state),n="stateSchema"in t&&Vr(t.stateSchema),s="input"in t&&Vr(t.input);return!(!r&&!n&&!s||"input"in t&&t.input!=null&&!Vr(t.input)||"output"in t&&t.output!=null&&!Vr(t.output))}var Gt="__root__",wn="__default_error_handler__",la=Symbol.for("langgraph.state.partial"),Cc=class extends mc{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=vs;_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 $n;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=la:this._inputRuntimeDefinition=la,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=rr(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?.[Fn];return e(t,n,r)},name:wn,trace:!1}),metadata:void 0,input:this._schemaDefinition,retryPolicy:void 0,cachePolicy:void 0,isErrorHandler:!0}}_normalizeToStateGraphInit(e,t){if(Hm(e)){if(be(t)||Ri.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(Vr(e)){if(be(t)||Ri.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(My(e))return{state:Ny(e.channels)};throw new $n}_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 $n("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?.[Fn];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:rr(i?.timeout),metadata:i?.metadata,input:a??this._schemaDefinition,subgraphs:ds(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(wn in this.nodes)throw new Error(`Cannot apply a default error handler: the reserved node name \`${wn}\` is already in use. setNodeDefaults({ errorHandler }) registers a node with that name; rename the conflicting node.`);this.nodes[wn]=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?wn:void 0})}finally{c!==void 0&&delete this.nodes[wn]}}_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 Wm({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,_a,Gm(),{withReader:!1});for(let[b]of Object.entries(this.nodes))d.attachBranch(b,_a,Gm(),{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 Ny(e){let t={};for(let[r,n]of Object.entries(e))r===Gt?t[r]=Li(n):t[r]=Li(n);return t}var Wm=class extends dc{description;_metaRegistry=vs;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(Tr(l)));if(c.filter(([m])=>u.has(m)).length===0)return c;let h=Zt(this._metaRegistry.getExtendedChannelSchemas(l,{withReducerSchema:!0})),p=Zt(l);return c.map(([m,d])=>{if(!u.has(m))return[m,d];let[y,v]=tt(d);if(y){let S=Xt(p,{[m]:v});return[m,Object.prototype.hasOwnProperty.call(S,m)?{[mt]:S[m]}:d]}let b=Xt(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 Lo: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=>qf.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===la&&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===la)return be(r)?Zt(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=Xt(n,i);s.update=Object.fromEntries(Object.keys(i).map(o=>[o,a[o]]))}return s}return n!=null?Xt(n,e):e}isInterrupted(e){return Nr(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return be(t)&&Xt(t,e),e}};function My(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function Py(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 Gm(){return new fc({path:new fe({func:Py,tags:[se],trace:!1,recurse:!1,name:"<control_branch>"})})}var Ry=class extends Cc{constructor(){super({channels:{__root__:{reducer:yr,default:()=>[]}}})}};function Ly(e,t){let{stateKey:r,...n}=t??{},s=fn(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 Dy(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=rr(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)=>nm({func:t,name:n,retry:s,cache:o,timeout:i},...c)}var Km=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=rr(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=rm(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:or,value:Be,mapper:p}],[se])]});return new aa({name:n,checkpointer:s,nodes:{[n]:m},channels:{[Z]:new ht,[Q]:new ot,[or]:new ot},inputChannels:Z,outputChannels:Q,streamChannels:Q,streamMode:c,store:i,cache:a})};Km.final=function({value:t,save:r}){return{value:t,save:r,__lg_type:"__pregel_final"}};function Fy(){return oe.getRunnableConfig().configurable?.[sr]}var jy=hs.Root({messages:hs({reducer:yr,default:()=>[]})}),zm={reducer:{fn:yr},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},$y=Qt.object({messages:Um(Qt.custom(),zm)});function By(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,ga as d,Ou as e,xr as f,ce as g,Zm as h,Nr as i,je as j,pe as k,Ke as l,Bs as m,ya as n,Mr as o,Vs as p,Us as q,Nt as r,Hs as s,Gs as t,ed as u,Ws as v,ba as w,cr as x,Mt as y,Ks as z,td as A,zs as B,W as C,$ as D,rd as E,va as F,nd as G,$n as H,sd as I,Uu as J,Xs as K,Zs as L,Va as M,Ah as N,Oh as O,dd as P,gd as Q,Ha as R,lr as S,si as T,ur as U,Id as V,nt as W,ao as X,sn as Y,yg as Z,Tg as _,Vp as $,Pg as aa,Dr as ba,it as ca,xi as da,kf as ea,un as fa,Oi as ga,Tf as ha,ie as ia,Ft as ja,hs as ka,m_ as la,d_ as ma,Di as na,g_ as oa,Do as pa,Fo as qa,mn as ra,jo as sa,Je as ta,$i as ua,Uo as va,ps as wa,fs as xa,Ho as ya,Go as za,Bi as Aa,zo as Ba,jf as Ca,qo as Da,Zo as Ea,fe as Fa,mc as Ga,Bt as Ha,Ey as Ia,gr as Ja,Vt as Ka,oa as La,ca as Ma,Ut as Na,Br as Oa,Ht as Pa,pt as Qa,xy as Ra,yr as Sa,kc as Ta,Iy as Ua,Ay as Va,vs as Wa,Um as Xa,Cc as Ya,Wm as Za,Ry as _a,Ly as $a,Dy as ab,Km as bb,Fy as cb,jy as db,zm as eb,$y as fb,By as gb};
|