@arcgis/portal-components 5.2.0-next.99 → 6.0.0-next.0
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/23X56P4K.js +2 -0
- package/dist/cdn/{OBBYT2AV.js → 25XJ66JO.js} +1 -1
- package/dist/cdn/2I5SLQC5.js +2 -0
- package/dist/cdn/3R4PPD5N.js +2 -0
- package/dist/cdn/3SO52LKS.js +2 -0
- package/dist/cdn/{T3BCFS2M.js → 456JKNCU.js} +1 -1
- package/dist/cdn/4SHXR62X.js +2 -0
- package/dist/cdn/4TQWZ2KF.js +9 -0
- package/dist/cdn/{W4GBRVNN.js → 4ZTWQN6Q.js} +1 -1
- package/dist/cdn/5EFYJYWM.js +2 -0
- package/dist/cdn/5FDUO7J4.js +2 -0
- package/dist/cdn/5FOWUL6I.js +2 -0
- package/dist/cdn/5YDITHQA.js +3 -0
- package/dist/cdn/{VJ4STLVD.js → 6BMWSGLA.js} +1 -1
- package/dist/cdn/{GBYHBRUW.js → 6EY5GHKE.js} +1 -1
- package/dist/cdn/6LST5YZY.js +2 -0
- package/dist/cdn/6MWSS5YF.js +2 -0
- package/dist/cdn/7NK6UF47.js +2 -0
- package/dist/cdn/7NQY5QJK.js +2 -0
- package/dist/cdn/7TGCBYRK.js +2 -0
- package/dist/cdn/ADZAKBOJ.js +2 -0
- package/dist/cdn/AE574B3G.js +2 -0
- package/dist/cdn/AWCYG2JJ.js +2 -0
- package/dist/cdn/B3NVWHCS.js +2 -0
- package/dist/cdn/BEAUY47J.js +2 -0
- package/dist/cdn/BIXJGL7B.js +2 -0
- package/dist/cdn/BRJE3G3H.js +2 -0
- package/dist/cdn/{S7IRYX4A.js → C5U7YKVI.js} +1 -1
- package/dist/cdn/C5VUNN4M.js +2 -0
- package/dist/cdn/CJHR4UK5.js +2 -0
- package/dist/cdn/CWSEBETE.js +4 -0
- package/dist/cdn/D6QHNXEH.js +2 -0
- package/dist/cdn/{EHQVLI6M.js → D7LRCAK4.js} +1 -1
- package/dist/cdn/DF5GVVDW.js +2 -0
- package/dist/cdn/DIKRXF22.js +2 -0
- package/dist/cdn/DKIYHE4A.js +2 -0
- package/dist/cdn/E3FQ4QWE.js +2 -0
- package/dist/cdn/FEBUVUR5.js +2 -0
- package/dist/cdn/{FJSGWELR.js → FFLIAQOL.js} +1 -1
- package/dist/cdn/FQOOFBPI.js +2 -0
- package/dist/cdn/FQYC25GN.js +2 -0
- package/dist/cdn/FSACXOM3.js +68 -0
- package/dist/cdn/FTKD53UG.js +209 -0
- package/dist/cdn/{PKSH2HSK.js → GEZH4D32.js} +1 -1
- package/dist/cdn/GTZ4LKEQ.js +2 -0
- package/dist/cdn/GYA7R4F6.js +2 -0
- package/dist/cdn/J537SBGI.js +2 -0
- package/dist/cdn/{33IZVRD6.js → JUDF3TYJ.js} +1 -1
- package/dist/cdn/KC4FTTKP.js +2 -0
- package/dist/cdn/{GUTV5BR3.js → KIKEE2KY.js} +1 -1
- package/dist/cdn/LCO2BWDK.js +2 -0
- package/dist/cdn/{ZJ7GT4N2.js → LNWWUPFK.js} +1 -1
- package/dist/cdn/LP4IB3PV.js +2 -0
- package/dist/cdn/LRHPL6B5.js +2 -0
- package/dist/cdn/LYOR4B2O.js +2 -0
- package/dist/cdn/MCX22B23.js +2 -0
- package/dist/cdn/{OEMNHYK6.js → MQISQ7P3.js} +1 -1
- package/dist/cdn/MY7AYBBR.js +2 -0
- package/dist/cdn/NDRCB2K3.js +2 -0
- package/dist/cdn/NICTB76A.js +2 -0
- package/dist/cdn/{G2CJ5PLI.js → NXFE6R2N.js} +1 -1
- package/dist/cdn/O5LFDRK2.js +2 -0
- package/dist/cdn/ODH2VAWC.js +2 -0
- package/dist/cdn/OJNU7H3F.js +2 -0
- package/dist/cdn/OKUI3HQ4.js +2 -0
- package/dist/cdn/{LLRHHAXZ.js → OQGUCK3G.js} +1 -1
- package/dist/cdn/{VQKLCN3V.js → OV5O7YP4.js} +1 -1
- package/dist/cdn/QBV7VDQK.js +2 -0
- package/dist/cdn/QCOJMMT3.js +2 -0
- package/dist/cdn/QDWOQBO3.js +3 -0
- package/dist/cdn/QKBGX2OY.js +2 -0
- package/dist/cdn/QKK6N2AN.js +2 -0
- package/dist/cdn/QNCMFQSA.js +2 -0
- package/dist/cdn/QSAZVVVL.js +2 -0
- package/dist/cdn/{2QCYQYNA.js → QUOPWSRC.js} +1 -1
- package/dist/cdn/QYMSY57N.js +2 -0
- package/dist/cdn/{XWLOXRJZ.js → R3QN5WF2.js} +1 -1
- package/dist/cdn/R74ZHFA6.js +2 -0
- package/dist/cdn/RUB2GDBE.js +2 -0
- package/dist/cdn/SG7Z5VLB.js +2 -0
- package/dist/cdn/T2HQNZ36.js +2 -0
- package/dist/cdn/T3RJKB2A.js +2 -0
- package/dist/cdn/TJYPEMON.js +2 -0
- package/dist/cdn/UGRFT75G.js +2 -0
- package/dist/cdn/UKHCSMA4.js +2 -0
- package/dist/cdn/UQKT5JQZ.js +2 -0
- package/dist/cdn/USGROSML.js +2 -0
- package/dist/cdn/V5YXPHYD.js +2 -0
- package/dist/cdn/WDMNL6PJ.js +2 -0
- package/dist/cdn/X4G32AIG.js +2 -0
- package/dist/cdn/XKC6SPS4.js +2 -0
- package/dist/cdn/XOFCMJBQ.js +150 -0
- package/dist/cdn/XROCYFKH.js +2 -0
- package/dist/cdn/XU3QHJD7.js +2 -0
- package/dist/cdn/{ACCEI7S4.js → XUPYBBRI.js} +1 -1
- package/dist/cdn/Y3YIMI2Z.js +463 -0
- package/dist/cdn/YG5VQATB.js +2 -0
- package/dist/cdn/YUQFNMEZ.js +2 -0
- package/dist/cdn/ZAIRH5DL.js +2 -0
- package/dist/cdn/ZSILF72K.js +2 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-account-switcher/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-add-gps-metadata/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/portal-ai-assistant-interrupt/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/portal-browser/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-browser/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-delete-items/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-delete-items-review/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-entity-picker/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-group-badges/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/portal-group-browser/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-group-browser/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-group-card/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-item-thumbnail/administrativereport.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/analysismodel.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/apacheparquet.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/apikey.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/applicationtheme.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/bigdataanalytic.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/classificationschema.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/classifierdefinition.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/dashboards.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/dataengineeringmodel.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/dataengineeringworkbook.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/datapipeline.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/deeplearningpackage.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/deeplearningstudioproject.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/default.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/dictionarystyle.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/discussion.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/earthconfiguration.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/excaliburimageryproject.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/experiencebuilderwidget.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/experiencebuilderwidgetpackage.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/feed.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/gaussiansplatlayer.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/geodataservice.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/hubevent.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/hubinitiative.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/hubinitiativetemplate.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/hubpage.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/hubproject.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/hubsite.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/imagerylayer.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/indoor-positioning-data-service.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/insightsscript.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/insightstheme.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/insightsworkbookpackage.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/investigation.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/kernelgatewayconnection.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/knowledgegraph.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/knowledgegraphconfiguration.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/knowledgegraphlayer.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/knowledgestudio.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/linkchart.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/locationtrackingservice.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/mapshowcase.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/mediaservice.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/mission.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/missionreport.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/missiontemplate.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/mobileapp.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/mobilescenepackage.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/notebook.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/notebookcodesnippets.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/notebookwebtool.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/opsdashboard.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/orthomappingproject.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/orthomappingtemplate.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/pro-presentation.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/propackage.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/proreport.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/proreporttemplate.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/quickcaptureproject.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/rasterfunctiontemplate.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/realitymappingproject.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/realtimeanalytic.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/scene.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/serviceconnection.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/solution.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/spectrallibrary.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/storymap.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/storymapcollection.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/storymaptheme.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/style.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/suitabilitymodel.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/survey123addin.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/tiledimagerylayer.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/urbanmodel.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/urbanproject.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/webapp.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/webexperience.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/webexperiencetemplate.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/webtool.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/workflow.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/workforceproject.avif +0 -0
- package/dist/cdn/assets/portal-item-thumbnail/xrexperience.avif +0 -0
- package/dist/cdn/assets/portal-item-type/icons/360vr16.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/360vr32.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/insightstheme16.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/insightstheme32.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/knowledgegraphconfiguration16.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/knowledgegraphconfiguration32.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/knowledgegraphlayer16.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/knowledgegraphlayer32.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/missiontemplate16.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/missiontemplate32.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/propresentation16.svg +0 -0
- package/dist/cdn/assets/portal-item-type/icons/propresentation32.svg +0 -0
- package/dist/cdn/assets/portal-item-type/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/portal-item-type/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-api-for-python-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-connectors-for-power-automate-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-drone2map-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-earth-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-enterprise-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-excalibur-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-excalibur-gray-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-explorer-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-for-autodesk-forma-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-living-atlas-of-the-world-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-logo-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-monitor-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-monitor-white-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-navigator-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-online-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-ortho-maker-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-pro-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-survey123-connect-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-survey123-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-web-appbuilder-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/arcgis-web-editor-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/calcite-design-system-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/esri-offline-documentation-center--glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/sceneviewer-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/product-logos/xr-viewer-glyph-32.svg +0 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-navigation/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-related-items-list-item/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-review-related-items/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-sublayer-type/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/portal-user-popup/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/index.js +1 -1
- package/dist/cdn/main.css +1 -1
- package/dist/chunks/functional.js +9 -0
- package/dist/chunks/groups.js +61 -8
- package/dist/chunks/groups2.js +8 -61
- package/dist/chunks/item.js +17 -13
- package/dist/chunks/item2.js +57 -53
- package/dist/chunks/{thumbnail.js → itemThumbnail.js} +29 -25
- package/dist/chunks/loadClassificationData.js +1 -1
- package/dist/chunks/portal-account-switcher.js +3 -3
- package/dist/chunks/portal-browser.js +36 -36
- package/dist/chunks/portal-delete-items-review.js +58 -0
- package/dist/chunks/portal-related-items-list-item.js +6 -0
- package/dist/chunks/query.js +3 -3
- package/dist/chunks/store.js +14 -10
- package/dist/chunks/string.js +15 -9
- package/dist/chunks/utils.js +28 -83
- package/dist/chunks/utils2.js +75 -651
- package/dist/chunks/utils3.js +664 -0
- package/dist/components/arcgis-portal-account-switcher/customElement.d.ts +39 -2
- package/dist/components/arcgis-portal-account-switcher/customElement.js +188 -143
- package/dist/components/arcgis-portal-account-switcher/index.js +2 -0
- package/dist/components/arcgis-portal-account-switcher/types.d.ts +20 -0
- package/dist/components/arcgis-portal-account-switcher-accounts/customElement.d.ts +28 -2
- package/dist/components/arcgis-portal-account-switcher-accounts/customElement.js +6 -6
- package/dist/components/arcgis-portal-account-switcher-list/customElement.d.ts +30 -3
- package/dist/components/arcgis-portal-account-switcher-list/customElement.js +58 -30
- package/dist/components/arcgis-portal-account-switcher-signout/customElement.d.ts +146 -0
- package/dist/components/arcgis-portal-account-switcher-signout/customElement.js +29 -0
- package/dist/components/arcgis-portal-account-switcher-signout/index.d.ts +1 -0
- package/dist/components/arcgis-portal-account-switcher-signout/index.js +6 -0
- package/dist/components/arcgis-portal-add-gps-metadata/customElement.d.ts +8 -5
- package/dist/components/arcgis-portal-add-gps-metadata/customElement.js +240 -152
- package/dist/components/arcgis-portal-add-gps-metadata/index.js +3 -4
- package/dist/components/arcgis-portal-ai-assistant/agents/portalRouteKeys.d.ts +7 -1
- package/dist/components/arcgis-portal-ai-assistant/customElement.js +1255 -981
- package/dist/components/arcgis-portal-ai-assistant/data/capability-registries/types.d.ts +1 -1
- package/dist/components/arcgis-portal-browser/customElement.d.ts +0 -5
- package/dist/components/arcgis-portal-browser/utils/store.d.ts +1 -1
- package/dist/components/arcgis-portal-browser-top-bar/customElement.js +1 -1
- package/dist/components/arcgis-portal-classification-config/customElement.js +69 -69
- package/dist/components/arcgis-portal-delete-items/customElement.d.ts +214 -0
- package/dist/components/arcgis-portal-delete-items/customElement.js +586 -0
- package/dist/components/arcgis-portal-delete-items/index.d.ts +1 -0
- package/dist/components/arcgis-portal-delete-items/index.js +17 -0
- package/dist/components/arcgis-portal-delete-items/services.d.ts +7 -0
- package/dist/components/arcgis-portal-delete-items/types.d.ts +19 -0
- package/dist/components/arcgis-portal-delete-items-review/customElement.d.ts +40 -0
- package/dist/components/arcgis-portal-delete-items-review/customElement.js +12 -0
- package/dist/components/arcgis-portal-delete-items-review/index.d.ts +1 -0
- package/dist/components/arcgis-portal-delete-items-review/index.js +3 -0
- package/dist/components/arcgis-portal-entity-picker/customElement.d.ts +87 -0
- package/dist/components/arcgis-portal-entity-picker/customElement.js +247 -0
- package/dist/components/arcgis-portal-entity-picker/index.d.ts +1 -0
- package/dist/components/arcgis-portal-entity-picker/index.js +11 -0
- package/dist/components/arcgis-portal-extent-picker/customElement.js +285 -243
- package/dist/components/arcgis-portal-extent-picker/index.js +3 -0
- package/dist/components/arcgis-portal-extent-picker-coord-field/customElement.js +8 -8
- package/dist/components/arcgis-portal-field-delete/customElement.js +215 -125
- package/dist/components/arcgis-portal-group-badges/customElement.js +9 -9
- package/dist/components/arcgis-portal-group-browser/customElement.d.ts +15 -4
- package/dist/components/arcgis-portal-group-browser/customElement.js +240 -197
- package/dist/components/arcgis-portal-group-browser/types.d.ts +2 -21
- package/dist/components/arcgis-portal-group-browser-card/customElement.d.ts +30 -0
- package/dist/components/arcgis-portal-group-browser-card/customElement.js +41 -0
- package/dist/components/arcgis-portal-group-browser-card/index.d.ts +1 -0
- package/dist/components/arcgis-portal-group-browser-card/index.js +2 -0
- package/dist/components/arcgis-portal-group-browser-preview/customElement.d.ts +4 -2
- package/dist/components/arcgis-portal-group-browser-preview/customElement.js +16 -16
- package/dist/components/arcgis-portal-group-browser-preview-card/customElement.js +4 -4
- package/dist/components/arcgis-portal-group-card/customElement.d.ts +4 -8
- package/dist/components/arcgis-portal-group-card/customElement.js +100 -66
- package/dist/components/arcgis-portal-group-card/types.d.ts +8 -0
- package/dist/components/arcgis-portal-group-picker/customElement.d.ts +20 -0
- package/dist/components/arcgis-portal-group-picker/customElement.js +15 -0
- package/dist/components/arcgis-portal-group-picker/index.d.ts +1 -0
- package/dist/components/arcgis-portal-group-picker/index.js +2 -0
- package/dist/components/arcgis-portal-item-actions/customElement.js +1 -1
- package/dist/components/arcgis-portal-item-card/customElement.js +45 -52
- package/dist/components/arcgis-portal-item-card/index.js +1 -0
- package/dist/components/arcgis-portal-item-favorite/customElement.js +1 -1
- package/dist/components/arcgis-portal-item-picker/customElement.d.ts +20 -0
- package/dist/components/arcgis-portal-item-picker/customElement.js +15 -0
- package/dist/components/arcgis-portal-item-picker/index.d.ts +1 -0
- package/dist/components/arcgis-portal-item-picker/index.js +2 -0
- package/dist/components/arcgis-portal-item-thumbnail/customElement.d.ts +43 -0
- package/dist/components/arcgis-portal-item-thumbnail/customElement.js +309 -0
- package/dist/components/arcgis-portal-item-thumbnail/index.d.ts +1 -0
- package/dist/components/arcgis-portal-item-thumbnail/index.js +1 -0
- package/dist/components/arcgis-portal-item-type/customElement.js +1 -1
- package/dist/components/arcgis-portal-mentionable-text-area/customElement.js +75 -101
- package/dist/components/arcgis-portal-navigation/customElement.js +73 -66
- package/dist/components/arcgis-portal-navigation/index.js +4 -4
- package/dist/components/arcgis-portal-replacement-item-redirect/customElement.js +1 -1
- package/dist/components/arcgis-portal-review-related-items/customElement.d.ts +27 -0
- package/dist/components/arcgis-portal-review-related-items/customElement.js +30 -0
- package/dist/components/arcgis-portal-review-related-items/index.d.ts +1 -0
- package/dist/components/arcgis-portal-review-related-items/index.js +2 -0
- package/dist/components/arcgis-portal-sublayer-type/customElement.d.ts +76 -0
- package/dist/components/arcgis-portal-sublayer-type/customElement.js +121 -0
- package/dist/components/arcgis-portal-sublayer-type/index.d.ts +1 -0
- package/dist/components/arcgis-portal-sublayer-type/index.js +2 -0
- package/dist/components/arcgis-portal-sublayer-type/utils.d.ts +30 -0
- package/dist/components/arcgis-portal-user-picker/customElement.d.ts +20 -0
- package/dist/components/arcgis-portal-user-picker/customElement.js +15 -0
- package/dist/components/arcgis-portal-user-picker/index.d.ts +1 -0
- package/dist/components/arcgis-portal-user-picker/index.js +2 -0
- package/dist/components/arcgis-portal-user-popup/customElement.js +38 -37
- package/dist/components/portal-group-browser-filters/customElement.js +74 -71
- package/dist/components/portal-related-items-list-item/customElement.js +20 -0
- package/dist/components/portal-related-items-list-item/index.js +5 -0
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/vscode.html-custom-data.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/index.d.ts +92 -0
- package/dist/loader.js +18 -7
- package/dist/services/thumbnail/ags.d.ts +5 -0
- package/dist/types/geometry.d.ts +8 -0
- package/dist/types/item.d.ts +6 -6
- package/dist/types/lumina.d.ts +74 -5
- package/dist/types/portalEntityPicker.d.ts +18 -0
- package/dist/types/preact.d.ts +85 -5
- package/dist/types/react.d.ts +96 -5
- package/dist/types/services.d.ts +9 -0
- package/dist/types/stencil.d.ts +74 -5
- package/package.json +12 -10
- package/dist/cdn/27WR6TKM.js +0 -66
- package/dist/cdn/2LROLM5D.js +0 -2
- package/dist/cdn/2M7ICZ55.js +0 -2
- package/dist/cdn/2RPQKCIL.js +0 -2
- package/dist/cdn/2SUHE7I3.js +0 -2
- package/dist/cdn/2Z5BVWD4.js +0 -2
- package/dist/cdn/3OBIA66A.js +0 -69
- package/dist/cdn/4PPXBKIJ.js +0 -4
- package/dist/cdn/4QA4AYHJ.js +0 -3
- package/dist/cdn/4R5TLPGN.js +0 -2
- package/dist/cdn/63THOLAY.js +0 -49
- package/dist/cdn/6NHNSWIQ.js +0 -2
- package/dist/cdn/A6YWV3MB.js +0 -2
- package/dist/cdn/AMBLICID.js +0 -2
- package/dist/cdn/AVNFYSR4.js +0 -2
- package/dist/cdn/BA3HGV4Q.js +0 -2
- package/dist/cdn/BCYZTGDC.js +0 -2
- package/dist/cdn/BFH3HBUT.js +0 -2
- package/dist/cdn/BIJ755UR.js +0 -2
- package/dist/cdn/BXDQIHOS.js +0 -2
- package/dist/cdn/BY6ZY3C4.js +0 -2
- package/dist/cdn/C7ZFXRPS.js +0 -122
- package/dist/cdn/DFTUMKSN.js +0 -3
- package/dist/cdn/EFY6BRUW.js +0 -2
- package/dist/cdn/FD7DZ3IE.js +0 -2
- package/dist/cdn/H6QY5OJL.js +0 -2
- package/dist/cdn/HFP5F435.js +0 -2
- package/dist/cdn/HLQD6W3F.js +0 -2
- package/dist/cdn/IGZ7A7S3.js +0 -2
- package/dist/cdn/IJ3CLFAU.js +0 -22
- package/dist/cdn/INPDIPW5.js +0 -2
- package/dist/cdn/JCYCRSPL.js +0 -451
- package/dist/cdn/KCJDG4OE.js +0 -2
- package/dist/cdn/KNRJ3WXR.js +0 -98
- package/dist/cdn/KQCTBRGJ.js +0 -2
- package/dist/cdn/L6KBBJEC.js +0 -36
- package/dist/cdn/LDTVM22U.js +0 -2
- package/dist/cdn/LDVTUC6I.js +0 -2
- package/dist/cdn/M6EVMQYT.js +0 -2
- package/dist/cdn/MA5HWGFW.js +0 -2
- package/dist/cdn/NAAAOC2Z.js +0 -2
- package/dist/cdn/OT4PZJNB.js +0 -136
- package/dist/cdn/PAFEMDUL.js +0 -2
- package/dist/cdn/PH4LUNY2.js +0 -2
- package/dist/cdn/PLVQ3AZ4.js +0 -2
- package/dist/cdn/QE4CNVDQ.js +0 -34
- package/dist/cdn/QKCV7CY2.js +0 -77
- package/dist/cdn/QNFTJR2M.js +0 -2
- package/dist/cdn/QVLQEBPD.js +0 -2
- package/dist/cdn/SLTFLCVR.js +0 -99
- package/dist/cdn/T3LU5V74.js +0 -2
- package/dist/cdn/TFCRFHRE.js +0 -2
- package/dist/cdn/TKCE4WYE.js +0 -3
- package/dist/cdn/V4EYW3O6.js +0 -56
- package/dist/cdn/VENYHN3O.js +0 -2
- package/dist/cdn/VHNV45FQ.js +0 -2
- package/dist/cdn/VKYMORWN.js +0 -2
- package/dist/cdn/VTIZ6R6F.js +0 -664
- package/dist/cdn/VW7DSKPH.js +0 -109
- package/dist/cdn/W2SYL7IJ.js +0 -71
- package/dist/cdn/W4FGRGLV.js +0 -146
- package/dist/cdn/W4SAWMXS.js +0 -31
- package/dist/cdn/WAEULETE.js +0 -2
- package/dist/cdn/WBZLQZYR.js +0 -134
- package/dist/cdn/WYXW3ETE.js +0 -2
- package/dist/cdn/XEH2E6NR.js +0 -2
- package/dist/cdn/YFT47SCG.js +0 -2
- package/dist/cdn/YQHVXBGD.js +0 -2
- package/dist/cdn/ZI3JA3SL.js +0 -2
- package/dist/cdn/ZWDOT3HF.js +0 -2
- /package/dist/cdn/{OHEUIODH.js → 55FL7WQV.js} +0 -0
- /package/dist/cdn/{NQQLTGIK.js → UTA2UBBS.js} +0 -0
- /package/dist/cdn/{3YCG5UCH.js → UZCHLKLO.js} +0 -0
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import c from"./55FL7WQV.js";import b from"./T3RJKB2A.js";import"./QDWOQBO3.js";import{a as tl,c as rl,e as nl,f as sl,g as il}from"./UZCHLKLO.js";import{$ as Uc,A as Gt,B as jn,C as ze,D as vc,E as Sc,F as yi,G as Cc,H as kc,I as Ec,J as xc,K as Ic,L as Tc,M as Ac,N as Nc,O as Mc,P as _i,Q as Pc,R as Oc,S as Rc,T as Dc,U as $c,V as jc,W as Ln,X as Lc,Y as Fc,Z as gr,_ as Vc,a as Ja,aa as wi,b as Ya,ba as Gc,c as Za,ca as We,d as uc,da as Bc,e as Hr,ea as Hc,f as pc,fa as bi,g as hc,ga as qc,h as dc,ha as zc,i as Dn,ia as Wc,j as mc,ja as Kc,k as fc,l as gc,m as mr,n as mi,o as ge,p as qr,q as yc,r as fr,s as _c,t as fi,u as wc,v as ut,w as bc,x as gi,y as K,z as $n}from"./FTKD53UG.js";import{$a as Ee,Ba as qe,Ia as ec,J as ee,La as kt,Na as tc,Oa as rc,P as ci,Pa as hr,Qa as nc,R as Pe,S as li,Sa as sc,T as Qa,Ta as ic,Ua as oc,V as Ut,Va as ac,Wa as dr,Xa as di,Y as ui,Ya as Se,Za as cc,a as N,ab as lc,b as Fa,bb as lt,c as Gr,ca as pi,d as Br,e as Va,fa as te,g as ai,h as Ua,i as Ga,ia as ur,j as Ba,ja as hi,k as Ha,l as qa,m as za,n as Me,o as Wa,q as Ka,r as Xa,ra as Ct,s as On,va as pr,wa as Rn}from"./XOFCMJBQ.js";import"./25XJ66JO.js";import"./5YDITHQA.js";import a from"./F3ODJVJC.js";import"./VMQIDO4Z.js";import"./QS3GXAIH.js";import{a as Ur,b as ja,d as Pn}from"./2GBRZSEC.js";import{a as La}from"./XUPYBBRI.js";import"./C5U7YKVI.js";import"./6BMWSGLA.js";import{J as Fr,K as Vr,L as Da,R as $a,h as Pa,j as He,n as Oa,w as Ra}from"./CWSEBETE.js";import{a as Jc}from"./YUQFNMEZ.js";import"./R74ZHFA6.js";import"./UZLQALHY.js";export default $arcgis.t(([Nh,Mh,xg,,{a:Zc,b:el},{a:Yc,b:Xc,c:Qc}])=>{function ol(e,t){if(e!=null){if(typeof e!="number"||Number.isNaN(e)||e<=0)throw new Error(`${t} must be greater than 0`);return e}}function Bt(e){if(e==null)return;let t=typeof e=="number"?{runTimeout:e}:e,r=t.refreshOn??"auto";if(r!=="auto"&&r!=="heartbeat")throw new Error('refreshOn must be "auto" or "heartbeat"');let n=ol(t.runTimeout,"runTimeout"),s=ol(t.idleTimeout,"idleTimeout");if(!(n===void 0&&s===void 0))return{runTimeout:n,idleTimeout:s,refreshOn:r}}var U="__start__",L="__end__",Je="__input__";var Et="__error__",Wr="__error_source_node__",Fn="__pregel_ns_writes";function al(){let e=typeof process<"u"?process.env?.LANGGRAPH_DELTA_MAX_SUPERSTEPS_SINCE_SNAPSHOT:void 0;if(e!==void 0&&e!==""){let t=Number.parseInt(e,10);if(Number.isFinite(t)&&t>0)return t}return 5e3}var ae="__pregel_send",pt="__pregel_call",ue="__pregel_read",xe="__pregel_checkpointer",qt="__pregel_resuming",yr="__pregel_task_id",Kr="__pregel_stream",_d="__pregel_resume_value",zt="__pregel_resume_map",_e="__pregel_scratchpad",Wt="__pregel_previous",wd="__pregel_durability",xt="checkpoint_id",Ce="checkpoint_ns",cl="__pregel_node_finished",Jr="__pregel_node_error",ce="checkpoint_map",Vn="__pregel_replay_state",ll="__pregel_abort_signals",H="__interrupt__",pe="__resume__",Yr="__no_writes__",It="__return__",Tt="__previous__",X="langsmith:hidden";var Si="__self__",Ye="__pregel_tasks",he="__pregel_push",Un="__pregel_pull",de="00000000-0000-0000-0000-000000000000",ul=[X,Je,H,pe,Et,Wr,Yr,ae,ue,xe,wd,Kr,qt,yr,pt,_d,_e,Wt,ce,Ce,xt,Vn],vi=Symbol.for("langgraph.command"),pl=class{[vi];constructor(e){this[vi]=e}};function Gn(e){let t=e;return t!=null&&typeof t.node=="string"&&t.args!==void 0}var Ht=class{lg_name="Send";node;args;timeout;constructor(e,t,r){this.node=e,this.args=zr(t),this.timeout=Bt(r?.timeout)}toJSON(){return{lg_name:this.lg_name,node:this.node,args:this.args,timeout:this.timeout}}};function re(e){return e instanceof Ht}var Ke="__overwrite__",bd=class{lg_name="Overwrite";[Ke];constructor(e){this[Ke]=e}get value(){return this[Ke]}toJSON(){return{[Ke]:this[Ke]}}static isInstance(e){return!e||typeof e!="object"?!1:"__overwrite__"in e||"lg_name"in e&&e.lg_name==="Overwrite"}};function Oe(e){if(typeof e=="object"&&e!==null){if("__overwrite__"in e)return[!0,e[Ke]];let t=e;if(t.type==="__overwrite__"&&"value"in t)return[!0,t.value]}return[!1,void 0]}function Kt(e){return Oe(e)[0]}function Jt(e){return!e||typeof e!="object"||!("__interrupt__"in e)?!1:Array.isArray(e[H])}var ye=class extends pl{lg_name="Command";lc_direct_tool_output=!0;graph;update;resume;goto=[];static PARENT="__parent__";constructor(e){super(e),this.resume=e.resume,this.graph=e.graph,this.update=e.update,e.goto&&(this.goto=Array.isArray(e.goto)?zr(e.goto):[zr(e.goto)])}_updateAsTuples(){return this.update&&typeof this.update=="object"&&!Array.isArray(this.update)?Object.entries(this.update):Array.isArray(this.update)&&this.update.every(e=>Array.isArray(e)&&e.length===2&&typeof e[0]=="string")?this.update:[["__root__",this.update]]}toJSON(){let e;return typeof this.goto=="string"?e=this.goto:re(this.goto)?e=this.goto.toJSON():e=this.goto?.map(t=>typeof t=="string"?t:t.toJSON()),{lg_name:this.lg_name,update:this.update,resume:this.resume,goto:e}}};function ie(e){return typeof e!="object"||e==null?!1:"lg_name"in e&&e.lg_name==="Command"}function vd(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function zr(e,t=new Map){if(e!=null&&typeof e=="object"){if(t.has(e))return t.get(e);let r;if(Array.isArray(e))r=[],t.set(e,r),e.forEach((n,s)=>{r[s]=zr(n,t)});else if(e instanceof ye||e instanceof Ht||!vd(e))r=e,t.set(e,r);else if(ie(e))r=new ye(e),t.set(e,r);else if(Gn(e))r=new Ht(e.node,e.args,e.timeout!==void 0?{timeout:e.timeout}:void 0),t.set(e,r);else if("lc_serializable"in e&&e.lc_serializable)r=e,t.set(e,r);else{r={},t.set(e,r);for(let[n,s]of Object.entries(e))r[n]=zr(s,t)}return r}return e}var Xe=class extends Error{lc_error_code;constructor(e,t){let r=e??"";t?.lc_error_code&&(r=`${r}
|
|
3
|
+
|
|
4
|
+
Troubleshooting URL: https://docs.langchain.com/oss/javascript/langgraph/${t.lc_error_code}/
|
|
5
|
+
`),super(r),this.lc_error_code=t?.lc_error_code}},Bn=class extends Xe{get is_bubble_up(){return!0}},Ci=class extends Xe{constructor(e,t){super(e,t),this.name="GraphRecursionError"}static get unminifiable_name(){return"GraphRecursionError"}},Yt=class extends Xe{constructor(e,t){super(e,t),this.name="GraphValueError"}static get unminifiable_name(){return"GraphValueError"}},Hn=class extends Bn{reason;constructor(e="shutdown",t){super(`Graph drained: ${e}`,t),this.name="GraphDrained",this.reason=e}static get unminifiable_name(){return"GraphDrained"}};function qn(e){return e!==void 0&&e.name===Hn.unminifiable_name}var ht=class extends Bn{interrupts;constructor(e,t){super(JSON.stringify(e,null,2),t),this.name="GraphInterrupt",this.interrupts=e??[]}static get unminifiable_name(){return"GraphInterrupt"}},At=class extends ht{constructor(e,t){super([{value:e}],t),this.name="NodeInterrupt"}static get unminifiable_name(){return"NodeInterrupt"}},ki=class{node;error;constructor(e,t){this.node=e,this.error=t}static get unminifiable_name(){return"NodeError"}};var zn=class extends Bn{command;constructor(e){super(),this.name="ParentCommand",this.command=e}static get unminifiable_name(){return"ParentCommand"}};function Ei(e){return e!==void 0&&e.name===zn.unminifiable_name}function Nt(e){return e!==void 0&&e.is_bubble_up===!0}function dt(e){return e!==void 0&&[ht.unminifiable_name,At.unminifiable_name].includes(e.name)}var xi=class extends Xe{node;kind;timeout;elapsed;runTimeout;idleTimeout;constructor(e,t){let{node:r,elapsed:n,kind:s,runTimeout:i,idleTimeout:o}=e,a,c;if(s==="idle"){if(o===void 0)throw new Error("idleTimeout is required when kind='idle'");c=o,a=`Node "${r}" exceeded its idle timeout of ${o}ms without making progress (elapsed: ${n}ms).`}else{if(i===void 0)throw new Error("runTimeout is required when kind='run'");c=i,a=`Node "${r}" exceeded its run timeout of ${i}ms (elapsed: ${n}ms).`}super(a,t),this.name="NodeTimeoutError",this.node=r,this.kind=s,this.timeout=c,this.elapsed=n,this.runTimeout=i,this.idleTimeout=o}static get unminifiable_name(){return"NodeTimeoutError"}};var Wn=class extends Xe{constructor(e,t){super(e,t),this.name="EmptyInputError"}static get unminifiable_name(){return"EmptyInputError"}},F=class extends Xe{constructor(e,t){let r=Error.stackTraceLimit;Error.stackTraceLimit=0,super(e,t),Error.stackTraceLimit=r,this.name="EmptyChannelError"}static get unminifiable_name(){return"EmptyChannelError"}},R=class extends Xe{constructor(e,t){super(e,t),this.name="InvalidUpdateError"}static get unminifiable_name(){return"InvalidUpdateError"}};var Ii=class extends Xe{constructor(e,t){super(e,t),this.name="UnreachableNodeError"}static get unminifiable_name(){return"UnreachableNodeError"}};var Xr=class extends Xe{constructor(e,t){super(e,t),this.name="StateGraphInputError",this.message="Invalid StateGraph input. Make sure to pass a valid StateDefinition, Annotation.Root, or Zod schema."}static get unminifiable_name(){return"StateGraphInputError"}};var Ti=0,Qr=0;function Zr(e){let t=Date.now();return t<=Ti?(Qr+=1,Qr>=1e4&&(Qr=0,t=Ti+1)):Qr=0,Ti=t,Va({clockseq:e,msecs:t,nsecs:Qr})}function Qe(e,t){let r=t.replace(/-/g,"").match(/.{2}/g).map(n=>parseInt(n,16));return Br(e,new Uint8Array(r))}var Ai="__error__",Xt="__scheduled__",Ni="__interrupt__",Mi="__resume__",_r=class{lg_name="DeltaSnapshot";value;constructor(e){this.value=e}};function Pi(e){return e!=null&&typeof e=="object"&&e.lg_name==="DeltaSnapshot"}var hl="[...]",Sd="[Circular]",Kn=[],wr=[];function Cd(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function dl(e,t,r,n){typeof n>"u"&&(n=Cd()),Ri(e,"",0,[],void 0,0,n);var s;try{wr.length===0?s=JSON.stringify(e,t,r):s=JSON.stringify(e,kd(t),r)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;Kn.length!==0;){var i=Kn.pop();i.length===4?Object.defineProperty(i[0],i[1],i[3]):i[0][i[1]]=i[2]}}return s}function Oi(e,t,r,n){var s=Object.getOwnPropertyDescriptor(n,r);s.get!==void 0?s.configurable?(Object.defineProperty(n,r,{value:e}),Kn.push([n,r,t,s])):wr.push([t,r,e]):(n[r]=e,Kn.push([n,r,t]))}function Ri(e,t,r,n,s,i,o){i+=1;var a;if(typeof e=="object"&&e!==null){for(a=0;a<n.length;a++)if(n[a]===e){Oi(Sd,e,t,s);return}if(typeof o.depthLimit<"u"&&i>o.depthLimit){Oi(hl,e,t,s);return}if(typeof o.edgesLimit<"u"&&r+1>o.edgesLimit){Oi(hl,e,t,s);return}if(n.push(e),Array.isArray(e))for(a=0;a<e.length;a++)Ri(e[a],a,a,n,e,i,o);else{var c=Object.keys(e);for(a=0;a<c.length;a++){var l=c[a];Ri(e[l],l,a,n,e,i,o)}}n.pop()}}function kd(e){return e=typeof e<"u"?e:function(t,r){return r},function(t,r){if(wr.length>0)for(var n=0;n<wr.length;n++){var s=wr[n];if(s[1]===t&&s[0]===r){r=s[2],wr.splice(n,1);break}}return e.call(this,t,r)}}var ml=[];var fl=N({});var gl=N({});var yl=N({BaseChatMessageHistory:()=>Di,BaseListChatMessageHistory:()=>Jn,InMemoryChatMessageHistory:()=>Ed}),Di=class extends Me{async addMessages(e){for(let t of e)await this.addMessage(t)}},Jn=class extends Me{addUserMessage(e){return this.addMessage(new Ct(e))}addAIMessage(e){return this.addMessage(new te(e))}async addMessages(e){for(let t of e)await this.addMessage(t)}clear(){throw new Error("Not implemented.")}},Ed=class extends Jn{lc_namespace=["langchain","stores","message","in_memory"];messages=[];constructor(e){super(...arguments),this.messages=e??[]}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async clear(){this.messages=[]}};var ke=class{pageContent;metadata;id;constructor(e){this.pageContent=e.pageContent!==void 0?e.pageContent.toString():"",this.metadata=e.metadata??{},this.id=e.id}};var $i=class extends K{lc_namespace=["langchain_core","documents","transformers"];invoke(e,t){return this.transformDocuments(e)}},_l=class extends $i{async transformDocuments(e){let t=[];for(let r of e){let n=await this._transformDocument(r);t.push(n)}return t}};var wl=N({BaseDocumentTransformer:()=>$i,Document:()=>ke,MappingDocumentTransformer:()=>_l});var bl=N({BaseDocumentLoader:()=>ji}),ji=class{};var vl=N({LangSmithLoader:()=>xd}),xd=class extends ji{datasetId;datasetName;exampleIds;asOf;splits;inlineS3Urls;offset;limit;metadata;filter;contentKey;formatContent;client;constructor(e){if(super(),e.client&&e.clientConfig)throw new Error("client and clientConfig cannot both be provided.");this.client=e.client??new tc(e?.clientConfig),this.contentKey=e.contentKey?e.contentKey.split("."):[],this.formatContent=e.formatContent??Id,this.datasetId=e.datasetId,this.datasetName=e.datasetName,this.exampleIds=e.exampleIds,this.asOf=e.asOf,this.splits=e.splits,this.inlineS3Urls=e.inlineS3Urls,this.offset=e.offset,this.limit=e.limit,this.metadata=e.metadata,this.filter=e.filter}async load(){let e=[];for await(let t of this.client.listExamples({datasetId:this.datasetId,datasetName:this.datasetName,exampleIds:this.exampleIds,asOf:this.asOf,splits:this.splits,inlineS3Urls:this.inlineS3Urls,offset:this.offset,limit:this.limit,metadata:this.metadata,filter:this.filter})){let r=t.inputs;for(let i of this.contentKey)r=r[i];let n=this.formatContent(r),s=t;["created_at","modified_at"].forEach(i=>{i in s&&typeof s[i]=="object"&&(s[i]=s[i].toString())}),e.push({pageContent:n,metadata:s})}return e}};function Id(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var br=class extends Me{lc_namespace=["langchain_core","example_selectors","base"]};var Li=class{async getPromptAsync(e,t){return this.getPrompt(e).partial(t?.partialVariables??{})}},Sl=class extends Li{defaultPrompt;conditionals;constructor(e,t=[]){super(),this.defaultPrompt=e,this.conditionals=t}getPrompt(e){for(let[t,r]of this.conditionals)if(t(e))return r;return this.defaultPrompt}};function Cl(e){return e._modelType()==="base_llm"}function kl(e){return e._modelType()==="base_chat_model"}function El(e){return e.split(/\n| /).length}var xl=class Il extends br{examples=[];examplePrompt;getTextLength=El;maxLength=2048;exampleTextLengths=[];constructor(t){super(t),this.examplePrompt=t.examplePrompt,this.maxLength=t.maxLength??2048,this.getTextLength=t.getTextLength??El}async addExample(t){this.examples.push(t);let r=await this.examplePrompt.format(t);this.exampleTextLengths.push(this.getTextLength(r))}async calculateExampleTextLengths(t,r){if(t.length>0)return t;let{examples:n,examplePrompt:s}=r;return(await Promise.all(n.map(i=>s.format(i)))).map(i=>this.getTextLength(i))}async selectExamples(t){let r=Object.values(t).join(" "),n=this.maxLength-this.getTextLength(r),s=0,i=[];for(;n>0&&s<this.examples.length;){let o=n-this.exampleTextLengths[s];if(o<0)break;i.push(this.examples[s]),n=o,s+=1}return i}static async fromExamples(t,r){let n=new Il(r);return await Promise.all(t.map(s=>n.addExample(s))),n}};function Fi(e){return Object.keys(e).sort().map(t=>e[t])}var Tl=class Al extends br{vectorStoreRetriever;exampleKeys;inputKeys;constructor(t){if(super(t),this.exampleKeys=t.exampleKeys,this.inputKeys=t.inputKeys,t.vectorStore!==void 0)this.vectorStoreRetriever=t.vectorStore.asRetriever({k:t.k??4,filter:t.filter});else if(t.vectorStoreRetriever)this.vectorStoreRetriever=t.vectorStoreRetriever;else throw new Error('You must specify one of "vectorStore" and "vectorStoreRetriever".')}async addExample(t){let r=Fi((this.inputKeys??Object.keys(t)).reduce((n,s)=>({...n,[s]:t[s]}),{})).join(" ");await this.vectorStoreRetriever.addDocuments([new ke({pageContent:r,metadata:t})])}async selectExamples(t){let r=Fi((this.inputKeys??Object.keys(t)).reduce((s,i)=>({...s,[i]:t[i]}),{})).join(" "),n=(await this.vectorStoreRetriever.invoke(r)).map(s=>s.metadata);return this.exampleKeys?n.map(s=>this.exampleKeys.reduce((i,o)=>({...i,[o]:s[o]}),{})):n}static async fromExamples(t,r,n,s={}){let i=s.inputKeys??null,o=t.map(c=>Fi(i?i.reduce((l,u)=>({...l,[u]:c[u]}),{}):c).join(" ")),a=await n.fromTexts(o,t,r,s);return new Al({vectorStore:a,k:s.k??4,exampleKeys:s.exampleKeys,inputKeys:s.inputKeys})}};var Nl=N({BaseExampleSelector:()=>br,BasePromptSelector:()=>Li,ConditionalPromptSelector:()=>Sl,LengthBasedExampleSelector:()=>xl,SemanticSimilarityExampleSelector:()=>Tl,isChatModel:()=>kl,isLLM:()=>Cl});var en="10f90ea3-90a4-4962-bf75-83a0f3c1c62a",Ml=class extends Me{lc_namespace=["langchain","recordmanagers"]};var Vi=class{uid;hash_;contentHash;metadataHash;pageContent;metadata;keyEncoder=Ja;constructor(e){this.uid=e.uid,this.pageContent=e.pageContent,this.metadata=e.metadata}makeDefaultKeyEncoder(e){this.keyEncoder=e}calculateHashes(){let e=["hash_","content_hash","metadata_hash"];for(let r of e)if(r in this.metadata)throw new Error(`Metadata cannot contain key ${r} as it is reserved for internal use. Restricted keys: [${e.join(", ")}]`);let t=this._hashStringToUUID(this.pageContent);try{let r=this._hashNestedDictToUUID(this.metadata);this.contentHash=t,this.metadataHash=r}catch(r){throw new Error(`Failed to hash metadata: ${r}. Please use a dict that can be serialized using json.`)}this.hash_=this._hashStringToUUID(this.contentHash+this.metadataHash),this.uid||(this.uid=this.hash_)}toDocument(){return new ke({pageContent:this.pageContent,metadata:this.metadata})}static fromDocument(e,t){let r=new this({pageContent:e.pageContent,metadata:e.metadata,uid:t||e.uid});return r.calculateHashes(),r}_hashStringToUUID(e){return Br(this.keyEncoder(e),en)}_hashNestedDictToUUID(e){let t=JSON.stringify(e,Object.keys(e).sort());return Br(this.keyEncoder(t),en)}};function Ui(e,t){let r=[],n=[];return t.forEach(s=>{n.push(s),n.length>=e&&(r.push(n),n=[])}),n.length>0&&r.push(n),r}function Gi(e){let t=new Set,r=[];for(let n of e){if(!n.hash_)throw new Error("Hashed document does not have a hash");t.has(n.hash_)||(t.add(n.hash_),r.push(n))}return r}function Bi(e){if(e===null)return t=>null;if(typeof e=="string")return t=>t.metadata[e];if(typeof e=="function")return e;throw new Error(`sourceIdKey should be null, a string or a function, got ${typeof e}`)}var Hi=e=>"load"in e&&typeof e.load=="function"&&"loadAndSplit"in e&&typeof e.loadAndSplit=="function";async function Pl(e){let{docsSource:t,recordManager:r,vectorStore:n,options:s}=e,{batchSize:i=100,cleanup:o,sourceIdKey:a,cleanupBatchSize:c=1e3,forceUpdate:l=!1}=s??{};if(o==="incremental"&&!a)throw new Error("sourceIdKey is required when cleanup mode is incremental. Please provide through 'options.sourceIdKey'.");let u=Hi(t)?await t.load():t,p=Bi(a??null),h=await r.getTime(),d=0,m=0,f=0,g=0,y=Ui(i??100,u);for(let _ of y){let S=Gi(_.map(x=>Vi.fromDocument(x))),C=S.map(x=>p(x));o==="incremental"&&S.forEach((x,G)=>{if(C[G]===null)throw new Error("sourceIdKey must be provided when cleanup is incremental")});let I=await r.exists(S.map(x=>x.uid)),M=[],k=[],v=[],T=new Set;if(S.forEach((x,G)=>{if(I[G])if(l)T.add(x.uid);else{v.push(x.uid);return}M.push(x.uid),k.push(x.toDocument())}),v.length>0&&(await r.update(v,{timeAtLeast:h}),g+=v.length),k.length>0&&(await n.addDocuments(k,{ids:M}),d+=k.length-T.size,f+=T.size),await r.update(S.map(x=>x.uid),{timeAtLeast:h,groupIds:C}),o==="incremental"){C.forEach(G=>{if(!G)throw new Error("Source id cannot be null")});let x=await r.listKeys({before:h,groupIds:C});x.length>0&&(await n.delete({ids:x}),await r.deleteKeys(x),m+=x.length)}}if(o==="full"){let _=await r.listKeys({before:h,limit:c});for(;_.length>0;)await n.delete({ids:_}),await r.deleteKeys(_),m+=_.length,_=await r.listKeys({before:h,limit:c})}return{numAdded:d,numDeleted:m,numUpdated:f,numSkipped:g}}var Ol=N({RecordManager:()=>Ml,UUIDV5_NAMESPACE:()=>en,_HashedDocument:()=>Vi,_batch:()=>Ui,_deduplicateInOrder:()=>Gi,_getSourceIdAssigner:()=>Bi,_isBaseDocumentLoader:()=>Hi,index:()=>Pl});var Rl=N({});var Dl=N({});var $l=N({BaseMemory:()=>Td,getInputValue:()=>Ad,getOutputValue:()=>Nd,getPromptInputKey:()=>Md}),Td=class{},jl=(e,t)=>{if(t!==void 0)return e[t];let r=Object.keys(e);if(r.length===1)return e[r[0]]},Ad=(e,t)=>{let r=jl(e,t);if(!r){let n=Object.keys(e);throw new Error(`input values have ${n.length} keys, you must specify an input key or pass only 1 key as input`)}return r},Nd=(e,t)=>{let r=jl(e,t);if(!r&&r!==""){let n=Object.keys(e);throw new Error(`output values have ${n.length} keys, you must specify an output key or pass only 1 key as output`)}return r};function Md(e,t){let r=Object.keys(e).filter(n=>!t.includes(n)&&n!=="stop");if(r.length!==1)throw new Error(`One input key expected, but got ${r.length}`);return r[0]}var qi=class extends _i{static lc_name(){return"OutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;argsOnly=!0;constructor(e){super(),this.argsOnly=e?.argsOnly??this.argsOnly}async parseResult(e){if("message"in e[0]){let t=e[0].message.additional_kwargs.function_call;if(!t)throw new Error(`No function_call in message ${JSON.stringify(e)}`);if(!t.arguments)throw new Error(`No arguments in function_call ${JSON.stringify(e)}`);return this.argsOnly?t.arguments:JSON.stringify(t)}else throw new Error(`No message in generations ${JSON.stringify(e)}`)}},zi=class extends Oc{static lc_name(){return"JsonOutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;outputParser;argsOnly=!0;constructor(e){super(e),this.argsOnly=e?.argsOnly??this.argsOnly,this.outputParser=new qi(e)}_diff(e,t){if(t)return pc(e??{},t)}async parsePartialResult(e){let t=e[0];if(!t.message)return;let{message:r}=t,n=r.additional_kwargs.function_call;if(n)return this.argsOnly?pi(n.arguments):{...n,arguments:pi(n.arguments)}}async parseResult(e){let t=await this.outputParser.parseResult(e);if(!t)throw new Error(`No result from "OutputFunctionsParser" ${JSON.stringify(e)}`);return this.parse(t)}async parse(e){let t=JSON.parse(e);return this.argsOnly||(t.arguments=JSON.parse(t.arguments)),t}getFormatInstructions(){return""}},Ll=class extends _i{static lc_name(){return"JsonKeyOutputFunctionsParser"}lc_namespace=["langchain","output_parsers","openai_functions"];lc_serializable=!0;outputParser=new zi;attrName;get lc_aliases(){return{attrName:"key_name"}}constructor(e){super(e),this.attrName=e.attrName}async parseResult(e){return(await this.outputParser.parseResult(e))[this.attrName]}};var Fl=N({JsonKeyOutputFunctionsParser:()=>Ll,JsonOutputFunctionsParser:()=>zi,OutputFunctionsParser:()=>qi});var Ze=class extends K{lc_serializable=!0;lc_namespace=["langchain_core","prompts",this._getPromptType()];get lc_attributes(){return{partialVariables:void 0}}inputVariables;outputParser;partialVariables;metadata;tags;constructor(e){super(e);let{inputVariables:t}=e;if(t.includes("stop"))throw new Error("Cannot have an input variable named 'stop', as it is used internally, please rename.");Object.assign(this,e)}async mergePartialAndUserVariables(e){let t=this.partialVariables??{},r={};for(let[n,s]of Object.entries(t))typeof s=="string"?r[n]=s:r[n]=await s();return{...r,...e}}async invoke(e,t){let r={...this.metadata,...t?.metadata},n=[...this.tags??[],...t?.tags??[]];return this._callWithConfig(s=>this.formatPromptValue(s),e,{...t,tags:n,metadata:r,runType:"prompt"})}};var mt=class extends Ze{async formatPromptValue(e){return new kc(await this.format(e))}};var Pd=Object.prototype.toString,Sr=Array.isArray||function(t){return Pd.call(t)==="[object Array]"};function Ki(e){return typeof e=="function"}function Od(e){return Sr(e)?"array":typeof e}function Wi(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Vl(e,t){return e!=null&&typeof e=="object"&&t in e}function Rd(e,t){return e!=null&&typeof e!="object"&&e.hasOwnProperty&&e.hasOwnProperty(t)}var Dd=RegExp.prototype.test;function $d(e,t){return Dd.call(e,t)}var jd=/\S/;function Ld(e){return!$d(jd,e)}var Fd={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function Vd(e){return String(e).replace(/[&<>"'`=\/]/g,function(r){return Fd[r]})}var Ud=/\s*/,Gd=/\s+/,Ul=/\s*=/,Bd=/\s*\}/,Hd=/#|\^|\/|>|\{|&|=|!/;function qd(e,t){if(!e)return[];var r=!1,n=[],s=[],i=[],o=!1,a=!1,c="",l=0;function u(){if(o&&!a)for(;i.length;)delete s[i.pop()];else i=[];o=!1,a=!1}var p,h,d;function m(v){if(typeof v=="string"&&(v=v.split(Gd,2)),!Sr(v)||v.length!==2)throw new Error("Invalid tags: "+v);p=new RegExp(Wi(v[0])+"\\s*"),h=new RegExp("\\s*"+Wi(v[1])),d=new RegExp("\\s*"+Wi("}"+v[1]))}m(t||Ie.tags);for(var f=new rn(e),g,y,_,S,C,I;!f.eos();){if(g=f.pos,_=f.scanUntil(p),_)for(var M=0,k=_.length;M<k;++M)S=_.charAt(M),Ld(S)?(i.push(s.length),c+=S):(a=!0,r=!0,c+=" "),s.push(["text",S,g,g+1]),g+=1,S===`
|
|
6
|
+
`&&(u(),c="",l=0,r=!1);if(!f.scan(p))break;if(o=!0,y=f.scan(Hd)||"name",f.scan(Ud),y==="="?(_=f.scanUntil(Ul),f.scan(Ul),f.scanUntil(h)):y==="{"?(_=f.scanUntil(d),f.scan(Bd),f.scanUntil(h),y="&"):_=f.scanUntil(h),!f.scan(h))throw new Error("Unclosed tag at "+f.pos);if(y==">"?C=[y,_,g,f.pos,c,l,r]:C=[y,_,g,f.pos],l++,s.push(C),y==="#"||y==="^")n.push(C);else if(y==="/"){if(I=n.pop(),!I)throw new Error('Unopened section "'+_+'" at '+g);if(I[1]!==_)throw new Error('Unclosed section "'+I[1]+'" at '+g)}else y==="name"||y==="{"||y==="&"?a=!0:y==="="&&m(_)}if(u(),I=n.pop(),I)throw new Error('Unclosed section "'+I[1]+'" at '+f.pos);return Wd(zd(s))}function zd(e){for(var t=[],r,n,s=0,i=e.length;s<i;++s)r=e[s],r&&(r[0]==="text"&&n&&n[0]==="text"?(n[1]+=r[1],n[3]=r[3]):(t.push(r),n=r));return t}function Wd(e){for(var t=[],r=t,n=[],s,i,o=0,a=e.length;o<a;++o)switch(s=e[o],s[0]){case"#":case"^":r.push(s),n.push(s),r=s[4]=[];break;case"/":i=n.pop(),i[5]=s[2],r=n.length>0?n[n.length-1][4]:t;break;default:r.push(s)}return t}function rn(e){this.string=e,this.tail=e,this.pos=0}rn.prototype.eos=function(){return this.tail===""};rn.prototype.scan=function(t){var r=this.tail.match(t);if(!r||r.index!==0)return"";var n=r[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n};rn.prototype.scanUntil=function(t){var r=this.tail.search(t),n;switch(r){case-1:n=this.tail,this.tail="";break;case 0:n="";break;default:n=this.tail.substring(0,r),this.tail=this.tail.substring(r)}return this.pos+=n.length,n};function vr(e,t){this.view=e,this.cache={".":this.view},this.parent=t}vr.prototype.push=function(t){return new vr(t,this)};vr.prototype.lookup=function(t){var r=this.cache,n;if(r.hasOwnProperty(t))n=r[t];else{for(var s=this,i,o,a,c=!1;s;){if(t.indexOf(".")>0)for(i=s.view,o=t.split("."),a=0;i!=null&&a<o.length;)a===o.length-1&&(c=Vl(i,o[a])||Rd(i,o[a])),i=i[o[a++]];else i=s.view[t],c=Vl(s.view,t);if(c){n=i;break}s=s.parent}r[t]=n}return Ki(n)&&(n=n.call(this.view)),n};function me(){this.templateCache={_cache:{},set:function(t,r){this._cache[t]=r},get:function(t){return this._cache[t]},clear:function(){this._cache={}}}}me.prototype.clearCache=function(){typeof this.templateCache<"u"&&this.templateCache.clear()};me.prototype.parse=function(t,r){var n=this.templateCache,s=t+":"+(r||Ie.tags).join(":"),i=typeof n<"u",o=i?n.get(s):void 0;return o==null&&(o=qd(t,r),i&&n.set(s,o)),o};me.prototype.render=function(t,r,n,s){var i=this.getConfigTags(s),o=this.parse(t,i),a=r instanceof vr?r:new vr(r,void 0);return this.renderTokens(o,a,n,t,s)};me.prototype.renderTokens=function(t,r,n,s,i){for(var o="",a,c,l,u=0,p=t.length;u<p;++u)l=void 0,a=t[u],c=a[0],c==="#"?l=this.renderSection(a,r,n,s,i):c==="^"?l=this.renderInverted(a,r,n,s,i):c===">"?l=this.renderPartial(a,r,n,i):c==="&"?l=this.unescapedValue(a,r):c==="name"?l=this.escapedValue(a,r,i):c==="text"&&(l=this.rawValue(a)),l!==void 0&&(o+=l);return o};me.prototype.renderSection=function(t,r,n,s,i){var o=this,a="",c=r.lookup(t[1]);function l(h){return o.render(h,r,n,i)}if(c){if(Sr(c))for(var u=0,p=c.length;u<p;++u)a+=this.renderTokens(t[4],r.push(c[u]),n,s,i);else if(typeof c=="object"||typeof c=="string"||typeof c=="number")a+=this.renderTokens(t[4],r.push(c),n,s,i);else if(Ki(c)){if(typeof s!="string")throw new Error("Cannot use higher-order sections without the original template");c=c.call(r.view,s.slice(t[3],t[5]),l),c!=null&&(a+=c)}else a+=this.renderTokens(t[4],r,n,s,i);return a}};me.prototype.renderInverted=function(t,r,n,s,i){var o=r.lookup(t[1]);if(!o||Sr(o)&&o.length===0)return this.renderTokens(t[4],r,n,s,i)};me.prototype.indentPartial=function(t,r,n){for(var s=r.replace(/[^ \t]/g,""),i=t.split(`
|
|
7
|
+
`),o=0;o<i.length;o++)i[o].length&&(o>0||!n)&&(i[o]=s+i[o]);return i.join(`
|
|
8
|
+
`)};me.prototype.renderPartial=function(t,r,n,s){if(n){var i=this.getConfigTags(s),o=Ki(n)?n(t[1]):n[t[1]];if(o!=null){var a=t[6],c=t[5],l=t[4],u=o;c==0&&l&&(u=this.indentPartial(o,l,a));var p=this.parse(u,i);return this.renderTokens(p,r,n,u,s)}}};me.prototype.unescapedValue=function(t,r){var n=r.lookup(t[1]);if(n!=null)return n};me.prototype.escapedValue=function(t,r,n){var s=this.getConfigEscape(n)||Ie.escape,i=r.lookup(t[1]);if(i!=null)return typeof i=="number"&&s===Ie.escape?String(i):s(i)};me.prototype.rawValue=function(t){return t[1]};me.prototype.getConfigTags=function(t){return Sr(t)?t:t&&typeof t=="object"?t.tags:void 0};me.prototype.getConfigEscape=function(t){if(t&&typeof t=="object"&&!Sr(t))return t.escape};var Ie={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(e){tn.templateCache=e},get templateCache(){return tn.templateCache}},tn=new me;Ie.clearCache=function(){return tn.clearCache()};Ie.parse=function(t,r){return tn.parse(t,r)};Ie.render=function(t,r,n,s){if(typeof t!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+Od(t)+'" was given as the first argument for mustache#render(template, view, partials)');return tn.render(t,r,n,s)};Ie.escape=Vd;Ie.Scanner=rn;Ie.Context=vr;Ie.Writer=me;var Ji=Ie;var Kd={escape:e=>e},Qt=e=>{let t=e.split(""),r=[],n=(i,o)=>{for(let a=o;a<t.length;a+=1)if(i.includes(t[a]))return a;return-1},s=0;for(;s<t.length;)if(t[s]==="{"&&s+1<t.length&&t[s+1]==="{")r.push({type:"literal",text:"{"}),s+=2;else if(t[s]==="}"&&s+1<t.length&&t[s+1]==="}")r.push({type:"literal",text:"}"}),s+=2;else if(t[s]==="{"){let i=n("}",s);if(i<0)throw new Error("Unclosed '{' in template.");r.push({type:"variable",name:t.slice(s+1,i).join("")}),s=i+1}else{if(t[s]==="}")throw new Error("Single '}' in template.");{let i=n("{}",s),o=(i<0?t.slice(s):t.slice(s,i)).join("");r.push({type:"literal",text:o}),s=i<0?t.length:i}}return r},Gl=(e,t=[])=>{let r=[];for(let n of e)if(n[0]==="name"){let s=n[1].includes(".")?n[1].split(".")[0]:n[1];r.push({type:"variable",name:s})}else if(["#","&","^",">"].includes(n[0])){if(r.push({type:"variable",name:n[1]}),n[0]==="#"&&n.length>4&&Array.isArray(n[4])){let s=[...t,n[1]],i=Gl(n[4],s);r.push(...i)}}else r.push({type:"literal",text:n[1]});return r},Cr=e=>{let t=Ji.parse(e);return Gl(t)},Yi=(e,t)=>Qt(e).reduce((r,n)=>{if(n.type==="variable"){if(n.name in t)return r+(typeof t[n.name]=="string"?t[n.name]:JSON.stringify(t[n.name]));throw new Error(`(f-string) Missing value for input ${n.name}`)}return r+n.text},""),Xi=(e,t)=>Ji.render(e,t,void 0,Kd),nn={"f-string":Yi,mustache:Xi},Qi={"f-string":Qt,mustache:Cr},le=(e,t,r)=>{try{return nn[t](e,r)}catch(n){throw On(n,"INVALID_PROMPT_INPUT")}},Zt=(e,t)=>Qi[t](e),ft=(e,t,r)=>{if(!(t in nn)){let n=Object.keys(nn);throw new Error(`Invalid template format. Got \`${t}\`;
|
|
9
|
+
should be one of ${n}`)}try{let n=Object.fromEntries(r.map(s=>[s,"foo"]));Array.isArray(e)?e.forEach(s=>{if(s.type==="text"&&"text"in s&&typeof s.text=="string")le(s.text,t,n);else if(s.type==="image_url"){if(typeof s.image_url=="string")le(s.image_url,t,n);else if(typeof s.image_url=="object"&&s.image_url!==null&&"url"in s.image_url&&typeof s.image_url.url=="string"){let i=s.image_url.url;le(i,t,n)}}else throw new Error(`Invalid message template received. ${JSON.stringify(s,null,2)}`)}):le(e,t,n)}catch(n){throw new Error(`Invalid prompt schema: ${n.message}`)}};var Re=class sn extends mt{static lc_name(){return"PromptTemplate"}template;templateFormat="f-string";validateTemplate=!0;additionalContentFields;constructor(t){if(super(t),t.templateFormat==="mustache"&&t.validateTemplate===void 0&&(this.validateTemplate=!1),Object.assign(this,t),this.validateTemplate){if(this.templateFormat==="mustache")throw new Error("Mustache templates cannot be validated.");let r=this.inputVariables;this.partialVariables&&(r=r.concat(Object.keys(this.partialVariables))),ft(this.template,this.templateFormat,r)}}_getPromptType(){return"prompt"}async format(t){let r=await this.mergePartialAndUserVariables(t);return le(this.template,this.templateFormat,r)}static fromExamples(t,r,n,s=`
|
|
10
|
+
|
|
11
|
+
`,i=""){let o=[i,...t,r].join(s);return new sn({inputVariables:n,template:o})}static fromTemplate(t,r){let{templateFormat:n="f-string",...s}=r??{},i=new Set;return Zt(t,n).forEach(o=>{o.type==="variable"&&i.add(o.name)}),new sn({inputVariables:[...i],templateFormat:n,template:t,...s})}async partial(t){let r=this.inputVariables.filter(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new sn(s)}serialize(){if(this.outputParser!==void 0)throw new Error("Cannot serialize a prompt template with an output parser");return{_type:this._getPromptType(),input_variables:this.inputVariables,template:this.template,template_format:this.templateFormat}}static async deserialize(t){if(!t.template)throw new Error("Prompt template must have a template");return new sn({inputVariables:t.input_variables,template:t.template,templateFormat:t.template_format})}};var kr=class Bl extends Ze{static lc_name(){return"ImagePromptTemplate"}lc_namespace=["langchain_core","prompts","image"];template;templateFormat="f-string";validateTemplate=!0;additionalContentFields;constructor(t){if(super(t),this.template=t.template,this.templateFormat=t.templateFormat??this.templateFormat,this.validateTemplate=t.validateTemplate??this.validateTemplate,this.additionalContentFields=t.additionalContentFields,this.validateTemplate){let r=this.inputVariables;this.partialVariables&&(r=r.concat(Object.keys(this.partialVariables))),ft([{type:"image_url",image_url:this.template}],this.templateFormat,r)}}_getPromptType(){return"prompt"}async partial(t){let r=this.inputVariables.filter(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new Bl(s)}async format(t){let r={};for(let[o,a]of Object.entries(this.template))typeof a=="string"?r[o]=le(a,this.templateFormat,t):r[o]=a;let n=t.url||r.url,s=t.detail||r.detail;if(!n)throw new Error("Must provide either an image URL.");if(typeof n!="string")throw new Error("url must be a string.");let i={url:n};return s&&(i.detail=s),i}async formatPromptValue(t){return new xc(await this.format(t))}};var on=class extends K{lc_namespace=["langchain_core","prompts","dict"];lc_serializable=!0;template;templateFormat;inputVariables;static lc_name(){return"DictPromptTemplate"}constructor(e){let t=e.templateFormat??"f-string",r=Zi(e.template,t);super({inputVariables:r,...e}),this.template=e.template,this.templateFormat=t,this.inputVariables=r}async format(e){return eo(this.template,e,this.templateFormat)}async invoke(e){return await this._callWithConfig(this.format.bind(this),e,{runType:"prompt"})}};function Zi(e,t){let r=[];for(let n of Object.values(e))if(typeof n=="string")Zt(n,t).forEach(s=>{s.type==="variable"&&r.push(s.name)});else if(Array.isArray(n))for(let s of n)typeof s=="string"?Zt(s,t).forEach(i=>{i.type==="variable"&&r.push(i.name)}):typeof s=="object"&&r.push(...Zi(s,t));else typeof n=="object"&&n!==null&&r.push(...Zi(n,t));return Array.from(new Set(r))}function eo(e,t,r){let n={};for(let[s,i]of Object.entries(e))if(typeof i=="string")n[s]=le(i,r,t);else if(Array.isArray(i)){let o=[];for(let a of i)typeof a=="string"?o.push(le(a,r,t)):typeof a=="object"&&o.push(eo(a,t,r));n[s]=o}else typeof i=="object"&&i!==null?n[s]=eo(i,t,r):n[s]=i;return n}var an=class extends K{lc_namespace=["langchain_core","prompts","chat"];lc_serializable=!0;async invoke(e,t){return this._callWithConfig(r=>this.formatMessages(r),e,{...t,runType:"prompt"})}},Xn=class extends an{static lc_name(){return"MessagesPlaceholder"}variableName;optional;constructor(e){typeof e=="string"&&(e={variableName:e}),super(e),this.variableName=e.variableName,this.optional=e.optional??!1}get inputVariables(){return[this.variableName]}async formatMessages(e){let t=e[this.variableName];if(this.optional&&!t)return[];if(!t){let n=new Error(`Field "${this.variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages as an input value. Received: undefined`);throw n.name="InputFormatError",n}let r;try{Array.isArray(t)?r=t.map(qe):r=[qe(t)]}catch(n){let s=typeof t=="string"?t:JSON.stringify(t,null,2),i=new Error([`Field "${this.variableName}" in prompt uses a MessagesPlaceholder, which expects an array of BaseMessages or coerceable values as input.`,`Received value: ${s}`,`Additional message: ${n.message}`].join(`
|
|
12
|
+
|
|
13
|
+
`));throw i.name="InputFormatError",i.lc_error_code=n.lc_error_code,i}return r}},to=class extends an{prompt;constructor(e){"prompt"in e||(e={prompt:e}),super(e),this.prompt=e.prompt}get inputVariables(){return this.prompt.inputVariables}async formatMessages(e){return[await this.format(e)]}},cn=class extends Ze{constructor(e){super(e)}async format(e){return(await this.formatPromptValue(e)).toString()}async formatPromptValue(e){return new Ec(await this.formatMessages(e))}},ro=class extends to{static lc_name(){return"ChatMessagePromptTemplate"}role;constructor(e,t){"prompt"in e||(e={prompt:e,role:t}),super(e),this.role=e.role}async format(e){return new hi(await this.prompt.format(e),this.role)}static fromTemplate(e,t,r){return new this(Re.fromTemplate(e,{templateFormat:r?.templateFormat}),t)}};function Jd(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.keys(e).length===1&&"text"in e&&typeof e.text=="string"}function Yd(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:"image_url"in e&&(typeof e.image_url=="string"||typeof e.image_url=="object"&&e.image_url!==null&&"url"in e.image_url&&typeof e.image_url.url=="string")}var no=class extends an{lc_namespace=["langchain_core","prompts","chat"];lc_serializable=!0;inputVariables=[];additionalOptions={};prompt;messageClass;static _messageClass(){throw new Error("Can not invoke _messageClass from inside _StringImageMessagePromptTemplate")}chatMessageClass;constructor(e,t){if("prompt"in e||(e={prompt:e}),super(e),this.prompt=e.prompt,Array.isArray(this.prompt)){let r=[];this.prompt.forEach(n=>{"inputVariables"in n&&(r=r.concat(n.inputVariables))}),this.inputVariables=r}else this.inputVariables=this.prompt.inputVariables;this.additionalOptions=t??this.additionalOptions}createMessage(e){let t=this.constructor;if(t._messageClass())return new(t._messageClass())({content:e});if(t.chatMessageClass){let r=t.chatMessageClass();return new r({content:e,role:this.getRoleFromMessageClass(r.lc_name())})}else throw new Error("No message class defined")}getRoleFromMessageClass(e){switch(e){case"HumanMessage":return"human";case"AIMessage":return"ai";case"SystemMessage":return"system";case"ChatMessage":return"chat";default:throw new Error("Invalid message class name")}}static fromTemplate(e,t){if(typeof e=="string")return new this(Re.fromTemplate(e,t));let r=[];for(let n of e)if(typeof n=="string")r.push(Re.fromTemplate(n,t));else if(n!==null)if(Jd(n)){let s="";typeof n.text=="string"&&(s=n.text??"");let i={...t,additionalContentFields:n};r.push(Re.fromTemplate(s,i))}else if(Yd(n)){let s=n.image_url??"",i,o=[];if(typeof s=="string"){let a;t?.templateFormat==="mustache"?a=Cr(s):a=Qt(s);let c=a.flatMap(l=>l.type==="variable"?[l.name]:[]);if((c?.length??0)>0){if(c.length>1)throw new Error(`Only one format variable allowed per image template.
|
|
14
|
+
Got: ${c}
|
|
15
|
+
From: ${s}`);o=[c[0]]}else o=[];s={url:s},i=new kr({template:s,inputVariables:o,templateFormat:t?.templateFormat,additionalContentFields:n})}else if(typeof s=="object"){if("url"in s){let a;t?.templateFormat==="mustache"?a=Cr(s.url):a=Qt(s.url),o=a.flatMap(c=>c.type==="variable"?[c.name]:[])}else o=[];i=new kr({template:s,inputVariables:o,templateFormat:t?.templateFormat,additionalContentFields:n})}else throw new Error("Invalid image template");r.push(i)}else typeof n=="object"&&r.push(new on({template:n,templateFormat:t?.templateFormat}));return new this({prompt:r,additionalOptions:t})}async format(e){if(this.prompt instanceof mt){let t=await this.prompt.format(e);return this.createMessage(t)}else{let t=[];for(let r of this.prompt){let n={};if(!("inputVariables"in r))throw new Error(`Prompt ${r} does not have inputVariables defined.`);for(let s of r.inputVariables)n||(n={[s]:e[s]}),n={...n,[s]:e[s]};if(r instanceof mt){let s=await r.format(n),i;"additionalContentFields"in r&&(i=r.additionalContentFields),s!==""&&t.push({...i,type:"text",text:s})}else if(r instanceof kr){let s=await r.format(n),i;"additionalContentFields"in r&&(i=r.additionalContentFields),t.push({...i,type:"image_url",image_url:s})}else if(r instanceof on){let s=await r.format(n),i;"additionalContentFields"in r&&(i=r.additionalContentFields),t.push({...i,...s})}}return this.createMessage(t)}}async formatMessages(e){return[await this.format(e)]}},Qn=class extends no{static _messageClass(){return Ct}static lc_name(){return"HumanMessagePromptTemplate"}},so=class extends no{static _messageClass(){return te}static lc_name(){return"AIMessagePromptTemplate"}},ln=class extends no{static _messageClass(){return Rn}static lc_name(){return"SystemMessagePromptTemplate"}};function Xd(e){return typeof e.formatMessages=="function"}function Qd(e,t){if(Xd(e)||Pe(e))return e;if(Array.isArray(e)&&e[0]==="placeholder"){let s=e[1];if(t?.templateFormat==="mustache"&&typeof s=="string"&&s.slice(0,2)==="{{"&&s.slice(-2)==="}}")return new Xn({variableName:s.slice(2,-2),optional:!0});if(typeof s=="string"&&s[0]==="{"&&s[s.length-1]==="}")return new Xn({variableName:s.slice(1,-1),optional:!0});throw new Error(`Invalid placeholder template for format ${t?.templateFormat??'"f-string"'}: "${e[1]}". Expected a variable name surrounded by ${t?.templateFormat==="mustache"?"double":"single"} curly braces.`)}let r=qe(e),n;if(typeof r.content=="string"?n=r.content:n=r.content.map(s=>"text"in s?{...s,text:s.text}:"image_url"in s?{...s,image_url:s.image_url}:s),r._getType()==="human")return Qn.fromTemplate(n,t);if(r._getType()==="ai")return so.fromTemplate(n,t);if(r._getType()==="system")return ln.fromTemplate(n,t);if(hi.isInstance(r))return ro.fromTemplate(r.content,r.role,t);throw new Error(`Could not coerce message prompt template from input. Received message type: "${r._getType()}".`)}function Zd(e){return e.constructor.lc_name()==="MessagesPlaceholder"}var Te=class Yn extends cn{static lc_name(){return"ChatPromptTemplate"}get lc_aliases(){return{promptMessages:"messages"}}promptMessages;validateTemplate=!0;templateFormat="f-string";constructor(t){if(super(t),t.templateFormat==="mustache"&&t.validateTemplate===void 0&&(this.validateTemplate=!1),Object.assign(this,t),this.validateTemplate){let r=new Set;for(let a of this.promptMessages)if(!(a instanceof ee))for(let c of a.inputVariables)r.add(c);let n=this.inputVariables,s=new Set(this.partialVariables?n.concat(Object.keys(this.partialVariables)):n),i=new Set([...s].filter(a=>!r.has(a)));if(i.size>0)throw new Error(`Input variables \`${[...i]}\` are not used in any of the prompt messages.`);let o=new Set([...r].filter(a=>!s.has(a)));if(o.size>0)throw new Error(`Input variables \`${[...o]}\` are used in prompt messages but not in the prompt template.`)}}_getPromptType(){return"chat"}async _parseImagePrompts(t,r){return typeof t.content=="string"||(t.content=await Promise.all(t.content.map(async n=>{if(n.type!=="image_url")return n;let s="";typeof n.image_url=="string"?s=n.image_url:typeof n.image_url=="object"&&n.image_url!==null&&"url"in n.image_url&&typeof n.image_url.url=="string"&&(s=n.image_url.url);let i=await Re.fromTemplate(s,{templateFormat:this.templateFormat}).format(r);return typeof n.image_url=="object"&&n.image_url!==null&&"url"in n.image_url?n.image_url.url=i:n.image_url=i,n}))),t}async formatMessages(t){let r=await this.mergePartialAndUserVariables(t),n=[];for(let s of this.promptMessages)if(s instanceof ee)n.push(await this._parseImagePrompts(s,r));else{let i;this.templateFormat==="mustache"?i={...r}:i=s.inputVariables.reduce((a,c)=>{if(!(c in r)&&!(Zd(s)&&s.optional))throw On(new Error(`Missing value for input variable \`${c.toString()}\``),"INVALID_PROMPT_INPUT");return a[c]=r[c],a},{});let o=await s.formatMessages(i);n=n.concat(o)}return n}async partial(t){let r=this.inputVariables.filter(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new Yn(s)}static fromTemplate(t,r){let n=new Qn({prompt:Re.fromTemplate(t,r)});return this.fromMessages([n])}static fromMessages(t,r){let n=t.reduce((o,a)=>o.concat(a instanceof Yn?a.promptMessages:[Qd(a,r)]),[]),s=t.reduce((o,a)=>a instanceof Yn?Object.assign(o,a.partialVariables):o,Object.create(null)),i=new Set;for(let o of n)if(!(o instanceof ee))for(let a of o.inputVariables)a in s||i.add(a);return new this({...r,inputVariables:[...i],promptMessages:n,partialVariables:s,templateFormat:r?.templateFormat})}};var Hl=class io extends mt{lc_serializable=!1;examples;exampleSelector;examplePrompt;suffix="";exampleSeparator=`
|
|
16
|
+
|
|
17
|
+
`;prefix="";templateFormat="f-string";validateTemplate=!0;constructor(t){if(super(t),Object.assign(this,t),this.examples!==void 0&&this.exampleSelector!==void 0)throw new Error("Only one of 'examples' and 'example_selector' should be provided");if(this.examples===void 0&&this.exampleSelector===void 0)throw new Error("One of 'examples' and 'example_selector' should be provided");if(this.validateTemplate){let r=this.inputVariables;this.partialVariables&&(r=r.concat(Object.keys(this.partialVariables))),ft(this.prefix+this.suffix,this.templateFormat,r)}}_getPromptType(){return"few_shot"}static lc_name(){return"FewShotPromptTemplate"}async getExamples(t){if(this.examples!==void 0)return this.examples;if(this.exampleSelector!==void 0)return this.exampleSelector.selectExamples(t);throw new Error("One of 'examples' and 'example_selector' should be provided")}async partial(t){let r=this.inputVariables.filter(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new io(s)}async format(t){let r=await this.mergePartialAndUserVariables(t),n=await this.getExamples(r),s=await Promise.all(n.map(i=>this.examplePrompt.format(i)));return le([this.prefix,...s,this.suffix].join(this.exampleSeparator),this.templateFormat,r)}serialize(){if(this.exampleSelector||!this.examples)throw new Error("Serializing an example selector is not currently supported");if(this.outputParser!==void 0)throw new Error("Serializing an output parser is not currently supported");return{_type:this._getPromptType(),input_variables:this.inputVariables,example_prompt:this.examplePrompt.serialize(),example_separator:this.exampleSeparator,suffix:this.suffix,prefix:this.prefix,template_format:this.templateFormat,examples:this.examples}}static async deserialize(t){let{example_prompt:r}=t;if(!r)throw new Error("Missing example prompt");let n=await Re.deserialize(r),s;if(Array.isArray(t.examples))s=t.examples;else throw new Error("Invalid examples format. Only list or string are supported.");return new io({inputVariables:t.input_variables,examplePrompt:n,examples:s,exampleSeparator:t.example_separator,prefix:t.prefix,suffix:t.suffix,templateFormat:t.template_format})}},ql=class zl extends cn{lc_serializable=!0;examples;exampleSelector;examplePrompt;suffix="";exampleSeparator=`
|
|
18
|
+
|
|
19
|
+
`;prefix="";templateFormat="f-string";validateTemplate=!0;_getPromptType(){return"few_shot_chat"}static lc_name(){return"FewShotChatMessagePromptTemplate"}constructor(t){if(super(t),this.examples=t.examples,this.examplePrompt=t.examplePrompt,this.exampleSeparator=t.exampleSeparator??`
|
|
20
|
+
|
|
21
|
+
`,this.exampleSelector=t.exampleSelector,this.prefix=t.prefix??"",this.suffix=t.suffix??"",this.templateFormat=t.templateFormat??"f-string",this.validateTemplate=t.validateTemplate??!0,this.examples!==void 0&&this.exampleSelector!==void 0)throw new Error("Only one of 'examples' and 'example_selector' should be provided");if(this.examples===void 0&&this.exampleSelector===void 0)throw new Error("One of 'examples' and 'example_selector' should be provided");if(this.validateTemplate){let r=this.inputVariables;this.partialVariables&&(r=r.concat(Object.keys(this.partialVariables))),ft(this.prefix+this.suffix,this.templateFormat,r)}}async getExamples(t){if(this.examples!==void 0)return this.examples;if(this.exampleSelector!==void 0)return this.exampleSelector.selectExamples(t);throw new Error("One of 'examples' and 'example_selector' should be provided")}async formatMessages(t){let r=await this.mergePartialAndUserVariables(t),n=await this.getExamples(r);n=n.map(i=>{let o={};return this.examplePrompt.inputVariables.forEach(a=>{o[a]=i[a]}),o});let s=[];for(let i of n){let o=await this.examplePrompt.formatMessages(i);s.push(...o)}return s}async format(t){let r=await this.mergePartialAndUserVariables(t),n=await this.getExamples(r),s=(await Promise.all(n.map(i=>this.examplePrompt.formatMessages(i)))).flat().map(i=>i.content);return le([this.prefix,...s,this.suffix].join(this.exampleSeparator),this.templateFormat,r)}async partial(t){let r=this.inputVariables.filter(i=>!(i in t)),n={...this.partialVariables??{},...t},s={...this,inputVariables:r,partialVariables:n};return new zl(s)}};var Wl=class Zn extends Ze{static lc_name(){return"PipelinePromptTemplate"}pipelinePrompts;finalPrompt;constructor(t){super({...t,inputVariables:[]}),this.pipelinePrompts=t.pipelinePrompts,this.finalPrompt=t.finalPrompt,this.inputVariables=this.computeInputValues()}computeInputValues(){let t=this.pipelinePrompts.map(n=>n.name),r=this.pipelinePrompts.map(n=>n.prompt.inputVariables.filter(s=>!t.includes(s))).flat();return[...new Set(r)]}static extractRequiredInputValues(t,r){return r.reduce((n,s)=>(n[s]=t[s],n),{})}async formatPipelinePrompts(t){let r=await this.mergePartialAndUserVariables(t);for(let{name:n,prompt:s}of this.pipelinePrompts){let i=Zn.extractRequiredInputValues(r,s.inputVariables);s instanceof Te?r[n]=await s.formatMessages(i):r[n]=await s.format(i)}return Zn.extractRequiredInputValues(r,this.finalPrompt.inputVariables)}async formatPromptValue(t){return this.finalPrompt.formatPromptValue(await this.formatPipelinePrompts(t))}async format(t){return this.finalPrompt.format(await this.formatPipelinePrompts(t))}async partial(t){let r={...this};return r.inputVariables=this.inputVariables.filter(n=>!(n in t)),r.partialVariables={...this.partialVariables??{},...t},new Zn(r)}serialize(){throw new Error("Not implemented.")}_getPromptType(){return"pipeline"}};function Kl(e){return typeof e=="object"&&e!=null&&"withStructuredOutput"in e&&typeof e.withStructuredOutput=="function"}function em(e){return typeof e=="object"&&e!=null&&"lc_id"in e&&Array.isArray(e.lc_id)&&e.lc_id.join("/")==="langchain_core/runnables/RunnableBinding"}var Jl=class Yl extends Te{schema;method;lc_namespace=["langchain_core","prompts","structured"];get lc_aliases(){return{...super.lc_aliases,schema:"schema_"}}constructor(t){super(t),this.schema=t.schema,this.method=t.method}pipe(t){if(Kl(t))return super.pipe(t.withStructuredOutput(this.schema));if(em(t)&&Kl(t.bound))return super.pipe(new $n({bound:t.bound.withStructuredOutput(this.schema,...this.method?[{method:this.method}]:[]),kwargs:t.kwargs??{},config:t.config,configFactories:t.configFactories}));throw new Error('Structured prompts need to be piped to a language model that supports the "withStructuredOutput()" method.')}static fromMessagesAndSchema(t,r,n){return Yl.fromMessages(t,{schema:r,method:n})}};var Xl=N({AIMessagePromptTemplate:()=>so,BaseChatPromptTemplate:()=>cn,BaseMessagePromptTemplate:()=>an,BaseMessageStringPromptTemplate:()=>to,BasePromptTemplate:()=>Ze,BaseStringPromptTemplate:()=>mt,ChatMessagePromptTemplate:()=>ro,ChatPromptTemplate:()=>Te,DEFAULT_FORMATTER_MAPPING:()=>nn,DEFAULT_PARSER_MAPPING:()=>Qi,DictPromptTemplate:()=>on,FewShotChatMessagePromptTemplate:()=>ql,FewShotPromptTemplate:()=>Hl,HumanMessagePromptTemplate:()=>Qn,ImagePromptTemplate:()=>kr,MessagesPlaceholder:()=>Xn,PipelinePromptTemplate:()=>Wl,PromptTemplate:()=>Re,StructuredPrompt:()=>Jl,SystemMessagePromptTemplate:()=>ln,checkValidTemplate:()=>ft,interpolateFString:()=>Yi,interpolateMustache:()=>Xi,parseFString:()=>Qt,parseMustache:()=>Cr,parseTemplate:()=>Zt,renderTemplate:()=>le});var Ql=N({BaseDocumentCompressor:()=>tm}),tm=class{static isBaseDocumentCompressor(e){return e?.compressDocuments!==void 0}};var Zl=N({BaseRetriever:()=>un}),un=class extends K{callbacks;tags;metadata;verbose;constructor(e){super(e),this.callbacks=e?.callbacks,this.tags=e?.tags??[],this.metadata=e?.metadata??{},this.verbose=e?.verbose??!1}_getRelevantDocuments(e,t){throw new Error("Not implemented!")}async invoke(e,t){let r=lc(ac(t)),n=await(await dr.configure(r.callbacks,this.callbacks,r.tags,this.tags,r.metadata,this.metadata,{verbose:this.verbose}))?.handleRetrieverStart(this.toJSON(),e,r.runId,void 0,void 0,void 0,r.runName);try{let s=await this._getRelevantDocuments(e,n);return await n?.handleRetrieverEnd(s),s}catch(s){throw await n?.handleRetrieverError(s),s}}};var eu=N({BaseStore:()=>tu,InMemoryStore:()=>rm}),tu=class extends Me{},rm=class extends tu{lc_namespace=["langchain","storage"];store={};async mget(e){return e.map(t=>this.store[t])}async mset(e){for(let[t,r]of e)this.store[t]=r}async mdelete(e){for(let t of e)delete this.store[t]}async*yieldKeys(e){let t=Object.keys(this.store);for(let r of t)(e===void 0||r.startsWith(e))&&(yield r)}};var De={and:"and",or:"or",not:"not"},j={eq:"eq",ne:"ne",lt:"lt",gt:"gt",lte:"lte",gte:"gte"},es=class{},ts=class{accept(e){if(this.exprName==="Operation")return e.visitOperation(this);if(this.exprName==="Comparison")return e.visitComparison(this);if(this.exprName==="StructuredQuery")return e.visitStructuredQuery(this);throw new Error("Unknown Expression type")}},rs=class extends ts{},ru=class extends rs{comparator;attribute;value;exprName="Comparison";constructor(e,t,r){super(),this.comparator=e,this.attribute=t,this.value=r}},nu=class extends rs{operator;args;exprName="Operation";constructor(e,t){super(),this.operator=e,this.args=t}},su=class extends ts{query;filter;exprName="StructuredQuery";constructor(e,t){super(),this.query=e,this.filter=t}};function oo(e){return e&&typeof e=="object"&&!Array.isArray(e)}function we(e){return e?typeof e=="string"&&e.length>0||typeof e=="function"?!1:oo(e)&&Object.keys(e).length===0:!0}function ao(e){if(typeof e=="number")return e%1===0;if(typeof e=="string"){let t=parseInt(e,10);return!Number.isNaN(t)&&t%1===0&&t.toString()===e}return!1}function co(e){if(typeof e=="number")return e%1!==0;if(typeof e=="string"){let t=parseFloat(e);return!Number.isNaN(t)&&t%1!==0&&t.toString()===e}return!1}function lo(e){return typeof e=="string"&&(Number.isNaN(parseFloat(e))||parseFloat(e).toString()!==e)}function uo(e){return typeof e=="boolean"}function Er(e){let t;if(lo(e))t=e;else if(ao(e))t=parseInt(e,10);else if(co(e))t=parseFloat(e);else if(uo(e))t=!!e;else throw new Error("Unsupported value type");return t}var pn=class extends es{},iu=class extends pn{allowedOperators;allowedComparators;constructor(e){super(),this.allowedOperators=e?.allowedOperators??[De.and,De.or],this.allowedComparators=e?.allowedComparators??[j.eq,j.ne,j.gt,j.gte,j.lt,j.lte]}formatFunction(e){if(e in j){if(this.allowedComparators.length>0&&this.allowedComparators.indexOf(e)===-1)throw new Error(`Comparator ${e} not allowed. Allowed comparators: ${this.allowedComparators.join(", ")}`)}else if(e in De){if(this.allowedOperators.length>0&&this.allowedOperators.indexOf(e)===-1)throw new Error(`Operator ${e} not allowed. Allowed operators: ${this.allowedOperators.join(", ")}`)}else throw new Error("Unknown comparator or operator");return`$${e}`}visitOperation(e){let t=e.args?.map(r=>r.accept(this));return{[this.formatFunction(e.operator)]:t}}visitComparison(e){return{[e.attribute]:{[this.formatFunction(e.comparator)]:Er(e.value)}}}visitStructuredQuery(e){let t={};return e.filter&&(t={filter:e.filter.accept(this)}),t}mergeFilters(e,t,r="and",n=!1){if(!(we(e)&&we(t))){if(we(e)||r==="replace")return we(t)?void 0:t;if(we(t))return n?e:r==="and"?void 0:e;if(r==="and")return{$and:[e,t]};if(r==="or")return{$or:[e,t]};throw new Error("Unknown merge type")}}};var ou=class extends pn{allowedOperators=[De.and,De.or];allowedComparators=[j.eq,j.ne,j.gt,j.gte,j.lt,j.lte];formatFunction(){throw new Error("Not implemented")}getAllowedComparatorsForType(e){switch(e){case"string":return[j.eq,j.ne,j.gt,j.gte,j.lt,j.lte];case"number":return[j.eq,j.ne,j.gt,j.gte,j.lt,j.lte];case"boolean":return[j.eq,j.ne];default:throw new Error(`Unsupported data type: ${e}`)}}getComparatorFunction(e){switch(e){case j.eq:return(t,r)=>t===r;case j.ne:return(t,r)=>t!==r;case j.gt:return(t,r)=>t>r;case j.gte:return(t,r)=>t>=r;case j.lt:return(t,r)=>t<r;case j.lte:return(t,r)=>t<=r;default:throw new Error("Unknown comparator")}}getOperatorFunction(e){switch(e){case De.and:return(t,r)=>t&&r;case De.or:return(t,r)=>t||r;default:throw new Error("Unknown operator")}}visitOperation(e){let{operator:t,args:r}=e;if(this.allowedOperators.includes(t)){let n=this.getOperatorFunction(t);return s=>r?r.reduce((i,o)=>{let a=o.accept(this);if(typeof a=="function")return n(i,a(s));throw new Error("Filter is not a function")},!0):!0}else throw new Error("Operator not allowed")}visitComparison(e){let{comparator:t,attribute:r,value:n}=e,s=[j.ne];if(this.allowedComparators.includes(t)){if(!this.getAllowedComparatorsForType(typeof n).includes(t))throw new Error(`'${t}' comparator not allowed to be used with ${typeof n}`);let i=this.getComparatorFunction(t);return o=>{let a=o.metadata[r];return a===void 0?!!s.includes(t):i(a,Er(n))}}else throw new Error("Comparator not allowed")}visitStructuredQuery(e){if(!e.filter)return{};let t=e.filter?.accept(this);if(typeof t!="function")throw new Error("Structured query filter is not a function");return{filter:t}}mergeFilters(e,t,r="and"){if(!(we(e)&&we(t))){if(we(e)||r==="replace")return we(t)?void 0:t;if(we(t))return r==="and"?void 0:e;if(r==="and")return n=>e(n)&&t(n);if(r==="or")return n=>e(n)||t(n);throw new Error("Unknown merge type")}}};var au=N({BaseTranslator:()=>pn,BasicTranslator:()=>iu,Comparators:()=>j,Comparison:()=>ru,Expression:()=>ts,FilterDirective:()=>rs,FunctionalTranslator:()=>ou,Operation:()=>nu,Operators:()=>De,StructuredQuery:()=>su,Visitor:()=>es,castValue:()=>Er,isBoolean:()=>uo,isFilterEmpty:()=>we,isFloat:()=>co,isInt:()=>ao,isObject:()=>oo,isString:()=>lo});function hn(e){if(e==null||typeof e!="object")return!1;let t=e;return typeof t.text<"u"&&typeof t.toolCalls<"u"&&typeof t.reasoning<"u"&&typeof t.usage<"u"&&typeof t.output<"u"&&typeof t[Symbol.asyncIterator]=="function"}function cu(e,t,r){return e==null?!1:Object.entries(t).every(([n,s])=>r(e[n],s))}function lu(e,t,r){return e==null?!1:cu(e,t,r)}function uu(e){return e.content.find(t=>t.type==="text")?.text}function nm(e,t,r){if(t.id!==void 0&&e.id!==t.id||t.text!==void 0&&uu(e)!==t.text)return!1;if(t.toolCalls!==void 0){let n=e.tool_calls??[];if(n.length!==t.toolCalls.length)return!1;for(let s=0;s<t.toolCalls.length;s++){let i=n[s],o=t.toolCalls[s];if(i?.name!==o.name||!r(i.args,o.args))return!1}}return!(t.usage!==void 0&&!lu(e.usage_metadata,t.usage,r)||t.responseMetadata!==void 0&&!cu(e.response_metadata,t.responseMetadata,r))}function dn(e,t,r){return{pass:!1,message:()=>`${r.matcherHint(t)}
|
|
22
|
+
|
|
23
|
+
Expected: ChatModelStream (return value of model.streamEvents("Hello"))
|
|
24
|
+
Received: ${r.printReceived(e)}`,actual:e,expected:"ChatModelStream"}}function mn(e,t){return t?!e:e}async function sm(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamText";if(!hn(e))return dn(e,s,n);let i=await e.text;return{pass:mn(i===t,r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
25
|
+
|
|
26
|
+
Expected stream text: ${r?"not ":""}${n.printExpected(t)}
|
|
27
|
+
Received stream text: ${n.printReceived(i)}`,actual:i,expected:t}}async function im(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamReasoning";if(!hn(e))return dn(e,s,n);let i=await e.reasoning;return{pass:mn(i===t,r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
28
|
+
|
|
29
|
+
Expected stream reasoning: ${r?"not ":""}${n.printExpected(t)}
|
|
30
|
+
Received stream reasoning: ${n.printReceived(i)}`,actual:i,expected:t}}async function om(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamToolCalls";if(!hn(e))return dn(e,s,n);let i=await e.toolCalls,o=i.length===t.length&&t.every((a,c)=>{let l=i[c];return l?.name===a.name&&this.equals(l.args,a.args)});return o=mn(o,r),{pass:o,message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
31
|
+
|
|
32
|
+
Expected stream tool calls: ${n.printExpected(t)}
|
|
33
|
+
Received stream tool calls: ${n.printReceived(i.map(a=>({name:a.name,args:a.args})))}`,actual:i.map(a=>({name:a.name,args:a.args})),expected:t}}async function am(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamUsage";if(!hn(e))return dn(e,s,n);let i=await e.usage;return{pass:mn(lu(i,t,this.equals),r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
34
|
+
|
|
35
|
+
Expected stream usage: ${n.printExpected(t)}
|
|
36
|
+
Received stream usage: ${n.printReceived(i)}`,actual:i,expected:t}}async function cm(e,t){let{isNot:r,utils:n}=this,s="toHaveStreamOutput";if(!hn(e))return dn(e,s,n);let i=await e.output;return{pass:mn(nm(i,t,this.equals),r),message:()=>`${n.matcherHint(s,void 0,void 0,{isNot:r})}
|
|
37
|
+
|
|
38
|
+
Expected stream output: ${n.printExpected(t)}
|
|
39
|
+
Received stream output: ${n.printReceived({id:i.id,text:uu(i),tool_calls:i.tool_calls?.map(o=>({name:o.name,args:o.args})),usage_metadata:i.usage_metadata,response_metadata:i.response_metadata})}`,actual:i,expected:t}}var xr={toHaveStreamText:sm,toHaveStreamReasoning:im,toHaveStreamToolCalls:om,toHaveStreamUsage:am,toHaveStreamOutput:cm};function fn(e){return ee.isInstance(e)?e.constructor.name||e.type:typeof e}function ns(e,t){return function(r,n){let{isNot:s,utils:i}=this;if(!t(r))return{pass:!1,message:()=>`${i.matcherHint(`toBe${e}`,void 0,void 0)}
|
|
40
|
+
|
|
41
|
+
Expected: ${s?"not ":""}${e}
|
|
42
|
+
Received: ${fn(r)}`,actual:fn(r),expected:e};if(n===void 0)return{pass:!0,message:()=>`${i.matcherHint(`toBe${e}`,void 0,void 0)}
|
|
43
|
+
|
|
44
|
+
Expected: not ${e}
|
|
45
|
+
Received: ${e}`};let o=r;return typeof n=="string"?{pass:o.content===n,message:()=>`${i.matcherHint(`toBe${e}`,void 0,void 0)}
|
|
46
|
+
|
|
47
|
+
Expected: ${e} with content ${i.printExpected(n)}
|
|
48
|
+
Received: ${e} with content ${i.printReceived(o.content)}`,actual:o.content,expected:n}:{pass:Object.entries(n).every(([a,c])=>this.equals(o[a],c)),message:()=>{let a={};for(let c of Object.keys(n))a[c]=o[c];return`${i.matcherHint(`toBe${e}`,void 0,void 0)}
|
|
49
|
+
|
|
50
|
+
Expected: ${e} matching ${i.printExpected(n)}
|
|
51
|
+
Received: ${e} with ${i.printReceived(a)}`},actual:(()=>{let a={};for(let c of Object.keys(n))a[c]=o[c];return a})(),expected:n}}}var po=ns("HumanMessage",Ct.isInstance),ho=ns("AIMessage",te.isInstance),mo=ns("SystemMessage",Rn.isInstance),fo=ns("ToolMessage",Ut.isInstance);function go(e,t){let{isNot:r,utils:n}=this;if(!te.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
52
|
+
|
|
53
|
+
Expected: AIMessage
|
|
54
|
+
Received: ${fn(e)}`};let s=e.tool_calls??[];if(s.length!==t.length)return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
55
|
+
|
|
56
|
+
Expected ${r?"not ":""}${t.length} tool call(s), received ${s.length}`,actual:s.length,expected:t.length};let i=t.filter(o=>!s.some(a=>Object.entries(o).every(([c,l])=>this.equals(a[c],l))));return i.length>0?{pass:!1,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
57
|
+
|
|
58
|
+
Could not find matching tool call(s) for:
|
|
59
|
+
${n.printExpected(i)}
|
|
60
|
+
Received tool calls: ${n.printReceived(s.map(o=>({name:o.name,id:o.id,args:o.args})))}`,actual:s.map(o=>({name:o.name,id:o.id,args:o.args})),expected:t}:{pass:!0,message:()=>`${n.matcherHint("toHaveToolCalls")}
|
|
61
|
+
|
|
62
|
+
Expected AIMessage not to have matching tool calls`}}function yo(e,t){let{isNot:r,utils:n}=this;if(!te.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolCallCount")}
|
|
63
|
+
|
|
64
|
+
Expected: AIMessage
|
|
65
|
+
Received: ${fn(e)}`};let s=e.tool_calls?.length??0;return{pass:s===t,message:()=>`${n.matcherHint("toHaveToolCallCount")}
|
|
66
|
+
|
|
67
|
+
Expected ${r?"not ":""}${t} tool call(s)
|
|
68
|
+
Received: ${s}`,actual:s,expected:t}}function _o(e,t){let{isNot:r,utils:n}=this;if(!te.isInstance(e))return{pass:!1,message:()=>`${n.matcherHint("toContainToolCall")}
|
|
69
|
+
|
|
70
|
+
Expected: AIMessage
|
|
71
|
+
Received: ${fn(e)}`};let s=e.tool_calls??[];return{pass:s.some(i=>Object.entries(t).every(([o,a])=>this.equals(i[o],a))),message:()=>`${n.matcherHint("toContainToolCall")}
|
|
72
|
+
|
|
73
|
+
Expected AIMessage ${r?"not ":""}to contain a tool call matching ${n.printExpected(t)}
|
|
74
|
+
Received tool calls: ${n.printReceived(s.map(i=>({name:i.name,id:i.id})))}`,actual:s.map(i=>({name:i.name,id:i.id})),expected:t}}function wo(e,t){let{isNot:r,utils:n}=this;if(!Array.isArray(e))return{pass:!1,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
75
|
+
|
|
76
|
+
Expected an array of messages
|
|
77
|
+
Received: ${typeof e}`};let s=e.filter(Ut.isInstance);if(s.length!==t.length)return{pass:!1,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
78
|
+
|
|
79
|
+
Expected ${r?"not ":""}${t.length} tool message(s), found ${s.length}`,actual:s.length,expected:t.length};for(let i=0;i<t.length;i++)if(!Object.entries(t[i]).every(([o,a])=>this.equals(s[i][o],a)))return{pass:!1,message:()=>{let o={};for(let a of Object.keys(t[i]))o[a]=s[i][a];return`${n.matcherHint("toHaveToolMessages")}
|
|
80
|
+
|
|
81
|
+
Tool message at index ${i} did not match:
|
|
82
|
+
Expected: ${n.printExpected(t[i])}
|
|
83
|
+
Received: ${n.printReceived(o)}`},actual:s[i],expected:t[i]};return{pass:!0,message:()=>`${n.matcherHint("toHaveToolMessages")}
|
|
84
|
+
|
|
85
|
+
Expected messages not to contain matching tool messages`}}function bo(e,t){let{isNot:r,utils:n}=this,s=e?.__interrupt__;if(!(Array.isArray(s)&&s.length>0))return{pass:!1,message:()=>`${n.matcherHint("toHaveBeenInterrupted")}
|
|
86
|
+
|
|
87
|
+
Expected result ${r?"not ":""}to have been interrupted
|
|
88
|
+
Received __interrupt__: ${n.printReceived(s)}`};if(t===void 0)return{pass:!0,message:()=>`${n.matcherHint("toHaveBeenInterrupted")}
|
|
89
|
+
|
|
90
|
+
Expected result not to have been interrupted
|
|
91
|
+
Received ${s.length} interrupt(s)`};let i=s[0]?.value;return{pass:this.equals(i,t),message:()=>`${n.matcherHint("toHaveBeenInterrupted")}
|
|
92
|
+
|
|
93
|
+
Expected interrupt value: ${n.printExpected(t)}
|
|
94
|
+
Received interrupt value: ${n.printReceived(i)}`,actual:i,expected:t}}function vo(e,t){let{isNot:r,utils:n}=this,s=e?.structuredResponse;return s===void 0?{pass:!1,message:()=>`${n.matcherHint("toHaveStructuredResponse")}
|
|
95
|
+
|
|
96
|
+
Expected result ${r?"not ":""}to have a structured response
|
|
97
|
+
Received structuredResponse: undefined`}:t===void 0?{pass:!0,message:()=>`${n.matcherHint("toHaveStructuredResponse")}
|
|
98
|
+
|
|
99
|
+
Expected result not to have a structured response`}:{pass:Object.entries(t).every(([i,o])=>this.equals(s[i],o)),message:()=>`${n.matcherHint("toHaveStructuredResponse")}
|
|
100
|
+
|
|
101
|
+
Expected structured response: ${n.printExpected(t)}
|
|
102
|
+
Received structured response: ${n.printReceived(s)}`,actual:s,expected:t}}var pu={toBeHumanMessage:po,toBeAIMessage:ho,toBeSystemMessage:mo,toBeToolMessage:fo,toHaveToolCalls:go,toHaveToolCallCount:yo,toContainToolCall:_o,toHaveToolMessages:wo,toHaveBeenInterrupted:bo,toHaveStructuredResponse:vo,...xr};function lm(e){return e.map(t=>t.text).filter(Boolean).join("-")}var hu=0;function um(){return hu+=1,`fake_tc_${hu}`}var So=class du extends gr{queue=[];_alwaysThrowError;_structuredResponseValue;_tools=[];_state={callIndex:0,calls:[]};get calls(){return this._state.calls}get callCount(){return this._state.calls.length}constructor(){super({})}_llmType(){return"fake-model-builder"}_combineLLMOutput(){return[]}respond(t){return typeof t=="function"?this.queue.push({kind:"factory",factory:t}):ee.isInstance(t)?this.queue.push({kind:"message",message:t}):this.queue.push({kind:"error",error:t}),this}respondWithTools(t){return this.queue.push({kind:"toolCalls",toolCalls:t.map(r=>({name:r.name,args:r.args,id:r.id??um(),type:"tool_call"}))}),this}alwaysThrow(t){return this._alwaysThrowError=t,this}structuredResponse(t){return this._structuredResponseValue=t,this}bindTools(t){let r=[...this._tools,...t],n=new du;return n.queue=this.queue,n._alwaysThrowError=this._alwaysThrowError,n._structuredResponseValue=this._structuredResponseValue,n._tools=r,n._state=this._state,n.withConfig({})}withStructuredOutput(t,r){let{_structuredResponseValue:n}=this;return jn.from(async()=>n)}async _generate(t,r,n){this._state.calls.push({messages:[...t],options:r});let s=this._state.callIndex;if(this._state.callIndex+=1,this._alwaysThrowError)throw this._alwaysThrowError;let i=this.queue[s];if(!i)throw new Error(`FakeModel: no response queued for invocation ${s} (${this.queue.length} total queued).`);if(i.kind==="error")throw i.error;if(i.kind==="factory"){let a=i.factory(t);if(!ee.isInstance(a))throw a;return{generations:[{text:"",message:a}]}}if(i.kind==="message")return{generations:[{text:"",message:i.message}]};let o=lm(t);return{generations:[{text:o,message:new te({content:o,id:s.toString(),tool_calls:i.toolCalls.length>0?i.toolCalls.map(a=>({...a,type:"tool_call"})):void 0})}],llmOutput:{}}}};function mu(){return new So}function ss(e){return{async*[Symbol.asyncIterator](){for(let t of e)yield t}}}function is(e="test-model"){let t=gn(e),r=t[t.length-1];return t[t.length-1]={...r,usage:{prompt_tokens:10,completion_tokens:2,total_tokens:12}},t}function gn(e="test-model"){return[{id:"chatcmpl-text",model:e,choices:[{index:0,delta:{role:"assistant",content:"Hello"},finish_reason:null}]},{id:"chatcmpl-text",model:e,choices:[{index:0,delta:{content:" world"},finish_reason:null}]},{id:"chatcmpl-text",model:e,choices:[{index:0,delta:{},finish_reason:"stop"}]}]}function os(e="test-model"){return[{id:"chatcmpl-reason",model:e,choices:[{index:0,delta:{role:"assistant",reasoning_content:"Let me reason..."},finish_reason:null}]},{id:"chatcmpl-reason",model:e,choices:[{index:0,delta:{content:"Answer."},finish_reason:null}]},{id:"chatcmpl-reason",model:e,choices:[{index:0,delta:{},finish_reason:"stop"}]}]}function as(e="test-model"){return[{id:"chatcmpl-tools",model:e,choices:[{index:0,delta:{role:"assistant",content:"Let me search."},finish_reason:null}]},{id:"chatcmpl-tools",model:e,choices:[{index:0,delta:{tool_calls:[{index:0,id:"call_abc",type:"function",function:{name:"web_search",arguments:'{"query"'}}]},finish_reason:null}]},{id:"chatcmpl-tools",model:e,choices:[{index:0,delta:{tool_calls:[{index:0,function:{arguments:':"weather"}'}}]},finish_reason:null}]},{id:"chatcmpl-tools",model:e,choices:[{index:0,delta:{},finish_reason:"tool_calls"}]}]}function cs(e){let t=new TextEncoder;return new Response(new ReadableStream({start(r){for(let n of e)r.enqueue(t.encode(`data: ${JSON.stringify(n)}
|
|
103
|
+
|
|
104
|
+
`));r.close()}}),{status:200,headers:{"Content-Type":"text/event-stream"}})}var fu=N({FakeBuiltModel:()=>So,asAsyncIterable:()=>ss,fakeModel:()=>mu,langchainMatchers:()=>pu,openAIReasoningTextChunks:()=>os,openAITextOnlyChunks:()=>gn,openAITextOnlyChunksWithUsage:()=>is,openAIToolCallChunks:()=>as,sseResponseFromOpenAIChunks:()=>cs,streamMatchers:()=>xr,toBeAIMessage:()=>ho,toBeHumanMessage:()=>po,toBeSystemMessage:()=>mo,toBeToolMessage:()=>fo,toContainToolCall:()=>_o,toHaveBeenInterrupted:()=>bo,toHaveStructuredResponse:()=>vo,toHaveToolCallCount:()=>yo,toHaveToolCalls:()=>go,toHaveToolMessages:()=>wo});var gu=N({RunCollectorCallbackHandler:()=>pm}),pm=class extends hr{name="run_collector";exampleId;tracedRuns;constructor({exampleId:e}={}){super({_awaitHandler:!0}),this.exampleId=e,this.tracedRuns=[]}async persistRun(e){let t={...e};t.reference_example_id=this.exampleId,this.tracedRuns.push(t)}};var yu=N({});var _u=N({context:()=>hm});function hm(e,...t){let r=e.raw,n="";for(let s=0;s<r.length;s++){let i=r[s].replace(/\\\n[ \t]*/g,"").replace(/\\`/g,"`").replace(/\\\$/g,"$").replace(/\\\{/g,"{");if(n+=i,s<t.length){let o=dm(t[s],n);n+=typeof o=="string"?o:JSON.stringify(o)}}return n=mm(n),n=n.trim(),n=n.replace(/\\n/g,`
|
|
105
|
+
`),n}function dm(e,t){if(typeof e!="string"||!e.includes(`
|
|
106
|
+
`))return e;let r=t.slice(t.lastIndexOf(`
|
|
107
|
+
`)+1).match(/^(\s+)/);if(r){let n=r[1];return e.replace(/\n/g,`
|
|
108
|
+
${n}`)}return e}function mm(e){let t=e.split(`
|
|
109
|
+
`),r=null;for(let n of t){let s=n.match(/^(\s+)\S+/);if(s){let i=s[1].length;r===null?r=i:r=Math.min(r,i)}}return r===null?e:t.map(n=>n[0]===" "||n[0]===" "?n.slice(r):n).join(`
|
|
110
|
+
`)}var wu=N({EventStreamContentType:()=>fm,convertEventStreamToIterableReadableDataStream:()=>ym,getBytes:()=>bu,getLines:()=>vu,getMessages:()=>Su}),fm="text/event-stream";async function bu(e,t){if(e instanceof ReadableStream){let r=e.getReader();for(;;){let n=await r.read();if(n.done){t(new Uint8Array,!0);break}t(n.value)}}else try{for await(let r of e)t(new Uint8Array(r));t(new Uint8Array,!0)}catch(r){throw new Error(["Parsing event source stream failed.","Ensure your implementation of fetch returns a web or Node readable stream.",`Error: ${r.message}`].join(`
|
|
111
|
+
`))}}function vu(e){let t,r,n,s=!1;return function(o,a){if(a){e(o,0,!0);return}t===void 0?(t=o,r=0,n=-1):t=gm(t,o);let c=t.length,l=0;for(;r<c;){s&&(t[r]===10&&(l=++r),s=!1);let u=-1;for(;r<c&&u===-1;++r)switch(t[r]){case 58:n===-1&&(n=r-l);break;case 13:s=!0;case 10:u=r;break}if(u===-1)break;e(t.subarray(l,u),n),l=r,n=-1}l===c?t=void 0:l!==0&&(t=t.subarray(l),r-=l)}}function Su(e,t,r){let n=Co(),s=new TextDecoder;return function(o,a,c){if(c){_m(n)||(e?.(n),n=Co());return}if(o.length===0)e?.(n),n=Co();else if(a>0){let l=s.decode(o.subarray(0,a)),u=a+(o[a+1]===32?2:1),p=s.decode(o.subarray(u));switch(l){case"data":n.data=n.data?n.data+`
|
|
112
|
+
`+p:p;break;case"event":n.event=p;break;case"id":t?.(n.id=p);break;case"retry":{let h=parseInt(p,10);Number.isNaN(h)||r?.(n.retry=h);break}}}}}function gm(e,t){let r=new Uint8Array(e.length+t.length);return r.set(e),r.set(t,e.length),r}function Co(){return{data:"",event:"",id:"",retry:void 0}}function ym(e,t){let r=new ReadableStream({async start(n){let s=Su(o=>{if(o.event==="error")throw new Error(o.data??"Unspecified event streaming error.");o.event==="metadata"?t?.(o):o.data&&n.enqueue(o.data)});await bu(e,vu((o,a,c)=>{s(o,a,c),c&&n.close()}))}});return Hr.fromReadableStream(r)}function _m(e){return e.data===""&&e.event===""&&e.id===""&&e.retry===void 0}var Cu=N({});function ls(e,t){let r=0,n=0,s=0;for(let i=0;i<e.length;i++)r+=e[i]*t[i],n+=e[i]*e[i],s+=t[i]*t[i];return r/(Math.sqrt(n)*Math.sqrt(s))}function ku(e,t){let r=0;for(let n=0;n<e.length;n++)r+=e[n]*t[n];return r}function wm(e,t){let r=0;for(let n=0;n<e.length;n++)r+=(e[n]-t[n])*(e[n]-t[n]);return r}function Eu(e,t){return Math.sqrt(wm(e,t))}var xu=N({cosineSimilarity:()=>ko,euclideanDistance:()=>Sm,innerProduct:()=>vm,matrixFunc:()=>us,maximalMarginalRelevance:()=>Cm,normalize:()=>bm});function us(e,t,r){if(e.length===0||e[0].length===0||t.length===0||t[0].length===0)return[[]];if(e[0].length!==t[0].length)throw new Error(`Number of columns in X and Y must be the same. X has shape ${[e.length,e[0].length]} and Y has shape ${[t.length,t[0].length]}.`);return e.map(n=>t.map(s=>r(n,s)).map(s=>Number.isNaN(s)?0:s))}function bm(e,t=!1){let r=km(e);return e.map(n=>n.map(s=>t?1-s/r:s/r))}function ko(e,t){return us(e,t,ls)}function vm(e,t){return us(e,t,ku)}function Sm(e,t){return us(e,t,Eu)}function Cm(e,t,r=.5,n=4){if(Math.min(n,t.length)<=0)return[];let s=ko(Array.isArray(e[0])?e:[e],t)[0],i=Iu(s).maxIndex,o=[t[i]],a=[i];for(;a.length<Math.min(n,t.length);){let c=-1/0,l=-1,u=ko(t,o);s.forEach((p,h)=>{if(a.includes(h))return;let d=Math.max(...u[h]),m=r*p-(1-r)*d;m>c&&(c=m,l=h)}),o.push(t[l]),a.push(l)}return a}function Iu(e){if(e.length===0)return{maxIndex:-1,maxValue:NaN};let t=e[0],r=0;for(let n=1;n<e.length;n+=1)e[n]>t&&(r=n,t=e[n]);return{maxIndex:r,maxValue:t}}function km(e){return e.reduce((t,r)=>Math.max(t,Iu(r).maxValue),0)}var Tu=N({isCloudMetadata:()=>Eo,isLocalhost:()=>xo,isPrivateIp:()=>Ou,isSafeUrl:()=>Pm,isSameOrigin:()=>Om,validateSafeUrl:()=>Ru}),Em=["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","127.0.0.0/8","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10","ff00::/8"],xm=["169.254.169.254","169.254.170.2","100.100.100.200"],Im=["metadata.google.internal","metadata","instance-data"],Tm=["localhost","localhost.localdomain"],Am=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function Au(e){return Am.test(e)}function ps(e){return Pu(e)!==null}function Nu(e){return Au(e)||ps(e)}function Mu(e){if(Au(e))return e.split(".").map(t=>parseInt(t,10));if(ps(e)){let t=Pu(e);if(!t)return null;let r=t.split(":"),n=[];for(let s of r)n.push(parseInt(s,16));return n}return null}function Pu(e){if(!e||typeof e!="string"||!e.includes(":")||!/^[0-9a-fA-F:]+$/.test(e))return null;let t=e;if(t.includes("::")){let n=t.split("::");if(n.length>2)return null;let[s,i]=n,o=s?s.split(":"):[],a=i?i.split(":"):[],c=8-(o.length+a.length);if(c<0)return null;let l=Array(c).fill("0");t=[...o,...l,...a].filter(u=>u!=="").join(":")}let r=t.split(":");if(r.length!==8)return null;for(let n of r)if(n.length===0||n.length>4||!/^[0-9a-fA-F]+$/.test(n))return null;return r.map(n=>n.padStart(4,"0").toLowerCase()).join(":")}function Nm(e){let[t,r]=e.split("/");if(!t||!r)return null;let n=Mu(t);if(!n)return null;let s=parseInt(r,10);if(isNaN(s))return null;let i=ps(t);return i&&s>128||!i&&s>32?null:{addr:n,prefixLen:s,isIpv6:i}}function Mm(e,t){let r=Mu(e);if(!r)return!1;let n=Nm(t);if(!n)return!1;let s=ps(e);if(s!==n.isIpv6)return!1;let{addr:i,prefixLen:o}=n;if(s)for(let a=0;a<Math.ceil(o/16);a++){let c=65535<<16-Math.min(16,o-a*16)&65535;if((r[a]&c)!==(i[a]&c))return!1}else for(let a=0;a<Math.ceil(o/8);a++){let c=255<<8-Math.min(8,o-a*8)&255;if((r[a]&c)!==(i[a]&c))return!1}return!0}function Ou(e){if(!Nu(e))return!1;for(let t of Em)if(Mm(e,t))return!0;return!1}function Eo(e,t){if(xm.includes(t||""))return!0;let r=e.toLowerCase();return!!Im.includes(r)}function xo(e,t){if(t&&(t==="127.0.0.1"||t==="::1"||t==="0.0.0.0"||t.startsWith("127.")))return!0;let r=e.toLowerCase();return!!Tm.includes(r)}function Ru(e,t){let r=t?.allowPrivate??!1,n=t?.allowHttp??!1;try{let s;try{s=new URL(e)}catch{throw new Error(`Invalid URL: ${e}`)}let i=s.hostname;if(!i)throw new Error("URL missing hostname.");if(Eo(i))throw new Error(`URL points to cloud metadata endpoint: ${i}`);if(xo(i)){if(!r)throw new Error(`URL points to localhost: ${i}`);return e}let o=s.protocol;if(o!=="http:"&&o!=="https:")throw new Error(`Invalid URL scheme: ${o}. Only http and https are allowed.`);if(o==="http:"&&!n)throw new Error("HTTP scheme not allowed. Use HTTPS or set allowHttp: true.");if(Nu(i)){let a=i;if(xo(i,a)){if(!r)throw new Error(`URL points to localhost: ${i}`);return e}if(Eo(i,a))throw new Error(`URL resolves to cloud metadata IP: ${a} (${i})`);if(Ou(a)&&!r)throw new Error(`URL resolves to private IP: ${a} (${i}). Set allowPrivate: true to allow.`);return e}return e}catch(s){throw s&&typeof s=="object"&&"message"in s?s:new Error(`URL validation failed: ${s}`)}}function Pm(e,t){try{return Ru(e,t),!0}catch{return!1}}function Om(e,t){try{return new URL(e).origin===new URL(t).origin}catch{return!1}}var Du=N({SaveableVectorStore:()=>Rm,VectorStore:()=>ds,VectorStoreRetriever:()=>hs}),hs=class extends un{static lc_name(){return"VectorStoreRetriever"}get lc_namespace(){return["langchain_core","vectorstores"]}vectorStore;k=4;searchType="similarity";searchKwargs;filter;_vectorstoreType(){return this.vectorStore._vectorstoreType()}constructor(e){super(e),this.vectorStore=e.vectorStore,this.k=e.k??this.k,this.searchType=e.searchType??this.searchType,this.filter=e.filter,e.searchType==="mmr"&&(this.searchKwargs=e.searchKwargs)}async _getRelevantDocuments(e,t){if(this.searchType==="mmr"){if(typeof this.vectorStore.maxMarginalRelevanceSearch!="function")throw new Error(`The vector store backing this retriever, ${this._vectorstoreType()} does not support max marginal relevance search.`);return this.vectorStore.maxMarginalRelevanceSearch(e,{k:this.k,filter:this.filter,...this.searchKwargs},t?.getChild("vectorstore"))}return this.vectorStore.similaritySearch(e,this.k,this.filter,t?.getChild("vectorstore"))}async addDocuments(e,t){return this.vectorStore.addDocuments(e,t)}},ds=class extends Me{lc_namespace=["langchain","vectorstores",this._vectorstoreType()];embeddings;constructor(e,t){super(t),this.embeddings=e}async delete(e){throw new Error("Not implemented.")}async similaritySearch(e,t=4,r=void 0,n=void 0){return(await this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,r)).map(s=>s[0])}async similaritySearchWithScore(e,t=4,r=void 0,n=void 0){return this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,r)}static fromTexts(e,t,r,n){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}static fromDocuments(e,t,r){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}asRetriever(e,t,r,n,s,i){if(typeof e=="number")return new hs({vectorStore:this,k:e,filter:t,tags:[...n??[],this._vectorstoreType()],metadata:s,verbose:i,callbacks:r});{let o={vectorStore:this,k:e?.k,filter:e?.filter,tags:[...e?.tags??[],this._vectorstoreType()],metadata:e?.metadata,verbose:e?.verbose,callbacks:e?.callbacks,searchType:e?.searchType};return e?.searchType==="mmr"?new hs({...o,searchKwargs:e.searchKwargs}):new hs({...o})}}},Rm=class extends ds{static load(e,t){throw new Error("Not implemented")}};var $u=class extends gr{_combineLLMOutput(){return[]}_llmType(){return"fake"}async _generate(e,t,r){if(t?.stop?.length)return{generations:[{message:new te(t.stop[0]),text:t.stop[0]}]};let n=e.map(s=>typeof s.content=="string"?s.content:JSON.stringify(s.content,null,2)).join(`
|
|
113
|
+
`);return await r?.handleLLMNewToken(n),{generations:[{message:new te(n),text:n}],llmOutput:{}}}},ju=class Lu extends gr{sleep=50;responses=[];chunks=[];toolStyle="openai";thrownErrorString;tools=[];constructor({sleep:t=50,responses:r=[],chunks:n=[],toolStyle:s="openai",thrownErrorString:i,...o}){super(o),this.sleep=t,this.responses=r,this.chunks=n,this.toolStyle=s,this.thrownErrorString=i}_llmType(){return"fake"}bindTools(t){let r=[...this.tools,...t],n=r.map(o=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:o.name,description:o.description,parameters:ut(o.schema)}};case"anthropic":return{name:o.name,description:o.description,input_schema:ut(o.schema)};case"bedrock":return{toolSpec:{name:o.name,description:o.description,inputSchema:ut(o.schema)}};case"google":return{name:o.name,description:o.description,parameters:ut(o.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:n}]:n,i=new Lu({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return i.tools=r,i.withConfig({tools:s})}async _generate(t,r,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);return{generations:[{text:"",message:new te({content:this.responses?.[0]?.content??t[0].content??"",tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(t,r,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);if(this.chunks?.length){for(let o of this.chunks){let a=new Dn({message:new ur({content:o.content,tool_calls:o.tool_calls,additional_kwargs:o.additional_kwargs??{}}),text:o.content?.toString()??""});if(r.signal?.aborted)break;yield a,await n?.handleLLMNewToken(o.content,void 0,void 0,void 0,void 0,{chunk:a})}return}let s=this.responses?.[0]??new te(typeof t[0].content=="string"?t[0].content:""),i=typeof s.content=="string"?s.content:"";for(let o of i){await new Promise(c=>setTimeout(c,this.sleep));let a=new Dn({message:new ur({content:o}),text:o});if(r.signal?.aborted)break;yield a,await n?.handleLLMNewToken(o,void 0,void 0,void 0,void 0,{chunk:a})}}},Fu=class Vu extends gr{static lc_name(){return"FakeListChatModel"}lc_serializable=!0;responses;i=0;sleep;emitCustomEvent=!1;generationInfo;tools=[];toolStyle="openai";constructor(t){super(t);let{responses:r,sleep:n,emitCustomEvent:s,generationInfo:i}=t;this.responses=r,this.sleep=n,this.emitCustomEvent=s??this.emitCustomEvent,this.generationInfo=i}_combineLLMOutput(){return[]}_llmType(){return"fake-list"}async _generate(t,r,n){if(await this._sleepIfRequested(),r?.thrownErrorString)throw new Error(r.thrownErrorString);if(this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0}),r?.stop?.length)return{generations:[this._formatGeneration(r.stop[0])]};{let s=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(s)],llmOutput:{}}}}_formatGeneration(t){return{message:new te(t),text:t}}async*_streamResponseChunks(t,r,n){let s=this._currentResponse();this._incrementResponse(),this.emitCustomEvent&&await n?.handleCustomEvent("some_test_event",{someval:!0});let i=[...s];for(let o=0;o<i.length;o++){let a=i[o],c=o===i.length-1;if(await this._sleepIfRequested(),r?.thrownErrorString)throw new Error(r.thrownErrorString);let l=this._createResponseChunk(a,c?this.generationInfo:void 0);if(r.signal?.aborted)break;yield l,n?.handleLLMNewToken(a)}}async _sleepIfRequested(){this.sleep!==void 0&&await this._sleep()}async _sleep(){return new Promise(t=>{setTimeout(()=>t(),this.sleep)})}_createResponseChunk(t,r){return new Dn({message:new ur({content:t}),text:t,generationInfo:r})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){this.i<this.responses.length-1?this.i+=1:this.i=0}bindTools(t){let r=[...this.tools,...t],n=r.map(o=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:o.name,description:o.description,parameters:ut(o.schema)}};case"anthropic":return{name:o.name,description:o.description,input_schema:ut(o.schema)};case"bedrock":return{toolSpec:{name:o.name,description:o.description,inputSchema:ut(o.schema)}};case"google":return{name:o.name,description:o.description,parameters:ut(o.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:n}]:n,i=new Vu({responses:this.responses,sleep:this.sleep,emitCustomEvent:this.emitCustomEvent,generationInfo:this.generationInfo});return i.tools=r,i.toolStyle=this.toolStyle,i.i=this.i,i.withConfig({tools:s})}withStructuredOutput(t,r){return jn.from(async n=>{let s=await this.invoke(n);if(s.tool_calls?.[0]?.args)return s.tool_calls[0].args;if(typeof s.content=="string")return JSON.parse(s.content);throw new Error("No structured output found")})}};var Uu=class extends yi{vectorSize;constructor(e){super(e??{}),this.vectorSize=e?.vectorSize??4}async embedDocuments(e){return Promise.all(e.map(t=>this.embedQuery(t)))}async embedQuery(e){let t=e;t=t.toLowerCase().replaceAll(/[^a-z ]/g,"");let r=t.length%this.vectorSize,n=r===0?0:this.vectorSize-r,s=t.length+n;t=t.padEnd(s," ");let i=t.length/this.vectorSize,o=[];for(let a=0;a<t.length;a+=i)o.push(t.slice(a,a+i));return o.map(a=>{let c=0;for(let l=0;l<a.length;l+=1)c+=a===" "?0:a.charCodeAt(l);return c%26/26})}},Gu=class extends yi{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}};var Bu=class extends wi{response;thrownErrorString;constructor(e){super(e),this.response=e.response,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e,t,r){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let n=this.response??e;return await r?.handleLLMNewToken(n),n}},Hu=class extends wi{sleep=50;responses;thrownErrorString;constructor(e){super(e),this.sleep=e.sleep??this.sleep,this.responses=e.responses,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let t=this.responses?.[0];return this.responses=this.responses?.slice(1),t??e}async*_streamResponseChunks(e,t,r){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let n=this.responses?.[0];this.responses=this.responses?.slice(1);for(let s of n??e)await new Promise(i=>setTimeout(i,this.sleep)),yield{text:s,generationInfo:{}},await r?.handleLLMNewToken(s)}};var qu=class extends Di{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new Ct(e))}async addAIMessage(e){this.messages.push(new te(e))}async clear(){this.messages=[]}},zu=class extends Jn{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},Wu=class extends hr{name="fake_tracer";runs=[];constructor(){super()}persistRun(e){return this.runs.push(e),Promise.resolve()}};var Ku=class extends Pc{lc_namespace=["tests","fake"];getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}};var Ju=class extends un{lc_namespace=["test","fake"];output=[new ke({pageContent:"foo"}),new ke({pageContent:"bar"})];constructor(e){super(),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}};var Yu=class extends K{lc_namespace=["tests","fake"];returnOptions;constructor(e){super(e),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}};var Xu=class extends Hc{name;description;schema;constructor(e){super(e),this.name=e.name,this.description=e.description,this.schema=e.schema}async _call(e,t){return JSON.stringify(e)}};var Qu=class extends hr{runPromiseResolver;runPromise;name="single_run_extractor";constructor(){super(),this.runPromise=new Promise(e=>{this.runPromiseResolver=e})}async persistRun(e){this.runPromiseResolver(e)}async extract(){return this.runPromise}};var Zu=class ep extends ds{memoryVectors=[];similarity;_vectorstoreType(){return"memory"}constructor(t,{similarity:r,...n}={}){super(t,n),this.similarity=r??ls}async addDocuments(t){let r=t.map(({pageContent:n})=>n);return this.addVectors(await this.embeddings.embedDocuments(r),t)}async addVectors(t,r){let n=t.map((s,i)=>({content:r[i].pageContent,embedding:s,metadata:r[i].metadata}));this.memoryVectors=this.memoryVectors.concat(n)}async similaritySearchVectorWithScore(t,r,n){let s=o=>n?n(new ke({metadata:o.metadata,pageContent:o.content})):!0,i=this.memoryVectors.filter(s);return i.map((o,a)=>({similarity:this.similarity(t,o.embedding),index:a})).sort((o,a)=>o.similarity>a.similarity?-1:0).slice(0,r).map(o=>[new ke({metadata:i[o.index].metadata,pageContent:i[o.index].content}),o.similarity])}static async fromTexts(t,r,n,s){let i=[];for(let o=0;o<t.length;o+=1){let a=Array.isArray(r)?r[o]:r,c=new ke({pageContent:t[o],metadata:a});i.push(c)}return ep.fromDocuments(i,n,s)}static async fromDocuments(t,r,n){let s=new this(r,n);return await s.addDocuments(t),s}static async fromExistingIndex(t,r){return new this(t,r)}};var tp=N({FakeChatMessageHistory:()=>qu,FakeChatModel:()=>$u,FakeEmbeddings:()=>Gu,FakeLLM:()=>Bu,FakeListChatMessageHistory:()=>zu,FakeListChatModel:()=>Fu,FakeRetriever:()=>Ju,FakeRunnable:()=>Yu,FakeSplitIntoListParser:()=>Ku,FakeStreamingChatModel:()=>ju,FakeStreamingLLM:()=>Hu,FakeTool:()=>Xu,FakeTracer:()=>Wu,FakeVectorStore:()=>Zu,SingleRunExtractor:()=>Qu,SyntheticEmbeddings:()=>Uu,asAsyncIterable:()=>ss,openAIReasoningTextChunks:()=>os,openAITextOnlyChunks:()=>gn,openAITextOnlyChunksWithUsage:()=>is,openAIToolCallChunks:()=>as,sseResponseFromOpenAIChunks:()=>cs,streamMatchers:()=>xr});var rp=N({agents:()=>gl,caches:()=>Za,callbacks__base:()=>ec,callbacks__manager:()=>oc,callbacks__promises:()=>ic,chat_history:()=>yl,document_loaders__base:()=>bl,document_loaders__langsmith:()=>vl,documents:()=>wl,embeddings:()=>Sc,errors:()=>Xa,example_selectors:()=>Nl,index:()=>fl,indexing:()=>Ol,language_models__base:()=>Tc,language_models__chat_models:()=>Fc,language_models__compat:()=>Lc,language_models__event:()=>Rl,language_models__llms:()=>Uc,language_models__openai_completions_stream:()=>Vc,language_models__profile:()=>Dl,language_models__stream:()=>jc,language_models__structured_output:()=>$c,load__serializable:()=>qa,memory:()=>$l,messages:()=>vc,messages__tool:()=>Qa,output_parsers:()=>Rc,output_parsers__openai_functions:()=>Fl,output_parsers__openai_tools:()=>Gc,outputs:()=>dc,prompt_values:()=>Cc,prompts:()=>Xl,retrievers:()=>Zl,retrievers__document_compressors:()=>Ql,runnables:()=>Nc,runnables__graph:()=>bc,singletons:()=>cc,stores:()=>eu,structured_query:()=>au,testing:()=>fu,tools:()=>Bc,tracers__base:()=>rc,tracers__console:()=>nc,tracers__log_stream:()=>hc,tracers__run_collector:()=>gu,tracers__tracer_langchain:()=>sc,types__stream:()=>yu,utils__async_caller:()=>mc,utils__chunk_array:()=>qc,utils__context:()=>_u,utils__env:()=>Wa,utils__event_source_parse:()=>wu,utils__format:()=>Cu,utils__function_calling:()=>zc,utils__gateway:()=>Wc,utils__hash:()=>Ya,utils__json_patch:()=>Mc,utils__json_schema:()=>wc,utils__math:()=>xu,utils__ssrf:()=>Tu,utils__standard_schema:()=>fc,utils__stream:()=>uc,utils__testing:()=>tp,utils__tiktoken:()=>Ic,utils__types:()=>Dc,utils__uuid:()=>Fa,vectorstores:()=>Du});var Dm=50;function $m(e){let t={};for(let r=e;r&&r.prototype;r=Object.getPrototypeOf(r))Object.assign(t,Reflect.get(r.prototype,"lc_aliases"));return Object.entries(t).reduce((r,[n,s])=>(r[s]=n,r),{})}async function ms(e){let{optionalImportsMap:t,optionalImportEntrypoints:r,importMap:n,secretsMap:s,secretsFromEnv:i,path:o,depth:a,maxDepth:c}=this,l=o.join(".");if(a>c)throw new Error(`Maximum recursion depth (${c}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof e!="object"||e==null)return e;if(Array.isArray(e))return Promise.all(e.map((h,d)=>ms.call({...this,path:[...o,`${d}`],depth:a+1},h)));let u=e;if(Ba(u))return Ha(u);if("lc"in u&&"type"in u&&"id"in u&&u.lc===1&&u.type==="secret"){let[h]=u.id;if(h in s)return s[h];if(i){let d=Ka(h);if(d)return d}throw new Error(`Missing secret "${h}" at ${l}`)}if("lc"in u&&"type"in u&&"id"in u&&u.lc===1&&u.type==="not_implemented"){let h=JSON.stringify(u);throw new Error(`Trying to load an object that doesn't implement serialization: ${l} -> ${h}`)}if("lc"in u&&"type"in u&&"id"in u&&"kwargs"in u&&u.lc===1&&u.type==="constructor"){let h=u,d=JSON.stringify(h),[m,...f]=h.id.slice().reverse(),g=f.reverse(),y={langchain_core:rp,langchain:n},_=null,S=[g.join("/")];g[0]==="langchain_community"&&S.push(["langchain",...g.slice(1)].join("/"));let C=S.find(k=>k in t);if(ml.concat(r).includes(g.join("/"))||C)if(C!==void 0)_=await t[C];else throw new Error(`Missing key "${g.join("/")}" for ${l} in load(optionalImportsMap={})`);else{let k;if(g[0]==="langchain"||g[0]==="langchain_core")k=y[g[0]],g.shift();else throw new Error(`Invalid namespace: ${l} -> ${d}`);if(g.length===0)throw new Error(`Invalid namespace: ${l} -> ${d}`);let v;do{if(v=g.join("__"),v in k)break;g.pop()}while(g.length>0);v in k&&(_=k[v])}if(typeof _!="object"||_===null)throw new Error(`Invalid namespace: ${l} -> ${d}`);let I=_[m]??Object.values(_).find(k=>typeof k=="function"&&za(k)===m);if(typeof I!="function")throw new Error(`Invalid identifer: ${l} -> ${d}`);let M=new I(Ga(await ms.call({...this,path:[...o,"kwargs"],depth:a+1},h.kwargs),Ua,$m(I)));return Object.defineProperty(M.constructor,"name",{value:m}),M}let p={};for(let[h,d]of Object.entries(u))p[h]=await ms.call({...this,path:[...o,h],depth:a+1},d);return p}async function np(e,t){let r=JSON.parse(e),n={optionalImportsMap:t?.optionalImportsMap??{},optionalImportEntrypoints:t?.optionalImportEntrypoints??[],secretsMap:t?.secretsMap??{},secretsFromEnv:t?.secretsFromEnv??!1,importMap:t?.importMap??{},path:["$"],depth:0,maxDepth:t?.maxDepth??Dm};return ms.call(n,r)}function jm(e){return e!==null&&e.lc===1&&e.type==="constructor"&&Array.isArray(e.id)}function Lm(e){return e.lc===2&&e.type==="undefined"}function Fm(e){return e.lc===2&&e.type==="delta_snapshot"&&Object.prototype.hasOwnProperty.call(e,"value")}function Vm(e){return e.lc===2&&e.type==="constructor"}function yn(e,t){return Array.isArray(e.id)&&e.id.length===1&&e.id[0]===t}function _n(e){return e.method===void 0||e.method===null}function Io(e){return Array.isArray(e.args)&&e.args.length===1&&Array.isArray(e.args[0])}function Um(e){return e.every(t=>typeof t=="number"&&Number.isInteger(t)&&t>=0&&t<=255)}function Gm(e){if(yn(e,"Set")&&_n(e))return Io(e)?new Set(e.args[0]):void 0;if(yn(e,"Map")&&_n(e))return!Io(e)||!e.args[0].every(t=>Array.isArray(t)&&t.length===2)?void 0:new Map(e.args[0]);if(yn(e,"RegExp")&&_n(e)){if(!Array.isArray(e.args)||e.args.length!==2||typeof e.args[0]!="string"||typeof e.args[1]!="string")return;try{return new RegExp(e.args[0],e.args[1])}catch{return}}if(yn(e,"Error")&&_n(e))return!Array.isArray(e.args)||e.args.length!==1||typeof e.args[0]!="string"?void 0:new Error(e.args[0]);if(yn(e,"Uint8Array")&&(_n(e)||e.method==="from"))return!Io(e)||!Um(e.args[0])?void 0:new Uint8Array(e.args[0])}async function To(e){if(e&&typeof e=="object"){if(Array.isArray(e))return await Promise.all(e.map(t=>To(t)));{let t={};for(let[r,n]of Object.entries(e))t[r]=await To(n);return Lm(t)?void 0:Fm(t)?new _r(t.value):Vm(t)?Gm(t)??t:jm(t)?np(JSON.stringify(t)):t}}return e}function fs(e,t,r,n){return{lc:2,type:"constructor",id:[e.name],method:t??null,args:r??[],kwargs:n??{}}}function Bm(e){return e===void 0?{lc:2,type:"undefined"}:e instanceof _r?{lc:2,type:"delta_snapshot",value:e.value}:e instanceof Set||e instanceof Map?fs(e.constructor,void 0,[Array.from(e)]):e instanceof RegExp?fs(RegExp,void 0,[e.source,e.flags]):e instanceof Error?fs(Error,void 0,[e.message]):e?.lg_name==="Send"?{node:e.node,args:e.args,...e.timeout!==void 0?{timeout:e.timeout}:{}}:e instanceof Uint8Array?fs(Uint8Array,"from",[Array.from(e)]):e}var Ao=class{_dumps(e){return new TextEncoder().encode(dl(e,(t,r)=>Bm(r)))}async dumpsTyped(e){return e instanceof Uint8Array?["bytes",e]:["json",this._dumps(e)]}async _loads(e){return To(JSON.parse(e))}async loadsTyped(e,t){if(e==="bytes")return typeof t=="string"?new TextEncoder().encode(t):t;if(e==="json")return this._loads(typeof t=="string"?t:new TextDecoder().decode(t));throw new Error(`Unknown serialization type: ${e}`)}};function No(e){if(typeof e!="object"||e===null)return e;let t=Array.isArray(e)?[]:{};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=No(e[r]));return t}function er(){return{v:4,id:Zr(0),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function et(e){return{v:e.v,id:e.id,ts:e.ts,channel_values:{...e.channel_values??{}},channel_versions:{...e.channel_versions??{}},versions_seen:No(e.versions_seen??{})}}function gs(e,t){return typeof e=="number"&&typeof t=="number"?Math.sign(e-t):String(e).localeCompare(String(t))}function ys(...e){return e.reduce((t,r,n)=>n===0?r:gs(t,r)>=0?t:r)}var _s={[Ai]:-1,[Xt]:-2,[Ni]:-3,[Mi]:-4},Mo=new Set(["thread_id","checkpoint_id","checkpoint_ns","checkpoint_map","langgraph_step","langgraph_node","langgraph_triggers","langgraph_path","langgraph_checkpoint_ns"]);var Ir=class extends Error{constructor(e){super(e),this.name="InvalidNamespaceError"}};function zm(e){if(e.length===0)throw new Ir("Namespace cannot be empty.");for(let t of e){if(typeof t!="string")throw new Ir(`Invalid namespace label '${t}' found in ${e}. Namespace labels must be strings, but got ${typeof t}.`);if(t.includes("."))throw new Ir(`Invalid namespace label '${t}' found in ${e}. Namespace labels cannot contain periods ('.').`);if(t==="")throw new Ir(`Namespace labels cannot be empty strings. Got ${t} in ${e}`)}if(e[0]==="langgraph")throw new Ir(`Root label for namespace cannot be "langgraph". Got: ${e}`)}var wn=class{async get(e,t){return(await this.batch([{namespace:e,key:t}]))[0]}async search(e,t={}){let{filter:r,limit:n=10,offset:s=0,query:i}=t;return(await this.batch([{namespacePrefix:e,filter:r,limit:n,offset:s,query:i}]))[0]}async put(e,t,r,n){zm(e),await this.batch([{namespace:e,key:t,value:r,index:n}])}async delete(e,t){await this.batch([{namespace:e,key:t,value:null}])}async listNamespaces(e={}){let{prefix:t,suffix:r,maxDepth:n,limit:s=100,offset:i=0}=e,o=[];return t&&o.push({matchType:"prefix",path:t}),r&&o.push({matchType:"suffix",path:r}),(await this.batch([{matchConditions:o.length?o:void 0,maxDepth:n,limit:s,offset:i}]))[0]}start(){}stop(){}};var Wm=e=>"lg_name"in e&&e.lg_name==="AsyncBatchedStore"?e.store:e,ws=class extends wn{lg_name="AsyncBatchedStore";store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(e){super(),this.store=Wm(e)}get isRunning(){return this.running}async batch(e){throw new Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(e,t){return this.enqueueOperation({namespace:e,key:t})}async search(e,t){let{filter:r,limit:n=10,offset:s=0,query:i}=t||{};return this.enqueueOperation({namespacePrefix:e,filter:r,limit:n,offset:s,query:i})}async put(e,t,r){return this.enqueueOperation({namespace:e,key:t,value:r})}async delete(e,t){return this.enqueueOperation({namespace:e,key:t,value:null})}start(){this.running||(this.running=!0,this.processingTask=this.processBatchQueue())}async stop(){this.running=!1,this.processingTask&&await this.processingTask}enqueueOperation(e){return new Promise((t,r)=>{let n=this.nextKey;this.nextKey+=1,this.queue.set(n,{operation:e,resolve:t,reject:r})})}async processBatchQueue(){for(;this.running;){if(await new Promise(t=>{setTimeout(t,0)}),this.queue.size===0)continue;let e=new Map(this.queue);this.queue.clear();try{let t=Array.from(e.values()).map(({operation:n})=>n),r=await this.store.batch(t);e.forEach(({resolve:n},s)=>{n(r[Array.from(e.keys()).indexOf(s)])})}catch(t){e.forEach(({reject:r})=>{r(t)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:"[LangGraphStore]"}}};var bs=class{serde=new Ao;constructor(e){this.serde=e||this.serde}};var Ym=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Ae(e){return e!=null&&e.lc_graph_name==="DeltaChannel"}function Oo(e){return e!=null&&e.lg_is_channel===!0}var Q=class{ValueType;UpdateType;lg_is_channel=!0;consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===F.unminifiable_name)return!1;throw e}}equals(e){return this===e}},Po=Symbol.for("LG_IS_ONLY_BASE_CHANNEL");function Tr(e){if(e[Po]===!0)return e;let t={};for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let n=e[r];Oo(n)&&(t[r]=n)}return Object.assign(t,{[Po]:!0}),t}function vs(e,t){let r=Tr(e),n={};for(let s in r){if(!Object.prototype.hasOwnProperty.call(r,s))continue;let i=t.channel_values[s];n[s]=r[s].fromCheckpoint(i)}return Object.assign(n,{[Po]:!0}),n}function Ro(e,t){if(!Ym.test(t))throw new TypeError(`Invalid task id for exit delta: ${t}`);let r=t.toLowerCase().split("-");return`${String(e).padStart(8,"0")}-${r[1]}-${r[2]}-${r[3]}-${r[4]}`}function Ss(e,t){let r=new Set,n=al();for(let s in e){if(!Object.prototype.hasOwnProperty.call(e,s))continue;let i=e[s];if(!Ae(i)||!i.isAvailable())continue;let[o,a]=t[s]??[0,0];(o>=i.snapshotFrequency||a>=n)&&r.add(s)}return r}function $e(e,t,r,n){let s=n?.channelsToSnapshot??new Set,{updatedChannels:i,getNextVersion:o}=n??{},a,c=e.channel_versions;if(t===void 0)a=e.channel_values;else{a={},c={...e.channel_versions};for(let l in t){if(!Object.prototype.hasOwnProperty.call(t,l))continue;let u=t[l];if(s.has(l)){o!==void 0&&(i===void 0||!i.has(l))&&(c[l]=o(c[l])),a[l]=new _r(u.get());continue}if(!Ae(u))try{a[l]=u.checkpoint()}catch(p){if(p.name!==F.unminifiable_name)throw p}}}return{v:4,id:n?.id??Zr(r),ts:new Date().toISOString(),channel_values:a,channel_versions:c,versions_seen:e.versions_seen}}async function Ar(e,t,r){let n=vs(e,t),{saver:s,config:i}=r??{},o=Tr(e),a=[];for(let l in o)Object.prototype.hasOwnProperty.call(o,l)&&Ae(o[l])&&!Object.prototype.hasOwnProperty.call(t.channel_values,l)&&a.push(l);if(a.length===0||s===void 0||i===void 0)return n;let c=await s.getDeltaChannelHistory({config:i,channels:a});for(let l of a){let u=c[l];if(u===void 0)continue;let p=o[l].fromCheckpoint(u.seed);p.replayWrites(u.writes),n[l]=p}return n}var Xm=e=>e!=null&&e.lc_graph_name==="BinaryOperatorAggregate",gt=class ip extends Q{lc_graph_name="BinaryOperatorAggregate";value;operator;initialValueFactory;constructor(t,r){super(),this.operator=t,this.initialValueFactory=r,this.value=r?.()}fromCheckpoint(t){let r=new ip(this.operator,this.initialValueFactory);return typeof t<"u"&&(r.value=t),r}update(t){let r=t;if(!r.length)return!1;if(this.value===void 0){let s=r[0],[i,o]=Oe(s);i?this.value=o:this.value=s,r=r.slice(1)}let n=!1;for(let s of r)if(Kt(s)){if(n)throw new R("Can receive only one Overwrite value per step.");let[,i]=Oe(s);this.value=i,n=!0;continue}else!n&&this.value!==void 0&&(this.value=this.operator(this.value,s));return!0}get(){if(this.value===void 0)throw new F;return this.value}checkpoint(){if(this.value===void 0)throw new F;return this.value}isAvailable(){return this.value!==void 0}equals(t){return this===t?!0:Xm(t)?this.operator===t.operator:!1}};var je=class op extends Q{lc_graph_name="LastValue";value=[];constructor(t){super(),this.initialValueFactory=t,t&&(this.value=[t()])}fromCheckpoint(t){let r=new op(this.initialValueFactory);return typeof t<"u"&&(r.value=[t]),r}update(t){if(t.length===0)return!1;if(t.length!==1)throw new R("LastValue can only receive one value per step.",{lc_error_code:"INVALID_CONCURRENT_GRAPH_UPDATE"});return this.value=[t[t.length-1]],!0}get(){if(this.value.length===0)throw new F;return this.value[0]}checkpoint(){if(this.value.length===0)throw new F;return this.value[0]}isAvailable(){return this.value.length!==0}},Do=class ap extends Q{lc_graph_name="LastValueAfterFinish";value=[];finished=!1;fromCheckpoint(t){let r=new ap;if(typeof t<"u"){let[n,s]=t;r.value=[n],r.finished=s}return r}update(t){return t.length===0?!1:(this.finished=!1,this.value=[t[t.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new F;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}};var Cs=class{lc_graph_name="AnnotationRoot";spec;constructor(e){this.spec=e}static isInstance(e){return typeof e=="object"&&e!==null&&"lc_graph_name"in e&&e.lc_graph_name==="AnnotationRoot"}},B=function(e){return e?ks(e):new je};B.Root=e=>new Cs(e);function ks(e){return typeof e=="object"&&e&&"reducer"in e&&e.reducer?new gt(e.reducer,e.default):typeof e=="object"&&e&&"value"in e&&e.value?new gt(e.value,e.default):new je}var Qm=["tags","metadata","callbacks","configurable"],Zm=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","interrupt","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal","heartbeat","executionInfo","serverInfo","control"],ef=25,tf=new Set(["thread_id","checkpoint_id","checkpoint_ns","task_id","run_id","assistant_id","graph_id"]);function rf(e,t){if(!e)return t;let r=t??{};for(let n of tf){if(n in r)continue;let s=e[n];s!==void 0&&(r[n]=s)}return r}function cp(e){if(e==null||e.length===0)return;let t=e.filter(r=>!r.startsWith("seq:step"));return t.length>0?t:void 0}function nf(e,t){if(t===void 0)return e;if(e===void 0)return Array.isArray(t)?[...t]:t.copy();if(Array.isArray(t)){if(Array.isArray(e))return e.concat(t);let n=e.copy();for(let s of t)n.addHandler(di(s),!0);return n}if(Array.isArray(e)){let n=t.copy();for(let s of e)n.addHandler(di(s),!0);return n}let r=n=>n.filter((s,i)=>n.findIndex(o=>o===s||o.name==="StreamMessagesHandler"&&s.name==="StreamMessagesHandler")===i);return new dr(t._parentRunId,{handlers:r(e.handlers.concat(t.handlers)),inheritableHandlers:r(e.inheritableHandlers.concat(t.inheritableHandlers)),tags:Array.from(new Set(e.tags.concat(t.tags))),inheritableTags:Array.from(new Set(e.inheritableTags.concat(t.inheritableTags))),metadata:{...e.metadata,...t.metadata},inheritableMetadata:{...e.inheritableMetadata,...t.inheritableMetadata}})}function sf(e){let t;for(let i=e.length-1;i>=0;i-=1)if(e[i]!==void 0){t=e[i];break}let r=t?.configurable?.thread_id!==void 0,n=e.some(i=>i?.configurable?.[ue]!==void 0),s=Se.getRunnableConfig()?.configurable?.[ue]!==void 0;return r&&!n&&!s}function bn(...e){let t={tags:[],metadata:{},callbacks:void 0,recursionLimit:ef,configurable:{}},r=sf(e),n=Se.getRunnableConfig();if(n!==void 0){for(let[s,i]of Object.entries(n))if(i!==void 0){if(s==="configurable"&&r)continue;if(Qm.includes(s)){let o;Array.isArray(i)?o=[...i]:typeof i=="object"?s==="callbacks"&&"copy"in i&&typeof i.copy=="function"?o=i.copy():o={...i}:o=i,t[s]=o}else t[s]=i}}for(let s of e)if(s!==void 0)for(let[i,o]of Object.entries(s))o===void 0||!Zm.includes(i)||(i==="configurable"?t.configurable={...t.configurable,...o}:i==="metadata"?t.metadata={...t.metadata,...o}:i==="tags"?t.tags=[...t.tags??[],...o]:i==="callbacks"?t.callbacks=nf(t.callbacks,o):t[i]=o);return t.metadata=rf(t.configurable,t.metadata)??{},t}function Es(){return Se.getRunnableConfig()}function xs(e){return e.split("|").filter(t=>!t.match(/^\d+$/)).map(t=>t.split(":")[0]).join("|")}function lp(e){let t=e.split("|");for(;t.length>1&&t[t.length-1].match(/^\d+$/);)t.pop();return t.slice(0,-1).join("|")}var $o=class{#e=void 0;requestDrain(e="shutdown"){this.#e=e}get drainRequested(){return this.#e!==void 0}get drainReason(){return this.#e}};var jo=["values","updates","messages","tools","custom","tasks"];function Nr(e){if(e==null||typeof e!="object")return!1;let t=e;return typeof t.id=="string"&&("source"in t||typeof t.step=="number")&&!("values"in t)&&!("config"in t)}function of(e){if(!Array.isArray(e)||e.length!==2)return{data:e};let[t,r]=e;if(r==null||typeof r!="object")return{data:e};let n=r,s=typeof n.langgraph_node=="string"?n.langgraph_node:void 0,i=typeof n.run_id=="string"?n.run_id:void 0;return{data:i!=null&&t!=null&&typeof t=="object"?{...t,run_id:i}:t,node:s}}function Lo({namespace:e,mode:t,payload:r,seq:n}){let s=Date.now(),i={type:"event"};switch(t){case"messages":{let{data:o,node:a}=of(r);return[{...i,seq:n,method:"messages",params:{namespace:e,timestamp:s,...a?{node:a}:{},data:o}}]}case"tools":return[{...i,seq:n,method:"tools",params:{namespace:e,timestamp:s,data:af(r)}}];case"checkpoints":return Nr(r)?[{...i,seq:n,method:"checkpoints",params:{namespace:e,timestamp:s,data:r}}]:[];case"values":return[{...i,seq:n,method:"values",params:{namespace:e,timestamp:s,data:r}}];case"updates":{let o=cf(r);return[{...i,seq:n,method:"updates",params:{namespace:e,timestamp:s,...typeof o.node=="string"?{node:o.node}:{},data:o}}]}case"custom":{let o=typeof r=="object"&&r!==null&&!Array.isArray(r)&&"name"in r?r:{payload:r};return[{...i,seq:n,method:"custom",params:{namespace:e,timestamp:s,data:o}}]}case"tasks":return[{...i,seq:n,method:"tasks",params:{namespace:e,timestamp:s,data:r}}];default:return[]}}function af(e){if(typeof e!="object"||e===null)return{event:"tool-error",tool_call_id:"",message:"Unexpected tools payload shape"};let t=e,r=String(t.toolCallId??"");switch(t.event){case"on_tool_start":return{event:"tool-started",tool_call_id:r,tool_name:String(t.name??"unknown"),input:t.input};case"on_tool_event":return{event:"tool-output-delta",tool_call_id:r,delta:typeof t.data=="string"?t.data:JSON.stringify(t.data??"")};case"on_tool_end":return{event:"tool-finished",tool_call_id:r,output:t.output};case"on_tool_error":{let n=t.error;return{event:"tool-error",tool_call_id:r,message:typeof n=="object"&&n!==null&&"message"in n&&typeof n.message=="string"?n.message:String(n??"unknown error")}}default:return{event:"tool-error",tool_call_id:"",message:`Unknown tool event: ${String(t.event)}`}}}function cf(e){if(typeof e!="object"||e===null)return{values:{}};let t=Object.entries(e);if(t.length===0)return{values:{}};let[r,n]=t[0];return{node:r,values:typeof n=="object"&&n!==null?n:{value:n}}}var Fo=Symbol.for("langgraph.stream_channel"),Ne=class Vo{[Fo]=!0;channelName;#e=[];#t=[];#n=!1;#i;#s;constructor(t){this.channelName=t}static local(){return new Vo}static remote(t){return new Vo(t)}static isInstance(t){return typeof t=="object"&&t!==null&&Fo in t&&t[Fo]===!0}push(t){this.#e.push(t),this.#r(),this.#s?.(t)}iterate(t=0){let r=t;return{next:async()=>{for(;;){if(r<this.#e.length)return{value:this.#e[r++],done:!1};if(this.#n){if(this.#i)throw this.#i;return{value:void 0,done:!0}}await new Promise(n=>this.#t.push(n))}}}}toAsyncIterable(t=0){return{[Symbol.asyncIterator]:()=>this.iterate(t)}}toEventStream(t={}){let r=new TextEncoder,n=this.iterate(t.startAt),s=t.event??this.channelName,i=t.serialize??(o=>JSON.stringify(o)??"null");return new ReadableStream({async pull(o){try{let a=await n.next();if(a.done){o.close();return}let c=[];s!=null&&c.push(`event: ${s}`);for(let l of i(a.value).split(/\r\n|\r|\n/))c.push(`data: ${l}`);o.enqueue(r.encode(`${c.join(`
|
|
114
|
+
`)}
|
|
115
|
+
|
|
116
|
+
`))}catch(a){o.error(a)}},async cancel(){await n.return?.()}})}get(t){if(t<0||t>=this.#e.length)throw new RangeError(`StreamChannel index ${t} out of bounds (size=${this.#e.length})`);return this.#e[t]}get size(){return this.#e.length}get done(){return this.#n}close(){this.#n=!0,this.#r()}fail(t){this.#i=t,this.#n=!0,this.#r()}_wire(t){this.#s=t}_close(){this.close()}_fail(t){this.fail(t)}[Symbol.asyncIterator](){return this.iterate()}#r(){let t=this.#t.splice(0);for(let r of t)r()}};function up(e){return Ne.isInstance(e)}var lf="custom:";function uf(e){return`${lf}${e}`}function pf(e){return e!=null&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}var Is=Symbol("resolveValues"),Uo=Symbol("rejectValues"),pp=class{_events=Ne.local();_discoveries=Ne.local();#e=0;#t=!1;#n;#i=!1;#s=[];#r=[];#a=[];#o=new Map;#l=new Map;#c=[];#u=[];register(e,t){this.#o.set(Z(e),t)}addTransformer(e){let t=this._events.size;this.#r.push(e),e.onRegister&&e.onRegister({push:(r,n)=>this.push(r,n)});for(let r=0;r<t;r+=1)e.process(this._events.get(r));this.#t&&(this.#n!==void 0?e.fail?.(this.#n):e.finalize?.())}wireChannels(e){for(let[t,r]of Object.entries(e)){if(up(r)){if(this.#a.push(r),typeof r.channelName!="string")continue;let n=uf(r.channelName);r._wire(s=>{this._events.push({type:"event",seq:this.#e++,method:n,params:{namespace:this.#s,timestamp:Date.now(),data:s}})});continue}pf(r)&&this.#u.push({name:t,promise:Promise.resolve(r)})}}push(e,t){t.method==="values"&&this.#l.set(Z(e),t.params.data);let r=this.#s;this.#s=e;let n=!0;for(let s of this.#r)s.process(t)||(n=!1);this.#s=r,n&&this._events.push({...t,seq:this.#e++})}close(){this.#t=!0;for(let[r,n]of this.#l.entries()){let s=r?r.split("\0"):[];this.#o.get(Z(s))?.[Is](n)}let e=[];for(let r of this.#r){let n=r.finalize?.();n!=null&&typeof n.then=="function"&&e.push(n)}for(let r of this.#a)r._close();let t=this.#u;t.length===0&&e.length===0?(this._events.close(),this._discoveries.close()):Promise.allSettled([...e,...t.map(async({name:r,promise:n})=>{try{let s=await n;this._events.done||this._events.push({type:"event",seq:this.#e++,method:"custom",params:{namespace:[],timestamp:Date.now(),data:{name:r,payload:s}}})}catch{}})]).then(()=>{this._events.close(),this._discoveries.close()});for(let r of this.#o.values())r[Is](void 0)}fail(e){this.#t=!0,this.#n=e;for(let t of this.#r)t.fail?.(e);for(let t of this.#a)t._fail(e);this._events.fail(e),this._discoveries.fail(e);for(let t of this.#o.values())t[Uo](e)}markInterrupted(e){this.#i=!0,this.#c.push(...e)}get interrupted(){return this.#i}get interrupts(){return this.#c}subscribeEvents(e,t=0){let r=this._events.iterate(t);return{async next(){for(;;){let n=await r.next();if(n.done||tt(n.value.params.namespace,e))return n}}}}};async function hp(e,t){let r=0;try{for await(let n of e){let[s,i,o]=n;if(i==="values"&&Jt(o)){let c=o[H];t.markInterrupted(c.map(l=>({interruptId:l.id??"",payload:l.value})))}let a=Lo({namespace:s,mode:i,payload:o,seq:r});r+=a.length;for(let c of a)t.push(s,c)}}catch(n){t.fail(n);return}t.close()}function Z(e){return e.join("\0")}function tt(e,t){if(t.length>e.length)return!1;for(let r=0;r<t.length;r+=1)if(e[r]!==t[r])return!1;return!0}function Ts(e,t,r=0){return{[Symbol.asyncIterator](){let n=e.iterate(r);return{async next(){for(;;){let s=await n.next();if(s.done)return{value:void 0,done:!0};if(tt(s.value.namespace,t))return{value:s.value,done:!1}}}}}}}var dp="root";function hf(e){if(e.length===0)return dp;let t=e[e.length-1],r=t.indexOf(":");return r===-1?t:t.slice(0,r)}function df(e){if(e instanceof Error)return e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function rt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function mf(e){if(!rt(e)||e.event!=="started")return;let t=e.cause;if(rt(t)&&typeof t.type=="string")return t}function ff(e){if(rt(e)&&"result"in e&&typeof e.name=="string"&&typeof e.id=="string"&&!e.name.startsWith("__"))return{name:e.name,id:e.id}}function Go(e={}){let t=e.rootGraphName??dp,r=e.initialStatus??"running",n=e.emitRootOnRegister??!0,s=e.getGraphName??hf,i=e.serializeError??df,o=e.getTerminalStatusOverride,a=Ne.local(),c=new Map,l=new Map,u=new Map,p=new Map,h=new Set,d=[],m,f=0,g=!1,y=E=>{if(E.length===0)return t;let A=u.get(Z(E));return typeof A=="string"&&A.length>0?A:s(E)},_=(E,A)=>{let P=Z(E);if(u.has(P))return;let O=(rt(A)&&rt(A.metadata)?A.metadata:void 0)?.lc_agent_name;u.set(P,typeof O=="string"?O:void 0)},S=E=>{if(!rt(E))return;let A=E.id;if(typeof A!="string")return;let P=E.input,O;if(rt(P)&&rt(P.tool_call)){let z=P.tool_call.id;typeof z=="string"&&(O=z)}else if(Array.isArray(P)){for(let z of P)if(rt(z)&&typeof z.id=="string"){O=z.id;break}}O!=null&&p.set(A,O)},C=E=>{if(E.length===0)return;let A=u.get(Z(E));if(typeof A!="string"||A.length===0)return;let P=E[E.length-1],O=P.indexOf(":");if(O===-1)return;let z=P.slice(O+1);if(z.length===0)return;let Vt=p.get(z);if(!(typeof Vt!="string"||Vt.length===0))return{type:"toolCall",tool_call_id:Vt}},I=E=>l.get(Z(E))??C(E),M=(E,A,P)=>{let O=Z(E),z=c.get(O),Vt=z?.graphName??y(E);if(z!=null&&z.status===A&&z.graphName===Vt&&P?.error==null)return;z==null?(z={namespace:E,graphName:Vt,status:A},c.set(O,z)):z.status=A;let Na={event:A,graph_name:Vt,...P?.cause!=null?{cause:P.cause}:{},...P?.error!=null?{error:P.error}:{}},Ma=Date.now();if(a.push({namespace:E,timestamp:Ma,...Na}),!(E.length===0&&!n)&&m!=null){f+=1;try{m.push(E,{type:"event",seq:0,method:"lifecycle",params:{namespace:E,timestamp:Ma,data:Na}})}finally{f-=1}}},k=E=>{let A=Z(E),P=c.get(A);return P==null&&(P={namespace:E,graphName:y(E),status:void 0},c.set(A,P)),P},v=()=>{if(d.length===0)return;let E=d.splice(0,d.length);for(let A of E){let P=Z(A.namespace),O=c.get(P);O==null||O.status!=="started"||M(A.namespace,"completed")}},T=E=>{let A=Z(E.namespace),P=c.get(A);P==null||P.status!=="started"||d.some(O=>Z(O.namespace)===A)||d.push(E)},x=(E,A)=>{for(let P=d.length-1;P>=0;P-=1){let O=d[P];O.source.type==="node"&&O.source.node===A&&Z(O.source.parent)===Z(E)&&d.splice(P,1)}},G=E=>{for(let A=1;A<=E.length;A+=1){let P=E.slice(0,A),O=Z(P);if(c.has(O))continue;k(P);let z=I(P);M(P,"started",z!=null?{cause:z}:void 0)}},$=()=>h.size>0?"interrupted":"completed",V=E=>{for(let A of c.values())A.namespace.length!==0&&A.status==="started"&&M(A.namespace,E);M([],E),a.close()},W=async()=>{if(o==null)return $();try{return await o()??$()}catch{return $()}},ve=(E,A)=>{let P=`${A}:`;for(let O of c.values()){if(O.namespace.length!==E.length+1||O.status!=="started"||!tt(O.namespace,E))continue;let z=O.namespace[O.namespace.length-1];if(z===A||z.startsWith(P))return O.namespace}},ct=(E,A)=>{let P=[...E,`${A.name}:${A.id}`];return c.get(Z(P))?.status==="started"?P:void 0};return{__native:!0,init(){return{_lifecycleLog:a,lifecycle:Ts(a,[],0)}},onRegister(E){m=E,k([]),n&&M([],r)},process(E){let A=E.params.namespace;if(f>0)return!0;let P=E.method==="tasks"?ff(E.params.data):void 0;if(P!=null?x(A,P.name):E.method==="tasks"&&(_(A,E.params.data),S(E.params.data)),v(),E.method==="lifecycle"){let O=mf(E.params.data);return O!=null&&l.set(Z(A),O),G(A),!1}if(G(A),E.method==="input"&&rt(E.params.data)&&E.params.data.event==="requested"){let O=E.params.data.id;typeof O=="string"&&h.add(O)}if(P!=null){let O=ct(A,P);O!=null&&T({namespace:O,source:{type:"task"}})}if(E.method==="updates"){let O=E.params.node;if(typeof O=="string"&&!O.startsWith("__")){let z=ve(A,O);z!=null&&T({namespace:z,source:{type:"node",parent:A,node:O}})}}return!0},finalize(){if(!g){if(g=!0,v(),o==null){V($());return}return W().then(V).catch(E=>{a.fail(E)})}},fail(E){if(g)return;g=!0;let A=i(E);for(let P of c.values())P.namespace.length!==0&&P.status==="started"&&M(P.namespace,"failed");M([],"failed",{error:A}),a.fail(E)}}}function Mr(e){let t=e;return typeof t.run_id=="string"?`run:${t.run_id}`:e.event==="message-start"&&typeof t.id=="string"?`message:${t.id}`:"__default__"}function vn(e,t){let r=Ne.local(),n=new Map,s=new Set;return{init:()=>({messages:r.toAsyncIterable()}),process(i){if(i.method!=="messages"||!tt(i.params.namespace,e)||i.params.namespace.length!==e.length+1||t!==void 0&&i.params.node!==t)return!0;let o=i.params.data;switch(o.event){case"message-start":{let a=Mr(o);if(o.role==="tool"){s.add(a);break}let c=Ne.local(),l=Object.assign(new Ln(c.toAsyncIterable()),{namespace:i.params.namespace,node:i.params.node});n.set(a,{source:c,stream:l}),c.push(o),r.push(l);break}case"content-block-start":case"content-block-delta":case"content-block-finish":if(s.has(Mr(o)))break;n.get(Mr(o))?.source.push(o);break;case"message-finish":{let a=Mr(o);if(s.delete(a))break;let c=n.get(a);c&&(c.source.push(o),c.source.close(),n.delete(a));break}case"error":if(s.has(Mr(o)))break;n.get(Mr(o))?.source.push(o);break}return!0},finalize(){for(let[i,o]of n)o.source.push({event:"message-finish"}),o.source.close(),n.delete(i);s.clear(),r.close()},fail(i){for(let[o,a]of n)a.source.fail(i),n.delete(o);s.clear(),r.fail(i)}}}function Sn(e,t,r=0){let n=t.length+1;return{[Symbol.asyncIterator](){let s=e.iterate(r);return{async next(){for(;;){let i=await s.next();if(i.done)return{value:void 0,done:!0};let{ns:o,stream:a}=i.value;if(o.length===n&&tt(o,t))return{value:a,done:!1}}}}}}}function Bo(e,t){let{createStream:r}=t,n=new Set;return{__native:!0,init(){return{_discoveries:e._discoveries,subgraphs:Sn(e._discoveries,[],0)}},process(s){let i=s.params.namespace;if(i.length===0)return!0;let o=i.slice(0,1),a=Z(o);if(n.has(a))return!0;n.add(a);let c=r(o,e._discoveries.size,e._events.size);return e.register(o,c),e._discoveries.push({ns:o,stream:c}),!0}}}function Ho(e){let t=Ne.local();return{init:()=>({_valuesLog:t}),process(r){return r.method!=="values"||r.params.namespace.length!==e.length||!tt(r.params.namespace,e)||t.push(r.params.data),!0},finalize(){t.close()},fail(r){t.fail(r)}}}function As(e){return"__native"in e&&e.__native===!0}var mp=Symbol("setValuesLog"),fp=Symbol("setMessagesIterable"),qo=Symbol("setLifecycleIterable"),zo=Symbol("setSubgraphsIterable"),gf={[Symbol.asyncIterator](){return{next:()=>Promise.resolve({value:void 0,done:!0})}}},Wo=class{path;extensions;_mux;#e;#t;#n;#i;#s;#r;#a;#o;#l;#c;constructor(e,t,r=0,n=0,s,i){this.path=e,this._mux=t,this.#t=r,this.#e=n,this.extensions=s??{},this.#n=i??new AbortController,this.#r=new Promise((o,a)=>{this.#i=o,this.#s=a}),this.#r.catch(()=>{})}[Symbol.asyncIterator](){return this._mux.subscribeEvents(this.path,this.#e)}get subgraphs(){return this.#c?this.#c:Sn(this._mux._discoveries,this.path,this.#t)}get values(){let e=this.#a,t=this.#r,r=this._mux,n=this.#e,s=this.path,i=e?e.toAsyncIterable():{[Symbol.asyncIterator]:()=>{let o=r.subscribeEvents(s,n);return{async next(){for(;;){let a=await o.next();if(a.done)return{value:void 0,done:!0};if(a.value.method==="values"&&a.value.params.namespace.length===s.length)return{value:a.value.params.data,done:!1}}}}}};return{[Symbol.asyncIterator]:()=>i[Symbol.asyncIterator](),then:t.then.bind(t)}}get messages(){if(this.#o)return this.#o;let e=vn(this.path),t=e.init();return this._mux.addTransformer(e),this.#o=t.messages,this.#o}get lifecycle(){return this.#l??gf}messagesFrom(e){let t=vn(this.path,e),r=t.init();return this._mux.addTransformer(t),r.messages}get output(){return this.#r}get interrupted(){return this._mux.interrupted}get interrupts(){return this._mux.interrupts}abort(e){this.#n.abort(e)}get signal(){return this.#n.signal}[Is](e){this.#i?.(e),this.#i=void 0}[Uo](e){this.#s?.(e),this.#s=void 0}[mp](e){this.#a=e}[fp](e){this.#o=e}[qo](e){this.#l=e}[zo](e){this.#c=e}},gp=class extends Wo{name;index;constructor(e,t,r=0,n=0,s,i){super(e,t,r,n,s,i);let o=e[e.length-1]??"",a=o.lastIndexOf(":");if(a>=0){this.name=o.slice(0,a);let c=o.slice(a+1);this.index=/^\d+$/.test(c)?Number(c):0}else this.name=o,this.index=0}};function Ko(e,t=[],r){let{abortController:n}=r instanceof AbortController?{abortController:r}:r??{},s=new pp,i=Go(),o=i.init(),a=o._lifecycleLog,c=Bo(s,{createStream:(y,_,S)=>{let C=new gp(y,s,_,S);return C[zo](Sn(s._discoveries,y,_)),C[qo](Ts(a,y,a.size)),C}}),l=c.init();s.addTransformer(c),s.addTransformer(i);let u=Ho([]),p=vn([]);s.addTransformer(u),s.addTransformer(p);let h={},d=[];for(let y of t){let _=y();s.addTransformer(_);let S=_.init();As(_)?d.push(S):Object.assign(h,S),typeof S=="object"&&S!==null&&!As(_)&&s.wireChannels(S)}let m=new Wo([],s,0,0,h,n);for(let y of d)Object.assign(m,y);let f=u.init();m[mp](f._valuesLog);let g=p.init();return m[fp](g.messages),m[qo](o.lifecycle),m[zo](l.subgraphs),s.register([],m),hp(e,s).catch(y=>{}),m}var b=e=>BigInt(e),q=(e,t=0)=>new DataView(e.buffer,e.byteOffset+t,e.byteLength-t),bp=b("0x9E3779B1"),vp=b("0x85EBCA77"),yf=b("0xC2B2AE3D"),Mt=b("0x9E3779B185EBCA87"),tr=b("0xC2B2AE3D27D4EB4F"),Sp=b("0x165667B19E3779F9"),Xo=b("0x85EBCA77C2B2AE63"),_f=b("0x27D4EB2F165667C5"),wf=b("0x165667919E3779F9"),bf=b("0x9FB21C651E98DF25"),vf=e=>{let t=e.length;if(t%2!==0)throw new Error("String should have an even number of characters");let r=t/2,n=new Uint8Array(r),s=0,i=0;for(;i<r;){let o=e.slice(s,s+=2);n[i]=Number.parseInt(o,16),i+=1}return q(n)},nt=vf("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),Pr=(b(1)<<b(128))-b(1),D=(b(1)<<b(64))-b(1),Os=(b(1)<<b(32))-b(1),yt=64,Cp=yt/8,Sf=8,Ns=4;function Or(e){if(!e)throw new Error("Assert failed")}function Cf(e){let t=new DataView(new ArrayBuffer(8));return t.setBigUint64(0,e,!0),t.getBigUint64(0,!1)}function kf(e){let t=e;return t=(t&b(65535))<<b(16)|(t&b(4294901760))>>b(16),t=(t&b(16711935))<<b(8)|(t&b(4278255360))>>b(8),t}function Ef(e,t){return(e&Os)*(t&Os)&D}function xf(e,t){return(e<<t|e>>b(32)-t)&Os}function kp(e,t,r){for(let n=0;n<Cp;n+=1){let s=t.getBigUint64(n*8,!0),i=s^r.getBigUint64(n*8,!0);e[n^1]+=s,e[n]+=Ef(i,i>>b(32))}return e}function yp(e,t,r,n){for(let s=0;s<n;s+=1)kp(e,q(t,s*yt),q(r,s*8));return e}function If(e,t){for(let r=0;r<Cp;r+=1){let n=t.getBigUint64(r*8,!0),s=e[r];s=Jo(s,b(47)),s^=n,s*=bp,e[r]=s&D}return e}function Ms(e,t){return Ep(e[0]^t.getBigUint64(0,!0),e[1]^t.getBigUint64(Sf,!0))}function _p(e,t,r){let n=r;return n+=Ms(e.slice(0),q(t,0*Ns)),n+=Ms(e.slice(2),q(t,4*Ns)),n+=Ms(e.slice(4),q(t,8*Ns)),n+=Ms(e.slice(6),q(t,12*Ns)),st(n&D)}function Tf(e,t,r,n,s){let i=e,o=Math.floor((r.byteLength-yt)/8),a=yt*o,c=Math.floor((t.byteLength-1)/a);for(let l=0;l<c;l+=1)i=yp(i,q(t,l*a),r,o),i=s(i,q(r,r.byteLength-yt));{let l=Math.floor((t.byteLength-1-a*c)/yt);i=yp(i,q(t,c*a),r,l),i=n(i,q(t,t.byteLength-yt),q(r,r.byteLength-yt-7))}return i}function Af(e,t){let r=new BigUint64Array([yf,Mt,tr,Sp,Xo,vp,_f,bp]);Or(e.byteLength>128),r=Tf(r,e,t,kp,If),Or(r.length*8===64);{let n=_p(r,q(t,11),b(e.byteLength)*Mt&D);return _p(r,q(t,t.byteLength-yt-11),~(b(e.byteLength)*tr)&D)<<b(64)|n}}function Ep(e,t){let r=e*t⪻return r&D^r>>b(64)}function wp(e,t,r){return Ep((e.getBigUint64(0,!0)^t.getBigUint64(0,!0)+r)&D,(e.getBigUint64(8,!0)^t.getBigUint64(8,!0)-r)&D)}function Ps(e,t,r,n,s){let i=e&D,o=e>>b(64)&D;return i+=wp(t,n,s),i^=r.getBigUint64(0,!0)+r.getBigUint64(8,!0),i&=D,o+=wp(r,q(n,16),s),o^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),o&=D,o<<b(64)|i}function st(e){let t=e;return t^=t>>b(37),t*=wf,t&=D,t^=t>>b(32),t}function Rs(e){let t=e;return t^=t>>b(33),t*=tr,t&=D,t^=t>>b(29),t*=Sp,t&=D,t^=t>>b(32),t}function Nf(e,t,r){let n=e.byteLength;Or(n>0&&n<=3);let s=b(e.getUint8(n-1))|b(n<<8)|b(e.getUint8(0)<<16)|b(e.getUint8(n>>1)<<24),i=(s^(b(t.getUint32(0,!0))^b(t.getUint32(4,!0)))+r)&D,o=(b(t.getUint32(8,!0))^b(t.getUint32(12,!0)))-r;return(Rs((xf(kf(s),b(13))^o)&D)&D)<<b(64)|Rs(i)}function Jo(e,t){return e^e>>t}function Mf(e,t,r){let n=e.byteLength;Or(n>=4&&n<=8);{let s=e.getUint32(0,!0),i=e.getUint32(n-4,!0),o=((b(s)|b(i)<<b(32))^(t.getBigUint64(16,!0)^t.getBigUint64(24,!0))+r&D)*(Mt+(b(n)<<b(2)))⪻return o+=(o&D)<<b(65),o&=Pr,o^=o>>b(67),Jo(Jo(o&D,b(35))*bf&D,b(28))|st(o>>b(64))<<b(64)}}function Pf(e,t,r){let n=e.byteLength;Or(n>=9&&n<=16);{let s=(t.getBigUint64(32,!0)^t.getBigUint64(40,!0))+r&D,i=(t.getBigUint64(48,!0)^t.getBigUint64(56,!0))-r&D,o=e.getBigUint64(0,!0),a=e.getBigUint64(n-8,!0),c=(o^a^s)*Mt,l=(c&D)+(b(n-1)<<b(54));c=c&(Pr^D)|l,a^=i,c+=a+(a&Os)*(vp-b(1))<<b(64),c&=Pr,c^=Cf(c>>b(64));let u=(c&D)*tr;return u+=(c>>b(64))*tr<<b(64),u&=Pr,st(u&D)|st(u>>b(64))<<b(64)}}function Of(e,t){let r=e.byteLength;return Or(r<=16),r>8?Pf(e,nt,t):r>=4?Mf(e,nt,t):r>0?Nf(e,nt,t):Rs(t^nt.getBigUint64(64,!0)^nt.getBigUint64(72,!0))|Rs(t^nt.getBigUint64(80,!0)^nt.getBigUint64(88,!0))<<b(64)}function Yo(e){return~e+b(1)&D}function Rf(e,t,r){let n=b(e.byteLength)*Mt&D,s=b(e.byteLength-1)/b(32);for(;s>=0;){let a=Number(s);n=Ps(n,q(e,16*a),q(e,e.byteLength-16*(a+1)),q(t,32*a),r),s-=b(1)}let i=n+(n>>b(64))&D;i=st(i);let o=(n&D)*Mt+(n>>b(64))*Xo+(b(e.byteLength)-r&D)*tr;return o&=D,o=Yo(st(o)),i|o<<b(64)}function Df(e,t,r){let n=b(e.byteLength)*Mt&D;for(let o=32;o<160;o+=32)n=Ps(n,q(e,o-32),q(e,o-16),q(t,o-32),r);n=st(n&D)|st(n>>b(64))<<b(64);for(let o=160;o<=e.byteLength;o+=32)n=Ps(n,q(e,o-32),q(e,o-16),q(t,3+o-160),r);n=Ps(n,q(e,e.byteLength-16),q(e,e.byteLength-32),q(t,103),Yo(r));let s=n+(n>>b(64))&D;s=st(s);let i=(n&D)*Mt+(n>>b(64))*Xo+(b(e.byteLength)-r&D)*tr;return i&=D,i=Yo(st(i)),s|i<<b(64)}function it(e,t=b(0)){let r=new TextEncoder,n=q(typeof e=="string"?r.encode(e):e),s=n.byteLength,i=o=>o.toString(16).padStart(32,"0");return s<=16?i(Of(n,t)):s<=128?i(Rf(n,nt,t)):s<=240?i(Df(n,nt,t)):i(Af(n,nt))}function Ds(e){return/^[0-9a-f]{32}$/.test(e)}function Qo(e){let t=Se.getRunnableConfig();if(!t)throw new Error("Called interrupt() outside the context of a graph.");let r=t.configurable;if(!r)throw new Error("No configurable found in config");if(!r.__pregel_checkpointer)throw new Yt("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=r[_e];n.interruptCounter+=1;let s=n.interruptCounter;if(n.resume.length>0&&s<n.resume.length)return r[ae]?.([[pe,n.resume]]),n.resume[s];if(n.nullResume!==void 0){if(n.resume.length!==s)throw new Error(`Resume length mismatch: ${n.resume.length} !== ${s}`);let o=n.consumeNullResume();return n.resume.push(o),r[ae]?.([[pe,n.resume]]),o}let i=r[Ce]?.split("|");throw new ht([{id:i?it(i.join("|")):void 0,value:e}])}var oe=class extends K{lc_namespace=["langgraph"];func;tags;config;trace=!0;recurse=!0;constructor(e){super(),this.name=e.name??e.func.name,this.func=e.func,this.config=e.tags?{tags:e.tags}:void 0,this.trace=e.trace??this.trace,this.recurse=e.recurse??this.recurse}async _tracedInvoke(e,t,r){return new Promise((n,s)=>{let i=lt(t,{callbacks:r?.getChild()});Se.runWithConfig(i,async()=>{try{n(await this.func(e,i))}catch(o){s(o)}})})}async invoke(e,t){let r,n=bn(t),s=Ee(this.config,n);return this.trace?r=await this._callWithConfig(this._tracedInvoke,e,s):r=await Se.runWithConfig(s,async()=>this.func(e,s)),K.isRunnable(r)&&this.recurse?await Se.runWithConfig(s,async()=>r.invoke(e,s)):r}};function*ot(e,t){if(t===void 0)yield*e;else for(let r of e)yield[t,r]}async function Le(e){let t=[];for await(let r of await e)t.push(r);return t}function Pt(e){let t=[];for(let r of e)t.push(r);return t}function rr(e,t){return e?"configurable"in e?{...e,configurable:{...e.configurable,...t}}:{...e,configurable:t}:{configurable:t}}function xp(e){return e!=null&&typeof e=="function"&&e instanceof Object.getPrototypeOf(async function*(){}).constructor}function Ip(e){return e!=null&&typeof e=="function"&&e instanceof Object.getPrototypeOf(function*(){}).constructor}function $f(e){return typeof e=="object"&&e?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var be={[Symbol.for("LG_PASSTHROUGH")]:!0};function $s(e){return typeof e=="object"&&e?.[Symbol.for("LG_PASSTHROUGH")]!==void 0}var Zo=Symbol("IS_WRITER"),Y=class ta extends oe{writes;constructor(t,r){let n=`ChannelWrite<${t.map(s=>re(s)?s.node:"channel"in s?s.channel:"...").join(",")}>`;super({writes:t,name:n,tags:r,trace:!1,func:async(s,i)=>this._write(s,i??{})}),this.writes=t}async _write(t,r){let n=this.writes.map(s=>ea(s)&&$s(s.value)?{mapper:s.mapper,value:t}:js(s)&&$s(s.value)?{channel:s.channel,value:t,skipNone:s.skipNone,mapper:s.mapper}:s);return await ta.doWrite(r,n),t}static async doWrite(t,r){for(let i of r){if(js(i)){if(i.channel==="__pregel_tasks")throw new R("Cannot write to the reserved channel TASKS");if($s(i.value))throw new R("PASSTHROUGH value must be replaced")}if(ea(i)&&$s(i.value))throw new R("PASSTHROUGH value must be replaced")}let n=[];for(let i of r)if(re(i))n.push([Ye,i]);else if(ea(i)){let o=await i.mapper.invoke(i.value,t);o!=null&&o.length>0&&n.push(...o)}else if(js(i)){let o=i.mapper!==void 0?await i.mapper.invoke(i.value,t):i.value;if($f(o)||i.skipNone&&o===void 0)continue;n.push([i.channel,o])}else throw new Error(`Invalid write entry: ${JSON.stringify(i)}`);let s=t.configurable?.[ae];s(n)}static isWriter(t){return t instanceof ta||Zo in t&&!!t[Zo]}static registerWriter(t){return Object.defineProperty(t,Zo,{value:!0})}};function js(e){return e!==void 0&&typeof e.channel=="string"}function ea(e){return e!==void 0&&!js(e)&&K.isRunnable(e.mapper)}var Tp=class Ap extends oe{lc_graph_name="ChannelRead";channel;fresh=!1;mapper;constructor(t,r,n=!1){super({trace:!1,func:(s,i)=>Ap.doRead(i,this.channel,this.fresh,this.mapper)}),this.fresh=n,this.mapper=r,this.channel=t,this.name=Array.isArray(t)?`ChannelRead<${t.join(",")}>`:`ChannelRead<${t}>`}static doRead(t,r,n,s){let i=t.configurable?.[ue];if(!i)throw new Error("Runnable is not configured with a read function. Make sure to call in the context of a Pregel process");return s?s(i(r,n)):i(r,n)}},Rr=new Ac,Fe=class Cn extends $n{lc_graph_name="PregelNode";channels;triggers=[];mapper;writers=[];bound=Rr;kwargs={};metadata={};tags=[];retryPolicy;cachePolicy;timeout;subgraphs;ends;isErrorHandler;errorHandlerNode;constructor(t){let{channels:r,triggers:n,mapper:s,writers:i,bound:o,kwargs:a,metadata:c,retryPolicy:l,cachePolicy:u,timeout:p,tags:h,subgraphs:d,ends:m,isErrorHandler:f,errorHandlerNode:g}=t,y=[...t.config?.tags?t.config.tags:[],...h??[]];super({...t,bound:t.bound??Rr,config:{...t.config?t.config:{},tags:y}}),this.channels=r,this.triggers=n,this.mapper=s,this.writers=i??this.writers,this.bound=o??this.bound,this.kwargs=a??this.kwargs,this.metadata=c??this.metadata,this.tags=y,this.retryPolicy=l,this.cachePolicy=u,this.timeout=p,this.subgraphs=d,this.ends=m,this.isErrorHandler=f,this.errorHandlerNode=g}getWriters(){let t=[...this.writers];for(;t.length>1&&t[t.length-1]instanceof Y&&t[t.length-2]instanceof Y;){let r=t.slice(-2),n=r[0].writes.concat(r[1].writes);t[t.length-2]=new Y(n,r[0].config?.tags),t.pop()}return t}getNode(){let t=this.getWriters();if(!(this.bound===Rr&&t.length===0))return this.bound===Rr&&t.length===1?t[0]:this.bound===Rr?new Gt({first:t[0],middle:t.slice(1,t.length-1),last:t[t.length-1],omitSequenceTags:!0}):t.length>0?new Gt({first:this.bound,middle:t.slice(0,t.length-1),last:t[t.length-1],omitSequenceTags:!0}):this.bound}join(t){if(!Array.isArray(t))throw new Error("channels must be a list");if(typeof this.channels!="object")throw new Error("all channels must be named when using .join()");return new Cn({channels:{...this.channels,...Object.fromEntries(t.map(r=>[r,r]))},triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound,kwargs:this.kwargs,config:this.config,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout})}pipe(t){return Y.isWriter(t)?new Cn({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:[...this.writers,t],bound:this.bound,config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout}):this.bound===Rr?new Cn({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:ze(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout}):new Cn({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound.pipe(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy,timeout:this.timeout})}};function jf(e){return"steps"in e&&Array.isArray(e.steps)}function kn(e){return"lg_is_pregel"in e&&e.lg_is_pregel===!0}function Ls(e){let t=[e];for(let r of t){if(kn(r))return r;jf(r)&&t.push(...r.steps)}}function nr(e,t,r=!0,n=!1){try{return e[t].get()}catch(s){if(s.name===F.unminifiable_name){if(n)return s;if(r)return null}throw s}}function Ve(e,t,r=!0){if(Array.isArray(t)){let n={};for(let s of t)try{n[s]=nr(e,s,!r)}catch(i){if(i.name===F.unminifiable_name)continue}return n}else return nr(e,t)}function*Np(e,t){if(e.graph===ye.PARENT)throw new R("There is no parent graph.");if(e.goto){let r;Array.isArray(e.goto)?r=e.goto:r=[e.goto];for(let n of r)if(re(n))yield[de,Ye,n];else if(typeof n=="string")yield[de,`branch:to:${n}`,"__start__"];else throw new Error(`In Command.send, expected Send or string, got ${typeof n}`)}if(e.resume)if(typeof e.resume=="object"&&Object.keys(e.resume).length&&Object.keys(e.resume).every(Ds))for(let[r,n]of Object.entries(e.resume)){let s=t.filter(i=>i[0]===r&&i[1]==="__resume__").map(i=>i[2]).slice(0,1)??[];s.push(n),yield[r,pe,s]}else yield[de,pe,e.resume];if(e.update){if(typeof e.update!="object"||!e.update)throw new Error("Expected cmd.update to be a dict mapping channel names to update values");if(Array.isArray(e.update))for(let[r,n]of e.update)yield[de,r,n];else for(let[r,n]of Object.entries(e.update))yield[de,r,n]}}function*Fs(e,t){if(t!=null)if(Array.isArray(e)&&typeof t=="object"&&!Array.isArray(t))for(let r in t)e.includes(r)&&(yield[r,t[r]]);else{if(Array.isArray(e))throw new Error('Input chunk must be an object when "inputChannels" is an array');yield[e,t]}}function*Vs(e,t,r){Array.isArray(e)?(t===!0||t.find(([n,s])=>e.includes(n)))&&(yield Ve(r,e)):(t===!0||t.some(([n,s])=>n===e))&&(yield nr(r,e))}function*Mp(e,t,r){let n=t.filter(([a,c])=>(a.config===void 0||!a.config.tags?.includes("langsmith:hidden"))&&c[0][0]!=="__error__"&&c[0][0]!=="__interrupt__");if(!n.length)return;let s;n.some(([a])=>a.writes.some(([c,l])=>c==="__return__"))?s=n.flatMap(([a])=>a.writes.filter(([c,l])=>c===It).map(([c,l])=>[a.name,l])):Array.isArray(e)?s=n.flatMap(([a])=>{let{writes:c}=a,l={};for(let[u]of c)e.includes(u)&&(l[u]=(l[u]||0)+1);return Object.values(l).some(u=>u>1)?c.filter(([u])=>e.includes(u)).map(([u,p])=>[a.name,{[u]:p}]):[[a.name,Object.fromEntries(c.filter(([u])=>e.includes(u)))]]}):s=n.flatMap(([a])=>a.writes.filter(([c,l])=>c===e).map(([c,l])=>[a.name,l]));let i={};for(let[a,c]of s)a in i||(i[a]=[]),i[a].push(c);let o={};for(let a in i)if(i[a].length===1){let[c]=i[a];o[a]=c}else o[a]=i[a];r&&(o.__metadata__={cached:r}),yield o}function Us(e){let t=typeof e[U];if(t==="number")return 0;if(t==="string")return"";for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let n=typeof e[r];if(n==="number")return 0;if(n==="string")return"";break}}function Dr(e,t){if(Object.keys(e).length>0){let r=Us(t);return Object.fromEntries(Object.entries(t).filter(([n,s])=>s>(e[n]??r)))}else return t}function Pp(e,t){return e&&!Array.isArray(e)&&!(e instanceof Date)&&typeof e=="object"?e:{[t]:e}}function ne(e,t){return e===null?{configurable:t}:e?.configurable===void 0?{...e,configurable:t}:{...e,configurable:{...e.configurable,...t}}}function Ot(e,t){let r=t?.parents??{};return Object.keys(r).length>0?ne(e,{[ce]:{...r,[e.configurable?.checkpoint_ns??""]:e.configurable?.checkpoint_id}}):e}function Rt(...e){let t=[...new Set(e.filter(Boolean))];if(t.length===0)return{signal:void 0,dispose:void 0};if(t.length===1)return{signal:t[0],dispose:void 0};let r=new AbortController,n=()=>{let i=t.find(o=>o.aborted)?.reason;r.abort(i),t.forEach(o=>o.removeEventListener("abort",n))};t.forEach(i=>i.addEventListener("abort",n,{once:!0}));let s=t.find(i=>i.aborted);return s&&r.abort(s.reason),{signal:r.signal,dispose:()=>{t.forEach(i=>i.removeEventListener("abort",n))}}}var Op=class{func;name;input;retry;cache;timeout;callbacks;__lg_type="call";constructor({func:e,name:t,input:r,retry:n,cache:s,timeout:i,callbacks:o}){this.func=e,this.name=t,this.input=r,this.retry=n,this.cache=s,this.timeout=i,this.callbacks=o}};function Rp(e){return typeof e=="object"&&e!==null&&"__lg_type"in e&&e.__lg_type==="call"}function Dp(e,t){return new Gt({name:e,first:new oe({func:r=>t(...r),name:e,trace:!1,recurse:!1}),last:new Y([{channel:It,value:be}],[X])})}function $p(e,t){return new oe({func:(r,n)=>t(r,n),name:e,trace:!1,recurse:!1})}var jp=e=>e!==void 0?e+1:1;function Lf(e,t){if(t==null)return!1;for(let r of e)if(t[r])return!0;return!1}function Ff(e){let t;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t==null?t=e[r]:t=ys(t,e[r]));return t}function En(e,t,r){let n=Us(e.channel_versions),s=e.versions_seen.__interrupt__??{},i=!1;if((e.channel_versions.__start__??n)>(s.__start__??n))i=!0;else for(let a in e.channel_versions)if(Object.prototype.hasOwnProperty.call(e.channel_versions,a)&&e.channel_versions[a]>(s[a]??n)){i=!0;break}let o=r.some(a=>t==="*"?!a.config?.tags?.includes(X):t.includes(a.name));return i&&o}function $r(e,t,r,n,s=!1){let i=new Set;if(Array.isArray(n))i=new Set(n.filter(a=>r.writes.some(([c,l])=>c===a)));else{for(let[a]of r.writes)if(a===n){i=new Set([a]);break}i=i||new Set}let o;if(s&&i.size>0){let a=Object.fromEntries(Object.entries(t).filter(([p,h])=>i.has(p))),c=new Set;for(let p in a){if(!Object.prototype.hasOwnProperty.call(a,p))continue;let h=a[p];Ae(h)&&h.isAvailable()&&c.add(p)}let l=$e(e,a,-1,{channelsToSnapshot:c}),u=vs(a,l);fe(et(l),u,[r],void 0,void 0),o=Ve({...t,...u},n)}else o=Ve(t,n);return o}function Gs(e,t,r){for(let[n,s]of r)if(["__pregel_push","__pregel_tasks"].includes(n)&&s!=null){if(!re(s))throw new R(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(s)}`);if(!(s.node in t))throw new R(`Invalid node name "${s.node}" in Send packet`)}e(r)}var Vf=new Set([Yr,he,pe,H,It,Et,Wr]),Uf=new Set(ul);function fe(e,t,r,n,s){let i=new Map;for(let m of r)i.set(m,m.path?.slice(0,3)||[]);r.sort((m,f)=>{let g=i.get(m),y=i.get(f);for(let _=0;_<Math.min(g.length,y.length);_+=1){if(g[_]<y[_])return-1;if(g[_]>y[_])return 1}return g.length-y.length});let o=Tr(t),a=!1,c=new Set;for(let m of r){m.triggers.length>0&&(a=!0),e.versions_seen[m.name]??={};for(let f of m.triggers)f in e.channel_versions&&(e.versions_seen[m.name][f]=e.channel_versions[f]),Uf.has(f)||c.add(f)}let l=Ff(e.channel_versions),u=!1;for(let m of c)m in o&&o[m].consume()&&n!==void 0&&(e.channel_versions[m]=n(l),u=!0);let p={},h={};for(let m of r){let f=m.id??"";for(let[g,y]of m.writes)Vf.has(g)||g in o&&(p[g]??=[],p[g].push(y),h[g]??=[],h[g].push(f))}for(let[m,f]of Object.entries(p)){if(f.length<2||o[m]?.lc_graph_name!=="DeltaChannel")continue;let g=h[m],y=f.map((_,S)=>({val:_,taskId:g[S]}));y.sort((_,S)=>_.taskId<S.taskId?-1:_.taskId>S.taskId?1:0),p[m]=y.map(_=>_.val)}l!=null&&n!=null&&(l=u?n(l):l);let d=new Set;for(let[m,f]of Object.entries(p))if(m in o){let g=o[m],y;try{y=g.update(f)}catch(_){if(_.name===R.unminifiable_name){let S=new R(`Invalid update for channel "${m}" with values ${JSON.stringify(f)}: ${_.message}`);throw S.lc_error_code=_.lc_error_code,S}else throw _}y&&n!==void 0&&(e.channel_versions[m]=n(l),g.isAvailable()&&d.add(m))}if(a)for(let m in o){if(!Object.prototype.hasOwnProperty.call(o,m))continue;let f=o[m];f.isAvailable()&&!d.has(m)&&f.update([])&&n!==void 0&&(e.channel_versions[m]=n(l),f.isAvailable()&&d.add(m))}if(a&&!Lf(d,s))for(let m in o){if(!Object.prototype.hasOwnProperty.call(o,m))continue;let f=o[m];f.finish()&&n!==void 0&&(e.channel_versions[m]=n(l),f.isAvailable()&&d.add(m))}return d}function*Gf(e,t,r){if(r.updatedChannels!=null&&r.triggerToNodes!=null){let n=new Set;for(let s of r.updatedChannels){let i=r.triggerToNodes[s];for(let o of i??[])n.add(o)}yield*[...n].sort();return}if(!(()=>{for(let n in e.channel_versions)if(e.channel_versions[n]!==null)return!1;return!0})())for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(yield n)}function Bf(e){let t,r=new Map,n=new Set;if(e)for(let[s,i,o]of e){if(s==="00000000-0000-0000-0000-000000000000"&&i==="__resume__"&&t===void 0&&(t=o),i==="__resume__"&&s!=="00000000-0000-0000-0000-000000000000"){let a=r.get(s);a||(a=[],r.set(s,a)),a.push(o)}i!=="__error__"&&n.add(s)}return{nullResume:t,resumeByTaskId:r,successfulWriteTaskIds:n}}function Dt(e,t,r,n,s,i,o){let a={},c=o.pendingWritesIndex?o:{...o,pendingWritesIndex:Bf(t)},l=n[Ye];if(l?.isAvailable()){let u=l.get().length;for(let p=0;p<u;p+=1){let h=Hs([he,p],e,t,r,n,s,i,c);h!==void 0&&(a[h.id]=h)}}for(let u of Gf(e,r,c)){let p=Hs([Un,u],e,t,r,n,s,i,c);p!==void 0&&(a[p.id]=p)}return a}function Hs(e,t,r,n,s,i,o,a){let{step:c,checkpointer:l,manager:u}=a,p=i.configurable??{},h=p.checkpoint_ns??"";if(e[0]==="__pregel_push"&&Rp(e[e.length-1])){let d=e[e.length-1],m=Dp(d.name,d.func),f=[he],g=h===""?d.name:`${h}|${d.name}`,y=Qe(JSON.stringify([g,c.toString(),d.name,he,e[1],e[2]]),t.id),_=`${g}:${y}`,S=[...e.slice(0,3),!0],C={langgraph_step:c,langgraph_node:d.name,langgraph_triggers:f,langgraph_path:S,langgraph_checkpoint_ns:_,checkpoint_ns:_};if(o){let I=[],M={checkpointId:t.id,checkpointNs:_,taskId:y,threadId:p.thread_id,runId:i.runId!=null?String(i.runId):void 0,nodeAttempt:1};return{name:d.name,input:d.input,proc:m,writes:I,config:{...lt(Ee(i,{metadata:C,store:a.store??i.store}),{runName:d.name,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[yr]:y,[ae]:k=>Gs(v=>I.push(...v),n,k),[ue]:(k,v=!1)=>$r(t,s,{name:d.name,writes:I,triggers:f,path:S},k,v),[xe]:l??p.__pregel_checkpointer,[ce]:{...p[ce],[h]:t.id},[_e]:Bs({pendingWrites:r??[],taskId:y,currentTaskInput:d.input,resumeMap:i.configurable?.[zt],namespaceHash:it(_),pendingWritesIndex:a.pendingWritesIndex}),[Wt]:t.channel_values[Tt],checkpoint_id:void 0,checkpoint_ns:_}}),executionInfo:M},triggers:f,retry_policy:d.retry,cache_key:d.cache?{key:it((d.cache.keyFunc??JSON.stringify)([d.input])),ns:[Fn,d.name??"__dynamic__"],ttl:d.cache.ttl}:void 0,id:y,path:S,writers:[],timeout:d.timeout}}else return{id:y,name:d.name,interrupts:[],path:S}}else if(e[0]==="__pregel_push"){let d=typeof e[1]=="number"?e[1]:parseInt(e[1],10);if(!s.__pregel_tasks?.isAvailable())return;let m=s[Ye].get();if(d<0||d>=m.length)return;let f=Gn(m[d])&&!re(m[d])?new Ht(m[d].node,m[d].args,m[d].timeout!==void 0?{timeout:m[d].timeout}:void 0):m[d];if(!Gn(f)){console.warn(`Ignoring invalid packet ${JSON.stringify(f)} in pending sends.`);return}if(!(f.node in n)){console.warn(`Ignoring unknown node name ${f.node} in pending sends.`);return}let g=[he],y=h===""?f.node:`${h}|${f.node}`,_=Qe(JSON.stringify([y,c.toString(),f.node,he,d.toString()]),t.id),S=`${y}:${_}`,C={langgraph_step:c,langgraph_node:f.node,langgraph_triggers:g,langgraph_path:e.slice(0,3),langgraph_checkpoint_ns:S,checkpoint_ns:S};if(o){let I=n[f.node],M=I.getNode();if(M!==void 0){I.metadata!==void 0&&(C={...C,...I.metadata});let k=[],v={checkpointId:t.id,checkpointNs:S,taskId:_,threadId:p.thread_id,runId:i.runId!=null?String(i.runId):void 0,nodeAttempt:1};return{name:f.node,input:f.args,proc:M,subgraphs:I.subgraphs,writes:k,config:{...lt(Ee(i,{metadata:C,tags:I.tags,store:a.store??i.store}),{runName:f.node,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[yr]:_,[ae]:T=>Gs(x=>k.push(...x),n,T),[ue]:(T,x=!1)=>$r(t,s,{name:f.node,writes:k,triggers:g,path:e},T,x),[xe]:l??p.__pregel_checkpointer,[ce]:{...p[ce],[h]:t.id},[_e]:Bs({pendingWrites:r??[],taskId:_,currentTaskInput:f.args,resumeMap:i.configurable?.[zt],namespaceHash:it(S),pendingWritesIndex:a.pendingWritesIndex}),[Wt]:t.channel_values[Tt],checkpoint_id:void 0,checkpoint_ns:S}}),executionInfo:v},triggers:g,retry_policy:I.retryPolicy,cache_key:I.cachePolicy?{key:it((I.cachePolicy.keyFunc??JSON.stringify)([f.args])),ns:[Fn,I.name??"__dynamic__",f.node],ttl:I.cachePolicy.ttl}:void 0,id:_,path:e,writers:I.getWriters(),timeout:f.timeout??I.timeout}}}else return{id:_,name:f.node,interrupts:[],path:e}}else if(e[0]==="__pregel_pull"){let d=e[1].toString(),m=n[d];if(m===void 0)return;if(r?.length){let _=h===""?d:`${h}|${d}`,S=Qe(JSON.stringify([_,c.toString(),d,Un,d]),t.id);if(a.pendingWritesIndex?a.pendingWritesIndex.successfulWriteTaskIds.has(S):r.some(C=>C[0]===S&&C[1]!=="__error__"))return}let f=Us(t.channel_versions);if(f===void 0)return;let g=t.versions_seen[d]??{},y=m.triggers.find(_=>s[_].isAvailable()?(t.channel_versions[_]??f)>(g[_]??f):!1);if(y!==void 0){let _=Hf(m,s,o);if(_===void 0)return;let S=h===""?d:`${h}|${d}`,C=Qe(JSON.stringify([S,c.toString(),d,Un,[y]]),t.id),I=`${S}:${C}`,M={langgraph_step:c,langgraph_node:d,langgraph_triggers:[y],langgraph_path:e,langgraph_checkpoint_ns:I,checkpoint_ns:I};if(o){let k=m.getNode();if(k!==void 0){m.metadata!==void 0&&(M={...M,...m.metadata});let v=[],T={checkpointId:t.id,checkpointNs:I,taskId:C,threadId:p.thread_id,runId:i.runId!=null?String(i.runId):void 0,nodeAttempt:1};return{name:d,input:_,proc:k,subgraphs:m.subgraphs,writes:v,config:{...lt(Ee(i,{metadata:M,tags:m.tags,store:a.store??i.store}),{runName:d,callbacks:u?.getChild(`graph:step:${c}`),configurable:{[yr]:C,[ae]:x=>Gs(G=>{v.push(...G)},n,x),[ue]:(x,G=!1)=>$r(t,s,{name:d,writes:v,triggers:[y],path:e},x,G),[xe]:l??p.__pregel_checkpointer,[ce]:{...p[ce],[h]:t.id},[_e]:Bs({pendingWrites:r??[],taskId:C,currentTaskInput:_,resumeMap:i.configurable?.[zt],namespaceHash:it(I),pendingWritesIndex:a.pendingWritesIndex}),[Wt]:t.channel_values[Tt],checkpoint_id:void 0,checkpoint_ns:I}}),executionInfo:T},triggers:[y],retry_policy:m.retryPolicy,cache_key:m.cachePolicy?{key:it((m.cachePolicy.keyFunc??JSON.stringify)([_])),ns:[Fn,m.name??"__dynamic__",d],ttl:m.cachePolicy.ttl}:void 0,id:C,path:e,writers:m.getWriters(),timeout:m.timeout}}}else return{id:C,name:d,interrupts:[],path:e}}}}function Lp(e,t,r,n,s,i,o,a,c){let{step:l,checkpointer:u,manager:p}=c,h=i[t];if(h===void 0)return;let d=h.getNode();if(d===void 0)return;let m=a.configurable??{},f=m.checkpoint_ns??"",g=[he],y=f===""?t:`${f}|${t}`,_=Qe(JSON.stringify([y,l.toString(),t,he,"node_error_handler",e.id]),n.id),S=`${y}:${_}`,C=[he,String(e.name),t,!1],I={langgraph_step:l,langgraph_node:t,langgraph_triggers:g,langgraph_path:C,langgraph_checkpoint_ns:S,checkpoint_ns:S};h.metadata!==void 0&&(I={...I,...h.metadata});let M=[],k={checkpointId:n.id,checkpointNs:S,taskId:_,threadId:m.thread_id,runId:a.runId!=null?String(a.runId):void 0,nodeAttempt:1};return{name:t,input:e.input,proc:d,subgraphs:h.subgraphs,writes:M,config:{...lt(Ee(a,{metadata:I,tags:h.tags,store:c.store??a.store}),{runName:t,callbacks:p?.getChild(`graph:step:${l}`),configurable:{[yr]:_,[ae]:v=>Gs(T=>M.push(...T),i,v),[ue]:(v,T=!1)=>$r(n,o,{name:t,writes:M,triggers:g,path:C},v,T),[xe]:u??m.__pregel_checkpointer,[ce]:{...m[ce],[f]:n.id},[_e]:Bs({pendingWrites:s??[],taskId:_,currentTaskInput:e.input,resumeMap:a.configurable?.[zt],namespaceHash:it(S)}),[Wt]:n.channel_values[Tt],[Jr]:new ki(String(e.name),r),checkpoint_id:void 0,checkpoint_ns:S}}),executionInfo:k},triggers:g,retry_policy:h.retryPolicy,cache_key:void 0,id:_,path:C,writers:h.getWriters()}}function Hf(e,t,r){let n;if(typeof e.channels=="object"&&!Array.isArray(e.channels)){n={};for(let[s,i]of Object.entries(e.channels))if(e.triggers.includes(i))try{n[s]=nr(t,i,!1)}catch(o){if(o.name===F.unminifiable_name)return;throw o}else if(i in t)try{n[s]=nr(t,i,!1)}catch(o){if(o.name===F.unminifiable_name)continue;throw o}}else if(Array.isArray(e.channels)){let s=!1;for(let i of e.channels)try{n=nr(t,i,!1),s=!0;break}catch(o){if(o.name===F.unminifiable_name)continue;throw o}if(!s)return}else throw new Error(`Invalid channels type, expected list or dict, got ${e.channels}`);return r&&e.mapper!==void 0&&(n=e.mapper(n)),n}function Fp(e,t){if(typeof e.args!="object"||e.args===null)return e;let r={};for(let[n,s]of Object.entries(e.args)){let i=t[n];(!i||i.lc_graph_name!=="UntrackedValue")&&(r[n]=s)}return new Ht(e.node,r)}function Bs({pendingWrites:e,taskId:t,currentTaskInput:r,resumeMap:n,namespaceHash:s,pendingWritesIndex:i}){let o=i?i.nullResume:e.find(([c,l])=>c==="00000000-0000-0000-0000-000000000000"&&l==="__resume__")?.[2],a={callCounter:0,interruptCounter:-1,resume:(()=>{let c=i?(i.resumeByTaskId.get(t)??[]).flat():e.filter(([l,u])=>l===t&&u==="__resume__").flatMap(([l,u,p])=>p);if(n!=null&&s in n){let l=n[s];c.push(l)}return c})(),nullResume:o,subgraphCounter:0,currentTaskInput:r,consumeNullResume:()=>{if(a.nullResume)return delete a.nullResume,e.splice(e.findIndex(([c,l])=>c==="00000000-0000-0000-0000-000000000000"&&l==="__resume__"),1),o}};return a}var xn={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},In=(e,t)=>`${e.start}${t}${e.end}`;function qf(e){if(e==null)return;let t={};if(e.metadata!=null)for(let[n,s]of Object.entries(e.metadata))Mo.has(n)||(t[n]=s);let r=cp(e.tags);return r!=null&&(t.tags=r),Object.keys(t).length>0?t:void 0}function*qs(e){for(let{id:t,name:r,input:n,config:s,triggers:i,writes:o}of e){if(s?.tags?.includes("langsmith:hidden"))continue;let a={id:t,name:r,input:n,triggers:i,interrupts:o.filter(([l,u])=>l===t&&u==="__interrupt__").map(([,l])=>l)},c=qf(s);c!=null&&(a.metadata=c),yield a}}function zf(e){return typeof e!="object"||e===null?!1:"$writes"in e&&Array.isArray(e.$writes)}function Vp(e){let t={};for(let[r,n]of e){let s=String(r);if(s in t){let i=zf(t[s])?t[s].$writes:[t[s]];i.push(n),t[s]={$writes:i}}else t[s]=n}return t}function*Up(e,t){for(let[{id:r,name:n,config:s},i]of e)s?.tags?.includes("langsmith:hidden")||(yield{id:r,name:n,result:Vp(i.filter(([o])=>Array.isArray(t)?t.includes(o):o===t)),interrupts:i.filter(o=>o[0]===H).map(o=>o[1])})}function*Gp(e,t,r,n,s,i,o,a){function c(p){let h={};return p.callbacks!=null&&(h.callbacks=p.callbacks),p.configurable!=null&&(h.configurable=p.configurable),p.maxConcurrency!=null&&(h.max_concurrency=p.maxConcurrency),p.metadata!=null&&(h.metadata=p.metadata),p.recursionLimit!=null&&(h.recursion_limit=p.recursionLimit),p.runId!=null&&(h.run_id=p.runId),p.runName!=null&&(h.run_name=p.runName),p.tags!=null&&(h.tags=p.tags),h}let l=e.configurable?.checkpoint_ns,u={};for(let p of s){if(!(p.subgraphs?.length?p.subgraphs:[p.proc]).find(Ls))continue;let h=`${p.name}:${p.id}`;l&&(h=`${l}|${h}`),u[p.id]={configurable:{thread_id:e.configurable?.thread_id,checkpoint_ns:h}}}yield{config:c(e),values:Ve(t,r),metadata:n,next:s.map(p=>p.name),tasks:ra(s,i,u,a),parentConfig:o?c(o):void 0}}function ra(e,t,r,n){return e.map(s=>{let i=t.find(([l,u])=>l===s.id&&u==="__error__")?.[2],o=t.filter(([l,u])=>l===s.id&&u==="__interrupt__").map(([,,l])=>l),a=(()=>{if(i||o.length||!t.length)return;let l=t.findIndex(([u,p])=>u===s.id&&p==="__return__");if(l>=0)return t[l][2];if(typeof n=="string")return t.find(([u,p])=>u===s.id&&p===n)?.[2];if(Array.isArray(n)){let u=t.filter(([p,h])=>p===s.id&&n.includes(h)).map(([,p,h])=>[p,h]);return u.length?Vp(u):void 0}})();if(i)return{id:s.id,name:s.name,path:s.path,error:i,interrupts:o,result:a};let c=r?.[s.id];return{id:s.id,name:s.name,path:s.path,interrupts:o,...c!==void 0?{state:c}:{},result:a}})}function Bp(e,t,r){console.log([`${In(xn.blue,`[${e}:checkpoint]`)}`,`\x1B[1m State at the end of step ${e}:\x1B[0m
|
|
117
|
+
`,JSON.stringify(Ve(t,r),null,2)].join(""))}function Tn(e,t){let r=t.length;console.log([`${In(xn.blue,`[${e}:tasks]`)}`,`\x1B[1m Starting step ${e} with ${r} task${r===1?"":"s"}:\x1B[0m
|
|
118
|
+
`,t.map(n=>`- ${In(xn.green,String(n.name))} -> ${JSON.stringify(n.input,null,2)}`).join(`
|
|
119
|
+
`)].join(""))}function Hp(e,t,r){let n={};for(let[s,i]of t)r.includes(s)&&(n[s]||(n[s]=[]),n[s].push(i));console.log([`${In(xn.blue,`[${e}:writes]`)}`,`\x1B[1m Finished step ${e} with writes to ${Object.keys(n).length} channel${Object.keys(n).length!==1?"s":""}:\x1B[0m
|
|
120
|
+
`,Object.entries(n).map(([s,i])=>`- ${In(xn.yellow,s)} -> ${i.map(o=>JSON.stringify(o)).join(", ")}`).join(`
|
|
121
|
+
`)].join(""))}var zs=class extends Hr{_abortController;_innerReader;constructor(e,t){let r=e.getReader(),n=t??new AbortController;super({start(s){return i();function i(){return r.read().then(({done:o,value:a})=>{if(o){s.close();return}return s.enqueue(a),i()})}}}),this._abortController=n,this._innerReader=r}async cancel(e){this._abortController.abort(e),this._innerReader.releaseLock()}get signal(){return this._abortController.signal}},sa=class extends Hr{modes;controller;passthroughFn;_closed=!1;get closed(){return this._closed}constructor(e){let t,r=new Promise(n=>{t=n});super({start:n=>{t(n)}}),r.then(n=>{this.controller=n}),this.passthroughFn=e.passthroughFn,this.modes=e.modes}push(e){this._closed||!this.controller||(this.passthroughFn?.(e),this.controller.enqueue(e))}close(){try{this.controller.close()}catch{}finally{this._closed=!0}}error(e){try{this.controller?.error(e)}finally{this._closed=!0}}},Wp=class extends kt{name="StreamToolsHandler";awaitHandlers=!0;streamFn;runs={};constructor(e){super(),this.streamFn=e}handleToolStart(e,t,r,n,s,i,o,a){if(!i||s&&s.includes("langsmith:hidden"))return;let c=i.langgraph_checkpoint_ns?.split("|")??[],l={ns:c,toolCallId:a,toolName:o??"unknown",input:t};this.runs[r]=l,this.streamFn([c,"tools",{event:"on_tool_start",toolCallId:l.toolCallId,name:l.toolName,input:t}])}handleToolEvent(e,t){let r=this.runs[t];r&&this.streamFn([r.ns,"tools",{event:"on_tool_event",toolCallId:r.toolCallId,name:r.toolName,data:e}])}handleToolEnd(e,t){let r=this.runs[t];delete this.runs[t],r&&this.streamFn([r.ns,"tools",{event:"on_tool_end",toolCallId:r.toolCallId,name:r.toolName,output:e}])}handleToolError(e,t){let r=this.runs[t];delete this.runs[t],r&&this.streamFn([r.ns,"tools",{event:"on_tool_error",toolCallId:r.toolCallId,name:r.toolName,error:e}])}};function Wf(e){return JSON.stringify(e,function(t,r){let n=this[t];if(n!=null&&typeof n=="object"&&"toDict"in n&&typeof n.toDict=="function"){let{type:s,data:i}=n.toDict();return{...i,type:s}}return r})}function Kf(e){return e instanceof Error?{error:e.name,message:e.message}:{error:"Error",message:JSON.stringify(e)}}function ia(e){return typeof e!="object"||e==null?!1:"configurable"in e&&typeof e.configurable=="object"&&e.configurable!=null}function na(e){return!ia(e)||!e.configurable.thread_id?null:{thread_id:e.configurable.thread_id,checkpoint_ns:e.configurable.checkpoint_ns||"",checkpoint_id:e.configurable.checkpoint_id||null,checkpoint_map:e.configurable.checkpoint_map||null}}function qp(e){if(ia(e)){let t=Object.fromEntries(Object.entries(e.configurable).filter(([n])=>!n.startsWith("__"))),r={...e,configurable:t};return delete r.callbacks,r}return e}function zp(e){let t={...e,checkpoint:na(e.config),parent_checkpoint:na(e.parentConfig),config:qp(e.config),parent_config:qp(e.parentConfig),tasks:e.tasks.map(r=>{if(ia(r.state)){let n=na(r.state);if(n!=null){let s={...r,checkpoint:n};return delete s.state,s}}return r})};return delete t.parentConfig,t}function Kp(e){let t=new TextEncoder;return new ReadableStream({async start(r){let n=s=>{r.enqueue(t.encode(`event: ${s.event}
|
|
122
|
+
data: ${Wf(s.data)}
|
|
123
|
+
|
|
124
|
+
`))};try{for await(let s of e){let[i,o,a]=s,c=a;if(o==="debug"){let l=a;l.type==="checkpoint"&&(c={...l,payload:zp(l.payload)})}o==="checkpoints"&&(c=zp(a)),n({event:i?.length?`${o}|${i.join("|")}`:o,data:c})}}catch(s){n({event:"error",data:Kf(s)})}r.close()}})}function Jp(...e){return new sa({passthroughFn:t=>{let r=t[1]==="checkpoints"&&Nr(t[2]);for(let n of e)(n.modes.has(t[1])||r)&&n.push(t)},modes:new Set(e.flatMap(t=>Array.from(t.modes)))})}var Yp=class{checkpointId;#e=new Set;constructor(e){this.checkpointId=e}#t(e){let t=e.includes(":")?e.slice(0,e.lastIndexOf(":")):e;return this.#e.has(t)?!1:(this.#e.add(t),!0)}async getCheckpoint(e,t,r){if(this.#t(e)){let n=[];for await(let s of t.list(r,{before:{configurable:{checkpoint_id:this.checkpointId}},limit:1}))n.push(s);return n.length>0?n[0]:void 0}return await t.getTuple(r)??void 0}};var Ws=Symbol.for("INPUT_DONE"),oa=Symbol.for("INPUT_RESUMING"),Jf=25;function Xp(e){if(!(e==null||typeof e!="object")){if(ee.isInstance(e)){let t=e;t.id==null&&(t.id=Gr(),t.lc_kwargs!=null&&(t.lc_kwargs.id=t.id));return}if(Array.isArray(e)){for(let t of e)Xp(t);return}}}function Qp(e){return e===void 0||e===""?[]:e.split("|")}function Yf(e){if(!e)return[];let t="";for(let r of Object.keys(e))r!==""&&r.length>t.length&&(t=r);return Qp(t)}var Xf=class extends bs{cache;queue=Promise.resolve();constructor(e){super(),this.cache=e}async get(e){return this.enqueueOperation("get",e)}async set(e){return this.enqueueOperation("set",e)}async clear(e){return this.enqueueOperation("clear",e)}async stop(){await this.queue}enqueueOperation(e,...t){let r=this.queue.then(()=>this.cache[e](...t));return this.queue=r.then(()=>{},()=>{}),r}},Zp=class eh{input;output;config;checkpointer;checkpointerGetNextVersion;channels;checkpoint;checkpointIdSaved;_exitDeltaWrites;_deltaChannelsWithOverwrite=new Set;_hasPersistedParent=!1;_initialCheckpointConfig;checkpointConfig;checkpointMetadata;checkpointNamespace;checkpointPendingWrites=[];checkpointPreviousVersions;step;stop;durability;outputKeys;streamKeys;nodes;skipDoneTasks;prevCheckpointConfig;updatedChannels;status="pending";control;tasks={};stream;checkpointerPromises=new Set;isNested;resumeAtHead;_checkpointerChainedPromise=Promise.resolve();_trackCheckpointerPromise(t){let r=t.then(n=>(this.checkpointerPromises.delete(r),n),n=>{throw n});this.checkpointerPromises.add(r)}async _awaitCheckpointerPromises(){await Promise.all([...this.checkpointerPromises])}store;cache;manager;interruptAfter;interruptBefore;toInterrupt=[];debug=!1;triggerToNodes;get isResuming(){let t=!1;if("__start__"in this.checkpoint.channel_versions)t=!0;else for(let a in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,a)){t=!0;break}let r=this.config.configurable?.__pregel_resuming!==void 0&&this.config.configurable?.__pregel_resuming,n=this.input===null||this.input===void 0,s=ie(this.input)&&this.input.resume!=null,i=this.input===oa,o=!this.isNested&&this.config.metadata?.run_id!==void 0&&this.checkpointMetadata?.run_id!==void 0&&this.config.metadata.run_id===this.checkpointMetadata?.run_id;return t&&(r||n||s||i||o)}get isReplaying(){return!this.skipDoneTasks}constructor(t){this.input=t.input,this.checkpointer=t.checkpointer,this.checkpointer!==void 0?this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer):this.checkpointerGetNextVersion=jp,this.checkpoint=t.checkpoint,this.checkpointMetadata=t.checkpointMetadata,this.checkpointPreviousVersions=t.checkpointPreviousVersions,this.channels=t.channels,this.checkpointPendingWrites=t.checkpointPendingWrites,this.step=t.step,this.stop=t.stop,this.config=t.config,this.checkpointConfig=t.checkpointConfig,this.isNested=t.isNested,this.resumeAtHead=t.resumeAtHead,this.manager=t.manager,this.outputKeys=t.outputKeys,this.streamKeys=t.streamKeys,this.nodes=t.nodes,this.skipDoneTasks=t.skipDoneTasks,this.store=t.store,this.cache=t.cache?new Xf(t.cache):void 0,this.stream=t.stream,this.checkpointNamespace=t.checkpointNamespace,this.prevCheckpointConfig=t.prevCheckpointConfig,this.interruptAfter=t.interruptAfter,this.interruptBefore=t.interruptBefore,this.durability=t.durability,this.debug=t.debug,this.triggerToNodes=t.triggerToNodes,this.control=this.config.control,this._exitDeltaWrites=this.durability==="exit"&&this.checkpointer!=null?[]:void 0,this._hasPersistedParent=t.hasPersistedParent??!1,this._initialCheckpointConfig=t.checkpointConfig,this.checkpointIdSaved=t.checkpoint.id}static async initialize(t){let{config:r,stream:n}=t;n!==void 0&&r.configurable?.__pregel_stream!==void 0&&(n=Jp(n,r.configurable[Kr]));let s=r.configurable?!("checkpoint_id"in r.configurable):!0,i=r.configurable?.[_e];r.configurable&&i&&(i.subgraphCounter>0&&(r=ne(r,{[Ce]:[r.configurable[Ce],i.subgraphCounter.toString()].join("|")})),i.subgraphCounter+=1);let o=r.configurable?.checkpoint_id,a=ue in(r.configurable??{});!a&&r.configurable?.checkpoint_ns!==void 0&&r.configurable?.checkpoint_ns!==""&&(r=ne(r,{checkpoint_ns:"",checkpoint_id:void 0}));let c=r;r.configurable?.checkpoint_id===void 0&&r.configurable?.checkpoint_map!==void 0&&r.configurable?.checkpoint_map?.[r.configurable?.checkpoint_ns]&&(c=ne(r,{checkpoint_id:r.configurable[ce][r.configurable?.checkpoint_ns]}));let l=Qp(r.configurable?.checkpoint_ns),u;t.checkpointer?c.configurable?.checkpoint_id?u=await t.checkpointer.getTuple(c):r.configurable?.__pregel_replay_state?(u=await r.configurable[Vn].getCheckpoint(r.configurable?.checkpoint_ns??"",t.checkpointer,c),r.configurable&&delete r.configurable[qt]):u=await t.checkpointer.getTuple(c):u=void 0;let p=u!==void 0;u||(u={config:r,checkpoint:er(),metadata:{source:"input",step:-2,parents:{}},pendingWrites:[]}),c={...r,...u.config,configurable:{checkpoint_ns:"",...r.configurable,...u.config.configurable}};let h=u.parentConfig,d=et(u.checkpoint),m={...u.metadata},f=u.pendingWrites??[],g=r.configurable?.checkpoint_ns,y=r.configurable?.[ce];typeof g=="string"&&g!==""&&typeof y=="object"&&y!==null&&g in y&&f.length>0&&(f=f.filter(([,x])=>x!==pe));let _=!1,S=c.configurable?.thread_id,C=c.configurable?.checkpoint_ns??"";t.checkpointer&&o&&typeof S=="string"&&(_=(await t.checkpointer.getTuple({configurable:{thread_id:S,checkpoint_ns:C}}))?.config.configurable?.checkpoint_id===o&&m.source!=="update"&&m.source!=="fork");let I=await Ar(t.channelSpecs,d,{saver:t.checkpointer,config:c}),M=(m.step??0)+1,k=M+(r.recursionLimit??Jf)+1,v={...d.channel_versions},T=t.store?new ws(t.store):void 0;return T&&await T.start(),new eh({input:t.input,config:r,checkpointer:t.checkpointer,checkpoint:d,checkpointMetadata:m,checkpointConfig:c,prevCheckpointConfig:h,checkpointNamespace:l,channels:I,isNested:a,resumeAtHead:_,manager:t.manager,skipDoneTasks:s,step:M,stop:k,checkpointPreviousVersions:v,checkpointPendingWrites:f,outputKeys:t.outputKeys??[],streamKeys:t.streamKeys??[],nodes:t.nodes,stream:n,store:T,cache:t.cache,interruptAfter:t.interruptAfter,interruptBefore:t.interruptBefore,durability:t.durability,debug:t.debug,triggerToNodes:t.triggerToNodes,hasPersistedParent:p})}_checkpointerPutAfterPrevious(t){this._checkpointerChainedPromise=this._checkpointerChainedPromise.then(()=>this.checkpointer?.put(t.config,t.checkpoint,t.metadata,t.newVersions)),this._trackCheckpointerPromise(this._checkpointerChainedPromise)}putWrites(t,r){let n=r;if(n.length===0)return;n.every(([c])=>c in _s)&&(n=Array.from(new Map(n.map(c=>[c[0],c])).values()));let s=!1;for(let c in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,c)&&this.channels[c].lc_graph_name==="UntrackedValue"){s=!0;break}let i=n;s&&(i=n.filter(([c])=>{let l=this.channels[c];return!l||l.lc_graph_name!=="UntrackedValue"}).map(([c,l])=>c==="__pregel_tasks"&&re(l)?[c,Fp(l,this.channels)]:[c,l])),this.checkpointPendingWrites=this.checkpointPendingWrites.filter(c=>c[0]!==t);for(let[c,l]of i)this.checkpointPendingWrites.push([t,c,l]);for(let[c,l]of i){let u=this.channels[c];u!=null&&Ae(u)&&Xp(l)}let o=ne(this.checkpointConfig,{[Ce]:this.config.configurable?.checkpoint_ns??"",[xt]:this.checkpoint.id});if(this.durability!=="exit"&&this.checkpointer!=null&&this._trackCheckpointerPromise(this.checkpointer.putWrites(o,i,t)),this.tasks&&this._outputWrites(t,n),!r.length||!this.cache||!this.tasks)return;let a=this.tasks[t];a==null||a.cache_key==null||r[0][0]==="__error__"||r[0][0]==="__interrupt__"||this.cache.set([{key:[a.cache_key.ns,a.cache_key.key],value:a.writes,ttl:a.cache_key.ttl}])}_outputWrites(t,r,n=!1){let s=this.tasks[t];if(s!==void 0){if(s.config!==void 0&&(s.config.tags??[]).includes("langsmith:hidden"))return;if(r.length>0)if(r[0][0]==="__interrupt__"){if(s.path?.[0]==="__pregel_push"&&s.path?.[s.path.length-1]===!0)return;let i=r.filter(o=>o[0]===H).flatMap(o=>o[1]);this._emit([["updates",{[H]:i}],["values",{[H]:i}]])}else r[0][0]!=="__error__"&&this._emit(Pt(ot(Mp(this.outputKeys,[[s,r]],n),"updates")));n||this._emit(Pt(ot(Up([[s,r]],this.streamKeys),"tasks")))}}async _matchCachedWrites(){if(!this.cache)return[];let t=[],r=([o,a])=>`ns:${o.join(",")}|key:${a}`,n=[],s={};for(let o of Object.values(this.tasks))o.cache_key!=null&&!o.writes.length&&(n.push([o.cache_key.ns,o.cache_key.key]),s[r([o.cache_key.ns,o.cache_key.key])]=o);if(n.length===0)return[];let i=await this.cache.get(n);for(let{key:o,value:a}of i){let c=s[r(o)];c!=null&&(c.writes.push(...a),t.push({task:c,result:a}))}return t}async tick(t){this.store&&!this.store.isRunning&&await this.store?.start();let{inputKeys:r=[]}=t;if(this.status!=="pending")throw new Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);if(![Ws,oa].includes(this.input))await this._first(r);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new ht;if(Object.values(this.tasks).every(s=>s.writes.length>0)){let s=Object.values(this.tasks),i=s.flatMap(a=>a.writes);this.updatedChannels=fe(this.checkpoint,this.channels,s,this.checkpointerGetNextVersion,this.triggerToNodes);for(let[a,c]of i){let l=this.channels[a];l!=null&&Ae(l)&&Kt(c)&&this._deltaChannelsWithOverwrite.add(a)}let o=await Le(ot(Vs(this.outputKeys,i,this.channels),"values"));if(this._exitDeltaWrites!==void 0)for(let[a,c,l]of this.checkpointPendingWrites){let u=this.channels[c];u!=null&&Ae(u)&&this._exitDeltaWrites.push([this.step,a,c,l])}if(this.checkpointPendingWrites=[],await this._putCheckpoint({source:"loop"}),this.durability==="sync"&&await this._awaitCheckpointerPromises(),this._emitValuesWithCheckpointMeta(o),En(this.checkpoint,this.interruptAfter,s))throw this.status="interrupt_after",new ht;this.config.configurable?.__pregel_resuming!==void 0&&delete this.config.configurable?.[qt]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;this.tasks=Dt(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step,checkpointer:this.checkpointer,isResuming:this.isResuming,manager:this.manager,store:this.store,stream:this.stream,triggerToNodes:this.triggerToNodes,updatedChannels:this.updatedChannels});let n=Object.values(this.tasks);if(this.checkpointer&&(this.stream.modes.has("checkpoints")||this.stream.modes.has("debug"))&&this._emit(await Le(ot(Gp(this.checkpointConfig,this.channels,this.streamKeys,this.checkpointMetadata,n,this.checkpointPendingWrites,this.prevCheckpointConfig,this.outputKeys),"checkpoints"))),n.length===0)return this.status="done",!1;if(this.control!=null&&this.control.drainRequested)return this.status="draining",!1;if(this.skipDoneTasks&&this.checkpointPendingWrites.length>0){for(let[s,i,o]of this.checkpointPendingWrites){if(i==="__error__"||i==="__error_source_node__"||i==="__interrupt__"||i==="__resume__")continue;let a=n.find(c=>c.id===s);a&&a.writes.push([i,o])}this._resumeErrorHandlersIfApplicable(),n=Object.values(this.tasks);for(let s of n)s.writes.length>0&&this._outputWrites(s.id,s.writes,!0)}if(n.every(s=>s.writes.length>0))return this.tick({inputKeys:r});if(En(this.checkpoint,this.interruptBefore,n))throw this.status="interrupt_before",new ht;if(this.stream.modes.has("tasks")||this.stream.modes.has("debug")){let s=await Le(ot(qs(n),"tasks"));this._emit(s)}return!0}async finishAndHandleError(t){this.durability==="exit"&&(!this.isNested||typeof t<"u"||this.checkpointNamespace.every(n=>!n.includes(":")))&&(await this._putExitDeltaWrites(),this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let r=this._suppressInterrupt(t);return(r||t===void 0)&&(this.output=Ve(this.channels,this.outputKeys)),r&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(n=>n.writes.length>0)&&(this.updatedChannels=fe(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emitValuesWithCheckpointMeta(Pt(ot(Vs(this.outputKeys,Object.values(this.tasks).flatMap(n=>n.writes),this.channels),"values")))),dt(t)&&!t.interrupts.length&&this._emit([["updates",{[H]:[]}],["values",{[H]:[]}]],this.#e())),r}async acceptPush(t,r,n){if(this.interruptAfter?.length>0&&En(this.checkpoint,this.interruptAfter,[t])){this.toInterrupt.push(t);return}let s=Hs([he,t.path??[],r,t.id,n],this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,t.config??{},!0,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(!s)return;if(this.interruptBefore?.length>0&&En(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}(this.stream.modes.has("tasks")||this.stream.modes.has("debug"))&&this._emit(Pt(ot(qs([s]),"tasks"))),this.debug&&Tn(this.step,[s]),this.tasks[s.id]=s,this.skipDoneTasks&&this._matchWrites({[s.id]:s});let i=await this._matchCachedWrites();for(let{task:o}of i)this._outputWrites(o.id,o.writes,!0);return s}getErrorHandlerNode(t){return this.nodes[t]?.errorHandlerNode}isErrorHandlerNode(t){return this.nodes[t]?.isErrorHandler===!0}scheduleErrorHandler(t,r){let n=this.getErrorHandlerNode(String(t.name));if(!n)return;let s=Lp(t,n,r,this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,t.config??this.config,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(s!==void 0)return this.tasks[s.id]=s,this._emit(Pt(ot(qs([s]),"tasks"))),this.debug&&Tn(this.step,[s]),s}_resumeErrorHandlersIfApplicable(){let t=new Map;for(let[r,n]of this.checkpointPendingWrites){if(n!=="__error_source_node__")continue;let s=this.checkpointPendingWrites.find(([a,c])=>a===r&&c==="__error__");if(s===void 0)continue;let i=s[2],o=new Error(i?.message??String(i));i?.name&&(o.name=i.name),t.set(r,o)}for(let[r,n]of t){let s=this.tasks[r];s!==void 0&&this.getErrorHandlerNode(String(s.name))&&(s.writes.length===0&&s.writes.push([Et,{message:n.message,name:n.name}]),this.scheduleErrorHandler(s,n))}}_suppressInterrupt(t){return dt(t)&&!this.isNested}async _first(t){let{configurable:r}=this.config,n=r?.[_e];if(n&&n.nullResume!==void 0&&this.putWrites(de,[[pe,n.nullResume]]),ie(this.input)){let l=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume=="object"&&Object.keys(this.input.resume).every(Ds)&&(this.config.configurable??={},this.config.configurable[zt]=this.input.resume),l&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let u={};for(let[p,h,d]of Np(this.input,this.checkpointPendingWrites))u[p]??=[],u[p].push([h,d]);if(Object.keys(u).length===0)throw new Wn("Received empty Command input");for(let[p,h]of Object.entries(u))this.putWrites(p,h)}let s=(this.checkpointPendingWrites??[]).filter(l=>l[0]===de).map(l=>l.slice(1));s.length>0&&fe(this.checkpoint,this.channels,[{name:Je,writes:s,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let i=ie(this.input),o=i&&s.length>0,a=this.isReplaying&&(this.isNested&&r?.checkpoint_ns!==void 0&&r?.checkpoint_ns!==""&&r?.checkpoint_map!==void 0&&r.checkpoint_ns in r.checkpoint_map||!(i&&this.input.resume!=null||r?.__pregel_resuming===!0||this.resumeAtHead));a&&(this.checkpointPendingWrites=this.checkpointPendingWrites.filter(l=>l[1]!==pe));let c=this.isResuming;if(c||o){let l={...this.checkpoint.versions_seen[H]};for(let p in this.channels)Object.prototype.hasOwnProperty.call(this.channels,p)&&this.checkpoint.channel_versions[p]!==void 0&&(l[p]=this.checkpoint.channel_versions[p]);this.checkpoint.versions_seen[H]=l,a&&this.checkpointMetadata.source!=="update"&&this.checkpointMetadata.source!=="fork"&&(this.checkpointPendingWrites=this.checkpointPendingWrites.filter(p=>p[1]!==H),await this._putCheckpoint({source:"fork"}));let u=await Le(ot(Vs(this.outputKeys,!0,this.channels),"values"));c?this.input=oa:o&&(await this._putCheckpoint({source:"input"}),this.input=Ws),this._emitValuesWithCheckpointMeta(u)}else{let l=await Le(Fs(t,this.input));if(l.length>0){let u=Dt(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});this.updatedChannels=fe(this.checkpoint,this.channels,Object.values(u).concat([{name:Je,writes:l,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes);let p=l.filter(([h])=>{let d=this.channels[h];return d!=null&&Ae(d)});for(let[h,d]of p)Kt(d)&&this._deltaChannelsWithOverwrite.add(h);if(p.length>0)if(this._exitDeltaWrites!==void 0)for(let[h,d]of p)this._exitDeltaWrites.push([this.step,de,h,d]);else this.checkpointer!=null&&this.putWrites(de,p);await this._putCheckpoint({source:"input"}),this.input=Ws}else if("__pregel_resuming"in(this.config.configurable??{}))this.input=Ws;else throw new Wn(`Received no input writes for ${JSON.stringify(t,null,2)}`)}if(!this.isNested){let l;if(a){let u=this.checkpoint.id;(this.checkpointMetadata.source==="update"||this.checkpointMetadata.source==="fork")&&this.prevCheckpointConfig&&(u=this.prevCheckpointConfig.configurable?.checkpoint_id??u),l=new Yp(u)}this.config=ne(this.config,{[qt]:this.isResuming,[Vn]:l})}}#e(){let t=this.checkpointNamespace;if(!(t.length===0||t.length===1&&t[0]==="")||this.config.configurable?.__pregel_stream===void 0)return t;let r=Yf(this.config.configurable?.[ce]);return r.length>0?r:t}_emit(t,r=this.checkpointNamespace){for(let[n,s]of t)if(this.stream.modes.has(n)&&this.stream.push([r,n,s]),(n==="checkpoints"||n==="tasks")&&this.stream.modes.has("debug")){let i=n==="checkpoints"?this.step-1:this.step,o=new Date().toISOString(),a=n==="checkpoints"?"checkpoint":typeof s=="object"&&s!=null&&"result"in s?"task_result":"task";this.stream.push([r,"debug",{step:i,type:a,timestamp:o,payload:s}])}}_currentCheckpointMeta(){if(!this.checkpointMetadata||!this.checkpoint?.id)return;let t=this.prevCheckpointConfig?.configurable?.checkpoint_id;return{checkpoint:{id:this.checkpoint.id,...t?{parent_id:t}:{},step:this.checkpointMetadata.step,source:this.checkpointMetadata.source}}}_emitValuesWithCheckpointMeta(t){let r=this._currentCheckpointMeta();for(let[n,s]of t)n==="values"&&r?.checkpoint!=null&&!this.stream.modes.has("checkpoints")&&this.stream.push([this.checkpointNamespace,"checkpoints",r.checkpoint]),this.stream.modes.has(n)&&this.stream.push([this.checkpointNamespace,n,s])}_putCheckpoint(t){let r=this.checkpointMetadata===t,n=this.checkpointer!=null&&(this.durability!=="exit"||r),s=c=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=ne(this.checkpointConfig,{[Ce]:this.config.configurable?.checkpoint_ns??""});let l={...this.checkpoint.channel_versions},u=Dr(this.checkpointPreviousVersions,l);this.checkpointPreviousVersions=l,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:et(c),metadata:{...this.checkpointMetadata},newVersions:u}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}},i;if(r)i={...this.checkpointMetadata.counters_since_delta_snapshot??{}};else{let c=this.checkpointMetadata.counters_since_delta_snapshot??{};i={};let l=this.updatedChannels??new Set;for(let u in this.channels){if(!Object.prototype.hasOwnProperty.call(this.channels,u)||!Ae(this.channels[u]))continue;let[p,h]=c[u]??[0,0];i[u]=[l.has(u)?p+1:p,h+1]}this.checkpointMetadata={...t,step:this.step,parents:this.config.configurable?.checkpoint_map??{}}}let o=n?Ss(this.channels,i):new Set;if(n)for(let c of this._deltaChannelsWithOverwrite)o.add(c);this.checkpoint=$e(this.checkpoint,n?this.channels:void 0,this.step,{id:r?this.checkpoint.id:void 0,channelsToSnapshot:o,updatedChannels:this.updatedChannels,getNextVersion:n?c=>this.checkpointerGetNextVersion(c):void 0});for(let c of o)i[c]=[0,0],this._deltaChannelsWithOverwrite.delete(c);let a={};for(let c in i){if(!Object.prototype.hasOwnProperty.call(i,c))continue;let[l,u]=i[c];(l!==0||u!==0)&&(a[c]=[l,u])}Object.keys(a).length>0?this.checkpointMetadata.counters_since_delta_snapshot=a:delete this.checkpointMetadata.counters_since_delta_snapshot,n&&s(this.checkpoint),r||(this.step+=1)}async _putExitDeltaWrites(){if(this._exitDeltaWrites===void 0||this._exitDeltaWrites.length===0||this.checkpointer==null||this._initialCheckpointConfig===void 0)return;let t=this.checkpointMetadata.counters_since_delta_snapshot??{},r=Ss(this.channels,t);for(let c of this._deltaChannelsWithOverwrite)r.add(c);let n=this._exitDeltaWrites.filter(([,,c])=>!r.has(c));if(n.length===0)return;let s;if(this._hasPersistedParent)s=this._initialCheckpointConfig;else{let c=er();c.id=this.checkpointIdSaved??c.id,c.ts=new Date().toISOString();let l=ne(this._initialCheckpointConfig,{[xt]:void 0});s=ne(this._initialCheckpointConfig,{[xt]:c.id}),this._trackCheckpointerPromise(this.checkpointer.put(l,c,{source:"loop",step:-2,parents:{}},{})),this.checkpointConfig=s}let i=ne(s,{[Ce]:this.config.configurable?.checkpoint_ns??"",[xt]:s.configurable?.[xt]}),o=new Map,a=[];for(let[c,l,u,p]of n){let h=`${c}\0${l}`,d=o.get(h);d===void 0&&(d=[],o.set(h,d),a.push({key:h,step:c,tid:l})),d.push([u,p])}for(let{key:c,step:l,tid:u}of a){let p=Ro(l,u);this._trackCheckpointerPromise(this.checkpointer.putWrites(i,o.get(c),p))}}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let t=ne(this.checkpointConfig,{[Ce]:this.config.configurable?.checkpoint_ns??"",[xt]:this.checkpoint.id}),r={};for(let[n,s,i]of this.checkpointPendingWrites)r[n]??=[],r[n].push([s,i]);for(let[n,s]of Object.entries(r))this._trackCheckpointerPromise(this.checkpointer.putWrites(t,s,n))}_matchWrites(t){for(let[r,n,s]of this.checkpointPendingWrites){if(n==="__error__"||n==="__interrupt__"||n==="__resume__")continue;let i=Object.values(t).find(o=>o.id===r);i&&i.writes.push([n,s])}for(let r of Object.values(t))r.writes.length>0&&this._outputWrites(r.id,r.writes,!0)}};function Qf(e){return Pe(e?.message)}function th(e,t,r){if(!e)return;let n=e.langgraph_checkpoint_ns,s=e.checkpoint_ns,i=n??s;if(i)return[i.split("|"),{tags:t,name:r,...e}]}var rh=class extends kt{name="StreamMessagesHandler";streamFn;metadatas={};seen={};emittedChatModelRunIds={};stableMessageIdMap={};lc_prefer_streaming=!0;constructor(e){super(),this.streamFn=e}_emit(e,t,r,n=!1){if(n&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let s=t.id;r!=null&&(ui(t)?s??=`run-${r}-tool-${t.tool_call_id}`:((s==null||s===`run-${r}`)&&(s=this.stableMessageIdMap[r]??s??`run-${r}`),this.stableMessageIdMap[r]??=s)),s!==t.id&&(t.id=s,t.lc_kwargs.id=s),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],"messages",[t,e[1]]])}handleChatModelStart(e,t,r,n,s,i,o,a){o&&(!i||!i.includes("langsmith:nostream")&&!i.includes("nostream"))&&(this.metadatas[r]=th(o,i,a))}handleLLMNewToken(e,t,r,n,s,i){let o=i?.chunk;this.emittedChatModelRunIds[r]=!0,this.metadatas[r]!==void 0&&(Qf(o)?this._emit(this.metadatas[r],o.message,r):this._emit(this.metadatas[r],new ur({content:e}),r))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let r=e.generations?.[0]?.[0];Pe(r?.message)&&this._emit(this.metadatas[t],r?.message,t,!0),delete this.emittedChatModelRunIds[t]}delete this.metadatas[t],delete this.stableMessageIdMap[t]}}handleLLMError(e,t){delete this.metadatas[t]}handleChainStart(e,t,r,n,s,i,o,a){if(i!==void 0&&a===i.langgraph_node&&(s===void 0||!s.includes("langsmith:hidden"))&&(this.metadatas[r]=th(i,s,a),typeof t=="object")){for(let c of Object.values(t))if((Pe(c)||li(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(Pe(l)||li(l))&&l.id!==void 0&&(this.seen[l.id]=l)}}handleChainEnd(e,t){let r=this.metadatas[t];if(delete this.metadatas[t],r!==void 0){if(Pe(e))this._emit(r,e,t,!0);else if(Array.isArray(e))for(let n of e)Pe(n)&&this._emit(r,n,t,!0);else if(e!=null&&typeof e=="object"){for(let n of Object.values(e))if(Pe(n))this._emit(r,n,t,!0);else if(Array.isArray(n))for(let s of n)Pe(s)&&this._emit(r,s,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}};function nh(e){if("response_metadata"in e&&typeof e.response_metadata=="object"&&e.response_metadata!=null)return e.response_metadata}function sh(e){if("usage_metadata"in e&&typeof e.usage_metadata=="object"&&e.usage_metadata!=null)return e.usage_metadata}function Zf(e){switch(e.type){case"text":return{type:"text",text:""};case"reasoning":return{type:"reasoning",reasoning:""};case"tool_call":case"tool_call_chunk":return{type:"tool_call_chunk",...e.id!=null?{id:e.id}:{},...e.name!=null?{name:e.name}:{},args:""};default:return e}}function eg(e){switch(e.type){case"text":{let t=typeof e.text=="string"?e.text:"";return t.length>0?{event:"content-block-delta",index:typeof e.index=="number"?e.index:0,delta:{type:"text-delta",text:t}}:void 0}case"reasoning":{let t=typeof e.reasoning=="string"?e.reasoning:"";return t.length>0?{event:"content-block-delta",index:typeof e.index=="number"?e.index:0,delta:{type:"reasoning-delta",reasoning:t}}:void 0}case"tool_call_chunk":return{event:"content-block-delta",index:typeof e.index=="number"?e.index:0,delta:{type:"block-delta",fields:{...e,type:"tool_call_chunk"}}};default:return}}var ih=class extends kt{name="StreamProtocolMessagesHandler";streamFn;metadatas={};seen={};streamedRunIds=new Set;stableMessageIdMap={};lc_prefer_chat_model_stream_events=!0;awaitHandlers=!0;constructor(e){super(),this.streamFn=e}normalizeMessageId(e,t){let r=e.id;return t!=null&&(Ut.isInstance(e)?r??=`run-${t}-tool-${e.tool_call_id}`:((r==null||r===`run-${t}`)&&(r=this.stableMessageIdMap[t]??r??`run-${t}`),this.stableMessageIdMap[t]??=r)),r!==e.id&&(e.id=r,e.lc_kwargs.id=r),e.id!=null&&(this.seen[e.id]=e),e.id}emit(e,t,r){let n=r!=null?{...e[1],run_id:r}:e[1];this.streamFn([e[0],"messages",[t,n]])}emitFinalMessage(e,t,r,n=!1){let s=t.id??(r!=null?this.stableMessageIdMap[r]:void 0);if(n&&s!=null&&this.seen[s]!==void 0)return;let i=this.normalizeMessageId(t,r),o=t.type==="human"?"human":t.type==="system"?"system":t.type==="tool"?"tool":"ai",a=o==="tool"&&Ut.isInstance(t)?t.tool_call_id:void 0;this.emit(e,{event:"message-start",...i!=null?{id:i}:{},...o!=="ai"?{role:o}:{},...typeof a=="string"?{tool_call_id:a}:{}},r),(Array.isArray(t.content)?t.content:typeof t.content=="string"&&t.content.length>0?[{type:"text",text:t.content}]:[]).forEach((c,l)=>{let u=typeof c.index=="number"?c.index:l;this.emit(e,{event:"content-block-start",index:u,content:Zf(c)},r);let p=eg({...c,index:u});p!=null&&this.emit(e,p,r),this.emit(e,{event:"content-block-finish",index:u,content:c},r)}),this.emit(e,{event:"message-finish",...sh(t)!=null?{usage:sh(t)}:{},...nh(t)!=null?{responseMetadata:nh(t)}:{}},r)}handleChatModelStart(e,t,r,n,s,i,o,a){o&&(!i||!i.includes("langsmith:nostream")&&!i.includes("nostream"))&&(this.metadatas[r]=[o.langgraph_checkpoint_ns.split("|"),{tags:i,name:a,...o}])}handleLLMNewToken(){}handleChatModelStreamEvent(e,t){let r=this.metadatas[t];if(r===void 0)return;let n=e;if(e.event==="message-start"){this.streamedRunIds.add(t);let s=e.id??`run-${t}`;this.seen[s]=!0,this.stableMessageIdMap[t]??=s,e.id==null&&(n={...e,id:s})}this.emit(r,n,t)}handleLLMEnd(e,t){let r=this.metadatas[t];if(r===void 0)return;let n=e.generations?.[0]?.[0],s=ee.isInstance(n?.message)?n.message:void 0;if(s!=null)if(this.streamedRunIds.has(t)){let i=this.normalizeMessageId(s,t);i!=null&&(this.seen[i]=s)}else this.emitFinalMessage(r,s,t,!0);this.streamedRunIds.delete(t),delete this.metadatas[t],delete this.stableMessageIdMap[t]}handleLLMError(e,t){this.streamedRunIds.delete(t),delete this.metadatas[t],delete this.stableMessageIdMap[t]}handleChainStart(e,t,r,n,s,i,o,a){if(i!==void 0&&a===i.langgraph_node&&(s===void 0||!s.includes("langsmith:hidden"))&&(this.metadatas[r]=[i.langgraph_checkpoint_ns.split("|"),{tags:s,name:a,...i}],typeof t=="object")){for(let c of Object.values(t))if((ee.isInstance(c)||ci.isInstance(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let l of c)(ee.isInstance(l)||ci.isInstance(l))&&l.id!==void 0&&(this.seen[l.id]=l)}}handleChainEnd(e,t){let r=this.metadatas[t];if(delete this.metadatas[t],r===void 0)return;let n=s=>{ee.isInstance(s)&&!Ut.isInstance(s)&&this.emitFinalMessage(r,s,t,!0)};if(ee.isInstance(e))n(e);else if(Array.isArray(e))for(let s of e)n(s);else if(e!=null&&typeof e=="object")for(let s of Object.values(e))if(Array.isArray(s))for(let i of s)n(i);else n(s);delete this.stableMessageIdMap[t]}handleChainError(e,t){delete this.metadatas[t],delete this.stableMessageIdMap[t]}};var tg=class{active=!0;lastProgress=Date.now();refreshOn;constructor(e){this.refreshOn=e}touch(){this.lastProgress=Date.now()}autoTouch(){this.refreshOn==="auto"&&(this.lastProgress=Date.now())}close(){this.active=!1}},rg=class extends kt{name="IdleProgressCallbackHandler";awaitHandlers=!1;#e;constructor(e){super(),this.#e=e}#t=()=>{this.#e.autoTouch()};handleLLMStart=this.#t;handleChatModelStart=this.#t;handleLLMNewToken=this.#t;handleLLMEnd=this.#t;handleLLMError=this.#t;handleChainStart=this.#t;handleChainEnd=this.#t;handleChainError=this.#t;handleToolStart=this.#t;handleToolEnd=this.#t;handleToolError=this.#t;handleText=this.#t;handleRetrieverStart=this.#t;handleRetrieverEnd=this.#t;handleRetrieverError=this.#t;handleCustomEvent=this.#t};function ng(e,t,r,n){let s=e.configurable??{},i={},o=s[ae];typeof o=="function"&&(i[ae]=l=>{if(t.active)return l&&l.length&&t.autoTouch(),o(l)});let a=s[pt];typeof a=="function"&&(i[pt]=(...l)=>{if(!t.active)throw new Error(`Node "${n}" attempt was cancelled after its timeout fired`);return t.autoTouch(),a(...l)});let c={...Object.keys(i).length>0?ne(e,i):e};if(c.heartbeat=()=>{r.idleTimeout!==void 0&&t.touch()},typeof c.writer=="function"){let l=c.writer;c.writer=(u=>{if(t.active)return t.autoTouch(),l(u)})}if((r.refreshOn??"auto")==="auto"&&r.idleTimeout!==void 0){let l=new rg(t),u=c.callbacks;if(u===void 0)c.callbacks=[l];else if(Array.isArray(u))c.callbacks=[...u,l];else{let p=u.copy();p.addHandler(l,!0),c.callbacks=p}}return c}async function oh(e,t,r,n){let s=new tg(r.refreshOn??"auto"),i=new AbortController,{signal:o,dispose:a}=Rt(t.signal,i.signal),c=ng({...t,signal:o},s,r,String(e.name)),l=Date.now(),u=n(c).then(y=>({type:"ok",value:y}),y=>({type:"err",error:y})),p,h,d=()=>{p!==void 0&&clearTimeout(p),h!==void 0&&clearTimeout(h)},m=new Promise(y=>{if(r.runTimeout!==void 0&&(p=setTimeout(()=>y({type:"timeout",kind:"run"}),r.runTimeout)),r.idleTimeout!==void 0){let _=r.idleTimeout,S=()=>{let C=s.lastProgress+_-Date.now();C<=0?y({type:"timeout",kind:"idle"}):h=setTimeout(S,C)};h=setTimeout(S,_)}}),f;try{f=await Promise.race([u,m])}finally{d()}if(f.type!=="timeout"){let y=Date.now();r.runTimeout!==void 0&&y-l>=r.runTimeout?f={type:"timeout",kind:"run"}:r.idleTimeout!==void 0&&y-s.lastProgress>=r.idleTimeout&&(f={type:"timeout",kind:"idle"})}if(f.type==="ok")return a?.(),f.value;if(f.type==="err")throw a?.(),f.error;let g=Date.now()-l;throw s.close(),e.writes.splice(0,e.writes.length),i.abort(),a?.(),new xi({node:String(e.name),elapsed:g,kind:f.kind,runTimeout:r.runTimeout,idleTimeout:r.idleTimeout})}var sg=[400,401,402,403,404,405,406,407,409],ig=e=>{if(e.message.startsWith("Cancel")||e.message.startsWith("AbortError")||e.name==="AbortError"||e.name==="GraphValueError"||e?.code==="ECONNABORTED")return!1;let t=e?.response?.status??e?.status;return!(t&&sg.includes(+t)||e?.error?.code==="insufficient_quota")};async function Ks(e,t,r,n){let s=e.retry_policy??t,i=0,o,a,c=e.config??{};r&&(c=ne(c,r)),c={...c,signal:n};let l=Date.now();for(c.executionInfo!=null&&(c.executionInfo={...c.executionInfo,nodeFirstAttemptTime:l});!n?.aborted;){e.writes.splice(0,e.writes.length),o=void 0;try{e.timeout!==void 0?a=await oh(e,c,e.timeout,u=>e.proc.invoke(e.input,u)):a=await e.proc.invoke(e.input,c);break}catch(u){if(o=u,o.pregelTaskId=e.id,Ei(o)){let f=c?.configurable?.checkpoint_ns,g=o.command;if(g.graph===f){for(let y of e.writers)await y.invoke(g,c);o=void 0;break}else if(g.graph===ye.PARENT){let y=lp(f);o.command=new ye({...o.command,graph:y})}}if(Nt(o)||s===void 0||(i+=1,i>=(s.maxAttempts??3))||!(s.retryOn??ig)(o))break;let p=s.initialInterval??500,h=Math.min(s.maxInterval??128e3,p*(s.backoffFactor??2)**(i-1)),d=s.jitter??!0?h+Math.random()*1e3:h;await new Promise(f=>setTimeout(f,d));let m=o.name??o.constructor.unminifiable_name??o.constructor.name;(s?.logWarning??!0)&&console.log(`Retrying task "${String(e.name)}" after ${d.toFixed(2)}ms (attempt ${i}) after ${m}: ${o}`),c=ne(c,{[qt]:!0}),c.executionInfo!=null&&(c.executionInfo={...c.executionInfo,nodeAttempt:i+1,nodeFirstAttemptTime:l})}}return{task:e,result:a,error:o,signalAborted:n?.aborted}}var aa=Symbol.for("promiseAdded");function og(){let e={next:()=>{},wait:Promise.resolve(aa)};function t(r){e.next=()=>{e.wait=new Promise(t),r(aa)}}return e.wait=new Promise(t),e}var ah=class{nodeFinished;loop;handledExceptions=new WeakSet;constructor({loop:e,nodeFinished:t}){this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:r,onStepWrite:n,maxConcurrency:s}=e,i=new Set,o,a=new AbortController,c=a.signal,l=t?AbortSignal.timeout(t):void 0,u=Object.values(this.loop.tasks),p=u.filter(f=>f.writes.length===0),{signals:h,disposeCombinedSignal:d}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:l,signal:e.signal}),m=this._executeTasksWithRetry(p,{signals:h,retryPolicy:r,maxConcurrency:s});for await(let{task:f,error:g,signalAborted:y}of m)this._commit(f,g),!(g!==void 0&&this.handledExceptions.has(g))&&(dt(g)||Nt(g)&&!dt(o)?o=g:g&&(i.size===0||!y)&&(a.abort(),i.add(g)));if(d?.(),n?.(this.loop.step,u.map(f=>f.writes).flat()),i.size===1)throw Array.from(i)[0];if(i.size>1)throw new AggregateError(Array.from(i),`Multiple errors occurred during superstep ${this.loop.step}. See the "errors" field of this exception for more details.`);if(dt(o)||qn(o)||Nt(o)&&this.loop.isNested)throw o}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:r}){let n=this.loop.config.configurable?.__pregel_abort_signals??{},s=n.externalAbortSignal??r,i=t??n.timeoutAbortSignal,{signal:o,dispose:a}=Rt(s,i,e),c={externalAbortSignal:s,timeoutAbortSignal:i,composedAbortSignal:o};return this.loop.config=ne(this.loop.config,{[ll]:c}),{signals:c,disposeCombinedSignal:a}}async*_executeTasksWithRetry(e,t){let{retryPolicy:r,maxConcurrency:n,signals:s}=t??{},i=og(),o={},a={executingTasksMap:o,barrier:i,retryPolicy:r,scheduleTask:async(h,d,m)=>this.loop.acceptPush(h,d,m)};if(s?.composedAbortSignal?.aborted)throw new Error("Abort");let c=0,l,u=Rt(s?.externalAbortSignal,s?.timeoutAbortSignal),p=u.signal?new Promise((h,d)=>{l=()=>d(new Error("Abort")),u.signal?.addEventListener("abort",l,{once:!0})}):void 0;for(;(c===0||Object.keys(o).length>0)&&e.length;){for(;Object.values(o).length<(n??e.length)&&c<e.length;c+=1){let g=e[c];o[g.id]=Ks(g,r,{[pt]:ca?.bind(a,this,g)},s?.composedAbortSignal).catch(y=>({task:g,error:y,signalAborted:s?.composedAbortSignal?.aborted}))}let h=await Promise.race([...Object.values(o),...p?[p]:[],i.wait]);if(h===aa)continue;let d=h,{task:m,error:f}=d;if(f!==void 0&&!Nt(f)&&!this.loop.isErrorHandlerNode(String(m.name))&&this.loop.getErrorHandlerNode(String(m.name))!==void 0){let g=this.loop.scheduleErrorHandler(m,f);g!==void 0&&(o[g.id]=Ks(g,r,{[pt]:ca?.bind(a,this,g)},s?.composedAbortSignal).catch(y=>({task:g,error:y,signalAborted:s?.composedAbortSignal?.aborted})),i.next())}yield d,l!=null&&(u.signal?.removeEventListener("abort",l),u.dispose?.()),delete o[h.task.id]}}_shouldRouteToErrorHandler(e){let t=String(e.name);return this.loop.isErrorHandlerNode(t)?!1:this.loop.getErrorHandlerNode(t)!==void 0}_commit(e,t){if(t!==void 0)if(dt(t)){if(t.interrupts.length){let r=t.interrupts.map(s=>[H,s]),n=e.writes.filter(s=>s[0]===pe);n.length&&r.push(...n),this.loop.putWrites(e.id,r)}}else qn(t)?e.writes.length&&this.loop.putWrites(e.id,e.writes):Nt(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):(e.writes.push([Et,{message:t.message,name:t.name}]),this._shouldRouteToErrorHandler(e)&&(e.writes.push([Wr,String(e.name)]),this.handledExceptions.add(t)),this.loop.putWrites(e.id,e.writes));else this.nodeFinished&&(e.config?.tags==null||!e.config.tags.includes("langsmith:hidden"))&&this.nodeFinished(String(e.name)),e.writes.length===0&&e.writes.push([Yr,null]),this.loop.putWrites(e.id,e.writes)}};async function ca(e,t,r,n,s,i={}){let o=t.config?.configurable?.[_e];if(!o)throw new Error(`BUG: No scratchpad found on task ${t.name}__${t.id}`);let a=o.callCounter;o.callCounter+=1;let c=new Op({func:r,name:n,input:s,cache:i.cache,retry:i.retry,timeout:i.timeout,callbacks:i.callbacks}),l=await this.scheduleTask(t,a,c);if(!l)return;let u=this.executingTasksMap[l.id];if(u!==void 0)return u;if(l.writes.length>0){let p=l.writes.filter(([d])=>d===It),h=l.writes.filter(([d])=>d===Et);if(p.length>0){if(p.length===1)return Promise.resolve(p[0][1]);throw new Error(`BUG: multiple returns found for task ${l.name}__${l.id}`)}if(h.length>0){if(h.length===1){let d=h[0][1],m=d instanceof Error?d:new Error(String(d));return Promise.reject(m)}throw new Error(`BUG: multiple errors found for task ${l.name}__${l.id}`)}return}else{let p=Ks(l,i.retry,{[pt]:ca.bind(this,e,l)});return this.executingTasksMap[l.id]=p,this.barrier.next(),p.then(({result:h,error:d})=>d?Promise.reject(d):h)}}var _t=class extends Error{constructor(e){super(e),this.name="GraphValidationError"}};function ch({nodes:e,channels:t,inputChannels:r,outputChannels:n,streamChannels:s,interruptAfterNodes:i,interruptBeforeNodes:o}){if(!t)throw new _t("Channels not provided");let a=new Set,c=new Set;for(let[l,u]of Object.entries(e)){if(l==="__interrupt__")throw new _t(`"Node name ${H} is reserved"`);if(u.constructor===Fe)u.triggers.forEach(p=>a.add(p));else throw new _t(`Invalid node type ${typeof u}, expected PregelNode`)}for(let l of a)if(!(l in t))throw new _t(`Subscribed channel '${String(l)}' not in channels`);if(Array.isArray(r)){if(r.every(l=>!a.has(l)))throw new _t(`None of the input channels ${r} are subscribed to by any node`)}else if(!a.has(r))throw new _t(`Input channel ${String(r)} is not subscribed to by any node`);Array.isArray(n)?n.forEach(l=>c.add(l)):c.add(n),s&&!Array.isArray(s)?c.add(s):Array.isArray(s)&&s.forEach(l=>c.add(l));for(let l of c)if(!(l in t))throw new _t(`Output channel '${String(l)}' not in channels`);if(i&&i!=="*"){for(let l of i)if(!(l in e))throw new _t(`Node ${String(l)} not in nodes`)}if(o&&o!=="*"){for(let l of o)if(!(l in e))throw new _t(`Node ${String(l)} not in nodes`)}}function la(e,t){if(Array.isArray(e)){for(let r of e)if(!(r in t))throw new Error(`Key ${String(r)} not found in channels`)}else if(!(e in t))throw new Error(`Key ${String(e)} not found in channels`)}function ag(e){return Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1])}var ua=class lh extends Q{lc_graph_name="Topic";unique=!1;accumulate=!1;seen;values;constructor(t){super(),this.unique=t?.unique??this.unique,this.accumulate=t?.accumulate??this.accumulate,this.seen=new Set,this.values=[]}fromCheckpoint(t){let r=new lh({unique:this.unique,accumulate:this.accumulate});return typeof t>"u"?r:ag(t)?(r.seen=new Set(t[0]),r.values=[...t[1]],r):(r.values=[...t],this.unique&&(r.seen=new Set(r.values)),r)}update(t){let r=!1;this.accumulate||(r=this.values.length>0,this.values=[]);let n=t.flat();if(n.length>0)if(this.unique)for(let s of n)this.seen.has(s)||(r=!0,this.seen.add(s),this.values.push(s));else r=!0,this.values.push(...n);return r}get(){if(this.values.length===0)throw new F;return this.values}checkpoint(){return this.unique?[[...this.seen],[...this.values]]:[...this.values]}isAvailable(){return this.values.length!==0}};function cg(e){let t=new TextEncoder;return new ReadableStream({async start(r){try{for await(let n of e){let s=n.params.namespace,i=s.length?`${n.method}|${s.join("|")}`:n.method;r.enqueue(t.encode(`event: ${i}
|
|
125
|
+
data: ${JSON.stringify(n.params.data??{})}
|
|
126
|
+
|
|
127
|
+
`))}}catch(n){r.enqueue(t.encode(`event: error
|
|
128
|
+
data: ${JSON.stringify({message:String(n)})}
|
|
129
|
+
|
|
130
|
+
`))}finally{r.close()}}})}var uh=class{static subscribeTo(e,t){let{key:r,tags:n}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&r!==void 0)throw new Error("Can't specify a key when subscribing to multiple channels");let s;return typeof e=="string"?r?s={[r]:e}:s=[e]:s=Object.fromEntries(e.map(i=>[i,i])),new Fe({channels:s,triggers:Array.isArray(e)?e:[e],tags:n})}static writeTo(e,t){let r=[];for(let n of e)r.push({channel:n,value:be,skipNone:!1});for(let[n,s]of Object.entries(t??{}))K.isRunnable(s)||typeof s=="function"?r.push({channel:n,value:be,skipNone:!0,mapper:ze(s)}):r.push({channel:n,value:s,skipNone:!1});return new Y(r)}},lg=class extends K{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)}},Js=class extends lg{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 '${Ye}' is reserved and cannot be used in the graph.`);this.channels[Ye]=new ua({accumulate:!1}),this.autoValidate=e.autoValidate??this.autoValidate,this.streamMode=t??this.streamMode,this.inputChannels=e.inputChannels,this.outputChannels=e.outputChannels,this.streamChannels=e.streamChannels??this.streamChannels,this.interruptAfter=e.interruptAfter,this.interruptBefore=e.interruptBefore,this.stepTimeout=e.stepTimeout??this.stepTimeout,this.debug=e.debug??this.debug,this.checkpointer=e.checkpointer,this.retryPolicy=e.retryPolicy,this.config=e.config,this.store=e.store,this.cache=e.cache,this.name=e.name,this.triggerToNodes=e.triggerToNodes??this.triggerToNodes,this.userInterrupt=e.userInterrupt,this.streamTransformers=e.streamTransformers??[],this.autoValidate&&this.validate()}withConfig(e){let{streamTransformers:t,...r}=e,n=Ee(this.config,r),s=[...this.streamTransformers,...t??[]];return new this.constructor({...this,config:n,streamTransformers:s})}validate(){ch({nodes:this.nodes,channels:this.channels,outputChannels:this.outputChannels,inputChannels:this.inputChannels,streamChannels:this.streamChannels,interruptAfterNodes:this.interruptAfter,interruptBeforeNodes:this.interruptBefore});for(let[e,t]of Object.entries(this.nodes))for(let r of t.triggers)this.triggerToNodes[r]??=[],this.triggerToNodes[r].push(e);return this}get streamChannelsList(){return Array.isArray(this.streamChannels)?this.streamChannels:this.streamChannels?[this.streamChannels]:Object.keys(this.channels)}get streamChannelsAsIs(){return this.streamChannels?this.streamChannels:Object.keys(this.channels)}async getGraphAsync(e){return this.getGraph(e)}*getSubgraphs(e,t){for(let[r,n]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(r))continue;let s=n.subgraphs?.length?n.subgraphs:[n.bound];for(let i of s){let o=Ls(i);if(o!==void 0){if(r===e){yield[r,o];return}if(e===void 0&&(yield[r,o]),t){let a=e;e!==void 0&&(a=e.slice(r.length+1));for(let[c,l]of o.getSubgraphs(a,t))yield[`${r}|${c}`,l]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:r,applyPendingWrites:n=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let s=await Ar(this.channels,t.checkpoint,{saver:typeof this.checkpointer=="object"?this.checkpointer:void 0,config:t.config??e});if(t.pendingWrites?.length){let p=t.pendingWrites.filter(([h,d])=>h===de).map(([h,d,m])=>[String(d),m]);p.length>0&&fe(t.checkpoint,s,[{name:Je,writes:p,triggers:[]}],void 0,this.triggerToNodes)}let i=Object.values(Dt(t.checkpoint,t.pendingWrites,this.nodes,s,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),o=await Le(this.getSubgraphsAsync()),a=t.config.configurable?.checkpoint_ns??"",c={};for(let p of i){let h=o.find(([m])=>m===p.name);if(!h)continue;let d=`${String(p.name)}:${p.id}`;if(a&&(d=`${a}|${d}`),r===void 0){let m={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:d}};c[p.id]=m}else{let m={configurable:{[xe]:r,thread_id:t.config.configurable?.thread_id,checkpoint_ns:d}},f=h[1];c[p.id]=await f.getState(m,{subgraphs:!0})}}if(n&&t.pendingWrites?.length){let p=Object.fromEntries(i.map(d=>[d.id,d]));for(let[d,m,f]of t.pendingWrites)["__error__","__interrupt__",Xt].includes(m)||d in p&&p[d].writes.push([String(m),f]);let h=i.filter(d=>d.writes.length>0);h.length>0&&fe(t.checkpoint,s,h,void 0,this.triggerToNodes)}let l=t?.metadata;l&&t?.config?.configurable?.thread_id&&(l={...l,thread_id:t.config.configurable.thread_id});let u=i.filter(p=>p.writes.length===0).map(p=>p.name);return{values:Ve(s,this.streamChannelsAsIs),next:u,tasks:ra(i,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:l,config:Ot(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 Yt("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_read===void 0&&e.configurable?.__pregel_checkpointer===void 0){let o=xs(n);for await(let[a,c]of this.getSubgraphsAsync(o,!0))if(a===o)return await c.getState(rr(e,{[xe]:r}),{subgraphs:t?.subgraphs})}let s=Ee(this.config,e),i=await r.getTuple(e);return await this._prepareStateSnapshot({config:s,saved:i,subgraphCheckpointer:t?.subgraphs?r:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let r=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!r)throw new Yt("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_checkpointer===void 0){let i=xs(n);for await(let[o,a]of this.getSubgraphsAsync(i,!0))if(o===i){yield*a.getStateHistory(rr(e,{[xe]:r}),t);return}}let s=Ee(this.config,e,{configurable:{checkpoint_ns:n}});for await(let i of r.list(s,t))yield this._prepareStateSnapshot({config:i.config,saved:i})}async bulkUpdateState(e,t){let r=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!r)throw new Yt("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 n=e.configurable?.checkpoint_ns??"";if(n!==""&&e.configurable?.__pregel_checkpointer===void 0){let o=xs(n);for await(let[,a]of this.getSubgraphsAsync(o,!0))return await a.bulkUpdateState(rr(e,{[xe]:r}),t);throw new Error(`Subgraph "${o}" not found`)}let s=async(o,a)=>{let c=this.config?Ee(this.config,o):o,l=await r.getTuple(c),u=l!==void 0?et(l.checkpoint):er(),p={...l?.checkpoint.channel_versions},h=l?.metadata?.step??-1,d=rr(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),m=c.metadata??{};l?.config.configurable&&(d=rr(c,l.config.configurable),m={...l.metadata,...m});let{values:f,asNode:g}=a[0];if(f==null&&g===void 0){if(a.length>1)throw new R("Cannot create empty checkpoint with multiple updates");return Ot(await r.put(d,$e(u,void 0,h),{source:"update",step:h+1,parents:l?.metadata?.parents??{}},{}),l?l.metadata:void 0)}let y=await Ar(this.channels,u,{saver:r,config:l?.config??d});if(f===null&&g==="__end__"){if(a.length>1)throw new R("Cannot apply multiple updates when clearing state");if(l){let k=Dt(u,l.pendingWrites||[],this.nodes,y,l.config,!0,{step:(l.metadata?.step??-1)+1,checkpointer:r,store:this.store}),v=(l.pendingWrites||[]).filter(T=>T[0]===de).map(T=>T.slice(1));v.length>0&&fe(u,y,[{name:Je,writes:v,triggers:[]}],r.getNextVersion.bind(r),this.triggerToNodes);for(let[T,x,G]of l.pendingWrites||[])["__error__","__interrupt__",Xt].includes(x)||T in k&&k[T].writes.push([x,G]);fe(u,y,Object.values(k),r.getNextVersion.bind(r),this.triggerToNodes)}return Ot(await r.put(d,$e(u,y,h),{...m,source:"update",step:h+1,parents:l?.metadata?.parents??{}},Dr(p,u.channel_versions)),l?l.metadata:void 0)}if(g==="__copy__"){if(a.length>1)throw new R("Cannot copy checkpoint with multiple updates");if(l==null)throw new R("Cannot copy a non-existent checkpoint");let k=x=>!Array.isArray(x)||x.length===0?!1:x.every(G=>Array.isArray(G)&&G.length===2),v=$e(u,void 0,h),T=await r.put(l.parentConfig??rr(l.config,{checkpoint_id:void 0}),v,{source:"fork",step:h+1,parents:l.metadata?.parents??{}},{});if(k(f)){let x=Dt(v,l.pendingWrites,this.nodes,y,T,!1,{step:h+2}),G=Object.values(x).reduce((V,{name:W,id:ve})=>(V[W]??=[],V[W].push({id:ve}),V),{}),$=f.reduce((V,W)=>{let[ve,ct]=W;V[ct]??=[];let E=V[ct].length,A=G[ct]?.[E]?.id;return V[ct].push({values:ve,asNode:ct,taskId:A}),V},{});return s(Ot(T,l.metadata),Object.values($).flat())}return Ot(T,l.metadata)}if(g==="__input__"){if(a.length>1)throw new R("Cannot apply multiple updates when updating as input");let k=await Le(Fs(this.inputChannels,f));if(k.length===0)throw new R(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);fe(u,y,[{name:Je,writes:k,triggers:[]}],r.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let v=l?.metadata?.step!=null?l.metadata.step+1:-1,T=await r.put(d,$e(u,y,v),{source:"input",step:v,parents:l?.metadata?.parents??{}},Dr(p,u.channel_versions));return await r.putWrites(T,k,Qe(Je,u.id)),Ot(T,l?l.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&l?.pendingWrites!==void 0&&l.pendingWrites.length>0){let k=Dt(u,l.pendingWrites,this.nodes,y,l.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(l.metadata?.step??-1)+1}),v=(l.pendingWrites??[]).filter(x=>x[0]===de).map(x=>x.slice(1));v.length>0&&fe(l.checkpoint,y,[{name:Je,writes:v,triggers:[]}],void 0,this.triggerToNodes);for(let[x,G,$]of l.pendingWrites)["__error__","__interrupt__",Xt].includes(G)||k[x]===void 0||k[x].writes.push([G,$]);let T=Object.values(k).filter(x=>x.writes.length>0);T.length>0&&fe(u,y,T,void 0,this.triggerToNodes)}let _=Object.values(u.versions_seen).map(k=>Object.values(k)).flat().find(k=>!!k),S=[];if(a.length===1){let{values:k,asNode:v,taskId:T}=a[0];if(v===void 0&&Object.keys(this.nodes).length===1)[v]=Object.keys(this.nodes);else if(v===void 0&&_===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(v=this.inputChannels);else if(v===void 0){let x=Object.entries(u.versions_seen).map(([G,$])=>Object.values($).map(V=>[V,G])).flat().filter(([G,$])=>$!==H).sort(([G],[$])=>gs(G,$));x&&(x.length===1?v=x[0][1]:x[x.length-1][0]!==x[x.length-2][0]&&(v=x[x.length-1][1]))}if(v===void 0)throw new R('Ambiguous update, specify "asNode"');S.push({values:k,asNode:v,taskId:T})}else for(let{asNode:k,values:v,taskId:T}of a){if(k==null)throw new R('"asNode" is required when applying multiple updates');S.push({values:v,asNode:k,taskId:T})}let C=[];for(let{asNode:k,values:v,taskId:T}of S){if(this.nodes[k]===void 0)throw new R(`Node "${k.toString()}" does not exist`);let x=this.nodes[k].getWriters();if(!x.length)throw new R(`No writers found for node "${k.toString()}"`);C.push({name:k,input:v,proc:x.length>1?Gt.from(x,{omitSequenceTags:!0}):x[0],writes:[],triggers:[H],id:T??Qe("__interrupt__",u.id),writers:[]})}for(let k of C)await k.proc.invoke(k.input,lt({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[ae]:v=>k.writes.push(...v),[ue]:(v,T=!1)=>$r(u,y,k,v,T)}}));for(let k of C){let v=k.writes.filter(T=>T[0]!==he);l!==void 0&&v.length>0&&await r.putWrites(d,v,k.id)}fe(u,y,C,r.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let I=Dr(p,u.channel_versions),M=await r.put(d,$e(u,y,h+1),{source:"update",step:h+1,parents:l?.metadata?.parents??{}},I);for(let k of C){let v=k.writes.filter(T=>T[0]===he);v.length>0&&await r.putWrites(M,v,k.id)}return Ot(M,l?l.metadata:void 0)},i=e;for(let{updates:o}of t)i=await s(i,o);return i}async updateState(e,t,r){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:r}]}])}_defaults(e){let{debug:t,streamMode:r,inputKeys:n,outputKeys:s,interruptAfter:i,interruptBefore:o,...a}=e,c=!0,l=t!==void 0?t:this.debug,u=s;u===void 0?u=this.streamChannelsAsIs:la(u,this.channels);let p=n;p===void 0?p=this.inputChannels:la(p,this.channels);let h=o??this.interruptBefore??[],d=i??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 f;if(this.checkpointer===!1)f=void 0;else if(e!==void 0&&e.configurable?.__pregel_checkpointer!==void 0)f=e.configurable[xe];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");f=this.checkpointer}let g=e.store??this.store,y=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 _=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),S=e.durability??_??e?.configurable?.__pregel_durability??"async";return[l,m,p,u,a,h,d,f,g,c,y,S]}async stream(e,t){let r=new AbortController,n=Es()?.configurable;n?.__pregel_read!==void 0&&t?.configurable?.__pregel_read===void 0&&(t={...t,configurable:{...n,...t?.configurable}});let s={recursionLimit:this.config?.recursionLimit,...t,signal:Rt(t?.signal,r.signal).signal},i=await super.stream(e,s);return new zs(t?.encoding==="text/event-stream"?Kp(i):i,r)}async#e(e,t){let{version:r,encoding:n,transformers:s,...i}=t,o={recursionLimit:this.config?.recursionLimit,...i,configurable:{...this.config?.configurable,...i?.configurable},version:r,streamMode:jo,subgraphs:!0,encoding:void 0},a=this.stream(e,o),c=Ko({[Symbol.asyncIterator]:async function*(){let l=await a;for await(let u of l)yield u}},[...this.streamTransformers??[],...s??[]]);if(n==="text/event-stream"){let l=new AbortController;return l.signal.addEventListener("abort",()=>c.abort(l.signal.reason),{once:!0}),new zs(cg(c),l)}return c}streamEvents(e,t,r){if(t.version==="v3")return this.#e(e,t);let n=new AbortController,s={recursionLimit:this.config?.recursionLimit,...t,signal:Rt(t?.signal,n.signal).signal};return new zs(super.streamEvents(e,s,r),n)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let r="version"in(t??{})?void 0:t?.encoding??void 0,n=t?.subgraphs,s=t?.version==="v3",i=bn(this.config,t);if(i.recursionLimit===void 0||i.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&i.configurable===void 0)throw new Error('Checkpointer requires one or more of the following "configurable" keys: "thread_id", "checkpoint_ns", "checkpoint_id"');let o=await this._validateInput(e),{runId:a,...c}=i,[l,u,,p,h,d,m,f,g,y,_,S]=this._defaults(c);h.metadata={ls_integration:"langgraph",...h.metadata},typeof h.context<"u"?h.context=await this._validateContext(h.context):h.configurable=await this._validateContext(h.configurable);let C=new sa({modes:new Set(u)});if(this.checkpointer===!0){h.configurable??={};let $=h.configurable.checkpoint_ns??"";h.configurable[Ce]=$.split("|").map(V=>V.split(":")[0]).join("|")}if(u.includes("messages")){let $=s?new ih(W=>C.push(W)):new rh(W=>C.push(W)),{callbacks:V}=h;if(V===void 0)h.callbacks=[$];else if(Array.isArray(V))h.callbacks=V.concat($);else{let W=V.copy();W.addHandler($,!0),h.callbacks=W}}if(u.includes("tools")){let $=new Wp(W=>C.push(W)),{callbacks:V}=h;if(V===void 0)h.callbacks=[$];else if(Array.isArray(V))h.callbacks=V.concat($);else{let W=V.copy();W.addHandler($,!0),h.callbacks=W}}h.writer??=$=>{if(!u.includes("custom"))return;let V=Es()?.configurable?.[Ce]?.split("|").slice(0,-1);C.push([V??[],"custom",$])},h.interrupt??=this.userInterrupt??Qo,h.serverInfo==null&&(h.serverInfo=ug(h)),h.control??=new $o;let I={tracerInheritableMetadata:dg(h)},M=await(await dr._configureSync(h?.callbacks,void 0,h?.tags,void 0,h?.metadata,void 0,I))?.handleChainStart(this.toJSON(),Pp(e,"input"),a,void 0,void 0,void 0,h?.runName??this.getName()),k=Tr(this.channels),v,T,G=(async()=>{try{v=await Zp.initialize({input:o,config:h,checkpointer:f,nodes:this.nodes,channelSpecs:k,outputKeys:p,streamKeys:this.streamChannelsAsIs,store:g,cache:_,stream:C,interruptAfter:m,interruptBefore:d,manager:M,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:S});let $=new ah({loop:v,nodeFinished:h.configurable?.[cl]});t?.subgraphs&&(v.config.configurable={...v.config.configurable,[Kr]:v.stream}),await this._runLoop({loop:v,runner:$,debug:l,config:h}),S==="sync"&&await Promise.all(v?.checkpointerPromises??[])}catch($){T=$}finally{try{v&&(await v.store?.stop(),await v.cache?.stop()),await Promise.all(v?.checkpointerPromises??[])}catch($){T=T??$}T?(await new Promise($=>{queueMicrotask($)}),C.error(T)):C.close()}})();try{for await(let $ of C){if($===void 0)throw new Error("Data structure error.");let[V,W,ve]=$,ct="version"in(t??{});if(u.includes(W)||W==="checkpoints"&&Nr(ve)&&(s||ct&&n&&u.includes("values"))){if(r==="text/event-stream"){n?yield[V,W,ve]:yield[null,W,ve];continue}n&&!y?yield[V,W,ve]:y?n?yield[V,ve]:yield ve:yield[W,ve]}}}catch($){throw await M?.handleChainError(T),$}finally{await G}await M?.handleChainEnd(v?.output??{},a,void 0,void 0,void 0)}async invoke(e,t){let r=t?.streamMode??"values",n={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:r,encoding:void 0},s=[],i=await this.stream(e,n),o=[],a;for await(let c of i)r==="values"?Jt(c)?o.push(c[H]):a=c:s.push(c);if(r==="values"){if(o.length>0){let c=o.flat(1);if(a==null)return{[H]:c};if(typeof a=="object")return{...a,[H]:c}}return a}return s}async _runLoop(e){let{loop:t,runner:r,debug:n,config:s}=e,i;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:o}of await t._matchCachedWrites())t._outputWrites(o.id,o.writes,!0);n&&Bp(t.checkpointMetadata.step,t.channels,this.streamChannelsList),n&&Tn(t.step,Object.values(t.tasks)),await r.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(o,a)=>{n&&Hp(o,a,this.streamChannelsList)},maxConcurrency:s.maxConcurrency,signal:s.signal})}if(t.status==="draining")throw t.control==null?new Error("Draining status requires run control"):new Hn(t.control.drainReason??"shutdown");if(t.status==="out_of_steps")throw new Ci([`Recursion limit of ${s.recursionLimit} reached`,"without hitting a stop condition. You can increase the",'limit by setting the "recursionLimit" config key.'].join(" "),{lc_error_code:"GRAPH_RECURSION_LIMIT"})}catch(o){if(i=o,!await t.finishAndHandleError(i))throw o}finally{i===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}};function ug(e){let t=e.metadata??{},r=e.configurable??{},n=r.assistant_id??t.assistant_id,s=r.graph_id??t.graph_id,i=r.langgraph_auth_user,o;if(i!=null&&typeof i=="object"&&"identity"in i&&(o=i),n!=null||s!=null||o!=null)return{assistantId:n!=null?String(n):"",graphId:s!=null?String(s):"",user:o}}var pg=new Set(["key","token","secret","password","auth"]);function hg(e,t){let r=e.toLowerCase(),n=!1;for(let s of pg)if(r.includes(s)){n=!0;break}return e.startsWith("__")||!(typeof t=="string"||typeof t=="number"||typeof t=="boolean")||n}function dg(e){let t=e.configurable;if(!t)return;let r=e.context,n={};for(let[s,i]of Object.entries(t)){if(r!=null&&Object.prototype.hasOwnProperty.call(r,s)&&Object.is(r[s],i)){s.startsWith("__")||(n[s]=void 0);continue}hg(s,i)||(n[s]=i)}return Object.keys(n).length>0?n:void 0}var Ue=class ph extends Q{lc_graph_name="EphemeralValue";guard;value=[];constructor(t=!0){super(),this.guard=t}fromCheckpoint(t){let r=new ph(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 R("EphemeralValue can only receive one value per step.");return this.value=[t[t.length-1]],!0}get(){if(this.value.length===0)throw new F;return this.value[0]}checkpoint(){if(this.value.length===0)throw new F;return this.value[0]}isAvailable(){return this.value.length!==0}};var pa=class{path;ends;constructor(e){K.isRunnable(e.path)?this.path=e.path:this.path=ze(e.path),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,r)=>(t[r]=r,t),{}):e.pathMap}run(e,t){return Y.registerWriter(new oe({name:"<branch_run>",trace:!1,func:async(r,n)=>{try{return await this._route(r,n,e,t)}catch(s){throw s.name===At.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
|
|
131
|
+
NodeInterrupt should only be thrown inside a node, not in edge conditions.`),s}}}))}async _route(e,t,r,n){let s=await this.path.invoke(n?n(t):e,t);Array.isArray(s)||(s=[s]);let i;if(this.ends?i=s.map(o=>re(o)?o:this.ends[o]):i=s,i.some(o=>!o))throw new Error("Branch condition returned unknown or null destination");if(i.filter(re).some(o=>o.node==="__end__"))throw new R("Cannot send a packet to the END node");return await r(i,t)??e}},ha=class{nodes;edges;branches;entryPoint;compiled=!1;constructor(){this.nodes={},this.edges=new Set,this.branches={}}warnIfCompiled(e){this.compiled&&console.warn(e)}get allEdges(){return this.edges}addNode(...e){function t(n){return n.length>=1&&typeof n[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[n,s,i]of r){for(let a of["|",":"])if(n.includes(a))throw new Error(`"${a}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),n in this.nodes)throw new Error(`Node \`${n}\` already present.`);if(n==="__end__")throw new Error(`Node \`${n}\` is reserved.`);let o=ze(s);this.nodes[n]={runnable:o,metadata:i?.metadata,subgraphs:kn(o)?[o]:i?.subgraphs,ends:i?.ends}}return this}addEdge(e,t){if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),e==="__end__")throw new Error("END cannot be a start node");if(t==="__start__")throw new Error("START cannot be an end node");if(Array.from(this.edges).some(([r])=>r===e)&&!("channels"in this))throw new Error(`Already found path for ${e}. For multiple edges, use StateGraph.`);return this.edges.add([e,t]),this}addConditionalEdges(e,t,r){let n=typeof e=="object"?e:{source:e,path:t,pathMap:r};this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),K.isRunnable(n.path)||(n.path=ze(n.path));let s=n.path.getName()==="RunnableLambda"?"condition":n.path.getName();if(this.branches[n.source]&&this.branches[n.source][s])throw new Error(`Condition \`${s}\` already present for node \`${e}\``);return this.branches[n.source]??={},this.branches[n.source][s]=new pa(n),this}setEntryPoint(e){return this.warnIfCompiled("Setting the entry point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(U,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,L)}compile({checkpointer:e,interruptBefore:t,interruptAfter:r,name:n,transformers:s}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(r)?r:[]]);let i=new da({builder:this,checkpointer:e,interruptAfter:r,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[U]:new Ue,[L]:new Ue},inputChannels:U,outputChannels:L,streamChannels:[],streamMode:"values",name:n,streamTransformers:s});for(let[o,a]of Object.entries(this.nodes))i.attachNode(o,a);for(let[o,a]of this.edges)i.attachEdge(o,a);for(let[o,a]of Object.entries(this.branches))for(let[c,l]of Object.entries(a))i.attachBranch(o,c,l);return i.validate()}validate(e){let t=new Set([...this.allEdges].map(([n,s])=>n));for(let[n]of Object.entries(this.branches))t.add(n);for(let n of t)if(n!=="__start__"&&!(n in this.nodes))throw new Error(`Found edge starting at unknown node \`${n}\``);let r=new Set([...this.allEdges].map(([n,s])=>s));for(let[n,s]of Object.entries(this.branches))for(let i of Object.values(s))if(i.ends!=null)for(let o of Object.values(i.ends))r.add(o);else{r.add(L);for(let o of Object.keys(this.nodes))o!==n&&r.add(o)}for(let n of Object.values(this.nodes))for(let s of n.ends??[])r.add(s);if(Object.values(this.nodes).some(n=>n.isErrorHandler))for(let n of Object.keys(this.nodes))r.add(n);for(let n of Object.keys(this.nodes))if(!this.nodes[n].isErrorHandler&&!r.has(n))throw new Ii([`Node \`${n}\` is not reachable.`,"","If you are returning Command objects from your node,",'make sure you are passing names of potential destination nodes as an "ends" array','into ".addNode(..., { ends: ["node1", "node2"] })".'].join(`
|
|
132
|
+
`),{lc_error_code:"UNREACHABLE_NODE"});for(let n of r)if(n!=="__end__"&&!(n in this.nodes))throw new Error(`Found edge ending at unknown node \`${n}\``);if(e){for(let n of e)if(!(n in this.nodes))throw new Error(`Interrupt node \`${n}\` is not present`)}this.compiled=!0}},da=class extends Js{builder;constructor({builder:e,...t}){super(t),this.builder=e}withConfig(e){return super.withConfig(e)}attachNode(e,t){this.channels[e]=new Ue,this.nodes[e]=new Fe({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new Y([{channel:e,value:be}],[X])),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 Y([{channel:L,value:be}],[X]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,r){e==="__start__"&&!this.nodes.__start__&&(this.nodes[U]=uh.subscribeTo(U,{tags:[X]})),this.nodes[e].pipe(r.run(s=>new Y(s.map(i=>re(i)?i:{channel:i==="__end__"?L:`branch:${e}:${t}:${i}`,value:be}),[X])));let n=r.ends?Object.values(r.ends):Object.keys(this.nodes);for(let s of n)if(s!=="__end__"){let i=`branch:${e}:${t}:${s}`;this.channels[i]=new Ue,this.nodes[s].triggers.push(i),this.nodes[s].channels.push(i)}}async getGraphAsync(e){let t=e?.xray,r=new gi,n={[U]:r.addNode({schema:We.any()},U)},s={},i={};t&&(i=Object.fromEntries((await Le(this.getSubgraphsAsync())).filter(l=>hh(l[1]))));let o=[];function a(l,u,p,h=!1){if(u==="__end__"&&s.__end__===void 0&&(s[L]=r.addNode({schema:We.any()},L)),n[l]!==void 0){if(s[u]===void 0)throw new Error(`End node ${u} not found!`);return o.push({src:l,dest:u,conditional:h}),r.addEdge(n[l],s[u],p!==u?p:void 0,h)}}for(let[l,u]of Object.entries(this.builder.nodes)){let p=se(l),h=u.runnable,d=u.metadata??{};if(this.interruptBefore?.includes(l)&&this.interruptAfter?.includes(l)?d.__interrupt="before,after":this.interruptBefore?.includes(l)?d.__interrupt="before":this.interruptAfter?.includes(l)&&(d.__interrupt="after"),t){let m=typeof t=="number"?t-1:t,f=i[l]!==void 0?await i[l].getGraphAsync({...e,xray:m}):h.getGraph(e);if(f.trimFirstNode(),f.trimLastNode(),Object.keys(f.nodes).length>1){let _=function(C){return C?C.lc_runnable:!1},S=function(C,I){if(C!==void 0&&!ai(C))return C;if(_(I))try{let M=I.getName();return M=M.startsWith("Runnable")?M.slice(8):M,M}catch{return I.getName()}else return I.name??"UnknownSchema"},[g,y]=r.extend(f,p);if(g===void 0)throw new Error(`Could not extend subgraph "${l}" due to missing entrypoint.`);y!==void 0&&(n[p]={name:S(y.id,y.data),...y}),s[p]={name:S(g.id,g.data),...g}}else{let g=r.addNode(h,p,d);n[p]=g,s[p]=g}}else{let m=r.addNode(h,p,d);n[p]=m,s[p]=m}}let c=[...this.builder.allEdges].sort(([l],[u])=>l<u?-1:u>l?1:0);for(let[l,u]of c)a(se(l),se(u));for(let[l,u]of Object.entries(this.builder.branches)){let p={...Object.fromEntries(Object.keys(this.builder.nodes).filter(h=>h!==l).map(h=>[se(h),se(h)])),[L]:L};for(let h of Object.values(u)){let d;h.ends!==void 0?d=h.ends:d=p;for(let[m,f]of Object.entries(d))a(se(l),se(f),m,!0)}}for(let[l,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let p of u.ends)a(se(l),se(p),void 0,!0);return dh(this.builder.nodes,o,a),r}getGraph(e){let t=e?.xray,r=new gi,n={[U]:r.addNode({schema:We.any()},U)},s={},i={};t&&(i=Object.fromEntries(Pt(this.getSubgraphs()).filter(l=>hh(l[1]))));let o=[];function a(l,u,p,h=!1){if(u==="__end__"&&s.__end__===void 0&&(s[L]=r.addNode({schema:We.any()},L)),n[l]!==void 0){if(s[u]===void 0)throw new Error(`End node ${u} not found!`);return o.push({src:l,dest:u,conditional:h}),r.addEdge(n[l],s[u],p!==u?p:void 0,h)}}for(let[l,u]of Object.entries(this.builder.nodes)){let p=se(l),h=u.runnable,d=u.metadata??{};if(this.interruptBefore?.includes(l)&&this.interruptAfter?.includes(l)?d.__interrupt="before,after":this.interruptBefore?.includes(l)?d.__interrupt="before":this.interruptAfter?.includes(l)&&(d.__interrupt="after"),t){let m=typeof t=="number"?t-1:t,f=i[l]!==void 0?i[l].getGraph({...e,xray:m}):h.getGraph(e);if(f.trimFirstNode(),f.trimLastNode(),Object.keys(f.nodes).length>1){let _=function(C){return C?C.lc_runnable:!1},S=function(C,I){if(C!==void 0&&!ai(C))return C;if(_(I))try{let M=I.getName();return M=M.startsWith("Runnable")?M.slice(8):M,M}catch{return I.getName()}else return I.name??"UnknownSchema"},[g,y]=r.extend(f,p);if(g===void 0)throw new Error(`Could not extend subgraph "${l}" due to missing entrypoint.`);y!==void 0&&(n[p]={name:S(y.id,y.data),...y}),s[p]={name:S(g.id,g.data),...g}}else{let g=r.addNode(h,p,d);n[p]=g,s[p]=g}}else{let m=r.addNode(h,p,d);n[p]=m,s[p]=m}}let c=[...this.builder.allEdges].sort(([l],[u])=>l<u?-1:u>l?1:0);for(let[l,u]of c)a(se(l),se(u));for(let[l,u]of Object.entries(this.builder.branches)){let p={...Object.fromEntries(Object.keys(this.builder.nodes).filter(h=>h!==l).map(h=>[se(h),se(h)])),[L]:L};for(let h of Object.values(u)){let d;h.ends!==void 0?d=h.ends:d=p;for(let[m,f]of Object.entries(d))a(se(l),se(f),m,!0)}}for(let[l,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let p of u.ends)a(se(l),se(p),void 0,!0);return dh(this.builder.nodes,o,a),r}};function hh(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function se(e){return e==="subgraph"?`"${e}"`:e}function dh(e,t,r){let n=new Set(t.map(i=>i.src)),s=[...new Set(t.filter(i=>!i.conditional&&i.dest!=="__end__").map(i=>i.dest))].sort();for(let i of s){if(n.has(i))continue;let o=Object.keys(e).find(a=>se(a)===i);o!==void 0&&e[o]?.isErrorHandler||r(i,L)}}function $t(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"validate"in e["~standard"]}function mh(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"jsonSchema"in e["~standard"]}function jt(e){if(mh(e))try{return e["~standard"].jsonSchema.input({target:"draft-07"})}catch{return}}function wt(e){if(e!=null&&$t(e))try{let t=e["~standard"].validate(void 0);if(t&&typeof t=="object"&&!("then"in t&&typeof t.then=="function")){let r=t;if(!r.issues){let n=r.value;return()=>n}}}catch{}}var mg=e=>e!=null&&e.lc_graph_name==="DeltaChannel",Ys=class fh extends Q{lc_graph_name="DeltaChannel";value;reducer;snapshotFrequency;initialValueFactory;constructor(t,r){super();let n=r?.snapshotFrequency??1e3;if(!Number.isInteger(n)||n<=0)throw new Error(`snapshotFrequency must be a positive integer, got ${n}`);this.reducer=t,this.snapshotFrequency=n,this.initialValueFactory=r?.initialValueFactory??(()=>[]),this.value=void 0}fromCheckpoint(t){let r=new fh(this.reducer,{snapshotFrequency:this.snapshotFrequency,initialValueFactory:this.initialValueFactory});return t===void 0?r.value=this.initialValueFactory():Pi(t)?r.value=t.value:r.value=t,r}replayWrites(t){let r=t.map(o=>o[2]);if(r.length===0)return;let n=this.value,s=0;for(let o=0;o<r.length;o+=1){let[a,c]=Oe(r[o]);a&&(n=c??this.initialValueFactory(),s=o+1)}let i=r.slice(s);this.value=i.length>0?this.reducer(n,i):n}update(t){if(t.length===0)return!1;let r,n=!1;for(let i of t)if(Kt(i)){if(n)throw new R("Can receive only one Overwrite value per step.");n=!0,[,r]=Oe(i)}if(n)return this.value=r??this.initialValueFactory(),!0;let s=this.value===void 0?this.initialValueFactory():this.value;return this.value=this.reducer(s,t),!0}get(){if(this.value===void 0)throw new F;return this.value}checkpoint(){}isAvailable(){return this.value!==void 0}equals(t){return this===t?!0:!mg(t)||this.snapshotFrequency!==t.snapshotFrequency?!1:this.reducer===t.reducer}};var ma=Symbol.for("langgraph.channel.missing"),Xs=class gh extends Q{lc_graph_name="UntrackedValue";guard;_value=ma;initialValueFactory;constructor(t){super(),this.guard=t?.guard??!0,this.initialValueFactory=t?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new gh({guard:this.guard,initialValueFactory:this.initialValueFactory})}update(t){if(t.length===0)return!1;if(t.length!==1&&this.guard)throw new R("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===ma)throw new F;return this._value}checkpoint(){}isAvailable(){return this._value!==ma}};var Lt=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),fa=class yh extends Q{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let r=new yh(this.names);return typeof t<"u"&&(r.seen=new Set(t)),r}update(t){let r=!1;for(let n of t)if(this.names.has(n))this.seen.has(n)||(this.seen.add(n),r=!0);else throw new R(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!Lt(this.names,this.seen))throw new F}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&Lt(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&Lt(this.names,this.seen)}},ga=class _h extends Q{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 _h(this.names);if(typeof t<"u"){let[n,s]=t;r.seen=new Set(n),r.finished=s}return r}update(t){let r=!1;for(let n of t)if(this.names.has(n)&&!this.seen.has(n))this.seen.add(n),r=!0;else if(!this.names.has(n))throw new R(`Value ${JSON.stringify(n)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!this.finished||!Lt(this.names,this.seen))throw new F}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&Lt(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&Lt(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&Lt(this.names,this.seen)}};var ya=Symbol.for("langgraph.state.reduced_value"),bt=class{[ya]=!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&&ya in e&&e[ya]===!0}};var wh=Symbol.for("langgraph.state.untracked_value"),sr=class{[wh]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&wh in e}};var _a=Symbol.for("langgraph.state.delta_value"),vt=class{[_a]=!0;valueSchema;inputSchema;reducer;snapshotFrequency;jsonSchemaExtra;constructor(e,t){this.reducer=t.reducer,this.valueSchema=e,this.inputSchema="inputSchema"in t?t.inputSchema:e,this.snapshotFrequency=t.snapshotFrequency,this.jsonSchemaExtra=t.jsonSchemaExtra}static isInstance(e){return typeof e=="object"&&e!==null&&_a in e&&e[_a]===!0}};var wa=Symbol.for("langgraph.state.state_schema"),Ge=class{[wa]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,r]of Object.entries(this.fields))if(vt.isInstance(r)){let n=wt(r.valueSchema);e[t]=new Ys(r.reducer,{snapshotFrequency:r.snapshotFrequency,initialValueFactory:n})}else if(bt.isInstance(r)){let n=wt(r.valueSchema);e[t]=new gt(r.reducer,n)}else if(sr.isInstance(r)){let n=r.schema?wt(r.schema):void 0;e[t]=new Xs({guard:r.guard,initialValueFactory:n})}else if($t(r))e[t]=new je(wt(r));else throw new Error(`Invalid state field "${t}": must be a schema, ReducedValue, DeltaValue, UntrackedValue, or ManagedValue`);return e}getJsonSchema(){let e={},t=[];for(let[r,n]of Object.entries(this.fields)){let s;if(vt.isInstance(n)||bt.isInstance(n)?(s=jt(n.valueSchema),n.jsonSchemaExtra&&(s={...s??{},...n.jsonSchemaExtra})):sr.isInstance(n)?s=n.schema?jt(n.schema):void 0:$t(n)&&(s=jt(n)),s){e[r]=s;let i=!1;vt.isInstance(n)||bt.isInstance(n)?i=wt(n.valueSchema)!==void 0:sr.isInstance(n)?i=n.schema?wt(n.schema)!==void 0:!1:i=wt(n)!==void 0,i||t.push(r)}}return{type:"object",properties:e,required:t.length>0?t:void 0}}getInputJsonSchema(){let e={};for(let[t,r]of Object.entries(this.fields)){let n;vt.isInstance(r)||bt.isInstance(r)?(n=jt(r.inputSchema),r.jsonSchemaExtra&&(n={...n??{},...r.jsonSchemaExtra})):sr.isInstance(r)?n=r.schema?jt(r.schema):void 0:$t(r)&&(n=jt(r)),n&&(e[t]=n)}return{type:"object",properties:e}}getChannelKeys(){return Object.entries(this.fields).map(([e])=>e)}getAllKeys(){return Object.keys(this.fields)}async validateInput(e){if(e==null||typeof e!="object")return e;let t={};for(let[r,n]of Object.entries(e)){let s=this.fields[r];if(s===void 0){t[r]=n;continue}let i;if(vt.isInstance(s)||bt.isInstance(s)){let[o,a]=Oe(n);if(o){i=s.valueSchema;let c=await i["~standard"].validate(a);if(c.issues)throw new Error(`Validation failed for field "${r}": ${JSON.stringify(c.issues)}`);t[r]={[Ke]:c.value};continue}i=s.inputSchema}else sr.isInstance(s)?i=s.schema:$t(s)&&(i=s);if(i){let o=await i["~standard"].validate(n);if(o.issues)throw new Error(`Validation failed for field "${r}": ${JSON.stringify(o.issues)}`);t[r]=o.value}else t[r]=n}return t}static isInstance(e){return typeof e=="object"&&e!==null&&wa in e&&e[wa]===!0}};function ir(e,t){let r=Array.isArray(e)?e:[e],n=Array.isArray(t)?t:[t],s=r.map(qe),i=n.map(qe);for(let u of s)(u.id===null||u.id===void 0)&&(u.id=Gr(),u.lc_kwargs.id=u.id);let o;for(let u=0;u<i.length;u+=1){let p=i[u];(p.id===null||p.id===void 0)&&(p.id=Gr(),p.lc_kwargs.id=p.id),pr.isInstance(p)&&p.id==="__remove_all__"&&(o=u)}if(o!=null)return i.slice(o+1);let a=[...s],c=new Map(a.map((u,p)=>[u.id,p])),l=new Set;for(let u of i){let p=c.get(u.id);if(p!==void 0)pr.isInstance(u)?l.add(u.id):(l.delete(u.id),a[p]=u);else{if(pr.isInstance(u))throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${u.id}')`);c.set(u.id,a.length),a.push(u)}}return a.filter(u=>!l.has(u.id))}function ba(e,t){let r=[];for(let a of t)Array.isArray(a)?r.push(...a):r.push(a);let n=e.length>0&&ee.isInstance(e[0])?e:e.map(qe),s=r.map(qe),i=new Map;for(let a=0;a<n.length;a+=1){let c=n[a].id;c!=null&&i.set(c,a)}let o=[...n];for(let a of s){let c=a.id;pr.isInstance(a)&&c==="__remove_all__"?(o.length=0,i.clear()):c==null?o.push(a):pr.isInstance(a)?i.has(c)&&(o[i.get(c)]=null,i.delete(c)):i.has(c)?o[i.get(c)]=a:(i.set(c,o.length),o.push(a))}return o.filter(a=>a!==null)}var bh=We.custom().default(()=>[]),vh=We.custom(),fg=new bt(bh,{inputSchema:vh,reducer:ir,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}}),gg=new vt(bh,{inputSchema:vh,reducer:ba,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var yg=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=qr(e);for(let[n,s]of Object.entries(r)){let i=this.get(s);i?.reducer?t[n]=new gt(i.reducer.fn,i.default):t[n]=new je(i?.default)}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let r=Object.entries(t).filter(([,i])=>i===!0).sort(([i],[o])=>i.localeCompare(o)).map(([i,o])=>`${i}:${o}`).join("|"),n=this._extensionCache.get(r)??new Map;if(n.has(e))return n.get(e);let s=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let i=Object.entries(qr(e)).map(([o,a])=>{let c=this.get(a),l=t.withReducerSchema?c?.reducer?.schema??a:a;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let u=mi(l)??mi(a),p=JSON.stringify({...c.jsonSchemaExtra,description:u});l=l.describe(`lg:${p}`)}return[o,l]});s=yc(e,Object.fromEntries(i)),gc(s)&&(s._def.unknownKeys="strip")}return t.asPartial&&(s=fr(s)),n.set(e,s),this._extensionCache.set(r,n),s}},An=new yg;function Sh(e,t){if(t.reducer&&!t.default){let r=_c(e);r!=null&&(t.default=r)}if(t.reducer){let r=Object.assign(e,{lg_reducer_schema:t.reducer?.schema??e});return An.extend(r,()=>t),r}else return An.extend(e,()=>t),e}function or(e){return e==null?!1:!!(Ge.isInstance(e)||ge(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"||Oo(t)))}function Ch(e){if(typeof e!="object"||e==null)return!1;let t=e,r="state"in t&&or(t.state),n="stateSchema"in t&&or(t.stateSchema),s="input"in t&&or(t.input);return!(!r&&!n&&!s||"input"in t&&t.input!=null&&!or(t.input)||"output"in t&&t.output!=null&&!or(t.output))}var St="__root__",jr="__default_error_handler__",Qs=Symbol.for("langgraph.state.partial"),Ft=class extends ha{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=An;_configSchema;_configRuntimeSchema;_interrupt;_writer;_nodeDefaults={};constructor(e,t){super();let r=this._normalizeToStateGraphInit(e,t),n=r.state??r.stateSchema??r.input;if(!n)throw new Xr;let s=this._getChannelsFromSchema(n);this._schemaDefinition=s,Ge.isInstance(n)?this._schemaRuntimeDefinition=n:ge(n)&&(this._schemaRuntimeDefinition=n),r.input?Ge.isInstance(r.input)?this._inputRuntimeDefinition=r.input:ge(r.input)?this._inputRuntimeDefinition=r.input:this._inputRuntimeDefinition=Qs:this._inputRuntimeDefinition=Qs,r.output?Ge.isInstance(r.output)?this._outputRuntimeDefinition=r.output:ge(r.output)?this._outputRuntimeDefinition=r.output:this._outputRuntimeDefinition=this._schemaRuntimeDefinition:this._outputRuntimeDefinition=this._schemaRuntimeDefinition;let i=r.input?this._getChannelsFromSchema(r.input):s,o=r.output?this._getChannelsFromSchema(r.output):s;this._inputDefinition=i,this._outputDefinition=o,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),r.context&&ge(r.context)&&(this._configRuntimeSchema=r.context),this._interrupt=r.interrupt,this._writer=r.writer}setNodeDefaults(e){return e.retryPolicy!==void 0&&(this._nodeDefaults.retryPolicy=e.retryPolicy),e.cachePolicy!==void 0&&(this._nodeDefaults.cachePolicy=typeof e.cachePolicy=="boolean"?e.cachePolicy?{}:void 0:e.cachePolicy),e.timeout!==void 0&&(this._nodeDefaults.timeout=Bt(e.timeout)),e.errorHandler!==void 0&&(this._nodeDefaults.errorHandler=e.errorHandler),this}_createDefaultErrorHandlerSpec(){let e=this._nodeDefaults.errorHandler;if(e!==void 0)return{runnable:new oe({func:(t,r)=>{let n=r?.configurable?.[Jr];return e(t,n,r)},name:jr,trace:!1}),metadata:void 0,input:this._schemaDefinition,retryPolicy:void 0,cachePolicy:void 0,isErrorHandler:!0}}_normalizeToStateGraphInit(e,t){if(Ch(e)){if(ge(t)||Cs.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(or(e)){if(ge(t)||Cs.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(wg(e))return{state:_g(e.channels)};throw new Xr}_getChannelsFromSchema(e){if(Ge.isInstance(e))return e.getChannels();if(ge(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 Xr("Invalid schema type. Expected StateSchema, Zod object, AnnotationRoot, or StateDefinition.")}get allEdges(){return new Set([...this.edges,...Array.from(this.waitingEdges).flatMap(([e,t])=>e.map(r=>[r,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,r]of Object.entries(e)){let n;if(typeof r=="function"?n=r():n=r,this.channels[t]!==void 0){if(!this.channels[t].equals(n)&&n.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=n}}}addNode(...e){function t(n){return n.length>=1&&typeof n[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([n,s])=>[n,s]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[n,s,i]of r){if(n in this.channels)throw new Error(`${n} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let h of["|",":"])if(n.includes(h))throw new Error(`"${h}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),n in this.nodes)throw new Error(`Node \`${n}\` already present.`);if(n==="__end__"||n==="__start__")throw new Error(`Node \`${n}\` is reserved.`);let o=this._schemaDefinition;i?.input!==void 0&&(o=this._getChannelsFromSchema(i.input)),this._addSchema(o);let a;K.isRunnable(s)?a=s:typeof s=="function"?a=new oe({func:s,name:n,trace:!1}):a=ze(s);let c=i?.cachePolicy,l;c!==void 0&&(l=typeof c=="boolean"?c?{}:!1:c);let u;if(i?.errorHandler!==void 0){if(u=`__error_handler__${n}`,u in this.nodes)throw new Error(`Cannot add error handler to node \`${n}\`: the reserved name \`${u}\` is already in use. StateGraph registers \`__error_handler__<nodeName>\` when you pass \`errorHandler\` in addNode options. Remove or rename the existing node with that name (for example, you may have added it manually).`);let h=i.errorHandler,d={runnable:new oe({func:(m,f)=>{let g=f?.configurable?.[Jr];return h(m,g,f)},name:u,trace:!1}),metadata:void 0,input:o??this._schemaDefinition,retryPolicy:void 0,cachePolicy:void 0,isErrorHandler:!0};this.nodes[u]=d}let p={runnable:a,retryPolicy:i?.retryPolicy,cachePolicy:l,timeout:Bt(i?.timeout),metadata:i?.metadata,input:o??this._schemaDefinition,subgraphs:kn(a)?[a]:i?.subgraphs,ends:i?.ends,defer:i?.defer,errorHandlerNode:u};this.nodes[n]=p}return this}addEdge(e,t){if(typeof e=="string")return super.addEdge(e,t);this.compiled&&console.warn("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.");for(let r of e){if(r==="__end__")throw new Error("END cannot be a start node");if(!Object.keys(this.nodes).some(n=>n===r))throw new Error(`Need to add a node named "${r}" first`)}if(t==="__end__")throw new Error("END cannot be an end node");if(!Object.keys(this.nodes).some(r=>r===t))throw new Error(`Need to add a node named "${t}" first`);return this.waitingEdges.add([e,t]),this}addSequence(e){let t=Array.isArray(e)?e:Object.entries(e);if(t.length===0)throw new Error("Sequence requires at least one node.");let r;for(let[n,s,i]of t){if(n in this.nodes)throw new Error(`Node names must be unique: node with the name "${n}" already exists.`);let o=n;this.addNode(n,s,i),r!=null&&this.addEdge(r,o),r=o}return this}compile({checkpointer:e,store:t,cache:r,interruptBefore:n,interruptAfter:s,name:i,description:o,transformers:a}={}){let c=this._createDefaultErrorHandlerSpec();if(c!==void 0){if(jr in this.nodes)throw new Error(`Cannot apply a default error handler: the reserved node name \`${jr}\` is already in use. setNodeDefaults({ errorHandler }) registers a node with that name; rename the conflicting node.`);this.nodes[jr]=c}try{return this._compileResolved({checkpointer:e,store:t,cache:r,interruptBefore:n,interruptAfter:s,name:i,description:o,transformers:a,defaultErrorHandlerNode:c!==void 0?jr:void 0})}finally{c!==void 0&&delete this.nodes[jr]}}_compileResolved({checkpointer:e,store:t,cache:r,interruptBefore:n,interruptAfter:s,name:i,description:o,transformers:a,defaultErrorHandlerNode:c}){this.validate([...Array.isArray(n)?n:[],...Array.isArray(s)?s:[]]);let l=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),u=l.length===1&&l[0]===St?St:l,p=Object.keys(this.channels),h=p.length===1&&p[0]===St?St:p,d=this._interrupt,m=new Eh({builder:this,checkpointer:e,interruptAfter:s,interruptBefore:n,autoValidate:!1,nodes:{},channels:{...this.channels,[U]:new Ue},inputChannels:U,outputChannels:u,streamChannels:h,streamMode:"updates",store:t,cache:r,name:i,description:o,userInterrupt:d,streamTransformers:a});m.attachNode(U);let f=this._nodeDefaults,g=f.retryPolicy!==void 0||f.cachePolicy!==void 0||f.timeout!==void 0||c!==void 0;for(let[y,_]of Object.entries(this.nodes)){let S=_.isErrorHandler===!0,C=g?{..._,retryPolicy:_.retryPolicy??f.retryPolicy,cachePolicy:S||_.cachePolicy===!1?void 0:_.cachePolicy??f.cachePolicy,timeout:_.timeout??f.timeout,errorHandlerNode:!S&&c!==void 0&&_.errorHandlerNode===void 0?c:_.errorHandlerNode}:_;m.attachNode(y,C)}m.attachBranch(U,Si,kh(),{withReader:!1});for(let[y]of Object.entries(this.nodes))m.attachBranch(y,Si,kh(),{withReader:!1});for(let[y,_]of this.edges)m.attachEdge(y,_);for(let[y,_]of this.waitingEdges)m.attachEdge(y,_);for(let[y,_]of Object.entries(this.branches))for(let[S,C]of Object.entries(_))m.attachBranch(y,S,C);return m.validate()}};function _g(e){let t={};for(let[r,n]of Object.entries(e))r===St?t[r]=ks(n):t[r]=ks(n);return t}var Eh=class extends da{description;_metaRegistry=An;constructor({description:e,...t}){super(t),this.description=e}attachNode(e,t){let r;e==="__start__"?r=Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([c])=>c):r=Object.keys(this.builder.channels);function n(c){if(ie(c))return c.graph===ye.PARENT?null:c._updateAsTuples();if(Array.isArray(c)&&c.length>0&&c.some(l=>ie(l))){let l=[];for(let u of c)if(ie(u)){if(u.graph===ye.PARENT)continue;l.push(...u._updateAsTuples())}else l.push([St,u]);return l}else if(c!=null)return[[St,c]];return null}let s=e,i=async c=>{if(c==null||c.length===0)return c;let l=this.builder._schemaRuntimeDefinition;if(Ge.isInstance(l)){let u=new Set(l.getChannelKeys());return Promise.all(c.map(async([p,h])=>{if(!u.has(p))return[p,h];let d=await l.validateInput({[p]:h});return[p,Object.prototype.hasOwnProperty.call(d,p)?d[p]:h]}))}if(ge(l)){let u=new Set(Object.keys(qr(l)));if(c.filter(([d])=>u.has(d)).length===0)return c;let p=fr(this._metaRegistry.getExtendedChannelSchemas(l,{withReducerSchema:!0})),h=fr(l);return c.map(([d,m])=>{if(!u.has(d))return[d,m];let[f,g]=Oe(m);if(f){let _=mr(h,{[d]:g});return[d,Object.prototype.hasOwnProperty.call(_,d)?{[Ke]:_[d]}:m]}let y=mr(p,{[d]:m});return[d,Object.prototype.hasOwnProperty.call(y,d)?y[d]:m]})}return c};async function o(c){if(c){if(ie(c))return c.graph===ye.PARENT?null:i(c._updateAsTuples().filter(([l])=>r.includes(l)));if(Array.isArray(c)&&c.length>0&&c.some(ie)){let l=[];for(let u of c)if(ie(u)){if(u.graph===ye.PARENT)continue;l.push(...u._updateAsTuples().filter(([p])=>r.includes(p)))}else{let p=await o(u);p&&l.push(...p??[])}return i(l)}else{if(typeof c=="object"&&!Array.isArray(c))return i(Object.entries(c).filter(([l])=>r.includes(l)));{let l=Array.isArray(c)?"array":typeof c;throw new R(`Expected node "${s.toString()}" to return an object or an array containing at least one Command object, received ${l}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let a=[{value:be,mapper:new oe({func:r.length&&r[0]===St?n:o,trace:!1,recurse:!1})}];if(e==="__start__")this.nodes[e]=new Fe({tags:[X],triggers:[U],channels:[U],writers:[new Y(a,[X])]});else{let c=t?.input??this.builder._schemaDefinition,l=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(c)).map(m=>[m,m])),u=Object.keys(l).length===1&&St in l,p=`branch:to:${e}`;this.channels[p]=t?.defer?new Do:new Ue(!1);let h=t?.cachePolicy,d=h===!1?void 0:h;this.nodes[e]=new Fe({triggers:[p],channels:u?Object.keys(l):l,writers:[new Y(a,[X])],mapper:u?void 0:m=>Object.fromEntries(Object.entries(m).filter(([f])=>f in l)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:d,timeout:t?.timeout,subgraphs:t?.subgraphs,ends:t?.ends,isErrorHandler:t?.isErrorHandler,errorHandlerNode:t?.errorHandlerNode})}}attachEdge(e,t){if(t!=="__end__"){if(typeof e=="string")this.nodes[e].writers.push(new Y([{channel:`branch:to:${t}`,value:null}],[X]));else if(Array.isArray(e)){let r=`join:${e.join("+")}:${t}`;this.channels[r]=this.builder.nodes[t].defer?new ga(new Set(e)):new fa(new Set(e)),this.nodes[t].triggers.push(r);for(let n of e)this.nodes[n].writers.push(new Y([{channel:r,value:n}],[X]))}}}attachBranch(e,t,r,n={withReader:!0}){let s=async(i,o)=>{let a=i.filter(l=>l!==L);if(!a.length)return;let c=a.map(l=>re(l)?l:{channel:l==="__end__"?l:`branch:to:${l}`,value:e});await Y.doWrite({...o,tags:(o.tags??[]).concat([X])},c)};this.nodes[e].writers.push(r.run(s,n.withReader?i=>Tp.doRead(i,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=this.builder._inputRuntimeDefinition,r=this.builder._schemaRuntimeDefinition;if(Ge.isInstance(t)){if(ie(e)){let s=e;return e.update&&(s.update=await t.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),s}return await t.validateInput(e)}if(t===Qs&&Ge.isInstance(r)){if(ie(e)){let s=e;return e.update&&(s.update=await r.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),s}return await r.validateInput(e)}let n=(()=>{let s=i=>{if(i!=null)return this._metaRegistry.getExtendedChannelSchemas(i,{withReducerSchema:!0})};if(ge(t))return s(t);if(t===Qs)return ge(r)?fr(s(r)):void 0})();if(ie(e)){let s=e;if(e.update&&n!=null){let i=Array.isArray(e.update)?Object.fromEntries(e.update):e.update,o=mr(n,i);s.update=Object.fromEntries(Object.keys(i).map(a=>[a,o[a]]))}return s}return n!=null?mr(n,e):e}isInterrupted(e){return Jt(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return ge(t)&&mr(t,e),e}};function wg(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function bg(e){if(re(e))return[e];let t=[];ie(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(ie));let r=[];for(let n of t){if(n.graph===ye.PARENT)throw new zn(n);re(n.goto)||typeof n.goto=="string"?r.push(n.goto):Array.isArray(n.goto)&&r.push(...n.goto)}return r}function kh(){return new pa({path:new oe({func:bg,tags:[X],trace:!1,recurse:!1,name:"<control_branch>"})})}var xh=function(t,r){let{name:n,checkpointer:s,store:i,cache:o}=typeof t=="string"?{name:t,checkpointer:void 0,store:void 0}:t,a=Bt(typeof t=="string"?void 0:t.timeout);if(xp(r)||Ip(r))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let c="updates",l=$p(n,r);function u(m){return typeof m=="object"&&m!==null&&"__lg_type"in m&&m.__lg_type==="__pregel_final"}let p=new oe({name:"pluckReturnValue",func:m=>u(m)?m.value:m}),h=new oe({name:"pluckSaveValue",func:m=>u(m)?m.save:m}),d=new Fe({bound:l,triggers:[U],channels:[U],timeout:a,writers:[new Y([{channel:L,value:be,mapper:p},{channel:Tt,value:be,mapper:h}],[X])]});return new Js({name:n,checkpointer:s,nodes:{[n]:d},channels:{[U]:new Ue,[L]:new je,[Tt]:new je},inputChannels:U,outputChannels:L,streamChannels:L,streamMode:c,store:i,cache:o})};xh.final=function({value:t,save:r}){return{value:t,save:r,__lg_type:"__pregel_final"}};var vg=B.Root({messages:B({reducer:ir,default:()=>[]})}),Ih={reducer:{fn:ir},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},Sg=fi.object({messages:Sh(fi.custom(),Ih)});var Lr=async(e={})=>{let{modelTier:t="default",config:r}=e,{getChatAIUtilityServiceUrl:n}=await import("./6LST5YZY.js").then(m=>m.default),{createAuthenticatedFetch:s}=await import("./FQOOFBPI.js").then(m=>m.default.then(e=>({createAuthenticatedFetch:e}))),i=Jc[t],o=await n(t);return new Kc({modelName:i,apiKey:"dummy-key",useResponsesApi:!0,zdrEnabled:!0,configuration:{baseURL:o,fetch:await s({config:r,withCredentials:!0})}})};var Cg=(e,t)=>{let r=ln.fromTemplate(e);return Te.fromMessages([r,...t])};var Be=async e=>{let{promptText:t,modelTier:r="default",messages:n,inputVariables:s,schema:i,config:o}=e,a=Cg(t,n??[]),c=(await Lr({modelTier:r,config:o})).withStructuredOutput(i);return await a.pipe(c).invoke(s??{},o)};var J=async(e,t)=>{let{dispatchCustomEvent:r}=await import("./4TQWZ2KF.js");await r("trace_message",e,t)},Zs=async(e,t)=>{let{dispatchCustomEvent:r}=await import("./4TQWZ2KF.js");await r("graph_ux_suggestion",e,t)};var w=We;var ei=(e,t)=>t,kg=(e,t)=>({...e,...t}),Eg=(e="",t)=>{let r=typeof t=="string"?t.trim():"";if(!r)return e;let n=e.trim();if(!n)return r;if(n===r)return e;let s=n.split(`
|
|
133
|
+
|
|
134
|
+
`);return s[s.length-1]?.trim()===r?e:`${e}
|
|
135
|
+
|
|
136
|
+
${r}`},Th=()=>({userRequest:"",inputParts:[],assignedTask:"",messages:[],priorSteps:[],sharedState:{},sharedResources:[]}),ar=()=>({agentExecutionContext:B({reducer:kg,default:Th}),outputMessage:B({reducer:Eg,default:()=>""}),summary:B({reducer:ei,default:()=>""}),status:B({reducer:ei}),sharedStatePatch:B({reducer:ei}),sharedResourceAdditions:B({reducer:ei})});var Ah=async e=>{try{let{createEmbeddingModel:t}=await import("./FQYC25GN.js").then(m=>m.default.then(e=>({createEmbeddingModel:e})));return await(await t()).embedDocuments(e)}catch(t){throw console.error("Failed to generate embeddings:",t),t}};var td=e=>{let{portal:t,user:r}=e??{};return!!e&&!!t&&!!r};function lr(e){if(!td(e))throw new Error("Invalid context: PortalAssistantContext with portal and user is required.")}var Ig=`
|
|
137
|
+
Write a concise, friendly success message for adding members to a group.
|
|
138
|
+
|
|
139
|
+
Rules:
|
|
140
|
+
- Keep it to 1-2 short sentences.
|
|
141
|
+
- Use plain text only.
|
|
142
|
+
- If there is no notAddedMembers, confirm that all requested members were added successfully.
|
|
143
|
+
- If there are notAddedMembers, acknowledge that some members could not be added and list the added and not added members separately then mention why based on the context
|
|
144
|
+
- Make sure to bold the usernames
|
|
145
|
+
|
|
146
|
+
Added members:
|
|
147
|
+
{addedMembers}
|
|
148
|
+
|
|
149
|
+
Not added members:
|
|
150
|
+
{notAddedMembers}
|
|
151
|
+
`,Tg=e=>e.map(t=>`"${t}"`).join(", "),Ag=w.object({successMessage:w.string().default("")}),Ph="portal-group-creation",Oh="approveAddMembers",Ng=async(e,t)=>{if(e.intentParams.intent!=="addMembers")return{status:"success",outputMessage:"Use @mention usernames for the members you want to add."};let r=e.agentExecutionContext.sharedState.createdGroupId?.value;if(!r)return{status:"success",outputMessage:"Create a group first, then add members using @mention usernames."};let n=e.intentParams.memberInfo.memberIdentifiers.map(p=>p.trim()).filter(Boolean);if(!n.length)return{status:"success",outputMessage:"Use @mention usernames for the members you want to add."};let s=`The following member(s) will be added to the newly created group:
|
|
152
|
+
|
|
153
|
+
${n.map(p=>`- **@${p}**`).join(`
|
|
154
|
+
`)}
|
|
155
|
+
|
|
156
|
+
Do you want to continue?`,{hitlResponse:i}=t?.configurable??{};if(i?.agentId!==Ph||i.id!==Oh){let p={agentId:Ph,id:Oh,kind:"booleanChoice",message:s,metadata:{action:"addMembers",groupId:r,members:[...n]}};throw new At(p)}if(i.payload!==!0)return{status:"success",outputMessage:"Okay, I cancelled adding members to the group."};await J({text:`Adding members ${Tg(n)}...`,agentName:"group-creation"},t);let o=t?.configurable?.context;lr(o);let{result:a,error:c}=await Qc(o.portal,r,n);if(c||!a)return{status:"success",outputMessage:"I could not add members to that group. Please confirm group access and user accounts, then try again."};let{addedUsernames:l,notAddedUsers:u}=a;try{let p=(await Be({promptText:Ig,schema:Ag,modelTier:"fast",inputVariables:{addedMembers:l.join(", "),notAddedMembers:JSON.stringify(u.map(h=>({username:h.username,reason:h.error.message})))}})).successMessage;if(p)return{status:"success",outputMessage:p}}catch(p){console.error("Error generating add-members success message:",p)}return{}},Mg=`
|
|
157
|
+
Write a concise, friendly success message after creating a portal group.
|
|
158
|
+
|
|
159
|
+
Rules:
|
|
160
|
+
- Mention that the group was created successfully.
|
|
161
|
+
- Mention that the user can add members by using @mention usernames.
|
|
162
|
+
- Keep it to 1-2 short sentences.
|
|
163
|
+
- Make sure to bold the group title in the message.
|
|
164
|
+
|
|
165
|
+
Group title:
|
|
166
|
+
{groupTitle}
|
|
167
|
+
`,Pg=`
|
|
168
|
+
Write a concise, friendly failure message after an attempt to create a portal group.
|
|
169
|
+
|
|
170
|
+
Rules:
|
|
171
|
+
- Keep it to 1-2 short sentences.
|
|
172
|
+
- Use plain text only.
|
|
173
|
+
- Mention that group creation failed.
|
|
174
|
+
- Include the failure reason in user-friendly language.
|
|
175
|
+
- End with a clear next step the user can try.
|
|
176
|
+
|
|
177
|
+
Group title:
|
|
178
|
+
{groupTitle}
|
|
179
|
+
|
|
180
|
+
Failure reason:
|
|
181
|
+
{failureReason}
|
|
182
|
+
`,Rh="portal-group-creation",Dh="approveCreateGroup",Og=w.object({successMessage:w.string().default("")}),Rg=w.object({failureMessage:w.string().default("")}),Dg=async(e,t)=>{if(e.intentParams.intent!=="create")return{status:"success",outputMessage:"Tell me the group title you want to use."};let r=e.intentParams.title.trim();if(!r)return{status:"success",outputMessage:"What title would you like for the new group?"};let n=`A group with the title **${r}** will be created. Do you want to continue?`,{hitlResponse:s}=t?.configurable;if(s?.agentId!==Rh||s.id!==Dh){let l={agentId:Rh,id:Dh,kind:"booleanChoice",message:n,metadata:{action:"createGroup",title:r,access:"private"}};throw new At(l)}if(s.payload!==!0)return{status:"success",outputMessage:`Okay, I cancelled creating **${r}**.`};await J({text:`Creating group "${r}"...`,agentName:"group-creation"},t);let i=t?.configurable?.context;lr(i);let{result:o,error:a}=await Xc(i.portal,{title:r,access:"private"});if(a||!o){let l=a?.message?.trim()||"No additional details were provided.";try{let u=(await Be({promptText:Pg,schema:Rg,modelTier:"fast",inputVariables:{groupTitle:r,failureReason:l}})).failureMessage.trim();if(u)return{status:"success",outputMessage:u}}catch(u){console.error("Error generating create-group failure message:",u)}return{status:"success",outputMessage:"I could not create that group. Please confirm your permissions and try again with the group title."}}let c=o.id;try{let l=(await Be({promptText:Mg,schema:Og,modelTier:"fast",inputVariables:{groupTitle:r}})).successMessage.trim();if(l)return{status:"success",outputMessage:l,sharedStatePatch:{createdGroupId:{value:c}},createdGroupId:c}}catch(l){console.error("Error generating create-group success message:",l)}return{}},at=e=>{for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.type!=="human")continue;let n=r.content;if(typeof n=="string")return n;if(Array.isArray(n))return n.map(s=>typeof s=="string"?s:"text"in s&&typeof s.text=="string"?s.text:"").join(" ").trim()}return""},$g=`
|
|
183
|
+
You classify whether a user is asking to create a new ArcGIS Portal group or add members to an existing group.
|
|
184
|
+
|
|
185
|
+
Rules:
|
|
186
|
+
- Set intent="create" when the user asks to create a group and a title can be identified.
|
|
187
|
+
- Set intent="addMembers" when the user asks to add one or more members to a group.
|
|
188
|
+
- Set intent="clarify" when required data is missing or the request is ambiguous.
|
|
189
|
+
- For create requests, extract title only.
|
|
190
|
+
- For add-members requests, extract memberIdentifiers as ArcGIS usernames only (no @ prefix), but if you're returning a hint text asking for missing members, include the @ prefix.
|
|
191
|
+
- If the user includes mentions like @jsmith, return "jsmith" in memberIdentifiers.
|
|
192
|
+
- Do not extract group ids or group titles; add-members is a follow-up action that targets the most recently created group.
|
|
193
|
+
- When intent="clarify", provide a concise clarifyMessage describing exactly what is missing.
|
|
194
|
+
- If the user gives the title in quotes, extract exactly that title.
|
|
195
|
+
- If the user says create group <title> without quotes, extract only the title text after the create-group wording.
|
|
196
|
+
- If the user message looks like only a potential title (short phrase, not a question), treat it as the title and set intent="create".
|
|
197
|
+
- Return only extracted values. Do not add helper text into title or memberIdentifiers.
|
|
198
|
+
- Make sure to match the user's tone and texting style
|
|
199
|
+
|
|
200
|
+
Examples:
|
|
201
|
+
- help me create a new group "<title>" => intent="create", title="<title>", memberIdentifiers=[]
|
|
202
|
+
- add @<username1> and @<username2> => intent="addMembers", memberIdentifiers=["<username1>","<username2>"]
|
|
203
|
+
- add <member> => intent="addMembers", memberIdentifiers=["<member>"]
|
|
204
|
+
- help me create a new group => intent="clarify" with a question for missing title
|
|
205
|
+
|
|
206
|
+
User message:
|
|
207
|
+
{userMessage}
|
|
208
|
+
`,jg=w.object({intent:w.enum(["clarify","create","addMembers"]).default("clarify"),title:w.string().default(""),memberIdentifiers:w.array(w.string()).default([]),clarifyMessage:w.string().default("")}),Lg=async(e,t)=>{await J({text:"Thinking about groups...",agentName:"group-creation"},t);let r=at(e.agentExecutionContext.messages).trim(),n=await Be({promptText:$g,schema:jg,modelTier:"default",inputVariables:{userMessage:r}}),s=n.title.trim(),i=n.memberIdentifiers.filter(Boolean),o=n.clarifyMessage.trim(),a=n.intent==="create"&&!!s,c=n.intent==="addMembers"&&i.length>0;return{intentParams:a?{intent:"create",title:s}:c?{intent:"addMembers",memberInfo:{memberIdentifiers:i}}:{intent:"clarify"},status:"success",outputMessage:!a&&!c?o:""}},Fg=["general","about","homePage","gallery","aiAssistants","map","items","groups","webhooks","utilityServices","agol","esriContent","livingAtlas","servers","memberRoles","newMemberDefaults","marketplace","collaborations","credits","security","openData","hub","orgExtensions"],Vg=["newItem","createLayer","developerCredentials","url","application","tileLayer","sceneLayer","locator","dataStore"],Ug=["favorites","group","living-atlas","org"],Gg=["featured","my","organization"],Bg=["overview","content","members","settings"],Hg=["licenses","members","overview","reports","settings","status"],qg=w.object({destinationType:w.literal("portal-content"),hash:w.enum(Ug).optional(),queryParams:w.object({newItem:w.enum(Vg).optional()}).optional()}),zg=w.object({destinationType:w.literal("portal-groups"),hash:w.enum(Gg).optional()}),Wg=w.object({destinationType:w.literal("portal-org"),hash:w.enum(Hg).optional(),queryParams:w.object({tab:w.enum(Fg).optional(),section:w.string().optional(),subsection:w.string().optional(),period:w.string().optional(),startTime:w.string().optional(),endTime:w.string().optional()}).optional()}),Kg=w.object({destinationType:w.literal("portal-item"),itemId:w.string().trim().min(1)}),Jg=w.object({destinationType:w.literal("portal-group"),groupId:w.string().trim().min(1),hash:w.enum(Bg).optional(),queryParams:w.record(w.string(),w.string()).optional()}),Yg=w.union([qg,w.object({destinationType:w.literal("portal-gallery")}),Jg,zg,Kg,w.object({destinationType:w.literal("portal-map-viewer")}),w.object({destinationType:w.literal("portal-notebooks")}),Wg,w.object({destinationType:w.literal("portal-scene-viewer")})]),rd="portal-navigation",ii=async(e,t)=>{let r=t?.configurable?.context;!td(r)||!r.navigationTargetMap?.[e.destinationType]||await Zs({type:rd,data:{...e}},t)},Xg=async(e,t)=>{let r=e.createdGroupId??e.agentExecutionContext.sharedState.createdGroupId?.value;return r?(await J({text:"Preparing navigation...",agentName:"group-creation"},t),await ii({destinationType:"portal-group",groupId:r},t),{}):{}},$h=(e,t)=>t??e,nd=B.Root({...ar(),intentParams:B({reducer:$h,default:()=>({intent:"clarify"})}),createdGroupId:B({reducer:$h,default:()=>""})}),Qg=()=>new Ft(nd).addNode("detectGroupCreationIntent",Lg).addNode("createPortalGroup",Dg).addNode("addMembersToPortalGroup",Ng).addNode("suggestCreatedGroupNavigation",Xg).addEdge(U,"detectGroupCreationIntent").addConditionalEdges("detectGroupCreationIntent",e=>{switch(e.intentParams.intent){case"create":return"createPortalGroup";case"addMembers":return"addMembersToPortalGroup";default:return L}}).addEdge("createPortalGroup","suggestCreatedGroupNavigation").addEdge("addMembersToPortalGroup","suggestCreatedGroupNavigation").addEdge("suggestCreatedGroupNavigation",L),Zg=String.raw`- **portal-group-creation** - Portal group creation assistant:
|
|
209
|
+
- creates a new ArcGIS Portal group for the signed-in user
|
|
210
|
+
- adds users to the newly created group using @mention usernames
|
|
211
|
+
`,ey={id:"portal-group-creation",name:"Portal Group Creation",description:Zg,createGraph:Qg,workspace:nd},sd="portalDocAssistantMemory",ty=()=>({conversationId:""}),ry=e=>{let t=e?.[sd]?.value;if(!t||typeof t!="object")return ty();let r=t;return{conversationId:typeof r.conversationId=="string"?r.conversationId:""}},ny=e=>({[sd]:{value:e}}),sy={pipeline:{follow_up:{allow:!1}}};function iy(e){return{kind:"DocAIAssistantRequest",filters:{...sy,persona:{persona:e}}}}var oy="https://www.arcgis.com/sharing/rest";async function ay({portal:e,question:t,persona:r,previousConversationId:n,useProdDocAssistant:s,signal:i,skillId:o}){o??="doc_ai_assistant";let a=iy(r),c=await cy({portal:e,skillId:o,message:t,options:{context:a,previousConversationId:n,useProdDocAssistant:s,signal:i}});return{reply:ly(c,o),conversationId:c[0]?.conversationId??""}}async function cy({portal:e,skillId:t,message:r,options:n}){let s=e.helperServices.aiAssistantServices.url,i=`${n.useProdDocAssistant?"https://aiservices-beta.arcgis.com":s}/skills/${t}/chat`,o={"Content-Type":"application/json",token:n.useProdDocAssistant?(await Nh.getCredential(oy,{oAuthPopupConfirmation:!1})).token:Nh.findCredential(e.url)?.token??""},a=await Mh(i,{method:"post",body:JSON.stringify({message:r,context:n.context,conversationId:n.previousConversationId}),headers:o,signal:n.signal});if(a.httpStatus!==200)throw new Error(`Doc assistant chat failed (${a.httpStatus})`,{cause:a.data});let c=a.data,l=[c],{conversationId:u,inquiryId:p}=c,h=async(d,m)=>{if(!m)return;await ja(500);let f=await Mh(i,{method:"post",body:JSON.stringify({conversationId:u,inquiryId:p,ackSequenceNumber:d}),headers:o,signal:n.signal});if(f.httpStatus!==200)throw new Error(`Doc assistant poll failed (${f.httpStatus})`,{cause:f.data});let g=f.data;l.push(g),await h(g.sequenceNumber,g.hasMore)};return c.hasMore&&await h(c.sequenceNumber,c.hasMore),l}function ly(e,t){switch(t){case"doc_chat":return e.find(r=>r.message!=null)?.message??"";case"doc_ai_assistant":for(let r=e.length-1;r>=0;r-=1){let n=e[r];if(n.context?.kind==="DocAIAssistantContext"){let s=n.context.results?.[0]?.reply;if(s)return s}}return"";default:return Ur(t)}}var uy=async(e,t)=>{let r=performance.now();try{await J({text:"Asking documentation assistant...",agentName:"doc-assistant"},t);let n=at(e.agentExecutionContext.messages).trim();if(!n)return{status:"success",outputMessage:"Please share your question and I can help with ArcGIS and Portal documentation."};let s=t?.configurable?.context;lr(s);let i=ry(e.agentExecutionContext.sharedState),{reply:o,conversationId:a}=await ay({portal:s.portal,question:n,previousConversationId:i.conversationId||void 0,skillId:"doc_ai_assistant",persona:"doc-online",useProdDocAssistant:s.useProdDocAssistant});return{status:"success",outputMessage:o.trim()||"I could not retrieve a response from the documentation assistant.",sharedStatePatch:ny({conversationId:a||i.conversationId})}}finally{console.info("[arcgis-portal-ai-assistant] node timing",{agent:"portal-doc-assistant",node:"answerDocQuestion",durationMs:Number((performance.now()-r).toFixed(1))})}},py={schemaVersion:"1.0",capabilities:[{id:"portal-content",title:"My content",description:"Browse, discover, search, and filter ArcGIS content\u2014including maps, apps, datasets, and other items\u2014that you own or can access.",hints:["view my content","show my content","my content"],platforms:["online","enterprise"],resolutions:{navigate:{routeKey:"content"}}},{id:"portal-content-new-item-feature-layer",title:"Create feature layer",description:"Generate an editable feature layer by copying fields from templates or existing layers.",hints:["add a feature layer","make a feature layer","generate a feature layer"],platforms:["online","enterprise"],resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"createLayer"}}}},{id:"portal-content-new-item",title:"New item",description:"Open My Content with the New Item flow ready to start.",hints:["new item","create new item","upload a new item"],platforms:["online","enterprise"],buttonLabel:"Create new item",resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"newItem"}}}},{id:"portal-content-new-item-developer-credentials",title:"Create developer credentials",description:"Open My Content with the New Item flow set to developer credentials.",hints:["developer credentials","new developer credentials","create api key"],platforms:["online","enterprise"],buttonLabel:"Create developer credentials",resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"developerCredentials"}}}},{id:"portal-content-new-item-url",title:"Add item from URL",description:"Open My Content with the New Item flow set to add a URL-based item, such as a service endpoint.",hints:["add item from url","url item","register service url"],platforms:["online","enterprise"],buttonLabel:"Add item from URL",resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"url"}}}},{id:"portal-content-new-item-application",title:"Create application item",description:"Open My Content with the New Item flow set to create an application item in content.",hints:["create application item","register app item","new application item"],platforms:["online","enterprise"],buttonLabel:"Create application item",resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"application"}}}},{id:"portal-content-new-item-tile-layer",title:"Create tile layer",description:"Open My Content with the New Item flow set to publish a hosted tile layer.",hints:["create hosted tile layer","publish tile layer","new tile layer"],platforms:["online","enterprise"],buttonLabel:"Create tile layer",resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"tileLayer"}}}},{id:"portal-content-new-item-scene-layer",title:"Create scene layer",description:"Open My Content with the New Item flow set to publish a hosted scene layer.",hints:["create hosted scene layer","publish scene layer","new scene layer"],platforms:["online","enterprise"],buttonLabel:"Create scene layer",resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"sceneLayer"}}}},{id:"portal-content-new-item-locator",title:"Create locator",description:"Open My Content with the New Item flow set to create or publish a locator for geocoding.",hints:["create locator","publish locator","geocoding locator"],platforms:["online","enterprise"],buttonLabel:"Create locator",resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"locator"}}}},{id:"portal-content-new-item-data-store",title:"Create data store item",description:"Open My Content with the New Item flow set to register a data store connection.",hints:["register data store","data store connection","new data store item"],platforms:["online","enterprise"],buttonLabel:"Create data store item",resolutions:{navigate:{routeKey:"content",queryParams:{newItem:"dataStore"}}}},{id:"create-folder",title:"Create folder",description:"Create a new folder in your ArcGIS content to organize your items.",hints:["create a folder","make a folder","set up a folder","new folder"],platforms:["online","enterprise"],resolutions:{navigate:{routeKey:"content"}}}]},hy={schemaVersion:"1.0",capabilities:[{id:"portal-groups-my",title:"My groups",description:"Browse, discover, search, and filter ArcGIS content collections\u2014including maps, apps, datasets, and other items\u2014that you own, belong to, or can access.",hints:["view my groups","show my groups","my groups"],platforms:["online","enterprise"],resolutions:{navigate:{routeKey:"groups"}}},{id:"create-group",title:"Create group",description:"Create a new ArcGIS Portal group owned by the signed-in user.",hints:["create a group","make a group","set up a group","new group"],platforms:["online","enterprise"],resolutions:{navigate:{routeKey:"groups"}}},{id:"portal-groups-featured",title:"Featured groups",description:"Browse, discover, search, and filter ArcGIS content collections\u2014including maps, apps, datasets, and other items\u2014that organization administrators choose to highlight in ArcGIS.",hints:["view featured groups","show featured groups","highlighted groups","top groups"],platforms:["online","enterprise"],resolutions:{navigate:{routeKey:"groups",hash:"featured"}}},{id:"portal-groups-organization",title:"Organization groups",description:"Browse, discover, search, and filter ArcGIS content collections\u2014including maps, apps, datasets, and other items\u2014that are specific to your organization in ArcGIS.",hints:["view organization groups","show organization groups"],platforms:["online","enterprise"],resolutions:{navigate:{routeKey:"groups",hash:"organization"}}}]},dy={schemaVersion:"1.0",capabilities:[{id:"portal-org-security-multifactor-auth",title:"Multifactor Authentication (MFA)",description:"Configure organization-level multifactor authentication (MFA) settings. Administrators can enable MFA for ArcGIS logins, allow recovery codes for members, view MFA adoption status, enforce MFA requirements for all members, manage the MFA exemption list, and designate administrators who can troubleshoot MFA issues.",hints:["config MFA","set up MFA"],platforms:["online","enterprise"],resolutions:{navigate:{routeKey:"organization",queryParams:{tab:"security",subsection:"multiFactorAuthSection"},hash:"settings"}}},{id:"portal-org-security-logins",title:"Security - Logins",description:"Manage the sign-in methods available for the organization.",hints:["set up SAML single sign-on","add OpenID Connect login","sign in with Okta"],platforms:["online","enterprise"],buttonLabel:"Configure logins",resolutions:{navigate:{routeKey:"organization",hash:"settings",queryParams:{tab:"security",subsection:"loginsSection"}}}},{id:"portal-org-security-custom-sign-in",title:"Security - Custom sign-in",description:"Customize how sign-in options are presented for the organization.",hints:["custom sign in","brand the sign-in page","hide the ArcGIS login option"],platforms:["online","enterprise"],buttonLabel:"Configure custom sign-in",resolutions:{navigate:{routeKey:"organization",hash:"settings",queryParams:{tab:"security",subsection:"customSignInSection"}}}},{id:"portal-org-security-change-login-provider",title:"Security - Logins - Member login management",description:"Change the login provider used by an existing organization member.",hints:["change login provider","switch a member to SAML","migrate a user to SSO"],platforms:["online","enterprise"],buttonLabel:"Configure member login management",resolutions:{navigate:{routeKey:"organization",hash:"settings",queryParams:{tab:"security",subsection:"changeLoginProviderSection"}}}},{id:"portal-org-security-multifactor-enforcement",title:"Security - Multifactor authentication - MFA enforcement",description:"Require multifactor authentication for all members with ArcGIS logins.",hints:["make MFA required","force all members to use MFA","MFA exemption list"],platforms:["online","enterprise"],buttonLabel:"Configure MFA enforcement",resolutions:{navigate:{routeKey:"organization",hash:"settings",queryParams:{tab:"security",subsection:"multifactorEnforcementSection"}}}},{id:"portal-org-security-multifactor-designated-admins",title:"Security - Multifactor authentication - Designated administrators",description:"Choose which administrators receive and handle member MFA assistance requests.",hints:["designated MFA admins","who receives MFA help requests","MFA support administrators"],platforms:["online","enterprise"],buttonLabel:"Configure designated administrators",resolutions:{navigate:{routeKey:"organization",hash:"settings",queryParams:{tab:"security",subsection:"multifactorDesignatedAdminsSection"}}}}]},my={"contentRouteRegistry.ts":py,"groupsRouteRegistry.ts":hy,"orgSettingsRouteRegistry.ts":dy};function jh(e){let t=[],r=new Set;for(let[n,s]of Object.entries(e))for(let i of s.capabilities){if(r.has(i.id))throw new Error(`${n}: duplicate capability id "${i.id}" across registries`);r.add(i.id),t.push(i)}return t}var ti;function cr(e){return e?ti=jh({customCapabilities:e}):ti||(ti=jh(my)),ti}var fy={gallery:"portal-gallery","map-viewer":"portal-map-viewer",notebooks:"portal-notebooks","scene-viewer":"portal-scene-viewer"};function Nn({capabilityId:e,navigate:t,buttonLabel:r}){let{routeKey:n}=t;switch(n){case"content":return{destinationType:"portal-content",hash:t.hash,queryParams:t.queryParams,...r?{buttonLabel:r}:{}};case"organization":return{destinationType:"portal-org",hash:t.hash,queryParams:t.queryParams,...r?{buttonLabel:r}:{}};case"groups":let{hash:s}=t;return s==="featured"?{destinationType:"portal-groups",hash:"featured",...r?{buttonLabel:r}:{}}:s==="organization"?{destinationType:"portal-groups",hash:"organization",...r?{buttonLabel:r}:{}}:e==="portal-groups-my"?{destinationType:"portal-groups",hash:"my",...r?{buttonLabel:r}:{}}:{destinationType:"portal-groups",...r?{buttonLabel:r}:{}};case"gallery":case"map-viewer":case"notebooks":case"scene-viewer":return{destinationType:fy[n],...r?{buttonLabel:r}:{}};default:return}}var id=bi(async({groupTitle:e},t)=>{let r=e.trim();if(!r)return null;let n=t?.configurable?.context;lr(n);try{return(await Yc(n.portal,{query:`title:${r}`,num:1}))?.results[0]?.id||null}catch(s){return console.error("Error searching for portal group by title:",s),null}},{name:"resolvePortalGroupIdByTitle",description:"Resolves an ArcGIS Portal group title to the best-match group id. Use this when a user references a group by title instead of an explicit group id.",schema:w.object({groupTitle:w.string().describe("The portal group title to resolve to a group id.")})}),od=bi(async({itemTitle:e},t)=>{let r=e.trim();if(!r)return null;let n=t?.configurable?.context;lr(n);let{result:s,error:i}=await Zc(n.portal,r,{num:1});return i&&console.error("Error searching for portal item by title:",i),s?.results[0]?.id||null},{name:"resolvePortalItemIdByTitle",description:'Resolves an ArcGIS Portal item title to the best-match item id. Use this when a user references an item by title (including hash mentions like #title or #"title with spaces") instead of an explicit item id.',schema:w.object({itemTitle:w.string().describe("The portal item title to resolve to an item id.")})});function Mn(e,t="#"){let r=e.match(new RegExp(`\\${t}"([^"]+)"`,"u"));if(r?.[1])return r[1].trim();let n=e.match(new RegExp(`\\${t}([^\\s"']+)`,"u"));return n?.[1]?n[1].trim():null}function gy(e){let t=Pn(e).flatMap(r=>{let n=r,s=e[r],i=[n,{description:s.description,hints:s.hints}],o=s.sections?Pn(s.sections).map(a=>{let c=s.sections?.[a];return[`${n}-${a}`,c]}):[];return[i,...o]});return Object.fromEntries(t)}function yy(e){return Object.entries(e).map(([t,{description:r,hints:n}])=>` - ${t}: ${r} (hints: ${n.join(", ")})`).join(`
|
|
212
|
+
`)}var _y={"portal-content":{description:"The main content page of the portal.",hints:["My content","Content"]},"portal-content-favorites":{description:"The Favorites view under Content in the portal.",hints:["My favorites","Favorites","Content favorites"]},"portal-content-group":{description:"The Groups view under Content in the portal.",hints:["Content groups","Group content","My groups content"]},"portal-content-living-atlas":{description:"The Living Atlas view under Content in the portal.",hints:["Living Atlas","Content living atlas"]},"portal-content-organization":{description:"The Organization view under Content in the portal.",hints:["Organization content","Content organization","My organization content"]},"portal-gallery":{description:"The gallery page of the portal.",hints:["Gallery","Featured content","Maps and apps"]},"portal-group":{description:"A specific group page in the portal.",hints:["Group","group page"]},"portal-groups":{description:"The groups listing page of the portal.",hints:["Groups","Browse groups"]},"portal-groups-featured":{description:"The Featured groups view under Groups in the portal.",hints:["Featured groups","Groups featured"]},"portal-groups-my":{description:"The My groups view under Groups in the portal.",hints:["My groups","Groups my"]},"portal-groups-organization":{description:"The Organization groups view under Groups in the portal.",hints:["Organization groups","Groups organization","My organization groups"]},"portal-item":{description:"A specific item page in the portal.",hints:["Item","item page"]},"portal-map-viewer":{description:"The Map Viewer app of the portal.",hints:["Map Viewer","Map","Open map"]},"portal-notebooks":{description:"The Notebooks home page of the portal.",hints:["Notebooks","Notebook home","My notebooks"]},"portal-scene-viewer":{description:"The Scene Viewer app of the portal.",hints:["Scene Viewer","Scene","3D scene"]},"portal-org-security":{description:"The Organization > Settings > Security page of the portal.",hints:["Organization settings","Security","Organization > Settings > Security"],sections:{"custom-sign-in":{description:"The Organization > Settings > Security > Custom Sign In section of the portal.",hints:["Custom Sign In","Organization > Settings > Security > Custom Sign In"]},logins:{description:"The Organization > Settings > Security > Logins section of the portal.",hints:["Logins","Organization > Settings > Security > Logins"]},"change-login-provider":{description:"The Organization > Settings > Security > Change Login Provider section of the portal.",hints:["Change Login Provider","Organization > Settings > Security > Change Login Provider"]},"multifactor-auth":{description:"The Organization > Settings > Security > Multifactor Authentication section of the portal.",hints:["MFA","Multifactor Authentication","Organization > Settings > Security > MFA"]},"multifactor-enforcement":{description:"The Organization > Settings > Security > Enforce MFA section of the portal.",hints:["Enforce MFA","MFA enforcement","Organization > Settings > Security > Enforce MFA"]},"multifactor-designated-admins":{description:"The Organization > Settings > Security > Designated Admins section of the portal.",hints:["Designated admins","MFA designated admins","Organization > Settings > Security > Designated Admins"]}}},"portal-content-new-item":{description:"The Content page with the New Item flow opened.",hints:["New item","Create new item","Content > My Content > New Item"],sections:{"feature-layer":{description:"The Content page with New Item flow set to Feature Layer as the starting step.",hints:["Feature Layer","New Feature Layer","Content > My Content > New Item > Feature Layer"]},"developer-credentials":{description:"The Content page with New Item flow set to Developer Credentials as the starting step.",hints:["Developer Credentials","New developer credentials","Content > My Content > New Item > Developer Credentials"]},url:{description:"The Content page with New Item flow set to URL as the starting step for adding a URL-based item, such as a service endpoint.",hints:["URL item","Add item from URL","Register service URL","Content > My Content > New Item > URL"]},application:{description:"The Content page with New Item flow set to Application as the starting step for creating an application item in content.",hints:["Application item","Create application item","Register app item","Content > My Content > New Item > Application"]},"tile-layer":{description:"The Content page with New Item flow set to Tile Layer as the starting step for publishing a hosted tile layer.",hints:["Tile Layer","Create hosted tile layer","Publish tile layer","Content > My Content > New Item > Tile Layer"]},"scene-layer":{description:"The Content page with New Item flow set to Scene Layer as the starting step for publishing a hosted scene layer.",hints:["Scene Layer","Create hosted scene layer","Publish scene layer","Content > My Content > New Item > Scene Layer"]},locator:{description:"The Content page with New Item flow set to Locator as the starting step for creating or publishing a locator used for geocoding.",hints:["Locator","Create locator","Publish locator","Content > My Content > New Item > Locator"]},"data-store":{description:"The Content page with New Item flow set to Data Store as the starting step for registering a data store connection.",hints:["Data Store","Register data store","Data store connection","Content > My Content > New Item > Data Store"]}}}},ad=gy(_y),wy=Pn(ad),by=yy(ad),vy=`
|
|
213
|
+
You decide whether the assistant response should include a navigation action to ArcGIS Portal.
|
|
214
|
+
|
|
215
|
+
Given the user question and assistant response:
|
|
216
|
+
- Decide if a navigation action would help the user complete the task.
|
|
217
|
+
- If yes, choose one destinationType:
|
|
218
|
+
${by}
|
|
219
|
+
|
|
220
|
+
Rules:
|
|
221
|
+
- Only suggest navigation when you are highly confident the destination will help complete the user's task.
|
|
222
|
+
- If confidence is below 0.85, set shouldSuggestNavigation=false and destinationType=none.
|
|
223
|
+
- If there is no clear destination from the allowed types, set shouldSuggestNavigation=false and destinationType=none.
|
|
224
|
+
- If no navigation is useful, set shouldSuggestNavigation=false and destinationType=none.
|
|
225
|
+
- Prefer the most specific destination that is clearly supported by the question and response.
|
|
226
|
+
- Use entity-level destinations over collection/root destinations when both could apply and the entity target is explicit.
|
|
227
|
+
- Use collection/root destinations only for generic browsing intent with no specific entity target.
|
|
228
|
+
- If a chosen destination requires parameters, include all required parameters.
|
|
229
|
+
- If required parameters are missing or uncertain, set shouldSuggestNavigation=false and destinationType=none.
|
|
230
|
+
- Do not invent required parameters.
|
|
231
|
+
- Always include a confidence score from 0 to 1 in the output.
|
|
232
|
+
- Confidence means confidence that a navigation suggestion should be shown to the user.
|
|
233
|
+
- If shouldSuggestNavigation=false or destinationType=none, confidence must be <= 0.5.
|
|
234
|
+
- Use confidence >= 0.85 only when shouldSuggestNavigation=true and destinationType is not none.
|
|
235
|
+
|
|
236
|
+
User question:
|
|
237
|
+
{question}
|
|
238
|
+
|
|
239
|
+
Assistant response:
|
|
240
|
+
{response}
|
|
241
|
+
`,Lh=w.object({shouldSuggestNavigation:w.boolean().default(!1),destinationType:w.enum(["none",...wy]).default("none"),itemId:w.string().default(""),groupId:w.string().default(""),confidence:w.number().min(0).max(1).default(0)}),Fh;async function Sy(){return Fh??=Lr({modelTier:"fast"}),await Fh}var Cy=async(e,t)=>{let r=performance.now();try{await J({text:"Extracting navigation intent...",agentName:"doc-assistant"},t);let n=e.outputMessage.trim();if(!n)return{};let s=at(e.agentExecutionContext.messages).trim(),i=await Te.fromTemplate(vy).format({question:s,response:n}),o=(await Sy()).withStructuredOutput(Lh),a=Lh.parse(await o.invoke(i));if(!a.shouldSuggestNavigation||a.destinationType==="none")return{};if(a.destinationType==="portal-item"&&!a.itemId){let l=Mn(s,"#");l&&(a.itemId=await od.invoke({itemTitle:l},t)??"")}if(a.destinationType==="portal-group"&&!a.groupId){let l=Mn(s,"$")??Mn(s,"#");l&&(a.groupId=await id.invoke({groupTitle:l},t)??"")}let c=ky(a);return c?(await ii(c,t),{}):{}}finally{console.info("[arcgis-portal-ai-assistant] node timing",{agent:"portal-doc-assistant",node:"extractNavigationIntent",durationMs:Number((performance.now()-r).toFixed(1))})}};function ky({destinationType:e,itemId:t,groupId:r}){let n=cr().find(s=>s.id===e);if(n)return Nn({navigate:n.resolutions.navigate,buttonLabel:n.buttonLabel,capabilityId:n.id});switch(e){case"portal-gallery":case"portal-map-viewer":case"portal-notebooks":case"portal-scene-viewer":return{destinationType:e};case"portal-item":return t?{destinationType:e,itemId:t}:void 0;case"portal-group":return r?{destinationType:e,groupId:r}:void 0;case"none":return;default:switch(e){case"portal-groups":return Nn({navigate:{routeKey:"groups"}});case"portal-content-favorites":case"portal-content-group":case"portal-content-living-atlas":case"portal-content-organization":return Nn({navigate:{routeKey:"content",hash:(()=>{switch(e){case"portal-content-favorites":return"favorites";case"portal-content-group":return"group";case"portal-content-living-atlas":return"living-atlas";case"portal-content-organization":return"org";default:return Ur(e)}})()}});case"portal-org-security":return Nn({navigate:{routeKey:"organization",hash:"settings",queryParams:{tab:"security"}}});default:return}}}var cd=B.Root({...ar()}),Ey=()=>new Ft(cd).addNode("answerDocQuestion",uy).addNode("extractNavigationIntent",Cy).addEdge(U,"answerDocQuestion").addEdge("answerDocQuestion","extractNavigationIntent").addEdge("extractNavigationIntent",L),xy=String.raw`- **portal-doc-assistant** - General ArcGIS documentation and Portal help assistant:
|
|
242
|
+
- answers general ArcGIS, Portal, Enterprise, and JavaScript SDK questions
|
|
243
|
+
- acts as a fallback when specialized agents are not applicable
|
|
244
|
+
`,Iy={id:"portal-doc-assistant",name:"Portal Doc Assistant",description:xy,createGraph:Ey,workspace:cd},Ty=()=>({latestGroupId:null,memory:{}}),oi=e=>{let t=e?.agentExecutionContext.sharedState.portalGroupSummaryMemory?.value;return t?{latestGroupId:t.latestGroupId,memory:t.memory}:Ty()},ld=`
|
|
245
|
+
Shared markdown formatting rules:
|
|
246
|
+
- Use clear markdown headings (##) to separate sections.
|
|
247
|
+
- Use concise bullet points for lists of facts, counts, or signals.
|
|
248
|
+
- Emphasize key metrics with bold labels (for example: **Recent items:** 4).
|
|
249
|
+
- Keep wording direct and analytical; avoid filler language but make sure the language is friendly.
|
|
250
|
+
- Do not include raw internal IDs unless explicitly requested.
|
|
251
|
+
`,Ay=`
|
|
252
|
+
You answer follow-up questions about ArcGIS group analytics.
|
|
253
|
+
|
|
254
|
+
${ld}
|
|
255
|
+
|
|
256
|
+
Ground your answer in the provided group analytics summary and context.
|
|
257
|
+
If the answer is not available from the provided context, state that clearly and suggest what to check next.
|
|
258
|
+
|
|
259
|
+
Response rules:
|
|
260
|
+
- Reply in concise markdown with this section structure:
|
|
261
|
+
1) ## Answer
|
|
262
|
+
2) ## Evidence
|
|
263
|
+
3) ## Gaps (only when data is missing)
|
|
264
|
+
- Keep the answer focused on the follow-up question.
|
|
265
|
+
- Do not include internal identifiers.
|
|
266
|
+
- Mark isRelevant=false when the question is not about this group or cannot be grounded in this group context.
|
|
267
|
+
|
|
268
|
+
Group analytics summary:
|
|
269
|
+
{summary}
|
|
270
|
+
|
|
271
|
+
Group full context:
|
|
272
|
+
{fullContext}
|
|
273
|
+
|
|
274
|
+
Question:
|
|
275
|
+
{question}
|
|
276
|
+
`,Ny=async(e,t)=>{await J({text:"Answering group follow-up...",agentName:"group-analytics"},t);let r=oi(e),n=e.groupSummaryGroupId??r.latestGroupId,s=n?r.memory[n]:void 0,i=e.groupSummaryQuestion||at(e.agentExecutionContext.messages);return s?{status:"success",outputMessage:(await Be({promptText:Ay,schema:My,modelTier:"default",inputVariables:{summary:s.summary,question:i,fullContext:JSON.stringify(s.fullContext)}})).answer}:{status:"success",outputMessage:"I do not have group analytics context yet. Ask me to analyze a group first with analyze group <group id>."}},My=w.object({answer:w.string(),isRelevant:w.boolean()}),Py=`
|
|
277
|
+
Classify the user's request for ArcGIS Portal group analytics.
|
|
278
|
+
|
|
279
|
+
Rules:
|
|
280
|
+
- intent="summarize" only when the user explicitly asks to summarize, analyze, overview, or recap a group.
|
|
281
|
+
- intent="followUp" for follow-up questions about a previously analyzed group.
|
|
282
|
+
- intent="navigation" when the user asks to open, go to, navigate to, or view the group page.
|
|
283
|
+
- intent="clarify" when intent or required group target is missing.
|
|
284
|
+
- groupId must be the final resolved group id.
|
|
285
|
+
- If request has explicit group id, set groupId directly.
|
|
286
|
+
- If request references group title (for example $title, $"title with spaces", or plain quoted group title), call resolvePortalGroupIdByTitle and set groupId to the tool result.
|
|
287
|
+
- Never return group titles in output fields.
|
|
288
|
+
- If intent is "followUp", set question to the user's full question/request text.
|
|
289
|
+
- If intent is "navigation", set question="".
|
|
290
|
+
- If intent is "summarize", set question="".
|
|
291
|
+
- If intent is "navigation" and no group is specified, leave groupId empty so the system can navigate to the groups listing page.
|
|
292
|
+
- If hasAnalyticsContext is true and the user asks about the same group context without an explicit summarize/analyze command, prefer "followUp".
|
|
293
|
+
|
|
294
|
+
Examples:
|
|
295
|
+
- "Analyze group 0123456789abcdef0123456789abcdef" => summarize, groupId="0123456789abcdef0123456789abcdef"
|
|
296
|
+
- "Analyze group $living atlas" => summarize, call resolvePortalGroupIdByTitle("living atlas") and set groupId to tool result
|
|
297
|
+
- "Analyze group $"living atlas basemaps"" => summarize, call resolvePortalGroupIdByTitle("living atlas basemaps") and set groupId to tool result
|
|
298
|
+
- "Is this group active?" with hasAnalyticsContext=true => followUp
|
|
299
|
+
|
|
300
|
+
hasAnalyticsContext:
|
|
301
|
+
{hasAnalyticsContext}
|
|
302
|
+
|
|
303
|
+
User message:
|
|
304
|
+
{userMessage}
|
|
305
|
+
`,Oy=async(e,t)=>{await J({text:"Analyzing group-analytics intent...",agentName:"group-analytics"},t);let r=at(e.agentExecutionContext.messages),n=!!oi(e).latestGroupId,s=await Te.fromTemplate(Py).format({userMessage:r,hasAnalyticsContext:String(n)}),i=(await Lr({modelTier:"fast"})).withStructuredOutput(Vh),o=Vh.parse(await i.invoke(s)),a=o.groupId;if((o.intent==="summarize"||o.intent==="navigation")&&!a){let d=Mn(r,"$");d&&(a=await id.invoke({groupTitle:d},t)??"")}let{intent:c,question:l}=o,u=c==="summarize"&&!a,p=c==="followUp"&&!(l??"").trim(),h=c==="clarify"||u||p;return{groupSummaryIntent:h?"clarify":c,groupSummaryGroupId:a||null,groupSummaryQuestion:l||"",status:"success",outputMessage:h?"Please clarify with a group id or title":""}},Vh=w.object({intent:w.enum(["summarize","followUp","navigation","clarify"]),groupId:w.string().default(""),question:w.string().default("")}),Ry=async(e,t)=>{let r=oi(e),n=e.groupSummaryGroupId??r.latestGroupId;return await J({text:"Preparing navigation...",agentName:"group-analytics"},t),await ii(n?{destinationType:"portal-group",groupId:n}:{destinationType:"portal-groups"},t),{status:"success"}};function ud({timestamp:e,now:t,windowMs:r}){return e?t-e<=r:!1}var Dy=720*60*60*1e3;function $y(e){let t=tl(e);return{id:e.id??"",title:e.title??"",description:e.description??"",snippet:e.snippet??"",access:e.access??null,owner:e.owner??"",tags:e.tags??[],created:e.created?.getTime(),modified:e.modified?.getTime(),isInvitationOnly:e.isInvitationOnly,sourceSignals:{capabilities:rl(e),membershipAccess:nl(e),isOpenData:sl(e),isDistributedCollaborationGroup:il(e),orgId:t.orgId,hiddenMembers:t.hiddenMembers,isViewOnly:t.isViewOnly,isReadOnly:t.isReadOnly,leavingDisallowed:t.leavingDisallowed}}}async function jy(e){let t={owner:e.owner??"",admins:[],users:[]};try{return await e.fetchMembers()}catch(r){return console.warn("Unable to fetch group members for analytics context",r),t}}function Ly(e){return e.map(t=>({id:t.id??"",title:t.title??"Untitled",type:t.type??"Unknown",owner:t.owner??"",created:t.created?.getTime(),modified:t.modified?.getTime()}))}function Fy(e,t){return e.filter(r=>r.modified?ud({timestamp:r.modified,now:t,windowMs:Dy}):!1)}function Vy(e){let t=new Map;for(let r of e)t.set(r.type,(t.get(r.type)??0)+1);return[...t.entries()].sort((r,n)=>n[1]-r[1]||r[0].localeCompare(n[0])).slice(0,6).map(([r,n])=>({type:r,count:n}))}async function Uy(e){let t=await e.queryItems({num:20,sortField:"modified",sortOrder:"desc"}),r=Ly(t.results),n=Date.now();return{total:t.total,topItems:r,recentlyModifiedItems:Fy(r,n),topItemTypes:Vy(r)}}async function Gy(e,t){if(!t)return{error:{code:"missingGroupId",message:"Group id is required."}};try{let r=(await e.queryGroups({query:`id:${t}`,num:1})).results[0];if(!r)return{error:{code:"groupNotFound",message:`No group found for id: ${t}`}};let n=$y(r),s=await jy(r),i=await Uy(r);return{result:{group:n,members:s,items:i}}}catch(r){return console.error("Error fetching portal group analytics context:",r),{error:{code:"unhandledError"}}}}var By=`
|
|
306
|
+
You summarize ArcGIS Portal groups based on structured context and deterministic activity signals.
|
|
307
|
+
|
|
308
|
+
${ld}
|
|
309
|
+
|
|
310
|
+
Output format requirements:
|
|
311
|
+
- Return concise markdown with clear sections in this order:
|
|
312
|
+
1) Overview
|
|
313
|
+
2) Activity
|
|
314
|
+
3) Members
|
|
315
|
+
4) Content Theme
|
|
316
|
+
5) Contribution Model
|
|
317
|
+
6) Unknowns / Data Gaps
|
|
318
|
+
- Keep total response about 180-280 words unless the user asked for extra detail.
|
|
319
|
+
- Avoid internal-only implementation details and do not expose raw IDs unless user explicitly asks.
|
|
320
|
+
|
|
321
|
+
Reasoning rules:
|
|
322
|
+
- Use deterministicSignals as the source of truth for active/recent status.
|
|
323
|
+
- If group description/snippet are empty, infer purpose from tags, item title patterns, and item type distribution.
|
|
324
|
+
- For members, report owner/admin/user counts when available; if unavailable due to permission scope, explicitly say so.
|
|
325
|
+
- For contribution model, use membershipAccess, capabilities, and sourceJSON flags to characterize collaboration vs distribution behavior.
|
|
326
|
+
- Be explicit when signals are heuristic or unavailable.
|
|
327
|
+
|
|
328
|
+
Follow-up prompt rules:
|
|
329
|
+
- Generate exactly 3 follow-up prompts.
|
|
330
|
+
- Write them as direct first-person user chat prompts that can be clicked and sent as-is.
|
|
331
|
+
- Do not write meta-questions such as "Would you like..." or "Do you want me to...".
|
|
332
|
+
- Keep each prompt short, specific, and actionable.
|
|
333
|
+
- Every prompt must be answerable using only the provided group context and deterministic signals.
|
|
334
|
+
- Do not require external data, navigation, or additional fetches.
|
|
335
|
+
- Tailor each prompt to this specific group's available signals (content mix, activity, members, and contribution model).
|
|
336
|
+
- Avoid repeating phrasing from prior prompts or using generic template wording.
|
|
337
|
+
- If a signal is unavailable (for example members), do not ask follow-ups that depend on that missing signal.
|
|
338
|
+
|
|
339
|
+
Group context:
|
|
340
|
+
{context}
|
|
341
|
+
|
|
342
|
+
Deterministic signals:
|
|
343
|
+
{deterministicSignals}
|
|
344
|
+
`,Hy=2160*60*60*1e3,qy=async(e,t)=>{let r=e.groupSummaryGroupId;if(!r)return{status:"success",outputMessage:'Please clarify with analyze group <group id>, analyze group $<title>, or analyze group $"<title with spaces>".'};await J({text:`Analyzing group ${r}...`,agentName:"group-analytics"},t);let n=t?.configurable?.context;lr(n);let{result:s,error:i}=await Gy(n.portal,r);if(i||!s)return await J({text:"Failed to fetch group context",agentName:"group-analytics"},t),{status:"success",outputMessage:"Unable to retrieve group context for analytics."};let{group:o,items:a}=s,c=Date.now(),l=o.modified,u=l?ud({timestamp:l,now:c,windowMs:Hy}):!1,p=a.recentlyModifiedItems.length,h=p>0,d=u||h,m=await Be({promptText:By,schema:zy,modelTier:"default",inputVariables:{context:JSON.stringify(s),deterministicSignals:JSON.stringify({isGroupActive:d,isGroupRecentlyModified:u,hasRecentlyAddedOrUpdatedContent:h,recentItemCount:p})}}),{followUpQuestions:f,summary:g}=m,y=oi(e),_={latestGroupId:r,memory:{...y.memory,[r]:{summary:g,followUpQuestions:f,fullContext:s}}};return f.length&&await Zs({type:"suggested-prompts",data:{prompts:f}},t),{status:"success",outputMessage:g,sharedStatePatch:{portalGroupSummaryMemory:{value:_}}}},zy=w.object({summary:w.string(),followUpQuestions:w.array(w.string()).default([])}),va=(e,t)=>t??e,pd=B.Root({...ar(),groupSummaryIntent:B({reducer:va,default:()=>"clarify"}),groupSummaryGroupId:B({reducer:va,default:()=>null}),groupSummaryQuestion:B({reducer:va,default:()=>""})}),Wy=()=>new Ft(pd).addNode("detectGroupSummaryIntent",Oy).addNode("summarizePortalGroup",qy).addNode("answerGroupSummaryFollowUp",Ny).addNode("suggestGroupSummaryNavigation",Ry).addEdge(U,"detectGroupSummaryIntent").addConditionalEdges("detectGroupSummaryIntent",e=>e.groupSummaryIntent==="summarize"?"summarizePortalGroup":e.groupSummaryIntent==="followUp"?"answerGroupSummaryFollowUp":e.groupSummaryIntent==="navigation"?"suggestGroupSummaryNavigation":L).addEdge("summarizePortalGroup",L).addEdge("answerGroupSummaryFollowUp",L).addEdge("suggestGroupSummaryNavigation",L),Ky=String.raw`- **portal-group-analytics** - Portal group analytics assistant:
|
|
345
|
+
- summarizes ArcGIS portal groups from group context and sourceJSON details
|
|
346
|
+
- answers follow-up questions grounded in the summarized group
|
|
347
|
+
- suggests navigation to groups when relevant
|
|
348
|
+
`,Jy={id:"portal-group-analytics",name:"Portal Group Analytics",description:Ky,createGraph:Wy,workspace:pd},Yy=()=>({latestItemId:null,memory:{}}),Ta=e=>{let t=e?.agentExecutionContext.sharedState.portalItemAnalyticsSummaryMemory?.value;return t?{latestItemId:t.latestItemId,memory:t.memory}:Yy()},Uh=w.object({intent:w.enum(["summarize","followUp","clarify"]),itemId:w.string().default(""),question:w.string().default("")}),Xy=w.object({summary:w.string(),followUpQuestions:w.array(w.string()).default([])}),Qy=w.object({answer:w.string(),isRelevant:w.boolean()}),Zy=`
|
|
349
|
+
You answer follow-up questions about an ArcGIS item.
|
|
350
|
+
|
|
351
|
+
Ground your answer in the provided item context.
|
|
352
|
+
If the answer is not available from the provided context, state that clearly and suggest what to check next.
|
|
353
|
+
|
|
354
|
+
Response rules:
|
|
355
|
+
- Reply in concise markdown.
|
|
356
|
+
- Keep the answer focused on the follow-up question.
|
|
357
|
+
- Do not include internal identifiers.
|
|
358
|
+
- Mark isRelevant=false when the question is not about this item or cannot be grounded in this item context.
|
|
359
|
+
|
|
360
|
+
Item summary:
|
|
361
|
+
{summary}
|
|
362
|
+
|
|
363
|
+
Item full context
|
|
364
|
+
{fullContext}
|
|
365
|
+
|
|
366
|
+
Question:
|
|
367
|
+
{question}
|
|
368
|
+
`,e_=async(e,t)=>{await J({text:"Answering follow-up...",agentName:"analytics"},t);let r=Ta(e),n=e.analyticsItemId??r.latestItemId,s=n?r.memory[n]:void 0,i=e.analyticsQuestion||at(e.agentExecutionContext.messages);return s?{status:"success",outputMessage:(await Be({promptText:Zy,schema:Qy,modelTier:"default",inputVariables:{summary:s.summary,question:i,fullContext:JSON.stringify(s.fullContext)}})).answer}:{status:"success",outputMessage:"I don't have enough information yet. Please ask me to summarize the item first using summarize item <item id>."}},t_=`
|
|
369
|
+
Classify the user analytics request.
|
|
370
|
+
|
|
371
|
+
Rules:
|
|
372
|
+
- intent="summarize" only when the user explicitly asks to summarize/overview/recap an item.
|
|
373
|
+
- intent="followUp" for analytical questions about item details, including schema/fields/attributes/layers.
|
|
374
|
+
- intent="clarify" when neither summarize nor follow-up intent is clear.
|
|
375
|
+
- itemId must be the final resolved item id.
|
|
376
|
+
- If request has explicit item id, set itemId directly.
|
|
377
|
+
- If request references item title (for example #title, #"title with spaces", or plain quoted title), call resolvePortalItemIdByTitle and set itemId to the returned value.
|
|
378
|
+
- Never return item titles in output fields.
|
|
379
|
+
- If intent is "followUp", set question to the user's full question/request text.
|
|
380
|
+
- If intent is "summarize", set question="".
|
|
381
|
+
- When user asks to show/list/explain fields, schema, attributes, columns, or layer details, classify as "followUp" unless they explicitly request a summary.
|
|
382
|
+
- If hasSummaryContext is true, prefer "followUp" for detail-oriented requests that do not explicitly ask to summarize.
|
|
383
|
+
|
|
384
|
+
Examples:
|
|
385
|
+
- "Summarize item 0123456789abcdef0123456789abcdef" => summarize, itemId="0123456789abcdef0123456789abcdef"
|
|
386
|
+
- "Summarize item #california" => summarize, call resolvePortalItemIdByTitle("california") and set itemId to tool result
|
|
387
|
+
- "Summarize item #"california farmland"" => summarize, call resolvePortalItemIdByTitle("california farmland") and set itemId to tool result
|
|
388
|
+
- "Show the layer's available fields" => followUp
|
|
389
|
+
- "List attributes and explain what status means" => followUp
|
|
390
|
+
- "What fields are available?" with hasSummaryContext=true => followUp
|
|
391
|
+
- "Give me an overview of item 0123456789abcdef0123456789abcdef" => summarize
|
|
392
|
+
|
|
393
|
+
hasSummaryContext:
|
|
394
|
+
{hasSummaryContext}
|
|
395
|
+
|
|
396
|
+
User message:
|
|
397
|
+
{userMessage}
|
|
398
|
+
`,r_=async(e,t)=>{await J({text:"Analyzing intent...",agentName:"analytics"},t);let r=at(e.agentExecutionContext.messages),n=!!Ta(e).latestItemId,s=await Te.fromTemplate(t_).format({userMessage:r,hasSummaryContext:String(n)}),i=(await Lr({modelTier:"fast"})).withStructuredOutput(Uh),o=Uh.parse(await i.invoke(s)),a=o.itemId;if(o.intent==="summarize"&&!a){let p=Mn(r,"#");p&&(a=await od.invoke({itemTitle:p},t)??"")}let{intent:c,question:l}=o,u=c==="clarify"||c==="summarize"&&!a||c==="followUp"&&!l;return{agentExecutionContext:{...e.agentExecutionContext},analyticsIntent:u?"clarify":c,analyticsItemId:a||null,analyticsQuestion:l||"",status:"success",outputMessage:u?'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".':""}},n_=`
|
|
399
|
+
You are a item summary tool for ArcGIS. Your job is to summarize an item's info based on the provided context.
|
|
400
|
+
Summary rules:
|
|
401
|
+
- The summary should be concise markdown, make sure to format the output nicely so it's easy to read.
|
|
402
|
+
- Target length: 80-150 words.
|
|
403
|
+
- Provide one short descriptive paragraph.
|
|
404
|
+
- Also propose 3 concise follow-up questions grounded in the item summary.
|
|
405
|
+
- Keep follow-up questions specific and actionable.
|
|
406
|
+
Follow-up questions rules:
|
|
407
|
+
- These questions should be in the format of a prompt that the user can click on.
|
|
408
|
+
- Make sure the questions are relevant to the item summary and that you can answer based solely on the provided context.
|
|
409
|
+
Do not include internal identifiers.
|
|
410
|
+
If the user asks for a detailed summary, you may expand the response up to 300 words.
|
|
411
|
+
Item context:
|
|
412
|
+
{context}
|
|
413
|
+
`,s_=async(e,t)=>{let r=e.analyticsItemId;if(!r)return{status:"success",outputMessage:'Please clarify with summarize item <item id>, summarize item #<title>, or summarize item #"<title with spaces>".'};await J({text:`Summarizing item ${r}...`,agentName:"analytics"},t);let n=t?.configurable?.context;lr(n);let{portal:s,user:i}=n,{result:o,error:a}=await el(i,s,r);if(a||!o)return await J({text:"Failed to get item context for summarization",agentName:"analytics"},t),{status:"success",outputMessage:"Unable to retrieve item context for summarization."};let{context:c}=o,l=await Be({promptText:n_,schema:Xy,modelTier:"default",inputVariables:{context:JSON.stringify(c)}}),{followUpQuestions:u,summary:p}=l,h=Ta(e),d={latestItemId:r,memory:{...h.memory,[r]:{summary:p,followUpQuestions:u,fullContext:c}}};return u.length&&await Zs({type:"suggested-prompts",data:{prompts:u}},t),{status:"success",outputMessage:p,sharedStatePatch:{portalItemAnalyticsSummaryMemory:{value:d}}}},Sa=(e,t)=>t??e,hd=B.Root({...ar(),analyticsIntent:B({reducer:Sa,default:()=>"clarify"}),analyticsItemId:B({reducer:Sa,default:()=>null}),analyticsQuestion:B({reducer:Sa,default:()=>""})}),i_=()=>new Ft(hd).addNode("detectAnalyticsIntent",r_).addNode("summarizePortalItem",s_).addNode("answerAnalyticsFollowUp",e_).addEdge(U,"detectAnalyticsIntent").addConditionalEdges("detectAnalyticsIntent",e=>e.analyticsIntent==="summarize"?"summarizePortalItem":e.analyticsIntent==="followUp"?"answerAnalyticsFollowUp":L).addEdge("summarizePortalItem",L).addEdge("answerAnalyticsFollowUp",L),o_=String.raw`- **portal-item-analytics** - Portal item analytics assistant:
|
|
414
|
+
- answers questions about one specific ArcGIS portal item when item context is present
|
|
415
|
+
- summarizes item details, metadata, and context grounded in that item
|
|
416
|
+
- suggests follow-up prompts grounded in the same item
|
|
417
|
+
- use for item-specific requests, not for gallery browsing, featured content, or opening Map Viewer
|
|
418
|
+
`,a_={id:"portal-item-analytics",name:"Portal Item Analytics",description:o_,createGraph:i_,workspace:hd},c_=/^(?:take me to|navigate to|go to|show me|open)\s+(?:the\s+)?/u;function si(e){return e.toLowerCase().replace(/[^a-z0-9]+/gu," ").trim().replace(c_,"").trim()}var l_=w.object({capabilityIds:w.array(w.string()).default([]),confidence:w.number().min(0).max(1).default(0),reason:w.string().default("")}),Gh=.8,u_=String.raw`You select Portal navigation capabilities for a user's request.
|
|
419
|
+
|
|
420
|
+
Select only capability IDs from the supplied candidates. Return an empty array when none fit.
|
|
421
|
+
A named surface is required: do not select a capability on another Portal surface.
|
|
422
|
+
Retrieval scores are hints only, not ground truth.
|
|
423
|
+
|
|
424
|
+
User request:
|
|
425
|
+
{userRequest}
|
|
426
|
+
|
|
427
|
+
Candidates:
|
|
428
|
+
{candidates}`,p_=async(e,t)=>{if(e.outputMessage||e.targets.length===0)return{};let r=at(e.agentExecutionContext.messages).trim(),n=h_(r,e);if(n.length===1)return await J({text:`Selected navigation capability by exact match: ${n[0]}`,agentName:"navigation"},t),console.info("[arcgis-portal-ai-assistant] navigation capability selection:",{method:"exact-match",request:r,selectedCapabilityIds:n}),{chosenCapabilityIds:n};await J({text:"Choosing a navigation destination...",agentName:"navigation"},t);let s=JSON.stringify(e.targets.map(({capability:i,keywordScore:o,semanticScore:a})=>({id:i.id,title:i.title,description:i.description,route:i.resolutions.navigate,keywordScore:o,semanticScore:a})));try{let i=await Be({promptText:u_,schema:l_,modelTier:"fast",inputVariables:{candidates:s,userRequest:r}}),o=new Set(e.targets.map(({capability:c})=>c.id)),a=i.capabilityIds.filter(c=>o.has(c));return await J({text:`Navigation selection: ${a.join(", ")||"none"} (confidence: ${i.confidence.toFixed(2)}, reason: ${i.reason})`,agentName:"navigation"},t),console.info("[arcgis-portal-ai-assistant] navigation capability selection:",{confidence:i.confidence,method:"structured-model",reason:i.reason,request:r,selectedCapabilityIds:a}),a.length===0?{chosenCapabilityIds:[],status:"failed",summary:"Navigation selection found no matching capability; defer to the Portal Doc Assistant."}:i.confidence<Gh?{chosenCapabilityIds:[],status:"failed",summary:`Navigation selection confidence ${i.confidence} is below the required ${Gh}; defer to the Portal Doc Assistant.`}:{chosenCapabilityIds:a}}catch{return await J({text:"Navigation selection model unavailable; using retrieval order.",agentName:"navigation"},t),console.info("[arcgis-portal-ai-assistant] navigation capability selection:",{method:"structured-model-unavailable",request:r,selectedCapabilityIds:[]}),{chosenCapabilityIds:[]}}};function h_(e,t){let r=si(e);return t.targets.filter(({capability:n})=>[n.title,...n.hints].some(s=>si(s)===r)).map(({capability:n})=>n.id)}var dd=new Set(["1d","7d","14d","30d","3m","6m"]),d_=w.object({period:w.string(),startTime:w.string(),endTime:w.string()}),m_=String.raw`Extract temporal filters for an ArcGIS storage-credits query.
|
|
429
|
+
|
|
430
|
+
Return JSON only with these optional string fields:
|
|
431
|
+
- period
|
|
432
|
+
- startTime
|
|
433
|
+
- endTime
|
|
434
|
+
|
|
435
|
+
Rules:
|
|
436
|
+
- period must use <integer><unit> with unit in d,w,m (examples: 7d, 2w, 3m).
|
|
437
|
+
- If the request is a relative range and period can be determined, always include period.
|
|
438
|
+
- For "last quarter" or "previous quarter", use calendar-quarter boundaries and include period as 3m with both startTime and endTime.
|
|
439
|
+
- For "last quarter" or "previous quarter", endTime must be the UTC end of the previous quarter, not "now".
|
|
440
|
+
- If period matches one of these supported periods and the range ends today, period alone is sufficient:
|
|
441
|
+
1d, 7d, 14d, 30d, 3m, 6m.
|
|
442
|
+
- If the request implies a range not supported as period (for example 2m or 10d), include startTime and endTime.
|
|
443
|
+
- For custom date ranges (for example "last december"), provide startTime and endTime.
|
|
444
|
+
- startTime and endTime must be epoch milliseconds as strings.
|
|
445
|
+
- If the end of range is "now", set endTime to {nowEpochMs}.
|
|
446
|
+
- If temporal intent is unclear, return empty strings for all fields.
|
|
447
|
+
|
|
448
|
+
Now UTC:
|
|
449
|
+
- ISO: {nowIso}
|
|
450
|
+
- Epoch ms: {nowEpochMs}
|
|
451
|
+
|
|
452
|
+
User request:
|
|
453
|
+
{userRequest}`;async function f_(e,t=new Date){let r=e.trim();if(!r)return{};try{let n=await Be({promptText:m_,schema:d_,modelTier:"fast",inputVariables:{nowEpochMs:String(t.getTime()),nowIso:t.toISOString(),userRequest:r}});return g_(n,t)}catch(n){return console.error(n),{}}}function g_(e,t=new Date){let r=Bh(e.startTime),n=Bh(e.endTime),s=y_(e.period);if(s){if(r!==void 0&&n!==void 0&&r<n)return{period:s,startTime:String(r),endTime:String(n)};let i=dd.has(s);if(!i||n!==void 0&&!w_(n,t.getTime())){let o=n??t.getTime(),a=__(s,new Date(o));if(a!==void 0)return{period:s,startTime:String(a),endTime:String(o)}}return i?{period:s,...r!==void 0?{startTime:String(r)}:{},...n!==void 0?{endTime:String(n)}:{}}:{period:s}}return r!==void 0&&n!==void 0&&r<n?{startTime:String(r),endTime:String(n)}:r!==void 0?{startTime:String(r),endTime:String(t.getTime())}:{}}function y_(e){let t=e?.trim().match(/^(\d+)\s*([dwm])$/iu);if(!t)return;let r=Number.parseInt(t[1],10);if(!Number.isFinite(r)||r<=0)return;let n=t[2].toLowerCase();if(n==="w"){let s=r*7;if(dd.has(`${s}d`))return`${s}d`}return`${r}${n}`}function __(e,t){let r=e.match(/^(\d+)([dwm])$/u);if(!r)return;let n=Number.parseInt(r[1],10);if(!Number.isFinite(n)||n<=0)return;let s=r[2];if(s==="d")return t.getTime()-n*24*60*60*1e3;if(s==="w")return t.getTime()-n*7*24*60*60*1e3;let i=new Date(t.getTime());return i.setUTCMonth(i.getUTCMonth()-n),i.getTime()}function Bh(e){if(!e)return;let t=Number.parseInt(e,10);if(!(!Number.isFinite(t)||t<=0))return t}function w_(e,t){let r=new Date(e),n=new Date(t);return r.getUTCFullYear()===n.getUTCFullYear()&&r.getUTCMonth()===n.getUTCMonth()&&r.getUTCDate()===n.getUTCDate()}async function b_(e,t,r,n){let s=cr().find(a=>a.id===e);if(!s)return;let i=s.resolutions.navigate,o=await S_(i.routeKey==="group"?v_(s.buttonLabel,i,n):Nn({navigate:i,buttonLabel:s.buttonLabel,capabilityId:s.id}),r);return o&&k_(o,t)?{capability:s,target:o}:void 0}function v_(e,t,r){let n=r?.trim();return n?{destinationType:"portal-group",groupId:n,...t.hash?{hash:t.hash}:{},...t.queryParams?{queryParams:t.queryParams}:{},...e?{buttonLabel:e}:{}}:void 0}async function S_(e,t){if(!e||!t||!C_(e))return e;let r=await f_(t);if(!r.period&&!r.startTime&&!r.endTime)return e;let n={...e.queryParams??{},...r.period?{period:r.period}:{},...r.startTime?{startTime:r.startTime}:{},...r.endTime?{endTime:r.endTime}:{}};return{...e,queryParams:n}}function C_(e){return e.destinationType==="portal-org"&&e.hash==="status"}function k_(e,t){return!t||!!t[e.destinationType]}function Hh(e){return e.match(/\b[a-f0-9]{32}\b/iu)?.[0]}var qh="navigation",zh="provideGroupId",E_=async(e,t)=>{if(e.outputMessage||e.status==="failed")return{};let r=e.targets.find(({capability:o})=>e.chosenCapabilityIds.includes(o.id))??e.targets[0];if(!r)return{outputMessage:"I couldn't find a matching Portal page. Try asking to open your content, groups, or organization settings.",sharedStatePatch:{navLastAnsweredRequest:{value:Wh(e)}},status:"success",summary:"Navigation could not find a matching capability; route another agent if appropriate."};let n=Wh(e),s=x_(r.capability.resolutions.navigate,n,t),i=await b_(r.capability.id,void 0,n,s);return i?(await J({text:"Preparing navigation...",agentName:"navigation"},t),await ii(i.target,t),{outputMessage:e.chosenCapabilityIds.length?r.capability.description:`The closest place to start is ${r.capability.title}. Click the button below to open it.`,status:"success",summary:`Navigation suggested ${r.capability.id}${e.retrievalDegraded?" using keyword-only retrieval":""}.`,sharedStatePatch:{navLastAnsweredRequest:{value:n}}}):(console.warn(`Navigation capability ${r.capability.id} was not found in the resolver.`),{outputMessage:"I found a possible destination, but couldn't resolve a valid Portal navigation target. Try asking to open your content, groups, or organization settings.",status:"success",summary:`Navigation resolver could not map ${r.capability.id}.`,sharedStatePatch:{navLastAnsweredRequest:{value:n}}})};function Wh(e){return at(e.agentExecutionContext.messages)||e.agentExecutionContext.userRequest}function x_(e,t,r){if(e.routeKey!=="group")return;let n=Hh(t);if(n)return n;let s=I_(r);if(s?.agentId===qh&&s.id===zh){let o=typeof s.payload=="string"?Hh(s.payload):void 0;if(o)return o}let i={agentId:qh,id:zh,kind:"textInput",message:"Enter the group ID to open."};throw new At(i)}function I_(e){let t=e?.configurable;if(!t||typeof t!="object"||!("hitlResponse"in t))return;let r=t.hitlResponse;if(!r||typeof r!="object"||!("agentId"in r)||!("id"in r)||!("payload"in r))return;let{agentId:n,id:s,payload:i}=r;return typeof n=="string"&&typeof s=="string"?{agentId:n,id:s,payload:i}:void 0}async function md(e){return e.length===0?[]:(await xg.getDefault().load(),await Ah(e))}var T_=Object.freeze(Object.defineProperty({__proto__:null,generateEmbeddings:md},Symbol.toStringTag,{value:"Module"}));function A_(e){let t=[],r=`${e.title}. ${e.description}`;r.trim().length>0&&t.push({field:"summary",text:r});let n=e.hints;if(Array.isArray(n))for(let s of n)typeof s=="string"&&s.trim().length>0&&t.push({field:"hint",text:s});return t}var ri,Aa,ni=0;async function N_(e={}){let t=ni;return ri??=P_(e.embed??O_).then(r=>(t===ni&&(Aa=r),r)).catch(r=>{throw t===ni&&(ri=void 0),r}),await ri}function M_(){return Aa}function Kh(){ni+=1,Aa=void 0,ri=void 0}async function P_(e){let t=R_(),r=await e(t.map(n=>n.text));if(r.length!==t.length)throw new Error(`Expected ${t.length} vectors, got ${r.length}`);return t.map((n,s)=>({...n,vector:r[s]}))}async function O_(e){let{generateEmbeddings:t}=await Promise.resolve().then(()=>T_);return await t(e)}function R_(){return cr().flatMap(e=>A_(e).map(({field:t,text:r})=>({capabilityId:e.id,field:t,text:r})))}var Jh=1.2,Yh=.75,D_=60,$_=.65,Ca={description:1,hint:2,title:3},xa;function j_(){xa=void 0}async function L_(e,t={}){let r=G_(fd(e)),n=[],s=!1,i;if(e.trim()){let o=t.loadEmbeddings,a=M_();if(!o&&!a)s=!0,i="Capability embeddings are still loading.";else try{if(o){let[c,l]=await Promise.all([(t.embedQuery??Qh)(e),o()]);n=Xh(c,l)}else if(a){let c=await(t.embedQuery??Qh)(e);n=Xh(c,a)}}catch{s=!0,i="Semantic search is unavailable."}}return{degraded:s,...i?{degradedReason:i}:{},matches:H_(r,n,t.topN??5)}}function F_(){return xa??=V_(cr()),xa}function V_(e){let t=new Map,r=e.map(n=>{let s=new Map;ka(s,n.title,Ca.title),ka(s,n.description,Ca.description);for(let i of n.hints)ka(s,i,Ca.hint);for(let i of s.keys())t.set(i,(t.get(i)??0)+1);return{capability:n,length:U_(s),termFrequencies:s}});return{averageDocumentLength:r.length?r.reduce((n,s)=>n+s.length,0)/r.length:0,documentFrequency:t,documents:r}}function ka(e,t,r){for(let n of fd(t))e.set(n,(e.get(n)??0)+r)}function U_(e){return[...e.values()].reduce((t,r)=>t+r,0)}function fd(e){return e.toLowerCase().split(/[^a-z0-9]+/u).filter(Boolean)}function G_(e){let t=F_(),r=new Set(e),n=t.documents.length;return t.documents.map(({capability:s,length:i,termFrequencies:o})=>{let a=0;for(let c of r){let l=o.get(c),u=t.documentFrequency.get(c);if(!l||!u)continue;let p=Math.log(1+(n-u+.5)/(u+.5)),h=Jh*(1-Yh+Yh*(i/t.averageDocumentLength));a+=p*(l*(Jh+1)/(l+h))}return{capability:s,score:a}}).filter(({score:s})=>s>0).sort(gd)}function Xh(e,t){let r=new Map;for(let s of t){let i=B_(e,s.vector);if(i===void 0)continue;let o=r.get(s.capabilityId);(o===void 0||i>o)&&r.set(s.capabilityId,i)}let n=new Map(cr().map(s=>[s.id,s]));return[...r.entries()].flatMap(([s,i])=>{let o=n.get(s);return o&&i>=$_?[{capability:o,score:i}]:[]}).sort(gd)}function B_(e,t){if(e.length===0||e.length!==t.length)return;let r=0,n=0,s=0;for(let o=0;o<e.length;o+=1)r+=e[o]*t[o],n+=e[o]**2,s+=t[o]**2;let i=Math.sqrt(n)*Math.sqrt(s);return i===0?void 0:r/i}async function Qh(e){let[t]=await md([e]);if(!t)throw new Error("Expected one query embedding.");return t}function H_(e,t,r){let n=new Map;return Zh(n,e,"keyword"),Zh(n,t,"semantic"),[...n.values()].sort((s,i)=>i.score!==s.score?i.score-s.score:(i.semanticScore??0)!==(s.semanticScore??0)?(i.semanticScore??0)-(s.semanticScore??0):(i.keywordScore??0)!==(s.keywordScore??0)?(i.keywordScore??0)-(s.keywordScore??0):s.capability.id.localeCompare(i.capability.id)).slice(0,Math.max(0,r))}function Zh(e,t,r){for(let[n,{capability:s,score:i}]of t.entries()){let o=n+1,a=e.get(s.id)??{capability:s,score:0};a.score+=1/(D_+o),r==="keyword"?(a.keywordRank=o,a.keywordScore=i):(a.semanticRank=o,a.semanticScore=i),e.set(s.id,a)}}function gd(e,t){return t.score-e.score||e.capability.id.localeCompare(t.capability.id)}var q_=async(e,t)=>{await J({text:"Finding a place to navigate...",agentName:"navigation"},t);let r=at(e.agentExecutionContext.messages).trim();try{let n=await L_(r,{topN:5});return await J({text:`Navigation candidates: ${W_(n.matches)}`,agentName:"navigation"},t),console.table(n.matches.map(({capability:s,keywordRank:i,keywordScore:o,semanticRank:a,semanticScore:c,score:l})=>({capability:s.title,fusedScore:l,keywordRank:i,keywordScore:o,semanticRank:a,semanticScore:c}))),n.degradedReason&&console.info("[arcgis-portal-ai-assistant] navigation semantic search:",n.degradedReason),{chosenCapabilityIds:[],retrievalDegraded:n.degradedReason??"",targets:z_(r,n.matches)}}catch{return{chosenCapabilityIds:[],outputMessage:"I couldn't look up a Portal page right now. Please try again.",status:"failed",targets:[]}}};function z_(e,t){let r=si(e),n=t.filter(({capability:i})=>[i.title,...i.hints].some(o=>si(o)===r));if(n.length!==1)return t;let[s]=n;return[s,...t.filter(i=>i!==s)]}function W_(e){return e.map(({capability:t,keywordScore:r,semanticScore:n})=>`${t.title} (keyword: ${ed(r)}, semantic: ${ed(n)})`).join("; ")||"none"}function ed(e){return e?.toFixed(3)??"none"}var Ea=(e,t)=>t??e,yd=B.Root({...ar(),chosenCapabilityIds:B({reducer:Ea,default:()=>[]}),retrievalDegraded:B({reducer:Ea,default:()=>""}),targets:B({reducer:Ea,default:()=>[]})}),K_=()=>new Ft(yd).addNode("retrieveNavigationTargets",q_).addNode("chooseNavigationTargets",p_).addNode("respondWithNavigation",E_).addEdge(U,"retrieveNavigationTargets").addEdge("retrieveNavigationTargets","chooseNavigationTargets").addEdge("chooseNavigationTargets","respondWithNavigation").addEdge("respondWithNavigation",L);function J_(){return String.raw`- **Navigation** — Takes the user to the portal page or app that fulfills their request. Presenting the button COMPLETES the request — no follow-up step is needed.
|
|
454
|
+
|
|
455
|
+
Route here for **navigation intent** ("take me to the map viewer", "open content", "where is X?") and for **action intent** ("publish a scene layer", "create a web map", "share this item") — for an action, Navigation takes the user to the page where that workflow starts. Navigation searches the capability registry itself, so don't rule it out because a page isn't named here.
|
|
456
|
+
|
|
457
|
+
If Navigation just asked the user for a missing value (such as an item id), route the user's short follow-up answer — often just an id like "797f6c0d300a4ddc87a8ae14cd2eeb8e" — back here so it can finish.
|
|
458
|
+
|
|
459
|
+
Do NOT route here for:
|
|
460
|
+
- An action another agent actually performs — e.g. "create group" is EXECUTED by group agent. Route it here only when the user explicitly asks to navigate ("take me to create group")
|
|
461
|
+
- Requests that mix navigation with a question or explanation ("take me there and explain how") → use Help
|
|
462
|
+
|
|
463
|
+
Do not dispatch Navigation again for the same request in the same turn: once it has responded, the task is done.`}var Y_={id:"navigation",name:"Portal Navigation",get description(){return J_()},createGraph:K_,workspace:yd},X_=Pa`:host{height:100%;border-width:1px;border-style:solid;border-color:var(--calcite-color-border-3);display:block;width:100%;--tw-shadow: 0 1px 6px -1px rgba(0, 0, 0, .16), 0 1px 2px -1px rgba(0, 0, 0, .08);--tw-shadow-colored: 0 1px 6px -1px var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.chat-entry{display:flex;flex-direction:column;gap:.75rem;width:100%}.chat-actions{display:flex;justify-content:flex-end;gap:.5rem}.header-actions{display:flex;gap:.5rem;padding-inline-start:.75rem}.navigation-block{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;margin-top:.5rem}.navigation-button{width:100%;margin-block:.25rem}.navigation-block-description{font-size:.75rem;color:var(--calcite-color-text-3)}`;function Q_(e,t){if(!t)return;let{destinationType:r}=e;switch(r){case"portal-content":return t[r]?.(e.hash,e.queryParams);case"portal-groups":return t[r]?.(e.hash);case"portal-org":return t[r]?.(e.hash,e.queryParams);case"portal-gallery":return t[r];case"portal-map-viewer":case"portal-notebooks":case"portal-scene-viewer":return t[r];case"portal-item":return t[r]?.(e.itemId);case"portal-group":return t[r]?.(e.groupId,e.hash,e.queryParams);default:return Ur(r)}}function Z_(e){let t=Yg.safeParse(e);return t.success?t.data:void 0}function ew(e,t){let r=t.navigation;switch(e.destinationType){case"portal-content":switch(e.hash){case"favorites":return r.openContentFavorites;case"group":return r.openContentGroup;case"living-atlas":return r.openContentLivingAtlas;case"org":return r.openContentOrganization;default:return r.openContent}case"portal-gallery":return r.openGallery;case"portal-groups":switch(e.hash){case"featured":return r.openGroupsFeatured;case"my":return r.openGroupsMy;case"organization":return r.openGroupsOrganization;default:return r.openGroups}case"portal-map-viewer":return r.openMapViewer;case"portal-notebooks":return r.openNotebooks;case"portal-scene-viewer":return r.openSceneViewer;case"portal-org":return r.openOrgSettings;case"portal-item":return r.openItem;case"portal-group":return r.openGroup;default:return Ur(e)}}var Ia=class extends Da{constructor(){super(),this.t9n=La({blocking:!0}),this.assistantEl=Fr(),this.formEl=Fr(),this.voiceInputEl=Fr(),this.inputEl=Fr(),this.navigationSlotElements=new Map,this.handleSlottableRequest=t=>{let r=t.detail,n=r.data?.block;if(!n)return;let s=this.getNavigationAction(n);s&&this.upsertNavigationSlotElement(r.slotName,s)},this.inputText="",this.showVoiceInput=!0,this.isListening=!1,this.isVoiceInputDisabled=!1,this.autoDestroyDisabled=!1,this.defaultClosed=!1,this.useProdDocAssistant=!1,this.arcgisPortalNavigationRequest=Ra(),cr()}static{this.properties={inputText:16,showVoiceInput:16,isListening:16,isVoiceInputDisabled:16,autoDestroyDisabled:5,portal:0,user:0,config:0,navigationTargetMap:0,disabledAgents:0,defaultClosed:5,navigationCapabilities:0,useProdDocAssistant:5}}static{this.styles=X_}async load(){await this.refreshCapabilityEmbeddings()}willUpdate(t){!this.hasUpdated||!t.has("navigationCapabilities")||this.refreshCapabilityEmbeddings()}async clearEmbeddingsCache(){Kh()}isAgentEnabled(t){return!this.disabledAgents?.[t]}async refreshCapabilityEmbeddings(){try{cr(this.navigationCapabilities),j_(),Kh(),await N_()}catch(t){console.warn("[arcgis-portal-ai-assistant] embeddings warm-up failed:",t)}}getNavigationAction(t){if(t?.type!==rd)return;let r=t.data,n=Z_(r);if(!n)return;let s=Q_(r,this.navigationTargetMap);if(s)return{href:s,targetDetail:r,label:r?.buttonLabel||ew(n,this.t9n)}}upsertNavigationSlotElement(t,r){let n=this.assistantEl.value;if(!n)return;let s=`navigation:${t}`,i=this.navigationSlotElements.get(s);i||(i=document.createElement("div"),i.slot=t,this.navigationSlotElements.set(s,i),n.append(i)),Oa(He`<div><calcite-button class="navigation-button" appearance=outline width=full .href=${r.href} icon-end=launch @click=${o=>{o.preventDefault(),this.arcgisPortalNavigationRequest.emit({href:r.href,targetDetail:r.targetDetail})}}>${r.label}</calcite-button>${r.description?He`<div class="navigation-block-description">${r.description}</div>`:null}</div>`,i)}render(){let{t9n:t,inputText:r,portal:n,user:s,navigationTargetMap:i,showVoiceInput:o,isListening:a,isVoiceInputDisabled:c,useProdDocAssistant:l}=this;return He`<arcgis-assistant log-enabled keep-suggested-prompts .heading=${t.heading} .entryMessage=${t.entryMessage} @arcgisSlottableRequest=${this.handleSlottableRequest} @arcgisPromptSelect=${({detail:u})=>{this.inputText=u.prompt,requestAnimationFrame(()=>{this.inputEl.value?.focusTextArea()})}} ${Vr(this.assistantEl)}><div slot=header-actions-start class="header-actions"><calcite-icon icon=effects></calcite-icon></div><form slot=chat-entry class="chat-entry" @submit=${u=>{u.preventDefault();let p=r.trim();p&&(this.assistantEl.value?.submitMessage(p),this.inputText="")}} ${Vr(this.formEl)}><arcgis-portal-mentionable-text-area .portal=${n} .user=${s} rows=3 .popoverListLabel=${t.mentionEntities} .placeholder=${t.placeholder} .value=${r} @arcgisUserMentionableTextAreaKeyDown=${({detail:u})=>{u.key==="Enter"&&!u.shiftKey&&(u.preventDefault(),this.formEl.value?.requestSubmit())}} @arcgisUserMentionableTextAreaChange=${({detail:u})=>{this.inputText=u??""}} ${Vr(this.inputEl)}></arcgis-portal-mentionable-text-area><div class="chat-actions"><arcgis-portal-voice-input @arcgisVoiceInputStart=${()=>{this.isListening=!0,this.isVoiceInputDisabled=!1}} @arcgisVoiceInputStop=${()=>{this.isListening=!1,this.isVoiceInputDisabled=!1}} @arcgisVoiceInputError=${u=>{u.detail.errorCode==="not-supported"&&(this.showVoiceInput=!1)}} @arcgisVoiceInputInterimTranscription=${u=>{this.inputText=u.detail.text}} ${Vr(this.voiceInputEl)}></arcgis-portal-voice-input>${o&&He`<calcite-button icon-start=microphone .label=${t.voiceInput} round .disabled=${c} .appearance=${a?"solid":"outline-fill"} @click=${async()=>{this.isVoiceInputDisabled=!0;let u=this.voiceInputEl.value;a?await u?.stopListening():await u?.startListening()}}></calcite-button>`||""}<calcite-button type=submit icon-start=send round .disabled=${!r.trim()} .label=${t.send}>${t.send}</calcite-button></div></form>${this.isAgentEnabled("itemAnalytics")&&He`<arcgis-assistant-agent .agent=${a_} .context=${{portal:n,user:s,navigationTargetMap:i}}></arcgis-assistant-agent>`||""}${this.isAgentEnabled("groupCreation")&&He`<arcgis-assistant-agent .agent=${ey} .context=${{portal:n,user:s,navigationTargetMap:i}}></arcgis-assistant-agent>`||""}${this.isAgentEnabled("docAssistant")&&He`<arcgis-assistant-agent .agent=${Iy} .context=${{portal:n,user:s,navigationTargetMap:i,useProdDocAssistant:l}}></arcgis-assistant-agent>`||""}${this.isAgentEnabled("groupAnalytics")&&He`<arcgis-assistant-agent .agent=${Jy} .context=${{portal:n,user:s,navigationTargetMap:i}}></arcgis-assistant-agent>`||""}${this.isAgentEnabled("navigation")&&He`<arcgis-assistant-agent .agent=${Y_} .context=${{portal:n,user:s,navigationTargetMap:i}}></arcgis-assistant-agent>`||""}</arcgis-assistant>`}};$a("arcgis-portal-ai-assistant",Ia);return Ia},"identity/IdentityManager","request","portal/Portal",a,b,c)
|