@arcgis/ai-components 5.2.0-next.110 → 5.2.0-next.111
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/BaseAgent.js +1 -1
- package/dist/agent-utils/FunctionAgent.js +1 -1
- package/dist/agent-utils/LLMAgent.d.ts +4 -5
- package/dist/agent-utils/LLMAgent.js +59 -59
- package/dist/agent-utils/WorkflowAgent.js +1 -1
- package/dist/agent-utils/index.js +1 -1
- package/dist/agent-utils/middlewares/humanInTheLoop.js +1 -1
- package/dist/agent-utils/middlewares/middleware.js +1 -1
- package/dist/agent-utils/middlewares/trace.js +6 -6
- package/dist/agent-utils/middlewares/types.js +1 -1
- package/dist/agent-utils/tools/FunctionTool.js +1 -1
- package/dist/agent-utils/workflows/ConditionalWorkflow.js +1 -1
- package/dist/agent-utils/workflows/LoopWorkflow.js +1 -1
- package/dist/agent-utils/workflows/ParallelWorkflow.js +1 -1
- package/dist/agent-utils/workflows/RouterWorkflow.js +1 -1
- package/dist/agent-utils/workflows/SequentialWorkflow.js +1 -1
- package/dist/agent-utils/workflows/SwitchWorkflow.js +1 -1
- package/dist/agentic-workflow/jsonTypes.d.ts +48 -8
- package/dist/agentic-workflow/nodes/HumanInTheLoopNode.d.ts +37 -0
- package/dist/agentic-workflow/types.d.ts +1 -1
- package/dist/agents/runtime/skill/createSkillAgent.d.ts +0 -1
- package/dist/agents/runtime/skill/createSkillAgent.js +50 -50
- package/dist/agents/runtime/skill/types.d.ts +2 -10
- package/dist/agents/runtime/skill/types.js +1 -1
- package/dist/agents/tools/filter/clearFilters/adapter.js +1 -1
- package/dist/agents/tools/filter/resetMap/adapter.js +1 -1
- package/dist/agents/tools/filter/setFeatureEffect/adapter.js +1 -1
- package/dist/agents/tools/help/listFields/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToAddress/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToBookmark/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToFeatures/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToFullExtent/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToHomeExtent/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToLayer/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToScale/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToViewpoint/adapter.js +1 -1
- package/dist/agents/tools/navigation/goToZoom/adapter.js +1 -1
- package/dist/agents/tools/query/getAttribute/adapter.js +1 -1
- package/dist/agents/tools/query/getStatistics/adapter.js +1 -1
- package/dist/agents/tools/query/getTopFeatures/adapter.js +1 -1
- package/dist/agents/tools/query/queryFeatures/adapter.js +1 -1
- package/dist/agents/tools/search/findRelevantFields/adapter.js +1 -1
- package/dist/agents/tools/search/findRelevantLayers/adapter.js +1 -1
- package/dist/agents/tools/shared/resolveToolArtifact.js +1 -1
- package/dist/agents/tools/shared/types.js +1 -1
- package/dist/cdn/2BNQ6A6J.js +2 -0
- package/dist/cdn/{FV6FHLYW.js → 2MWUBKWI.js} +2 -2
- package/dist/cdn/{GW3IVAAZ.js → 2O4DON37.js} +2 -2
- package/dist/cdn/{LL324IL6.js → 2W7LK4HA.js} +2 -2
- package/dist/cdn/33PB7ALY.js +2 -0
- package/dist/cdn/{FK2CVSXW.js → 33SFAZQG.js} +4 -4
- package/dist/cdn/{LLY5A2E2.js → 34O57OGV.js} +1 -1
- package/dist/cdn/{OALQBAZR.js → 3UEKINYC.js} +2 -2
- package/dist/cdn/434TAA3J.js +2 -0
- package/dist/cdn/{ZWIKFBOU.js → 4IU63OWQ.js} +2 -2
- package/dist/cdn/{XRVGYRXL.js → 5A355PGH.js} +2 -2
- package/dist/cdn/{TB2GJALS.js → 5HBAJ57P.js} +2 -2
- package/dist/cdn/{7Y43R7QJ.js → 5MK44FNO.js} +2 -2
- package/dist/cdn/{LXIKAXUT.js → 5Q2XRQS6.js} +2 -2
- package/dist/cdn/{UAZPINUQ.js → 6ECRQVHY.js} +2 -2
- package/dist/cdn/{BBEGLIZC.js → 6OOZSZRJ.js} +2 -2
- package/dist/cdn/6OUIUXAJ.js +2 -0
- package/dist/cdn/{Y4TYL2AL.js → 6P44KOKX.js} +2 -2
- package/dist/cdn/{LBTGOMCT.js → 73TMZQI5.js} +2 -2
- package/dist/cdn/{BJMGT6GV.js → 74CVYM72.js} +2 -2
- package/dist/cdn/{PJPP6LOS.js → 7EHOFQ2P.js} +2 -2
- package/dist/cdn/{24EIZVUM.js → 7KSFIRXB.js} +2 -2
- package/dist/cdn/{STOGCXJH.js → AHCXG7XF.js} +2 -2
- package/dist/cdn/{VLPELJUS.js → AOVJ34QE.js} +2 -2
- package/dist/cdn/{3KNLFIM3.js → APFZY4PI.js} +2 -2
- package/dist/cdn/{KBSXHSBX.js → AVRS6UCQ.js} +2 -2
- package/dist/cdn/{YOW3YKWR.js → AVZ5Y6BK.js} +2 -2
- package/dist/cdn/{477I66FH.js → AXTQU5YL.js} +11 -11
- package/dist/cdn/BBPD2AS7.js +2 -0
- package/dist/cdn/{HV7MVIQV.js → BFZ5S7NF.js} +2 -2
- package/dist/cdn/{HMMYCSOK.js → BL273EGZ.js} +2 -2
- package/dist/cdn/C7JPWFZE.js +2 -0
- package/dist/cdn/{KKCLHXHG.js → CCC6LBMY.js} +1 -1
- package/dist/cdn/{NNPA3NLK.js → CEKOEHB3.js} +2 -2
- package/dist/cdn/{W54XYT2A.js → CFAC4FN3.js} +2 -2
- package/dist/cdn/{53KIFJFA.js → COH3QXWG.js} +2 -2
- package/dist/cdn/{CX2HJ67C.js → DB2TFPIO.js} +2 -2
- package/dist/cdn/{EYGZJKVD.js → DE26DAW5.js} +2 -2
- package/dist/cdn/DG27JEYG.js +50 -0
- package/dist/cdn/DKA6PSYN.js +2 -0
- package/dist/cdn/{65LCK3GG.js → DQ2Z65UO.js} +2 -2
- package/dist/cdn/DWH23NJN.js +2 -0
- package/dist/cdn/EDXTPEEU.js +2 -0
- package/dist/cdn/{6KWGSXIN.js → ENM3L4AC.js} +2 -2
- package/dist/cdn/{XV7RMYLR.js → EVMIYZWD.js} +2 -2
- package/dist/cdn/{FHBRXZLV.js → EYOWRGDP.js} +2 -2
- package/dist/cdn/{45BDE3MG.js → EYY367WR.js} +2 -2
- package/dist/cdn/{27CK3JHY.js → F5NIRETW.js} +2 -2
- package/dist/cdn/{TFAJNKBC.js → FCI6M62J.js} +2 -2
- package/dist/cdn/{V4PJMCJZ.js → FDOMMK2M.js} +1 -1
- package/dist/cdn/{4OI4QEV7.js → FS7GXTTQ.js} +2 -2
- package/dist/cdn/{IHUWQOMK.js → FYZATVB3.js} +2 -2
- package/dist/cdn/{3PPXAIRE.js → H6P3WP5D.js} +2 -2
- package/dist/cdn/HHP5YLUI.js +2 -0
- package/dist/cdn/HIAQARIQ.js +2 -0
- package/dist/cdn/HMIDFTEI.js +2 -0
- package/dist/cdn/{4CFCV47G.js → HMNBUGH2.js} +2 -2
- package/dist/cdn/HR6GWPKX.js +2 -0
- package/dist/cdn/{V266DJ5V.js → ICBIUFK7.js} +2 -2
- package/dist/cdn/{BTOBEN7Q.js → IH26MIYY.js} +2 -2
- package/dist/cdn/{QAX6UF4L.js → IHP25JWI.js} +2 -2
- package/dist/cdn/{M2U456J5.js → IYLFJCJ2.js} +4 -4
- package/dist/cdn/{JMXXRRKQ.js → J6A4AS7E.js} +2 -2
- package/dist/cdn/{QTEPFTAU.js → JEBRN3EU.js} +2 -2
- package/dist/cdn/{G24MNC7D.js → JICNSK6Y.js} +2 -2
- package/dist/cdn/JQYLMTDP.js +2 -0
- package/dist/cdn/{275FFTBE.js → K5JVB6FU.js} +2 -2
- package/dist/cdn/K7XWGSLN.js +2 -0
- package/dist/cdn/{M3KKORBG.js → K7YQIJFT.js} +2 -2
- package/dist/cdn/KH4V4I3W.js +2 -0
- package/dist/cdn/KMLJS2VW.js +2 -0
- package/dist/cdn/{HNTSDY3J.js → LAVFUDUG.js} +2 -2
- package/dist/cdn/{L3BTURBA.js → LK7ZIQW6.js} +2 -2
- package/dist/cdn/{ZJWR4W2S.js → LOQ2PKV5.js} +58 -58
- package/dist/cdn/{X42ACC66.js → LXPGQNXQ.js} +2 -2
- package/dist/cdn/{TXZQZR3I.js → MJSIYEWN.js} +2 -2
- package/dist/cdn/{CSE6BHOJ.js → MWYBF3F3.js} +2 -2
- package/dist/cdn/{FDRAKF5D.js → MXTXJKFE.js} +2 -2
- package/dist/cdn/{7DOYUO7L.js → NEV6OZN3.js} +2 -2
- package/dist/cdn/{NBDOPGSN.js → O4NVW75A.js} +2 -2
- package/dist/cdn/{ZA7ZU2F7.js → OKVLGJAG.js} +2 -2
- package/dist/cdn/{SUC2MIGE.js → OMF6ITSG.js} +2 -2
- package/dist/cdn/{A6LBMS7A.js → ONQ6JSBJ.js} +1 -1
- package/dist/cdn/{CKUUYQLO.js → OZAZ277H.js} +2 -2
- package/dist/cdn/{2UJPYWWZ.js → P4GFYBBO.js} +2 -2
- package/dist/cdn/{XNUWVZN7.js → P4XZMBU5.js} +2 -2
- package/dist/cdn/{L2HLFWCV.js → POL6HKCG.js} +3 -3
- package/dist/cdn/{AP3KPOHN.js → POZYDAU2.js} +2 -2
- package/dist/cdn/{FTTLFIBV.js → PQ2DPOFM.js} +2 -2
- package/dist/cdn/{JUNMTIB3.js → PYGX4HN7.js} +2 -2
- package/dist/cdn/{ZY3JQCZQ.js → QNXI3WOF.js} +36 -36
- package/dist/cdn/{4VBOTWC3.js → QRMRID2M.js} +2 -2
- package/dist/cdn/{TLPZELG3.js → R74ZHFA6.js} +1 -1
- package/dist/cdn/{CAOMMQSY.js → RFVZ7KCG.js} +1 -1
- package/dist/cdn/{OF3TAARW.js → RHYNE5OE.js} +1 -1
- package/dist/cdn/{4YOG5F3W.js → RLEHNAIA.js} +1 -1
- package/dist/cdn/{RSM7MEVT.js → ROQGPAR5.js} +2 -2
- package/dist/cdn/RXF2NUOL.js +2 -0
- package/dist/cdn/{MZUDIQQH.js → SDWWUWAF.js} +2 -2
- package/dist/cdn/SHI76XUV.js +2 -0
- package/dist/cdn/SITY6L4S.js +2 -0
- package/dist/cdn/STHBRTTD.js +2 -0
- package/dist/cdn/{7UBTNDV6.js → SXM4NUT5.js} +2 -2
- package/dist/cdn/{XVJFPZTW.js → SZRJTQ54.js} +2 -2
- package/dist/cdn/TO2NY7EA.js +2 -0
- package/dist/cdn/{4IWDBEMN.js → TPULIO6I.js} +2 -2
- package/dist/cdn/TVEEQSMF.js +2 -0
- package/dist/cdn/TWU3QXAS.js +2 -0
- package/dist/cdn/{EGRRZTF6.js → TYATJUNF.js} +2 -2
- package/dist/cdn/UCTC4JN4.js +3 -0
- package/dist/cdn/{HI3XKFHD.js → UDRKUVZP.js} +2 -2
- package/dist/cdn/{JYNHWJUZ.js → UHEYPSOR.js} +2 -2
- package/dist/cdn/{VGLBH473.js → UHICISBZ.js} +2 -2
- package/dist/cdn/UO5PBOQR.js +2 -0
- package/dist/cdn/{BVUCNXC5.js → UZLQALHY.js} +1 -1
- package/dist/cdn/{SNG3WODY.js → V6HOUZPZ.js} +2 -2
- package/dist/cdn/{V52GSTOC.js → V7Y22FRP.js} +2 -2
- package/dist/cdn/{I72ST4JR.js → VAXH6RUQ.js} +2 -2
- package/dist/cdn/{NV7CL4S3.js → VNLSYVPE.js} +2 -2
- package/dist/cdn/VR3CF3ZY.js +2 -0
- package/dist/cdn/{VK6CCPTG.js → VWP2B4LB.js} +2 -2
- package/dist/cdn/VXFQANGJ.js +2 -0
- package/dist/cdn/WKZHFSH3.js +2 -0
- package/dist/cdn/{OXC2WP7W.js → WSWB3B7B.js} +2 -2
- package/dist/cdn/{EK3PM4L5.js → WVP73XWD.js} +2 -2
- package/dist/cdn/{SJMAKF4P.js → WXQ26G5Q.js} +2 -2
- package/dist/cdn/{2F4TPWZQ.js → XQ3NBBQ3.js} +1 -1
- package/dist/cdn/{VXLKTQ36.js → YHWYTHID.js} +2 -2
- package/dist/cdn/{XOTPSCNF.js → YIZ7PR2G.js} +2 -2
- package/dist/cdn/{T6W6F4TF.js → Z5XQLSYH.js} +2 -2
- package/dist/cdn/{Y6CV2NZR.js → ZFOG3KXV.js} +2 -2
- package/dist/cdn/{FPH52WOH.js → ZU2FHVNK.js} +2 -2
- package/dist/cdn/agent-utils/index.js +2 -2
- package/dist/cdn/agent-utils/middlewares/humanInTheLoop.js +2 -3
- package/dist/cdn/agent-utils/middlewares/middleware.js +2 -2
- package/dist/cdn/agent-utils/middlewares/trace.js +2 -2
- package/dist/cdn/index.js +2 -2
- package/dist/chunks/BaseWorkflow.js +1 -1
- package/dist/chunks/SKILL.js +1 -1
- package/dist/chunks/SKILL2.js +1 -1
- package/dist/chunks/SKILL3.js +1 -1
- package/dist/chunks/SKILL4.js +1 -1
- package/dist/chunks/adapter.js +1 -1
- package/dist/chunks/aiFactory.js +56 -50
- package/dist/chunks/arcgisKnowledgeGraph.js +2 -2
- package/dist/chunks/arcgisToolRegistry.js +1 -1
- package/dist/chunks/arcgis_knowledge_current_lc_context.js +1 -1
- package/dist/chunks/arcgis_knowledge_current_map_context.js +1 -1
- package/dist/chunks/arcgis_knowledge_cypher_query_prompt.js +1 -1
- package/dist/chunks/arcgis_knowledge_lucene_generation_prompt.js +1 -1
- package/dist/chunks/arcgis_knowledge_summarize_result_prompt.js +1 -1
- package/dist/chunks/arcgis_knowledge_tool_prompt.js +1 -1
- package/dist/chunks/baseAgentState.js +1 -1
- package/dist/chunks/converterUtils.js +1 -1
- package/dist/chunks/dataExplorationAgent.js +1 -1
- package/dist/chunks/data_explore_filter_prompt.js +1 -1
- package/dist/chunks/data_explore_query_prompt.js +1 -1
- package/dist/chunks/embeddings.worker.js +1 -1
- package/dist/chunks/fetchAgentContext.js +1 -1
- package/dist/chunks/fetchService.js +1 -1
- package/dist/chunks/fieldStatistics.js +1 -1
- package/dist/chunks/field_descriptions_prompt.js +1 -1
- package/dist/chunks/formatFeatureAttributes.js +1 -1
- package/dist/chunks/generateLayerDescriptions.js +60 -63
- package/dist/chunks/graph.js +1 -1
- package/dist/chunks/helpAgent.js +1 -1
- package/dist/chunks/help_prompt.js +1 -1
- package/dist/chunks/index.js +1 -1
- package/dist/chunks/intent_prompt.js +1 -1
- package/dist/chunks/layerStylingGraph.js +1 -1
- package/dist/chunks/layer_descriptions_prompt.js +1 -1
- package/dist/chunks/layer_styling_prompt.js +1 -1
- package/dist/chunks/mergeWhereClauses.js +1 -1
- package/dist/chunks/navigationAgent.js +1 -1
- package/dist/chunks/navigation_intent_prompt.js +1 -1
- package/dist/chunks/navigation_tool_prompt.js +1 -1
- package/dist/chunks/orchestrator.js +1 -1
- package/dist/chunks/requireAgentServices.js +1 -1
- package/dist/chunks/resolvePointGeometryFilter.js +1 -1
- package/dist/chunks/runtime.js +1 -1
- package/dist/chunks/slottableRequestUtils.js +1 -1
- package/dist/chunks/state.js +26 -26
- package/dist/chunks/summarize_query_response_prompt.js +1 -1
- package/dist/chunks/useT9n.js +1 -1
- package/dist/chunks/utils.js +1 -1
- package/dist/chunks/utils2.js +1 -1
- package/dist/chunks/utils3.js +1 -1
- package/dist/components/arcgis-assistant/customElement.js +1 -1
- package/dist/components/arcgis-assistant-agent/customElement.js +362 -220
- package/dist/components/arcgis-assistant-chat/customElement.js +1 -1
- package/dist/components/arcgis-assistant-chat-entry/customElement.js +1 -1
- package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +1 -1
- package/dist/components/arcgis-assistant-help-agent/customElement.js +1 -1
- package/dist/components/arcgis-assistant-interrupt/customElement.js +1 -1
- package/dist/components/arcgis-assistant-interrupt-preview/customElement.js +1 -1
- package/dist/components/arcgis-assistant-knowledge-agent/customElement.js +1 -1
- package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-block/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-feedback/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-footer/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-loading/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-log/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-read-aloud/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-text/customElement.js +1 -1
- package/dist/components/arcgis-assistant-navigation-agent/customElement.js +1 -1
- package/dist/components/arcgis-assistant-speech-input/customElement.js +1 -1
- package/dist/components/arcgis-assistant-suggested-prompts/customElement.js +1 -1
- package/dist/components/arcgis-assistant-user-message/customElement.js +1 -1
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/index.js +1 -1
- package/dist/loader.js +1 -1
- package/dist/utils/index.js +3 -3
- package/package.json +9 -9
- package/dist/cdn/25MBI4PD.js +0 -2
- package/dist/cdn/2LVYAXHG.js +0 -44
- package/dist/cdn/2WXXSZP5.js +0 -2
- package/dist/cdn/5X23DDDZ.js +0 -2
- package/dist/cdn/AUCKEB52.js +0 -2
- package/dist/cdn/B3HXSEBN.js +0 -2
- package/dist/cdn/BTTCBEPW.js +0 -2
- package/dist/cdn/EXMEB4X2.js +0 -2
- package/dist/cdn/FLUI6GCU.js +0 -2
- package/dist/cdn/FRYS2PZJ.js +0 -2
- package/dist/cdn/FSLQCZRN.js +0 -2
- package/dist/cdn/HKIA5PWU.js +0 -2
- package/dist/cdn/I3SUE2TR.js +0 -2
- package/dist/cdn/KAX4A7SF.js +0 -2
- package/dist/cdn/LIRT72WY.js +0 -2
- package/dist/cdn/M5B6X46F.js +0 -2
- package/dist/cdn/NGR5NVZE.js +0 -2
- package/dist/cdn/PUZ6RAFQ.js +0 -2
- package/dist/cdn/ROS22KOA.js +0 -2
- package/dist/cdn/SBNNJ5WA.js +0 -2
- package/dist/cdn/SDX46GZY.js +0 -2
- package/dist/cdn/SI22EJLC.js +0 -2
- package/dist/cdn/SXYKNDOF.js +0 -2
- package/dist/cdn/SZ2L5556.js +0 -2
- package/dist/cdn/UGIHS7OA.js +0 -2
- package/dist/cdn/VT5EWFH7.js +0 -2
- package/dist/cdn/XZF7Y6B2.js +0 -2
- package/dist/cdn/Y4ZOB6UH.js +0 -2
- package/dist/cdn/YIXASZUW.js +0 -2
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
/* COPYRIGHT Esri - https://js.arcgis.com/
|
|
2
|
-
import{$ as In,$a as
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import{$ as In,$a as Pl,$b as er,A as re,Aa as bl,Ab as zl,Ac as Fs,B as Kc,Ba as ma,Bb as ql,Bc as Tu,C as zc,Ca as vl,Cb as Jl,Cc as xu,D as qc,Db as Yl,E as Jc,Ea as zt,Eb as Xl,F as Yc,Fa as wl,Fb as be,G as Cn,Ga as xs,Gb as Tr,H as Xc,Ha as Sl,Hb as Ps,I as ee,Ia as qt,Ib as Zt,J as It,Ja as kl,Jb as Zl,K as Zc,Ka as Cl,Kb as Ql,L as Qc,La as Gr,Lb as Rs,M as el,Ma as El,Mb as eu,N as tl,Na as Tl,Nb as tu,O as Ge,Oa as xl,Ob as ru,P as En,Pa as Il,Q as rl,Qa as Al,Qb as Qt,R as Ts,Ra as Le,Rb as nu,S as nl,Sa as da,Sb as Kr,Ta as oe,Tb as su,U as wr,Ua as Ol,V as Wt,Va as Is,Vb as iu,W as Kt,Wa as De,Wb as ve,X as Tn,Xa as At,Xb as au,Y as sl,Ya as he,Yb as ga,Z as il,Za as Ml,Zb as ou,_ as xn,_a as Nl,_b as H,a as A,aa as al,ab as Pn,ac as cu,b as Oc,ba as ol,bb as Ot,bc as lu,c as Ur,ca as xe,cc as et,da as An,db as Rl,dc as Ls,ea as cl,eb as Jt,ec as Fe,f as fa,fa as ll,fb as Ll,fc as uu,ga as Ze,gb as Dl,gc as hu,h as Mc,ha as Qe,hb as Wr,hc as we,i as ks,ia as Sr,ib as As,ic as Ds,j as Cs,ja as ul,jb as Cr,jc as pu,k as Nc,ka as hl,kb as Fl,kc as fu,l as Pc,la as pl,lb as jl,lc as mu,m as Es,ma as me,mb as $l,mc as du,n as Rc,na as fl,nb as Os,nc as gu,o as Lc,oa as ml,ob as Bl,oc as _a,p as Dc,pa as dl,pb as Yt,pc as _u,q as Fc,qa as gl,qb as Vl,qc as yu,r as jc,ra as kr,rb as Ul,rc as bu,s as $c,sa as _l,sb as Hl,sc as vu,t as Bc,ta as q,tb as Ms,tc as wu,u as Vc,ua as Hr,ub as Ns,uc as Su,v as Uc,va as On,vb as Gl,vc as ku,w as Hc,wa as de,wb as Xt,wc as Cu,x as Xe,xa as yl,xb as Er,xc as Eu,y as Gc,ya as Mn,yb as Wl,z as Wc,za as Nn,zb as Kl}from"./IYLFJCJ2.js";import{Dd as tr}from"./MWYBF3F3.js";function Iu(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=Iu(t.runTimeout,"runTimeout"),s=Iu(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__",js="__pregel_ns_writes";function Au(){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",Qm="__pregel_resume_value",Ar="__pregel_resume_map",Ae="__pregel_scratchpad",sr="__pregel_previous",ed="__pregel_durability",ir="checkpoint_id",Ue="checkpoint_ns",Ou="__pregel_node_finished",Fn="__pregel_node_error",ke="checkpoint_map",$s="__pregel_replay_state",Mu="__pregel_abort_signals",Y="__interrupt__",Oe="__resume__",jn="__no_writes__",ar="__return__",or="__previous__",se="langsmith:hidden";var ba="__self__",_t="__pregel_tasks",Me="__pregel_push",Bs="__pregel_pull",Ne="00000000-0000-0000-0000-000000000000",Nu=[se,dt,Y,Oe,nr,Ln,jn,Se,Ie,We,ed,Dn,Ir,zr,gt,Qm,Ae,sr,ke,Ue,ir,$s],ya=Symbol.for("langgraph.command"),Pu=class{[ya];constructor(e){this[ya]=e}};function Vs(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__",td=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 Mr(e){return!e||typeof e!="object"||!("__interrupt__"in e)?!1:Array.isArray(e[Y])}var je=class extends Pu{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 rd(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||!rd(e))r=e,t.set(e,r);else if(pe(e))r=new je(e),t.set(e,r);else if(Vs(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
3
|
|
|
4
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}},
|
|
6
|
-
${a.content}`),t.push(
|
|
5
|
+
`),super(r),this.lc_error_code=t?.lc_error_code}},Us=class extends Ke{get is_bubble_up(){return!0}},va=class extends Ke{constructor(e,t){super(e,t),this.name="GraphRecursionError"}static get unminifiable_name(){return"GraphRecursionError"}},Nr=class extends Ke{constructor(e,t){super(e,t),this.name="GraphValueError"}static get unminifiable_name(){return"GraphValueError"}},Hs=class extends Us{reason;constructor(e="shutdown",t){super(`Graph drained: ${e}`,t),this.name="GraphDrained",this.reason=e}static get unminifiable_name(){return"GraphDrained"}};function Gs(e){return e!==void 0&&e.name===Hs.unminifiable_name}var Mt=class extends Us{interrupts;constructor(e,t){super(JSON.stringify(e,null,2),t),this.name="GraphInterrupt",this.interrupts=e??[]}static get unminifiable_name(){return"GraphInterrupt"}},Ws=class extends Mt{constructor(e,t){super([{value:e}],t),this.name="NodeInterrupt"}static get unminifiable_name(){return"NodeInterrupt"}},Ks=class{node;error;constructor(e,t){this.node=e,this.error=t}static get unminifiable_name(){return"NodeError"}};function nd(e){return e!=null&&typeof e=="object"&&e.constructor!=null&&e.constructor.unminifiable_name===Ks.unminifiable_name}var zs=class extends Us{command;constructor(e){super(),this.name="ParentCommand",this.command=e}static get unminifiable_name(){return"ParentCommand"}};function wa(e){return e!==void 0&&e.name===zs.unminifiable_name}function cr(e){return e!==void 0&&e.is_bubble_up===!0}function Nt(e){return e!==void 0&&[Mt.unminifiable_name,Ws.unminifiable_name].includes(e.name)}var qs=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 sd(e){return e!==void 0&&e.name===qs.unminifiable_name}var Js=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"}},id=class extends Ke{constructor(e,t){super(e,t),this.name="MultipleSubgraphError"}static get unminifiable_name(){return"MultipleSubgraphError"}},Sa=class extends Ke{constructor(e,t){super(e,t),this.name="UnreachableNodeError"}static get unminifiable_name(){return"UnreachableNodeError"}},ad=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"}},od=()=>(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 ka=0,Bn=0;function Vn(e){let t=Date.now();return t<=ka?(Bn+=1,Bn>=1e4&&(Bn=0,t=ka+1)):Bn=0,ka=t,bl({clockseq:e,msecs:t,nsecs:Bn})}function yt(e,t){let r=t.replace(/-/g,"").match(/.{2}/g).map(n=>parseInt(n,16));return Nn(e,new Uint8Array(r))}var Un="__pregel_tasks",Ca="__error__",Pr="__scheduled__",Ea="__interrupt__",Ta="__resume__",qr=class{lg_name="DeltaSnapshot";value;constructor(e){this.value=e}};function xa(e){return e!=null&&typeof e=="object"&&e.lg_name==="DeltaSnapshot"}var Ru="[...]",cd="[Circular]",Ys=[],Jr=[];function ld(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function Lu(e,t,r,n){typeof n>"u"&&(n=ld()),Aa(e,"",0,[],void 0,0,n);var s;try{Jr.length===0?s=JSON.stringify(e,t,r):s=JSON.stringify(e,ud(t),r)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;Ys.length!==0;){var i=Ys.pop();i.length===4?Object.defineProperty(i[0],i[1],i[3]):i[0][i[1]]=i[2]}}return s}function Ia(e,t,r,n){var s=Object.getOwnPropertyDescriptor(n,r);s.get!==void 0?s.configurable?(Object.defineProperty(n,r,{value:e}),Ys.push([n,r,t,s])):Jr.push([t,r,e]):(n[r]=e,Ys.push([n,r,t]))}function Aa(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){Ia(cd,e,t,s);return}if(typeof a.depthLimit<"u"&&i>a.depthLimit){Ia(Ru,e,t,s);return}if(typeof a.edgesLimit<"u"&&r+1>a.edgesLimit){Ia(Ru,e,t,s);return}if(n.push(e),Array.isArray(e))for(o=0;o<e.length;o++)Aa(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];Aa(e[l],l,o,n,e,i,a)}}n.pop()}}function ud(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 Du=[];var Fu=A({});var ju=A({});var Xs=(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 Hu(e,t){return Array.isArray(e)?$u(e,t):Fe.from(r=>$u(r,e))}function $u(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&&Xs(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&&Xs(l,s)||a&&l.id&&a.some(u=>u===l.id))&&c.push(l):c.push(l)}return c}function Gu(e){return Array.isArray(e)?Bu(e):Fe.from(Bu)}function Bu(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(pd(o))}}return t}function Wu(e,t){if(Array.isArray(e)){let r=e;if(!t)throw new Error("Options parameter is required when providing messages.");return Vu(r,t)}else{let r=e;return Fe.from(n=>Vu(n,r)).withConfig({runName:"trim_messages"})}}async function Vu(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=Ma;if(l&&("splitText"in l?h=l.splitText.bind(l):h=async p=>l(p)),s==="first")return Ku(e,{maxTokens:r,tokenCounter:u,textSplitter:h,partialStrategy:i?"first":void 0,endOn:a});if(s==="last")return hd(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 Ku(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=Oa(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&&!Xs(o[c-1],l);)c-=1}return o.slice(0,c)}async function hd(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 Oa(u.getType(),h,It(u))});if(s){let u=Array.isArray(s)?s:[s];for(;o.length>0&&!Xs(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 Ku(l,{...a,partialStrategy:r?"last":void 0,endOn:i}),c?[l[0],...l.slice(1).reverse()]:l.reverse()}var Uu={human:{message:xe,messageChunk:An},ai:{message:q,messageChunk:de},system:{message:Qe,messageChunk:Sr},developer:{message:Qe,messageChunk:Sr},tool:{message:Ge,messageChunk:En},function:{message:xn,messageChunk:In},generic:{message:Kt,messageChunk:Tn},remove:{message:Ze,messageChunk:Ze}};function Oa(e,t,r){let n,s;switch(e){case"human":r?n=new An(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 de(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 En(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 In(t);else{if(!t.name)throw new Error("FunctionMessage must have a 'name' field");s=new xn(t)}break;case"generic":if("role"in t)r?n=new Tn(t):s=new Kt(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 pd(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 Uu&&(r=Oa(t,n)),!r)throw new Error(`Unrecognized message chunk class ${t}. Supported classes are ${Object.keys(Uu)}`);return r}function Ma(e){let t=e.split(`
|
|
7
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:()=>de,BaseMessage:()=>re,BaseMessageChunk:()=>Cn,ChatMessage:()=>Kt,ChatMessageChunk:()=>Tn,DEFAULT_MERGE_IGNORE_KEYS:()=>Gc,FunctionMessage:()=>xn,FunctionMessageChunk:()=>In,HumanMessage:()=>xe,HumanMessageChunk:()=>An,KNOWN_BLOCK_TYPES:()=>Ku,RemoveMessage:()=>Ze,SystemMessage:()=>Qe,SystemMessageChunk:()=>Sr,ToolMessage:()=>Ge,ToolMessageChunk:()=>En,_isMessageFieldWithRole:()=>qc,_mergeDicts:()=>Wc,_mergeLists:()=>Kc,_mergeObj:()=>zc,_mergeStatus:()=>Uc,coerceMessageLikeToMessage:()=>me,collapseToolCallChunks:()=>ml,convertToChunk:()=>kr,convertToOpenAIImageBlock:()=>ks,convertToProviderContentBlock:()=>Pc,defaultTextSplitter:()=>Aa,defaultToolCallParser:()=>Qc,filterMessages:()=>Bu,getBufferString:()=>ul,iife:()=>ll,isAIMessage:()=>Hr,isAIMessageChunk:()=>On,isBase64ContentBlock:()=>Ss,isBaseMessage:()=>ee,isBaseMessageChunk:()=>It,isChatMessage:()=>tl,isChatMessageChunk:()=>rl,isDataContentBlock:()=>Ic,isDirectToolOutput:()=>Zc,isFunctionMessage:()=>nl,isFunctionMessageChunk:()=>sl,isHumanMessage:()=>il,isHumanMessageChunk:()=>al,isIDContentBlock:()=>Oc,isMessage:()=>Rc,isOpenAIToolCallArray:()=>Hc,isPlainTextContentBlock:()=>Ac,isSystemMessage:()=>ol,isSystemMessageChunk:()=>cl,isToolMessage:()=>Cs,isToolMessageChunk:()=>el,isURLContentBlock:()=>ws,mapChatMessagesToStoredMessages:()=>fl,mapStoredMessageToChatMessage:()=>hl,mapStoredMessagesToChatMessages:()=>pl,mergeContent:()=>Vc,mergeMessageRuns:()=>Vu,mergeResponseMetadata:()=>Jc,mergeUsageMetadata:()=>Yc,parseBase64DataUrl:()=>Mc,parseMimeType:()=>Nc,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 vl(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 Ll(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=mu;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 Mn(this.keyEncoder(e),Hn)}_hashNestedDictToUUID(e){let t=JSON.stringify(e,Object.keys(e).sort());return Mn(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(),su(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.
|
|
8
|
+
`),t[t.length-1]])}var zu=["tool_call","tool_call_chunk","invalid_tool_call","server_tool_call","server_tool_call_chunk","server_tool_call_result"];var qu=["image","video","audio","text-plain","file"];var Ju=["text","reasoning",...zu,...qu];var Yu=A({AIMessage:()=>q,AIMessageChunk:()=>de,BaseMessage:()=>re,BaseMessageChunk:()=>Cn,ChatMessage:()=>Kt,ChatMessageChunk:()=>Tn,DEFAULT_MERGE_IGNORE_KEYS:()=>zc,FunctionMessage:()=>xn,FunctionMessageChunk:()=>In,HumanMessage:()=>xe,HumanMessageChunk:()=>An,KNOWN_BLOCK_TYPES:()=>Ju,RemoveMessage:()=>Ze,SystemMessage:()=>Qe,SystemMessageChunk:()=>Sr,ToolMessage:()=>Ge,ToolMessageChunk:()=>En,_isMessageFieldWithRole:()=>Xc,_mergeDicts:()=>qc,_mergeLists:()=>Jc,_mergeObj:()=>Yc,_mergeStatus:()=>Wc,coerceMessageLikeToMessage:()=>me,collapseToolCallChunks:()=>_l,convertToChunk:()=>kr,convertToOpenAIImageBlock:()=>Es,convertToProviderContentBlock:()=>Dc,defaultTextSplitter:()=>Ma,defaultToolCallParser:()=>rl,filterMessages:()=>Hu,getBufferString:()=>fl,iife:()=>pl,isAIMessage:()=>Hr,isAIMessageChunk:()=>On,isBase64ContentBlock:()=>Cs,isBaseMessage:()=>ee,isBaseMessageChunk:()=>It,isChatMessage:()=>sl,isChatMessageChunk:()=>il,isDataContentBlock:()=>Mc,isDirectToolOutput:()=>tl,isFunctionMessage:()=>al,isFunctionMessageChunk:()=>ol,isHumanMessage:()=>cl,isHumanMessageChunk:()=>ll,isIDContentBlock:()=>Pc,isMessage:()=>Fc,isOpenAIToolCallArray:()=>Kc,isPlainTextContentBlock:()=>Nc,isSystemMessage:()=>ul,isSystemMessageChunk:()=>hl,isToolMessage:()=>Ts,isToolMessageChunk:()=>nl,isURLContentBlock:()=>ks,mapChatMessagesToStoredMessages:()=>gl,mapStoredMessageToChatMessage:()=>ml,mapStoredMessagesToChatMessages:()=>dl,mergeContent:()=>Gc,mergeMessageRuns:()=>Gu,mergeResponseMetadata:()=>Zc,mergeUsageMetadata:()=>Qc,parseBase64DataUrl:()=>Lc,parseMimeType:()=>Rc,trimMessages:()=>Wu});var Xu=A({BaseChatMessageHistory:()=>Na,BaseListChatMessageHistory:()=>Zs,InMemoryChatMessageHistory:()=>fd}),Na=class extends Xe{async addMessages(e){for(let t of e)await this.addMessage(t)}},Zs=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.")}},fd=class extends Zs{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 Pa=class extends H{lc_namespace=["langchain_core","documents","transformers"];invoke(e,t){return this.transformDocuments(e)}},Zu=class extends Pa{async transformDocuments(e){let t=[];for(let r of e){let n=await this._transformDocument(r);t.push(n)}return t}};var Qu=A({BaseDocumentTransformer:()=>Pa,Document:()=>He,MappingDocumentTransformer:()=>Zu});var eh=A({BaseDocumentLoader:()=>Ra}),Ra=class{};var th=A({LangSmithLoader:()=>md}),md=class extends Ra{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??dd,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 dd(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var rh=A({Embeddings:()=>Qs}),Qs=class{caller;constructor(e){this.caller=new jl(e??{})}};var Yr=class extends Xe{lc_namespace=["langchain_core","example_selectors","base"]};var La=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},nh=class extends La{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 sh(e){return e._modelType()==="base_llm"}function ih(e){return e._modelType()==="base_chat_model"}function ah(e){return e.split(/\n| /).length}var oh=class ch extends Yr{examples=[];examplePrompt;getTextLength=ah;maxLength=2048;exampleTextLengths=[];constructor(t){super(t),this.examplePrompt=t.examplePrompt,this.maxLength=t.maxLength??2048,this.getTextLength=t.getTextLength??ah}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 ch(r);return await Promise.all(t.map(s=>n.addExample(s))),n}};function Da(e){return Object.keys(e).sort().map(t=>e[t])}var lh=class uh 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=Da((this.inputKeys??Object.keys(t)).reduce((n,s)=>({...n,[s]:t[s]}),{})).join(" ");await this.vectorStoreRetriever.addDocuments([new He({pageContent:r,metadata:t})])}async selectExamples(t){let r=Da((this.inputKeys??Object.keys(t)).reduce((s,i)=>({...s,[i]:t[i]}),{})).join(" "),n=(await this.vectorStoreRetriever.invoke(r)).map(s=>s.metadata);return this.exampleKeys?n.map(s=>this.exampleKeys.reduce((i,a)=>({...i,[a]:s[a]}),{})):n}static async fromExamples(t,r,n,s={}){let i=s.inputKeys??null,a=t.map(c=>Da(i?i.reduce((l,u)=>({...l,[u]:c[u]}),{}):c).join(" ")),o=await n.fromTexts(a,t,r,s);return new uh({vectorStore:o,k:s.k??4,exampleKeys:s.exampleKeys,inputKeys:s.inputKeys})}};var hh=A({BaseExampleSelector:()=>Yr,BasePromptSelector:()=>La,ConditionalPromptSelector:()=>nh,LengthBasedExampleSelector:()=>oh,SemanticSimilarityExampleSelector:()=>lh,isChatModel:()=>ih,isLLM:()=>sh});var Hn="10f90ea3-90a4-4962-bf75-83a0f3c1c62a",ph=class extends Xe{lc_namespace=["langchain","recordmanagers"]};var Fa=class{uid;hash_;contentHash;metadataHash;pageContent;metadata;keyEncoder=_u;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 Nn(this.keyEncoder(e),Hn)}_hashNestedDictToUUID(e){let t=JSON.stringify(e,Object.keys(e).sort());return Nn(this.keyEncoder(t),Hn)}};function ja(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 $a(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 Ba(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 Va=e=>"load"in e&&typeof e.load=="function"&&"loadAndSplit"in e&&typeof e.loadAndSplit=="function";async function fh(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=Va(t)?await t.load():t,h=Ba(o??null),p=await r.getTime(),m=0,d=0,y=0,v=0,b=ja(i??100,u);for(let S of b){let k=$a(S.map(N=>Fa.fromDocument(N))),C=k.map(N=>h(N));a==="incremental"&&k.forEach((N,F)=>{if(C[F]===null)throw new Error("sourceIdKey must be provided when cleanup is incremental")});let T=await r.exists(k.map(N=>N.uid)),O=[],x=[],_=[],P=new Set;if(k.forEach((N,F)=>{if(T[F])if(l)P.add(N.uid);else{_.push(N.uid);return}O.push(N.uid),x.push(N.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(N=>N.uid),{timeAtLeast:p,groupIds:C}),a==="incremental"){C.forEach(F=>{if(!F)throw new Error("Source id cannot be null")});let N=await r.listKeys({before:p,groupIds:C});N.length>0&&(await n.delete({ids:N}),await r.deleteKeys(N),d+=N.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 mh=A({RecordManager:()=>ph,UUIDV5_NAMESPACE:()=>Hn,_HashedDocument:()=>Fa,_batch:()=>ja,_deduplicateInOrder:()=>$a,_getSourceIdAssigner:()=>Ba,_isBaseDocumentLoader:()=>Va,index:()=>fh});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 Ds(new Ls({steps:e}))}};var dh=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 gh=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 Is(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 _h=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
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
|
|
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 yh=A({RouterRunnable:()=>dh,Runnable:()=>H,RunnableAssign:()=>Ds,RunnableBinding:()=>er,RunnableBranch:()=>gh,RunnableEach:()=>cu,RunnableLambda:()=>Fe,RunnableMap:()=>Ls,RunnableParallel:()=>uu,RunnablePassthrough:()=>Pt,RunnablePick:()=>pu,RunnableRetry:()=>lu,RunnableSequence:()=>et,RunnableToolLike:()=>fu,RunnableWithFallbacks:()=>hu,RunnableWithMessageHistory:()=>_h,_coerceToRunnable:()=>we,ensureConfig:()=>At,getCallbackManagerForConfig:()=>Is,mergeConfigs:()=>De,patchConfig:()=>he,pickRunnableConfigKeys:()=>Ml,raceWithSignal:()=>Nl});var bh=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 As({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 vh=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]}},wh=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`"}},Sh=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\`)`}},kh=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
11
|
|
|
12
12
|
1. foo
|
|
13
13
|
|
|
14
14
|
2. bar
|
|
15
15
|
|
|
16
|
-
3. baz`}re=/\d+\.\s([^\n]+)/g;async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}},
|
|
16
|
+
3. baz`}re=/\d+\.\s([^\n]+)/g;async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}},Ch=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
17
|
|
|
18
18
|
1. foo
|
|
19
19
|
|
|
20
20
|
2. bar
|
|
21
21
|
|
|
22
|
-
3. baz`}re=/^\s*[-*]\s([^\n]+)$/gm;async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}};var
|
|
22
|
+
3. baz`}re=/^\s*[-*]\s([^\n]+)$/gm;async parse(e){return[...e.matchAll(this.re)??[]].map(t=>t[1])}};var Eh=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 ei=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 ti=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
23
|
|
|
24
24
|
"JSON Schema" is a declarative language that allows you to annotate and validate JSON documents.
|
|
25
25
|
|
|
@@ -33,7 +33,7 @@ Here is the JSON Schema instance your output must adhere to. Include the enclosi
|
|
|
33
33
|
\`\`\`json
|
|
34
34
|
${JSON.stringify(ve(this.schema))}
|
|
35
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
|
|
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 Ns(this.schema,JSON.parse(r))}catch(t){throw new Ce(`Failed to parse. Text: "${e}". Error: ${t}`,e)}}_baseMessageToString(e){return e.text}},Ua=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
37
|
\`\`\`json
|
|
38
38
|
${this._schemaToInstruction(ve(this.schema)).replaceAll("{","{".repeat(t)).replaceAll("}","}".repeat(t))}
|
|
39
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`{
|
|
@@ -42,15 +42,15 @@ ${Object.entries(r.properties).map(([c,l])=>{let u=r.required?.includes(c)?"":"
|
|
|
42
42
|
${" ".repeat(t-2)}}${o}`}if(r.type==="array"&&r.items){let o=r.description?` // ${r.description}`:"";return`array[
|
|
43
43
|
${" ".repeat(t)}${this._schemaToInstruction(r.items,t+2)}
|
|
44
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)}},
|
|
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
|
|
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)}},Th=class extends rt{structuredInputParser;constructor({inputSchema:e}){super(...arguments),this.structuredInputParser=new Ua(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 gd=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),N(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:Xm,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 N(g,f,E){g[f]&&g[f](E)}function F(g,f,E){g.textNode&&j(g),N(g,f,E)}function j(g){g.textNode=G(g.opt,g.textNode),g.textNode&&N(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
47
|
Line: `+g.line+`
|
|
48
48
|
Column: `+g.column+`
|
|
49
|
-
Char: `+g.c),f=new Error(f),g.error=f,
|
|
49
|
+
Char: `+g.c),f=new Error(f),g.error=f,N(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,N(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 M(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
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(
|
|
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(Ac){F(g,"onopennamespace",{prefix:Ac,uri:E.ns[Ac]})});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,Zm=ye.local,Ic=vr===""?"":E.ns[vr]||"",pa={name:Ye,value:br,prefix:vr,local:Zm,uri:Ic};vr&&vr!=="xmlns"&&!Ic&&(V(g,"Unbound namespace prefix: "+JSON.stringify(vr)),pa.uri=vr),g.tag.attributes[Ye]=pa,F(g,"onattribute",pa)}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 Xm(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
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:(
|
|
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:(M(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},xh=gd();var ri=`The output should be formatted as a XML file.
|
|
54
54
|
1. Output should conform to the tags below.
|
|
55
55
|
2. If tags are not given, make them on your own.
|
|
56
56
|
3. Remember to always open and close all the tags.
|
|
@@ -72,44 +72,44 @@ As an example, for the tags ["foo", "bar", "baz"]:
|
|
|
72
72
|
Here are the output tags:
|
|
73
73
|
\`\`\`
|
|
74
74
|
{tags}
|
|
75
|
-
\`\`\``,
|
|
75
|
+
\`\`\``,Ih=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 ni(e[0].text)}async parse(e){return ni(e)}getFormatInstructions(){return this.tags&&this.tags.length>0?ri.replace("{tags}",this.tags?.join(", ")??""):ri}},_d=e=>e.split(`
|
|
76
76
|
`).map(t=>t.replace(/^\s+/,"")).join(`
|
|
77
|
-
`).trim(),
|
|
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};de.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(de.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&&de.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??zt("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,On(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(me)),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(bl),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 ha("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),On(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 ha("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(me)),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(me)),[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(!de.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?Wt(n.arguments):{...n,arguments:Wt(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 yu(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(
|
|
77
|
+
`).trim(),Ah=e=>{if(Object.keys(e).length===0)return{};let t={};return e.children.length>0?(t[e.name]=e.children.map(Ah),t):(t[e.name]=e.text??void 0,t)};function ni(e){let t=_d(e),r=xh.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]),Ah(n)}var Oh=A({AsymmetricStructuredOutputParser:()=>Th,BaseCumulativeTransformOutputParser:()=>bt,BaseLLMOutputParser:()=>Xr,BaseOutputParser:()=>rt,BaseTransformOutputParser:()=>Rt,BytesOutputParser:()=>vh,CommaSeparatedListOutputParser:()=>wh,CustomListOutputParser:()=>Sh,JsonMarkdownStructuredOutputParser:()=>Ua,JsonOutputParser:()=>ei,ListOutputParser:()=>Zr,MarkdownListOutputParser:()=>Ch,NumberedListOutputParser:()=>kh,OutputParserException:()=>Ce,StandardSchemaOutputParser:()=>ti,StringOutputParser:()=>Eh,StructuredOutputParser:()=>Gn,XMLOutputParser:()=>Ih,XML_FORMAT_INSTRUCTIONS:()=>ri,parseJsonMarkdown:()=>wr,parsePartialJson:()=>Wt,parseXMLMarkdown:()=>ni});var Mh=A({extendInteropZodObject:()=>Ps,getInteropZodDefaultGetter:()=>Rs,getInteropZodObjectShape:()=>Tr,getSchemaDescription:()=>Er,interopParse:()=>Xt,interopParseAsync:()=>Ns,interopSafeParse:()=>Gl,interopSafeParseAsync:()=>Ms,interopZodObjectMakeFieldsOptional:()=>tu,interopZodObjectPartial:()=>Zt,interopZodObjectPassthrough:()=>Ql,interopZodObjectStrict:()=>Zl,interopZodTransformInputSchema:()=>eu,isInteropZodError:()=>ru,isInteropZodLiteral:()=>Hl,isInteropZodObject:()=>be,isInteropZodSchema:()=>Yt,isShapelessZodSchema:()=>Wl,isSimpleStringZodSchema:()=>Kl,isZodArrayV4:()=>Jl,isZodLiteralV3:()=>Vl,isZodLiteralV4:()=>Ul,isZodNullableV4:()=>Xl,isZodObjectV3:()=>zl,isZodObjectV4:()=>ql,isZodOptionalV4:()=>Yl,isZodSchema:()=>Bl,isZodSchemaV3:()=>Os,isZodSchemaV4:()=>$l});function Ha(e,t){if(e.function===void 0)return;let r;if(t?.partial)try{r=Wt(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 Nh(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 Ph(e,t){return{name:e.function?.name,args:e.function?.arguments,id:e.id,error:t,type:"invalid_tool_call"}}var Ga=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=>Ha(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}},si=class extends Ga{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 Ms(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 Rh=A({assembleStructuredOutputPipeline:()=>Wa,createContentParser:()=>yd,createFunctionCallingParser:()=>bd});function yd(e){return Yt(e)?Gn.fromZodSchema(e):Kr(e)?ti.fromSerializableSchema(e):new ei}function bd(e,t,r){let n=r??si;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 Wa(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 Dh=A({ChatModelStream:()=>lr,ReasoningContentStream:()=>$h,TextContentStream:()=>Fh,ToolCallsStream:()=>jh,UsageMetadataStream:()=>Bh}),vd=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 wd(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 Lh(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 ii(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 Sd(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 kd(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:Sd(n)}}var Fh=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)}},jh=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)}},$h=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(!ii(n.content)){if(r)return;continue}r=!0;let s=Lh(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"&&ii(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(!ii(n.content)){if(r)return;continue}r=!0;let s=Lh(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"&&ii(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)}},Bh=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 vd,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 Fh(this._buffer)}get toolCalls(){return new jh(this._buffer)}get reasoning(){return new $h(this._buffer)}get usage(){return new Bh(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]=wd(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(kd);return new q({id:t,content:i,usage_metadata:r,response_metadata:{...n,...s?{finish_reason:s}:{},output_version:"v1"}})}};var Uh=A({convertChunksToEvents:()=>Ka,finalizeContentBlock:()=>ai}),Cd={wav:"audio/wav",mp3:"audio/mpeg",flac:"audio/flac",opus:"audio/opus",aac:"audio/aac",pcm16:"audio/pcm"},Ed={png:"image/png",jpeg:"image/jpeg",jpg:"image/jpeg",webp:"image/webp",gif:"image/gif"};function Vh(e){let t=0;for(let r of e.keys())r>=t&&(t=r+1);return t}function Hh(e){let t=e.additional_kwargs;return t!=null&&typeof t=="object"?t:{}}function Td(e){let t=Hh(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?Ed[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 xd(e){let t=Hh(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?Cd[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*Ka(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};de.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=Ad(p);d.accumulated=Id(d.accumulated,y),yield{event:"content-block-delta",index:m,delta:y}}}if(de.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=xd(c);if(h!=null){if(i==null){let m=Vh(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 Td(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=Vh(r);r.set(y,{type:"image",accumulated:p}),yield{event:"content-block-start",index:y,content:p}}if(!l&&de.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:ai(c.accumulated)};yield{event:"message-finish",reason:"stop",...s?{usage:s}:{}}}function Id(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 Ad(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 ai(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 Gh=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 Wh=A({BaseChatModel:()=>ur,SimpleChatModel:()=>Od});function za(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];(ks(i)||Cs(i))&&n===r&&(n=new r.constructor({...n,content:[...r.content.slice(0,s),Es(i),...r.content.slice(s+1)]}))}t.push(n)}return t}var ur=class vt extends Fs{lc_namespace=["langchain","chat_models",this._llmType()];disableStreaming=!1;outputVersion;get callKeys(){return[...super.callKeys,"outputVersion"]}constructor(t){super(t),this.outputVersion=Gh(()=>{let r=t.outputVersion??zt("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*Ka(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(),[za(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,On(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(me)),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(za),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(xs);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 fa("Model invocation was aborted.",b)}if(v.message.id==null){let b=a?.at(0)?.runId;b!=null&&v.message._updateId(`run-${b}`)}d===void 0?d=v:d=Ot(d,v),On(v.message)&&v.message.usage_metadata!==void 0&&(y={tokenUsage:{promptTokens:v.message.usage_metadata.input_tokens,completionTokens:v.message.usage_metadata.output_tokens,totalTokens:v.message.usage_metadata.total_tokens}})}if(r.signal?.aborted){let v=d?.message;throw new fa("Model invocation was aborted.",v)}if(d===void 0)throw new Error("Received empty response from chat model call.");o==="v1"&&(d.message=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(me)),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(za),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(me)),[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 Wa(this.bindTools(u),Fe.from(h=>{if(!de.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")}},Od=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 Kh=A({convertOpenAICompletionsStream:()=>Md});async function*Md(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=Ld(d.usage),yield{event:"usage",usage:l});let y=d.x_groq?.usage;y&&r&&(l=Pd(y),yield{event:"usage",usage:l});let v=d.choices?.[0];if(!v)continue;v.finish_reason!=null&&(u=Rd(v.finish_reason),h=Dd(d,v));let{delta:b}=v;if(!b)continue;let S=Nd(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:ai(y)};yield{event:"message-finish",reason:u,...l?{usage:l}:{},...h?{responseMetadata:h}:{}}}function Nd(e){let t=e.reasoning_content??e.reasoning;return typeof t=="string"&&t.length>0?t:void 0}function Pd(e){return{input_tokens:e.prompt_tokens??0,output_tokens:e.completion_tokens??0,total_tokens:e.total_tokens??0}}function Rd(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 Ld(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 Dd(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 zh=A({});var qh=A({BaseLLM:()=>Jh,LLM:()=>oi}),Jh=class zn extends Fs{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 As({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(xs),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"}},oi=class extends Jh{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 Yh=A({});var Xh=A({BaseMemory:()=>Fd,getInputValue:()=>jd,getOutputValue:()=>$d,getPromptInputKey:()=>Bd}),Fd=class{},Zh=(e,t)=>{if(t!==void 0)return e[t];let r=Object.keys(e);if(r.length===1)return e[r[0]]},jd=(e,t)=>{let r=Zh(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},$d=(e,t)=>{let r=Zh(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 Bd(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 qa=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)}`)}},Ja=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 qa(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?Wt(n.arguments):{...n,arguments:Wt(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""}},Qh=class extends Xr{static lc_name(){return"JsonKeyOutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;outputParser=new Ja;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 ep=A({JsonKeyOutputFunctionsParser:()=>Qh,JsonOutputFunctionsParser:()=>Ja,OutputFunctionsParser:()=>qa});var tp=A({JsonOutputKeyToolsParser:()=>si,JsonOutputToolsParser:()=>Ga,convertLangChainToolCallToOpenAI:()=>Nh,makeInvalidToolCall:()=>Ph,parseToolCall:()=>Ha});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 wu(await this.format(e))}};var Vd=Object.prototype.toString,tn=Array.isArray||function(t){return Vd.call(t)==="[object Array]"};function Xa(e){return typeof e=="function"}function Ud(e){return tn(e)?"array":typeof e}function Ya(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function rp(e,t){return e!=null&&typeof e=="object"&&t in e}function Hd(e,t){return e!=null&&typeof e!="object"&&e.hasOwnProperty&&e.hasOwnProperty(t)}var Gd=RegExp.prototype.test;function Wd(e,t){return Gd.call(e,t)}var Kd=/\S/;function zd(e){return!Wd(Kd,e)}var qd={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function Jd(e){return String(e).replace(/[&<>"'`=\/]/g,function(r){return qd[r]})}var Yd=/\s*/,Xd=/\s+/,np=/\s*=/,Zd=/\s*\}/,Qd=/#|\^|\/|>|\{|&|=|!/;function eg(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(Xd,2)),!tn(_)||_.length!==2)throw new Error("Invalid tags: "+_);h=new RegExp(Ya(_[0])+"\\s*"),p=new RegExp("\\s*"+Ya(_[1])),m=new RegExp("\\s*"+Ya("}"+_[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),zd(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(Qd)||"name",y.scan(Yd),b==="="?(S=y.scanUntil(np),y.scan(np),y.scanUntil(p)):b==="{"?(S=y.scanUntil(m),y.scan(Zd),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 rg(tg(s))}function tg(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 rg(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=rp(i,a[o])||Hd(i,a[o])),i=i[a[o++]];else i=s.view[t],c=rp(s.view,t);if(c){n=i;break}s=s.parent}r[t]=n}return Xa(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=eg(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(Xa(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
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=
|
|
81
|
+
`)};Pe.prototype.renderPartial=function(t,r,n,s){if(n){var i=this.getConfigTags(s),a=Xa(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 "'+Ud(t)+'" was given as the first argument for mustache#render(template, view, partials)');return qn.render(t,r,n,s)};ze.escape=Jd;ze.Scanner=Jn;ze.Context=en;ze.Writer=Pe;var Za=ze;var ng={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},sp=(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=sp(n[4],s);r.push(...i)}}else r.push({type:"literal",text:n[1]});return r},rn=e=>{let t=Za.parse(e);return sp(t)},Qa=(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},""),eo=(e,t)=>Za.render(e,t,void 0,ng),Yn={"f-string":Qa,mustache:eo},to={"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)=>to[t](e),Dt=(e,t,r)=>{if(!(t in Yn)){let n=Object.keys(Yn);throw new Error(`Invalid template format. Got \`${t}\`;
|
|
82
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
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
|
|
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 ip 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 ip(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 ku(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=ro(e.template,t);super({inputVariables:r,...e}),this.template=e.template,this.templateFormat=t,this.inputVariables=r}async format(e){return no(this.template,e,this.templateFormat)}async invoke(e){return await this._callWithConfig(this.format.bind(this),e,{runType:"prompt"})}};function ro(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(...ro(s,t));else typeof n=="object"&&n!==null&&r.push(...ro(n,t));return Array.from(new Set(r))}function no(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(no(o,t,r));n[s]=a}else typeof i=="object"&&i!==null?n[s]=no(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"})}},li=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(me):r=[me(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
85
|
|
|
86
|
-
`));throw i.name="InputFormatError",i.lc_error_code=n.lc_error_code,i}return r}},
|
|
86
|
+
`));throw i.name="InputFormatError",i.lc_error_code=n.lc_error_code,i}return r}},so=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 Su(await this.formatMessages(e))}},io=class extends so{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 Kt(await this.prompt.format(e),this.role)}static fromTemplate(e,t,r){return new this(nt.fromTemplate(e,{templateFormat:r?.templateFormat}),t)}};function sg(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.keys(e).length===1&&"text"in e&&typeof e.text=="string"}function ig(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 ao=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(sg(n)){let s="";typeof n.text=="string"&&(s=n.text??"");let i={...t,additionalContentFields:n};r.push(nt.fromTemplate(s,i))}else if(ig(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
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)]}},
|
|
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)]}},ui=class extends ao{static _messageClass(){return xe}static lc_name(){return"HumanMessagePromptTemplate"}},oo=class extends ao{static _messageClass(){return q}static lc_name(){return"AIMessagePromptTemplate"}},co=class extends ao{static _messageClass(){return Qe}static lc_name(){return"SystemMessagePromptTemplate"}};function ag(e){return typeof e.formatMessages=="function"}function og(e,t){if(ag(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 li({variableName:s.slice(2,-2),optional:!0});if(typeof s=="string"&&s[0]==="{"&&s[s.length-1]==="}")return new li({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=me(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 ui.fromTemplate(n,t);if(r._getType()==="ai")return oo.fromTemplate(n,t);if(r._getType()==="system")return co.fromTemplate(n,t);if(Kt.isInstance(r))return io.fromTemplate(r.content,r.role,t);throw new Error(`Could not coerce message prompt template from input. Received message type: "${r._getType()}".`)}function cg(e){return e.constructor.lc_name()==="MessagesPlaceholder"}var sn=class ci 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)&&!(cg(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 ci(s)}static fromTemplate(t,r){let n=new ui({prompt:nt.fromTemplate(t,r)});return this.fromMessages([n])}static fromMessages(t,r){let n=t.reduce((a,o)=>a.concat(o instanceof ci?o.promptMessages:[og(o,r)]),[]),s=t.reduce((a,o)=>o instanceof ci?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 ap=class lo extends Lt{lc_serializable=!1;examples;exampleSelector;examplePrompt;suffix="";exampleSeparator=`
|
|
89
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
|
|
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 lo(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 lo({inputVariables:t.input_variables,examplePrompt:n,examples:s,exampleSeparator:t.example_separator,prefix:t.prefix,suffix:t.suffix,templateFormat:t.template_format})}},op=class cp extends es{lc_serializable=!0;examples;exampleSelector;examplePrompt;suffix="";exampleSeparator=`
|
|
91
91
|
|
|
92
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
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(Tl(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)}
|
|
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 cp(s)}};var lp=class hi 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=hi.extractRequiredInputValues(r,s.inputVariables);s instanceof sn?r[n]=await s.formatMessages(i):r[n]=await s.format(i)}return hi.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 hi(r)}serialize(){throw new Error("Not implemented.")}_getPromptType(){return"pipeline"}};function up(e){return typeof e=="object"&&e!=null&&"withStructuredOutput"in e&&typeof e.withStructuredOutput=="function"}function lg(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 hp=class pp 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(up(t))return super.pipe(t.withStructuredOutput(this.schema));if(lg(t)&&up(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 pp.fromMessages(t,{schema:r,method:n})}};var fp=A({AIMessagePromptTemplate:()=>oo,BaseChatPromptTemplate:()=>es,BaseMessagePromptTemplate:()=>Qn,BaseMessageStringPromptTemplate:()=>so,BasePromptTemplate:()=>wt,BaseStringPromptTemplate:()=>Lt,ChatMessagePromptTemplate:()=>io,ChatPromptTemplate:()=>sn,DEFAULT_FORMATTER_MAPPING:()=>Yn,DEFAULT_PARSER_MAPPING:()=>to,DictPromptTemplate:()=>Zn,FewShotChatMessagePromptTemplate:()=>op,FewShotPromptTemplate:()=>ap,HumanMessagePromptTemplate:()=>ui,ImagePromptTemplate:()=>nn,MessagesPlaceholder:()=>li,PipelinePromptTemplate:()=>lp,PromptTemplate:()=>nt,StructuredPrompt:()=>hp,SystemMessagePromptTemplate:()=>co,checkValidTemplate:()=>Dt,interpolateFString:()=>Qa,interpolateMustache:()=>eo,parseFString:()=>Rr,parseMustache:()=>rn,parseTemplate:()=>Lr,renderTemplate:()=>Ee});var mp=A({BaseDocumentCompressor:()=>ug}),ug=class{static isBaseDocumentCompressor(e){return e?.compressDocuments!==void 0}};var dp=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 gp=A({BaseStore:()=>_p,InMemoryStore:()=>hg}),_p=class extends Xe{},hg=class extends _p{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"},pi=class{},fi=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")}},mi=class extends fi{},yp=class extends mi{comparator;attribute;value;exprName="Comparison";constructor(e,t,r){super(),this.comparator=e,this.attribute=t,this.value=r}},bp=class extends mi{operator;args;exprName="Operation";constructor(e,t){super(),this.operator=e,this.args=t}},vp=class extends fi{query;filter;exprName="StructuredQuery";constructor(e,t){super(),this.query=e,this.filter=t}};function uo(e){return e&&typeof e=="object"&&!Array.isArray(e)}function $e(e){return e?typeof e=="string"&&e.length>0||typeof e=="function"?!1:uo(e)&&Object.keys(e).length===0:!0}function ho(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 po(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 fo(e){return typeof e=="string"&&(Number.isNaN(parseFloat(e))||parseFloat(e).toString()!==e)}function mo(e){return typeof e=="boolean"}function an(e){let t;if(fo(e))t=e;else if(ho(e))t=parseInt(e,10);else if(po(e))t=parseFloat(e);else if(mo(e))t=!!e;else throw new Error("Unsupported value type");return t}var rs=class extends pi{},wp=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 Sp=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 kp=A({BaseTranslator:()=>rs,BasicTranslator:()=>wp,Comparators:()=>U,Comparison:()=>yp,Expression:()=>fi,FilterDirective:()=>mi,FunctionalTranslator:()=>Sp,Operation:()=>bp,Operators:()=>st,StructuredQuery:()=>vp,Visitor:()=>pi,castValue:()=>an,isBoolean:()=>mo,isFilterEmpty:()=>$e,isFloat:()=>po,isInt:()=>ho,isObject:()=>uo,isString:()=>fo});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 Cp(e,t,r){return e==null?!1:Object.entries(t).every(([n,s])=>r(e[n],s))}function Ep(e,t,r){return e==null?!1:Cp(e,t,r)}function Tp(e){return e.content.find(t=>t.type==="text")?.text}function pg(e,t,r){if(t.id!==void 0&&e.id!==t.id||t.text!==void 0&&Tp(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&&!Ep(e.usage_metadata,t.usage,r)||t.responseMetadata!==void 0&&!Cp(e.response_metadata,t.responseMetadata,r))}function ss(e,t,r){return{pass:!1,message:()=>`${r.matcherHint(t)}
|
|
95
95
|
|
|
96
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
|
|
97
|
+
Received: ${r.printReceived(e)}`,actual:e,expected:"ChatModelStream"}}function is(e,t){return t?!e:e}async function fg(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
98
|
|
|
99
99
|
Expected stream text: ${r?"not ":""}${n.printExpected(t)}
|
|
100
|
-
Received stream text: ${n.printReceived(i)}`,actual:i,expected:t}}async function
|
|
100
|
+
Received stream text: ${n.printReceived(i)}`,actual:i,expected:t}}async function mg(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
101
|
|
|
102
102
|
Expected stream reasoning: ${r?"not ":""}${n.printExpected(t)}
|
|
103
|
-
Received stream reasoning: ${n.printReceived(i)}`,actual:i,expected:t}}async function
|
|
103
|
+
Received stream reasoning: ${n.printReceived(i)}`,actual:i,expected:t}}async function dg(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
104
|
|
|
105
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
|
|
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 gg(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(Ep(i,t,this.equals),r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
107
107
|
|
|
108
108
|
Expected stream usage: ${n.printExpected(t)}
|
|
109
|
-
Received stream usage: ${n.printReceived(i)}`,actual:i,expected:t}}async function
|
|
109
|
+
Received stream usage: ${n.printReceived(i)}`,actual:i,expected:t}}async function _g(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(pg(i,t,this.equals),r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
110
110
|
|
|
111
111
|
Expected stream output: ${n.printExpected(t)}
|
|
112
|
-
Received stream output: ${n.printReceived({id:i.id,text:
|
|
112
|
+
Received stream output: ${n.printReceived({id:i.id,text:Tp(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:fg,toHaveStreamReasoning:mg,toHaveStreamToolCalls:dg,toHaveStreamUsage:gg,toHaveStreamOutput:_g};function as(e){return re.isInstance(e)?e.constructor.name||e.type:typeof e}function di(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
113
|
|
|
114
114
|
Expected: ${s?"not ":""}${e}
|
|
115
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)}
|
|
@@ -121,7 +121,7 @@ Expected: ${e} with content ${i.printExpected(n)}
|
|
|
121
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
122
|
|
|
123
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
|
|
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 go=di("HumanMessage",xe.isInstance),_o=di("AIMessage",q.isInstance),yo=di("SystemMessage",Qe.isInstance),bo=di("ToolMessage",Ge.isInstance);function vo(e,t){let{isNot:r,utils:n}=this;if(!q.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
125
125
|
|
|
126
126
|
Expected: AIMessage
|
|
127
127
|
Received: ${as(e)}`};let s=e.tool_calls??[];if(s.length!==t.length)return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
@@ -132,19 +132,19 @@ Could not find matching tool call(s) for:
|
|
|
132
132
|
${n.printExpected(i)}
|
|
133
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
134
|
|
|
135
|
-
Expected AIMessage not to have matching tool calls`}}function
|
|
135
|
+
Expected AIMessage not to have matching tool calls`}}function wo(e,t){let{isNot:r,utils:n}=this;if(!q.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCallCount")}
|
|
136
136
|
|
|
137
137
|
Expected: AIMessage
|
|
138
138
|
Received: ${as(e)}`};let s=e.tool_calls?.length??0;return{pass:s===t,message:()=>`${n.matcherHint("toHaveToolCallCount")}
|
|
139
139
|
|
|
140
140
|
Expected ${r?"not ":""}${t} tool call(s)
|
|
141
|
-
Received: ${s}`,actual:s,expected:t}}function
|
|
141
|
+
Received: ${s}`,actual:s,expected:t}}function So(e,t){let{isNot:r,utils:n}=this;if(!q.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toContainToolCall")}
|
|
142
142
|
|
|
143
143
|
Expected: AIMessage
|
|
144
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
145
|
|
|
146
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
|
|
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 ko(e,t){let{isNot:r,utils:n}=this;if(!Array.isArray(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
148
148
|
|
|
149
149
|
Expected an array of messages
|
|
150
150
|
Received: ${typeof e}`};let s=e.filter(Ge.isInstance);if(s.length!==t.length)return{pass:!1,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
@@ -155,7 +155,7 @@ Tool message at index ${i} did not match:
|
|
|
155
155
|
Expected: ${n.printExpected(t[i])}
|
|
156
156
|
Received: ${n.printReceived(a)}`},actual:s[i],expected:t[i]};return{pass:!0,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
157
157
|
|
|
158
|
-
Expected messages not to contain matching tool messages`}}function
|
|
158
|
+
Expected messages not to contain matching tool messages`}}function Co(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
159
|
|
|
160
160
|
Expected result ${r?"not ":""}to have been interrupted
|
|
161
161
|
Received __interrupt__: ${n.printReceived(s)}`};if(t===void 0)return{pass:!0,message:()=>`${n.matcherHint("toHaveBeenInterrupted")}
|
|
@@ -164,7 +164,7 @@ Expected result not to have been interrupted
|
|
|
164
164
|
Received ${s.length} interrupt(s)`};let i=s[0]?.value;return{pass:this.equals(i,t),message:()=>`${n.matcherHint("toHaveBeenInterrupted")}
|
|
165
165
|
|
|
166
166
|
Expected interrupt value: ${n.printExpected(t)}
|
|
167
|
-
Received interrupt value: ${n.printReceived(i)}`,actual:i,expected:t}}function
|
|
167
|
+
Received interrupt value: ${n.printReceived(i)}`,actual:i,expected:t}}function Eo(e,t){let{isNot:r,utils:n}=this,s=e?.structuredResponse;return s===void 0?{pass:!1,message:()=>`${n.matcherHint("toHaveStructuredResponse")}
|
|
168
168
|
|
|
169
169
|
Expected result ${r?"not ":""}to have a structured response
|
|
170
170
|
Received structuredResponse: undefined`}:t===void 0?{pass:!0,message:()=>`${n.matcherHint("toHaveStructuredResponse")}
|
|
@@ -172,37 +172,37 @@ Received structuredResponse: undefined`}:t===void 0?{pass:!0,message:()=>`${n.ma
|
|
|
172
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
173
|
|
|
174
174
|
Expected structured response: ${n.printExpected(t)}
|
|
175
|
-
Received structured response: ${n.printReceived(s)}`,actual:s,expected:t}}var
|
|
175
|
+
Received structured response: ${n.printReceived(s)}`,actual:s,expected:t}}var xp={toBeHumanMessage:go,toBeAIMessage:_o,toBeSystemMessage:yo,toBeToolMessage:bo,toHaveToolCalls:vo,toHaveToolCallCount:wo,toContainToolCall:So,toHaveToolMessages:ko,toHaveBeenInterrupted:Co,toHaveStructuredResponse:Eo,...on};function yg(e){return e.map(t=>t.text).filter(Boolean).join("-")}var Ip=0;function bg(){return Ip+=1,`fake_tc_${Ip}`}var To=class Ap 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??bg(),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 Ap;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=yg(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 Op(){return new To}function gi(e){return{async*[Symbol.asyncIterator](){for(let t of e)yield t}}}function _i(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 yi(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 bi(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 vi(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
176
|
|
|
177
|
-
`));r.close()}}),{status:200,headers:{"Content-Type":"text/event-stream"}})}var
|
|
178
|
-
`),n}function
|
|
177
|
+
`));r.close()}}),{status:200,headers:{"Content-Type":"text/event-stream"}})}var Mp=A({FakeBuiltModel:()=>To,asAsyncIterable:()=>gi,fakeModel:()=>Op,langchainMatchers:()=>xp,openAIReasoningTextChunks:()=>yi,openAITextOnlyChunks:()=>os,openAITextOnlyChunksWithUsage:()=>_i,openAIToolCallChunks:()=>bi,sseResponseFromOpenAIChunks:()=>vi,streamMatchers:()=>on,toBeAIMessage:()=>_o,toBeHumanMessage:()=>go,toBeSystemMessage:()=>yo,toBeToolMessage:()=>bo,toContainToolCall:()=>So,toHaveBeenInterrupted:()=>Co,toHaveStructuredResponse:()=>Eo,toHaveToolCallCount:()=>wo,toHaveToolCalls:()=>vo,toHaveToolMessages:()=>ko});var Np=A({RunCollectorCallbackHandler:()=>vg}),vg=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 Pp=A({});var Rp=A({chunkArray:()=>wg}),wg=(e,t)=>e.reduce((r,n,s)=>{let i=Math.floor(s/t);return r[i]=(r[i]||[]).concat([n]),r},[]);var Lp=A({context:()=>Sg});function Sg(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=kg(t[s],n);n+=typeof a=="string"?a:JSON.stringify(a)}}return n=Cg(n),n=n.trim(),n=n.replace(/\\n/g,`
|
|
178
|
+
`),n}function kg(e,t){if(typeof e!="string"||!e.includes(`
|
|
179
179
|
`))return e;let r=t.slice(t.lastIndexOf(`
|
|
180
180
|
`)+1).match(/^(\s+)/);if(r){let n=r[1];return e.replace(/\n/g,`
|
|
181
|
-
${n}`)}return e}function
|
|
181
|
+
${n}`)}return e}function Cg(e){let t=e.split(`
|
|
182
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
|
|
184
|
-
`))}}function
|
|
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
|
|
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 de({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 de({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 de({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:()=>gu,callbacks__base:()=>yl,callbacks__manager:()=>El,callbacks__promises:()=>Cl,chat_history:()=>qu,document_loaders__base:()=>Xu,document_loaders__langsmith:()=>Zu,documents:()=>Yu,embeddings:()=>Qu,errors:()=>xc,example_selectors:()=>ch,index:()=>Ru,indexing:()=>hh,language_models__base:()=>Su,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:()=>$c,memory:()=>qh,messages:()=>zu,messages__tool:()=>Xc,output_parsers:()=>xh,output_parsers__openai_functions:()=>Xh,output_parsers__openai_tools:()=>Zh,outputs:()=>Pl,prompt_values:()=>_u,prompts:()=>up,retrievers:()=>pp,retrievers__document_compressors:()=>hp,runnables:()=>dh,runnables__graph:()=>nu,singletons:()=>xl,stores:()=>fp,structured_query:()=>vp,testing:()=>Ip,tools:()=>ku,tracers__base:()=>wl,tracers__console:()=>Sl,tracers__log_stream:()=>Ml,tracers__run_collector:()=>Ap,tracers__tracer_langchain:()=>kl,types__stream:()=>Op,utils__async_caller:()=>Rl,utils__chunk_array:()=>Np,utils__context:()=>Mp,utils__env:()=>_l,utils__event_source_parse:()=>Pp,utils__format:()=>Fp,utils__function_calling:()=>jp,utils__gateway:()=>Bp,utils__hash:()=>du,utils__json_patch:()=>gh,utils__json_schema:()=>ru,utils__math:()=>Gp,utils__ssrf:()=>Kp,utils__standard_schema:()=>eu,utils__stream:()=>Ol,utils__testing:()=>vf,utils__tiktoken:()=>wu,utils__types:()=>Ih,utils__uuid:()=>dl,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(Fc(u))return jc(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=zt(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"&&Bc(x)===d);if(typeof T!="function")throw new Error(`Invalid identifer: ${l} -> ${m}`);let O=new T(Dc(await Ci.call({...this,path:[...a,"kwargs"],depth:o+1},p.kwargs),Lc,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
|
|
188
|
-
`));return t?.writer||t?.configurable?.writer}function
|
|
189
|
-
`));if(t.configurable?.__pregel_scratchpad?.currentTaskInput===void 0)throw new Error("BUG: internal scratchpad not initialized.");return t.configurable[Ae].currentTaskInput}function
|
|
183
|
+
`)}var Dp=A({EventStreamContentType:()=>Eg,convertEventStreamToIterableReadableDataStream:()=>xg,getBytes:()=>Fp,getLines:()=>jp,getMessages:()=>$p}),Eg="text/event-stream";async function Fp(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 jp(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=Tg(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 $p(e,t,r){let n=xo(),s=new TextDecoder;return function(a,o,c){if(c){Ig(n)||(e?.(n),n=xo());return}if(a.length===0)e?.(n),n=xo();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 Tg(e,t){let r=new Uint8Array(e.length+t.length);return r.set(e),r.set(t,e.length),r}function xo(){return{data:"",event:"",id:"",retry:void 0}}function xg(e,t){let r=new ReadableStream({async start(n){let s=$p(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 Fp(e,jp((a,o,c)=>{s(a,o,c),c&&n.close()}))}});return Pn.fromReadableStream(r)}function Ig(e){return e.data===""&&e.event===""&&e.id===""&&e.retry===void 0}var Bp=A({});var Vp=A({convertToOpenAIFunction:()=>Up,convertToOpenAITool:()=>Ag,isLangChainTool:()=>_a,isRunnableToolLike:()=>du,isStructuredTool:()=>mu,isStructuredToolParams:()=>gu});function Up(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 Ag(e,t){let r=typeof t=="number"?void 0:t,n;return _a(e)?n={type:"function",function:Up(e)}:n=e,r?.strict!==void 0&&(n.function.strict=r.strict),n}var Hp=A({DEFAULT_LANGSMITH_GATEWAY:()=>Gp,resolveLangSmithGatewayConfig:()=>Dg}),Og="LANGSMITH_GATEWAY",Mg="LANGSMITH_GATEWAY_API_KEY",Ng="LANGSMITH_API_KEY",Gp="https://gateway.smith.langchain.com",Pg=["true","1","yes"],Rg=["false","0","no"];function Lg(e){let t=zt(Og);if(!(!t||Rg.includes(t.toLowerCase())))return`${Pg.includes(t.toLowerCase())?Gp:t.replace(/\/+$/,"")}/${e}`}function Dg({baseURL:e,providerPath:t}){if(e!==void 0)return{baseURL:e};let r=Lg(t);return r===void 0?{}:{baseURL:r,apiKey:zt(Mg)||zt(Ng)}}function wi(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 Wp(e,t){let r=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n];return r}function Fg(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 Kp(e,t){return Math.sqrt(Fg(e,t))}var zp=A({cosineSimilarity:()=>Io,euclideanDistance:()=>Bg,innerProduct:()=>$g,matrixFunc:()=>Si,maximalMarginalRelevance:()=>Vg,normalize:()=>jg});function Si(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 jg(e,t=!1){let r=Ug(e);return e.map(n=>n.map(s=>t?1-s/r:s/r))}function Io(e,t){return Si(e,t,wi)}function $g(e,t){return Si(e,t,Wp)}function Bg(e,t){return Si(e,t,Kp)}function Vg(e,t,r=.5,n=4){if(Math.min(n,t.length)<=0)return[];let s=Io(Array.isArray(e[0])?e:[e],t)[0],i=qp(s).maxIndex,a=[t[i]],o=[i];for(;o.length<Math.min(n,t.length);){let c=-1/0,l=-1,u=Io(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 qp(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 Ug(e){return e.reduce((t,r)=>Math.max(t,qp(r).maxValue),0)}var Jp=A({isCloudMetadata:()=>Ao,isLocalhost:()=>Oo,isPrivateIp:()=>ef,isSafeUrl:()=>Yg,isSameOrigin:()=>Xg,validateSafeUrl:()=>tf}),Hg=["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"],Gg=["169.254.169.254","169.254.170.2","100.100.100.200"],Wg=["metadata.google.internal","metadata","instance-data"],Kg=["localhost","localhost.localdomain"],zg=/^(?:(?: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 Yp(e){return zg.test(e)}function ki(e){return Qp(e)!==null}function Xp(e){return Yp(e)||ki(e)}function Zp(e){if(Yp(e))return e.split(".").map(t=>parseInt(t,10));if(ki(e)){let t=Qp(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 Qp(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 qg(e){let[t,r]=e.split("/");if(!t||!r)return null;let n=Zp(t);if(!n)return null;let s=parseInt(r,10);if(isNaN(s))return null;let i=ki(t);return i&&s>128||!i&&s>32?null:{addr:n,prefixLen:s,isIpv6:i}}function Jg(e,t){let r=Zp(e);if(!r)return!1;let n=qg(t);if(!n)return!1;let s=ki(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 ef(e){if(!Xp(e))return!1;for(let t of Hg)if(Jg(e,t))return!0;return!1}function Ao(e,t){if(Gg.includes(t||""))return!0;let r=e.toLowerCase();return!!Wg.includes(r)}function Oo(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!!Kg.includes(r)}function tf(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(Ao(i))throw new Error(`URL points to cloud metadata endpoint: ${i}`);if(Oo(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(Xp(i)){let o=i;if(Oo(i,o)){if(!r)throw new Error(`URL points to localhost: ${i}`);return e}if(Ao(i,o))throw new Error(`URL resolves to cloud metadata IP: ${o} (${i})`);if(ef(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 Yg(e,t){try{return tf(e,t),!0}catch{return!1}}function Xg(e,t){try{return new URL(e).origin===new URL(t).origin}catch{return!1}}var rf=A({SaveableVectorStore:()=>Zg,VectorStore:()=>Ei,VectorStoreRetriever:()=>Ci}),Ci=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)}},Ei=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 Ci({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 Ci({...a,searchKwargs:e.searchKwargs}):new Ci({...a})}}},Zg=class extends Ei{static load(e,t){throw new Error("Not implemented")}};var nf=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:{}}}},sf=class af 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 af({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 de({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 de({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})}}},of=class cf 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 de({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 cf({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 lf=class extends Qs{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})}},uf=class extends Qs{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 hf=class extends oi{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}},pf=class extends oi{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 ff=class extends Na{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new xe(e))}async addAIMessage(e){this.messages.push(new q(e))}async clear(){this.messages=[]}},mf=class extends Zs{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},df=class extends Gr{name="fake_tracer";runs=[];constructor(){super()}persistRun(e){return this.runs.push(e),Promise.resolve()}};var gf=class extends rt{lc_namespace=["tests","fake"];getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}};var _f=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 yf=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 bf=class extends xu{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 vf=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 wf=class Sf extends Ei{memoryVectors=[];similarity;_vectorstoreType(){return"memory"}constructor(t,{similarity:r,...n}={}){super(t,n),this.similarity=r??wi}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 Sf.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 kf=A({FakeChatMessageHistory:()=>ff,FakeChatModel:()=>nf,FakeEmbeddings:()=>uf,FakeLLM:()=>hf,FakeListChatMessageHistory:()=>mf,FakeListChatModel:()=>of,FakeRetriever:()=>_f,FakeRunnable:()=>yf,FakeSplitIntoListParser:()=>gf,FakeStreamingChatModel:()=>sf,FakeStreamingLLM:()=>pf,FakeTool:()=>bf,FakeTracer:()=>df,FakeVectorStore:()=>wf,SingleRunExtractor:()=>vf,SyntheticEmbeddings:()=>lf,asAsyncIterable:()=>gi,openAIReasoningTextChunks:()=>yi,openAITextOnlyChunks:()=>os,openAITextOnlyChunksWithUsage:()=>_i,openAIToolCallChunks:()=>bi,sseResponseFromOpenAIChunks:()=>vi,streamMatchers:()=>on});var Cf=A({agents:()=>ju,caches:()=>bu,callbacks__base:()=>wl,callbacks__manager:()=>Il,callbacks__promises:()=>xl,chat_history:()=>Xu,document_loaders__base:()=>eh,document_loaders__langsmith:()=>th,documents:()=>Qu,embeddings:()=>rh,errors:()=>Oc,example_selectors:()=>hh,index:()=>Fu,indexing:()=>mh,language_models__base:()=>Eu,language_models__chat_models:()=>Wh,language_models__compat:()=>Uh,language_models__event:()=>zh,language_models__llms:()=>qh,language_models__openai_completions_stream:()=>Kh,language_models__profile:()=>Yh,language_models__stream:()=>Dh,language_models__structured_output:()=>Rh,load__serializable:()=>Uc,memory:()=>Xh,messages:()=>Yu,messages__tool:()=>el,output_parsers:()=>Oh,output_parsers__openai_functions:()=>ep,output_parsers__openai_tools:()=>tp,outputs:()=>Dl,prompt_values:()=>vu,prompts:()=>fp,retrievers:()=>dp,retrievers__document_compressors:()=>mp,runnables:()=>yh,runnables__graph:()=>au,singletons:()=>Ol,stores:()=>gp,structured_query:()=>kp,testing:()=>Mp,tools:()=>Tu,tracers__base:()=>Cl,tracers__console:()=>El,tracers__log_stream:()=>Ll,tracers__run_collector:()=>Np,tracers__tracer_langchain:()=>Tl,types__stream:()=>Pp,utils__async_caller:()=>Fl,utils__chunk_array:()=>Rp,utils__context:()=>Lp,utils__env:()=>vl,utils__event_source_parse:()=>Dp,utils__format:()=>Bp,utils__function_calling:()=>Vp,utils__gateway:()=>Hp,utils__hash:()=>yu,utils__json_patch:()=>bh,utils__json_schema:()=>iu,utils__math:()=>zp,utils__ssrf:()=>Jp,utils__standard_schema:()=>nu,utils__stream:()=>Pl,utils__testing:()=>kf,utils__tiktoken:()=>Cu,utils__types:()=>Mh,utils__uuid:()=>yl,vectorstores:()=>rf});var Qg=50;function e_(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 Ti(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)=>Ti.call({...this,path:[...a,`${m}`],depth:o+1},p)));let u=e;if(Bc(u))return Vc(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=zt(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:Cf,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(Du.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"&&Hc(x)===d);if(typeof T!="function")throw new Error(`Invalid identifer: ${l} -> ${m}`);let O=new T($c(await Ti.call({...this,path:[...a,"kwargs"],depth:o+1},p.kwargs),jc,e_(T)));return Object.defineProperty(O.constructor,"name",{value:d}),O}let h={};for(let[p,m]of Object.entries(u))h[p]=await Ti.call({...this,path:[...a,p],depth:o+1},m);return h}async function Ef(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??Qg};return Ti.call(n,r)}function t_(e){return e!==null&&e.lc===1&&e.type==="constructor"&&Array.isArray(e.id)}function r_(e){return e.lc===2&&e.type==="undefined"}function n_(e){return e.lc===2&&e.type==="delta_snapshot"&&Object.prototype.hasOwnProperty.call(e,"value")}function s_(e){return e.lc===2&&e.type==="constructor"}function cs(e,t){return Array.isArray(e.id)&&e.id.length===1&&e.id[0]===t}function ls(e){return e.method===void 0||e.method===null}function Mo(e){return Array.isArray(e.args)&&e.args.length===1&&Array.isArray(e.args[0])}function i_(e){return e.every(t=>typeof t=="number"&&Number.isInteger(t)&&t>=0&&t<=255)}function a_(e){if(cs(e,"Set")&&ls(e))return Mo(e)?new Set(e.args[0]):void 0;if(cs(e,"Map")&&ls(e))return!Mo(e)||!e.args[0].every(t=>Array.isArray(t)&&t.length===2)?void 0:new Map(e.args[0]);if(cs(e,"RegExp")&&ls(e)){if(!Array.isArray(e.args)||e.args.length!==2||typeof e.args[0]!="string"||typeof e.args[1]!="string")return;try{return new RegExp(e.args[0],e.args[1])}catch{return}}if(cs(e,"Error")&&ls(e))return!Array.isArray(e.args)||e.args.length!==1||typeof e.args[0]!="string"?void 0:new Error(e.args[0]);if(cs(e,"Uint8Array")&&(ls(e)||e.method==="from"))return!Mo(e)||!i_(e.args[0])?void 0:new Uint8Array(e.args[0])}async function No(e){if(e&&typeof e=="object"){if(Array.isArray(e))return await Promise.all(e.map(t=>No(t)));{let t={};for(let[r,n]of Object.entries(e))t[r]=await No(n);return r_(t)?void 0:n_(t)?new qr(t.value):s_(t)?a_(t)??t:t_(t)?Ef(JSON.stringify(t)):t}}return e}function xi(e,t,r,n){return{lc:2,type:"constructor",id:[e.name],method:t??null,args:r??[],kwargs:n??{}}}function o_(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?xi(e.constructor,void 0,[Array.from(e)]):e instanceof RegExp?xi(RegExp,void 0,[e.source,e.flags]):e instanceof Error?xi(Error,void 0,[e.message]):e?.lg_name==="Send"?{node:e.node,args:e.args,...e.timeout!==void 0?{timeout:e.timeout}:{}}:e instanceof Uint8Array?xi(Uint8Array,"from",[Array.from(e)]):e}var Ii=class{_dumps(e){return new TextEncoder().encode(Lu(e,(t,r)=>o_(r)))}async dumpsTyped(e){return e instanceof Uint8Array?["bytes",e]:["json",this._dumps(e)]}async _loads(e){return No(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 Po(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]=Po(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:Po(e.versions_seen??{})}}var Ai=class{serde=new Ii;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 Oi(e,t){return typeof e=="number"&&typeof t=="number"?Math.sign(e-t):String(e).localeCompare(String(t))}function us(...e){return e.reduce((t,r,n)=>n===0?r:Oi(t,r)>=0?t:r)}var hs={[Ca]:-1,[Pr]:-2,[Ea]:-3,[Ta]:-4},Ro=new Set(["thread_id","checkpoint_id","checkpoint_ns","checkpoint_map","langgraph_step","langgraph_node","langgraph_triggers","langgraph_path","langgraph_checkpoint_ns"]);function Mi(e){return e.configurable?.checkpoint_id||e.configurable?.thread_ts||""}var c_=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(c_.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 l_(e){let[t,r,n]=JSON.parse(e);return{threadId:t,checkpointNamespace:r,checkpointId:n}}var Tf=class extends Ai{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?us(...Object.values(s.channel_versions)):this.getNextVersion(void 0)}async getTuple(e){let t=e.configurable?.thread_id,r=e.configurable?.checkpoint_ns??"",n=Mi(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,hs[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))l_(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=Mi(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 u_(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){u_(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 h_=e=>"lg_name"in e&&e.lg_name==="AsyncBatchedStore"?e.store:e,Ni=class extends un{lg_name="AsyncBatchedStore";store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(e){super(),this.store=h_(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 ps(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 p_(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 xf(e,t){return p_(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 If(e,t){if(!t||t==="$")return[JSON.stringify(e,null,2)];let r=Array.isArray(t)?t:ps(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=ps(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 Af=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]:ps(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])=>xf(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,ps(s)]);for(let[s,i]of n){let a=If(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 Pi=class{serde=new Ii;constructor(e){this.serde=e||this.serde}};var f_=/^[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 Do(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}},Lo=Symbol.for("LG_IS_ONLY_BASE_CHANNEL");function hn(e){if(e[Lo]===!0)return e;let t={};for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let n=e[r];Do(n)&&(t[r]=n)}return Object.assign(t,{[Lo]:!0}),t}function Ri(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,{[Lo]:!0}),n}function Fo(e,t){if(!f_.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 Li(e,t){let r=new Set,n=Au();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=Ri(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 m_=e=>e!=null&&e.lc_graph_name==="BinaryOperatorAggregate",Ft=class Of 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 Of(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:m_(t)?this.operator===t.operator:!1}};var ot=class Mf extends ie{lc_graph_name="LastValue";value=[];constructor(t){super(),this.initialValueFactory=t,t&&(this.value=[t()])}fromCheckpoint(t){let r=new Mf(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}},jo=class Nf extends ie{lc_graph_name="LastValueAfterFinish";value=[];finished=!1;fromCheckpoint(t){let r=new Nf;if(typeof t<"u"){let[n,s]=t;r.value=[n],r.finished=s}return r}update(t){return t.length===0?!1:(this.finished=!1,this.value=[t[t.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new W;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}};var Di=class{lc_graph_name="AnnotationRoot";spec;constructor(e){this.spec=e}static isInstance(e){return typeof e=="object"&&e!==null&&"lc_graph_name"in e&&e.lc_graph_name==="AnnotationRoot"}},fs=function(e){return e?Fi(e):new ot};fs.Root=e=>new Di(e);function Fi(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 d_=["tags","metadata","callbacks","configurable"],g_=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","interrupt","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal","heartbeat","executionInfo","serverInfo","control"],__=25,y_=new Set(["thread_id","checkpoint_id","checkpoint_ns","task_id","run_id","assistant_id","graph_id"]);function b_(e,t){if(!e)return t;let r=t??{};for(let n of y_){if(n in r)continue;let s=e[n];s!==void 0&&(r[n]=s)}return r}function Pf(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 v_(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 n=e.copy();for(let s of t)n.addHandler(da(s),!0);return n}if(Array.isArray(e)){let n=t.copy();for(let s of e)n.addHandler(da(s),!0);return n}let r=n=>n.filter((s,i)=>n.findIndex(a=>a===s||a.name==="StreamMessagesHandler"&&s.name==="StreamMessagesHandler")===i);return new Le(t._parentRunId,{handlers:r(e.handlers.concat(t.handlers)),inheritableHandlers:r(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 w_(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:__,configurable:{}},r=w_(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(d_.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||!g_.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=v_(t.callbacks,a):t[i]=a);return t.metadata=b_(t.configurable,t.metadata)??{},t}function S_(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 k_(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 ji(){return oe.getRunnableConfig()}function C_(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 $i(e){return e.split("|").filter(t=>!t.match(/^\d+$/)).map(t=>t.split(":")[0]).join("|")}function Rf(e){let t=e.split("|");for(;t.length>1&&t[t.length-1].match(/^\d+$/);)t.pop();return t.slice(0,-1).join("|")}var $o=class{#e=void 0;requestDrain(e="shutdown"){this.#e=e}get drainRequested(){return this.#e!==void 0}get drainReason(){return this.#e}};var Bo=["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_(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 Vo({namespace:e,mode:t,payload:r,seq:n}){let s=Date.now(),i={type:"event"};switch(t){case"messages":{let{data:a,node:o}=E_(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:T_(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=x_(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 T_(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 x_(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 Uo=Symbol.for("langgraph.stream_channel"),Je=class Ho{[Uo]=!0;channelName;#e=[];#t=[];#n=!1;#i;#s;constructor(t){this.channelName=t}static local(){return new Ho}static remote(t){return new Ho(t)}static isInstance(t){return typeof t=="object"&&t!==null&&Uo in t&&t[Uo]===!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
190
|
`)}
|
|
191
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
|
|
194
|
-
`,t.map(n=>`- ${
|
|
195
|
-
`)].join(""))}function
|
|
196
|
-
`,Object.entries(n).map(([s,i])=>`- ${
|
|
197
|
-
`)].join(""))}var
|
|
198
|
-
data: ${
|
|
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 Lf(e){return Je.isInstance(e)}var I_="custom:";function A_(e){return`${I_}${e}`}function O_(e){return e!=null&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}var Bi=Symbol("resolveValues"),Go=Symbol("rejectValues"),Df=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(Lf(r)){if(this.#o.push(r),typeof r.channelName!="string")continue;let n=A_(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}O_(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))?.[Bi](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[Bi](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[Go](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 Ff(e,t){let r=0;try{for await(let n of e){let[s,i,a]=n;if(i==="values"&&Mr(a)){let c=a[Y];t.markInterrupted(c.map(l=>({interruptId:l.id??"",payload:l.value})))}let o=Vo({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 Vi(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 jf="root";function M_(e){if(e.length===0)return jf;let t=e[e.length-1],r=t.indexOf(":");return r===-1?t:t.slice(0,r)}function N_(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 P_(e){if(!kt(e)||e.event!=="started")return;let t=e.cause;if(kt(t)&&typeof t.type=="string")return t}function R_(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 Wo(e={}){let t=e.rootGraphName??jf,r=e.initialStatus??"running",n=e.emitRootOnRegister??!0,s=e.getGraphName??M_,i=e.serializeError??N_,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=M=>{if(M.length===0)return t;let R=u.get(ae(M));return typeof R=="string"&&R.length>0?R:s(M)},S=(M,R)=>{let L=ae(M);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=M=>{if(!kt(M))return;let R=M.id;if(typeof R!="string")return;let L=M.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=M=>{if(M.length===0)return;let R=u.get(ae(M));if(typeof R!="string"||R.length===0)return;let L=M[M.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=M=>l.get(ae(M))??C(M),O=(M,R,L)=>{let D=ae(M),K=c.get(D),ft=K?.graphName??b(M);if(K!=null&&K.status===R&&K.graphName===ft&&L?.error==null)return;K==null?(K={namespace:M,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:M,timestamp:kn,...Sn}),!(M.length===0&&!n)&&d!=null){y+=1;try{d.push(M,{type:"event",seq:0,method:"lifecycle",params:{namespace:M,timestamp:kn,data:Sn}})}finally{y-=1}}},x=M=>{let R=ae(M),L=c.get(R);return L==null&&(L={namespace:M,graphName:b(M),status:void 0},c.set(R,L)),L},_=()=>{if(m.length===0)return;let M=m.splice(0,m.length);for(let R of M){let L=ae(R.namespace),D=c.get(L);D==null||D.status!=="started"||O(R.namespace,"completed")}},P=M=>{let R=ae(M.namespace),L=c.get(R);L==null||L.status!=="started"||m.some(D=>ae(D.namespace)===R)||m.push(M)},N=(M,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(M)&&m.splice(L,1)}},F=M=>{for(let R=1;R<=M.length;R+=1){let L=M.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=M=>{for(let R of c.values())R.namespace.length!==0&&R.status==="started"&&O(R.namespace,M);O([],M),o.close()},z=async()=>{if(a==null)return j();try{return await a()??j()}catch{return j()}},_e=(M,R)=>{let L=`${R}:`;for(let D of c.values()){if(D.namespace.length!==M.length+1||D.status!=="started"||!St(D.namespace,M))continue;let K=D.namespace[D.namespace.length-1];if(K===R||K.startsWith(L))return D.namespace}},V=(M,R)=>{let L=[...M,`${R.name}:${R.id}`];return c.get(ae(L))?.status==="started"?L:void 0};return{__native:!0,init(){return{_lifecycleLog:o,lifecycle:Vi(o,[],0)}},onRegister(M){d=M,x([]),n&&O([],r)},process(M){let R=M.params.namespace;if(y>0)return!0;let L=M.method==="tasks"?R_(M.params.data):void 0;if(L!=null?N(R,L.name):M.method==="tasks"&&(S(R,M.params.data),k(M.params.data)),_(),M.method==="lifecycle"){let D=P_(M.params.data);return D!=null&&l.set(ae(R),D),F(R),!1}if(F(R),M.method==="input"&&kt(M.params.data)&&M.params.data.event==="requested"){let D=M.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(M.method==="updates"){let D=M.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(M=>{o.fail(M)})}},fail(M){if(v)return;v=!0;let R=i(M);for(let L of c.values())L.namespace.length!==0&&L.status==="started"&&O(L.namespace,"failed");O([],"failed",{error:R}),o.fail(M)}}}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 ms(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 ds(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 Ko(e,t){let{createStream:r}=t,n=new Set;return{__native:!0,init(){return{_discoveries:e._discoveries,subgraphs:ds(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 zo(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 Ui(e){return"__native"in e&&e.__native===!0}var $f=Symbol("setValuesLog"),Bf=Symbol("setMessagesIterable"),qo=Symbol("setLifecycleIterable"),Jo=Symbol("setSubgraphsIterable"),L_={[Symbol.asyncIterator](){return{next:()=>Promise.resolve({value:void 0,done:!0})}}},Yo=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:ds(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=ms(this.path),t=e.init();return this._mux.addTransformer(e),this.#a=t.messages,this.#a}get lifecycle(){return this.#l??L_}messagesFrom(e){let t=ms(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}[Bi](e){this.#i?.(e),this.#i=void 0}[Go](e){this.#s?.(e),this.#s=void 0}[$f](e){this.#o=e}[Bf](e){this.#a=e}[qo](e){this.#l=e}[Jo](e){this.#c=e}},Vf=class extends Yo{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 Xo(e,t=[],r){let{abortController:n}=r instanceof AbortController?{abortController:r}:r??{},s=new Df,i=Wo(),a=i.init(),o=a._lifecycleLog,c=Ko(s,{createStream:(b,S,k)=>{let C=new Vf(b,s,S,k);return C[Jo](ds(s._discoveries,b,S)),C[qo](Vi(o,b,o.size)),C}}),l=c.init();s.addTransformer(c),s.addTransformer(i);let u=zo([]),h=ms([]);s.addTransformer(u),s.addTransformer(h);let p={},m=[];for(let b of t){let S=b();s.addTransformer(S);let k=S.init();Ui(S)?m.push(k):Object.assign(p,k),typeof k=="object"&&k!==null&&!Ui(S)&&s.wireChannels(k)}let d=new Yo([],s,0,0,p,n);for(let b of m)Object.assign(d,b);let y=u.init();d[$f](y._valuesLog);let v=h.init();return d[Bf](v.messages),d[qo](a.lifecycle),d[Jo](l.subgraphs),s.register([],d),Ff(e,s).catch(b=>{}),d}var I=e=>BigInt(e),X=(e,t=0)=>new DataView(e.buffer,e.byteOffset+t,e.byteLength-t),Wf=I("0x9E3779B1"),Kf=I("0x85EBCA77"),D_=I("0xC2B2AE3D"),hr=I("0x9E3779B185EBCA87"),Fr=I("0xC2B2AE3D27D4EB4F"),zf=I("0x165667B19E3779F9"),ec=I("0x85EBCA77C2B2AE63"),F_=I("0x27D4EB2F165667C5"),j_=I("0x165667919E3779F9"),$_=I("0x9FB21C651E98DF25"),B_=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=B_("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),gn=(I(1)<<I(128))-I(1),B=(I(1)<<I(64))-I(1),Ki=(I(1)<<I(32))-I(1),jt=64,qf=jt/8,V_=8,Hi=4;function _n(e){if(!e)throw new Error("Assert failed")}function U_(e){let t=new DataView(new ArrayBuffer(8));return t.setBigUint64(0,e,!0),t.getBigUint64(0,!1)}function H_(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 G_(e,t){return(e&Ki)*(t&Ki)&B}function W_(e,t){return(e<<t|e>>I(32)-t)&Ki}function Jf(e,t,r){for(let n=0;n<qf;n+=1){let s=t.getBigUint64(n*8,!0),i=s^r.getBigUint64(n*8,!0);e[n^1]+=s,e[n]+=G_(i,i>>I(32))}return e}function Uf(e,t,r,n){for(let s=0;s<n;s+=1)Jf(e,X(t,s*jt),X(r,s*8));return e}function K_(e,t){for(let r=0;r<qf;r+=1){let n=t.getBigUint64(r*8,!0),s=e[r];s=Zo(s,I(47)),s^=n,s*=Wf,e[r]=s&B}return e}function Gi(e,t){return Yf(e[0]^t.getBigUint64(0,!0),e[1]^t.getBigUint64(V_,!0))}function Hf(e,t,r){let n=r;return n+=Gi(e.slice(0),X(t,0*Hi)),n+=Gi(e.slice(2),X(t,4*Hi)),n+=Gi(e.slice(4),X(t,8*Hi)),n+=Gi(e.slice(6),X(t,12*Hi)),Et(n&B)}function z_(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=Uf(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=Uf(i,X(t,c*o),r,l),i=n(i,X(t,t.byteLength-jt),X(r,r.byteLength-jt-7))}return i}function q_(e,t){let r=new BigUint64Array([D_,hr,Fr,zf,ec,Kf,F_,Wf]);_n(e.byteLength>128),r=z_(r,e,t,Jf,K_),_n(r.length*8===64);{let n=Hf(r,X(t,11),I(e.byteLength)*hr&B);return Hf(r,X(t,t.byteLength-jt-11),~(I(e.byteLength)*Fr)&B)<<I(64)|n}}function Yf(e,t){let r=e*t&gn;return r&B^r>>I(64)}function Gf(e,t,r){return Yf((e.getBigUint64(0,!0)^t.getBigUint64(0,!0)+r)&B,(e.getBigUint64(8,!0)^t.getBigUint64(8,!0)-r)&B)}function Wi(e,t,r,n,s){let i=e&B,a=e>>I(64)&B;return i+=Gf(t,n,s),i^=r.getBigUint64(0,!0)+r.getBigUint64(8,!0),i&=B,a+=Gf(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*=j_,t&=B,t^=t>>I(32),t}function zi(e){let t=e;return t^=t>>I(33),t*=Fr,t&=B,t^=t>>I(29),t*=zf,t&=B,t^=t>>I(32),t}function J_(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(zi((W_(H_(s),I(13))^a)&B)&B)<<I(64)|zi(i)}function Zo(e,t){return e^e>>t}function Y_(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),Zo(Zo(a&B,I(35))*$_&B,I(28))|Et(a>>I(64))<<I(64)}}function X_(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&Ki)*(Kf-I(1))<<I(64),c&=gn,c^=U_(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 Z_(e,t){let r=e.byteLength;return _n(r<=16),r>8?X_(e,Ct,t):r>=4?Y_(e,Ct,t):r>0?J_(e,Ct,t):zi(t^Ct.getBigUint64(64,!0)^Ct.getBigUint64(72,!0))|zi(t^Ct.getBigUint64(80,!0)^Ct.getBigUint64(88,!0))<<I(64)}function Qo(e){return~e+I(1)&B}function Q_(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=Wi(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))*ec+(I(e.byteLength)-r&B)*Fr;return a&=B,a=Qo(Et(a)),i|a<<I(64)}function ey(e,t,r){let n=I(e.byteLength)*hr&B;for(let a=32;a<160;a+=32)n=Wi(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=Wi(n,X(e,a-32),X(e,a-16),X(t,3+a-160),r);n=Wi(n,X(e,e.byteLength-16),X(e,e.byteLength-32),X(t,103),Qo(r));let s=n+(n>>I(64))&B;s=Et(s);let i=(n&B)*hr+(n>>I(64))*ec+(I(e.byteLength)-r&B)*Fr;return i&=B,i=Qo(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(Z_(n,t)):s<=128?i(Q_(n,Ct,t)):s<=240?i(ey(n,Ct,t)):i(q_(n,Ct))}function qi(e){return/^[0-9a-f]{32}$/.test(e)}function tc(e){let t=oe.getRunnableConfig();if(!t)throw new Error("Called interrupt() outside the context of a graph.");let r=t.configurable;if(!r)throw new Error("No configurable found in config");if(!r.__pregel_checkpointer)throw new Nr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=r[Ae];n.interruptCounter+=1;let s=n.interruptCounter;if(n.resume.length>0&&s<n.resume.length)return r[Se]?.([[Oe,n.resume]]),n.resume[s];if(n.nullResume!==void 0){if(n.resume.length!==s)throw new Error(`Resume length mismatch: ${n.resume.length} !== ${s}`);let a=n.consumeNullResume();return n.resume.push(a),r[Se]?.([[Oe,n.resume]]),a}let i=r[Ue]?.split("|");throw new Mt([{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 rc(e){return e!=null&&typeof e=="function"&&e instanceof Object.getPrototypeOf(async function*(){}).constructor}function nc(e){return e!=null&&typeof e=="function"&&e instanceof Object.getPrototypeOf(function*(){}).constructor}function ty(e){return typeof e=="object"&&e?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var Be={[Symbol.for("LG_PASSTHROUGH")]:!0};function Ji(e){return typeof e=="object"&&e?.[Symbol.for("LG_PASSTHROUGH")]!==void 0}var sc=Symbol("IS_WRITER"),te=class ac 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=>ic(s)&&Ji(s.value)?{mapper:s.mapper,value:t}:Yi(s)&&Ji(s.value)?{channel:s.channel,value:t,skipNone:s.skipNone,mapper:s.mapper}:s);return await ac.doWrite(r,n),t}static async doWrite(t,r){for(let i of r){if(Yi(i)){if(i.channel==="__pregel_tasks")throw new $("Cannot write to the reserved channel TASKS");if(Ji(i.value))throw new $("PASSTHROUGH value must be replaced")}if(ic(i)&&Ji(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(ic(i)){let a=await i.mapper.invoke(i.value,t);a!=null&&a.length>0&&n.push(...a)}else if(Yi(i)){let a=i.mapper!==void 0?await i.mapper.invoke(i.value,t):i.value;if(ty(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 ac||sc in t&&!!t[sc]}static registerWriter(t){return Object.defineProperty(t,sc,{value:!0})}};function Yi(e){return e!==void 0&&typeof e.channel=="string"}function ic(e){return e!==void 0&&!Yi(e)&&H.isRunnable(e.mapper)}var Xf=class Zf extends fe{lc_graph_name="ChannelRead";channel;fresh=!1;mapper;constructor(t,r,n=!1){super({trace:!1,func:(s,i)=>Zf.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 gs 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 gs({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 gs({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 gs({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 gs({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 ry(e){return"steps"in e&&Array.isArray(e.steps)}function _s(e){return"lg_is_pregel"in e&&e.lg_is_pregel===!0}function Xi(e){let t=[e];for(let r of t){if(_s(r))return r;ry(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*Qf(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[Ne,_t,n];else if(typeof n=="string")yield[Ne,`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(qi))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[Ne,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[Ne,r,n];else for(let[r,n]of Object.entries(e.update))yield[Ne,r,n]}}function*Zi(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*Qi(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*em(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 ea(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=ea(t);return Object.fromEntries(Object.entries(t).filter(([n,s])=>s>(e[n]??r)))}else return t}function tm(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 rm=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 nm(e){return typeof e=="object"&&e!==null&&"__lg_type"in e&&e.__lg_type==="call"}function sm(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 im(e,t){return new fe({func:(r,n)=>t(r,n),name:e,trace:!1,recurse:!1})}function am({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 om=e=>e!==void 0?e+1:1;function ny(e,t){if(t==null)return!1;for(let r of e)if(t[r])return!0;return!1}function sy(e){let t;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t==null?t=e[r]:t=us(t,e[r]));return t}function ys(e,t,r){let n=ea(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=Ri(o,l);Re(it(l),u,[r],void 0,void 0),a=ut({...t,...u},n)}else a=ut(t,n);return a}function ta(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 iy=new Set([jn,Me,Oe,Y,ar,nr,Ln]),ay=new Set(Nu);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]),ay.has(y)||c.add(y)}let l=sy(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)iy.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&&!ny(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*oy(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 cy(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:cy(t)},l=n[_t];if(l?.isAvailable()){let u=l.get().length;for(let h=0;h<u;h+=1){let p=na([Me,h],e,t,r,n,s,i,c);p!==void 0&&(o[p.id]=p)}}for(let u of oy(e,r,c)){let h=na([Bs,u],e,t,r,n,s,i,c);h!==void 0&&(o[h.id]=h)}return o}function na(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"&&nm(e[e.length-1])){let m=e[e.length-1],d=sm(m.name,m.func),y=[Me],v=p===""?m.name:`${p}|${m.name}`,b=yt(JSON.stringify([v,c.toString(),m.name,Me,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=>ta(_=>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]:ra({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:[js,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=Vs(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(!Vs(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=[Me],b=p===""?y.node:`${p}|${y.node}`,S=yt(JSON.stringify([b,c.toString(),y.node,Me,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=>ta(N=>x.push(...N),n,P),[Ie]:(P,N=!1)=>vn(t,s,{name:y.node,writes:x,triggers:v,path:e},P,N),[We]:l??h.__pregel_checkpointer,[ke]:{...h[ke],[p]:t.id},[Ae]:ra({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:[js,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,Bs,m]),t.id);if(o.pendingWritesIndex?o.pendingWritesIndex.successfulWriteTaskIds.has(k):r.some(C=>C[0]===k&&C[1]!=="__error__"))return}let y=ea(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=ly(d,s,a);if(S===void 0)return;let k=p===""?m:`${p}|${m}`,C=yt(JSON.stringify([k,c.toString(),m,Bs,[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]:N=>ta(F=>{_.push(...F)},n,N),[Ie]:(N,F=!1)=>vn(t,s,{name:m,writes:_,triggers:[b],path:e},N,F),[We]:l??h.__pregel_checkpointer,[ke]:{...h[ke],[p]:t.id},[Ae]:ra({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:[js,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 cm(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=[Me],b=y===""?t:`${y}|${t}`,S=yt(JSON.stringify([b,l.toString(),t,Me,"node_error_handler",e.id]),n.id),k=`${b}:${S}`,C=[Me,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]:_=>ta(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]:ra({pendingWrites:s??[],taskId:S,currentTaskInput:e.input,resumeMap:o.configurable?.[Ar],namespaceHash:Tt(k)}),[sr]:n.channel_values[or],[Fn]:new Ks(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 ly(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 lm(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 ra({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 bs={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},vs=(e,t)=>`${e.start}${t}${e.end}`;function uy(e){if(e==null)return;let t={};if(e.metadata!=null)for(let[n,s]of Object.entries(e.metadata))Ro.has(n)||(t[n]=s);let r=Pf(e.tags);return r!=null&&(t.tags=r),Object.keys(t).length>0?t:void 0}function*sa(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=uy(s);c!=null&&(o.metadata=c),yield o}}function hy(e){return typeof e!="object"||e===null?!1:"$writes"in e&&Array.isArray(e.$writes)}function um(e){let t={};for(let[r,n]of e){let s=String(r);if(s in t){let i=hy(t[s])?t[s].$writes:[t[s]];i.push(n),t[s]={$writes:i}}else t[s]=n}return t}function*hm(e,t){for(let[{id:r,name:n,config:s},i]of e)s?.tags?.includes("langsmith:hidden")||(yield{id:r,name:n,result:um(i.filter(([a])=>Array.isArray(t)?t.includes(a):a===t)),interrupts:i.filter(a=>a[0]===Y).map(a=>a[1])})}function*pm(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(Xi))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:oc(s,i,u,o),parentConfig:a?c(a):void 0}}function oc(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?um(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 fm(e,t,r){console.log([`${vs(bs.blue,`[${e}:checkpoint]`)}`,`\x1B[1m State at the end of step ${e}:\x1B[0m
|
|
193
|
+
`,JSON.stringify(ut(t,r),null,2)].join(""))}function ws(e,t){let r=t.length;console.log([`${vs(bs.blue,`[${e}:tasks]`)}`,`\x1B[1m Starting step ${e} with ${r} task${r===1?"":"s"}:\x1B[0m
|
|
194
|
+
`,t.map(n=>`- ${vs(bs.green,String(n.name))} -> ${JSON.stringify(n.input,null,2)}`).join(`
|
|
195
|
+
`)].join(""))}function mm(e,t,r){let n={};for(let[s,i]of t)r.includes(s)&&(n[s]||(n[s]=[]),n[s].push(i));console.log([`${vs(bs.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])=>`- ${vs(bs.yellow,s)} -> ${i.map(a=>JSON.stringify(a)).join(", ")}`).join(`
|
|
197
|
+
`)].join(""))}var ia=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}},lc=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}}},_m=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 py(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 fy(e){return e instanceof Error?{error:e.name,message:e.message}:{error:"Error",message:JSON.stringify(e)}}function uc(e){return typeof e!="object"||e==null?!1:"configurable"in e&&typeof e.configurable=="object"&&e.configurable!=null}function cc(e){return!uc(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 dm(e){if(uc(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 gm(e){let t={...e,checkpoint:cc(e.config),parent_checkpoint:cc(e.parentConfig),config:dm(e.config),parent_config:dm(e.parentConfig),tasks:e.tasks.map(r=>{if(uc(r.state)){let n=cc(r.state);if(n!=null){let s={...r,checkpoint:n};return delete s.state,s}}return r})};return delete t.parentConfig,t}function ym(e){let t=new TextEncoder;return new ReadableStream({async start(r){let n=s=>{r.enqueue(t.encode(`event: ${s.event}
|
|
198
|
+
data: ${py(s.data)}
|
|
199
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=Nn(),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 de({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)||Cn.isInstance(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(re.isInstance(l)||Cn.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}
|
|
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:gm(l.payload)})}a==="checkpoints"&&(c=gm(o)),n({event:i?.length?`${a}|${i.join("|")}`:a,data:c})}}catch(s){n({event:"error",data:fy(s)})}r.close()}})}function bm(...e){return new lc({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 vm=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 aa=Symbol.for("INPUT_DONE"),hc=Symbol.for("INPUT_RESUMING"),my=25;function wm(e){if(!(e==null||typeof e!="object")){if(re.isInstance(e)){let t=e;t.id==null&&(t.id=Mn(),t.lc_kwargs!=null&&(t.lc_kwargs.id=t.id));return}if(Array.isArray(e)){for(let t of e)wm(t);return}}}function Sm(e){return e===void 0||e===""?[]:e.split("|")}function dy(e){if(!e)return[];let t="";for(let r of Object.keys(e))r!==""&&r.length>t.length&&(t=r);return Sm(t)}var gy=class extends Pi{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}},km=class Cm{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===hc,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=om,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 gy(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=bm(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=Sm(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[$s].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(([,N])=>N!==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??my)+1,_={...m.channel_versions},P=t.store?new Ni(t.store):void 0;return P&&await P.start(),new Cm({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 hs)&&(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,lm(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)&&wm(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(em(this.outputKeys,[[s,r]],n),"updates")));n||this._emit(pr(xt(hm([[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(![aa,hc].includes(this.input))await this._first(r);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new Mt;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(Qi(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),ys(this.checkpoint,this.interruptAfter,s))throw this.status="interrupt_after",new Mt;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(pm(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(ys(this.checkpoint,this.interruptBefore,n))throw this.status="interrupt_before",new Mt;if(this.stream.modes.has("tasks")||this.stream.modes.has("debug")){let s=await ct(xt(sa(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(Qi(this.outputKeys,Object.values(this.tasks).flatMap(n=>n.writes),this.channels),"values")))),Nt(t)&&!t.interrupts.length&&this._emit([["updates",{[Y]:[]}],["values",{[Y]:[]}]],this.#e())),r}async acceptPush(t,r,n){if(this.interruptAfter?.length>0&&ys(this.checkpoint,this.interruptAfter,[t])){this.toInterrupt.push(t);return}let s=na([Me,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&&ys(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}(this.stream.modes.has("tasks")||this.stream.modes.has("debug"))&&this._emit(pr(xt(sa([s]),"tasks"))),this.debug&&ws(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=cm(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(sa([s]),"tasks"))),this.debug&&ws(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 Nt(t)&&!this.isNested}async _first(t){let{configurable:r}=this.config,n=r?.[Ae];if(n&&n.nullResume!==void 0&&this.putWrites(Ne,[[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(qi)&&(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 Qf(this.input,this.checkpointPendingWrites))u[h]??=[],u[h].push([p,m]);if(Object.keys(u).length===0)throw new Js("Received empty Command input");for(let[h,p]of Object.entries(u))this.putWrites(h,p)}let s=(this.checkpointPendingWrites??[]).filter(l=>l[0]===Ne).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(Qi(this.outputKeys,!0,this.channels),"values"));c?this.input=hc:a&&(await this._putCheckpoint({source:"input"}),this.input=aa),this._emitValuesWithCheckpointMeta(u)}else{let l=await ct(Zi(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,Ne,p,m]);else this.checkpointer!=null&&this.putWrites(Ne,h);await this._putCheckpoint({source:"input"}),this.input=aa}else if("__pregel_resuming"in(this.config.configurable??{}))this.input=aa;else throw new Js(`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 vm(u)}this.config=le(this.config,{[Ir]:this.isResuming,[$s]: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=dy(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?Li(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=Li(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=Fo(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 _y(e){return ee(e?.message)}function Em(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 Tm=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&&(Ts(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]=Em(a,i,o))}handleLLMNewToken(e,t,r,n,s,i){let a=i?.chunk;this.emittedChatModelRunIds[r]=!0,this.metadatas[r]!==void 0&&(_y(a)?this._emit(this.metadatas[r],a.message,r):this._emit(this.metadatas[r],new de({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]=Em(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 xm(e){if("response_metadata"in e&&typeof e.response_metadata=="object"&&e.response_metadata!=null)return e.response_metadata}function Im(e){if("usage_metadata"in e&&typeof e.usage_metadata=="object"&&e.usage_metadata!=null)return e.usage_metadata}function yy(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 by(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 Am=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:yy(c)},r);let h=by({...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",...Im(t)!=null?{usage:Im(t)}:{},...xm(t)!=null?{responseMetadata:xm(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)||Cn.isInstance(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(re.isInstance(l)||Cn.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 vy=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}},wy=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 Sy(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 wy(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 Om(e,t,r,n){let s=new vy(r.refreshOn??"auto"),i=new AbortController,{signal:a,dispose:o}=mr(t.signal,i.signal),c=Sy({...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 qs({node:String(e.name),elapsed:v,kind:y.kind,runTimeout:r.runTimeout,idleTimeout:r.idleTimeout})}var ky=[400,401,402,403,404,405,406,407,409],Cy=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&&ky.includes(+t)||e?.error?.code==="insufficient_quota")};async function oa(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 Om(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,wa(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=Rf(y);a.command=new je({...a.command,graph:b})}}if(cr(a)||s===void 0||(i+=1,i>=(s.maxAttempts??3))||!(s.retryOn??Cy)(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 pc=Symbol.for("promiseAdded");function Ey(){let e={next:()=>{},wait:Promise.resolve(pc)};function t(r){e.next=()=>{e.wait=new Promise(t),r(pc)}}return e.wait=new Promise(t),e}var Mm=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))&&(Nt(v)||cr(v)&&!Nt(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(Nt(a)||Gs(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,{[Mu]:c}),{signals:c,disposeCombinedSignal:o}}async*_executeTasksWithRetry(e,t){let{retryPolicy:r,maxConcurrency:n,signals:s}=t??{},i=Ey(),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]=oa(v,r,{[gt]:fc?.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===pc)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]=oa(v,r,{[gt]:fc?.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(Nt(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 Gs(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 fc(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 rm({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=oa(l,i.retry,{[gt]:fc.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 Nm({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 mc(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 Ty(e){return Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1])}var dc=class Pm 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 Pm({unique:this.unique,accumulate:this.accumulate});return typeof t>"u"?r:Ty(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 xy(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
201
|
data: ${JSON.stringify(n.params.data??{})}
|
|
202
202
|
|
|
203
203
|
`))}}catch(n){r.enqueue(t.encode(`event: error
|
|
204
204
|
data: ${JSON.stringify({message:String(n)})}
|
|
205
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}},
|
|
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&&!pa(C))return C;if(S(T))try{let O=T.getName();return O=O.startsWith("Runnable")?O.slice(8):O,O}catch{return T.getName()}else return T.name??"UnknownSchema"},[v,b]=r.extend(y,h);if(v===void 0)throw new Error(`Could not extend subgraph "${l}" due to missing entrypoint.`);b!==void 0&&(n[h]={name:k(b.id,b.data),...b}),s[h]={name:k(v.id,v.data),...v}}else{let v=r.addNode(p,h,m);n[h]=v,s[h]=v}}else{let d=r.addNode(p,h,m);n[h]=d,s[h]=d}}let c=[...this.builder.allEdges].sort(([l],[u])=>l<u?-1:u>l?1:0);for(let[l,u]of c)o(ue(l),ue(u));for(let[l,u]of Object.entries(this.builder.branches)){let h={...Object.fromEntries(Object.keys(this.builder.nodes).filter(p=>p!==l).map(p=>[ue(p),ue(p)])),[Q]:Q};for(let p of Object.values(u)){let m;p.ends!==void 0?m=p.ends:m=h;for(let[d,y]of Object.entries(m))o(ue(l),ue(y),d,!0)}}for(let[l,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let h of u.ends)o(ue(l),ue(h),void 0,!0);return 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&&!pa(C))return C;if(S(T))try{let O=T.getName();return O=O.startsWith("Runnable")?O.slice(8):O,O}catch{return T.getName()}else return T.name??"UnknownSchema"},[v,b]=r.extend(y,h);if(v===void 0)throw new Error(`Could not extend subgraph "${l}" due to missing entrypoint.`);b!==void 0&&(n[h]={name:k(b.id,b.data),...b}),s[h]={name:k(v.id,v.data),...v}}else{let v=r.addNode(p,h,m);n[h]=v,s[h]=v}}else{let d=r.addNode(p,h,m);n[h]=d,s[h]=d}}let c=[...this.builder.allEdges].sort(([l],[u])=>l<u?-1:u>l?1:0);for(let[l,u]of c)o(ue(l),ue(u));for(let[l,u]of Object.entries(this.builder.branches)){let h={...Object.fromEntries(Object.keys(this.builder.nodes).filter(p=>p!==l).map(p=>[ue(p),ue(p)])),[Q]:Q};for(let p of Object.values(u)){let m;p.ends!==void 0?m=p.ends:m=h;for(let[d,y]of Object.entries(m))o(ue(l),ue(y),d,!0)}}for(let[l,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let h of u.ends)o(ue(l),ue(h),void 0,!0);return 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(me),i=n.map(me);for(let u of s)(u.id===null||u.id===void 0)&&(u.id=Nn(),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=Nn(),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(me),s=r.map(me),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=me(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{Uu as a,Tg as b,Vp as c,Pg as d,Zs as e,Va as f,Ah as g,Oh as h,dd as i,gd as j,Ha as k,lr as l,si as m,ur as n,Id as o,yg as p,Xs as q,Z as r,Q as s,Y as t,ga as u,Ou as v,xr as w,ce as x,Zm as y,Nr as z,je as A,pe as B,Ke as C,Bs as D,ya as E,Mr as F,Vs as G,Us as H,Nt as I,Hs as J,Gs as K,ed as L,Ws as M,ba as N,cr as O,Mt as P,Ks as Q,td as R,zs as S,W as T,$ as U,rd as V,va as W,nd as X,$n as Y,sd as Z,nt as _,ao as $,sn 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};
|
|
206
|
+
`))}finally{r.close()}}})}var Rm=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)}},Iy=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)}},ca=class extends Iy{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 dc({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(){Nm({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=Xi(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===Ne).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:oc(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 Nr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_read===void 0&&e.configurable?.__pregel_checkpointer===void 0){let a=$i(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 Nr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_checkpointer===void 0){let i=$i(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 Nr("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});if(t.length===0)throw new Error("No supersteps provided");if(t.some(a=>a.updates.length===0))throw new Error("No updates provided");let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_checkpointer===void 0){let a=$i(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]===Ne).map(P=>P.slice(1));_.length>0&&Re(u,b,[{name:dt,writes:_,triggers:[]}],r.getNextVersion.bind(r),this.triggerToNodes);for(let[P,N,F]of l.pendingWrites||[])["__error__","__interrupt__",Pr].includes(N)||P in x&&x[P].writes.push([N,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=N=>!Array.isArray(N)||N.length===0?!1:N.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 N=dr(_,l.pendingWrites,this.nodes,b,P,!1,{step:p+2}),F=Object.values(N).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 M=G[V].length,R=F[V]?.[M]?.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(Zi(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(N=>N[0]===Ne).map(N=>N.slice(1));_.length>0&&Re(l.checkpoint,b,[{name:dt,writes:_,triggers:[]}],void 0,this.triggerToNodes);for(let[N,F,j]of l.pendingWrites)["__error__","__interrupt__",Pr].includes(F)||x[N]===void 0||x[N].writes.push([F,j]);let P=Object.values(x).filter(N=>N.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 N=Object.entries(u.versions_seen).map(([F,j])=>Object.values(j).map(G=>[G,F])).flat().filter(([F,j])=>j!==Y).sort(([F],[j])=>Oi(F,j));N&&(N.length===1?_=N[0][1]:N[N.length-1][0]!==N[N.length-2][0]&&(_=N[N.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 N=this.nodes[x].getWriters();if(!N.length)throw new $(`No writers found for node "${x.toString()}"`);C.push({name:x,input:_,proc:N.length>1?et.from(N,{omitSequenceTags:!0}):N[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]!==Me);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]===Me);_.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:mc(u,this.channels);let h=n;h===void 0?h=this.inputChannels:mc(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=ji()?.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 ia(t?.encoding==="text/event-stream"?ym(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:Bo,subgraphs:!0,encoding:void 0},o=this.stream(e,a),c=Xo({[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 ia(xy(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 ia(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 lc({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 Am(z=>C.push(z)):new Tm(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 _m(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=ji()?.configurable?.[Ue]?.split("|").slice(0,-1);C.push([G??[],"custom",j])},p.interrupt??=this.userInterrupt??tc,p.serverInfo==null&&(p.serverInfo=Ay(p)),p.control??=new $o;let T={tracerInheritableMetadata:Ny(p)},O=await(await Le._configureSync(p?.callbacks,void 0,p?.tags,void 0,p?.metadata,void 0,T))?.handleChainStart(this.toJSON(),tm(e,"input"),o,void 0,void 0,void 0,p?.runName??this.getName()),x=hn(this.channels),_,P,F=(async()=>{try{_=await km.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 Mm({loop:_,nodeFinished:p.configurable?.[Ou]});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"?Mr(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&&fm(t.checkpointMetadata.step,t.channels,this.streamChannelsList),n&&ws(t.step,Object.values(t.tasks)),await r.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(a,o)=>{n&&mm(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 Hs(t.control.drainReason??"shutdown");if(t.status==="out_of_steps")throw new va([`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 Ay(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 Oy=new Set(["key","token","secret","password","auth"]);function My(e,t){let r=e.toLowerCase(),n=!1;for(let s of Oy)if(r.includes(s)){n=!0;break}return e.startsWith("__")||!(typeof t=="string"||typeof t=="number"||typeof t=="boolean")||n}function Ny(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}My(s,i)||(n[s]=i)}return Object.keys(n).length>0?n:void 0}var ht=class Lm extends ie{lc_graph_name="EphemeralValue";guard;value=[];constructor(t=!0){super(),this.guard=t}fromCheckpoint(t){let r=new Lm(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 gc=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===Ws.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}},_c=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:_s(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 gc(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 yc({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 Sa([`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}},yc=class extends ca{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]=Rm.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 ga,n={[Z]:r.addNode({schema:tr.any()},Z)},s={},i={};t&&(i=Object.fromEntries((await ct(this.getSubgraphsAsync())).filter(l=>Dm(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&&!ma(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 Fm(this.builder.nodes,a,o),r}getGraph(e){let t=e?.xray,r=new ga,n={[Z]:r.addNode({schema:tr.any()},Z)},s={},i={};t&&(i=Object.fromEntries(pr(this.getSubgraphs()).filter(l=>Dm(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&&!ma(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 Fm(this.builder.nodes,a,o),r}};function Dm(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function ue(e){return e==="subgraph"?`"${e}"`:e}function Fm(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 bc(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"jsonSchema"in e["~standard"]}function Py(e){return Bt(e)&&bc(e)}function gr(e){if(bc(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 Ry=e=>e!=null&&e.lc_graph_name==="DeltaChannel",la=class jm 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 jm(this.reducer,{snapshotFrequency:this.snapshotFrequency,initialValueFactory:this.initialValueFactory});return t===void 0?r.value=this.initialValueFactory():xa(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:!Ry(t)||this.snapshotFrequency!==t.snapshotFrequency?!1:this.reducer===t.reducer}};var vc=Symbol.for("langgraph.channel.missing"),ua=class $m extends ie{lc_graph_name="UntrackedValue";guard;_value=vc;initialValueFactory;constructor(t){super(),this.guard=t?.guard??!0,this.initialValueFactory=t?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new $m({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===vc)throw new W;return this._value}checkpoint(){}isAvailable(){return this._value!==vc}};var _r=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),wc=class Bm extends ie{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let r=new Bm(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)}},Sc=class Vm 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 Vm(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 kc=Symbol.for("langgraph.state.reduced_value"),Ut=class{[kc]=!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&&kc in e&&e[kc]===!0}};var Um=Symbol.for("langgraph.state.untracked_value"),Br=class{[Um]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&Um in e}};var Cc=Symbol.for("langgraph.state.delta_value"),Ht=class{[Cc]=!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&&Cc in e&&e[Cc]===!0}};var Ec=Symbol.for("langgraph.state.state_schema"),pt=class{[Ec]=!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 la(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 ua({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&&Ec in e&&e[Ec]===!0}};var Ly="__remove_all__";function yr(e,t){let r=Array.isArray(e)?e:[e],n=Array.isArray(t)?t:[t],s=r.map(me),i=n.map(me);for(let u of s)(u.id===null||u.id===void 0)&&(u.id=Mn(),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=Mn(),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 Tc(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(me),s=r.map(me),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 Hm=tr.custom().default(()=>[]),Gm=tr.custom(),Dy=new Ut(Hm,{inputSchema:Gm,reducer:yr,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}}),Fy=new Ht(Hm,{inputSchema:Gm,reducer:Tc,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var jy=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=Ps(e,Object.fromEntries(i)),Os(s)&&(s._def.unknownKeys="strip")}return t.asPartial&&(s=Zt(s)),n.set(e,s),this._extensionCache.set(r,n),s}},Ss=new jy;function Wm(e,t){if(t.reducer&&!t.default){let r=Rs(e);r!=null&&(t.default=r)}if(t.reducer){let r=Object.assign(e,{lg_reducer_schema:t.reducer?.schema??e});return Ss.extend(r,()=>t),r}else return Ss.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"||Do(t)))}function Km(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__",ha=Symbol.for("langgraph.state.partial"),xc=class extends _c{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=Ss;_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=ha:this._inputRuntimeDefinition=ha,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(Km(e)){if(be(t)||Di.isInstance(t))return{...e,context:t};let r=t;return{...e,input:e.input??r?.input,output:e.output??r?.output,context:e.context??r?.context,interrupt:e.interrupt??r?.interrupt,writer:e.writer??r?.writer,nodes:e.nodes??r?.nodes}}if(Vr(e)){if(be(t)||Di.isInstance(t))return{state:e,context:t};let r=t;return{state:e,input:r?.input,output:r?.output,context:r?.context,interrupt:r?.interrupt,writer:r?.writer,nodes:r?.nodes}}if(By(e))return{state:$y(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:_s(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 qm({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,ba,zm(),{withReader:!1});for(let[b]of Object.entries(this.nodes))d.attachBranch(b,ba,zm(),{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 $y(e){let t={};for(let[r,n]of Object.entries(e))r===Gt?t[r]=Fi(n):t[r]=Fi(n);return t}var qm=class extends yc{description;_metaRegistry=Ss;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 jo: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 Sc(new Set(e)):new wc(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=>Xf.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===ha&&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===ha)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 Mr(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return be(t)&&Xt(t,e),e}};function By(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function Vy(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 zs(n);ce(n.goto)||typeof n.goto=="string"?r.push(n.goto):Array.isArray(n.goto)&&r.push(...n.goto)}return r}function zm(){return new gc({path:new fe({func:Vy,tags:[se],trace:!1,recurse:!1,name:"<control_branch>"})})}var Uy=class extends xc{constructor(){super({channels:{__root__:{reducer:yr,default:()=>[]}}})}};function Hy(e,t){let{stateKey:r,...n}=t??{},s=fn(n),i=r??"messages";r===null&&(i=void 0);let a=me(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:[],c=o.find(u=>"name"in u&&u.name==="StreamMessagesHandler"),l=o.find(u=>"name"in u&&u.name==="StreamProtocolMessagesHandler");if(c||l){let u=s.metadata??{},h=(u.langgraph_checkpoint_ns??"").split("|");c?c._emit([h,u],a,void 0,!1):l&&l.emitFinalMessage([h,u],a,void 0,!1)}return i&&s.configurable?.__pregel_send?.([[i,a]]),a}function Gy(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(rc(t)||nc(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)=>am({func:t,name:n,retry:s,cache:o,timeout:i},...c)}var Jm=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(rc(r)||nc(r))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let c="updates",l=im(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 ca({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})};Jm.final=function({value:t,save:r}){return{value:t,save:r,__lg_type:"__pregel_final"}};function Wy(){return oe.getRunnableConfig().configurable?.[sr]}var Ky=fs.Root({messages:fs({reducer:yr,default:()=>[]})}),Ym={reducer:{fn:yr},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},zy=Qt.object({messages:Wm(Qt.custom(),Ym)});function qy(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{Wu as a,Ag as b,Gp as c,Dg as d,ei as e,Ha as f,Nh as g,Ph as h,yd as i,bd as j,Wa as k,lr as l,ai as m,ur as n,Md as o,wg as p,Qs as q,Z as r,Q as s,Y as t,ya as u,Pu as v,xr as w,ce as x,td as y,Mr as z,je as A,pe as B,Ke as C,Us as D,va as E,Nr as F,Hs as G,Gs as H,Mt as I,Ws as J,Ks as K,nd as L,zs as M,wa as N,cr as O,Nt as P,qs as Q,sd as R,Js as S,W as T,$ as U,id as V,Sa as W,ad as X,$n as Y,od as Z,nt as _,co as $,sn as aa,Dr as ba,it as ca,Ai as da,Tf as ea,un as fa,Ni as ga,Af as ha,ie as ia,Ft as ja,fs as ka,S_ as la,k_ as ma,ji as na,C_ as oa,$o as pa,Bo as qa,mn as ra,Vo as sa,Je as ta,Vi as ua,Wo as va,ms as wa,ds as xa,Ko as ya,zo as za,Ui as Aa,Yo as Ba,Vf as Ca,Xo as Da,tc as Ea,fe as Fa,_c as Ga,Bt as Ha,Py as Ia,gr as Ja,Vt as Ka,la as La,ua as Ma,Ut as Na,Br as Oa,Ht as Pa,pt as Qa,Ly as Ra,yr as Sa,Tc as Ta,Dy as Ua,Fy as Va,Ss as Wa,Wm as Xa,xc as Ya,qm as Za,Uy as _a,Hy as $a,Gy as ab,Jm as bb,Wy as cb,Ky as db,Ym as eb,zy as fb,qy as gb};
|