@esri/solutions-components 5.1.0-next.143 → 5.1.0-next.145
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/{LEK4P4OY.js → 25NZZKXC.js} +1 -1
- package/dist/cdn/2BIUOM64.js +2 -0
- package/dist/cdn/{S5AQVTR2.js → 2PUK3PST.js} +1 -1
- package/dist/cdn/{KUGXNF5Y.js → 2UMMLVCR.js} +1 -1
- package/dist/cdn/{LYAXTCCM.js → 34CZ4EWR.js} +4 -3
- package/dist/cdn/{SOLCNPHW.js → 3DCFUYKP.js} +1 -1
- package/dist/cdn/{P67K4TAX.js → 3JQ2RXVJ.js} +1 -1
- package/dist/cdn/3V2UWENT.js +2 -0
- package/dist/cdn/{7WD3GNG4.js → 4JVDUPVW.js} +1 -1
- package/dist/cdn/{BNRFT546.js → 5DEYOM7D.js} +1 -1
- package/dist/cdn/{WLM4HMMF.js → 5LF6C3S5.js} +1 -1
- package/dist/cdn/{4JGB6WLL.js → 5NQNJZTE.js} +1 -1
- package/dist/cdn/{4MAZNAHZ.js → 5OFQVDNK.js} +1 -1
- package/dist/cdn/{NV2DLQDN.js → 6MOTC6CE.js} +1 -1
- package/dist/cdn/{PUCDO65D.js → 6T35OGRG.js} +1 -1
- package/dist/cdn/{FVOCVCEE.js → 72X4E4QW.js} +1 -1
- package/dist/cdn/{Y77RX7KL.js → 7ADKNWWI.js} +1 -1
- package/dist/cdn/{DKEYOEI7.js → 7CLM77HQ.js} +1 -1
- package/dist/cdn/{IFONVCBL.js → A27DLHRU.js} +1 -1
- package/dist/cdn/{3UKDJZ2D.js → AE5HNAOV.js} +1 -1
- package/dist/cdn/{YQWQG523.js → AOWNMC3W.js} +1 -1
- package/dist/cdn/{U4RHWD57.js → AZN2E5DL.js} +1 -1
- package/dist/cdn/BMMIXOTR.js +2 -0
- package/dist/cdn/{6Z3DXRF6.js → BQE6IVEF.js} +1 -1
- package/dist/cdn/{EDZIFJZR.js → C5ZH23YO.js} +1 -1
- package/dist/cdn/{7GXMCAWQ.js → CVRBLJ5O.js} +1 -1
- package/dist/cdn/{ENG5BCAV.js → DXQQQNOF.js} +1 -1
- package/dist/cdn/{BGLTC5SO.js → F26SXWZ5.js} +1 -1
- package/dist/cdn/{4RLG6MXK.js → G3F52QRW.js} +1 -1
- package/dist/cdn/{IEOFEUZI.js → G3FTF6WH.js} +1 -1
- package/dist/cdn/{AHB7W7RI.js → GJD7AOUI.js} +1 -1
- package/dist/cdn/{RRD4QUQS.js → HLKEBN2O.js} +1 -1
- package/dist/cdn/{J3HJC4SO.js → HPWNNMVU.js} +2 -2
- package/dist/cdn/{ZCSF2MJ5.js → I7XBRB6B.js} +1 -1
- package/dist/cdn/{SGQBWAPU.js → IDEOFV22.js} +1 -1
- package/dist/cdn/{FW2HWQC7.js → IEC46RE7.js} +1 -1
- package/dist/cdn/{ULFPP7PF.js → IEN3TA4W.js} +1 -1
- package/dist/cdn/{LKZFKOG4.js → KDNGZ47C.js} +1 -1
- package/dist/cdn/{7FJTZ7VA.js → L3UI7EZZ.js} +1 -1
- package/dist/cdn/{MC5ARLKZ.js → L6P26BYB.js} +1 -1
- package/dist/cdn/{U3CNAJQZ.js → LCV5GKUD.js} +3 -3
- package/dist/cdn/{X6JL6SAH.js → LJY6BB64.js} +1 -1
- package/dist/cdn/{MT5J66WR.js → LL647FJR.js} +1 -1
- package/dist/cdn/{KSQHSNTW.js → M4II4TSX.js} +1 -1
- package/dist/cdn/{E5E6J57F.js → MEZL3ZHS.js} +28 -27
- package/dist/cdn/MHVLVLRA.js +2 -0
- package/dist/cdn/{UOGZGAJD.js → MIH5YMTN.js} +1 -1
- package/dist/cdn/{K4TDKKPB.js → MPCJZCL5.js} +1 -1
- package/dist/cdn/MZ73EAAV.js +29 -0
- package/dist/cdn/{C4OXBZJK.js → NIYB3TEW.js} +1 -1
- package/dist/cdn/{TX3LBQ6V.js → NOXANMDF.js} +1 -1
- package/dist/cdn/{QHDEVLC3.js → P4XNRWG7.js} +1 -1
- package/dist/cdn/{EPOIEXNS.js → PBGG3TGN.js} +1 -1
- package/dist/cdn/{H2UL463J.js → PBMTIFFX.js} +1 -1
- package/dist/cdn/{VBJSVR6T.js → PECGJO2P.js} +1 -1
- package/dist/cdn/{FILMKUOU.js → PNESECPO.js} +1 -1
- package/dist/cdn/{Z23BVIGQ.js → QFZK4TD4.js} +1 -1
- package/dist/cdn/QGCF64WY.js +2 -0
- package/dist/cdn/{5LIR6BQY.js → QKJJHBMB.js} +1 -1
- package/dist/cdn/{ZCPVOS4Q.js → QQXQAU33.js} +1 -1
- package/dist/cdn/{56XVVIG7.js → RIHOGDUV.js} +1 -1
- package/dist/cdn/{AGB374BK.js → RUQ4RO4T.js} +1 -1
- package/dist/cdn/{MVF7I3RU.js → UKQPYE7U.js} +1 -1
- package/dist/cdn/{BVSSQNES.js → ULUJKWT5.js} +1 -1
- package/dist/cdn/{U6JZYJ4D.js → UM3P3Q52.js} +1 -1
- package/dist/cdn/VO53567V.js +2 -0
- package/dist/cdn/WKS3TKDC.js +2 -0
- package/dist/cdn/WUKFT5AY.js +4 -0
- package/dist/cdn/{QQEYWBVV.js → XGWDWPRK.js} +1 -1
- package/dist/cdn/{XXGM7HGO.js → XGYNSCTA.js} +1 -1
- package/dist/cdn/{DNPN62O5.js → Y4KGXRSD.js} +1 -1
- package/dist/cdn/{SSIUWTQX.js → Y6QJCLML.js} +1 -1
- package/dist/cdn/{WGS5W6W5.js → YVIEKHQQ.js} +1 -1
- package/dist/cdn/{I22C4HE4.js → ZHXREM2D.js} +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/arcgis-solutions-assistant/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/solution-builder-assistant/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/solution-deployed-card/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/solution-deployed-card-panel/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/converter.js +633 -367
- package/dist/chunks/deployFlowController.js +46 -0
- package/dist/chunks/designSolution.js +4 -3
- package/dist/chunks/explainValidationFailure.js +32 -0
- package/dist/chunks/solution-builder-assistant.js +163 -78
- package/dist/chunks/updateDesign.js +1 -1
- package/dist/components/arcgis-solutions-assistant/customElement.js +396 -318
- package/dist/components/arcgis-solutions-assistant/index.js +1 -1
- package/dist/components/solution-builder-assistant/customElement.js +3 -2
- package/dist/components/solution-deploying-dialog/customElement.js +12 -12
- package/dist/components/solution-details-panel/customElement.js +112 -102
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/solutions-components_commit.txt +6 -6
- package/package.json +1 -1
- package/dist/cdn/5MPYPIR2.js +0 -2
- package/dist/cdn/FYT4Q5GJ.js +0 -2
- package/dist/cdn/GLQZHYJP.js +0 -4
- package/dist/cdn/ILLTWR2W.js +0 -2
- package/dist/cdn/RUF6QBY7.js +0 -2
- package/dist/cdn/S6U6SXMD.js +0 -2
- package/dist/cdn/SYZEWVHU.js +0 -2
|
@@ -18,7 +18,7 @@ Right ${t}`)}}var bt=class vk extends Ce{static isInstance(t){if(!super.isInstan
|
|
|
18
18
|
Please upgrade your packages to versions that set`,"message tool calls. e.g., `pnpm install @langchain/anthropic`,","pnpm install @langchain/openai`, etc."].join(" "));try{if(r!=null&&i===void 0){let[n,a]=Mc(r);t.tool_calls=n??[],t.invalid_tool_calls=a??[]}else t.tool_calls=t.tool_calls??[],t.invalid_tool_calls=t.invalid_tool_calls??[]}catch{t.tool_calls=[],t.invalid_tool_calls=[]}if(t.response_metadata!==void 0&&"output_version"in t.response_metadata&&t.response_metadata.output_version==="v1"&&(t.contentBlocks=t.content,t.content=void 0),t.contentBlocks!==void 0){if(t.tool_calls){let a=t.tool_calls.filter(o=>!t.contentBlocks?.some(s=>s.type==="tool_call"&&s.id===o.id&&s.name===o.name));t.contentBlocks.push(...a.map(o=>({type:"tool_call",id:o.id,name:o.name,args:o.args})))}let n=t.contentBlocks.filter(a=>a.type==="tool_call").filter(a=>!t.tool_calls?.some(o=>o.id===a.id&&o.name===a.name));n.length>0&&(t.tool_calls=[...t.tool_calls??[],...n.map(a=>({type:"tool_call",id:a.id,name:a.name,args:a.args}))])}}super(t),typeof t!="string"&&(this.tool_calls=t.tool_calls??this.tool_calls,this.invalid_tool_calls=t.invalid_tool_calls??this.invalid_tool_calls),this.usage_metadata=t.usage_metadata}static lc_name(){return"AIMessage"}get contentBlocks(){if(this.response_metadata&&"output_version"in this.response_metadata&&this.response_metadata.output_version==="v1")return this.content;if(this.response_metadata&&"model_provider"in this.response_metadata&&typeof this.response_metadata.model_provider=="string"){let t=Lh(this.response_metadata.model_provider);if(t)return t.translateContent(this)}let e=super.contentBlocks;if(this.tool_calls){let t=this.tool_calls.filter(r=>!e.some(i=>i.id===r.id&&i.name===r.name));e.push(...t.map(r=>({type:"tool_call",id:r.id,name:r.name,args:r.args})))}return e}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}static isInstance(e){return super.isInstance(e)&&e.type==="ai"}};function Wo(e){return e._getType()==="ai"}function zc(e){return e._getType()==="ai"}var Qe=class extends bt{type="ai";tool_calls=[];invalid_tool_calls=[];tool_call_chunks=[];usage_metadata;constructor(e){let t;if(typeof e=="string"||Array.isArray(e))t={content:e,tool_calls:[],invalid_tool_calls:[],tool_call_chunks:[]};else if(e.tool_call_chunks===void 0||e.tool_call_chunks.length===0)t={...e,tool_calls:e.tool_calls??[],invalid_tool_calls:[],tool_call_chunks:[],usage_metadata:e.usage_metadata!==void 0?e.usage_metadata:void 0};else{let r=rd(e.tool_call_chunks??[]);t={...e,tool_call_chunks:r.tool_call_chunks,tool_calls:r.tool_calls,invalid_tool_calls:r.invalid_tool_calls,usage_metadata:e.usage_metadata!==void 0?e.usage_metadata:void 0}}super(t),this.tool_call_chunks=t.tool_call_chunks??this.tool_call_chunks,this.tool_calls=t.tool_calls??this.tool_calls,this.invalid_tool_calls=t.invalid_tool_calls??this.invalid_tool_calls,this.usage_metadata=t.usage_metadata}get lc_aliases(){return{...super.lc_aliases,tool_calls:"tool_calls",invalid_tool_calls:"invalid_tool_calls",tool_call_chunks:"tool_call_chunks",usage_metadata:"usage_metadata"}}static lc_name(){return"AIMessageChunk"}get contentBlocks(){if(this.response_metadata&&"output_version"in this.response_metadata&&this.response_metadata.output_version==="v1")return this.content;if(this.response_metadata&&"model_provider"in this.response_metadata&&typeof this.response_metadata.model_provider=="string"){let t=Lh(this.response_metadata.model_provider);if(t)return t.translateContent(this)}let e=super.contentBlocks;if(this.tool_calls&&typeof this.content!="string"){let t=this.content.filter(r=>r.type==="tool_call").map(r=>r.id);for(let r of this.tool_calls)r.id&&!t.includes(r.id)&&e.push({...r,type:"tool_call",id:r.id,name:r.name,args:r.args})}return e}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,tool_call_chunks:this.tool_call_chunks,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}concat(e){let t={content:Pt(this.content,e.content),additional_kwargs:Ke(this.additional_kwargs,e.additional_kwargs),response_metadata:td(this.response_metadata,e.response_metadata),tool_call_chunks:[],tool_calls:[],id:this.id??e.id};if(this.tool_call_chunks!==void 0||e.tool_call_chunks!==void 0){let i=Oi(this.tool_call_chunks,e.tool_call_chunks);i!==void 0&&i.length>0&&(t.tool_call_chunks=i)}if(this.tool_calls!==void 0||e.tool_calls!==void 0){let i=Oi(this.tool_calls,e.tool_calls);i!==void 0&&i.length>0&&(t.tool_calls=i)}(this.usage_metadata!==void 0||e.usage_metadata!==void 0)&&(t.usage_metadata=Ko(this.usage_metadata,e.usage_metadata));let r=this.constructor;return new r(t)}static isInstance(e){return super.isInstance(e)&&e.type==="ai"}};var nn=class Fk extends Ce{static lc_name(){return"ChatMessage"}type="generic";role;static _chatMessageClass(){return Fk}constructor(t,r){(typeof t=="string"||Array.isArray(t))&&(t={content:t,role:r}),super(t),this.role=t.role}static isInstance(t){return super.isInstance(t)&&t.type==="generic"}get _printableFields(){return{...super._printableFields,role:this.role}}},Aa=class extends bt{static lc_name(){return"ChatMessageChunk"}type="generic";role;constructor(e,t){(typeof e=="string"||Array.isArray(e))&&(e={content:e,role:t}),super(e),this.role=e.role}concat(e){let t=this.constructor;return new t({content:Pt(this.content,e.content),additional_kwargs:Ke(this.additional_kwargs,e.additional_kwargs),response_metadata:Ke(this.response_metadata,e.response_metadata),role:this.role,id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type==="generic"}get _printableFields(){return{...super._printableFields,role:this.role}}};function Bk(e){return e._getType()==="generic"}function Vk(e){return e._getType()==="generic"}var Ca=class extends Ce{static lc_name(){return"FunctionMessage"}type="function";name;constructor(e){super(e),this.name=e.name}},Oa=class extends bt{static lc_name(){return"FunctionMessageChunk"}type="function";concat(e){let t=this.constructor;return new t({content:Pt(this.content,e.content),additional_kwargs:Ke(this.additional_kwargs,e.additional_kwargs),response_metadata:Ke(this.response_metadata,e.response_metadata),name:this.name??"",id:this.id??e.id})}};function Zk(e){return e._getType()==="function"}function Hk(e){return e._getType()==="function"}var rt=class extends Ce{static lc_name(){return"HumanMessage"}type="human";constructor(e){super(e)}static isInstance(e){return super.isInstance(e)&&e.type==="human"}},Pa=class extends bt{static lc_name(){return"HumanMessageChunk"}type="human";constructor(e){super(e)}concat(e){let t=this.constructor;return new t({content:Pt(this.content,e.content),additional_kwargs:Ke(this.additional_kwargs,e.additional_kwargs),response_metadata:Ke(this.response_metadata,e.response_metadata),id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type==="human"}};function Gk(e){return e.getType()==="human"}function Jk(e){return e.getType()==="human"}var an=class extends Ce{type="remove";id;constructor(e){super({...e,content:[]}),this.id=e.id}get _printableFields(){return{...super._printableFields,id:this.id}}static isInstance(e){return super.isInstance(e)&&e.type==="remove"}};var Gt=class nd extends Ce{static lc_name(){return"SystemMessage"}type="system";constructor(t){super(t)}concat(t){if(typeof t=="string")return new nd({content:Pt(this.content,t),additional_kwargs:this.additional_kwargs,response_metadata:this.response_metadata,id:this.id,name:this.name});if(nd.isInstance(t))return new nd({content:Pt(this.content,t.content),additional_kwargs:{...this.additional_kwargs,...t.additional_kwargs},response_metadata:{...this.response_metadata,...t.response_metadata},id:this.id??t.id,name:this.name??t.name});throw new Error("Unexpected chunk type for system message")}static isInstance(t){return super.isInstance(t)&&t.type==="system"}},oi=class extends bt{static lc_name(){return"SystemMessageChunk"}type="system";constructor(e){super(e)}concat(e){let t=this.constructor;return new t({content:Pt(this.content,e.content),additional_kwargs:Ke(this.additional_kwargs,e.additional_kwargs),response_metadata:Ke(this.response_metadata,e.response_metadata),id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type==="system"}};function Kk(e){return e._getType()==="system"}function Wk(e){return e._getType()==="system"}function hj(e){return e.isCustomTool===!0}var qk=e=>e();function gj(e){return Pi(e)?e:typeof e.id=="string"&&e.type==="function"&&typeof e.function=="object"&&e.function!==null&&"arguments"in e.function&&typeof e.function.arguments=="string"&&"name"in e.function&&typeof e.function.name=="string"?{id:e.id,args:JSON.parse(e.function.arguments),name:e.function.name,type:"tool_call"}:e}function _j(e){return typeof e=="object"&&e!=null&&e.lc===1&&Array.isArray(e.id)&&e.kwargs!=null&&typeof e.kwargs=="object"}function Fh(e){let t,r;if(_j(e)){let i=e.id.at(-1);i==="HumanMessage"||i==="HumanMessageChunk"?t="user":i==="AIMessage"||i==="AIMessageChunk"?t="assistant":i==="SystemMessage"||i==="SystemMessageChunk"?t="system":i==="FunctionMessage"||i==="FunctionMessageChunk"?t="function":i==="ToolMessage"||i==="ToolMessageChunk"?t="tool":t="unknown",r=e.kwargs}else{let{type:i,...n}=e;t=i,r=n}if(t==="human"||t==="user")return new rt(r);if(t==="ai"||t==="assistant"){let{tool_calls:i,...n}=r;if(!Array.isArray(i))return new Ee(r);let a=i.map(gj);return new Ee({...n,tool_calls:a})}else{if(t==="system")return new Gt(r);if(t==="developer")return new Gt({...r,additional_kwargs:{...r.additional_kwargs,__openai_role__:"developer"}});if(t==="tool"&&"tool_call_id"in r)return new gt({...r,content:r.content,tool_call_id:r.tool_call_id,name:r.name});if(t==="remove"&&"id"in r&&typeof r.id=="string")return new an({...r,id:r.id});throw ii(new Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.
|
|
19
19
|
|
|
20
20
|
Received: ${JSON.stringify(e,null,2)}`),"MESSAGE_COERCION_FAILURE")}}function It(e){if(typeof e=="string")return new rt(e);if(We(e))return e;if(Array.isArray(e)){let[t,r]=e;return Fh({type:t,content:r})}else if(ed(e)){let{role:t,...r}=e;return Fh({...r,type:t})}else return Fh(e)}function yj(e){if(typeof e=="string")return e;switch(e.type){case"text":return e.text??"";case"text-plain":return e.text??"[text-plain file]";case"image":case"image_url":return"[image]";case"audio":case"input_audio":return"[audio]";case"video":return"[video]";case"file":return"[file]";case"reasoning":case"tool_call":case"tool_call_chunk":case"invalid_tool_call":case"server_tool_call":case"server_tool_call_chunk":case"server_tool_call_result":case"non_standard":return"";default:return e.type?`[${e.type}]`:""}}function qo(e,t="Human",r="AI"){let i=[];for(let n of e){let a;if(n.type==="human")a=t;else if(n.type==="ai")a=r;else if(n.type==="system")a="System";else if(n.type==="tool")a="Tool";else if(n.type==="generic")a=n.role;else throw new Error(`Got unsupported message type: ${n.type}`);let o=n.name?`${n.name}, `:"",s=typeof n.content=="string"?n.content:Array.isArray(n.content)?n.content.map(yj).filter(Boolean).join(""):"",c=`${a}: ${o}${s}`;if(n.type==="ai"){let u=n;u.tool_calls&&u.tool_calls.length>0?c+=JSON.stringify(u.tool_calls):u.additional_kwargs&&"function_call"in u.additional_kwargs&&(c+=JSON.stringify(u.additional_kwargs.function_call))}i.push(c)}return i.join(`
|
|
21
|
-
`)}function vj(e){if(e.data!==void 0)return e;{let t=e;return{type:t.type,data:{content:t.text,role:t.role,name:void 0,tool_call_id:void 0}}}}function Dc(e){let t=vj(e);switch(t.type){case"human":return new rt(t.data);case"ai":return new Ee(t.data);case"system":return new Gt(t.data);case"function":if(t.data.name===void 0)throw new Error("Name must be defined for function messages");return new Ca(t.data);case"tool":if(t.data.tool_call_id===void 0)throw new Error("Tool call ID must be defined for tool messages");return new gt(t.data);case"generic":if(t.data.role===void 0)throw new Error("Role must be defined for chat messages");return new nn(t.data);default:throw new Error(`Got unexpected type: ${t.type}`)}}function Xk(e){return e.map(Dc)}function Yk(e){return e.map(t=>t.toDict())}function Na(e){let t=e._getType();if(t==="human")return new Pa({...e});if(t==="ai"){let r={...e};return"tool_calls"in r&&(r={...r,tool_call_chunks:r.tool_calls?.map(i=>({...i,type:"tool_call_chunk",index:void 0,args:JSON.stringify(i.args)}))}),new Qe({...r})}else{if(t==="system")return new oi({...e});if(t==="function")return new Oa({...e});if(nn.isInstance(e))return new Aa({...e});throw new Error("Unknown message type.")}}function rd(e){let t=e.reduce((n,a)=>{let o=n.findIndex(([s])=>"id"in a&&a.id&&"index"in a&&a.index!==void 0?a.id===s.id&&a.index===s.index:"id"in a&&a.id?a.id===s.id:"index"in a&&a.index!==void 0?a.index===s.index:!1);return o!==-1?n[o].push(a):n.push([a]),n},[]),r=[],i=[];for(let n of t){let a=null,o=n.some(hj),s=n[0]?.name??"",c=n.map(f=>f.args||"").join(""),u=o?c:c.trim(),l=u.length?u:"{}",d=n.find(f=>f.id)?.id??n[0]?.id;if(o&&d){r.push({name:s,args:{input:u},id:d,type:"tool_call"});continue}try{if(a=Cn(l),!d||a===null||typeof a!="object"||Array.isArray(a))throw new Error("Malformed tool call chunk args.");r.push({name:s,args:a,id:d,type:"tool_call"})}catch{i.push({name:s,args:l,id:d,error:"Malformed args.",type:"invalid_tool_call"})}}return{tool_call_chunks:e,tool_calls:r,invalid_tool_calls:i}}var Qk=A({BaseCache:()=>t$,InMemoryCache:()=>Bh,defaultHashKeyEncoder:()=>e$,deserializeStoredGeneration:()=>bj,serializeGeneration:()=>wj}),e$=(...e)=>Vo(e.join("_"));function bj(e){return e.message!==void 0?{text:e.text,message:Dc(e.message)}:{text:e.text}}function wj(e){let t={text:e.text};return e.message!==void 0&&(t.message=e.message.toDict()),t}var t$=class{keyEncoder=e$;makeDefaultKeyEncoder(e){this.keyEncoder=e}},xj=new Map,Bh=class r$ extends t${cache;constructor(t){super(),this.cache=t??new Map}lookup(t,r){return Promise.resolve(this.cache.get(this.keyEncoder(t,r))??null)}async update(t,r,i){this.cache.set(this.keyEncoder(t,r),i)}static global(){return new r$(xj)}};var n$="ffffffff-ffff-ffff-ffff-ffffffffffff";var i$="00000000-0000-0000-0000-000000000000";var a$=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function Ni(e){return typeof e=="string"&&a$.test(e)}function Ra(e){if(!Ni(e))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var Et=[];for(let e=0;e<256;++e)Et.push((e+256).toString(16).slice(1));function wr(e,t=0){return(Et[e[t+0]]+Et[e[t+1]]+Et[e[t+2]]+Et[e[t+3]]+"-"+Et[e[t+4]]+Et[e[t+5]]+"-"+Et[e[t+6]]+Et[e[t+7]]+"-"+Et[e[t+8]]+Et[e[t+9]]+"-"+Et[e[t+10]]+Et[e[t+11]]+Et[e[t+12]]+Et[e[t+13]]+Et[e[t+14]]+Et[e[t+15]]).toLowerCase()}function o$(e,t=0){let r=wr(e,t);if(!Ni(r))throw TypeError("Stringified UUID is invalid");return r}var Sj=new Uint8Array(16);function Ri(){return crypto.getRandomValues(Sj)}var Uc={};function id(e,t,r){let i,n=e?._v6??!1;if(e){let a=Object.keys(e);a.length===1&&a[0]==="_v6"&&(e=void 0)}if(e)i=s$(e.random??e.rng?.()??Ri(),e.msecs,e.nsecs,e.clockseq,e.node,t,r);else{let a=Date.now(),o=Ri();kj(Uc,a,o),i=s$(o,Uc.msecs,Uc.nsecs,n?void 0:Uc.clockseq,n?void 0:Uc.node,t,r)}return t??wr(i)}function kj(e,t,r){return e.msecs??=-1/0,e.nsecs??=0,t===e.msecs?(e.nsecs++,e.nsecs>=1e4&&(e.node=void 0,e.nsecs=0)):t>e.msecs?e.nsecs=0:t<e.msecs&&(e.node=void 0),e.node||(e.node=r.slice(10,16),e.node[0]|=1,e.clockseq=(r[8]<<8|r[9])&16383),e.msecs=t,e}function s$(e,t,r,i,n,a,o=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!a)a=new Uint8Array(16),o=0;else if(o<0||o+16>a.length)throw new RangeError(`UUID byte range ${o}:${o+15} is out of buffer bounds`);t??=Date.now(),r??=0,i??=(e[8]<<8|e[9])&16383,n??=e.slice(10,16),t+=122192928e5;let s=((t&268435455)*1e4+r)%4294967296;a[o++]=s>>>24&255,a[o++]=s>>>16&255,a[o++]=s>>>8&255,a[o++]=s&255;let c=t/4294967296*1e4&268435455;a[o++]=c>>>8&255,a[o++]=c&255,a[o++]=c>>>24&15|16,a[o++]=c>>>16&255,a[o++]=i>>>8|128,a[o++]=i&255;for(let u=0;u<6;++u)a[o++]=n[u];return a}function c$(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():$j(e,t,r)}function $j(e,t,r){e=e||{};let i=e.random??e.rng?.()??Ri();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return wr(i)}function Ij(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function Vh(e,t){return e<<t|e>>>32-t}function u$(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],i=new Uint8Array(e.length+1);i.set(e),i[e.length]=128,e=i;let n=e.length/4+2,a=Math.ceil(n/16),o=new Array(a);for(let s=0;s<a;++s){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=e[s*64+u*4]<<24|e[s*64+u*4+1]<<16|e[s*64+u*4+2]<<8|e[s*64+u*4+3];o[s]=c}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<a;++s){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=o[s][m];for(let m=16;m<80;++m)c[m]=Vh(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],f=r[3],p=r[4];for(let m=0;m<80;++m){let g=Math.floor(m/20),y=Vh(u,5)+Ij(g,l,d,f)+p+t[g]+c[m]>>>0;p=f,f=d,d=Vh(l,30)>>>0,l=u,u=y}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+f>>>0,r[4]=r[4]+p>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}function Ej(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}var l$="6ba7b810-9dad-11d1-80b4-00c04fd430c8",d$="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function f$(e,t,r,i,n,a){let o=typeof r=="string"?Ej(r):r,s=typeof i=="string"?Ra(i):i;if(typeof i=="string"&&(i=Ra(i)),i?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,n){if(a??=0,a<0||a+16>n.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)n[a+u]=c[u];return n}return wr(c)}function ad(e,t,r,i){return f$(80,u$,e,t,r,i)}ad.DNS=l$;ad.URL=d$;function p$(e){let t=Tj(typeof e=="string"?Ra(e):e);return typeof e=="string"?wr(t):t}function Tj(e){return Uint8Array.of((e[6]&15)<<4|e[7]>>4&15,(e[7]&15)<<4|(e[4]&240)>>4,(e[4]&15)<<4|(e[5]&240)>>4,(e[5]&15)<<4|(e[0]&240)>>4,(e[0]&15)<<4|(e[1]&240)>>4,(e[1]&15)<<4|(e[2]&240)>>4,96|e[2]&15,e[3],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function m$(e,t,r){e??={},r??=0;let i=id({...e,_v6:!0},new Uint8Array(16));if(i=p$(i),t){if(r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;n++)t[r+n]=i[n];return t}return wr(i)}var Zh={};function g$(e,t,r){let i;if(e)i=h$(e.random??e.rng?.()??Ri(),e.msecs,e.seq,t,r);else{let n=Date.now(),a=Ri();Aj(Zh,n,a),i=h$(a,Zh.msecs,Zh.seq,t,r)}return t??wr(i)}function Aj(e,t,r){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function h$(e,t,r,i,n=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!i)i=new Uint8Array(16),n=0;else if(n<0||n+16>i.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);return t??=Date.now(),r??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],i[n++]=t/1099511627776&255,i[n++]=t/4294967296&255,i[n++]=t/16777216&255,i[n++]=t/65536&255,i[n++]=t/256&255,i[n++]=t&255,i[n++]=112|r>>>28&15,i[n++]=r>>>20&255,i[n++]=128|r>>>14&63,i[n++]=r>>>6&255,i[n++]=r<<2&255|e[10]&3,i[n++]=e[11],i[n++]=e[12],i[n++]=e[13],i[n++]=e[14],i[n++]=e[15],i}function _$(e){if(!Ni(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}var y$=A({MAX:()=>Cj,NIL:()=>Oj,parse:()=>Pj,stringify:()=>Nj,v1:()=>Rj,v4:()=>Hh,v5:()=>od,v6:()=>Mj,v7:()=>zr,validate:()=>Xo,version:()=>jj}),Cj=n$,Oj=i$,Pj=Ra,Nj=o$,Rj=id,Hh=c$,od=ad,Mj=m$,zr=g$,Xo=Ni,jj=_$;var v$=A({BaseCallbackHandler:()=>xr,callbackHandlerPrefersChatModelStreamEvents:()=>Gh,callbackHandlerPrefersStreaming:()=>Lc,isBaseCallbackHandler:()=>Jh}),zj=class{};function Lc(e){return"lc_prefer_streaming"in e&&e.lc_prefer_streaming}function Gh(e){return"lc_prefer_chat_model_stream_events"in e&&e.lc_prefer_chat_model_stream_events}var xr=class extends zj{lc_serializable=!1;get lc_namespace(){return["langchain_core","callbacks",this.name]}get lc_secrets(){}get lc_attributes(){}get lc_aliases(){}get lc_serializable_keys(){}static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,Bo(this.constructor)]}lc_kwargs;ignoreLLM=!1;ignoreChain=!1;ignoreAgent=!1;ignoreRetriever=!1;ignoreCustomEvent=!1;raiseError=!1;awaitHandlers=Ht("LANGCHAIN_CALLBACKS_BACKGROUND")==="false";constructor(e){super(),this.lc_kwargs=e||{},e&&(this.ignoreLLM=e.ignoreLLM??this.ignoreLLM,this.ignoreChain=e.ignoreChain??this.ignoreChain,this.ignoreAgent=e.ignoreAgent??this.ignoreAgent,this.ignoreRetriever=e.ignoreRetriever??this.ignoreRetriever,this.ignoreCustomEvent=e.ignoreCustomEvent??this.ignoreCustomEvent,this.raiseError=e.raiseError??this.raiseError,this.awaitHandlers=this.raiseError||(e._awaitHandler??this.awaitHandlers))}copy(){return new this.constructor(this)}toJSON(){return ut.prototype.toJSON.call(this)}toJSONNotImplemented(){return ut.prototype.toJSONNotImplemented.call(this)}static fromMethods(e){class t extends xr{name=zr();constructor(){super(),Object.assign(this,e)}}return new t}},Jh=e=>{let t=e;return t!==void 0&&typeof t.copy=="function"&&typeof t.name=="string"&&typeof t.awaitHandlers=="boolean"};var b$=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function Dj(e){return typeof e=="string"&&b$.test(e)}var Fc=Dj;function Uj(e){if(!Fc(e))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var sd=Uj;var Tt=[];for(let e=0;e<256;++e)Tt.push((e+256).toString(16).slice(1));function Yo(e,t=0){return(Tt[e[t+0]]+Tt[e[t+1]]+Tt[e[t+2]]+Tt[e[t+3]]+"-"+Tt[e[t+4]]+Tt[e[t+5]]+"-"+Tt[e[t+6]]+Tt[e[t+7]]+"-"+Tt[e[t+8]]+Tt[e[t+9]]+"-"+Tt[e[t+10]]+Tt[e[t+11]]+Tt[e[t+12]]+Tt[e[t+13]]+Tt[e[t+14]]+Tt[e[t+15]]).toLowerCase()}var Lj=new Uint8Array(16);function Qo(){return crypto.getRandomValues(Lj)}function Fj(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():Bj(e,t,r)}function Bj(e,t,r){e=e||{};let i=e.random??e.rng?.()??Qo();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return Yo(i)}var Ma=Fj;function Vj(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function Kh(e,t){return e<<t|e>>>32-t}function Zj(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],i=new Uint8Array(e.length+1);i.set(e),i[e.length]=128,e=i;let n=e.length/4+2,a=Math.ceil(n/16),o=new Array(a);for(let s=0;s<a;++s){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=e[s*64+u*4]<<24|e[s*64+u*4+1]<<16|e[s*64+u*4+2]<<8|e[s*64+u*4+3];o[s]=c}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<a;++s){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=o[s][m];for(let m=16;m<80;++m)c[m]=Kh(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],f=r[3],p=r[4];for(let m=0;m<80;++m){let g=Math.floor(m/20),y=Kh(u,5)+Vj(g,l,d,f)+p+t[g]+c[m]>>>0;p=f,f=d,d=Kh(l,30)>>>0,l=u,u=y}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+f>>>0,r[4]=r[4]+p>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}var w$=Zj;function Hj(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}var Wh="6ba7b810-9dad-11d1-80b4-00c04fd430c8",qh="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Xh(e,t,r,i,n,a){let o=typeof r=="string"?Hj(r):r,s=typeof i=="string"?sd(i):i;if(typeof i=="string"&&(i=sd(i)),i?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,n){if(a??=0,a<0||a+16>n.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)n[a+u]=c[u];return n}return Yo(c)}function Yh(e,t,r,i){return Xh(80,w$,e,t,r,i)}Yh.DNS=Wh;Yh.URL=qh;var Qh=Yh;var eg={};function Gj(e,t,r){let i;if(e)i=x$(e.random??e.rng?.()??Qo(),e.msecs,e.seq,t,r);else{let n=Date.now(),a=Qo();Jj(eg,n,a),i=x$(a,eg.msecs,eg.seq,t,r)}return t??Yo(i)}function Jj(e,t,r){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function x$(e,t,r,i,n=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!i)i=new Uint8Array(16),n=0;else if(n<0||n+16>i.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);return t??=Date.now(),r??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],i[n++]=t/1099511627776&255,i[n++]=t/4294967296&255,i[n++]=t/16777216&255,i[n++]=t/65536&255,i[n++]=t/256&255,i[n++]=t&255,i[n++]=112|r>>>28&15,i[n++]=r>>>20&255,i[n++]=128|r>>>14&63,i[n++]=r>>>6&255,i[n++]=r<<2&255|e[10]&3,i[n++]=e[11],i[n++]=e[12],i[n++]=e[13],i[n++]=e[14],i[n++]=e[15],i}var es=Gj;var S$="gen_ai.operation.name",k$="gen_ai.system",tg="gen_ai.request.model",$$="gen_ai.response.model",rg="gen_ai.usage.input_tokens",ng="gen_ai.usage.output_tokens",ig="gen_ai.usage.total_tokens",I$="gen_ai.request.max_tokens",E$="gen_ai.request.temperature",T$="gen_ai.request.top_p",A$="gen_ai.request.frequency_penalty",C$="gen_ai.request.presence_penalty",O$="gen_ai.response.finish_reasons",P$="gen_ai.prompt",N$="gen_ai.completion",R$="gen_ai.request.extra_query",M$="gen_ai.request.extra_body",j$="gen_ai.serialized.name",z$="gen_ai.serialized.signature",D$="gen_ai.serialized.doc",U$="gen_ai.response.id",L$="gen_ai.response.service_tier",F$="gen_ai.response.system_fingerprint",B$="gen_ai.usage.input_token_details",V$="gen_ai.usage.output_token_details",Z$="langsmith.trace.session_id",H$="langsmith.trace.session_name",G$="langsmith.span.kind",J$="langsmith.trace.name",K$="langsmith.metadata",ag="langsmith.span.tags";var W$="langsmith.request.streaming",q$="langsmith.request.headers";var og="langsmith.usage_metadata";var qj=(...e)=>fetch(...e),Xj,X$=Symbol.for("ls:fetch_implementation");var Y$=()=>globalThis[X$]===void 0?!0:Xj??!1,Q$=e=>async(...t)=>{if(e||Fe("DEBUG")==="true"){let[i,n]=t;console.log(`\u2192 ${n?.method||"GET"} ${i}`)}let r=await(globalThis[X$]??qj)(...t);return(e||Fe("DEBUG")==="true")&&console.log(`\u2190 ${r.status} ${r.statusText} ${r.url}`),r};var Bc=()=>Fe("PROJECT")??wt("LANGCHAIN_SESSION")??"default";var eI={};function ja(e){eI[e]||(console.warn(e),eI[e]=!0)}var N=e=>BigInt(e),iI=N("0x9E3779B1"),aI=N("0x85EBCA77"),Yj=N("0xC2B2AE3D"),Mi=N("0x9E3779B185EBCA87"),za=N("0xC2B2AE3D27D4EB4F"),oI=N("0x165667B19E3779F9"),lg=N("0x85EBCA77C2B2AE63"),Qj=N("0x27D4EB2F165667C5"),e4=N("0x165667919E3779F9"),t4=N("0x9FB21C651E98DF25");function r4(e){let t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=parseInt(e.substring(r,r+2),16);return t}var On=r4("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),rs=(N(1)<<N(128))-N(1),_e=(N(1)<<N(64))-N(1),dd=(N(1)<<N(32))-N(1),si=64,sI=si/8,n4=8,cd=4;function Be(e,t=0){return new Uint8Array(e.buffer,e.byteOffset+t,e.length-t)}function Ge(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getBigUint64(0,!0)}function ts(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getUint32(0,!0)}function sg(e,t=0){return e[t]}var i4=e=>(e&N(255))<<N(56)|(e&N(65280))<<N(40)|(e&N(16711680))<<N(24)|(e&N(4278190080))<<N(8)|(e&N(0xff00000000))>>N(8)|(e&N(0xff0000000000))>>N(24)|(e&N(0xff000000000000))>>N(40)|(e&N(0xff00000000000000))>>N(56),a4=e=>(e=(e&N(65535))<<N(16)|(e&N(4294901760))>>N(16),e=(e&N(16711935))<<N(8)|(e&N(4278255360))>>N(8),e),o4=(e,t)=>(e&dd)*(t&dd)&_e,ns=e=>{if(!e)throw new Error("Assert failed")};function s4(e,t){return(e<<t|e>>N(32)-t)&dd}function cI(e,t,r){for(let i=0;i<sI;i++){let n=Ge(t,i*8),a=n^Ge(r,i*8);e[i^1]+=n,e[i]+=o4(a,a>>N(32))}return e}function tI(e,t,r,i){for(let n=0;n<i;n++)cI(e,Be(t,n*si),Be(r,n*8));return e}function c4(e,t){for(let r=0;r<sI;r++){let i=Ge(t,r*8),n=e[r];n=cg(n,N(47)),n^=i,n*=iI,e[r]=n&_e}return e}function ud(e,t){return uI(e[0]^Ge(t,0),e[1]^Ge(t,n4))}function rI(e,t,r){let i=r;return i+=ud(e.slice(0),Be(t,0*cd)),i+=ud(e.slice(2),Be(t,4*cd)),i+=ud(e.slice(4),Be(t,8*cd)),i+=ud(e.slice(6),Be(t,12*cd)),Pn(i&_e)}function u4(e,t,r,i,n){let a=Math.floor((r.byteLength-si)/8),o=si*a,s=Math.floor((t.byteLength-1)/o);for(let c=0;c<s;c++)e=tI(e,Be(t,c*o),r,a),e=n(e,Be(r,r.byteLength-si));{let c=Math.floor((t.byteLength-1-o*s)/si);e=tI(e,Be(t,s*o),r,c),e=i(e,Be(t,t.byteLength-si),Be(r,r.byteLength-si-7))}return e}function l4(e,t,r){let i=new BigUint64Array([Yj,Mi,za,oI,lg,aI,Qj,iI]);ns(e.length>128),i=u4(i,e,t,cI,c4),ns(i.length*8==64);{let n=rI(i,Be(t,11),N(e.byteLength)*Mi&_e);return rI(i,Be(t,t.byteLength-si-11),~(N(e.byteLength)*za)&_e)<<N(64)|n}}function uI(e,t){let r=e*t&rs;return r&_e^r>>N(64)}function nI(e,t,r){return uI((Ge(e,0)^Ge(t,0)+r)&_e,(Ge(e,8)^Ge(t,8)-r)&_e)}function ld(e,t,r,i,n){let a=e&_e,o=e>>N(64)&_e;return a+=nI(t,i,n),a^=Ge(r,0)+Ge(r,8),a&=_e,o+=nI(r,Be(i,16),n),o^=Ge(t,0)+Ge(t,8),o&=_e,o<<N(64)|a}function Pn(e){return e^=e>>N(37),e*=e4,e&=_e,e^=e>>N(32),e}function fd(e){return e^=e>>N(33),e*=za,e&=_e,e^=e>>N(29),e*=oI,e&=_e,e^=e>>N(32),e}function d4(e,t,r){let i=e.byteLength;ns(i>0&&i<=3);let n=N(sg(e,i-1))|N(i<<8)|N(sg(e,0)<<16)|N(sg(e,i>>1)<<24),a=(N(ts(t,0))^N(ts(t,4)))+r,o=(n^a)&_e,s=(N(ts(t,8))^N(ts(t,12)))-r,c=(s4(a4(n),N(13))^s)&_e;return(fd(c)&_e)<<N(64)|fd(o)}function cg(e,t){return e^e>>t}function f4(e,t,r){let i=e.byteLength;ns(i>=4&&i<=8);{let n=ts(e,0),a=ts(e,i-4),o=N(n)|N(a)<<N(32),s=(Ge(t,16)^Ge(t,24))+r&_e,u=(o^s)*(Mi+(N(i)<<N(2)))&rs;return u+=(u&_e)<<N(65),u&=rs,u^=u>>N(67),cg(cg(u&_e,N(35))*t4&_e,N(28))|Pn(u>>N(64))<<N(64)}}function p4(e,t,r){let i=e.byteLength;ns(i>=9&&i<=16);{let n=(Ge(t,32)^Ge(t,40))+r&_e,a=(Ge(t,48)^Ge(t,56))-r&_e,o=Ge(e),s=Ge(e,i-8),c=(o^s^n)*Mi,u=(c&_e)+(N(i-1)<<N(54));c=c&(rs^_e)|u,s^=a,c+=s+(s&dd)*(aI-N(1))<<N(64),c&=rs,c^=i4(c>>N(64));let l=(c&_e)*za;return l+=(c>>N(64))*za<<N(64),l&=rs,Pn(l&_e)|Pn(l>>N(64))<<N(64)}}function m4(e,t){let r=e.byteLength;return ns(r<=16),r>8?p4(e,On,t):r>=4?f4(e,On,t):r>0?d4(e,On,t):fd(t^Ge(On,64)^Ge(On,72))|fd(t^Ge(On,80)^Ge(On,88))<<N(64)}function ug(e){return~e+N(1)&_e}function h4(e,t,r){let i=N(e.byteLength)*Mi&_e,n=N(e.byteLength-1)/N(32);for(;n>=0;){let s=Number(n);i=ld(i,Be(e,16*s),Be(e,e.byteLength-16*(s+1)),Be(t,32*s),r),n--}let a=i+(i>>N(64))&_e;a=Pn(a);let o=(i&_e)*Mi+(i>>N(64))*lg+(N(e.byteLength)-r&_e)*za;return o&=_e,o=ug(Pn(o)),a|o<<N(64)}function g4(e,t,r){let i=N(e.byteLength)*Mi&_e;for(let o=32;o<160;o+=32)i=ld(i,Be(e,o-32),Be(e,o-16),Be(t,o-32),r);i=Pn(i&_e)|Pn(i>>N(64))<<N(64);for(let o=160;o<=e.byteLength;o+=32)i=ld(i,Be(e,o-32),Be(e,o-16),Be(t,3+o-160),r);i=ld(i,Be(e,e.byteLength-16),Be(e,e.byteLength-32),Be(t,103),ug(r));let n=i+(i>>N(64))&_e;n=Pn(n);let a=(i&_e)*Mi+(i>>N(64))*lg+(N(e.byteLength)-r&_e)*za;return a&=_e,a=ug(Pn(a)),n|a<<N(64)}function lI(e,t=N(0)){let r=e.byteLength;return r<=16?m4(e,t):r<=128?h4(e,On,t):r<=240?g4(e,On,t):l4(e,On,t)}function dI(e){let t=new Uint8Array(16),r=new DataView(t.buffer),i=e&_e,n=e>>N(64);return r.setBigUint64(0,n,!1),r.setBigUint64(8,i,!1),t}var fI=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function pe(e,t){if(!fI.test(e)){let r=t!==void 0?`Invalid UUID for ${t}: ${e}`:`Invalid UUID: ${e}`;throw new Error(r)}return e}function pd(e){let t=typeof e=="string"?Date.parse(e):e;return es({msecs:t,seq:0})}function _4(e){if(!fI.test(e))return null;let t=e[14];return parseInt(t,16)}function y4(e){let t=e.replace(/-/g,""),r=new Uint8Array(16);for(let i=0;i<16;i++)r[i]=parseInt(t.slice(i*2,i*2+2),16);return r}function v4(e){let t=Array.from(e).map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var b4=new TextEncoder;function w4(e){let t=b4.encode(e),r=lI(t);return dI(r)}function Vc(e,t){let r=`${e}:${t}`,i=w4(r),n=new Uint8Array(16);if(_4(e)===7){let o=y4(e);n.set(o.slice(0,6),0)}else{let o=Date.now();n[0]=o/1099511627776&255,n[1]=o/4294967296&255,n[2]=o/16777216&255,n[3]=o/65536&255,n[4]=o/256&255,n[5]=o&255}return n[6]=112|i[0]&15,n[7]=i[1],n[8]=128|i[2]&63,n.set(i.slice(3,10),9),v4(n)}var Da={join:(...e)=>e.join("/"),dirname:e=>e.split("/").slice(0,-1).join("/")};async function pI(e){}async function md(e,t){}async function mI(e){return[]}async function hI(e){return{size:0}}function is(e){return!1}function hd(e){return""}function x4(e,t){return t===null?!1:Date.now()-e.createdAt>t*1e3}var gd=class{constructor(t={}){Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ttlSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshIntervalSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metrics",{enumerable:!0,configurable:!0,writable:!0,value:{hits:0,misses:0,refreshes:0,refreshErrors:0}}),this.configure(t)}get metrics(){return{...this._metrics}}get totalRequests(){return this._metrics.hits+this._metrics.misses}get hitRate(){let t=this.totalRequests;return t>0?this._metrics.hits/t:0}resetMetrics(){this._metrics={hits:0,misses:0,refreshes:0,refreshErrors:0}}get(t,r){if(this.maxSize===0)return;let i=this.cache.get(t);if(!i){this._metrics.misses+=1;return}return this.cache.delete(t),this.cache.set(t,{...i,refreshFunc:r}),this._metrics.hits+=1,i.value}set(t,r,i){if(this.maxSize===0)return;if(this.refreshTimer===void 0&&this.startRefreshLoop(),!this.cache.has(t)&&this.cache.size>=this.maxSize){let a=this.cache.keys().next().value;a!==void 0&&this.cache.delete(a)}let n={value:r,createdAt:Date.now(),refreshFunc:i};this.cache.delete(t),this.cache.set(t,n)}invalidate(t){this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}stop(){this.refreshTimer&&(clearInterval(this.refreshTimer),this.refreshTimer=void 0)}dump(t){let r={};for(let[a,o]of this.cache.entries())r[a]=o.value;let i=Da.dirname(t);is(i)||void 0;let n=`${t}.tmp`;try{JSON.stringify({entries:r},null,2)}catch(a){throw is(n)&&void 0,a}}load(t){if(!is(t))return 0;let r;try{let a=hd(t);r=JSON.parse(a).entries??null}catch{return 0}if(!r)return 0;let i=0,n=Date.now();for(let[a,o]of Object.entries(r)){if(this.cache.size>=this.maxSize)break;let s={value:o,createdAt:n};this.cache.set(a,s),i+=1}return i}startRefreshLoop(){this.stop(),this.ttlSeconds!==null&&(this.refreshTimer=setInterval(()=>{this.refreshStaleEntries().catch(t=>{console.warn("Unexpected error in cache refresh loop:",t)})},this.refreshIntervalSeconds*1e3),this.refreshTimer.unref&&this.refreshTimer.unref())}getStaleEntries(){let t=[];for(let[r,i]of this.cache.entries())x4(i,this.ttlSeconds)&&t.push([r,i]);return t}async refreshStaleEntries(){let t=this.getStaleEntries();if(t.length!==0){for(let[r,i]of t)if(i.refreshFunc!==void 0)try{let n=await i.refreshFunc();this.set(r,n,i.refreshFunc),this._metrics.refreshes+=1}catch(n){this._metrics.refreshErrors+=1,console.warn(`Failed to refresh cache entry ${r}:`,n)}}}configure(t){this.stop(),this.refreshIntervalSeconds=t.refreshIntervalSeconds??60,this.maxSize=t.maxSize??100,this.ttlSeconds=t.ttlSeconds??300}},_d=new gd;var yd="0.7.3";var Rn,S4=()=>typeof window<"u"&&typeof window.document<"u",k4=()=>typeof globalThis=="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",$4=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),vI=()=>typeof Deno<"u",I4=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!vI(),Zc=()=>Rn||(typeof Bun<"u"?Rn="bun":S4()?Rn="browser":I4()?Rn="node":k4()?Rn="webworker":$4()?Rn="jsdom":vI()?Rn="deno":Rn="other",Rn),dg;function vd(){if(dg===void 0){let e=Zc(),t=T4();dg={library:"langsmith",runtime:e,sdk:"langsmith-js",sdk_version:yd,...t}}return dg}function pg(){let e=E4(),t={},r=["LANGCHAIN_API_KEY","LANGCHAIN_ENDPOINT","LANGCHAIN_TRACING_V2","LANGCHAIN_PROJECT","LANGCHAIN_SESSION","LANGSMITH_API_KEY","LANGSMITH_ENDPOINT","LANGSMITH_TRACING_V2","LANGSMITH_CONFIG_FILE","LANGSMITH_PROJECT","LANGSMITH_SESSION"];for(let[i,n]of Object.entries(e))typeof n=="string"&&!r.includes(i)&&!i.toLowerCase().includes("key")&&!i.toLowerCase().includes("secret")&&!i.toLowerCase().includes("token")&&(i==="LANGCHAIN_REVISION_ID"?t.revision_id=n:t[i]=n);return t}function E4(){let e={};try{if(typeof process<"u"&&process.env)for(let[t,r]of Object.entries(process.env))(t.startsWith("LANGCHAIN_")||t.startsWith("LANGSMITH_"))&&r!=null&&((t.toLowerCase().includes("key")||t.toLowerCase().includes("secret")||t.toLowerCase().includes("token"))&&typeof r=="string"?e[t]=r.slice(0,2)+"*".repeat(r.length-4)+r.slice(-2):e[t]=r)}catch{}return e}function wt(e){try{return typeof process<"u"?process.env?.[e]:void 0}catch{return}}function Fe(e){return wt(`LANGSMITH_${e}`)||wt(`LANGCHAIN_${e}`)}var fg;function T4(){if(fg!==void 0)return fg;let e=["VERCEL_GIT_COMMIT_SHA","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","COMMIT_REF","RENDER_GIT_COMMIT","CI_COMMIT_SHA","CIRCLE_SHA1","CF_PAGES_COMMIT_SHA","REACT_APP_GIT_SHA","SOURCE_VERSION","GITHUB_SHA","TRAVIS_COMMIT","GIT_COMMIT","BUILD_VCS_NUMBER","bamboo_planRepository_revision","Build.SourceVersion","BITBUCKET_COMMIT","DRONE_COMMIT_SHA","SEMAPHORE_GIT_SHA","BUILDKITE_COMMIT"],t={};for(let r of e){let i=wt(r);i!==void 0&&(t[r]=i)}return fg=t,t}function _I(){return wt("OTEL_ENABLED")==="true"||Fe("OTEL_ENABLED")==="true"}var yI=new Set(["langsmith","otel"]);function bd(e){if(e!==void 0)return e;let t=Fe("TRACING_MODE");if(t!==void 0&&t!==""){let r=t.toLowerCase();if(!yI.has(r))throw new Error(`Invalid LANGSMITH_TRACING_MODE=${JSON.stringify(t)}. Must be one of: ${[...yI].sort().join(", ")}`);return _I()&&console.warn("Both LANGSMITH_TRACING_MODE and the legacy OTEL_ENABLED / LANGSMITH_OTEL_ENABLED env vars are set. LANGSMITH_TRACING_MODE takes precedence."),r}return _I()?"otel":"langsmith"}var gg=class{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan(t,...r){!this.hasWarned&&bd()==="otel"&&(console.warn('OTel tracing mode is active (via LANGSMITH_TRACING_MODE, OTEL_ENABLED, or LANGSMITH_OTEL_ENABLED), but the required OTEL instances have not been initialized. Please add:\n```\nimport { initializeOTEL } from "langsmith/experimental/otel/setup";\ninitializeOTEL();\n```\nat the beginning of your code.'),this.hasWarned=!0);let i;if(r.length===1&&typeof r[0]=="function"?i=r[0]:r.length===2&&typeof r[1]=="function"?i=r[1]:r.length===3&&typeof r[2]=="function"&&(i=r[2]),typeof i=="function")return i()}},_g=class{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new gg})}getTracer(t,r){return this.mockTracer}getActiveSpan(){}setSpan(t,r){return t}getSpan(t){}setSpanContext(t,r){return t}getTracerProvider(){}setGlobalTracerProvider(t){return!1}},yg=class{active(){return{}}with(t,r){return r()}},mg=Symbol.for("ls:otel_trace"),hg=Symbol.for("ls:otel_context"),bI=Symbol.for("ls:otel_get_default_otlp_tracer_provider"),A4=new _g,C4=new yg,vg=class{getTraceInstance(){return globalThis[mg]??A4}getContextInstance(){return globalThis[hg]??C4}initializeGlobalInstances(t){globalThis[mg]===void 0&&(globalThis[mg]=t.trace),globalThis[hg]===void 0&&(globalThis[hg]=t.context)}setDefaultOTLPTracerComponents(t){globalThis[bI]=t}getDefaultOTLPTracerComponents(){return globalThis[bI]??void 0}},bg=new vg;function wd(){return bg.getTraceInstance()}function wI(){return bg.getContextInstance()}function xI(){return bg.getDefaultOTLPTracerComponents()}var O4={llm:"chat",tool:"execute_tool",retriever:"embeddings",embedding:"embeddings",prompt:"chat"};function P4(e){return O4[e]||e}function N4(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var xd=class{constructor(){Object.defineProperty(this,"spans",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}exportBatch(t,r){for(let i of t)try{if(!i.run)continue;if(i.operation==="post"){let n=this.createSpanForRun(i,i.run,r.get(i.id));n&&!i.run.end_time&&this.spans.set(i.id,n)}else this.updateSpanForRun(i,i.run)}catch(n){console.error(`Error processing operation ${i.id}:`,n)}}createSpanForRun(t,r,i){let n=i&&wd().getSpan(i);if(n)try{return this.finishSpanSetup(n,r,t)}catch(a){console.error(`Failed to create span for run ${t.id}:`,a);return}}finishSpanSetup(t,r,i){return this.setSpanAttributes(t,r,i),r.error?(t.setStatus({code:2}),t.recordException(new Error(r.error))):t.setStatus({code:1}),r.end_time&&t.end(new Date(r.end_time)),t}updateSpanForRun(t,r){try{let i=this.spans.get(t.id);if(!i){console.debug(`No span found for run ${t.id} during update`);return}this.setSpanAttributes(i,r,t),r.error?(i.setStatus({code:2}),i.recordException(new Error(r.error))):i.setStatus({code:1});let n=r.end_time;n&&(i.end(new Date(n)),this.spans.delete(t.id))}catch(i){console.error(`Failed to update span for run ${t.id}:`,i)}}extractModelName(t){if(t.extra?.metadata){let r=t.extra.metadata;if(r.ls_model_name)return r.ls_model_name;if(r.invocation_params){let i=r.invocation_params;if(i.model)return i.model;if(i.model_name)return i.model_name}}}setSpanAttributes(t,r,i){if("run_type"in r&&r.run_type){t.setAttribute(G$,r.run_type);let s=P4(r.run_type||"chain");t.setAttribute(S$,s)}"name"in r&&r.name&&t.setAttribute(J$,r.name),"session_id"in r&&r.session_id&&t.setAttribute(Z$,r.session_id),"session_name"in r&&r.session_name&&t.setAttribute(H$,r.session_name),this.setGenAiSystem(t,r);let n=this.extractModelName(r);n&&t.setAttribute(tg,n),r.extra?.metadata?.usage_metadata&&typeof r.extra.metadata.usage_metadata=="object"&&t.setAttribute(og,JSON.stringify(r.extra.metadata.usage_metadata)),"prompt_tokens"in r&&typeof r.prompt_tokens=="number"&&t.setAttribute(rg,r.prompt_tokens),"completion_tokens"in r&&typeof r.completion_tokens=="number"&&t.setAttribute(ng,r.completion_tokens),"total_tokens"in r&&typeof r.total_tokens=="number"&&t.setAttribute(ig,r.total_tokens),this.setInvocationParameters(t,r);let a=r.extra?.metadata||{};for(let[s,c]of Object.entries(a))c!=null&&t.setAttribute(`${K$}.${s}`,N4(c)?String(c):JSON.stringify(c));let o=r.tags;if(o&&Array.isArray(o)?t.setAttribute(ag,o.join(", ")):o&&t.setAttribute(ag,String(o)),"serialized"in r&&typeof r.serialized=="object"){let s=r.serialized;s.name&&t.setAttribute(j$,String(s.name)),s.signature&&t.setAttribute(z$,String(s.signature)),s.doc&&t.setAttribute(D$,String(s.doc))}this.setIOAttributes(t,i)}setGenAiSystem(t,r){let i="langchain",n=this.extractModelName(r);if(n){let a=n.toLowerCase();a.includes("anthropic")||a.startsWith("claude")?i="anthropic":a.includes("bedrock")?i="aws.bedrock":a.includes("azure")&&a.includes("openai")?i="az.ai.openai":a.includes("azure")&&a.includes("inference")?i="az.ai.inference":a.includes("cohere")?i="cohere":a.includes("deepseek")?i="deepseek":a.includes("gemini")?i="gemini":a.includes("groq")?i="groq":a.includes("watson")||a.includes("ibm")?i="ibm.watsonx.ai":a.includes("mistral")?i="mistral_ai":a.includes("gpt")||a.includes("openai")?i="openai":a.includes("perplexity")||a.includes("sonar")?i="perplexity":a.includes("vertex")?i="vertex_ai":(a.includes("xai")||a.includes("grok"))&&(i="xai")}t.setAttribute(k$,i)}setInvocationParameters(t,r){if(!r.extra?.metadata?.invocation_params)return;let i=r.extra.metadata.invocation_params;i.max_tokens!==void 0&&t.setAttribute(I$,i.max_tokens),i.temperature!==void 0&&t.setAttribute(E$,i.temperature),i.top_p!==void 0&&t.setAttribute(T$,i.top_p),i.frequency_penalty!==void 0&&t.setAttribute(A$,i.frequency_penalty),i.presence_penalty!==void 0&&t.setAttribute(C$,i.presence_penalty)}setIOAttributes(t,r){if(r.run.inputs)try{let i=r.run.inputs;typeof i=="object"&&i!==null&&(i.model&&Array.isArray(i.messages)&&t.setAttribute(tg,i.model),i.stream!==void 0&&t.setAttribute(W$,i.stream),i.extra_headers&&t.setAttribute(q$,JSON.stringify(i.extra_headers)),i.extra_query&&t.setAttribute(R$,JSON.stringify(i.extra_query)),i.extra_body&&t.setAttribute(M$,JSON.stringify(i.extra_body))),t.setAttribute(P$,JSON.stringify(i))}catch(i){console.debug(`Failed to process inputs for run ${r.id}`,i)}if(r.run.outputs)try{let i=r.run.outputs,n=this.getUnifiedRunTokens(i);if(n&&(t.setAttribute(rg,n[0]),t.setAttribute(ng,n[1]),t.setAttribute(ig,n[0]+n[1])),i&&typeof i=="object"){if(i.model&&t.setAttribute($$,String(i.model)),i.id&&t.setAttribute(U$,i.id),i.choices&&Array.isArray(i.choices)){let a=i.choices.map(o=>o.finish_reason).filter(o=>o).map(String);a.length>0&&t.setAttribute(O$,a.join(", "))}if(i.service_tier&&t.setAttribute(L$,i.service_tier),i.system_fingerprint&&t.setAttribute(F$,i.system_fingerprint),i.usage_metadata&&typeof i.usage_metadata=="object"){let a=i.usage_metadata;t.setAttribute(og,JSON.stringify(a)),a.input_token_details&&t.setAttribute(B$,JSON.stringify(a.input_token_details)),a.output_token_details&&t.setAttribute(V$,JSON.stringify(a.output_token_details))}}t.setAttribute(N$,JSON.stringify(i))}catch(i){console.debug(`Failed to process outputs for run ${r.id}`,i)}}getUnifiedRunTokens(t){if(!t)return null;let r=this.extractUnifiedRunTokens(t.usage_metadata);if(r)return r;let i=Object.keys(t);for(let o of i){let s=t[o];if(!(!s||typeof s!="object")&&(r=this.extractUnifiedRunTokens(s.usage_metadata),r||s.lc===1&&s.kwargs&&typeof s.kwargs=="object"&&(r=this.extractUnifiedRunTokens(s.kwargs.usage_metadata),r)))return r}let n=t.generations||[];if(!Array.isArray(n))return null;let a=Array.isArray(n[0])?n.flat():n;for(let o of a)if(typeof o=="object"&&o.message&&typeof o.message=="object"&&o.message.kwargs&&typeof o.message.kwargs=="object"&&(r=this.extractUnifiedRunTokens(o.message.kwargs.usage_metadata),r))return r;return null}extractUnifiedRunTokens(t){return!t||typeof t!="object"||typeof t.input_tokens!="number"||typeof t.output_tokens!="number"?null:[t.input_tokens,t.output_tokens]}};var R4=Object.prototype.toString,M4=e=>R4.call(e)==="[object Error]",j4=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function wg(e){if(!(e&&M4(e)&&e.name==="TypeError"&&typeof e.message=="string"))return!1;let{message:r,stack:i}=e;return r==="Load failed"?i===void 0||"__sentry_captured__"in e:r.startsWith("error sending request for url")?!0:j4.has(r)}function z4(e){if(typeof e=="number"){if(e<0)throw new TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(e!==void 0)throw new TypeError("Expected `retries` to be a number or Infinity.")}function Sd(e,t,{min:r=0,allowInfinity:i=!1}={}){if(t!==void 0){if(typeof t!="number"||Number.isNaN(t))throw new TypeError(`Expected \`${e}\` to be a number${i?" or Infinity":""}.`);if(!i&&!Number.isFinite(t))throw new TypeError(`Expected \`${e}\` to be a finite number.`);if(t<r)throw new TypeError(`Expected \`${e}\` to be \u2265 ${r}.`)}}var xg=class extends Error{constructor(t){super(),t instanceof Error?(this.originalError=t,{message:t}=t):(this.originalError=new Error(t),this.originalError.stack=this.stack),this.name="AbortError",this.message=t}};function D4(e,t){let r=Math.max(1,e+1),i=t.randomize?Math.random()+1:1,n=Math.round(i*t.minTimeout*t.factor**(r-1));return n=Math.min(n,t.maxTimeout),n}function SI(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function U4({error:e,attemptNumber:t,retriesConsumed:r,startTime:i,options:n}){let a=e instanceof Error?e:new TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(a instanceof xg)throw a.originalError;let o=Number.isFinite(n.retries)?Math.max(0,n.retries-r):n.retries,s=n.maxRetryTime??Number.POSITIVE_INFINITY,c=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:r});if(await n.onFailedAttempt(c),SI(i,s)<=0)throw a;let u=await n.shouldConsumeRetry(c),l=SI(i,s);if(l<=0||o<=0)throw a;if(a instanceof TypeError&&!wg(a)){if(u)throw a;return n.signal?.throwIfAborted(),!1}if(!await n.shouldRetry(c))throw a;if(!u)return n.signal?.throwIfAborted(),!1;let d=D4(r,n),f=Math.min(d,l);return f>0&&await new Promise((p,m)=>{let g=()=>{clearTimeout(y),n.signal?.removeEventListener("abort",g),m(n.signal.reason)},y=setTimeout(()=>{n.signal?.removeEventListener("abort",g),p()},f);n.unref&&y.unref?.(),n.signal?.addEventListener("abort",g,{once:!0})}),n.signal?.throwIfAborted(),!0}async function Sg(e,t={}){if(t={...t},z4(t.retries),Object.hasOwn(t,"forever"))throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=Number.POSITIVE_INFINITY,t.maxRetryTime??=Number.POSITIVE_INFINITY,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,Sd("factor",t.factor,{min:0,allowInfinity:!1}),Sd("minTimeout",t.minTimeout,{min:0,allowInfinity:!1}),Sd("maxTimeout",t.maxTimeout,{min:0,allowInfinity:!0}),Sd("maxRetryTime",t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let r=0,i=0,n=performance.now();for(;!Number.isFinite(t.retries)||i<=t.retries;){r++;try{t.signal?.throwIfAborted();let a=await e(r);return t.signal?.throwIfAborted(),a}catch(a){await U4({error:a,attemptNumber:r,retriesConsumed:i,startTime:n,options:t})&&i++}}throw new Error("Retry attempts exhausted without throwing an error.")}var Ad=Al(Td(),1),NI="default"in Ad.default?Ad.default.default:Ad.default;var K4=[408,425,429,500,502,503,504],Gc=class{constructor(t){Object.defineProperty(this,"maxConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxRetries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxQueueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFailedResponseHook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.maxConcurrency=t.maxConcurrency??1/0,this.maxRetries=t.maxRetries??6,this.maxQueueSizeBytes=t.maxQueueSizeBytes,this.queue=new NI({concurrency:this.maxConcurrency}),this.onFailedResponseHook=t?.onFailedResponseHook}call(t,...r){return this.callWithOptions({},t,...r)}callWithOptions(t,r,...i){let n=t.sizeBytes??0;if(this.maxQueueSizeBytes!==void 0&&n>0&&this.queueSizeBytes+n>this.maxQueueSizeBytes)return Promise.reject(new Error(`Queue size limit (${this.maxQueueSizeBytes} bytes) exceeded. Current queue size: ${this.queueSizeBytes} bytes, attempted addition: ${n} bytes.`));n>0&&(this.queueSizeBytes+=n);let a=this.onFailedResponseHook,o=this.queue.add(()=>Sg(()=>r(...i).catch(s=>{throw s instanceof Error?s:new Error(s)}),{async onFailedAttempt({error:s}){if(typeof s!="object"||s==null)throw s;let c="message"in s&&typeof s.message=="string"?s.message:void 0;if(c?.startsWith("Cancel")||c?.startsWith("TimeoutError")||c?.startsWith("AbortError")||"name"in s&&s.name==="TimeoutError"||"code"in s&&s.code==="ECONNABORTED")throw s;let u="response"in s?s.response:void 0;if(a&&await a(u))return;let l=u?.status??("status"in s?s.status:void 0);if(l!=null&&(typeof l=="number"||typeof l=="string")&&!K4.includes(+l))throw s},retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0});return n>0&&(o=o.finally(()=>{this.queueSizeBytes-=n})),t.signal?Promise.race([o,new Promise((s,c)=>{t.signal?.addEventListener("abort",()=>{c(new Error("AbortError"))})})]):o}};function Cg(e){return typeof e?._getType=="function"}function Og(e){let t={type:e._getType(),data:{content:e.content}};return e?.additional_kwargs&&Object.keys(e.additional_kwargs).length>0&&(t.data.additional_kwargs={...e.additional_kwargs}),t}function Od(e){return`Invalid prompt identifier format: "${e}". Expected one of:
|
|
21
|
+
`)}function vj(e){if(e.data!==void 0)return e;{let t=e;return{type:t.type,data:{content:t.text,role:t.role,name:void 0,tool_call_id:void 0}}}}function Dc(e){let t=vj(e);switch(t.type){case"human":return new rt(t.data);case"ai":return new Ee(t.data);case"system":return new Gt(t.data);case"function":if(t.data.name===void 0)throw new Error("Name must be defined for function messages");return new Ca(t.data);case"tool":if(t.data.tool_call_id===void 0)throw new Error("Tool call ID must be defined for tool messages");return new gt(t.data);case"generic":if(t.data.role===void 0)throw new Error("Role must be defined for chat messages");return new nn(t.data);default:throw new Error(`Got unexpected type: ${t.type}`)}}function Xk(e){return e.map(Dc)}function Yk(e){return e.map(t=>t.toDict())}function Na(e){let t=e._getType();if(t==="human")return new Pa({...e});if(t==="ai"){let r={...e};return"tool_calls"in r&&(r={...r,tool_call_chunks:r.tool_calls?.map(i=>({...i,type:"tool_call_chunk",index:void 0,args:JSON.stringify(i.args)}))}),new Qe({...r})}else{if(t==="system")return new oi({...e});if(t==="function")return new Oa({...e});if(nn.isInstance(e))return new Aa({...e});throw new Error("Unknown message type.")}}function rd(e){let t=e.reduce((n,a)=>{let o=n.findIndex(([s])=>"id"in a&&a.id&&"index"in a&&a.index!==void 0?a.id===s.id&&a.index===s.index:"id"in a&&a.id?a.id===s.id:"index"in a&&a.index!==void 0?a.index===s.index:!1);return o!==-1?n[o].push(a):n.push([a]),n},[]),r=[],i=[];for(let n of t){let a=null,o=n.some(hj),s=n[0]?.name??"",c=n.map(f=>f.args||"").join(""),u=o?c:c.trim(),l=u.length?u:"{}",d=n.find(f=>f.id)?.id??n[0]?.id;if(o&&d){r.push({name:s,args:{input:u},id:d,type:"tool_call"});continue}try{if(a=Cn(l),!d||a===null||typeof a!="object"||Array.isArray(a))throw new Error("Malformed tool call chunk args.");r.push({name:s,args:a,id:d,type:"tool_call"})}catch{i.push({name:s,args:l,id:d,error:"Malformed args.",type:"invalid_tool_call"})}}return{tool_call_chunks:e,tool_calls:r,invalid_tool_calls:i}}var Qk=A({BaseCache:()=>t$,InMemoryCache:()=>Bh,defaultHashKeyEncoder:()=>e$,deserializeStoredGeneration:()=>bj,serializeGeneration:()=>wj}),e$=(...e)=>Vo(e.join("_"));function bj(e){return e.message!==void 0?{text:e.text,message:Dc(e.message)}:{text:e.text}}function wj(e){let t={text:e.text};return e.message!==void 0&&(t.message=e.message.toDict()),t}var t$=class{keyEncoder=e$;makeDefaultKeyEncoder(e){this.keyEncoder=e}},xj=new Map,Bh=class r$ extends t${cache;constructor(t){super(),this.cache=t??new Map}lookup(t,r){return Promise.resolve(this.cache.get(this.keyEncoder(t,r))??null)}async update(t,r,i){this.cache.set(this.keyEncoder(t,r),i)}static global(){return new r$(xj)}};var n$="ffffffff-ffff-ffff-ffff-ffffffffffff";var i$="00000000-0000-0000-0000-000000000000";var a$=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function Ni(e){return typeof e=="string"&&a$.test(e)}function Ra(e){if(!Ni(e))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var Et=[];for(let e=0;e<256;++e)Et.push((e+256).toString(16).slice(1));function wr(e,t=0){return(Et[e[t+0]]+Et[e[t+1]]+Et[e[t+2]]+Et[e[t+3]]+"-"+Et[e[t+4]]+Et[e[t+5]]+"-"+Et[e[t+6]]+Et[e[t+7]]+"-"+Et[e[t+8]]+Et[e[t+9]]+"-"+Et[e[t+10]]+Et[e[t+11]]+Et[e[t+12]]+Et[e[t+13]]+Et[e[t+14]]+Et[e[t+15]]).toLowerCase()}function o$(e,t=0){let r=wr(e,t);if(!Ni(r))throw TypeError("Stringified UUID is invalid");return r}var Sj=new Uint8Array(16);function Ri(){return crypto.getRandomValues(Sj)}var Uc={};function id(e,t,r){let i,n=e?._v6??!1;if(e){let a=Object.keys(e);a.length===1&&a[0]==="_v6"&&(e=void 0)}if(e)i=s$(e.random??e.rng?.()??Ri(),e.msecs,e.nsecs,e.clockseq,e.node,t,r);else{let a=Date.now(),o=Ri();kj(Uc,a,o),i=s$(o,Uc.msecs,Uc.nsecs,n?void 0:Uc.clockseq,n?void 0:Uc.node,t,r)}return t??wr(i)}function kj(e,t,r){return e.msecs??=-1/0,e.nsecs??=0,t===e.msecs?(e.nsecs++,e.nsecs>=1e4&&(e.node=void 0,e.nsecs=0)):t>e.msecs?e.nsecs=0:t<e.msecs&&(e.node=void 0),e.node||(e.node=r.slice(10,16),e.node[0]|=1,e.clockseq=(r[8]<<8|r[9])&16383),e.msecs=t,e}function s$(e,t,r,i,n,a,o=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!a)a=new Uint8Array(16),o=0;else if(o<0||o+16>a.length)throw new RangeError(`UUID byte range ${o}:${o+15} is out of buffer bounds`);t??=Date.now(),r??=0,i??=(e[8]<<8|e[9])&16383,n??=e.slice(10,16),t+=122192928e5;let s=((t&268435455)*1e4+r)%4294967296;a[o++]=s>>>24&255,a[o++]=s>>>16&255,a[o++]=s>>>8&255,a[o++]=s&255;let c=t/4294967296*1e4&268435455;a[o++]=c>>>8&255,a[o++]=c&255,a[o++]=c>>>24&15|16,a[o++]=c>>>16&255,a[o++]=i>>>8|128,a[o++]=i&255;for(let u=0;u<6;++u)a[o++]=n[u];return a}function c$(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():$j(e,t,r)}function $j(e,t,r){e=e||{};let i=e.random??e.rng?.()??Ri();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return wr(i)}function Ij(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function Vh(e,t){return e<<t|e>>>32-t}function u$(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],i=new Uint8Array(e.length+1);i.set(e),i[e.length]=128,e=i;let n=e.length/4+2,a=Math.ceil(n/16),o=new Array(a);for(let s=0;s<a;++s){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=e[s*64+u*4]<<24|e[s*64+u*4+1]<<16|e[s*64+u*4+2]<<8|e[s*64+u*4+3];o[s]=c}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<a;++s){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=o[s][m];for(let m=16;m<80;++m)c[m]=Vh(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],f=r[3],p=r[4];for(let m=0;m<80;++m){let g=Math.floor(m/20),y=Vh(u,5)+Ij(g,l,d,f)+p+t[g]+c[m]>>>0;p=f,f=d,d=Vh(l,30)>>>0,l=u,u=y}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+f>>>0,r[4]=r[4]+p>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}function Ej(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}var l$="6ba7b810-9dad-11d1-80b4-00c04fd430c8",d$="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function f$(e,t,r,i,n,a){let o=typeof r=="string"?Ej(r):r,s=typeof i=="string"?Ra(i):i;if(typeof i=="string"&&(i=Ra(i)),i?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,n){if(a??=0,a<0||a+16>n.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)n[a+u]=c[u];return n}return wr(c)}function ad(e,t,r,i){return f$(80,u$,e,t,r,i)}ad.DNS=l$;ad.URL=d$;function p$(e){let t=Tj(typeof e=="string"?Ra(e):e);return typeof e=="string"?wr(t):t}function Tj(e){return Uint8Array.of((e[6]&15)<<4|e[7]>>4&15,(e[7]&15)<<4|(e[4]&240)>>4,(e[4]&15)<<4|(e[5]&240)>>4,(e[5]&15)<<4|(e[0]&240)>>4,(e[0]&15)<<4|(e[1]&240)>>4,(e[1]&15)<<4|(e[2]&240)>>4,96|e[2]&15,e[3],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function m$(e,t,r){e??={},r??=0;let i=id({...e,_v6:!0},new Uint8Array(16));if(i=p$(i),t){if(r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;n++)t[r+n]=i[n];return t}return wr(i)}var Zh={};function g$(e,t,r){let i;if(e)i=h$(e.random??e.rng?.()??Ri(),e.msecs,e.seq,t,r);else{let n=Date.now(),a=Ri();Aj(Zh,n,a),i=h$(a,Zh.msecs,Zh.seq,t,r)}return t??wr(i)}function Aj(e,t,r){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function h$(e,t,r,i,n=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!i)i=new Uint8Array(16),n=0;else if(n<0||n+16>i.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);return t??=Date.now(),r??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],i[n++]=t/1099511627776&255,i[n++]=t/4294967296&255,i[n++]=t/16777216&255,i[n++]=t/65536&255,i[n++]=t/256&255,i[n++]=t&255,i[n++]=112|r>>>28&15,i[n++]=r>>>20&255,i[n++]=128|r>>>14&63,i[n++]=r>>>6&255,i[n++]=r<<2&255|e[10]&3,i[n++]=e[11],i[n++]=e[12],i[n++]=e[13],i[n++]=e[14],i[n++]=e[15],i}function _$(e){if(!Ni(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}var y$=A({MAX:()=>Cj,NIL:()=>Oj,parse:()=>Pj,stringify:()=>Nj,v1:()=>Rj,v4:()=>Hh,v5:()=>od,v6:()=>Mj,v7:()=>zr,validate:()=>Xo,version:()=>jj}),Cj=n$,Oj=i$,Pj=Ra,Nj=o$,Rj=id,Hh=c$,od=ad,Mj=m$,zr=g$,Xo=Ni,jj=_$;var v$=A({BaseCallbackHandler:()=>xr,callbackHandlerPrefersChatModelStreamEvents:()=>Gh,callbackHandlerPrefersStreaming:()=>Lc,isBaseCallbackHandler:()=>Jh}),zj=class{};function Lc(e){return"lc_prefer_streaming"in e&&e.lc_prefer_streaming}function Gh(e){return"lc_prefer_chat_model_stream_events"in e&&e.lc_prefer_chat_model_stream_events}var xr=class extends zj{lc_serializable=!1;get lc_namespace(){return["langchain_core","callbacks",this.name]}get lc_secrets(){}get lc_attributes(){}get lc_aliases(){}get lc_serializable_keys(){}static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,Bo(this.constructor)]}lc_kwargs;ignoreLLM=!1;ignoreChain=!1;ignoreAgent=!1;ignoreRetriever=!1;ignoreCustomEvent=!1;raiseError=!1;awaitHandlers=Ht("LANGCHAIN_CALLBACKS_BACKGROUND")==="false";constructor(e){super(),this.lc_kwargs=e||{},e&&(this.ignoreLLM=e.ignoreLLM??this.ignoreLLM,this.ignoreChain=e.ignoreChain??this.ignoreChain,this.ignoreAgent=e.ignoreAgent??this.ignoreAgent,this.ignoreRetriever=e.ignoreRetriever??this.ignoreRetriever,this.ignoreCustomEvent=e.ignoreCustomEvent??this.ignoreCustomEvent,this.raiseError=e.raiseError??this.raiseError,this.awaitHandlers=this.raiseError||(e._awaitHandler??this.awaitHandlers))}copy(){return new this.constructor(this)}toJSON(){return ut.prototype.toJSON.call(this)}toJSONNotImplemented(){return ut.prototype.toJSONNotImplemented.call(this)}static fromMethods(e){class t extends xr{name=zr();constructor(){super(),Object.assign(this,e)}}return new t}},Jh=e=>{let t=e;return t!==void 0&&typeof t.copy=="function"&&typeof t.name=="string"&&typeof t.awaitHandlers=="boolean"};var b$=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function Dj(e){return typeof e=="string"&&b$.test(e)}var Fc=Dj;function Uj(e){if(!Fc(e))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var sd=Uj;var Tt=[];for(let e=0;e<256;++e)Tt.push((e+256).toString(16).slice(1));function Yo(e,t=0){return(Tt[e[t+0]]+Tt[e[t+1]]+Tt[e[t+2]]+Tt[e[t+3]]+"-"+Tt[e[t+4]]+Tt[e[t+5]]+"-"+Tt[e[t+6]]+Tt[e[t+7]]+"-"+Tt[e[t+8]]+Tt[e[t+9]]+"-"+Tt[e[t+10]]+Tt[e[t+11]]+Tt[e[t+12]]+Tt[e[t+13]]+Tt[e[t+14]]+Tt[e[t+15]]).toLowerCase()}var Lj=new Uint8Array(16);function Qo(){return crypto.getRandomValues(Lj)}function Fj(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():Bj(e,t,r)}function Bj(e,t,r){e=e||{};let i=e.random??e.rng?.()??Qo();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return Yo(i)}var Ma=Fj;function Vj(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function Kh(e,t){return e<<t|e>>>32-t}function Zj(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],i=new Uint8Array(e.length+1);i.set(e),i[e.length]=128,e=i;let n=e.length/4+2,a=Math.ceil(n/16),o=new Array(a);for(let s=0;s<a;++s){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=e[s*64+u*4]<<24|e[s*64+u*4+1]<<16|e[s*64+u*4+2]<<8|e[s*64+u*4+3];o[s]=c}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<a;++s){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=o[s][m];for(let m=16;m<80;++m)c[m]=Kh(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],f=r[3],p=r[4];for(let m=0;m<80;++m){let g=Math.floor(m/20),y=Kh(u,5)+Vj(g,l,d,f)+p+t[g]+c[m]>>>0;p=f,f=d,d=Kh(l,30)>>>0,l=u,u=y}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+f>>>0,r[4]=r[4]+p>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}var w$=Zj;function Hj(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}var Wh="6ba7b810-9dad-11d1-80b4-00c04fd430c8",qh="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Xh(e,t,r,i,n,a){let o=typeof r=="string"?Hj(r):r,s=typeof i=="string"?sd(i):i;if(typeof i=="string"&&(i=sd(i)),i?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,n){if(a??=0,a<0||a+16>n.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)n[a+u]=c[u];return n}return Yo(c)}function Yh(e,t,r,i){return Xh(80,w$,e,t,r,i)}Yh.DNS=Wh;Yh.URL=qh;var Qh=Yh;var eg={};function Gj(e,t,r){let i;if(e)i=x$(e.random??e.rng?.()??Qo(),e.msecs,e.seq,t,r);else{let n=Date.now(),a=Qo();Jj(eg,n,a),i=x$(a,eg.msecs,eg.seq,t,r)}return t??Yo(i)}function Jj(e,t,r){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function x$(e,t,r,i,n=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!i)i=new Uint8Array(16),n=0;else if(n<0||n+16>i.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);return t??=Date.now(),r??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],i[n++]=t/1099511627776&255,i[n++]=t/4294967296&255,i[n++]=t/16777216&255,i[n++]=t/65536&255,i[n++]=t/256&255,i[n++]=t&255,i[n++]=112|r>>>28&15,i[n++]=r>>>20&255,i[n++]=128|r>>>14&63,i[n++]=r>>>6&255,i[n++]=r<<2&255|e[10]&3,i[n++]=e[11],i[n++]=e[12],i[n++]=e[13],i[n++]=e[14],i[n++]=e[15],i}var es=Gj;var S$="gen_ai.operation.name",k$="gen_ai.system",tg="gen_ai.request.model",$$="gen_ai.response.model",rg="gen_ai.usage.input_tokens",ng="gen_ai.usage.output_tokens",ig="gen_ai.usage.total_tokens",I$="gen_ai.request.max_tokens",E$="gen_ai.request.temperature",T$="gen_ai.request.top_p",A$="gen_ai.request.frequency_penalty",C$="gen_ai.request.presence_penalty",O$="gen_ai.response.finish_reasons",P$="gen_ai.prompt",N$="gen_ai.completion",R$="gen_ai.request.extra_query",M$="gen_ai.request.extra_body",j$="gen_ai.serialized.name",z$="gen_ai.serialized.signature",D$="gen_ai.serialized.doc",U$="gen_ai.response.id",L$="gen_ai.response.service_tier",F$="gen_ai.response.system_fingerprint",B$="gen_ai.usage.input_token_details",V$="gen_ai.usage.output_token_details",Z$="langsmith.trace.session_id",H$="langsmith.trace.session_name",G$="langsmith.span.kind",J$="langsmith.trace.name",K$="langsmith.metadata",ag="langsmith.span.tags";var W$="langsmith.request.streaming",q$="langsmith.request.headers";var og="langsmith.usage_metadata";var qj=(...e)=>fetch(...e),Xj,X$=Symbol.for("ls:fetch_implementation");var Y$=()=>globalThis[X$]===void 0?!0:Xj??!1,Q$=e=>async(...t)=>{if(e||Fe("DEBUG")==="true"){let[i,n]=t;console.log(`\u2192 ${n?.method||"GET"} ${i}`)}let r=await(globalThis[X$]??qj)(...t);return(e||Fe("DEBUG")==="true")&&console.log(`\u2190 ${r.status} ${r.statusText} ${r.url}`),r};var Bc=()=>Fe("PROJECT")??wt("LANGCHAIN_SESSION")??"default";var eI={};function ja(e){eI[e]||(console.warn(e),eI[e]=!0)}var N=e=>BigInt(e),iI=N("0x9E3779B1"),aI=N("0x85EBCA77"),Yj=N("0xC2B2AE3D"),Mi=N("0x9E3779B185EBCA87"),za=N("0xC2B2AE3D27D4EB4F"),oI=N("0x165667B19E3779F9"),lg=N("0x85EBCA77C2B2AE63"),Qj=N("0x27D4EB2F165667C5"),e4=N("0x165667919E3779F9"),t4=N("0x9FB21C651E98DF25");function r4(e){let t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=parseInt(e.substring(r,r+2),16);return t}var On=r4("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),rs=(N(1)<<N(128))-N(1),_e=(N(1)<<N(64))-N(1),dd=(N(1)<<N(32))-N(1),si=64,sI=si/8,n4=8,cd=4;function Be(e,t=0){return new Uint8Array(e.buffer,e.byteOffset+t,e.length-t)}function Ge(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getBigUint64(0,!0)}function ts(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getUint32(0,!0)}function sg(e,t=0){return e[t]}var i4=e=>(e&N(255))<<N(56)|(e&N(65280))<<N(40)|(e&N(16711680))<<N(24)|(e&N(4278190080))<<N(8)|(e&N(0xff00000000))>>N(8)|(e&N(0xff0000000000))>>N(24)|(e&N(0xff000000000000))>>N(40)|(e&N(0xff00000000000000))>>N(56),a4=e=>(e=(e&N(65535))<<N(16)|(e&N(4294901760))>>N(16),e=(e&N(16711935))<<N(8)|(e&N(4278255360))>>N(8),e),o4=(e,t)=>(e&dd)*(t&dd)&_e,ns=e=>{if(!e)throw new Error("Assert failed")};function s4(e,t){return(e<<t|e>>N(32)-t)&dd}function cI(e,t,r){for(let i=0;i<sI;i++){let n=Ge(t,i*8),a=n^Ge(r,i*8);e[i^1]+=n,e[i]+=o4(a,a>>N(32))}return e}function tI(e,t,r,i){for(let n=0;n<i;n++)cI(e,Be(t,n*si),Be(r,n*8));return e}function c4(e,t){for(let r=0;r<sI;r++){let i=Ge(t,r*8),n=e[r];n=cg(n,N(47)),n^=i,n*=iI,e[r]=n&_e}return e}function ud(e,t){return uI(e[0]^Ge(t,0),e[1]^Ge(t,n4))}function rI(e,t,r){let i=r;return i+=ud(e.slice(0),Be(t,0*cd)),i+=ud(e.slice(2),Be(t,4*cd)),i+=ud(e.slice(4),Be(t,8*cd)),i+=ud(e.slice(6),Be(t,12*cd)),Pn(i&_e)}function u4(e,t,r,i,n){let a=Math.floor((r.byteLength-si)/8),o=si*a,s=Math.floor((t.byteLength-1)/o);for(let c=0;c<s;c++)e=tI(e,Be(t,c*o),r,a),e=n(e,Be(r,r.byteLength-si));{let c=Math.floor((t.byteLength-1-o*s)/si);e=tI(e,Be(t,s*o),r,c),e=i(e,Be(t,t.byteLength-si),Be(r,r.byteLength-si-7))}return e}function l4(e,t,r){let i=new BigUint64Array([Yj,Mi,za,oI,lg,aI,Qj,iI]);ns(e.length>128),i=u4(i,e,t,cI,c4),ns(i.length*8==64);{let n=rI(i,Be(t,11),N(e.byteLength)*Mi&_e);return rI(i,Be(t,t.byteLength-si-11),~(N(e.byteLength)*za)&_e)<<N(64)|n}}function uI(e,t){let r=e*t&rs;return r&_e^r>>N(64)}function nI(e,t,r){return uI((Ge(e,0)^Ge(t,0)+r)&_e,(Ge(e,8)^Ge(t,8)-r)&_e)}function ld(e,t,r,i,n){let a=e&_e,o=e>>N(64)&_e;return a+=nI(t,i,n),a^=Ge(r,0)+Ge(r,8),a&=_e,o+=nI(r,Be(i,16),n),o^=Ge(t,0)+Ge(t,8),o&=_e,o<<N(64)|a}function Pn(e){return e^=e>>N(37),e*=e4,e&=_e,e^=e>>N(32),e}function fd(e){return e^=e>>N(33),e*=za,e&=_e,e^=e>>N(29),e*=oI,e&=_e,e^=e>>N(32),e}function d4(e,t,r){let i=e.byteLength;ns(i>0&&i<=3);let n=N(sg(e,i-1))|N(i<<8)|N(sg(e,0)<<16)|N(sg(e,i>>1)<<24),a=(N(ts(t,0))^N(ts(t,4)))+r,o=(n^a)&_e,s=(N(ts(t,8))^N(ts(t,12)))-r,c=(s4(a4(n),N(13))^s)&_e;return(fd(c)&_e)<<N(64)|fd(o)}function cg(e,t){return e^e>>t}function f4(e,t,r){let i=e.byteLength;ns(i>=4&&i<=8);{let n=ts(e,0),a=ts(e,i-4),o=N(n)|N(a)<<N(32),s=(Ge(t,16)^Ge(t,24))+r&_e,u=(o^s)*(Mi+(N(i)<<N(2)))&rs;return u+=(u&_e)<<N(65),u&=rs,u^=u>>N(67),cg(cg(u&_e,N(35))*t4&_e,N(28))|Pn(u>>N(64))<<N(64)}}function p4(e,t,r){let i=e.byteLength;ns(i>=9&&i<=16);{let n=(Ge(t,32)^Ge(t,40))+r&_e,a=(Ge(t,48)^Ge(t,56))-r&_e,o=Ge(e),s=Ge(e,i-8),c=(o^s^n)*Mi,u=(c&_e)+(N(i-1)<<N(54));c=c&(rs^_e)|u,s^=a,c+=s+(s&dd)*(aI-N(1))<<N(64),c&=rs,c^=i4(c>>N(64));let l=(c&_e)*za;return l+=(c>>N(64))*za<<N(64),l&=rs,Pn(l&_e)|Pn(l>>N(64))<<N(64)}}function m4(e,t){let r=e.byteLength;return ns(r<=16),r>8?p4(e,On,t):r>=4?f4(e,On,t):r>0?d4(e,On,t):fd(t^Ge(On,64)^Ge(On,72))|fd(t^Ge(On,80)^Ge(On,88))<<N(64)}function ug(e){return~e+N(1)&_e}function h4(e,t,r){let i=N(e.byteLength)*Mi&_e,n=N(e.byteLength-1)/N(32);for(;n>=0;){let s=Number(n);i=ld(i,Be(e,16*s),Be(e,e.byteLength-16*(s+1)),Be(t,32*s),r),n--}let a=i+(i>>N(64))&_e;a=Pn(a);let o=(i&_e)*Mi+(i>>N(64))*lg+(N(e.byteLength)-r&_e)*za;return o&=_e,o=ug(Pn(o)),a|o<<N(64)}function g4(e,t,r){let i=N(e.byteLength)*Mi&_e;for(let o=32;o<160;o+=32)i=ld(i,Be(e,o-32),Be(e,o-16),Be(t,o-32),r);i=Pn(i&_e)|Pn(i>>N(64))<<N(64);for(let o=160;o<=e.byteLength;o+=32)i=ld(i,Be(e,o-32),Be(e,o-16),Be(t,3+o-160),r);i=ld(i,Be(e,e.byteLength-16),Be(e,e.byteLength-32),Be(t,103),ug(r));let n=i+(i>>N(64))&_e;n=Pn(n);let a=(i&_e)*Mi+(i>>N(64))*lg+(N(e.byteLength)-r&_e)*za;return a&=_e,a=ug(Pn(a)),n|a<<N(64)}function lI(e,t=N(0)){let r=e.byteLength;return r<=16?m4(e,t):r<=128?h4(e,On,t):r<=240?g4(e,On,t):l4(e,On,t)}function dI(e){let t=new Uint8Array(16),r=new DataView(t.buffer),i=e&_e,n=e>>N(64);return r.setBigUint64(0,n,!1),r.setBigUint64(8,i,!1),t}var fI=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function pe(e,t){if(!fI.test(e)){let r=t!==void 0?`Invalid UUID for ${t}: ${e}`:`Invalid UUID: ${e}`;throw new Error(r)}return e}function pd(e){let t=typeof e=="string"?Date.parse(e):e;return es({msecs:t,seq:0})}function _4(e){if(!fI.test(e))return null;let t=e[14];return parseInt(t,16)}function y4(e){let t=e.replace(/-/g,""),r=new Uint8Array(16);for(let i=0;i<16;i++)r[i]=parseInt(t.slice(i*2,i*2+2),16);return r}function v4(e){let t=Array.from(e).map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var b4=new TextEncoder;function w4(e){let t=b4.encode(e),r=lI(t);return dI(r)}function Vc(e,t){let r=`${e}:${t}`,i=w4(r),n=new Uint8Array(16);if(_4(e)===7){let o=y4(e);n.set(o.slice(0,6),0)}else{let o=Date.now();n[0]=o/1099511627776&255,n[1]=o/4294967296&255,n[2]=o/16777216&255,n[3]=o/65536&255,n[4]=o/256&255,n[5]=o&255}return n[6]=112|i[0]&15,n[7]=i[1],n[8]=128|i[2]&63,n.set(i.slice(3,10),9),v4(n)}var Da={join:(...e)=>e.join("/"),dirname:e=>e.split("/").slice(0,-1).join("/")};async function pI(e){}async function md(e,t){}async function mI(e){return[]}async function hI(e){return{size:0}}function is(e){return!1}function hd(e){return""}function x4(e,t){return t===null?!1:Date.now()-e.createdAt>t*1e3}var gd=class{constructor(t={}){Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ttlSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshIntervalSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metrics",{enumerable:!0,configurable:!0,writable:!0,value:{hits:0,misses:0,refreshes:0,refreshErrors:0}}),this.configure(t)}get metrics(){return{...this._metrics}}get totalRequests(){return this._metrics.hits+this._metrics.misses}get hitRate(){let t=this.totalRequests;return t>0?this._metrics.hits/t:0}resetMetrics(){this._metrics={hits:0,misses:0,refreshes:0,refreshErrors:0}}get(t,r){if(this.maxSize===0)return;let i=this.cache.get(t);if(!i){this._metrics.misses+=1;return}return this.cache.delete(t),this.cache.set(t,{...i,refreshFunc:r}),this._metrics.hits+=1,i.value}set(t,r,i){if(this.maxSize===0)return;if(this.refreshTimer===void 0&&this.startRefreshLoop(),!this.cache.has(t)&&this.cache.size>=this.maxSize){let a=this.cache.keys().next().value;a!==void 0&&this.cache.delete(a)}let n={value:r,createdAt:Date.now(),refreshFunc:i};this.cache.delete(t),this.cache.set(t,n)}invalidate(t){this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}stop(){this.refreshTimer&&(clearInterval(this.refreshTimer),this.refreshTimer=void 0)}dump(t){let r={};for(let[a,o]of this.cache.entries())r[a]=o.value;let i=Da.dirname(t);is(i)||void 0;let n=`${t}.tmp`;try{JSON.stringify({entries:r},null,2)}catch(a){throw is(n)&&void 0,a}}load(t){if(!is(t))return 0;let r;try{let a=hd(t);r=JSON.parse(a).entries??null}catch{return 0}if(!r)return 0;let i=0,n=Date.now();for(let[a,o]of Object.entries(r)){if(this.cache.size>=this.maxSize)break;let s={value:o,createdAt:n};this.cache.set(a,s),i+=1}return i}startRefreshLoop(){this.stop(),this.ttlSeconds!==null&&(this.refreshTimer=setInterval(()=>{this.refreshStaleEntries().catch(t=>{console.warn("Unexpected error in cache refresh loop:",t)})},this.refreshIntervalSeconds*1e3),this.refreshTimer.unref&&this.refreshTimer.unref())}getStaleEntries(){let t=[];for(let[r,i]of this.cache.entries())x4(i,this.ttlSeconds)&&t.push([r,i]);return t}async refreshStaleEntries(){let t=this.getStaleEntries();if(t.length!==0){for(let[r,i]of t)if(i.refreshFunc!==void 0)try{let n=await i.refreshFunc();this.set(r,n,i.refreshFunc),this._metrics.refreshes+=1}catch(n){this._metrics.refreshErrors+=1,console.warn(`Failed to refresh cache entry ${r}:`,n)}}}configure(t){this.stop(),this.refreshIntervalSeconds=t.refreshIntervalSeconds??60,this.maxSize=t.maxSize??100,this.ttlSeconds=t.ttlSeconds??300}},_d=new gd;var yd="0.7.4";var Rn,S4=()=>typeof window<"u"&&typeof window.document<"u",k4=()=>typeof globalThis=="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",$4=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),vI=()=>typeof Deno<"u",I4=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!vI(),Zc=()=>Rn||(typeof Bun<"u"?Rn="bun":S4()?Rn="browser":I4()?Rn="node":k4()?Rn="webworker":$4()?Rn="jsdom":vI()?Rn="deno":Rn="other",Rn),dg;function vd(){if(dg===void 0){let e=Zc(),t=T4();dg={library:"langsmith",runtime:e,sdk:"langsmith-js",sdk_version:yd,...t}}return dg}function pg(){let e=E4(),t={},r=["LANGCHAIN_API_KEY","LANGCHAIN_ENDPOINT","LANGCHAIN_TRACING_V2","LANGCHAIN_PROJECT","LANGCHAIN_SESSION","LANGSMITH_API_KEY","LANGSMITH_ENDPOINT","LANGSMITH_TRACING_V2","LANGSMITH_CONFIG_FILE","LANGSMITH_PROJECT","LANGSMITH_SESSION"];for(let[i,n]of Object.entries(e))typeof n=="string"&&!r.includes(i)&&!i.toLowerCase().includes("key")&&!i.toLowerCase().includes("secret")&&!i.toLowerCase().includes("token")&&(i==="LANGCHAIN_REVISION_ID"?t.revision_id=n:t[i]=n);return t}function E4(){let e={};try{if(typeof process<"u"&&process.env)for(let[t,r]of Object.entries(process.env))(t.startsWith("LANGCHAIN_")||t.startsWith("LANGSMITH_"))&&r!=null&&((t.toLowerCase().includes("key")||t.toLowerCase().includes("secret")||t.toLowerCase().includes("token"))&&typeof r=="string"?e[t]=r.slice(0,2)+"*".repeat(r.length-4)+r.slice(-2):e[t]=r)}catch{}return e}function wt(e){try{return typeof process<"u"?process.env?.[e]:void 0}catch{return}}function Fe(e){return wt(`LANGSMITH_${e}`)||wt(`LANGCHAIN_${e}`)}var fg;function T4(){if(fg!==void 0)return fg;let e=["VERCEL_GIT_COMMIT_SHA","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","COMMIT_REF","RENDER_GIT_COMMIT","CI_COMMIT_SHA","CIRCLE_SHA1","CF_PAGES_COMMIT_SHA","REACT_APP_GIT_SHA","SOURCE_VERSION","GITHUB_SHA","TRAVIS_COMMIT","GIT_COMMIT","BUILD_VCS_NUMBER","bamboo_planRepository_revision","Build.SourceVersion","BITBUCKET_COMMIT","DRONE_COMMIT_SHA","SEMAPHORE_GIT_SHA","BUILDKITE_COMMIT"],t={};for(let r of e){let i=wt(r);i!==void 0&&(t[r]=i)}return fg=t,t}function _I(){return wt("OTEL_ENABLED")==="true"||Fe("OTEL_ENABLED")==="true"}var yI=new Set(["langsmith","otel"]);function bd(e){if(e!==void 0)return e;let t=Fe("TRACING_MODE");if(t!==void 0&&t!==""){let r=t.toLowerCase();if(!yI.has(r))throw new Error(`Invalid LANGSMITH_TRACING_MODE=${JSON.stringify(t)}. Must be one of: ${[...yI].sort().join(", ")}`);return _I()&&console.warn("Both LANGSMITH_TRACING_MODE and the legacy OTEL_ENABLED / LANGSMITH_OTEL_ENABLED env vars are set. LANGSMITH_TRACING_MODE takes precedence."),r}return _I()?"otel":"langsmith"}var gg=class{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan(t,...r){!this.hasWarned&&bd()==="otel"&&(console.warn('OTel tracing mode is active (via LANGSMITH_TRACING_MODE, OTEL_ENABLED, or LANGSMITH_OTEL_ENABLED), but the required OTEL instances have not been initialized. Please add:\n```\nimport { initializeOTEL } from "langsmith/experimental/otel/setup";\ninitializeOTEL();\n```\nat the beginning of your code.'),this.hasWarned=!0);let i;if(r.length===1&&typeof r[0]=="function"?i=r[0]:r.length===2&&typeof r[1]=="function"?i=r[1]:r.length===3&&typeof r[2]=="function"&&(i=r[2]),typeof i=="function")return i()}},_g=class{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new gg})}getTracer(t,r){return this.mockTracer}getActiveSpan(){}setSpan(t,r){return t}getSpan(t){}setSpanContext(t,r){return t}getTracerProvider(){}setGlobalTracerProvider(t){return!1}},yg=class{active(){return{}}with(t,r){return r()}},mg=Symbol.for("ls:otel_trace"),hg=Symbol.for("ls:otel_context"),bI=Symbol.for("ls:otel_get_default_otlp_tracer_provider"),A4=new _g,C4=new yg,vg=class{getTraceInstance(){return globalThis[mg]??A4}getContextInstance(){return globalThis[hg]??C4}initializeGlobalInstances(t){globalThis[mg]===void 0&&(globalThis[mg]=t.trace),globalThis[hg]===void 0&&(globalThis[hg]=t.context)}setDefaultOTLPTracerComponents(t){globalThis[bI]=t}getDefaultOTLPTracerComponents(){return globalThis[bI]??void 0}},bg=new vg;function wd(){return bg.getTraceInstance()}function wI(){return bg.getContextInstance()}function xI(){return bg.getDefaultOTLPTracerComponents()}var O4={llm:"chat",tool:"execute_tool",retriever:"embeddings",embedding:"embeddings",prompt:"chat"};function P4(e){return O4[e]||e}function N4(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var xd=class{constructor(){Object.defineProperty(this,"spans",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}exportBatch(t,r){for(let i of t)try{if(!i.run)continue;if(i.operation==="post"){let n=this.createSpanForRun(i,i.run,r.get(i.id));n&&!i.run.end_time&&this.spans.set(i.id,n)}else this.updateSpanForRun(i,i.run)}catch(n){console.error(`Error processing operation ${i.id}:`,n)}}createSpanForRun(t,r,i){let n=i&&wd().getSpan(i);if(n)try{return this.finishSpanSetup(n,r,t)}catch(a){console.error(`Failed to create span for run ${t.id}:`,a);return}}finishSpanSetup(t,r,i){return this.setSpanAttributes(t,r,i),r.error?(t.setStatus({code:2}),t.recordException(new Error(r.error))):t.setStatus({code:1}),r.end_time&&t.end(new Date(r.end_time)),t}updateSpanForRun(t,r){try{let i=this.spans.get(t.id);if(!i){console.debug(`No span found for run ${t.id} during update`);return}this.setSpanAttributes(i,r,t),r.error?(i.setStatus({code:2}),i.recordException(new Error(r.error))):i.setStatus({code:1});let n=r.end_time;n&&(i.end(new Date(n)),this.spans.delete(t.id))}catch(i){console.error(`Failed to update span for run ${t.id}:`,i)}}extractModelName(t){if(t.extra?.metadata){let r=t.extra.metadata;if(r.ls_model_name)return r.ls_model_name;if(r.invocation_params){let i=r.invocation_params;if(i.model)return i.model;if(i.model_name)return i.model_name}}}setSpanAttributes(t,r,i){if("run_type"in r&&r.run_type){t.setAttribute(G$,r.run_type);let s=P4(r.run_type||"chain");t.setAttribute(S$,s)}"name"in r&&r.name&&t.setAttribute(J$,r.name),"session_id"in r&&r.session_id&&t.setAttribute(Z$,r.session_id),"session_name"in r&&r.session_name&&t.setAttribute(H$,r.session_name),this.setGenAiSystem(t,r);let n=this.extractModelName(r);n&&t.setAttribute(tg,n),r.extra?.metadata?.usage_metadata&&typeof r.extra.metadata.usage_metadata=="object"&&t.setAttribute(og,JSON.stringify(r.extra.metadata.usage_metadata)),"prompt_tokens"in r&&typeof r.prompt_tokens=="number"&&t.setAttribute(rg,r.prompt_tokens),"completion_tokens"in r&&typeof r.completion_tokens=="number"&&t.setAttribute(ng,r.completion_tokens),"total_tokens"in r&&typeof r.total_tokens=="number"&&t.setAttribute(ig,r.total_tokens),this.setInvocationParameters(t,r);let a=r.extra?.metadata||{};for(let[s,c]of Object.entries(a))c!=null&&t.setAttribute(`${K$}.${s}`,N4(c)?String(c):JSON.stringify(c));let o=r.tags;if(o&&Array.isArray(o)?t.setAttribute(ag,o.join(", ")):o&&t.setAttribute(ag,String(o)),"serialized"in r&&typeof r.serialized=="object"){let s=r.serialized;s.name&&t.setAttribute(j$,String(s.name)),s.signature&&t.setAttribute(z$,String(s.signature)),s.doc&&t.setAttribute(D$,String(s.doc))}this.setIOAttributes(t,i)}setGenAiSystem(t,r){let i="langchain",n=this.extractModelName(r);if(n){let a=n.toLowerCase();a.includes("anthropic")||a.startsWith("claude")?i="anthropic":a.includes("bedrock")?i="aws.bedrock":a.includes("azure")&&a.includes("openai")?i="az.ai.openai":a.includes("azure")&&a.includes("inference")?i="az.ai.inference":a.includes("cohere")?i="cohere":a.includes("deepseek")?i="deepseek":a.includes("gemini")?i="gemini":a.includes("groq")?i="groq":a.includes("watson")||a.includes("ibm")?i="ibm.watsonx.ai":a.includes("mistral")?i="mistral_ai":a.includes("gpt")||a.includes("openai")?i="openai":a.includes("perplexity")||a.includes("sonar")?i="perplexity":a.includes("vertex")?i="vertex_ai":(a.includes("xai")||a.includes("grok"))&&(i="xai")}t.setAttribute(k$,i)}setInvocationParameters(t,r){if(!r.extra?.metadata?.invocation_params)return;let i=r.extra.metadata.invocation_params;i.max_tokens!==void 0&&t.setAttribute(I$,i.max_tokens),i.temperature!==void 0&&t.setAttribute(E$,i.temperature),i.top_p!==void 0&&t.setAttribute(T$,i.top_p),i.frequency_penalty!==void 0&&t.setAttribute(A$,i.frequency_penalty),i.presence_penalty!==void 0&&t.setAttribute(C$,i.presence_penalty)}setIOAttributes(t,r){if(r.run.inputs)try{let i=r.run.inputs;typeof i=="object"&&i!==null&&(i.model&&Array.isArray(i.messages)&&t.setAttribute(tg,i.model),i.stream!==void 0&&t.setAttribute(W$,i.stream),i.extra_headers&&t.setAttribute(q$,JSON.stringify(i.extra_headers)),i.extra_query&&t.setAttribute(R$,JSON.stringify(i.extra_query)),i.extra_body&&t.setAttribute(M$,JSON.stringify(i.extra_body))),t.setAttribute(P$,JSON.stringify(i))}catch(i){console.debug(`Failed to process inputs for run ${r.id}`,i)}if(r.run.outputs)try{let i=r.run.outputs,n=this.getUnifiedRunTokens(i);if(n&&(t.setAttribute(rg,n[0]),t.setAttribute(ng,n[1]),t.setAttribute(ig,n[0]+n[1])),i&&typeof i=="object"){if(i.model&&t.setAttribute($$,String(i.model)),i.id&&t.setAttribute(U$,i.id),i.choices&&Array.isArray(i.choices)){let a=i.choices.map(o=>o.finish_reason).filter(o=>o).map(String);a.length>0&&t.setAttribute(O$,a.join(", "))}if(i.service_tier&&t.setAttribute(L$,i.service_tier),i.system_fingerprint&&t.setAttribute(F$,i.system_fingerprint),i.usage_metadata&&typeof i.usage_metadata=="object"){let a=i.usage_metadata;t.setAttribute(og,JSON.stringify(a)),a.input_token_details&&t.setAttribute(B$,JSON.stringify(a.input_token_details)),a.output_token_details&&t.setAttribute(V$,JSON.stringify(a.output_token_details))}}t.setAttribute(N$,JSON.stringify(i))}catch(i){console.debug(`Failed to process outputs for run ${r.id}`,i)}}getUnifiedRunTokens(t){if(!t)return null;let r=this.extractUnifiedRunTokens(t.usage_metadata);if(r)return r;let i=Object.keys(t);for(let o of i){let s=t[o];if(!(!s||typeof s!="object")&&(r=this.extractUnifiedRunTokens(s.usage_metadata),r||s.lc===1&&s.kwargs&&typeof s.kwargs=="object"&&(r=this.extractUnifiedRunTokens(s.kwargs.usage_metadata),r)))return r}let n=t.generations||[];if(!Array.isArray(n))return null;let a=Array.isArray(n[0])?n.flat():n;for(let o of a)if(typeof o=="object"&&o.message&&typeof o.message=="object"&&o.message.kwargs&&typeof o.message.kwargs=="object"&&(r=this.extractUnifiedRunTokens(o.message.kwargs.usage_metadata),r))return r;return null}extractUnifiedRunTokens(t){return!t||typeof t!="object"||typeof t.input_tokens!="number"||typeof t.output_tokens!="number"?null:[t.input_tokens,t.output_tokens]}};var R4=Object.prototype.toString,M4=e=>R4.call(e)==="[object Error]",j4=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function wg(e){if(!(e&&M4(e)&&e.name==="TypeError"&&typeof e.message=="string"))return!1;let{message:r,stack:i}=e;return r==="Load failed"?i===void 0||"__sentry_captured__"in e:r.startsWith("error sending request for url")?!0:j4.has(r)}function z4(e){if(typeof e=="number"){if(e<0)throw new TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(e!==void 0)throw new TypeError("Expected `retries` to be a number or Infinity.")}function Sd(e,t,{min:r=0,allowInfinity:i=!1}={}){if(t!==void 0){if(typeof t!="number"||Number.isNaN(t))throw new TypeError(`Expected \`${e}\` to be a number${i?" or Infinity":""}.`);if(!i&&!Number.isFinite(t))throw new TypeError(`Expected \`${e}\` to be a finite number.`);if(t<r)throw new TypeError(`Expected \`${e}\` to be \u2265 ${r}.`)}}var xg=class extends Error{constructor(t){super(),t instanceof Error?(this.originalError=t,{message:t}=t):(this.originalError=new Error(t),this.originalError.stack=this.stack),this.name="AbortError",this.message=t}};function D4(e,t){let r=Math.max(1,e+1),i=t.randomize?Math.random()+1:1,n=Math.round(i*t.minTimeout*t.factor**(r-1));return n=Math.min(n,t.maxTimeout),n}function SI(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function U4({error:e,attemptNumber:t,retriesConsumed:r,startTime:i,options:n}){let a=e instanceof Error?e:new TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(a instanceof xg)throw a.originalError;let o=Number.isFinite(n.retries)?Math.max(0,n.retries-r):n.retries,s=n.maxRetryTime??Number.POSITIVE_INFINITY,c=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:r});if(await n.onFailedAttempt(c),SI(i,s)<=0)throw a;let u=await n.shouldConsumeRetry(c),l=SI(i,s);if(l<=0||o<=0)throw a;if(a instanceof TypeError&&!wg(a)){if(u)throw a;return n.signal?.throwIfAborted(),!1}if(!await n.shouldRetry(c))throw a;if(!u)return n.signal?.throwIfAborted(),!1;let d=D4(r,n),f=Math.min(d,l);return f>0&&await new Promise((p,m)=>{let g=()=>{clearTimeout(y),n.signal?.removeEventListener("abort",g),m(n.signal.reason)},y=setTimeout(()=>{n.signal?.removeEventListener("abort",g),p()},f);n.unref&&y.unref?.(),n.signal?.addEventListener("abort",g,{once:!0})}),n.signal?.throwIfAborted(),!0}async function Sg(e,t={}){if(t={...t},z4(t.retries),Object.hasOwn(t,"forever"))throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=Number.POSITIVE_INFINITY,t.maxRetryTime??=Number.POSITIVE_INFINITY,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,Sd("factor",t.factor,{min:0,allowInfinity:!1}),Sd("minTimeout",t.minTimeout,{min:0,allowInfinity:!1}),Sd("maxTimeout",t.maxTimeout,{min:0,allowInfinity:!0}),Sd("maxRetryTime",t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let r=0,i=0,n=performance.now();for(;!Number.isFinite(t.retries)||i<=t.retries;){r++;try{t.signal?.throwIfAborted();let a=await e(r);return t.signal?.throwIfAborted(),a}catch(a){await U4({error:a,attemptNumber:r,retriesConsumed:i,startTime:n,options:t})&&i++}}throw new Error("Retry attempts exhausted without throwing an error.")}var Ad=Al(Td(),1),NI="default"in Ad.default?Ad.default.default:Ad.default;var K4=[408,425,429,500,502,503,504],Gc=class{constructor(t){Object.defineProperty(this,"maxConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxRetries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxQueueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFailedResponseHook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.maxConcurrency=t.maxConcurrency??1/0,this.maxRetries=t.maxRetries??6,this.maxQueueSizeBytes=t.maxQueueSizeBytes,this.queue=new NI({concurrency:this.maxConcurrency}),this.onFailedResponseHook=t?.onFailedResponseHook}call(t,...r){return this.callWithOptions({},t,...r)}callWithOptions(t,r,...i){let n=t.sizeBytes??0;if(this.maxQueueSizeBytes!==void 0&&n>0&&this.queueSizeBytes+n>this.maxQueueSizeBytes)return Promise.reject(new Error(`Queue size limit (${this.maxQueueSizeBytes} bytes) exceeded. Current queue size: ${this.queueSizeBytes} bytes, attempted addition: ${n} bytes.`));n>0&&(this.queueSizeBytes+=n);let a=this.onFailedResponseHook,o=this.queue.add(()=>Sg(()=>r(...i).catch(s=>{throw s instanceof Error?s:new Error(s)}),{async onFailedAttempt({error:s}){if(typeof s!="object"||s==null)throw s;let c="message"in s&&typeof s.message=="string"?s.message:void 0;if(c?.startsWith("Cancel")||c?.startsWith("TimeoutError")||c?.startsWith("AbortError")||"name"in s&&s.name==="TimeoutError"||"code"in s&&s.code==="ECONNABORTED")throw s;let u="response"in s?s.response:void 0;if(a&&await a(u))return;let l=u?.status??("status"in s?s.status:void 0);if(l!=null&&(typeof l=="number"||typeof l=="string")&&!K4.includes(+l))throw s},retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0});return n>0&&(o=o.finally(()=>{this.queueSizeBytes-=n})),t.signal?Promise.race([o,new Promise((s,c)=>{t.signal?.addEventListener("abort",()=>{c(new Error("AbortError"))})})]):o}};function Cg(e){return typeof e?._getType=="function"}function Og(e){let t={type:e._getType(),data:{content:e.content}};return e?.additional_kwargs&&Object.keys(e.additional_kwargs).length>0&&(t.data.additional_kwargs={...e.additional_kwargs}),t}function Od(e){return`Invalid prompt identifier format: "${e}". Expected one of:
|
|
22
22
|
- "prompt-name" (for private prompts)
|
|
23
23
|
- "owner/prompt-name" (for prompts with explicit owner)
|
|
24
24
|
- "prompt-name:commit-hash" (with commit reference)
|
|
@@ -146,7 +146,7 @@ Message: ${Array.isArray(o.detail)?o.detail.join(`
|
|
|
146
146
|
creating a LangChain Hub handle.
|
|
147
147
|
You can add a handle by creating a public prompt at:
|
|
148
148
|
|
|
149
|
-
https://smith.langchain.com/prompts`);let[n,a,o]=Rt(t);if(!await this._currentTenantIsOwner(n))throw await this._ownerConflictError("create a prompt",n);let s={repo_handle:a,...r?.description&&{description:r.description},...r?.readme&&{readme:r.readme},...r?.tags&&{tags:r.tags},is_public:!!r?.isPublic},c=JSON.stringify(s),u=await this.caller.call(async()=>{let d=await this._fetch(`${this.apiUrl}/repos/`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await Y(d,"create prompt"),d}),{repo:l}=await u.json();return l}async createCommit(t,r,i){if(!await this.promptExists(t))throw new Error("Prompt does not exist, you must create it first.");let[n,a,o]=Rt(t),s=i?.parentCommitHash==="latest"||!i?.parentCommitHash?await this._getLatestCommitHash(`${n}/${a}`):i?.parentCommitHash,c={manifest:JSON.parse(JSON.stringify(r)),parent_commit:s,...i?.description!==void 0&&{description:i.description}},u=JSON.stringify(c),d=await(await this.caller.call(async()=>{let f=await this._fetch(`${this.apiUrl}/commits/${n}/${a}`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:u});return await Y(f,"create commit"),f})).json();return this._getPromptUrl(`${n}/${a}${d.commit_hash?`:${d.commit_hash}`:""}`)}async updateExamplesMultipart(t,r=[]){return this._updateExamplesMultipart(t,r)}async _updateExamplesMultipart(t,r=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw new Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let i=new FormData;for(let o of r){let s=o.id,c={...o.metadata&&{metadata:o.metadata},...o.split&&{split:o.split}},u=Mt(c,`Serializing body for example with id: ${s}`),l=new Blob([u],{type:"application/json"});if(i.append(s,l),o.inputs){let d=Mt(o.inputs,`Serializing inputs for example with id: ${s}`),f=new Blob([d],{type:"application/json"});i.append(`${s}.inputs`,f)}if(o.outputs){let d=Mt(o.outputs,`Serializing outputs whle updating example with id: ${s}`),f=new Blob([d],{type:"application/json"});i.append(`${s}.outputs`,f)}if(o.attachments)for(let[d,f]of Object.entries(o.attachments)){let p,m;Array.isArray(f)?[p,m]=f:(p=f.mimeType,m=f.data);let g=new Blob([m],{type:`${p}; length=${m.byteLength}`});i.append(`${s}.attachment.${d}`,g)}if(o.attachments_operations){let d=Mt(o.attachments_operations,`Serializing attachments while updating example with id: ${s}`),f=new Blob([d],{type:"application/json"});i.append(`${s}.attachments_operations`,f)}}let n=t??r[0]?.dataset_id;return(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${n}/examples`)}`,{method:"PATCH",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:i});return await Y(o,"update examples"),o})).json()}async uploadExamplesMultipart(t,r=[]){return this._uploadExamplesMultipart(t,r)}async _uploadExamplesMultipart(t,r=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw new Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let i=new FormData;for(let a of r){let o=(a.id??Ma()).toString(),s={created_at:a.created_at,...a.metadata&&{metadata:a.metadata},...a.split&&{split:a.split},...a.source_run_id&&{source_run_id:a.source_run_id},...a.use_source_run_io&&{use_source_run_io:a.use_source_run_io},...a.use_source_run_attachments&&{use_source_run_attachments:a.use_source_run_attachments}},c=Mt(s,`Serializing body for uploaded example with id: ${o}`),u=new Blob([c],{type:"application/json"});if(i.append(o,u),a.inputs){let l=Mt(a.inputs,`Serializing inputs for uploaded example with id: ${o}`),d=new Blob([l],{type:"application/json"});i.append(`${o}.inputs`,d)}if(a.outputs){let l=Mt(a.outputs,`Serializing outputs for uploaded example with id: ${o}`),d=new Blob([l],{type:"application/json"});i.append(`${o}.outputs`,d)}if(a.attachments)for(let[l,d]of Object.entries(a.attachments)){let f,p;Array.isArray(d)?[f,p]=d:(f=d.mimeType,p=d.data);let m=new Blob([p],{type:`${f}; length=${p.byteLength}`});i.append(`${o}.attachment.${l}`,m)}}return(await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${t}/examples`)}`,{method:"POST",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:i});return await Y(a,"upload examples"),a})).json()}async updatePrompt(t,r){if(!await this.promptExists(t))throw new Error("Prompt does not exist, you must create it first.");let[i,n]=Rt(t);if(!await this._currentTenantIsOwner(i))throw await this._ownerConflictError("update a prompt",i);let a={};if(r?.description!==void 0&&(a.description=r.description),r?.readme!==void 0&&(a.readme=r.readme),r?.tags!==void 0&&(a.tags=r.tags),r?.isPublic!==void 0&&(a.is_public=r.isPublic),r?.isArchived!==void 0&&(a.is_archived=r.isArchived),Object.keys(a).length===0)throw new Error("No valid update options provided");let o=JSON.stringify(a);return(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/repos/${i}/${n}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:o});return await Y(c,"update prompt"),c})).json()}async deletePrompt(t){if(!await this.promptExists(t))throw new Error("Prompt does not exist, you must create it first.");let[r,i,n]=Rt(t);if(!await this._currentTenantIsOwner(r))throw await this._ownerConflictError("delete a prompt",r);return(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}/repos/${r}/${i}`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(o,"delete prompt"),o})).json()}_getPromptCacheKey(t,r){return`${t}${r?":with_model":""}`}async _fetchPromptFromApi(t,r){let[i,n,a]=Rt(t),s=await(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/commits/${i}/${n}/${a}${r?.includeModel?"?include_model=true":""}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(c,"pull prompt commit"),c})).json();return{owner:i,repo:n,commit_hash:s.commit_hash,manifest:s.manifest,examples:s.examples,hub_model_config:s.model_config,hub_model_provider:s.model_provider}}async pullPromptCommit(t,r){gz(t,r?.dangerouslyPullPublicPrompt);let i=this._fetchPromptFromApi.bind(this,t,r);if(!r?.skipCache&&this._promptCache){let n=this._getPromptCacheKey(t,r?.includeModel),a=this._promptCache.get(n,i);if(a)return a;let o=await i();return this._promptCache.set(n,o,i),o}return this._fetchPromptFromApi(t,r)}async _pullPrompt(t,r){let i=await this.pullPromptCommit(t,{includeModel:r?.includeModel,skipCache:r?.skipCache,dangerouslyPullPublicPrompt:r?.dangerouslyPullPublicPrompt});return JSON.stringify(i.manifest)}async pushPrompt(t,r){return await this.promptExists(t)?r&&Object.keys(r).some(n=>n!=="object")&&await this.updatePrompt(t,{description:r?.description,readme:r?.readme,tags:r?.tags,isPublic:r?.isPublic}):await this.createPrompt(t,{description:r?.description,readme:r?.readme,tags:r?.tags,isPublic:r?.isPublic}),r?.object?await this.createCommit(t,r?.object,{parentCommitHash:r?.parentCommitHash,description:r?.commitDescription}):await this._getPromptUrl(t)}async agentExists(t){let[r,i]=Rt(t);return this._repoExists(r,i)}async skillExists(t){let[r,i]=Rt(t);return this._repoExists(r,i)}async pullAgent(t,r){return await this._pullDirectory(t,"agent",r?.version)}async pullSkill(t,r){return await this._pullDirectory(t,"skill",r?.version)}async pushAgent(t,r){return this._pushDirectory(t,"agent",r)}async pushSkill(t,r){return this._pushDirectory(t,"skill",r)}async deleteAgent(t){return this._deleteDirectory(t)}async deleteSkill(t){return this._deleteDirectory(t)}async*listAgents(t){yield*this._listReposByType("agent",t)}async*listSkills(t){yield*this._listReposByType("skill",t)}async*_listReposByType(t,r){let i=new URLSearchParams;i.append("repo_type",t),i.append("is_archived",(!!r?.isArchived).toString()),r?.isPublic!==void 0&&i.append("is_public",r.isPublic.toString()),r?.query&&i.append("query",r.query);for await(let n of this._getPaginated("/repos",i,a=>a.repos))yield*n}async _pullDirectory(t,r,i){let[n,a,o]=Rt(t),s=i??(o!=="latest"?o:void 0),c=new URL(`${this.apiUrl}/v1/platform/hub/repos/${n}/${a}/directories`);return c.searchParams.set("repo_type",r),s&&c.searchParams.set("commit",s),await(await this.caller.call(async()=>{let l=await this._fetch(c.toString(),{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(l,"pull directory"),l})).json()}async _pushDirectory(t,r,i){if(i.parentCommit!==void 0&&(i.parentCommit.length<8||i.parentCommit.length>64))throw new Error("parent_commit must be 8-64 characters");let[n,a]=Rt(t);if(!await this._currentTenantIsOwner(n))throw await this._ownerConflictError(`push ${r}`,n);if(await this._repoExists(n,a))(i.description!==void 0||i.readme!==void 0||i.tags!==void 0||i.isPublic!==void 0)&&await this._updateRepoMetadata(n,a,i);else{let l=/^[a-z][a-z0-9-_]*$/;if(!l.test(a))throw new Error(`Invalid repo_handle ${JSON.stringify(a)}: must match ${l}`);await this._createRepo(a,r,i)}let o={files:i.files};i.parentCommit&&(o.parent_commit=i.parentCommit);let u=(await(await this.caller.call(async()=>{let l=await this._fetch(`${this.apiUrl}/v1/platform/hub/repos/${n}/${a}/directories/commits`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(o)});return await Y(l,`push ${r}`),l})).json()).commit.commit_hash;return`${this.getHostUrl()}/context/${a}/${u.slice(0,8)}`}async _deleteDirectory(t){let[r,i]=Rt(t);if(!await this._currentTenantIsOwner(r))throw await this._ownerConflictError("delete",r);await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/v1/platform/hub/repos/${r}/${i}/directories`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(n,"delete directory"),n})}async _repoExists(t,r){try{return await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/repos/${t}/${r}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(i,"check repo exists"),i}),!0}catch(i){if(Pd(i))return!1;throw i}}async _createRepo(t,r,i){let n={repo_handle:t,repo_type:r,is_public:!!i.isPublic};i.description!==void 0&&(n.description=i.description),i.readme!==void 0&&(n.readme=i.readme),i.tags!==void 0&&(n.tags=i.tags);try{await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}/repos/`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(n)});return await Y(a,`create ${r}`),a})}catch(a){if(RI(a))return;throw a}}async _updateRepoMetadata(t,r,i){let n={};i.description!==void 0&&(n.description=i.description),i.readme!==void 0&&(n.readme=i.readme),i.tags!==void 0&&(n.tags=i.tags),i.isPublic!==void 0&&(n.is_public=i.isPublic),Object.keys(n).length!==0&&await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}/repos/${t}/${r}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(n)});return await Y(a,"update repo metadata"),a})}async clonePublicDataset(t,r={}){let{sourceApiUrl:i=this.apiUrl,datasetName:n}=r,[a,o]=this.parseTokenOrUrl(t,i),s=new e({apiUrl:a,apiKey:"placeholder"}),c=await s.readSharedDataset(o),u=n||c.name;try{if(await this.hasDataset({datasetId:u})){console.log(`Dataset ${u} already exists in your tenant. Skipping.`);return}}catch{}let l=await s.listSharedExamples(o),d=await this.createDataset(u,{description:c.description,dataType:c.data_type||"kv",inputsSchema:c.inputs_schema_definition??void 0,outputsSchema:c.outputs_schema_definition??void 0});try{await this.createExamples({inputs:l.map(f=>f.inputs),outputs:l.flatMap(f=>f.outputs?[f.outputs]:[]),datasetId:d.id})}catch(f){throw console.error(`An error occurred while creating dataset ${u}. You should delete it manually.`),f}}parseTokenOrUrl(t,r,i=2,n="dataset"){try{return pe(t),[r,t]}catch{}try{let o=new URL(t).pathname.split("/").filter(s=>s!=="");if(o.length>=i){let s=o[o.length-i];return[r,s]}else throw new Error(`Invalid public ${n} URL: ${t}`)}catch{throw new Error(`Invalid public ${n} URL or token: ${t}`)}}cleanup(){this._promptCache&&this._promptCache.stop()}async awaitPendingTraceBatches(){if(this.manualFlushMode)return console.warn("[WARNING]: When tracing in manual flush mode, you must call `await client.flush()` manually to submit trace batches."),Promise.resolve();for(await new Promise(t=>setTimeout(t,1));this._pendingDrains.size>0;)await Promise.all([...this._pendingDrains]);await Promise.all([...this.autoBatchQueue.items.map(({itemPromise:t})=>t),this.batchIngestCaller.queue.onIdle()]),this.langSmithToOTELTranslator!==void 0&&await xI()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush()}toString(){let t=[`apiUrl=${JSON.stringify(this.apiUrl)}`];return this.webUrl!==void 0&&t.push(`webUrl=${JSON.stringify(this.webUrl)}`),this.workspaceId!==void 0&&t.push(`workspaceId=${JSON.stringify(this.workspaceId)}`),`[LangSmithClient ${t.join(" ")}]`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};Object.defineProperty(Nn,"_fallbackDirsCreated",{enumerable:!0,configurable:!0,writable:!0,value:new Set});function WI(e){return"dataset_id"in e||"dataset_name"in e}var XI=e=>e!==void 0?e:!!["TRACING_V2","TRACING"].find(r=>Fe(r)==="true");var Mn=Symbol.for("lc:context_variables");var zd=Symbol.for("langsmith:replica_trace_roots");function Lg(e,t){if(Mn in e)return e[Mn][t]}function YI(e,t,r){let i=Mn in e?e[Mn]:{};i[t]=r,e[Mn]=i}var Jc=36,kz="6ba7b810-9dad-11d1-80b4-00c04fd430c8";function QI(e){let r=Object.keys(e).sort().map(i=>`${i}:${e[i]??""}`).join("|");return Qh(r,kz)}function $z(e){return e.replace(/[-:.]/g,"")}function tE(e,t=1){let r=t.toFixed(0).slice(0,3).padStart(3,"0");return`${new Date(e).toISOString().slice(0,-1)}${r}Z`}function Fg(e,t,r=1){let i=tE(e,r);return{dottedOrder:$z(i)+t,microsecondPrecisionDatestring:i}}var Iz=new Set(["projectName","updates","reroot"]);function Ez(e){let t={};for(let r of Object.keys(e))Iz.has(r)&&(t[r]=e[r]);return t}var Dd=class e{constructor(t,r,i,n){Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.metadata=t,this.tags=r,this.project_name=i,this.replicas=n}static fromHeader(t){let r=t.split(","),i={},n=[],a,o;for(let s of r){let[c,u]=s.split("="),l=decodeURIComponent(u);c==="langsmith-metadata"?i=JSON.parse(l):c==="langsmith-tags"?n=l.split(","):c==="langsmith-project"?a=l:c==="langsmith-replicas"&&(o=JSON.parse(l).map(f=>Array.isArray(f)?f:Ez(f)))}return new e(i,n,a,o)}toHeader(){let t=[];return this.metadata&&Object.keys(this.metadata).length>0&&t.push(`langsmith-metadata=${encodeURIComponent(JSON.stringify(this.metadata))}`),this.tags&&this.tags.length>0&&t.push(`langsmith-tags=${encodeURIComponent(this.tags.join(","))}`),this.project_name&&t.push(`langsmith-project=${encodeURIComponent(this.project_name)}`),t.join(",")}},on=class e{constructor(t){if(Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"run_type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_runs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"end_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"serialized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reference_example_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dotted_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"attachments",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"distributedParentId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_serialized_start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_awaitInputsOnPost",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),rE(t)){Object.assign(this,{...t});return}let r=e.getDefaultConfig(),{metadata:i,...n}=t,a=n.client??e.getSharedClient(),o={...i,...n?.extra?.metadata};if(n.extra={...n.extra,metadata:o},"id"in n&&n.id==null&&delete n.id,Object.assign(this,{...r,...n,client:a}),this.execution_order??=1,this.child_execution_order??=1,this.dotted_order||(this._serialized_start_time=tE(this.start_time,this.execution_order)),this.id||(this.id=pd(this._serialized_start_time??this.start_time)),this.trace_id||(this.parent_run?this.trace_id=this.parent_run.trace_id??this.id:this.trace_id=this.id),this.replicas=Oz(this.replicas),!this.dotted_order){let{dottedOrder:s}=Fg(this.start_time,this.id,this.execution_order);this.parent_run?this.dotted_order=this.parent_run.dotted_order+"."+s:this.dotted_order=s}}set metadata(t){this.extra={...this.extra,metadata:{...this.extra?.metadata,...t}}}get metadata(){return this.extra?.metadata}static getDefaultConfig(){let t=Date.now();return{run_type:"chain",project_name:Bc(),child_runs:[],api_url:wt("LANGCHAIN_ENDPOINT")??"http://localhost:1984",api_key:wt("LANGCHAIN_API_KEY"),caller_options:{},start_time:t,serialized:{},inputs:{},extra:{}}}static getSharedClient(){return e.sharedClient||(e.sharedClient=new Nn),e.sharedClient}createChild(t){let r=this.child_execution_order+1,i=this.replicas?.map(f=>{let{reroot:p,...m}=f;return m}),n=t.replicas??i,a=new e({...t,parent_run:this,project_name:this.project_name,replicas:n,client:this.client,tracingEnabled:this.tracingEnabled,execution_order:r,child_execution_order:r}),o=this.extra?.metadata??{},s=a.extra?.metadata??{};Object.keys(o).length>0&&(a.extra={...a.extra,metadata:{...o,...s}}),Mn in this&&(a[Mn]=this[Mn]);let c=Symbol.for("lc:child_config"),u=t.extra?.[c]??this.extra[c];if(Az(u)){let f={...u},p=Tz(f.callbacks)?f.callbacks.copy?.():void 0;p&&(Object.assign(p,{_parentRunId:a.id}),p.handlers?.find(nE)?.updateFromRunTree?.(a),f.callbacks=p),a.extra[c]=f}let l=new Set,d=this;for(;d!=null&&!l.has(d.id);)l.add(d.id),d.child_execution_order=Math.max(d.child_execution_order,r),d=d.parent_run;return this.child_runs.push(a),a}async end(t,r,i=Date.now(),n){this.outputs=this.outputs??t,this.error=this.error??r,this.end_time=this.end_time??i,n&&Object.keys(n).length>0&&(this.extra=this.extra?{...this.extra,metadata:{...this.extra.metadata,...n}}:{metadata:n})}_convertToCreate(t,r,i=!0){let n=t.extra??{};if(n?.runtime?.library===void 0&&(n.runtime||(n.runtime={}),r))for(let[s,c]of Object.entries(r))n.runtime[s]||(n.runtime[s]=c);let a=t.parent_run?.id??t.parent_run_id,o;return i?o=[]:o=t.child_runs.map(s=>this._convertToCreate(s,r,i)),{id:t.id,name:t.name,start_time:t._serialized_start_time??t.start_time,end_time:t.end_time,run_type:t.run_type,reference_example_id:t.reference_example_id,extra:n,serialized:t.serialized,error:t.error,inputs:t.inputs,outputs:t.outputs,session_name:t.project_name,child_runs:o,parent_run_id:a,trace_id:t.trace_id,dotted_order:t.dotted_order,tags:t.tags,attachments:t.attachments,events:t.events}}_sliceParentId(t,r){if(r.dotted_order){let i=r.dotted_order.split("."),n=null;for(let a=0;a<i.length;a++)if(i[a].slice(-Jc)===t){n=a;break}if(n!==null){let a=i.slice(n+1);r.dotted_order=a.join("."),a.length>0?r.trace_id=a[0].slice(-Jc):r.trace_id=r.id}}r.parent_run_id===t&&(r.parent_run_id=void 0)}_setReplicaTraceRoot(t,r){let i=Lg(this,zd)??{};i[t]=r,YI(this,zd,i);for(let n of this.child_runs)n._setReplicaTraceRoot(t,r)}_remapForProject(t){let{projectName:r,runtimeEnv:i,excludeChildRuns:n=!0,reroot:a=!1,distributedParentId:o,apiUrl:s,apiKey:c,workspaceId:u}=t,l=this._convertToCreate(this,i,n);if(r===this.project_name)return{...l,session_name:r};if(a){if(o)this._sliceParentId(o,l);else if(l.parent_run_id=void 0,l.dotted_order){let w=l.dotted_order.split(".");w.length>0&&(l.dotted_order=w[w.length-1],l.trace_id=l.id)}let b=QI({projectName:r,apiUrl:s,apiKey:c,workspaceId:u});this._setReplicaTraceRoot(b,l.id)}let d;if(!a){let b=Lg(this,zd)??{},w=QI({projectName:r,apiUrl:s,apiKey:c,workspaceId:u});if(d=b[w],d&&(l.trace_id=d,l.dotted_order)){let x=l.dotted_order.split("."),$=null;for(let E=0;E<x.length;E++)if(x[E].slice(-Jc)===d){$=E;break}if($!==null){let E=x.slice($);l.dotted_order=E.join(".")}}}let f=l.id,p=Vc(f,r),m;l.trace_id?m=Vc(l.trace_id,r):m=p;let g;l.parent_run_id&&(g=Vc(l.parent_run_id,r));let y;return l.dotted_order&&(y=l.dotted_order.split(".").map(x=>{let $=x.slice(-Jc),E=Vc($,r);return x.slice(0,-Jc)+E}).join(".")),{...l,id:p,trace_id:m,parent_run_id:g,dotted_order:y,session_name:r}}async postRun(t=!0){this._awaitInputsOnPost&&(this.inputs=await this.inputs);try{let r=vd();if(this.replicas&&this.replicas.length>0)for(let{projectName:i,apiKey:n,apiUrl:a,workspaceId:o,reroot:s,client:c}of this.replicas){let u=this._remapForProject({projectName:i??this.project_name,runtimeEnv:r,excludeChildRuns:!0,reroot:s,distributedParentId:this.distributedParentId,apiUrl:a,apiKey:n,workspaceId:o});await(c??this.client).createRun(u,{apiKey:n,apiUrl:a,workspaceId:o})}else{let i=this._convertToCreate(this,r,t);await this.client.createRun(i)}if(!t){ja("Posting with excludeChildRuns=false is deprecated and will be removed in a future version.");for(let i of this.child_runs)await i.postRun(!1)}this.child_runs=[]}catch(r){console.error(`Error in postRun for run ${this.id}:`,r)}}async patchRun(t){if(this.replicas&&this.replicas.length>0)for(let{projectName:r,apiKey:i,apiUrl:n,workspaceId:a,updates:o,reroot:s,client:c}of this.replicas){let u=this._remapForProject({projectName:r??this.project_name,runtimeEnv:void 0,excludeChildRuns:!0,reroot:s,distributedParentId:this.distributedParentId,apiUrl:n,apiKey:i,workspaceId:a}),l={id:u.id,name:u.name,run_type:u.run_type,start_time:u.start_time,outputs:u.outputs,error:u.error,parent_run_id:u.parent_run_id,session_name:u.session_name,reference_example_id:u.reference_example_id,end_time:u.end_time,dotted_order:u.dotted_order,trace_id:u.trace_id,events:u.events,tags:u.tags,extra:u.extra,attachments:this.attachments,...o};t?.excludeInputs||(l.inputs=u.inputs),await(c??this.client).updateRun(u.id,l,{apiKey:i,apiUrl:n,workspaceId:a})}else try{let r={name:this.name,run_type:this.run_type,start_time:this._serialized_start_time??this.start_time,end_time:this.end_time,error:this.error,outputs:this.outputs,parent_run_id:this.parent_run?.id??this.parent_run_id,reference_example_id:this.reference_example_id,extra:this.extra,events:this.events,dotted_order:this.dotted_order,trace_id:this.trace_id,tags:this.tags,attachments:this.attachments,session_name:this.project_name};t?.excludeInputs||(r.inputs=this.inputs),await this.client.updateRun(this.id,r)}catch(r){console.error(`Error in patchRun for run ${this.id}`,r)}this.child_runs=[]}toJSON(){return this._convertToCreate(this,void 0,!1)}addEvent(t){this.events||(this.events=[]),typeof t=="string"?this.events.push({name:"event",time:new Date().toISOString(),message:t}):this.events.push({...t,time:t.time??new Date().toISOString()})}static fromRunnableConfig(t,r){let i=t?.callbacks,n,a,o,s=XI();if(i){let u=i?.getParentRunId?.()??"",l=i?.handlers?.find(d=>d?.name=="langchain_tracer");n=l?.getRun?.(u),a=l?.projectName,o=l?.client,s=s||!!l}return n?new e({name:n.name,id:n.id,trace_id:n.trace_id,dotted_order:n.dotted_order,client:o,tracingEnabled:s,project_name:a,tags:[...new Set((n?.tags??[]).concat(t?.tags??[]))],extra:{metadata:{...n?.extra?.metadata,...t?.metadata}}}).createChild(r):new e({...r,client:o,tracingEnabled:s,project_name:a})}static fromDottedOrder(t){return this.fromHeaders({"langsmith-trace":t})}static fromHeaders(t,r){let i="get"in t&&typeof t.get=="function"?{"langsmith-trace":t.get("langsmith-trace"),baggage:t.get("baggage")}:t,n=i["langsmith-trace"];if(!n||typeof n!="string")return;let a=n.trim(),o=a.split(".").map(l=>{let[d,f]=l.split("Z");return{strTime:d,time:Date.parse(d+"Z"),uuid:f}}),s=o[0].uuid,c={...r,name:r?.name??"parent",run_type:r?.run_type??"chain",start_time:r?.start_time??Date.now(),id:o.at(-1)?.uuid,trace_id:s,dotted_order:a};if(i.baggage&&typeof i.baggage=="string"){let l=Dd.fromHeader(i.baggage);c.metadata=l.metadata,c.tags=l.tags,c.project_name=l.project_name,c.replicas=l.replicas}let u=new e(c);return u.distributedParentId=u.id,u}toHeaders(t){let r={"langsmith-trace":this.dotted_order,baggage:new Dd(this.extra?.metadata,this.tags,this.project_name,this.replicas).toHeader()};if(t)for(let[i,n]of Object.entries(r))t.set(i,n);return r}};Object.defineProperty(on,"sharedClient",{enumerable:!0,configurable:!0,writable:!0,value:null});function rE(e){return e!=null&&typeof e.createChild=="function"&&typeof e.postRun=="function"}function nE(e){return typeof e=="object"&&e!=null&&typeof e.name=="string"&&e.name==="langchain_tracer"}function eE(e){return Array.isArray(e)&&e.some(t=>nE(t))}function Tz(e){return typeof e=="object"&&e!=null&&Array.isArray(e.handlers)}function Az(e){let t=e?.callbacks;return e!=null&&typeof t=="object"&&(eE(t?.handlers)||eE(t))}function Cz(){let e=wt("LANGSMITH_RUNS_ENDPOINTS");if(!e)return[];try{let t=JSON.parse(e);if(Array.isArray(t)){let r=[];for(let i of t){if(typeof i!="object"||i===null){console.warn(`Invalid item type in LANGSMITH_RUNS_ENDPOINTS: expected object, got ${typeof i}`);continue}if(typeof i.api_url!="string"){console.warn(`Invalid api_url type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof i.api_url}`);continue}if(typeof i.api_key!="string"){console.warn(`Invalid api_key type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof i.api_key}`);continue}r.push({apiUrl:i.api_url.replace(/\/$/,""),apiKey:i.api_key})}return r}else if(typeof t=="object"&&t!==null){Pz(t);let r=[];for(let[i,n]of Object.entries(t)){let a=i.replace(/\/$/,"");if(typeof n=="string")r.push({apiUrl:a,apiKey:n});else{console.warn(`Invalid value type in LANGSMITH_RUNS_ENDPOINTS for URL ${i}: expected string, got ${typeof n}`);continue}}return r}else return console.warn(`Invalid LANGSMITH_RUNS_ENDPOINTS \u2013 must be valid JSON array of objects with api_url and api_key properties, or object mapping url->apiKey, got ${typeof t}`),[]}catch(t){if(jI(t))throw t;return console.warn("Invalid LANGSMITH_RUNS_ENDPOINTS \u2013 must be valid JSON array of objects with api_url and api_key properties, or object mapping url->apiKey"),[]}}function Oz(e){return e?e.map(t=>Array.isArray(t)?{projectName:t[0],updates:t[1]}:t):Cz()}function Pz(e){if(Object.keys(e).length>0&&Fe("ENDPOINT"))throw new Cd}var iE=A({BaseTracer:()=>At,isBaseTracer:()=>Ua}),Nz=e=>{if(e)return e.events=e.events??[],e.child_runs=e.child_runs??[],e};function Vg(e,t){if(e)return new on({...e,start_time:e._serialized_start_time??e.start_time,parent_run:Vg(t),child_runs:e.child_runs.map(r=>Vg(r)).filter(r=>r!==void 0),extra:{...e.extra,runtime:Nh()},tracingEnabled:!1})}function Bg(e,t){return e&&!Array.isArray(e)&&typeof e=="object"?e:{[t]:e}}function Ua(e){return typeof e._addRunToRunMap=="function"}var At=class extends xr{runMap=new Map;runTreeMap=new Map;usesRunTreeMap=!1;constructor(e){super(...arguments)}copy(){return this}getRunById(e){if(e!==void 0)return this.usesRunTreeMap?Nz(this.runTreeMap.get(e)):this.runMap.get(e)}stringifyError(e){return e instanceof Error?e.message+(e?.stack?`
|
|
149
|
+
https://smith.langchain.com/prompts`);let[n,a,o]=Rt(t);if(!await this._currentTenantIsOwner(n))throw await this._ownerConflictError("create a prompt",n);let s={repo_handle:a,...r?.description&&{description:r.description},...r?.readme&&{readme:r.readme},...r?.tags&&{tags:r.tags},is_public:!!r?.isPublic},c=JSON.stringify(s),u=await this.caller.call(async()=>{let d=await this._fetch(`${this.apiUrl}/repos/`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:c});return await Y(d,"create prompt"),d}),{repo:l}=await u.json();return l}async createCommit(t,r,i){if(!await this.promptExists(t))throw new Error("Prompt does not exist, you must create it first.");let[n,a,o]=Rt(t),s=i?.parentCommitHash==="latest"||!i?.parentCommitHash?await this._getLatestCommitHash(`${n}/${a}`):i?.parentCommitHash,c={manifest:JSON.parse(JSON.stringify(r)),parent_commit:s,...i?.description!==void 0&&{description:i.description}},u=JSON.stringify(c),d=await(await this.caller.call(async()=>{let f=await this._fetch(`${this.apiUrl}/commits/${n}/${a}`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:u});return await Y(f,"create commit"),f})).json();return this._getPromptUrl(`${n}/${a}${d.commit_hash?`:${d.commit_hash}`:""}`)}async updateExamplesMultipart(t,r=[]){return this._updateExamplesMultipart(t,r)}async _updateExamplesMultipart(t,r=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw new Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let i=new FormData;for(let o of r){let s=o.id,c={...o.metadata&&{metadata:o.metadata},...o.split&&{split:o.split}},u=Mt(c,`Serializing body for example with id: ${s}`),l=new Blob([u],{type:"application/json"});if(i.append(s,l),o.inputs){let d=Mt(o.inputs,`Serializing inputs for example with id: ${s}`),f=new Blob([d],{type:"application/json"});i.append(`${s}.inputs`,f)}if(o.outputs){let d=Mt(o.outputs,`Serializing outputs whle updating example with id: ${s}`),f=new Blob([d],{type:"application/json"});i.append(`${s}.outputs`,f)}if(o.attachments)for(let[d,f]of Object.entries(o.attachments)){let p,m;Array.isArray(f)?[p,m]=f:(p=f.mimeType,m=f.data);let g=new Blob([m],{type:`${p}; length=${m.byteLength}`});i.append(`${s}.attachment.${d}`,g)}if(o.attachments_operations){let d=Mt(o.attachments_operations,`Serializing attachments while updating example with id: ${s}`),f=new Blob([d],{type:"application/json"});i.append(`${s}.attachments_operations`,f)}}let n=t??r[0]?.dataset_id;return(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${n}/examples`)}`,{method:"PATCH",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:i});return await Y(o,"update examples"),o})).json()}async uploadExamplesMultipart(t,r=[]){return this._uploadExamplesMultipart(t,r)}async _uploadExamplesMultipart(t,r=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw new Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let i=new FormData;for(let a of r){let o=(a.id??Ma()).toString(),s={created_at:a.created_at,...a.metadata&&{metadata:a.metadata},...a.split&&{split:a.split},...a.source_run_id&&{source_run_id:a.source_run_id},...a.use_source_run_io&&{use_source_run_io:a.use_source_run_io},...a.use_source_run_attachments&&{use_source_run_attachments:a.use_source_run_attachments}},c=Mt(s,`Serializing body for uploaded example with id: ${o}`),u=new Blob([c],{type:"application/json"});if(i.append(o,u),a.inputs){let l=Mt(a.inputs,`Serializing inputs for uploaded example with id: ${o}`),d=new Blob([l],{type:"application/json"});i.append(`${o}.inputs`,d)}if(a.outputs){let l=Mt(a.outputs,`Serializing outputs for uploaded example with id: ${o}`),d=new Blob([l],{type:"application/json"});i.append(`${o}.outputs`,d)}if(a.attachments)for(let[l,d]of Object.entries(a.attachments)){let f,p;Array.isArray(d)?[f,p]=d:(f=d.mimeType,p=d.data);let m=new Blob([p],{type:`${f}; length=${p.byteLength}`});i.append(`${o}.attachment.${l}`,m)}}return(await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${t}/examples`)}`,{method:"POST",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:i});return await Y(a,"upload examples"),a})).json()}async updatePrompt(t,r){if(!await this.promptExists(t))throw new Error("Prompt does not exist, you must create it first.");let[i,n]=Rt(t);if(!await this._currentTenantIsOwner(i))throw await this._ownerConflictError("update a prompt",i);let a={};if(r?.description!==void 0&&(a.description=r.description),r?.readme!==void 0&&(a.readme=r.readme),r?.tags!==void 0&&(a.tags=r.tags),r?.isPublic!==void 0&&(a.is_public=r.isPublic),r?.isArchived!==void 0&&(a.is_archived=r.isArchived),Object.keys(a).length===0)throw new Error("No valid update options provided");let o=JSON.stringify(a);return(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/repos/${i}/${n}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:o});return await Y(c,"update prompt"),c})).json()}async deletePrompt(t){if(!await this.promptExists(t))throw new Error("Prompt does not exist, you must create it first.");let[r,i,n]=Rt(t);if(!await this._currentTenantIsOwner(r))throw await this._ownerConflictError("delete a prompt",r);return(await this.caller.call(async()=>{let o=await this._fetch(`${this.apiUrl}/repos/${r}/${i}`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(o,"delete prompt"),o})).json()}_getPromptCacheKey(t,r){return`${t}${r?":with_model":""}`}async _fetchPromptFromApi(t,r){let[i,n,a]=Rt(t),s=await(await this.caller.call(async()=>{let c=await this._fetch(`${this.apiUrl}/commits/${i}/${n}/${a}${r?.includeModel?"?include_model=true":""}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(c,"pull prompt commit"),c})).json();return{owner:i,repo:n,commit_hash:s.commit_hash,manifest:s.manifest,examples:s.examples,hub_model_config:s.model_config,hub_model_provider:s.model_provider}}async pullPromptCommit(t,r){gz(t,r?.dangerouslyPullPublicPrompt);let i=this._fetchPromptFromApi.bind(this,t,r);if(!r?.skipCache&&this._promptCache){let n=this._getPromptCacheKey(t,r?.includeModel),a=this._promptCache.get(n,i);if(a)return a;let o=await i();return this._promptCache.set(n,o,i),o}return this._fetchPromptFromApi(t,r)}async _pullPrompt(t,r){let i=await this.pullPromptCommit(t,{includeModel:r?.includeModel,skipCache:r?.skipCache,dangerouslyPullPublicPrompt:r?.dangerouslyPullPublicPrompt});return JSON.stringify(i.manifest)}async pushPrompt(t,r){return await this.promptExists(t)?r&&Object.keys(r).some(n=>n!=="object")&&await this.updatePrompt(t,{description:r?.description,readme:r?.readme,tags:r?.tags,isPublic:r?.isPublic}):await this.createPrompt(t,{description:r?.description,readme:r?.readme,tags:r?.tags,isPublic:r?.isPublic}),r?.object?await this.createCommit(t,r?.object,{parentCommitHash:r?.parentCommitHash,description:r?.commitDescription}):await this._getPromptUrl(t)}async agentExists(t){let[r,i]=Rt(t);return this._repoExists(r,i)}async skillExists(t){let[r,i]=Rt(t);return this._repoExists(r,i)}async pullAgent(t,r){return await this._pullDirectory(t,"agent",r?.version)}async pullSkill(t,r){return await this._pullDirectory(t,"skill",r?.version)}async pushAgent(t,r){return this._pushDirectory(t,"agent",r)}async pushSkill(t,r){return this._pushDirectory(t,"skill",r)}async deleteAgent(t){return this._deleteDirectory(t)}async deleteSkill(t){return this._deleteDirectory(t)}async*listAgents(t){yield*this._listReposByType("agent",t)}async*listSkills(t){yield*this._listReposByType("skill",t)}async*_listReposByType(t,r){let i=new URLSearchParams;i.append("repo_type",t),i.append("is_archived",(!!r?.isArchived).toString()),r?.isPublic!==void 0&&i.append("is_public",r.isPublic.toString()),r?.query&&i.append("query",r.query);for await(let n of this._getPaginated("/repos",i,a=>a.repos))yield*n}async _pullDirectory(t,r,i){let[n,a,o]=Rt(t),s=i??(o!=="latest"?o:void 0),c=new URL(`${this.apiUrl}/v1/platform/hub/repos/${n}/${a}/directories`);return c.searchParams.set("repo_type",r),s&&c.searchParams.set("commit",s),await(await this.caller.call(async()=>{let l=await this._fetch(c.toString(),{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(l,"pull directory"),l})).json()}async _pushDirectory(t,r,i){if(i.parentCommit!==void 0&&(i.parentCommit.length<8||i.parentCommit.length>64))throw new Error("parent_commit must be 8-64 characters");let[n,a]=Rt(t);if(!await this._currentTenantIsOwner(n))throw await this._ownerConflictError(`push ${r}`,n);if(await this._repoExists(n,a))(i.description!==void 0||i.readme!==void 0||i.tags!==void 0||i.isPublic!==void 0)&&await this._updateRepoMetadata(n,a,i);else{let f=/^[a-z][a-z0-9-_]*$/;if(!f.test(a))throw new Error(`Invalid repo_handle ${JSON.stringify(a)}: must match ${f}`);await this._createRepo(a,r,i)}let o={files:i.files};i.parentCommit&&(o.parent_commit=i.parentCommit);let u=(await(await this.caller.call(async()=>{let f=await this._fetch(`${this.apiUrl}/v1/platform/hub/repos/${n}/${a}/directories/commits`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(o)});return await Y(f,`push ${r}`),f})).json()).commit.commit_hash,l=await this._getSettings(),d=new URLSearchParams({organizationId:l.id});return`${this.getHostUrl()}/context/${a}/${u.slice(0,8)}?${d.toString()}`}async _deleteDirectory(t){let[r,i]=Rt(t);if(!await this._currentTenantIsOwner(r))throw await this._ownerConflictError("delete",r);await this.caller.call(async()=>{let n=await this._fetch(`${this.apiUrl}/v1/platform/hub/repos/${r}/${i}/directories`,{method:"DELETE",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(n,"delete directory"),n})}async _repoExists(t,r){try{return await this.caller.call(async()=>{let i=await this._fetch(`${this.apiUrl}/repos/${t}/${r}`,{method:"GET",headers:this._mergedHeaders,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await Y(i,"check repo exists"),i}),!0}catch(i){if(Pd(i))return!1;throw i}}async _createRepo(t,r,i){let n={repo_handle:t,repo_type:r,is_public:!!i.isPublic};i.description!==void 0&&(n.description=i.description),i.readme!==void 0&&(n.readme=i.readme),i.tags!==void 0&&(n.tags=i.tags);try{await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}/repos/`,{method:"POST",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(n)});return await Y(a,`create ${r}`),a})}catch(a){if(RI(a))return;throw a}}async _updateRepoMetadata(t,r,i){let n={};i.description!==void 0&&(n.description=i.description),i.readme!==void 0&&(n.readme=i.readme),i.tags!==void 0&&(n.tags=i.tags),i.isPublic!==void 0&&(n.is_public=i.isPublic),Object.keys(n).length!==0&&await this.caller.call(async()=>{let a=await this._fetch(`${this.apiUrl}/repos/${t}/${r}`,{method:"PATCH",headers:{...this._mergedHeaders,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:JSON.stringify(n)});return await Y(a,"update repo metadata"),a})}async clonePublicDataset(t,r={}){let{sourceApiUrl:i=this.apiUrl,datasetName:n}=r,[a,o]=this.parseTokenOrUrl(t,i),s=new e({apiUrl:a,apiKey:"placeholder"}),c=await s.readSharedDataset(o),u=n||c.name;try{if(await this.hasDataset({datasetId:u})){console.log(`Dataset ${u} already exists in your tenant. Skipping.`);return}}catch{}let l=await s.listSharedExamples(o),d=await this.createDataset(u,{description:c.description,dataType:c.data_type||"kv",inputsSchema:c.inputs_schema_definition??void 0,outputsSchema:c.outputs_schema_definition??void 0});try{await this.createExamples({inputs:l.map(f=>f.inputs),outputs:l.flatMap(f=>f.outputs?[f.outputs]:[]),datasetId:d.id})}catch(f){throw console.error(`An error occurred while creating dataset ${u}. You should delete it manually.`),f}}parseTokenOrUrl(t,r,i=2,n="dataset"){try{return pe(t),[r,t]}catch{}try{let o=new URL(t).pathname.split("/").filter(s=>s!=="");if(o.length>=i){let s=o[o.length-i];return[r,s]}else throw new Error(`Invalid public ${n} URL: ${t}`)}catch{throw new Error(`Invalid public ${n} URL or token: ${t}`)}}cleanup(){this._promptCache&&this._promptCache.stop()}async awaitPendingTraceBatches(){if(this.manualFlushMode)return console.warn("[WARNING]: When tracing in manual flush mode, you must call `await client.flush()` manually to submit trace batches."),Promise.resolve();for(await new Promise(t=>setTimeout(t,1));this._pendingDrains.size>0;)await Promise.all([...this._pendingDrains]);await Promise.all([...this.autoBatchQueue.items.map(({itemPromise:t})=>t),this.batchIngestCaller.queue.onIdle()]),this.langSmithToOTELTranslator!==void 0&&await xI()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush()}toString(){let t=[`apiUrl=${JSON.stringify(this.apiUrl)}`];return this.webUrl!==void 0&&t.push(`webUrl=${JSON.stringify(this.webUrl)}`),this.workspaceId!==void 0&&t.push(`workspaceId=${JSON.stringify(this.workspaceId)}`),`[LangSmithClient ${t.join(" ")}]`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}};Object.defineProperty(Nn,"_fallbackDirsCreated",{enumerable:!0,configurable:!0,writable:!0,value:new Set});function WI(e){return"dataset_id"in e||"dataset_name"in e}var XI=e=>e!==void 0?e:!!["TRACING_V2","TRACING"].find(r=>Fe(r)==="true");var Mn=Symbol.for("lc:context_variables");var zd=Symbol.for("langsmith:replica_trace_roots");function Lg(e,t){if(Mn in e)return e[Mn][t]}function YI(e,t,r){let i=Mn in e?e[Mn]:{};i[t]=r,e[Mn]=i}var Jc=36,kz="6ba7b810-9dad-11d1-80b4-00c04fd430c8";function QI(e){let r=Object.keys(e).sort().map(i=>`${i}:${e[i]??""}`).join("|");return Qh(r,kz)}function $z(e){return e.replace(/[-:.]/g,"")}function tE(e,t=1){let r=t.toFixed(0).slice(0,3).padStart(3,"0");return`${new Date(e).toISOString().slice(0,-1)}${r}Z`}function Fg(e,t,r=1){let i=tE(e,r);return{dottedOrder:$z(i)+t,microsecondPrecisionDatestring:i}}var Iz=new Set(["projectName","updates","reroot"]);function Ez(e){let t={};for(let r of Object.keys(e))Iz.has(r)&&(t[r]=e[r]);return t}var Dd=class e{constructor(t,r,i,n){Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.metadata=t,this.tags=r,this.project_name=i,this.replicas=n}static fromHeader(t){let r=t.split(","),i={},n=[],a,o;for(let s of r){let[c,u]=s.split("="),l=decodeURIComponent(u);c==="langsmith-metadata"?i=JSON.parse(l):c==="langsmith-tags"?n=l.split(","):c==="langsmith-project"?a=l:c==="langsmith-replicas"&&(o=JSON.parse(l).map(f=>Array.isArray(f)?f:Ez(f)))}return new e(i,n,a,o)}toHeader(){let t=[];return this.metadata&&Object.keys(this.metadata).length>0&&t.push(`langsmith-metadata=${encodeURIComponent(JSON.stringify(this.metadata))}`),this.tags&&this.tags.length>0&&t.push(`langsmith-tags=${encodeURIComponent(this.tags.join(","))}`),this.project_name&&t.push(`langsmith-project=${encodeURIComponent(this.project_name)}`),t.join(",")}},on=class e{constructor(t){if(Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"run_type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_runs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"end_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"serialized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reference_example_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dotted_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"attachments",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"distributedParentId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_serialized_start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_awaitInputsOnPost",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),rE(t)){Object.assign(this,{...t});return}let r=e.getDefaultConfig(),{metadata:i,...n}=t,a=n.client??e.getSharedClient(),o={...i,...n?.extra?.metadata};if(n.extra={...n.extra,metadata:o},"id"in n&&n.id==null&&delete n.id,Object.assign(this,{...r,...n,client:a}),this.execution_order??=1,this.child_execution_order??=1,this.dotted_order||(this._serialized_start_time=tE(this.start_time,this.execution_order)),this.id||(this.id=pd(this._serialized_start_time??this.start_time)),this.trace_id||(this.parent_run?this.trace_id=this.parent_run.trace_id??this.id:this.trace_id=this.id),this.replicas=Oz(this.replicas),!this.dotted_order){let{dottedOrder:s}=Fg(this.start_time,this.id,this.execution_order);this.parent_run?this.dotted_order=this.parent_run.dotted_order+"."+s:this.dotted_order=s}}set metadata(t){this.extra={...this.extra,metadata:{...this.extra?.metadata,...t}}}get metadata(){return this.extra?.metadata}static getDefaultConfig(){let t=Date.now();return{run_type:"chain",project_name:Bc(),child_runs:[],api_url:wt("LANGCHAIN_ENDPOINT")??"http://localhost:1984",api_key:wt("LANGCHAIN_API_KEY"),caller_options:{},start_time:t,serialized:{},inputs:{},extra:{}}}static getSharedClient(){return e.sharedClient||(e.sharedClient=new Nn),e.sharedClient}createChild(t){let r=this.child_execution_order+1,i=this.replicas?.map(f=>{let{reroot:p,...m}=f;return m}),n=t.replicas??i,a=new e({...t,parent_run:this,project_name:this.project_name,replicas:n,client:this.client,tracingEnabled:this.tracingEnabled,execution_order:r,child_execution_order:r}),o=this.extra?.metadata??{},s=a.extra?.metadata??{};Object.keys(o).length>0&&(a.extra={...a.extra,metadata:{...o,...s}}),Mn in this&&(a[Mn]=this[Mn]);let c=Symbol.for("lc:child_config"),u=t.extra?.[c]??this.extra[c];if(Az(u)){let f={...u},p=Tz(f.callbacks)?f.callbacks.copy?.():void 0;p&&(Object.assign(p,{_parentRunId:a.id}),p.handlers?.find(nE)?.updateFromRunTree?.(a),f.callbacks=p),a.extra[c]=f}let l=new Set,d=this;for(;d!=null&&!l.has(d.id);)l.add(d.id),d.child_execution_order=Math.max(d.child_execution_order,r),d=d.parent_run;return this.child_runs.push(a),a}async end(t,r,i=Date.now(),n){this.outputs=this.outputs??t,this.error=this.error??r,this.end_time=this.end_time??i,n&&Object.keys(n).length>0&&(this.extra=this.extra?{...this.extra,metadata:{...this.extra.metadata,...n}}:{metadata:n})}_convertToCreate(t,r,i=!0){let n=t.extra??{};if(n?.runtime?.library===void 0&&(n.runtime||(n.runtime={}),r))for(let[s,c]of Object.entries(r))n.runtime[s]||(n.runtime[s]=c);let a=t.parent_run?.id??t.parent_run_id,o;return i?o=[]:o=t.child_runs.map(s=>this._convertToCreate(s,r,i)),{id:t.id,name:t.name,start_time:t._serialized_start_time??t.start_time,end_time:t.end_time,run_type:t.run_type,reference_example_id:t.reference_example_id,extra:n,serialized:t.serialized,error:t.error,inputs:t.inputs,outputs:t.outputs,session_name:t.project_name,child_runs:o,parent_run_id:a,trace_id:t.trace_id,dotted_order:t.dotted_order,tags:t.tags,attachments:t.attachments,events:t.events}}_sliceParentId(t,r){if(r.dotted_order){let i=r.dotted_order.split("."),n=null;for(let a=0;a<i.length;a++)if(i[a].slice(-Jc)===t){n=a;break}if(n!==null){let a=i.slice(n+1);r.dotted_order=a.join("."),a.length>0?r.trace_id=a[0].slice(-Jc):r.trace_id=r.id}}r.parent_run_id===t&&(r.parent_run_id=void 0)}_setReplicaTraceRoot(t,r){let i=Lg(this,zd)??{};i[t]=r,YI(this,zd,i);for(let n of this.child_runs)n._setReplicaTraceRoot(t,r)}_remapForProject(t){let{projectName:r,runtimeEnv:i,excludeChildRuns:n=!0,reroot:a=!1,distributedParentId:o,apiUrl:s,apiKey:c,workspaceId:u}=t,l=this._convertToCreate(this,i,n);if(r===this.project_name)return{...l,session_name:r};if(a){if(o)this._sliceParentId(o,l);else if(l.parent_run_id=void 0,l.dotted_order){let w=l.dotted_order.split(".");w.length>0&&(l.dotted_order=w[w.length-1],l.trace_id=l.id)}let b=QI({projectName:r,apiUrl:s,apiKey:c,workspaceId:u});this._setReplicaTraceRoot(b,l.id)}let d;if(!a){let b=Lg(this,zd)??{},w=QI({projectName:r,apiUrl:s,apiKey:c,workspaceId:u});if(d=b[w],d&&(l.trace_id=d,l.dotted_order)){let x=l.dotted_order.split("."),$=null;for(let E=0;E<x.length;E++)if(x[E].slice(-Jc)===d){$=E;break}if($!==null){let E=x.slice($);l.dotted_order=E.join(".")}}}let f=l.id,p=Vc(f,r),m;l.trace_id?m=Vc(l.trace_id,r):m=p;let g;l.parent_run_id&&(g=Vc(l.parent_run_id,r));let y;return l.dotted_order&&(y=l.dotted_order.split(".").map(x=>{let $=x.slice(-Jc),E=Vc($,r);return x.slice(0,-Jc)+E}).join(".")),{...l,id:p,trace_id:m,parent_run_id:g,dotted_order:y,session_name:r}}async postRun(t=!0){this._awaitInputsOnPost&&(this.inputs=await this.inputs);try{let r=vd();if(this.replicas&&this.replicas.length>0)for(let{projectName:i,apiKey:n,apiUrl:a,workspaceId:o,reroot:s,client:c}of this.replicas){let u=this._remapForProject({projectName:i??this.project_name,runtimeEnv:r,excludeChildRuns:!0,reroot:s,distributedParentId:this.distributedParentId,apiUrl:a,apiKey:n,workspaceId:o});await(c??this.client).createRun(u,{apiKey:n,apiUrl:a,workspaceId:o})}else{let i=this._convertToCreate(this,r,t);await this.client.createRun(i)}if(!t){ja("Posting with excludeChildRuns=false is deprecated and will be removed in a future version.");for(let i of this.child_runs)await i.postRun(!1)}this.child_runs=[]}catch(r){console.error(`Error in postRun for run ${this.id}:`,r)}}async patchRun(t){if(this.replicas&&this.replicas.length>0)for(let{projectName:r,apiKey:i,apiUrl:n,workspaceId:a,updates:o,reroot:s,client:c}of this.replicas){let u=this._remapForProject({projectName:r??this.project_name,runtimeEnv:void 0,excludeChildRuns:!0,reroot:s,distributedParentId:this.distributedParentId,apiUrl:n,apiKey:i,workspaceId:a}),l={id:u.id,name:u.name,run_type:u.run_type,start_time:u.start_time,outputs:u.outputs,error:u.error,parent_run_id:u.parent_run_id,session_name:u.session_name,reference_example_id:u.reference_example_id,end_time:u.end_time,dotted_order:u.dotted_order,trace_id:u.trace_id,events:u.events,tags:u.tags,extra:u.extra,attachments:this.attachments,...o};t?.excludeInputs||(l.inputs=u.inputs),await(c??this.client).updateRun(u.id,l,{apiKey:i,apiUrl:n,workspaceId:a})}else try{let r={name:this.name,run_type:this.run_type,start_time:this._serialized_start_time??this.start_time,end_time:this.end_time,error:this.error,outputs:this.outputs,parent_run_id:this.parent_run?.id??this.parent_run_id,reference_example_id:this.reference_example_id,extra:this.extra,events:this.events,dotted_order:this.dotted_order,trace_id:this.trace_id,tags:this.tags,attachments:this.attachments,session_name:this.project_name};t?.excludeInputs||(r.inputs=this.inputs),await this.client.updateRun(this.id,r)}catch(r){console.error(`Error in patchRun for run ${this.id}`,r)}this.child_runs=[]}toJSON(){return this._convertToCreate(this,void 0,!1)}addEvent(t){this.events||(this.events=[]),typeof t=="string"?this.events.push({name:"event",time:new Date().toISOString(),message:t}):this.events.push({...t,time:t.time??new Date().toISOString()})}static fromRunnableConfig(t,r){let i=t?.callbacks,n,a,o,s=XI();if(i){let u=i?.getParentRunId?.()??"",l=i?.handlers?.find(d=>d?.name=="langchain_tracer");n=l?.getRun?.(u),a=l?.projectName,o=l?.client,s=s||!!l}return n?new e({name:n.name,id:n.id,trace_id:n.trace_id,dotted_order:n.dotted_order,client:o,tracingEnabled:s,project_name:a,tags:[...new Set((n?.tags??[]).concat(t?.tags??[]))],extra:{metadata:{...n?.extra?.metadata,...t?.metadata}}}).createChild(r):new e({...r,client:o,tracingEnabled:s,project_name:a})}static fromDottedOrder(t){return this.fromHeaders({"langsmith-trace":t})}static fromHeaders(t,r){let i="get"in t&&typeof t.get=="function"?{"langsmith-trace":t.get("langsmith-trace"),baggage:t.get("baggage")}:t,n=i["langsmith-trace"];if(!n||typeof n!="string")return;let a=n.trim(),o=a.split(".").map(l=>{let[d,f]=l.split("Z");return{strTime:d,time:Date.parse(d+"Z"),uuid:f}}),s=o[0].uuid,c={...r,name:r?.name??"parent",run_type:r?.run_type??"chain",start_time:r?.start_time??Date.now(),id:o.at(-1)?.uuid,trace_id:s,dotted_order:a};if(i.baggage&&typeof i.baggage=="string"){let l=Dd.fromHeader(i.baggage);c.metadata=l.metadata,c.tags=l.tags,c.project_name=l.project_name,c.replicas=l.replicas}let u=new e(c);return u.distributedParentId=u.id,u}toHeaders(t){let r={"langsmith-trace":this.dotted_order,baggage:new Dd(this.extra?.metadata,this.tags,this.project_name,this.replicas).toHeader()};if(t)for(let[i,n]of Object.entries(r))t.set(i,n);return r}};Object.defineProperty(on,"sharedClient",{enumerable:!0,configurable:!0,writable:!0,value:null});function rE(e){return e!=null&&typeof e.createChild=="function"&&typeof e.postRun=="function"}function nE(e){return typeof e=="object"&&e!=null&&typeof e.name=="string"&&e.name==="langchain_tracer"}function eE(e){return Array.isArray(e)&&e.some(t=>nE(t))}function Tz(e){return typeof e=="object"&&e!=null&&Array.isArray(e.handlers)}function Az(e){let t=e?.callbacks;return e!=null&&typeof t=="object"&&(eE(t?.handlers)||eE(t))}function Cz(){let e=wt("LANGSMITH_RUNS_ENDPOINTS");if(!e)return[];try{let t=JSON.parse(e);if(Array.isArray(t)){let r=[];for(let i of t){if(typeof i!="object"||i===null){console.warn(`Invalid item type in LANGSMITH_RUNS_ENDPOINTS: expected object, got ${typeof i}`);continue}if(typeof i.api_url!="string"){console.warn(`Invalid api_url type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof i.api_url}`);continue}if(typeof i.api_key!="string"){console.warn(`Invalid api_key type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof i.api_key}`);continue}r.push({apiUrl:i.api_url.replace(/\/$/,""),apiKey:i.api_key})}return r}else if(typeof t=="object"&&t!==null){Pz(t);let r=[];for(let[i,n]of Object.entries(t)){let a=i.replace(/\/$/,"");if(typeof n=="string")r.push({apiUrl:a,apiKey:n});else{console.warn(`Invalid value type in LANGSMITH_RUNS_ENDPOINTS for URL ${i}: expected string, got ${typeof n}`);continue}}return r}else return console.warn(`Invalid LANGSMITH_RUNS_ENDPOINTS \u2013 must be valid JSON array of objects with api_url and api_key properties, or object mapping url->apiKey, got ${typeof t}`),[]}catch(t){if(jI(t))throw t;return console.warn("Invalid LANGSMITH_RUNS_ENDPOINTS \u2013 must be valid JSON array of objects with api_url and api_key properties, or object mapping url->apiKey"),[]}}function Oz(e){return e?e.map(t=>Array.isArray(t)?{projectName:t[0],updates:t[1]}:t):Cz()}function Pz(e){if(Object.keys(e).length>0&&Fe("ENDPOINT"))throw new Cd}var iE=A({BaseTracer:()=>At,isBaseTracer:()=>Ua}),Nz=e=>{if(e)return e.events=e.events??[],e.child_runs=e.child_runs??[],e};function Vg(e,t){if(e)return new on({...e,start_time:e._serialized_start_time??e.start_time,parent_run:Vg(t),child_runs:e.child_runs.map(r=>Vg(r)).filter(r=>r!==void 0),extra:{...e.extra,runtime:Nh()},tracingEnabled:!1})}function Bg(e,t){return e&&!Array.isArray(e)&&typeof e=="object"?e:{[t]:e}}function Ua(e){return typeof e._addRunToRunMap=="function"}var At=class extends xr{runMap=new Map;runTreeMap=new Map;usesRunTreeMap=!1;constructor(e){super(...arguments)}copy(){return this}getRunById(e){if(e!==void 0)return this.usesRunTreeMap?Nz(this.runTreeMap.get(e)):this.runMap.get(e)}stringifyError(e){return e instanceof Error?e.message+(e?.stack?`
|
|
150
150
|
|
|
151
151
|
${e.stack}`:""):typeof e=="string"?e:`${e}`}_addChildRun(e,t){e.child_runs.push(t)}_addRunToRunMap(e){let{dottedOrder:t,microsecondPrecisionDatestring:r}=Fg(new Date(e.start_time).getTime(),e.id,e.execution_order),i={...e},n=this.getRunById(i.parent_run_id);if(i.parent_run_id!==void 0?n?(this._addChildRun(n,i),n.child_execution_order=Math.max(n.child_execution_order,i.child_execution_order),i.trace_id=n.trace_id,n.dotted_order!==void 0&&(i.dotted_order=[n.dotted_order,t].join("."),i._serialized_start_time=r)):i.parent_run_id=void 0:(i.trace_id=i.id,i.dotted_order=t,i._serialized_start_time=r),this.usesRunTreeMap){let a=Vg(i,n);a!==void 0&&this.runTreeMap.set(i.id,a)}else this.runMap.set(i.id,i);return i}async _endTrace(e){let t=e.parent_run_id!==void 0&&this.getRunById(e.parent_run_id);t?t.child_execution_order=Math.max(t.child_execution_order,e.child_execution_order):await this.persistRun(e),await this.onRunUpdate?.(e),this.usesRunTreeMap?this.runTreeMap.delete(e.id):this.runMap.delete(e.id)}_getExecutionOrder(e){let t=e!==void 0&&this.getRunById(e);return t?t.child_execution_order+1:1}_createRunForLLMStart(e,t,r,i,n,a,o,s){let c=this._getExecutionOrder(i),u=Date.now(),l=o?{...n,metadata:o}:n,d={id:r,name:s??e.id[e.id.length-1],parent_run_id:i,start_time:u,serialized:e,events:[{name:"start",time:new Date(u).toISOString()}],inputs:{prompts:t},execution_order:c,child_runs:[],child_execution_order:c,run_type:"llm",extra:l??{},tags:a||[]};return this._addRunToRunMap(d)}async handleLLMStart(e,t,r,i,n,a,o,s){let c=this.getRunById(r)??this._createRunForLLMStart(e,t,r,i,n,a,o,s);return await this.onRunCreate?.(c),await this.onLLMStart?.(c),c}_createRunForChatModelStart(e,t,r,i,n,a,o,s){let c=this._getExecutionOrder(i),u=Date.now(),l=o?{...n,metadata:o}:n,d={id:r,name:s??e.id[e.id.length-1],parent_run_id:i,start_time:u,serialized:e,events:[{name:"start",time:new Date(u).toISOString()}],inputs:{messages:t},execution_order:c,child_runs:[],child_execution_order:c,run_type:"llm",extra:l??{},tags:a||[]};return this._addRunToRunMap(d)}async handleChatModelStart(e,t,r,i,n,a,o,s){let c=this.getRunById(r)??this._createRunForChatModelStart(e,t,r,i,n,a,o,s);return await this.onRunCreate?.(c),await this.onLLMStart?.(c),c}async handleLLMEnd(e,t,r,i,n){let a=this.getRunById(t);if(!a||a?.run_type!=="llm")throw new Error("No LLM run to end.");return a.end_time=Date.now(),a.outputs=e,a.events.push({name:"end",time:new Date(a.end_time).toISOString()}),a.extra={...a.extra,...n},await this.onLLMEnd?.(a),await this._endTrace(a),a}async handleLLMError(e,t,r,i,n){let a=this.getRunById(t);if(!a||a?.run_type!=="llm")throw new Error("No LLM run to end.");return a.end_time=Date.now(),a.error=this.stringifyError(e),a.events.push({name:"error",time:new Date(a.end_time).toISOString()}),a.extra={...a.extra,...n},await this.onLLMError?.(a),await this._endTrace(a),a}_createRunForChainStart(e,t,r,i,n,a,o,s,c){let u=this._getExecutionOrder(i),l=Date.now(),d={id:r,name:s??e.id[e.id.length-1],parent_run_id:i,start_time:l,serialized:e,events:[{name:"start",time:new Date(l).toISOString()}],inputs:t,execution_order:u,child_execution_order:u,run_type:o??"chain",child_runs:[],extra:a?{...c,metadata:a}:{...c},tags:n||[]};return this._addRunToRunMap(d)}async handleChainStart(e,t,r,i,n,a,o,s){let c=this.getRunById(r)??this._createRunForChainStart(e,t,r,i,n,a,o,s);return await this.onRunCreate?.(c),await this.onChainStart?.(c),c}async handleChainEnd(e,t,r,i,n){let a=this.getRunById(t);if(!a)throw new Error("No chain run to end.");return a.end_time=Date.now(),a.outputs=Bg(e,"output"),a.events.push({name:"end",time:new Date(a.end_time).toISOString()}),n?.inputs!==void 0&&(a.inputs=Bg(n.inputs,"input")),await this.onChainEnd?.(a),await this._endTrace(a),a}async handleChainError(e,t,r,i,n){let a=this.getRunById(t);if(!a)throw new Error("No chain run to end.");return a.end_time=Date.now(),a.error=this.stringifyError(e),a.events.push({name:"error",time:new Date(a.end_time).toISOString()}),n?.inputs!==void 0&&(a.inputs=Bg(n.inputs,"input")),await this.onChainError?.(a),await this._endTrace(a),a}_createRunForToolStart(e,t,r,i,n,a,o){let s=this._getExecutionOrder(i),c=Date.now(),u={id:r,name:o??e.id[e.id.length-1],parent_run_id:i,start_time:c,serialized:e,events:[{name:"start",time:new Date(c).toISOString()}],inputs:{input:t},execution_order:s,child_execution_order:s,run_type:"tool",child_runs:[],extra:a?{metadata:a}:{},tags:n||[]};return this._addRunToRunMap(u)}async handleToolStart(e,t,r,i,n,a,o){let s=this.getRunById(r)??this._createRunForToolStart(e,t,r,i,n,a,o);return await this.onRunCreate?.(s),await this.onToolStart?.(s),s}async handleToolEnd(e,t){let r=this.getRunById(t);if(!r||r?.run_type!=="tool")throw new Error("No tool run to end");return r.end_time=Date.now(),r.outputs={output:e},r.events.push({name:"end",time:new Date(r.end_time).toISOString()}),await this.onToolEnd?.(r),await this._endTrace(r),r}async handleToolError(e,t){let r=this.getRunById(t);if(!r||r?.run_type!=="tool")throw new Error("No tool run to end");return r.end_time=Date.now(),r.error=this.stringifyError(e),r.events.push({name:"error",time:new Date(r.end_time).toISOString()}),await this.onToolError?.(r),await this._endTrace(r),r}async handleAgentAction(e,t){let r=this.getRunById(t);if(!r||r?.run_type!=="chain")return;let i=r;i.actions=i.actions||[],i.actions.push(e),i.events.push({name:"agent_action",time:new Date().toISOString(),kwargs:{action:e}}),await this.onAgentAction?.(r)}async handleAgentEnd(e,t){let r=this.getRunById(t);!r||r?.run_type!=="chain"||(r.events.push({name:"agent_end",time:new Date().toISOString(),kwargs:{action:e}}),await this.onAgentEnd?.(r))}_createRunForRetrieverStart(e,t,r,i,n,a,o){let s=this._getExecutionOrder(i),c=Date.now(),u={id:r,name:o??e.id[e.id.length-1],parent_run_id:i,start_time:c,serialized:e,events:[{name:"start",time:new Date(c).toISOString()}],inputs:{query:t},execution_order:s,child_execution_order:s,run_type:"retriever",child_runs:[],extra:a?{metadata:a}:{},tags:n||[]};return this._addRunToRunMap(u)}async handleRetrieverStart(e,t,r,i,n,a,o){let s=this.getRunById(r)??this._createRunForRetrieverStart(e,t,r,i,n,a,o);return await this.onRunCreate?.(s),await this.onRetrieverStart?.(s),s}async handleRetrieverEnd(e,t){let r=this.getRunById(t);if(!r||r?.run_type!=="retriever")throw new Error("No retriever run to end");return r.end_time=Date.now(),r.outputs={documents:e},r.events.push({name:"end",time:new Date(r.end_time).toISOString()}),await this.onRetrieverEnd?.(r),await this._endTrace(r),r}async handleRetrieverError(e,t){let r=this.getRunById(t);if(!r||r?.run_type!=="retriever")throw new Error("No retriever run to end");return r.end_time=Date.now(),r.error=this.stringifyError(e),r.events.push({name:"error",time:new Date(r.end_time).toISOString()}),await this.onRetrieverError?.(r),await this._endTrace(r),r}async handleText(e,t){let r=this.getRunById(t);!r||r?.run_type!=="chain"||(r.events.push({name:"text",time:new Date().toISOString(),kwargs:{text:e}}),await this.onText?.(r))}async handleLLMNewToken(e,t,r,i,n,a){let o=this.getRunById(r);if(!o||o?.run_type!=="llm")throw new Error('Invalid "runId" provided to "handleLLMNewToken" callback.');return o.events.push({name:"new_token",time:new Date().toISOString(),kwargs:{token:e,idx:t,chunk:a?.chunk}}),await this.onLLMNewToken?.(o,e,{chunk:a?.chunk}),o}};var oE=A({ConsoleCallbackHandler:()=>Ud}),sE={bold:{open:"\x1B[1m",close:"\x1B[22m"},color:{grey:{open:"\x1B[90m",close:"\x1B[39m"},green:{open:"\x1B[32m",close:"\x1B[39m"},cyan:{open:"\x1B[36m",close:"\x1B[39m"},red:{open:"\x1B[31m",close:"\x1B[39m"},blue:{open:"\x1B[34m",close:"\x1B[39m"}}};function Kt(e,t){return`${e.open}${t}${e.close}`}function Ur(e,t){try{return JSON.stringify(e,null,2)}catch{return t}}function aE(e){return typeof e=="string"?e.trim():e==null?e:Ur(e,e.toString())}function zi(e){if(!e.end_time)return"";let t=e.end_time-e.start_time;return t<1e3?`${t}ms`:`${(t/1e3).toFixed(2)}s`}var{color:or}=sE,Ud=class extends At{name="console_callback_handler";persistRun(e){return Promise.resolve()}getParents(e){let t=[],r=e;for(;r.parent_run_id;){let i=this.runMap.get(r.parent_run_id);if(i)t.push(i),r=i;else break}return t}getBreadcrumbs(e){let t=[...this.getParents(e).reverse(),e].map((r,i,n)=>{let a=`${r.execution_order}:${r.run_type}:${r.name}`;return i===n.length-1?Kt(sE.bold,a):a}).join(" > ");return Kt(or.grey,t)}onChainStart(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.green,"[chain/start]")} [${t}] Entering Chain run with input: ${Ur(e.inputs,"[inputs]")}`)}onChainEnd(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.cyan,"[chain/end]")} [${t}] [${zi(e)}] Exiting Chain run with output: ${Ur(e.outputs,"[outputs]")}`)}onChainError(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.red,"[chain/error]")} [${t}] [${zi(e)}] Chain run errored with error: ${Ur(e.error,"[error]")}`)}onLLMStart(e){let t=this.getBreadcrumbs(e),r="prompts"in e.inputs?{prompts:e.inputs.prompts.map(i=>i.trim())}:e.inputs;console.log(`${Kt(or.green,"[llm/start]")} [${t}] Entering LLM run with input: ${Ur(r,"[inputs]")}`)}onLLMEnd(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.cyan,"[llm/end]")} [${t}] [${zi(e)}] Exiting LLM run with output: ${Ur(e.outputs,"[response]")}`)}onLLMError(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.red,"[llm/error]")} [${t}] [${zi(e)}] LLM run errored with error: ${Ur(e.error,"[error]")}`)}onToolStart(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.green,"[tool/start]")} [${t}] Entering Tool run with input: "${aE(e.inputs.input)}"`)}onToolEnd(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.cyan,"[tool/end]")} [${t}] [${zi(e)}] Exiting Tool run with output: "${aE(e.outputs?.output)}"`)}onToolError(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.red,"[tool/error]")} [${t}] [${zi(e)}] Tool run errored with error: ${Ur(e.error,"[error]")}`)}onRetrieverStart(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.green,"[retriever/start]")} [${t}] Entering Retriever run with input: ${Ur(e.inputs,"[inputs]")}`)}onRetrieverEnd(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.cyan,"[retriever/end]")} [${t}] [${zi(e)}] Exiting Retriever run with output: ${Ur(e.outputs,"[outputs]")}`)}onRetrieverError(e){let t=this.getBreadcrumbs(e);console.log(`${Kt(or.red,"[retriever/error]")} [${t}] [${zi(e)}] Retriever run errored with error: ${Ur(e.error,"[error]")}`)}onAgentAction(e){let t=e,r=this.getBreadcrumbs(e);console.log(`${Kt(or.blue,"[agent/action]")} [${r}] Agent selected action: ${Ur(t.actions[t.actions.length-1],"[action]")}`)}};var Zg,Ld=()=>(Zg===void 0&&(Zg=new Nn(Ht("LANGCHAIN_CALLBACKS_BACKGROUND")==="false"?{blockOnRootRunFinalization:!0}:{})),Zg);var Gg=class{getStore(){}run(t,r){return r()}},Hg=Symbol.for("ls:tracing_async_local_storage"),Rz=new Gg,Jg=class{getInstance(){return globalThis[Hg]??Rz}initializeGlobalInstance(t){globalThis[Hg]===void 0&&(globalThis[Hg]=t)}},Mz=new Jg;function cE(e=!1){let t=Mz.getInstance().getStore();if(!e&&t===void 0)throw new Error(`Could not get the current run tree.
|
|
152
152
|
|
|
@@ -428,4 +428,4 @@ data: ${JSON.stringify({message:String(i)})}
|
|
|
428
428
|
|
|
429
429
|
`))}finally{r.close()}}})}var aM=class{static subscribeTo(e,t){let{key:r,tags:i}={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 n;return typeof e=="string"?r?n={[r]:e}:n=[e]:n=Object.fromEntries(e.map(a=>[a,a])),new bn({channels:n,triggers:Array.isArray(e)?e:[e],tags:i})}static writeTo(e,t){let r=[];for(let i of e)r.push({channel:i,value:hr,skipNone:!1});for(let[i,n]of Object.entries(t??{}))ae.isRunnable(n)||typeof n=="function"?r.push({channel:i,value:hr,skipNone:!0,mapper:tt(n)}):r.push({channel:i,value:n,skipNone:!1});return new ot(r)}},X9=class extends ae{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)}},lh=class extends X9{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 '${En}' is reserved and cannot be used in the graph.`);this.channels[En]=new sS({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,i=xt(this.config,r),n=[...this.streamTransformers,...t??[]];return new this.constructor({...this,config:i,streamTransformers:n})}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,i]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(r))continue;let n=i.subgraphs?.length?i.subgraphs:[i.bound];for(let a of n){let o=th(a);if(o!==void 0){if(r===e){yield[r,o];return}if(e===void 0&&(yield[r,o]),t){let s=e;e!==void 0&&(s=e.slice(r.length+1));for(let[c,u]of o.getSubgraphs(s,t))yield[`${r}|${c}`,u]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:r,applyPendingWrites:i=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let n=la(this.channels,t.checkpoint);if(t.pendingWrites?.length){let d=t.pendingWrites.filter(([f,p])=>f===yr).map(([f,p,m])=>[String(p),m]);d.length>0&&rr(t.checkpoint,n,[{name:In,writes:d,triggers:[]}],void 0,this.triggerToNodes)}let a=Object.values(pa(t.checkpoint,t.pendingWrites,this.nodes,n,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),o=await vn(this.getSubgraphsAsync()),s=t.config.configurable?.checkpoint_ns??"",c={};for(let d of a){let f=o.find(([m])=>m===d.name);if(!f)continue;let p=`${String(d.name)}:${d.id}`;if(s&&(p=`${s}|${p}`),r===void 0){let m={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:p}};c[d.id]=m}else{let m={configurable:{[Qr]:r,thread_id:t.config.configurable?.thread_id,checkpoint_ns:p}},g=f[1];c[d.id]=await g.getState(m,{subgraphs:!0})}}if(i&&t.pendingWrites?.length){let d=Object.fromEntries(a.map(p=>[p.id,p]));for(let[p,m,g]of t.pendingWrites)["__error__","__interrupt__",Ea].includes(m)||p in d&&d[p].writes.push([String(m),g]);let f=a.filter(p=>p.writes.length>0);f.length>0&&rr(t.checkpoint,n,f,void 0,this.triggerToNodes)}let u=t?.metadata;u&&t?.config?.configurable?.thread_id&&(u={...u,thread_id:t.config.configurable.thread_id});let l=a.filter(d=>d.writes.length===0).map(d=>d.name);return{values:wn(n,this.streamChannelsAsIs),next:l,tasks:eS(a,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:u,config:fa(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 $a("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let i=e.configurable?.checkpoint_ns??"";if(i!==""&&e.configurable?.__pregel_checkpointer===void 0){let o=Bm(i);for await(let[s,c]of this.getSubgraphsAsync(o,!0))if(s===o)return await c.getState(Ao(e,{[Qr]:r}),{subgraphs:t?.subgraphs})}let n=xt(this.config,e),a=await r.getTuple(e);return await this._prepareStateSnapshot({config:n,saved:a,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 $a("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let i=e.configurable?.checkpoint_ns??"";if(i!==""&&e.configurable?.__pregel_checkpointer===void 0){let a=Bm(i);for await(let[o,s]of this.getSubgraphsAsync(a,!0))if(o===a){yield*s.getStateHistory(Ao(e,{[Qr]:r}),t);return}}let n=xt(this.config,e,{configurable:{checkpoint_ns:i}});for await(let a of r.list(n,t))yield this._prepareStateSnapshot({config:a.config,saved:a})}async bulkUpdateState(e,t){let r=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!r)throw new $a("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});if(t.length===0)throw new Error("No supersteps provided");if(t.some(o=>o.updates.length===0))throw new Error("No updates provided");let i=e.configurable?.checkpoint_ns??"";if(i!==""&&e.configurable?.__pregel_checkpointer===void 0){let o=Bm(i);for await(let[,s]of this.getSubgraphsAsync(o,!0))return await s.bulkUpdateState(Ao(e,{[Qr]:r}),t);throw new Error(`Subgraph "${o}" not found`)}let n=async(o,s)=>{let c=this.config?xt(this.config,o):o,u=await r.getTuple(c),l=u!==void 0?gn(u.checkpoint):lc(),d={...u?.checkpoint.channel_versions},f=u?.metadata?.step??-1,p=Ao(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),m=c.metadata??{};u?.config.configurable&&(p=Ao(c,u.config.configurable),m={...u.metadata,...m});let{values:g,asNode:y}=s[0];if(g==null&&y===void 0){if(s.length>1)throw new be("Cannot create empty checkpoint with multiple updates");return fa(await r.put(p,_n(l,void 0,f),{source:"update",step:f+1,parents:u?.metadata?.parents??{}},{}),u?u.metadata:void 0)}let b=la(this.channels,l);if(g===null&&y==="__end__"){if(s.length>1)throw new be("Cannot apply multiple updates when clearing state");if(u){let C=pa(l,u.pendingWrites||[],this.nodes,b,u.config,!0,{step:(u.metadata?.step??-1)+1,checkpointer:r,store:this.store}),v=(u.pendingWrites||[]).filter(W=>W[0]===yr).map(W=>W.slice(1));v.length>0&&rr(l,b,[{name:In,writes:v,triggers:[]}],r.getNextVersion.bind(r),this.triggerToNodes);for(let[W,F,T]of u.pendingWrites||[])["__error__","__interrupt__",Ea].includes(F)||W in C&&C[W].writes.push([F,T]);rr(l,b,Object.values(C),r.getNextVersion.bind(r),this.triggerToNodes)}return fa(await r.put(p,_n(l,b,f),{...m,source:"update",step:f+1,parents:u?.metadata?.parents??{}},yc(d,l.channel_versions)),u?u.metadata:void 0)}if(y==="__copy__"){if(s.length>1)throw new be("Cannot copy checkpoint with multiple updates");if(u==null)throw new be("Cannot copy a non-existent checkpoint");let C=F=>!Array.isArray(F)||F.length===0?!1:F.every(T=>Array.isArray(T)&&T.length===2),v=_n(l,void 0,f),W=await r.put(u.parentConfig??Ao(u.config,{checkpoint_id:void 0}),v,{source:"fork",step:f+1,parents:u.metadata?.parents??{}},{});if(C(g)){let F=pa(v,u.pendingWrites,this.nodes,b,W,!1,{step:f+2}),T=Object.values(F).reduce((V,{name:ne,id:Oe})=>(V[ne]??=[],V[ne].push({id:Oe}),V),{}),B=g.reduce((V,ne)=>{let[Oe,ge]=ne;V[ge]??=[];let Sn=V[ge].length,Or=T[ge]?.[Sn]?.id;return V[ge].push({values:Oe,asNode:ge,taskId:Or}),V},{});return n(fa(W,u.metadata),Object.values(B).flat())}return fa(W,u.metadata)}if(y==="__input__"){if(s.length>1)throw new be("Cannot apply multiple updates when updating as input");let C=await vn(rh(this.inputChannels,g));if(C.length===0)throw new be(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);rr(l,b,[{name:In,writes:C,triggers:[]}],r.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let v=u?.metadata?.step!=null?u.metadata.step+1:-1,W=await r.put(p,_n(l,b,v),{source:"input",step:v,parents:u?.metadata?.parents??{}},yc(d,l.channel_versions));return await r.putWrites(W,C,ni(In,l.id)),fa(W,u?u.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&u?.pendingWrites!==void 0&&u.pendingWrites.length>0){let C=pa(l,u.pendingWrites,this.nodes,b,u.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(u.metadata?.step??-1)+1}),v=(u.pendingWrites??[]).filter(F=>F[0]===yr).map(F=>F.slice(1));v.length>0&&rr(u.checkpoint,b,[{name:In,writes:v,triggers:[]}],void 0,this.triggerToNodes);for(let[F,T,B]of u.pendingWrites)["__error__","__interrupt__",Ea].includes(T)||C[F]===void 0||C[F].writes.push([T,B]);let W=Object.values(C).filter(F=>F.writes.length>0);W.length>0&&rr(l,b,W,void 0,this.triggerToNodes)}let w=Object.values(l.versions_seen).map(C=>Object.values(C)).flat().find(C=>!!C),x=[];if(s.length===1){let{values:C,asNode:v,taskId:W}=s[0];if(v===void 0&&Object.keys(this.nodes).length===1)[v]=Object.keys(this.nodes);else if(v===void 0&&w===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(v=this.inputChannels);else if(v===void 0){let F=Object.entries(l.versions_seen).map(([T,B])=>Object.values(B).map(V=>[V,T])).flat().filter(([T,B])=>B!==Ue).sort(([T],[B])=>zm(T,B));F&&(F.length===1?v=F[0][1]:F[F.length-1][0]!==F[F.length-2][0]&&(v=F[F.length-1][1]))}if(v===void 0)throw new be('Ambiguous update, specify "asNode"');x.push({values:C,asNode:v,taskId:W})}else for(let{asNode:C,values:v,taskId:W}of s){if(C==null)throw new be('"asNode" is required when applying multiple updates');x.push({values:v,asNode:C,taskId:W})}let $=[];for(let{asNode:C,values:v,taskId:W}of x){if(this.nodes[C]===void 0)throw new be(`Node "${C.toString()}" does not exist`);let F=this.nodes[C].getWriters();if(!F.length)throw new be(`No writers found for node "${C.toString()}"`);$.push({name:C,input:v,proc:F.length>1?Ar.from(F,{omitSequenceTags:!0}):F[0],writes:[],triggers:[Ue],id:W??ni("__interrupt__",l.id),writers:[]})}for(let C of $)await C.proc.invoke(C.input,$e({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[Nr]:v=>C.writes.push(...v),[Yr]:(v,W=!1)=>Sl(l,b,C,v,W)}}));for(let C of $){let v=C.writes.filter(W=>W[0]!==jr);u!==void 0&&v.length>0&&await r.putWrites(p,v,C.id)}rr(l,b,$,r.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let E=yc(d,l.channel_versions),G=await r.put(p,_n(l,b,f+1),{source:"update",step:f+1,parents:u?.metadata?.parents??{}},E);for(let C of $){let v=C.writes.filter(W=>W[0]===jr);v.length>0&&await r.putWrites(G,v,C.id)}return fa(G,u?u.metadata:void 0)},a=e;for(let{updates:o}of t)a=await n(a,o);return a}async updateState(e,t,r){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:r}]}])}_defaults(e){let{debug:t,streamMode:r,inputKeys:i,outputKeys:n,interruptAfter:a,interruptBefore:o,...s}=e,c=!0,u=t!==void 0?t:this.debug,l=n;l===void 0?l=this.streamChannelsAsIs:oS(l,this.channels);let d=i;d===void 0?d=this.inputChannels:oS(d,this.channels);let f=o??this.interruptBefore??[],p=a??this.interruptAfter??[],m;r!==void 0?(m=Array.isArray(r)?r:[r],c=typeof r=="string"):(e.configurable?.__pregel_task_id!==void 0?m=["values"]:m=this.streamMode,c=!0);let g;if(this.checkpointer===!1)g=void 0;else if(e!==void 0&&e.configurable?.__pregel_checkpointer!==void 0)g=e.configurable[Qr];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");g=this.checkpointer}let y=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 w=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),x=e.durability??w??e?.configurable?.__pregel_durability??"async";return[u,m,d,l,s,f,p,g,y,c,b,x]}async stream(e,t){let r=new AbortController,i={recursionLimit:this.config?.recursionLimit,...t,signal:vc(t?.signal,r.signal).signal},n=await super.stream(e,i);return new sh(t?.encoding==="text/event-stream"?JR(n):n,r)}async#e(e,t){let{version:r,encoding:i,transformers:n,...a}=t,o={recursionLimit:this.config?.recursionLimit,...a,configurable:{...this.config?.configurable,...a?.configurable},version:r,streamMode:P0,subgraphs:!0,encoding:void 0},s=this.stream(e,o),c=F0({[Symbol.asyncIterator]:async function*(){let u=await s;for await(let l of u)yield l}},[...this.streamTransformers??[],...n??[]]);if(i==="text/event-stream"){let u=new AbortController;return u.signal.addEventListener("abort",()=>c.abort(u.signal.reason),{once:!0}),new sh(q9(c),u)}return c}streamEvents(e,t,r){if(t.version==="v3")return this.#e(e,t);let i=new AbortController,n={recursionLimit:this.config?.recursionLimit,...t,callbacks:OR(this.config?.callbacks,t?.callbacks),signal:vc(t?.signal,i.signal).signal};return new sh(super.streamEvents(e,n,r),i)}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,i=t?.subgraphs,n=pc(this.config,t);if(n.recursionLimit===void 0||n.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&n.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,...s}=n,[c,u,,l,d,f,p,m,g,y,b,w]=this._defaults(s);d.metadata={ls_integration:"langgraph",...d.metadata},typeof d.context<"u"?d.context=await this._validateContext(d.context):d.configurable=await this._validateContext(d.configurable);let x=new ch({modes:new Set(u)});if(this.checkpointer===!0){d.configurable??={};let T=d.configurable.checkpoint_ns??"";d.configurable[Rr]=T.split("|").map(B=>B.split(":")[0]).join("|")}if(u.includes("messages")){let T=t?.version==="v3"?new eM(V=>x.push(V)):new XR(V=>x.push(V)),{callbacks:B}=d;if(B===void 0)d.callbacks=[T];else if(Array.isArray(B))d.callbacks=B.concat(T);else{let V=B.copy();V.addHandler(T,!0),d.callbacks=V}}if(u.includes("tools")){let T=new GR(V=>x.push(V)),{callbacks:B}=d;if(B===void 0)d.callbacks=[T];else if(Array.isArray(B))d.callbacks=B.concat(T);else{let V=B.copy();V.addHandler(T,!0),d.callbacks=V}}d.writer??=T=>{if(!u.includes("custom"))return;let B=A0()?.configurable?.[Rr]?.split("|").slice(0,-1);x.push([B??[],"custom",T])},d.interrupt??=this.userInterrupt??H0,d.serverInfo==null&&(d.serverInfo=Y9(d));let $={tracerInheritableMetadata:tV(d)},E=await(await et._configureSync(d?.callbacks,void 0,d?.tags,void 0,d?.metadata,void 0,$))?.handleChainStart(this.toJSON(),CR(e,"input"),o,void 0,void 0,void 0,d?.runName??this.getName()),G=_l(this.channels),C,v,F=(async()=>{try{C=await KR.initialize({input:a,config:d,checkpointer:m,nodes:this.nodes,channelSpecs:G,outputKeys:l,streamKeys:this.streamChannelsAsIs,store:g,cache:b,stream:x,interruptAfter:p,interruptBefore:f,manager:E,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:w});let T=new tM({loop:C,nodeFinished:d.configurable?.[bS]});t?.subgraphs&&(C.config.configurable={...C.config.configurable,[$c]:C.stream}),await this._runLoop({loop:C,runner:T,debug:c,config:d}),w==="sync"&&await Promise.all(C?.checkpointerPromises??[])}catch(T){v=T}finally{try{C&&(await C.store?.stop(),await C.cache?.stop()),await Promise.all(C?.checkpointerPromises??[])}catch(T){v=v??T}v?x.error(v):x.close()}})();try{for await(let T of x){if(T===void 0)throw new Error("Data structure error.");let[B,V,ne,Oe]=T;if(u.includes(V)){if(r==="text/event-stream"){i?yield[B,V,ne]:yield[null,V,ne];continue}i&&!y?yield Oe!==void 0?[B,V,ne,Oe]:[B,V,ne]:y?i?yield[B,ne]:yield ne:yield[V,ne]}}}catch(T){throw await E?.handleChainError(v),T}finally{await F}await E?.handleChainEnd(C?.output??{},o,void 0,void 0,void 0)}async invoke(e,t){let r=t?.streamMode??"values",i={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:r,encoding:void 0},n=[],a=await this.stream(e,i),o=[],s;for await(let c of a)r==="values"?ka(c)?o.push(c[Ue]):s=c:n.push(c);if(r==="values"){if(o.length>0){let c=o.flat(1);if(s==null)return{[Ue]:c};if(typeof s=="object")return{...s,[Ue]:c}}return s}return n}async _runLoop(e){let{loop:t,runner:r,debug:i,config:n}=e,a;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:o}of await t._matchCachedWrites())t._outputWrites(o.id,o.writes,!0);i&&BR(t.checkpointMetadata.step,t.channels,this.streamChannelsList),i&&oh(t.step,Object.values(t.tasks)),await r.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(o,s)=>{i&&VR(o,s,this.streamChannelsList)},maxConcurrency:n.maxConcurrency,signal:n.signal})}if(t.status==="out_of_steps")throw new gh([`Recursion limit of ${n.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(o){if(a=o,!await t.finishAndHandleError(a))throw o}finally{a===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}};function Y9(e){let t=e.metadata??{},r=e.configurable??{},i=r.assistant_id??t.assistant_id,n=r.graph_id??t.graph_id,a=r.langgraph_auth_user,o;if(a!=null&&typeof a=="object"&&"identity"in a&&(o=a),i!=null||n!=null||o!=null)return{assistantId:i!=null?String(i):"",graphId:n!=null?String(n):"",user:o}}var Q9=new Set(["key","token","secret","password","auth"]);function eV(e,t){let r=e.toLowerCase(),i=!1;for(let n of Q9)if(r.includes(n)){i=!0;break}return e.startsWith("__")||!(typeof t=="string"||typeof t=="number"||typeof t=="boolean")||i}function tV(e){let t=e.configurable;if(!t)return;let r={};for(let[i,n]of Object.entries(t))eV(i,n)||(r[i]=n);return Object.keys(r).length>0?r:void 0}var xn=class oM extends kt{lc_graph_name="EphemeralValue";guard;value=[];constructor(t=!0){super(),this.guard=t}fromCheckpoint(t){let r=new oM(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 be("EphemeralValue can only receive one value per step.");return this.value=[t[t.length-1]],!0}get(){if(this.value.length===0)throw new Ne;return this.value[0]}checkpoint(){if(this.value.length===0)throw new Ne;return this.value[0]}isAvailable(){return this.value.length!==0}};var cS=class{path;ends;constructor(e){ae.isRunnable(e.path)?this.path=e.path:this.path=tt(e.path),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,r)=>(t[r]=r,t),{}):e.pathMap}run(e,t){return ot.registerWriter(new Vt({name:"<branch_run>",trace:!1,func:async(r,i)=>{try{return await this._route(r,i,e,t)}catch(n){throw n.name===Ml.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
|
|
430
430
|
NodeInterrupt should only be thrown inside a node, not in edge conditions.`),n}}}))}async _route(e,t,r,i){let n=await this.path.invoke(i?i(t):e,t);Array.isArray(n)||(n=[n]);let a;if(this.ends?a=n.map(o=>mt(o)?o:this.ends[o]):a=n,a.some(o=>!o))throw new Error("Branch condition returned unknown or null destination");if(a.filter(mt).some(o=>o.node==="__end__"))throw new be("Cannot send a packet to the END node");return await r(a,t)??e}},uS=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(i){return i.length>=1&&typeof i[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[i,n,a]of r){for(let s of["|",":"])if(i.includes(s))throw new Error(`"${s}" 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."),i in this.nodes)throw new Error(`Node \`${i}\` already present.`);if(i==="__end__")throw new Error(`Node \`${i}\` is reserved.`);let o=tt(n);this.nodes[i]={runnable:o,metadata:a?.metadata,subgraphs:xl(o)?[o]:a?.subgraphs,ends:a?.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 i=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."),ae.isRunnable(i.path)||(i.path=tt(i.path));let n=i.path.getName()==="RunnableLambda"?"condition":i.path.getName();if(this.branches[i.source]&&this.branches[i.source][n])throw new Error(`Condition \`${n}\` already present for node \`${e}\``);return this.branches[i.source]??={},this.branches[i.source][n]=new cS(i),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(He,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,Ye)}compile({checkpointer:e,interruptBefore:t,interruptAfter:r,name:i,transformers:n}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(r)?r:[]]);let a=new lS({builder:this,checkpointer:e,interruptAfter:r,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[He]:new xn,[Ye]:new xn},inputChannels:He,outputChannels:Ye,streamChannels:[],streamMode:"values",name:i,streamTransformers:n});for(let[o,s]of Object.entries(this.nodes))a.attachNode(o,s);for(let[o,s]of this.edges)a.attachEdge(o,s);for(let[o,s]of Object.entries(this.branches))for(let[c,u]of Object.entries(s))a.attachBranch(o,c,u);return a.validate()}validate(e){let t=new Set([...this.allEdges].map(([i,n])=>i));for(let[i]of Object.entries(this.branches))t.add(i);for(let i of t)if(i!=="__start__"&&!(i in this.nodes))throw new Error(`Found edge starting at unknown node \`${i}\``);let r=new Set([...this.allEdges].map(([i,n])=>n));for(let[i,n]of Object.entries(this.branches))for(let a of Object.values(n))if(a.ends!=null)for(let o of Object.values(a.ends))r.add(o);else{r.add(Ye);for(let o of Object.keys(this.nodes))o!==i&&r.add(o)}for(let i of Object.values(this.nodes))for(let n of i.ends??[])r.add(n);for(let i of Object.keys(this.nodes))if(!r.has(i))throw new yh([`Node \`${i}\` 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(`
|
|
431
|
-
`),{lc_error_code:"UNREACHABLE_NODE"});for(let i of r)if(i!=="__end__"&&!(i in this.nodes))throw new Error(`Found edge ending at unknown node \`${i}\``);if(e){for(let i of e)if(!(i in this.nodes))throw new Error(`Interrupt node \`${i}\` is not present`)}this.compiled=!0}},lS=class extends lh{builder;constructor({builder:e,...t}){super(t),this.builder=e}withConfig(e){return super.withConfig(e)}attachNode(e,t){this.channels[e]=new xn,this.nodes[e]=new bn({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new ot([{channel:e,value:hr}],[lt])),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 ot([{channel:Ye,value:hr}],[lt]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,r){e==="__start__"&&!this.nodes.__start__&&(this.nodes[He]=aM.subscribeTo(He,{tags:[lt]})),this.nodes[e].pipe(r.run(n=>new ot(n.map(a=>mt(a)?a:{channel:a==="__end__"?Ye:`branch:${e}:${t}:${a}`,value:hr}),[lt])));let i=r.ends?Object.values(r.ends):Object.keys(this.nodes);for(let n of i)if(n!=="__end__"){let a=`branch:${e}:${t}:${n}`;this.channels[a]=new xn,this.nodes[n].triggers.push(a),this.nodes[n].channels.push(a)}}async getGraphAsync(e){let t=e?.xray,r=new wo,i={[He]:r.addNode({schema:Kr.any()},He)},n={},a={};t&&(a=Object.fromEntries((await vn(this.getSubgraphsAsync())).filter(c=>sM(c[1]))));function o(c,u,l,d=!1){if(u==="__end__"&&n.__end__===void 0&&(n[Ye]=r.addNode({schema:Kr.any()},Ye)),i[c]!==void 0){if(n[u]===void 0)throw new Error(`End node ${u} not found!`);return r.addEdge(i[c],n[u],l!==u?l:void 0,d)}}for(let[c,u]of Object.entries(this.builder.nodes)){let l=Zt(c),d=u.runnable,f=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let p=typeof t=="number"?t-1:t,m=a[c]!==void 0?await a[c].getGraphAsync({...e,xray:p}):d.getGraph(e);if(m.trimFirstNode(),m.trimLastNode(),Object.keys(m.nodes).length>1){let b=function(x){return x?x.lc_runnable:!1},w=function(x,$){if(x!==void 0&&!Uo(x))return x;if(b($))try{let E=$.getName();return E=E.startsWith("Runnable")?E.slice(8):E,E}catch{return $.getName()}else return $.name??"UnknownSchema"},[g,y]=r.extend(m,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);y!==void 0&&(i[l]={name:w(y.id,y.data),...y}),n[l]={name:w(g.id,g.data),...g}}else{let g=r.addNode(d,l,f);i[l]=g,n[l]=g}}else{let p=r.addNode(d,l,f);i[l]=p,n[l]=p}}let s=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of s)o(Zt(c),Zt(u));for(let[c,u]of Object.entries(this.builder.branches)){let l={...Object.fromEntries(Object.keys(this.builder.nodes).filter(d=>d!==c).map(d=>[Zt(d),Zt(d)])),[Ye]:Ye};for(let d of Object.values(u)){let f;d.ends!==void 0?f=d.ends:f=l;for(let[p,m]of Object.entries(f))o(Zt(c),Zt(m),p,!0)}}for(let[c,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let l of u.ends)o(Zt(c),Zt(l),void 0,!0);return r}getGraph(e){let t=e?.xray,r=new wo,i={[He]:r.addNode({schema:Kr.any()},He)},n={},a={};t&&(a=Object.fromEntries(To(this.getSubgraphs()).filter(c=>sM(c[1]))));function o(c,u,l,d=!1){return u==="__end__"&&n.__end__===void 0&&(n[Ye]=r.addNode({schema:Kr.any()},Ye)),r.addEdge(i[c],n[u],l!==u?l:void 0,d)}for(let[c,u]of Object.entries(this.builder.nodes)){let l=Zt(c),d=u.runnable,f=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let p=typeof t=="number"?t-1:t,m=a[c]!==void 0?a[c].getGraph({...e,xray:p}):d.getGraph(e);if(m.trimFirstNode(),m.trimLastNode(),Object.keys(m.nodes).length>1){let b=function(x){return x?x.lc_runnable:!1},w=function(x,$){if(x!==void 0&&!Uo(x))return x;if(b($))try{let E=$.getName();return E=E.startsWith("Runnable")?E.slice(8):E,E}catch{return $.getName()}else return $.name??"UnknownSchema"},[g,y]=r.extend(m,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);y!==void 0&&(i[l]={name:w(y.id,y.data),...y}),n[l]={name:w(g.id,g.data),...g}}else{let g=r.addNode(d,l,f);i[l]=g,n[l]=g}}else{let p=r.addNode(d,l,f);i[l]=p,n[l]=p}}let s=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of s)o(Zt(c),Zt(u));for(let[c,u]of Object.entries(this.builder.branches)){let l={...Object.fromEntries(Object.keys(this.builder.nodes).filter(d=>d!==c).map(d=>[Zt(d),Zt(d)])),[Ye]:Ye};for(let d of Object.values(u)){let f;d.ends!==void 0?f=d.ends:f=l;for(let[p,m]of Object.entries(f))o(Zt(c),Zt(m),p,!0)}}return r}};function sM(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function Zt(e){return e==="subgraph"?`"${e}"`:e}function Ei(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"validate"in e["~standard"]}function dS(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"jsonSchema"in e["~standard"]}function rV(e){return Ei(e)&&dS(e)}function ma(e){if(dS(e))try{return e["~standard"].jsonSchema.input({target:"draft-07"})}catch{return}}function ha(e){if(e!=null&&Ei(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 i=r.value;return()=>i}}}catch{}}var fS=Symbol.for("langgraph.channel.missing"),dh=class cM extends kt{lc_graph_name="UntrackedValue";guard;_value=fS;initialValueFactory;constructor(t){super(),this.guard=t?.guard??!0,this.initialValueFactory=t?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new cM({guard:this.guard,initialValueFactory:this.initialValueFactory})}update(t){if(t.length===0)return!1;if(t.length!==1&&this.guard)throw new be("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===fS)throw new Ne;return this._value}checkpoint(){}isAvailable(){return this._value!==fS}};var ga=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),pS=class uM extends kt{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let r=new uM(this.names);return typeof t<"u"&&(r.seen=new Set(t)),r}update(t){let r=!1;for(let i of t)if(this.names.has(i))this.seen.has(i)||(this.seen.add(i),r=!0);else throw new be(`Value ${JSON.stringify(i)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!ga(this.names,this.seen))throw new Ne}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&ga(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&ga(this.names,this.seen)}},mS=class lM extends kt{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 lM(this.names);if(typeof t<"u"){let[i,n]=t;r.seen=new Set(i),r.finished=n}return r}update(t){let r=!1;for(let i of t)if(this.names.has(i)&&!this.seen.has(i))this.seen.add(i),r=!0;else if(!this.names.has(i))throw new be(`Value ${JSON.stringify(i)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!this.finished||!ga(this.names,this.seen))throw new Ne}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&ga(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&ga(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&ga(this.names,this.seen)}};var hS=Symbol.for("langgraph.state.reduced_value"),Ti=class{[hS]=!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&&hS in e&&e[hS]===!0}};var dM=Symbol.for("langgraph.state.untracked_value"),Oo=class{[dM]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&dM in e}};var gS=Symbol.for("langgraph.state.state_schema"),Qn=class{[gS]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,r]of Object.entries(this.fields))if(Ti.isInstance(r)){let i=ha(r.valueSchema);e[t]=new xi(r.reducer,i)}else if(Oo.isInstance(r)){let i=r.schema?ha(r.schema):void 0;e[t]=new dh({guard:r.guard,initialValueFactory:i})}else if(Ei(r))e[t]=new yn(ha(r));else throw new Error(`Invalid state field "${t}": must be a schema, ReducedValue, UntrackedValue, or ManagedValue`);return e}getJsonSchema(){let e={},t=[];for(let[r,i]of Object.entries(this.fields)){let n;if(Ti.isInstance(i)?(n=ma(i.valueSchema),i.jsonSchemaExtra&&(n={...n??{},...i.jsonSchemaExtra})):Oo.isInstance(i)?n=i.schema?ma(i.schema):void 0:Ei(i)&&(n=ma(i)),n){e[r]=n;let a=!1;Ti.isInstance(i)?a=ha(i.valueSchema)!==void 0:Oo.isInstance(i)?a=i.schema?ha(i.schema)!==void 0:!1:a=ha(i)!==void 0,a||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 i;Ti.isInstance(r)?(i=ma(r.inputSchema),r.jsonSchemaExtra&&(i={...i??{},...r.jsonSchemaExtra})):Oo.isInstance(r)?i=r.schema?ma(r.schema):void 0:Ei(r)&&(i=ma(r)),i&&(e[t]=i)}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,i]of Object.entries(e)){let n=this.fields[r];if(n===void 0){t[r]=i;continue}let a;if(Ti.isInstance(n)?a=n.inputSchema:Oo.isInstance(n)?a=n.schema:Ei(n)&&(a=n),a){let o=await a["~standard"].validate(i);if(o.issues)throw new Error(`Validation failed for field "${r}": ${JSON.stringify(o.issues)}`);t[r]=o.value}else t[r]=i}return t}static isInstance(e){return typeof e=="object"&&e!==null&&gS in e&&e[gS]===!0}};var nV="__remove_all__";function _a(e,t){let r=Array.isArray(e)?e:[e],i=Array.isArray(t)?t:[t],n=r.map(It),a=i.map(It);for(let l of n)(l.id===null||l.id===void 0)&&(l.id=Dl(),l.lc_kwargs.id=l.id);let o;for(let l=0;l<a.length;l+=1){let d=a[l];(d.id===null||d.id===void 0)&&(d.id=Dl(),d.lc_kwargs.id=d.id),an.isInstance(d)&&d.id==="__remove_all__"&&(o=l)}if(o!=null)return a.slice(o+1);let s=[...n],c=new Map(s.map((l,d)=>[l.id,d])),u=new Set;for(let l of a){let d=c.get(l.id);if(d!==void 0)an.isInstance(l)?u.add(l.id):(u.delete(l.id),s[d]=l);else{if(an.isInstance(l))throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${l.id}')`);c.set(l.id,s.length),s.push(l)}}return s.filter(l=>!u.has(l.id))}var iV=new Ti(Kr.custom().default(()=>[]),{inputSchema:Kr.custom(),reducer:_a,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var aV=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=no(e);for(let[i,n]of Object.entries(r)){let a=this.get(n);a?.reducer?t[i]=new xi(a.reducer.fn,a.default):t[i]=new yn(a?.default)}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let r=Object.entries(t).filter(([,a])=>a===!0).sort(([a],[o])=>a.localeCompare(o)).map(([a,o])=>`${a}:${o}`).join("|"),i=this._extensionCache.get(r)??new Map;if(i.has(e))return i.get(e);let n=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let a=Object.entries(no(e)).map(([o,s])=>{let c=this.get(s),u=t.withReducerSchema?c?.reducer?.schema??s:s;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let l=pi(u)??pi(s),d=JSON.stringify({...c.jsonSchemaExtra,description:l});u=u.describe(`lg:${d}`)}return[o,u]});n=op(e,Object.fromEntries(a)),at(n)&&(n._def.unknownKeys="strip")}return t.asPartial&&(n=js(n)),i.set(e,n),this._extensionCache.set(r,i),n}},El=new aV;function fM(e,t){if(t.reducer&&!t.default){let r=sp(e);r!=null&&(t.default=r)}if(t.reducer){let r=Object.assign(e,{lg_reducer_schema:t.reducer?.schema??e});return El.extend(r,()=>t),r}else return El.extend(e,()=>t),e}function Po(e){return e==null?!1:!!(Qn.isInstance(e)||Yt(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"||E0(t)))}function pM(e){if(typeof e!="object"||e==null)return!1;let t=e,r="state"in t&&Po(t.state),i="stateSchema"in t&&Po(t.stateSchema),n="input"in t&&Po(t.input);return!(!r&&!i&&!n||"input"in t&&t.input!=null&&!Po(t.input)||"output"in t&&t.output!=null&&!Po(t.output))}var Ai="__root__",fh=Symbol.for("langgraph.state.partial"),_S=class extends uS{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=El;_configSchema;_configRuntimeSchema;_interrupt;_writer;constructor(e,t){super();let r=this._normalizeToStateGraphInit(e,t),i=r.state??r.stateSchema??r.input;if(!i)throw new Ec;let n=this._getChannelsFromSchema(i);this._schemaDefinition=n,Qn.isInstance(i)?this._schemaRuntimeDefinition=i:Yt(i)&&(this._schemaRuntimeDefinition=i),r.input?Qn.isInstance(r.input)?this._inputRuntimeDefinition=r.input:Yt(r.input)?this._inputRuntimeDefinition=r.input:this._inputRuntimeDefinition=fh:this._inputRuntimeDefinition=fh,r.output?Qn.isInstance(r.output)?this._outputRuntimeDefinition=r.output:Yt(r.output)?this._outputRuntimeDefinition=r.output:this._outputRuntimeDefinition=this._schemaRuntimeDefinition:this._outputRuntimeDefinition=this._schemaRuntimeDefinition;let a=r.input?this._getChannelsFromSchema(r.input):n,o=r.output?this._getChannelsFromSchema(r.output):n;this._inputDefinition=a,this._outputDefinition=o,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),r.context&&Yt(r.context)&&(this._configRuntimeSchema=r.context),this._interrupt=r.interrupt,this._writer=r.writer}_normalizeToStateGraphInit(e,t){if(pM(e)){if(Yt(t)||Lm.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(Po(e)){if(Yt(t)||Lm.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(sV(e))return{state:oV(e.channels)};throw new Ec}_getChannelsFromSchema(e){if(Qn.isInstance(e))return e.getChannels();if(Yt(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 Ec("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 i;if(typeof r=="function"?i=r():i=r,this.channels[t]!==void 0){if(!this.channels[t].equals(i)&&i.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=i}}}addNode(...e){function t(i){return i.length>=1&&typeof i[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([i,n])=>[i,n]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[i,n,a]of r){if(i in this.channels)throw new Error(`${i} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let l of["|",":"])if(i.includes(l))throw new Error(`"${l}" 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."),i in this.nodes)throw new Error(`Node \`${i}\` already present.`);if(i==="__end__"||i==="__start__")throw new Error(`Node \`${i}\` is reserved.`);let o=this._schemaDefinition;a?.input!==void 0&&(o=this._getChannelsFromSchema(a.input)),this._addSchema(o);let s;ae.isRunnable(n)?s=n:typeof n=="function"?s=new Vt({func:n,name:i,trace:!1}):s=tt(n);let c=a?.cachePolicy;typeof c=="boolean"&&(c=c?{}:void 0);let u={runnable:s,retryPolicy:a?.retryPolicy,cachePolicy:c,metadata:a?.metadata,input:o??this._schemaDefinition,subgraphs:xl(s)?[s]:a?.subgraphs,ends:a?.ends,defer:a?.defer};this.nodes[i]=u}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(i=>i===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[i,n,a]of t){if(i in this.nodes)throw new Error(`Node names must be unique: node with the name "${i}" already exists.`);let o=i;this.addNode(o,n,a),r!=null&&this.addEdge(r,o),r=o}return this}compile({checkpointer:e,store:t,cache:r,interruptBefore:i,interruptAfter:n,name:a,description:o,transformers:s}={}){this.validate([...Array.isArray(i)?i:[],...Array.isArray(n)?n:[]]);let c=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),u=c.length===1&&c[0]===Ai?Ai:c,l=Object.keys(this.channels),d=l.length===1&&l[0]===Ai?Ai:l,f=this._interrupt,p=new hM({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:i,autoValidate:!1,nodes:{},channels:{...this.channels,[He]:new xn},inputChannels:He,outputChannels:u,streamChannels:d,streamMode:"updates",store:t,cache:r,name:a,description:o,userInterrupt:f,streamTransformers:s});p.attachNode(He);for(let[m,g]of Object.entries(this.nodes))p.attachNode(m,g);p.attachBranch(He,mh,mM(),{withReader:!1});for(let[m]of Object.entries(this.nodes))p.attachBranch(m,mh,mM(),{withReader:!1});for(let[m,g]of this.edges)p.attachEdge(m,g);for(let[m,g]of this.waitingEdges)p.attachEdge(m,g);for(let[m,g]of Object.entries(this.branches))for(let[y,b]of Object.entries(g))p.attachBranch(m,y,b);return p.validate()}};function oV(e){let t={};for(let[r,i]of Object.entries(e))r===Ai?t[r]=Fm(i):t[r]=Fm(i);return t}var hM=class extends lS{description;_metaRegistry=El;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(([s])=>s):r=Object.keys(this.builder.channels);function i(s){if(yt(s))return s.graph===ir.PARENT?null:s._updateAsTuples();if(Array.isArray(s)&&s.length>0&&s.some(c=>yt(c))){let c=[];for(let u of s)if(yt(u)){if(u.graph===ir.PARENT)continue;c.push(...u._updateAsTuples())}else c.push([Ai,u]);return c}else if(s!=null)return[[Ai,s]];return null}let n=e;function a(s){if(s){if(yt(s))return s.graph===ir.PARENT?null:s._updateAsTuples().filter(([c])=>r.includes(c));if(Array.isArray(s)&&s.length>0&&s.some(yt)){let c=[];for(let u of s)if(yt(u)){if(u.graph===ir.PARENT)continue;c.push(...u._updateAsTuples().filter(([l])=>r.includes(l)))}else{let l=a(u);l&&c.push(...l??[])}return c}else{if(typeof s=="object"&&!Array.isArray(s))return Object.entries(s).filter(([c])=>r.includes(c));{let c=Array.isArray(s)?"array":typeof s;throw new be(`Expected node "${n.toString()}" to return an object or an array containing at least one Command object, received ${c}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let o=[{value:hr,mapper:new Vt({func:r.length&&r[0]===Ai?i:a,trace:!1,recurse:!1})}];if(e==="__start__")this.nodes[e]=new bn({tags:[lt],triggers:[He],channels:[He],writers:[new ot(o,[lt])]});else{let s=t?.input??this.builder._schemaDefinition,c=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(s)).map(d=>[d,d])),u=Object.keys(c).length===1&&Ai in c,l=`branch:to:${e}`;this.channels[l]=t?.defer?new T0:new xn(!1),this.nodes[e]=new bn({triggers:[l],channels:u?Object.keys(c):c,writers:[new ot(o,[lt])],mapper:u?void 0:d=>Object.fromEntries(Object.entries(d).filter(([f])=>f in c)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:t?.cachePolicy,subgraphs:t?.subgraphs,ends:t?.ends})}}attachEdge(e,t){if(t!=="__end__"){if(typeof e=="string")this.nodes[e].writers.push(new ot([{channel:`branch:to:${t}`,value:null}],[lt]));else if(Array.isArray(e)){let r=`join:${e.join("+")}:${t}`;this.channels[r]=this.builder.nodes[t].defer?new mS(new Set(e)):new pS(new Set(e)),this.nodes[t].triggers.push(r);for(let i of e)this.nodes[i].writers.push(new ot([{channel:r,value:i}],[lt]))}}}attachBranch(e,t,r,i={withReader:!0}){let n=async(a,o)=>{let s=a.filter(u=>u!==Ye);if(!s.length)return;let c=s.map(u=>mt(u)?u:{channel:u==="__end__"?u:`branch:to:${u}`,value:e});await ot.doWrite({...o,tags:(o.tags??[]).concat([lt])},c)};this.nodes[e].writers.push(r.run(n,i.withReader?a=>IR.doRead(a,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(Qn.isInstance(t)){if(yt(e)){let n=e;return e.update&&(n.update=await t.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await t.validateInput(e)}if(t===fh&&Qn.isInstance(r)){if(yt(e)){let n=e;return e.update&&(n.update=await r.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await r.validateInput(e)}let i=(()=>{let n=a=>{if(a!=null)return this._metaRegistry.getExtendedChannelSchemas(a,{withReducerSchema:!0})};if(Yt(t))return n(t);if(t===fh)return Yt(r)?js(n(r)):void 0})();if(yt(e)){let n=e;return e.update&&i!=null&&(n.update=Rs(i,e.update)),n}return i!=null?Rs(i,e):e}isInterrupted(e){return ka(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return Yt(t)&&Rs(t,e),e}};function sV(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function cV(e){if(mt(e))return[e];let t=[];yt(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(yt));let r=[];for(let i of t){if(i.graph===ir.PARENT)throw new jl(i);mt(i.goto)||typeof i.goto=="string"?r.push(i.goto):Array.isArray(i.goto)&&r.push(...i.goto)}return r}function mM(){return new cS({path:new Vt({func:cV,tags:[lt],trace:!1,recurse:!1,name:"<control_branch>"})})}var uV=class extends _S{constructor(){super({channels:{__root__:{reducer:_a,default:()=>[]}}})}};function lV(e,t){let{stateKey:r,...i}=t??{},n=pc(i),a=r??"messages";r===null&&(a=void 0);let o=It(e);if(!o.id)throw new Error("Message ID is required.");let s=(Array.isArray(n.callbacks)?n.callbacks:typeof n.callbacks<"u"?n.callbacks.handlers:[]).find(c=>"name"in c&&c.name==="StreamMessagesHandler");if(s){let c=n.metadata??{},u=(c.langgraph_checkpoint_ns??"").split("|");s._emit([u,c],o,void 0,!1)}return a&&n.configurable?.__pregel_send?.([[a,o]]),o}function dV(e,t){let r=typeof e=="string"?{name:e,retry:void 0,cachePolicy:void 0}:e,{name:i,retry:n}=r;if(G0(t)||J0(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,(...s)=>jR({func:t,name:i,retry:n,cache:o},...s)}var gM=function(t,r){let{name:i,checkpointer:n,store:a,cache:o}=typeof t=="string"?{name:t,checkpointer:void 0,store:void 0}:t;if(G0(r)||J0(r))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let s="updates",c=MR(i,r);function u(p){return typeof p=="object"&&p!==null&&"__lg_type"in p&&p.__lg_type==="__pregel_final"}let l=new Vt({name:"pluckReturnValue",func:p=>u(p)?p.value:p}),d=new Vt({name:"pluckSaveValue",func:p=>u(p)?p.save:p}),f=new bn({bound:c,triggers:[He],channels:[He],writers:[new ot([{channel:Ye,value:hr,mapper:l},{channel:Sa,value:hr,mapper:d}],[lt])]});return new lh({name:i,checkpointer:n,nodes:{[i]:f},channels:{[He]:new xn,[Ye]:new yn,[Sa]:new yn},inputChannels:He,outputChannels:Ye,streamChannels:Ye,streamMode:s,store:a,cache:o})};gM.final=function({value:t,save:r}){return{value:t,save:r,__lg_type:"__pregel_final"}};function fV(){return Te.getRunnableConfig().configurable?.[xa]}var pV=yl.Root({messages:yl({reducer:_a,default:()=>[]})}),_M={reducer:{fn:_a},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},mV=St.object({messages:fM(St.custom(),_M)});function hV(e){let t=Te.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{He as a,Ye as b,Ue as c,ph as d,SS as e,wa as f,bM as g,ka as h,ir as i,yt as j,en as k,hh as l,gh as m,$a as n,ti as o,Ml as p,jl as q,_h as r,Ia as s,ri as t,zl as u,Ne as v,be as w,xM as x,yh as y,SM as z,Ec as A,kM as B,GS as C,Ht as D,qM as E,An as F,rk as G,Nc as H,nk as I,gt as J,Go as K,Ee as L,Wo as M,Qe as N,nn as O,Aa as P,Oa as Q,Pa as R,oi as S,qk as T,jt as U,Zi as V,Ha as W,qi as X,Ef as Y,to as Z,Ve as _,at as $,lr as aa,pi as ba,sp as ca,D as da,St as ea,_t as fa,Dt as ga,Ep as ha,rF as ia,Nu as ja,Mp as ka,Ew as la,ZO as ma,HO as na,sF as oa,cF as pa,Aw as qa,ca as ra,ua as sa,Hw as ta,ec as ua,Xu as va,Kr as wa,mB as xa,xB as ya,lc as za,gn as Aa,jm as Ba,rR as Ca,fc as Da,Dm as Ea,aR as Fa,kt as Ga,xi as Ha,yl as Ia,e9 as Ja,t9 as Ka,A0 as La,r9 as Ma,Wr as Na,P0 as Oa,N0 as Pa,Hm as Qa,M0 as Ra,vl as Sa,bl as Ta,j0 as Ua,z0 as Va,Gm as Wa,L0 as Xa,gR as Ya,F0 as Za,H0 as _a,uS as $a,Ei as ab,rV as bb,ma as cb,ha as db,dh as eb,Ti as fb,Oo as gb,Qn as hb,nV as ib,_a as jb,iV as kb,El as lb,fM as mb,_S as nb,hM as ob,uV as pb,lV as qb,dV as rb,gM as sb,fV as tb,pV as ub,_M as vb,mV as wb,hV as xb};
|
|
431
|
+
`),{lc_error_code:"UNREACHABLE_NODE"});for(let i of r)if(i!=="__end__"&&!(i in this.nodes))throw new Error(`Found edge ending at unknown node \`${i}\``);if(e){for(let i of e)if(!(i in this.nodes))throw new Error(`Interrupt node \`${i}\` is not present`)}this.compiled=!0}},lS=class extends lh{builder;constructor({builder:e,...t}){super(t),this.builder=e}withConfig(e){return super.withConfig(e)}attachNode(e,t){this.channels[e]=new xn,this.nodes[e]=new bn({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new ot([{channel:e,value:hr}],[lt])),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 ot([{channel:Ye,value:hr}],[lt]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,r){e==="__start__"&&!this.nodes.__start__&&(this.nodes[He]=aM.subscribeTo(He,{tags:[lt]})),this.nodes[e].pipe(r.run(n=>new ot(n.map(a=>mt(a)?a:{channel:a==="__end__"?Ye:`branch:${e}:${t}:${a}`,value:hr}),[lt])));let i=r.ends?Object.values(r.ends):Object.keys(this.nodes);for(let n of i)if(n!=="__end__"){let a=`branch:${e}:${t}:${n}`;this.channels[a]=new xn,this.nodes[n].triggers.push(a),this.nodes[n].channels.push(a)}}async getGraphAsync(e){let t=e?.xray,r=new wo,i={[He]:r.addNode({schema:Kr.any()},He)},n={},a={};t&&(a=Object.fromEntries((await vn(this.getSubgraphsAsync())).filter(c=>sM(c[1]))));function o(c,u,l,d=!1){if(u==="__end__"&&n.__end__===void 0&&(n[Ye]=r.addNode({schema:Kr.any()},Ye)),i[c]!==void 0){if(n[u]===void 0)throw new Error(`End node ${u} not found!`);return r.addEdge(i[c],n[u],l!==u?l:void 0,d)}}for(let[c,u]of Object.entries(this.builder.nodes)){let l=Zt(c),d=u.runnable,f=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let p=typeof t=="number"?t-1:t,m=a[c]!==void 0?await a[c].getGraphAsync({...e,xray:p}):d.getGraph(e);if(m.trimFirstNode(),m.trimLastNode(),Object.keys(m.nodes).length>1){let b=function(x){return x?x.lc_runnable:!1},w=function(x,$){if(x!==void 0&&!Uo(x))return x;if(b($))try{let E=$.getName();return E=E.startsWith("Runnable")?E.slice(8):E,E}catch{return $.getName()}else return $.name??"UnknownSchema"},[g,y]=r.extend(m,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);y!==void 0&&(i[l]={name:w(y.id,y.data),...y}),n[l]={name:w(g.id,g.data),...g}}else{let g=r.addNode(d,l,f);i[l]=g,n[l]=g}}else{let p=r.addNode(d,l,f);i[l]=p,n[l]=p}}let s=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of s)o(Zt(c),Zt(u));for(let[c,u]of Object.entries(this.builder.branches)){let l={...Object.fromEntries(Object.keys(this.builder.nodes).filter(d=>d!==c).map(d=>[Zt(d),Zt(d)])),[Ye]:Ye};for(let d of Object.values(u)){let f;d.ends!==void 0?f=d.ends:f=l;for(let[p,m]of Object.entries(f))o(Zt(c),Zt(m),p,!0)}}for(let[c,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let l of u.ends)o(Zt(c),Zt(l),void 0,!0);return r}getGraph(e){let t=e?.xray,r=new wo,i={[He]:r.addNode({schema:Kr.any()},He)},n={},a={};t&&(a=Object.fromEntries(To(this.getSubgraphs()).filter(c=>sM(c[1]))));function o(c,u,l,d=!1){return u==="__end__"&&n.__end__===void 0&&(n[Ye]=r.addNode({schema:Kr.any()},Ye)),r.addEdge(i[c],n[u],l!==u?l:void 0,d)}for(let[c,u]of Object.entries(this.builder.nodes)){let l=Zt(c),d=u.runnable,f=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?f.__interrupt="before,after":this.interruptBefore?.includes(c)?f.__interrupt="before":this.interruptAfter?.includes(c)&&(f.__interrupt="after"),t){let p=typeof t=="number"?t-1:t,m=a[c]!==void 0?a[c].getGraph({...e,xray:p}):d.getGraph(e);if(m.trimFirstNode(),m.trimLastNode(),Object.keys(m.nodes).length>1){let b=function(x){return x?x.lc_runnable:!1},w=function(x,$){if(x!==void 0&&!Uo(x))return x;if(b($))try{let E=$.getName();return E=E.startsWith("Runnable")?E.slice(8):E,E}catch{return $.getName()}else return $.name??"UnknownSchema"},[g,y]=r.extend(m,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);y!==void 0&&(i[l]={name:w(y.id,y.data),...y}),n[l]={name:w(g.id,g.data),...g}}else{let g=r.addNode(d,l,f);i[l]=g,n[l]=g}}else{let p=r.addNode(d,l,f);i[l]=p,n[l]=p}}let s=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of s)o(Zt(c),Zt(u));for(let[c,u]of Object.entries(this.builder.branches)){let l={...Object.fromEntries(Object.keys(this.builder.nodes).filter(d=>d!==c).map(d=>[Zt(d),Zt(d)])),[Ye]:Ye};for(let d of Object.values(u)){let f;d.ends!==void 0?f=d.ends:f=l;for(let[p,m]of Object.entries(f))o(Zt(c),Zt(m),p,!0)}}return r}};function sM(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function Zt(e){return e==="subgraph"?`"${e}"`:e}function Ei(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"validate"in e["~standard"]}function dS(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"jsonSchema"in e["~standard"]}function rV(e){return Ei(e)&&dS(e)}function ma(e){if(dS(e))try{return e["~standard"].jsonSchema.input({target:"draft-07"})}catch{return}}function ha(e){if(e!=null&&Ei(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 i=r.value;return()=>i}}}catch{}}var fS=Symbol.for("langgraph.channel.missing"),dh=class cM extends kt{lc_graph_name="UntrackedValue";guard;_value=fS;initialValueFactory;constructor(t){super(),this.guard=t?.guard??!0,this.initialValueFactory=t?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new cM({guard:this.guard,initialValueFactory:this.initialValueFactory})}update(t){if(t.length===0)return!1;if(t.length!==1&&this.guard)throw new be("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===fS)throw new Ne;return this._value}checkpoint(){}isAvailable(){return this._value!==fS}};var ga=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),pS=class uM extends kt{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let r=new uM(this.names);return typeof t<"u"&&(r.seen=new Set(t)),r}update(t){let r=!1;for(let i of t)if(this.names.has(i))this.seen.has(i)||(this.seen.add(i),r=!0);else throw new be(`Value ${JSON.stringify(i)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!ga(this.names,this.seen))throw new Ne}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&ga(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&ga(this.names,this.seen)}},mS=class lM extends kt{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 lM(this.names);if(typeof t<"u"){let[i,n]=t;r.seen=new Set(i),r.finished=n}return r}update(t){let r=!1;for(let i of t)if(this.names.has(i)&&!this.seen.has(i))this.seen.add(i),r=!0;else if(!this.names.has(i))throw new be(`Value ${JSON.stringify(i)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!this.finished||!ga(this.names,this.seen))throw new Ne}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&ga(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&ga(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&ga(this.names,this.seen)}};var hS=Symbol.for("langgraph.state.reduced_value"),Ti=class{[hS]=!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&&hS in e&&e[hS]===!0}};var dM=Symbol.for("langgraph.state.untracked_value"),Oo=class{[dM]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&dM in e}};var gS=Symbol.for("langgraph.state.state_schema"),Qn=class{[gS]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,r]of Object.entries(this.fields))if(Ti.isInstance(r)){let i=ha(r.valueSchema);e[t]=new xi(r.reducer,i)}else if(Oo.isInstance(r)){let i=r.schema?ha(r.schema):void 0;e[t]=new dh({guard:r.guard,initialValueFactory:i})}else if(Ei(r))e[t]=new yn(ha(r));else throw new Error(`Invalid state field "${t}": must be a schema, ReducedValue, UntrackedValue, or ManagedValue`);return e}getJsonSchema(){let e={},t=[];for(let[r,i]of Object.entries(this.fields)){let n;if(Ti.isInstance(i)?(n=ma(i.valueSchema),i.jsonSchemaExtra&&(n={...n??{},...i.jsonSchemaExtra})):Oo.isInstance(i)?n=i.schema?ma(i.schema):void 0:Ei(i)&&(n=ma(i)),n){e[r]=n;let a=!1;Ti.isInstance(i)?a=ha(i.valueSchema)!==void 0:Oo.isInstance(i)?a=i.schema?ha(i.schema)!==void 0:!1:a=ha(i)!==void 0,a||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 i;Ti.isInstance(r)?(i=ma(r.inputSchema),r.jsonSchemaExtra&&(i={...i??{},...r.jsonSchemaExtra})):Oo.isInstance(r)?i=r.schema?ma(r.schema):void 0:Ei(r)&&(i=ma(r)),i&&(e[t]=i)}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,i]of Object.entries(e)){let n=this.fields[r];if(n===void 0){t[r]=i;continue}let a;if(Ti.isInstance(n)?a=n.inputSchema:Oo.isInstance(n)?a=n.schema:Ei(n)&&(a=n),a){let o=await a["~standard"].validate(i);if(o.issues)throw new Error(`Validation failed for field "${r}": ${JSON.stringify(o.issues)}`);t[r]=o.value}else t[r]=i}return t}static isInstance(e){return typeof e=="object"&&e!==null&&gS in e&&e[gS]===!0}};var nV="__remove_all__";function _a(e,t){let r=Array.isArray(e)?e:[e],i=Array.isArray(t)?t:[t],n=r.map(It),a=i.map(It);for(let l of n)(l.id===null||l.id===void 0)&&(l.id=Dl(),l.lc_kwargs.id=l.id);let o;for(let l=0;l<a.length;l+=1){let d=a[l];(d.id===null||d.id===void 0)&&(d.id=Dl(),d.lc_kwargs.id=d.id),an.isInstance(d)&&d.id==="__remove_all__"&&(o=l)}if(o!=null)return a.slice(o+1);let s=[...n],c=new Map(s.map((l,d)=>[l.id,d])),u=new Set;for(let l of a){let d=c.get(l.id);if(d!==void 0)an.isInstance(l)?u.add(l.id):(u.delete(l.id),s[d]=l);else{if(an.isInstance(l))throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${l.id}')`);c.set(l.id,s.length),s.push(l)}}return s.filter(l=>!u.has(l.id))}var iV=new Ti(Kr.custom().default(()=>[]),{inputSchema:Kr.custom(),reducer:_a,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var aV=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=no(e);for(let[i,n]of Object.entries(r)){let a=this.get(n);a?.reducer?t[i]=new xi(a.reducer.fn,a.default):t[i]=new yn(a?.default)}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let r=Object.entries(t).filter(([,a])=>a===!0).sort(([a],[o])=>a.localeCompare(o)).map(([a,o])=>`${a}:${o}`).join("|"),i=this._extensionCache.get(r)??new Map;if(i.has(e))return i.get(e);let n=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let a=Object.entries(no(e)).map(([o,s])=>{let c=this.get(s),u=t.withReducerSchema?c?.reducer?.schema??s:s;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let l=pi(u)??pi(s),d=JSON.stringify({...c.jsonSchemaExtra,description:l});u=u.describe(`lg:${d}`)}return[o,u]});n=op(e,Object.fromEntries(a)),at(n)&&(n._def.unknownKeys="strip")}return t.asPartial&&(n=js(n)),i.set(e,n),this._extensionCache.set(r,i),n}},El=new aV;function fM(e,t){if(t.reducer&&!t.default){let r=sp(e);r!=null&&(t.default=r)}if(t.reducer){let r=Object.assign(e,{lg_reducer_schema:t.reducer?.schema??e});return El.extend(r,()=>t),r}else return El.extend(e,()=>t),e}function Po(e){return e==null?!1:!!(Qn.isInstance(e)||Yt(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"||E0(t)))}function pM(e){if(typeof e!="object"||e==null)return!1;let t=e,r="state"in t&&Po(t.state),i="stateSchema"in t&&Po(t.stateSchema),n="input"in t&&Po(t.input);return!(!r&&!i&&!n||"input"in t&&t.input!=null&&!Po(t.input)||"output"in t&&t.output!=null&&!Po(t.output))}var Ai="__root__",fh=Symbol.for("langgraph.state.partial"),_S=class extends uS{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=El;_configSchema;_configRuntimeSchema;_interrupt;_writer;constructor(e,t){super();let r=this._normalizeToStateGraphInit(e,t),i=r.state??r.stateSchema??r.input;if(!i)throw new Ec;let n=this._getChannelsFromSchema(i);this._schemaDefinition=n,Qn.isInstance(i)?this._schemaRuntimeDefinition=i:Yt(i)&&(this._schemaRuntimeDefinition=i),r.input?Qn.isInstance(r.input)?this._inputRuntimeDefinition=r.input:Yt(r.input)?this._inputRuntimeDefinition=r.input:this._inputRuntimeDefinition=fh:this._inputRuntimeDefinition=fh,r.output?Qn.isInstance(r.output)?this._outputRuntimeDefinition=r.output:Yt(r.output)?this._outputRuntimeDefinition=r.output:this._outputRuntimeDefinition=this._schemaRuntimeDefinition:this._outputRuntimeDefinition=this._schemaRuntimeDefinition;let a=r.input?this._getChannelsFromSchema(r.input):n,o=r.output?this._getChannelsFromSchema(r.output):n;this._inputDefinition=a,this._outputDefinition=o,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),r.context&&Yt(r.context)&&(this._configRuntimeSchema=r.context),this._interrupt=r.interrupt,this._writer=r.writer}_normalizeToStateGraphInit(e,t){if(pM(e)){if(Yt(t)||Lm.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(Po(e)){if(Yt(t)||Lm.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(sV(e))return{state:oV(e.channels)};throw new Ec}_getChannelsFromSchema(e){if(Qn.isInstance(e))return e.getChannels();if(Yt(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 Ec("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 i;if(typeof r=="function"?i=r():i=r,this.channels[t]!==void 0){if(!this.channels[t].equals(i)&&i.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=i}}}addNode(...e){function t(i){return i.length>=1&&typeof i[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([i,n])=>[i,n]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[i,n,a]of r){if(i in this.channels)throw new Error(`${i} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let l of["|",":"])if(i.includes(l))throw new Error(`"${l}" 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."),i in this.nodes)throw new Error(`Node \`${i}\` already present.`);if(i==="__end__"||i==="__start__")throw new Error(`Node \`${i}\` is reserved.`);let o=this._schemaDefinition;a?.input!==void 0&&(o=this._getChannelsFromSchema(a.input)),this._addSchema(o);let s;ae.isRunnable(n)?s=n:typeof n=="function"?s=new Vt({func:n,name:i,trace:!1}):s=tt(n);let c=a?.cachePolicy;typeof c=="boolean"&&(c=c?{}:void 0);let u={runnable:s,retryPolicy:a?.retryPolicy,cachePolicy:c,metadata:a?.metadata,input:o??this._schemaDefinition,subgraphs:xl(s)?[s]:a?.subgraphs,ends:a?.ends,defer:a?.defer};this.nodes[i]=u}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(i=>i===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[i,n,a]of t){if(i in this.nodes)throw new Error(`Node names must be unique: node with the name "${i}" already exists.`);let o=i;this.addNode(o,n,a),r!=null&&this.addEdge(r,o),r=o}return this}compile({checkpointer:e,store:t,cache:r,interruptBefore:i,interruptAfter:n,name:a,description:o,transformers:s}={}){this.validate([...Array.isArray(i)?i:[],...Array.isArray(n)?n:[]]);let c=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),u=c.length===1&&c[0]===Ai?Ai:c,l=Object.keys(this.channels),d=l.length===1&&l[0]===Ai?Ai:l,f=this._interrupt,p=new hM({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:i,autoValidate:!1,nodes:{},channels:{...this.channels,[He]:new xn},inputChannels:He,outputChannels:u,streamChannels:d,streamMode:"updates",store:t,cache:r,name:a,description:o,userInterrupt:f,streamTransformers:s});p.attachNode(He);for(let[m,g]of Object.entries(this.nodes))p.attachNode(m,g);p.attachBranch(He,mh,mM(),{withReader:!1});for(let[m]of Object.entries(this.nodes))p.attachBranch(m,mh,mM(),{withReader:!1});for(let[m,g]of this.edges)p.attachEdge(m,g);for(let[m,g]of this.waitingEdges)p.attachEdge(m,g);for(let[m,g]of Object.entries(this.branches))for(let[y,b]of Object.entries(g))p.attachBranch(m,y,b);return p.validate()}};function oV(e){let t={};for(let[r,i]of Object.entries(e))r===Ai?t[r]=Fm(i):t[r]=Fm(i);return t}var hM=class extends lS{description;_metaRegistry=El;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(([s])=>s):r=Object.keys(this.builder.channels);function i(s){if(yt(s))return s.graph===ir.PARENT?null:s._updateAsTuples();if(Array.isArray(s)&&s.length>0&&s.some(c=>yt(c))){let c=[];for(let u of s)if(yt(u)){if(u.graph===ir.PARENT)continue;c.push(...u._updateAsTuples())}else c.push([Ai,u]);return c}else if(s!=null)return[[Ai,s]];return null}let n=e;function a(s){if(s){if(yt(s))return s.graph===ir.PARENT?null:s._updateAsTuples().filter(([c])=>r.includes(c));if(Array.isArray(s)&&s.length>0&&s.some(yt)){let c=[];for(let u of s)if(yt(u)){if(u.graph===ir.PARENT)continue;c.push(...u._updateAsTuples().filter(([l])=>r.includes(l)))}else{let l=a(u);l&&c.push(...l??[])}return c}else{if(typeof s=="object"&&!Array.isArray(s))return Object.entries(s).filter(([c])=>r.includes(c));{let c=Array.isArray(s)?"array":typeof s;throw new be(`Expected node "${n.toString()}" to return an object or an array containing at least one Command object, received ${c}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let o=[{value:hr,mapper:new Vt({func:r.length&&r[0]===Ai?i:a,trace:!1,recurse:!1})}];if(e==="__start__")this.nodes[e]=new bn({tags:[lt],triggers:[He],channels:[He],writers:[new ot(o,[lt])]});else{let s=t?.input??this.builder._schemaDefinition,c=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(s)).map(d=>[d,d])),u=Object.keys(c).length===1&&Ai in c,l=`branch:to:${e}`;this.channels[l]=t?.defer?new T0:new xn(!1),this.nodes[e]=new bn({triggers:[l],channels:u?Object.keys(c):c,writers:[new ot(o,[lt])],mapper:u?void 0:d=>Object.fromEntries(Object.entries(d).filter(([f])=>f in c)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:t?.cachePolicy,subgraphs:t?.subgraphs,ends:t?.ends})}}attachEdge(e,t){if(t!=="__end__"){if(typeof e=="string")this.nodes[e].writers.push(new ot([{channel:`branch:to:${t}`,value:null}],[lt]));else if(Array.isArray(e)){let r=`join:${e.join("+")}:${t}`;this.channels[r]=this.builder.nodes[t].defer?new mS(new Set(e)):new pS(new Set(e)),this.nodes[t].triggers.push(r);for(let i of e)this.nodes[i].writers.push(new ot([{channel:r,value:i}],[lt]))}}}attachBranch(e,t,r,i={withReader:!0}){let n=async(a,o)=>{let s=a.filter(u=>u!==Ye);if(!s.length)return;let c=s.map(u=>mt(u)?u:{channel:u==="__end__"?u:`branch:to:${u}`,value:e});await ot.doWrite({...o,tags:(o.tags??[]).concat([lt])},c)};this.nodes[e].writers.push(r.run(n,i.withReader?a=>IR.doRead(a,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(Qn.isInstance(t)){if(yt(e)){let n=e;return e.update&&(n.update=await t.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await t.validateInput(e)}if(t===fh&&Qn.isInstance(r)){if(yt(e)){let n=e;return e.update&&(n.update=await r.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await r.validateInput(e)}let i=(()=>{let n=a=>{if(a!=null)return this._metaRegistry.getExtendedChannelSchemas(a,{withReducerSchema:!0})};if(Yt(t))return n(t);if(t===fh)return Yt(r)?js(n(r)):void 0})();if(yt(e)){let n=e;if(e.update&&i!=null){let a=Array.isArray(e.update)?Object.fromEntries(e.update):e.update,o=Rs(i,a);n.update=Object.fromEntries(Object.keys(a).map(s=>[s,o[s]]))}return n}return i!=null?Rs(i,e):e}isInterrupted(e){return ka(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return Yt(t)&&Rs(t,e),e}};function sV(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function cV(e){if(mt(e))return[e];let t=[];yt(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(yt));let r=[];for(let i of t){if(i.graph===ir.PARENT)throw new jl(i);mt(i.goto)||typeof i.goto=="string"?r.push(i.goto):Array.isArray(i.goto)&&r.push(...i.goto)}return r}function mM(){return new cS({path:new Vt({func:cV,tags:[lt],trace:!1,recurse:!1,name:"<control_branch>"})})}var uV=class extends _S{constructor(){super({channels:{__root__:{reducer:_a,default:()=>[]}}})}};function lV(e,t){let{stateKey:r,...i}=t??{},n=pc(i),a=r??"messages";r===null&&(a=void 0);let o=It(e);if(!o.id)throw new Error("Message ID is required.");let s=(Array.isArray(n.callbacks)?n.callbacks:typeof n.callbacks<"u"?n.callbacks.handlers:[]).find(c=>"name"in c&&c.name==="StreamMessagesHandler");if(s){let c=n.metadata??{},u=(c.langgraph_checkpoint_ns??"").split("|");s._emit([u,c],o,void 0,!1)}return a&&n.configurable?.__pregel_send?.([[a,o]]),o}function dV(e,t){let r=typeof e=="string"?{name:e,retry:void 0,cachePolicy:void 0}:e,{name:i,retry:n}=r;if(G0(t)||J0(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,(...s)=>jR({func:t,name:i,retry:n,cache:o},...s)}var gM=function(t,r){let{name:i,checkpointer:n,store:a,cache:o}=typeof t=="string"?{name:t,checkpointer:void 0,store:void 0}:t;if(G0(r)||J0(r))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let s="updates",c=MR(i,r);function u(p){return typeof p=="object"&&p!==null&&"__lg_type"in p&&p.__lg_type==="__pregel_final"}let l=new Vt({name:"pluckReturnValue",func:p=>u(p)?p.value:p}),d=new Vt({name:"pluckSaveValue",func:p=>u(p)?p.save:p}),f=new bn({bound:c,triggers:[He],channels:[He],writers:[new ot([{channel:Ye,value:hr,mapper:l},{channel:Sa,value:hr,mapper:d}],[lt])]});return new lh({name:i,checkpointer:n,nodes:{[i]:f},channels:{[He]:new xn,[Ye]:new yn,[Sa]:new yn},inputChannels:He,outputChannels:Ye,streamChannels:Ye,streamMode:s,store:a,cache:o})};gM.final=function({value:t,save:r}){return{value:t,save:r,__lg_type:"__pregel_final"}};function fV(){return Te.getRunnableConfig().configurable?.[xa]}var pV=yl.Root({messages:yl({reducer:_a,default:()=>[]})}),_M={reducer:{fn:_a},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},mV=St.object({messages:fM(St.custom(),_M)});function hV(e){let t=Te.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{He as a,Ye as b,Ue as c,ph as d,SS as e,wa as f,bM as g,ka as h,ir as i,yt as j,en as k,hh as l,gh as m,$a as n,ti as o,Ml as p,jl as q,_h as r,Ia as s,ri as t,zl as u,Ne as v,be as w,xM as x,yh as y,SM as z,Ec as A,kM as B,GS as C,Ht as D,qM as E,An as F,rk as G,Nc as H,nk as I,gt as J,Go as K,Ee as L,Wo as M,Qe as N,nn as O,Aa as P,Oa as Q,Pa as R,oi as S,qk as T,jt as U,Zi as V,Ha as W,qi as X,Ef as Y,to as Z,Ve as _,at as $,lr as aa,pi as ba,sp as ca,D as da,St as ea,_t as fa,Dt as ga,Ep as ha,rF as ia,Nu as ja,Mp as ka,Ew as la,ZO as ma,HO as na,sF as oa,cF as pa,Aw as qa,ca as ra,ua as sa,Hw as ta,ec as ua,Xu as va,Kr as wa,mB as xa,xB as ya,lc as za,gn as Aa,jm as Ba,rR as Ca,fc as Da,Dm as Ea,aR as Fa,kt as Ga,xi as Ha,yl as Ia,e9 as Ja,t9 as Ka,A0 as La,r9 as Ma,Wr as Na,P0 as Oa,N0 as Pa,Hm as Qa,M0 as Ra,vl as Sa,bl as Ta,j0 as Ua,z0 as Va,Gm as Wa,L0 as Xa,gR as Ya,F0 as Za,H0 as _a,uS as $a,Ei as ab,rV as bb,ma as cb,ha as db,dh as eb,Ti as fb,Oo as gb,Qn as hb,nV as ib,_a as jb,iV as kb,El as lb,fM as mb,_S as nb,hM as ob,uV as pb,lV as qb,dV as rb,gM as sb,fV as tb,pV as ub,_M as vb,mV as wb,hV as xb};
|