@arcgis/portal-components 5.1.0-next.101 → 5.1.0-next.103
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/{V5ZWDMLE.js → 2VF5UOTF.js} +1 -1
- package/dist/cdn/2YV7THHL.js +2 -0
- package/dist/cdn/{5WK4GJK2.js → 35BFNU6G.js} +1 -1
- package/dist/cdn/3WB6LZ7Q.js +2 -0
- package/dist/cdn/{LCWXNCUX.js → 4CASGYX4.js} +2 -2
- package/dist/cdn/{2UAWM45V.js → 62K5NRXD.js} +1 -1
- package/dist/cdn/7OAKAZEO.js +2 -0
- package/dist/cdn/{F5QGCGHF.js → 7Q66OJ6Z.js} +1 -1
- package/dist/cdn/{32DRTMS4.js → EBPMKUJA.js} +1 -1
- package/dist/cdn/{LJUIMVQ2.js → FEKZTF2S.js} +1 -1
- package/dist/cdn/{SOPWLUP4.js → FKN5L243.js} +1 -1
- package/dist/cdn/G2KD3IGI.js +2 -0
- package/dist/cdn/{JOYFDD4B.js → GKRBJA5H.js} +1 -1
- package/dist/cdn/{HQAGVE4P.js → HSCKNOLC.js} +2 -1
- package/dist/cdn/{SEZNHA2J.js → I3F7N3RZ.js} +1 -1
- package/dist/cdn/IDHFD2ZS.js +2 -0
- package/dist/cdn/{AMCZ4UZQ.js → N55IZFGY.js} +1 -1
- package/dist/cdn/N7STY6S6.js +196 -0
- package/dist/cdn/{JFG6QVNF.js → P5IPDIX5.js} +1 -1
- package/dist/cdn/W6SDA33S.js +2 -0
- package/dist/cdn/{ERNT74VA.js → XQ7J3PUU.js} +1 -1
- package/dist/cdn/{NJMHL2Y7.js → ZDF7MWDN.js} +1 -1
- package/dist/cdn/ZXXOI7QF.js +2 -0
- package/dist/cdn/assets/portal-ai-assistant/t9n/messages.en.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.ca.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.da.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.en.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.es.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.fr.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.hr.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.id.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.ko.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.lv.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.pl.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.pt-PT.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.ru.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.sl.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.sr.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.th.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.uk.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-replacement-item-redirect/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/portal-replacement-item-redirect/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/index.js +1 -1
- package/dist/chunks/fieldAddDelete.js +1 -1
- package/dist/chunks/groups.js +30 -0
- package/dist/chunks/item.js +124 -22
- package/dist/components/arcgis-portal-ai-assistant/customElement.d.ts +14 -2
- package/dist/components/arcgis-portal-ai-assistant/customElement.js +451 -127
- package/dist/components/arcgis-portal-ai-assistant/index.js +1 -1
- package/dist/components/arcgis-portal-item-type/customElement.js +1 -1
- package/dist/components/arcgis-portal-mentionable-text-area/customElement.d.ts +2 -1
- package/dist/components/arcgis-portal-mentionable-text-area/customElement.js +38 -41
- package/dist/components/arcgis-portal-mentionable-text-area/utils.d.ts +7 -0
- package/dist/components/arcgis-portal-replacement-item-redirect/customElement.js +3 -3
- 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/loader.js +1 -1
- package/dist/types/lumina.d.ts +1 -1
- package/dist/types/preact.d.ts +1 -1
- package/dist/types/react.d.ts +1 -1
- package/dist/types/stencil.d.ts +1 -1
- package/package.json +7 -6
- package/dist/cdn/4XGP5S32.js +0 -2
- package/dist/cdn/CVTNZK7F.js +0 -2
- package/dist/cdn/DAD7LUKA.js +0 -2
- package/dist/cdn/GPPEHGUO.js +0 -2
- package/dist/cdn/HGOHRPAD.js +0 -2
- package/dist/cdn/IZQBJ5VK.js +0 -2
- package/dist/cdn/OGQ2PD7M.js +0 -2
- package/dist/cdn/ZAHK6WQT.js +0 -138
- package/dist/chunks/item2.js +0 -128
- /package/dist/cdn/{TTZBF4KI.js → SKW3IFMK.js} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{e as r}from"./
|
|
2
|
+
import{e as r}from"./EBPMKUJA.js";import{Q as o}from"./ZDF7MWDN.js";var s=r(o);export{s as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import a from"./SKW3IFMK.js";import"./S2PHM4WZ.js";import{a as C}from"./2VF5UOTF.js";import"./EBPMKUJA.js";import{A as v,B as b,H as y,I,J as w,M as k,P as R,Q as $,h as u,j as l,k as h,l as m,v as f,z as g}from"./ZDF7MWDN.js";import"./CFDTXKJ6.js";export default $arcgis.t(([S,{p:M}])=>{var p=class extends b{constructor(e){if(super(e),this.it=m,e.type!==g.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===m||e==null)return this._t=void 0,this.it=e;if(e===h)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}};p.directiveName="unsafeHTML",p.resultType=1;var T=v(p);var L=u`.thumbnail-container{width:100%}.replacement-container{margin:.5rem}.replacement-message{margin-bottom:.5rem}.replacement-card__title{margin-bottom:.25rem}`,P=["3DInsetMap","3DScene","3DViz","AttachmentViewer","CapacityAnalysis","Cascade","Compare","Compare/Configure","Compare/Multiviewer","Compare/Search","Compare/SideBySideViewer_Configure","Compare/storytelling_compare","Compare/storytelling_sidepanel","Compare/storytelling_tabbed","Compare3d","CompareAnalysis","CompareMaps","CrowdsourceManager","CrowdsourcePolling","CrowdsourceReporter","Directions","Edit","Editor","Elevations","ElevationsProfile","Embed","Filter","FilterGallery","GeoForm","GeoList","GeoTour","HeaderFooter","Identify","ImageInterpretation","ImageMask","ImageVisit","ImageryViewer","ImpactSummary","InformationLookup","InteractiveFilter","InteractiveLegend","LayerShowcase","Legend","LiveMaps","LocalPerspective","MapAndAppGallery","MapCarousel","MapJournal","MapSeries","Shortlist","MapTools","MapTour","Media","MinimalGallery","Minimalist","MobileViewer","Nearby","OnePane","Panels","PanelsLegend","Profile","PublicGallery","PublicInformation","ServiceLookup","SimpleMapViewer","SimpleViewer","SocialMedia","Solutions/s2.html?app=apps2/FindEditFilter","Solutions/s2.html?app=apps2/Finder","Solutions/s2.html","StoryMapBasic","StorytellingSwipe","StorytellingTextLegend","Styler","SummaryViewer","Time","TimeAware","TwoPane","View","Viewer","ZoneLookup"],U=i=>{if(!i)return!1;let e=P.some(t=>{let r=t.includes(".html"),a=`/apps/${t}${r?"":"/"}`;return decodeURIComponent(i.url)?.includes(a)});return i.type==="Web Mapping Application"&&!!i.url&&e};function D(i){let e=["Cascade","MapTour","MapJournal","MapSeries","Shortlist","StoryMapCrowdsource","SwipeSpyglass","Story Map"];return i.type==="Web Mapping Application"&&(_(e,i)||j(i))}function j(i){return["Cascade","MapTour","MapJournal","MapSeries","Shortlist","StoryMapCrowdsource","StorytellingSwipe"].some(e=>{let t=`/apps/${e}/index.html`;return decodeURIComponent(i.url)?.includes(t)})}function _(i,e){return i?.some(t=>e?.typeKeywords?.includes(t))}function x(i){let e=H(i);return $(`assets/portal-item-thumbnail/${e}`)}function H(i){let e=i.type?.toLowerCase(),t=i.typeKeywords||[];switch(e){case"web mapping application":return"webapp.avif";case"mobile application":return"mobileapp.avif";case"notebook code snippets":case"notebook code snippet library":return"notebookcodesnippets.avif";case"notebook":return"notebook.avif";case"style":return t.includes("Dictionary")?"dictionarystyle.avif":"style.avif";case"feature service":return t.includes("Location Tracking View")?"locationtrackingservice.avif":t.includes("IndoorPositioningDataService")?"indoor-positioning-data-service.avif":"default.avif";case"pro presentation":return"pro-presentation.avif";case"reality mapping project":return"realitymappingproject.avif";case"raster function template":return"rasterfunctiontemplate.avif";case"workforce project":return"workforceproject.avif";case"hub initiative":return"hubinitiative.avif";case"hub page":return"hubpage.avif";case"hub site application":case"site application":return"hubsite.avif";case"hub event":return"hubevent.avif";case"hub project":return"hubproject.avif";case"dashboard":return t.includes("ArcGIS Dashboards")?"dashboards.avif":"opsdashboard.avif";case"geoprocessing service":return t.includes("Notebook Web Tool")?"notebookwebtool.avif":"webtool.avif";case"web scene":case"scene service":return"scene.avif";case"ortho mapping project":return"orthomappingproject.avif";case"ortho mapping template":return"orthomappingtemplate.avif";case"insights theme":return"insightstheme.avif";case"insights workbook package":return"insightsworkbookpackage.avif";case"solution":return"solution.avif";case"mobile scene package":return"mobilescenepackage.avif";case"deep learning package":return"deeplearningpackage.avif";case"big data analytic":return"bigdataanalytic.avif";case"real time analytic":return"realtimeanalytic.avif";case"feed":return"feed.avif";case"excalibur imagery project":return"excaliburimageryproject.avif";case"storymap":return t?.includes("storymapcollection")?"storymapcollection.avif":"storymap.avif";case"survey123 add in":return"survey123addin.avif";case"mission":return"mission.avif";case"mission template":return"missiontemplate.avif";case"quickcapture project":return"quickcaptureproject.avif";case"pro report":return"proreport.avif";case"pro package":return"propackage.avif";case"pro report template":return"proreporttemplate.avif";case"urban model":return"urbanmodel.avif";case"urban project":return"urbanproject.avif";case"web experience":return"webexperience.avif";case"web experience template":return"webexperiencetemplate.avif";case"experience builder widget":return"experiencebuilderwidget.avif";case"experience builder widget package":return"experiencebuilderwidgetpackage.avif";case"workflow":return"workflow.avif";case"insights script":return"insightsscript.avif";case"kernel gateway connection":return"kernelgatewayconnection.avif";case"hub initiative template":return"hubinitiativetemplate.avif";case"image service":return t?.includes("Tile Imagery")?"tiledimagerylayer.avif":"imagerylayer.avif";case"mission report":return"missionreport.avif";case"administrative report":return"administrativereport.avif";case"storymap theme":return"storymaptheme.avif";case"knowledge graph":return"knowledgegraph.avif";case"knowledge graph layer":return"knowledgegraphlayer.avif";case"knowledge studio project":return"knowledgestudio.avif";case"earth configuration":return"earthconfiguration.avif";case"link chart":return"linkchart.avif";case"investigation":return"investigation.avif";case"apache parquet":return"apacheparquet.avif";case"curated collection":return"curatedcollection.avif";case"video service":return"mediaservice.avif";case"geodata service":return"geodataservice.avif";case"suitability model":return"suitabilitymodel.avif";case"esri classifier definition":return"classifierdefinition.avif";case"esri spectral library":return"spectrallibrary.avif";case"deep learning studio project":return"deeplearningstudioproject.avif";case"esri classification schema":return"classificationschema.avif";case"insights data engineering workbook":return"dataengineeringworkbook.avif";case"insights data engineering model":return"dataengineeringmodel.avif";case"discussion":return"discussion.avif";case"api key":return"apikey.avif";case"data pipeline":return"datapipeline.avif";case"analysis model":return"analysismodel.avif";case"service connection":return"serviceconnection.avif";case"xr experience":return"xrexperience.avif";case"3dtiles service":return t?.includes("GaussianSplat")?"gaussiansplatlayer.avif":"default.avif";default:return"default.avif"}}function F(i,e,t){let{restUrl:r}=i,a=V(i),n=a?`token=${a}`:"",c=`${r}/content/items/${e.id}`;if(e.thumbnail){let o=e.thumbnailUrl;if(o){let s=new URL(o);return s.searchParams.append("w","400"),s.href}return`${c}/info/${e.thumbnail}?w=400${a?"&":""}${n}`}else if(e.type==="Image")return`${c}/data?${n}`;return x(e)}function V(i){return i?.credential?.token||i?.token||i?.user?.credential?.token||i?.portalUser?.token||""}function E({portal:i,usePortalHostname:e}){let{customBaseUrl:t,portalHostname:r,urlKey:a}=i,{protocol:n}=window.location,c=!e&&a?`${a}.${t}`:r;return`${n}//${c}`}var A=5e3,d=class extends w{constructor(){super(...arguments),this.replacementId=null,this.replacementItemInRecycleBin=!1,this.hasInaccessibleReplacementItem=!1,this.thumbnailUrl=null,this.timer=void 0,this.t9n=C({blocking:!0}),this.primaryActionRef=y(),this.getItemDetailsUrl=({portal:e,itemId:t,redirect:r})=>{let a=E({portal:e,usePortalHostname:!this.user});return a?`${`${a}/home`}/item.html?id=${t}${r?"&performRedirectAction=true":""}`:""},this.performRedirectAction=()=>{window.open(this.getItemDetailsUrl({portal:this.portal,itemId:this.replacementId,redirect:!0}),"_self")},this.viewItemDetailsPage=()=>{window.open(this.getItemDetailsUrl({portal:this.portal,itemId:this.replacementId??this.itemId}),this.canRedirect?"_self":"_blank")},this.item=null,this.replacementItem=null,this.redirectAction=null,this.canRedirect=!1,this.redirectCancelled=!1,this.open=!1,this.redirectTimeRemaining=A/1e3,this.arcgisPortalReplacementItemFetch=f()}static{this.properties={item:16,replacementItem:16,redirectAction:16,canRedirect:16,redirectCancelled:16,open:16,redirectTimeRemaining:16,itemId:1,portal:0,user:0}}static{this.styles=L}async setFocus(){this.primaryActionRef.value?.setFocus()}willUpdate(e){(e.has("itemId")||e.has("portal")||e.has("user"))&&(this.user??=this.portal?.user??null,this.initItem())}setupTimer({onComplete:e}){typeof this.timer=="number"&&clearInterval(this.timer),this.redirectTimeRemaining=A/1e3,this.timer=setInterval(()=>{if(this.redirectTimeRemaining<=0){clearInterval(this.timer),this.timer=void 0,e();return}this.redirectTimeRemaining-=1},1e3)}cancelTimer({onCancel:e}={}){e?.(),clearInterval(this.timer)}handleClose(){this.cancelTimer(),this.itemId="",this.item=null,this.open=!1}cancelRedirect(){this.cancelTimer(),this.redirectCancelled=!0}isItemRetired(e){return U(e)||D(e)}async initItem(){if(!this.itemId)return;let{itemId:e,portal:t,performRedirectAction:r}=this,a=new S({id:e,portal:t});this.item=await a?.load();let n=await M(e,t,{relationshipType:"ReplacementItem2Item",direction:"reverse"},!0),c=n.data?.relatedItems?.[0];this.replacementItemInRecycleBin=c?.inRecycleBin;let o=c?.id,s=!this.replacementItemInRecycleBin&&o?new S({id:o,portal:t}):null;await s?.load(),this.replacementItem=s,this.hasInaccessibleReplacementItem=this.replacementItemInRecycleBin||!s&&n.data?.aggregations?.total?.count>0&&n.data?.relatedItems?.length===0,this.arcgisPortalReplacementItemFetch.emit({replacementItem:this.hasInaccessibleReplacementItem?{}:s||null}),this.replacementItem=s,this.thumbnailUrl=F(t,s??this.item),this.canRedirect=!!s&&this.isItemRetired(a),this.replacementId=s?.id||null,this.canRedirect&&this.setupTimer({onComplete:()=>r()}),this.open=!0}getReplacementHeading(){let{t9n:e,hasInaccessibleReplacementItem:t,canRedirect:r}=this;return t?e.replacementUnavailable:r?e.redirectToReplacement:this.isItemRetired(this.item)&&!this.replacementItem?e.replacementUnavailable:e.replacementAvailable}getReplacementMessage(){let{t9n:e,hasInaccessibleReplacementItem:t,canRedirect:r}=this;return t?e.retiredReplacementUnavailable:r?e.deprecatedHasReplacement:this.isItemRetired(this.item)&&!this.replacementItem?e.retired:e.deprecatedHasReplacement}getRedirectActionMessage(){let{t9n:e,canRedirect:t,redirectTimeRemaining:r,redirectCancelled:a}=this;return a?e.redirectToReplacement:t?e.redirect.replace("${seconds}",`${r}`):e.moreDetails}renderCard(e){let{canRedirect:t,t9n:r}=this;return l`<calcite-card thumbnail-position=inline-start><img slot=thumbnail class="thumbnail" src=${(this.thumbnailUrl||void 0)??k} @error=${async()=>this.thumbnailUrl=x(e)}><span slot=heading class="replacement-card__title">${e.title}</span><span slot=description>${r.ownedBy?.replace("${owner}",e.owner||"")||""}</span>${t&&l`<calcite-link slot=footer-start icon-end=launch .href=${this.getItemDetailsUrl({portal:this.portal,itemId:this.replacementId})} target=_blank>${r.moreDetails}</calcite-link>`||""}</calcite-card>`}render(){let{open:e,t9n:t,item:r,replacementItem:a,canRedirect:n,redirectCancelled:c}=this;if(!(!r||!this.isItemRetired(r)))return l`<calcite-dialog modal .open=${e} width=s kind=info outside-close-disabled escape-disabled close-disabled .heading=${this.getReplacementHeading()} @calciteDialogClose=${()=>this.handleClose()}><div class="replacement-container"><div class="replacement-message">${T(this.getReplacementMessage()?.replace("${itemTitle}",this.item?.title||""))}</div>${this.renderCard(n?a:r)}</div>${n&&!c&&l`<calcite-button slot=footer-end appearance=outline-fill kind=neutral @click=${()=>{this.cancelRedirect()}}>${t.cancelRedirection}</calcite-button>`||""}<calcite-button slot=footer-end @click=${()=>{this.cancelTimer(),n?this.performRedirectAction():this.viewItemDetailsPage()}} .iconEnd=${n?void 0:"launch"} icon-flip-rtl=end ${I(this.primaryActionRef)}>${this.getRedirectActionMessage()}</calcite-button></calcite-dialog>`}};R("arcgis-portal-replacement-item-redirect",d);return d},"portal/PortalItem",a)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{i as o}from"./
|
|
2
|
+
import{i as o}from"./ZDF7MWDN.js";var c={INITIAL:0,PENDING:1,COMPLETE:2,ERROR:3},n=Symbol(),e=class{get taskComplete(){return this.t||(this.i===1?this.t=new Promise(((t,s)=>{this.o=t,this.h=s})):this.i===3?this.t=Promise.reject(this.l):this.t=Promise.resolve(this.u)),this.t}constructor(t,s,r){this.p=0,this.i=0,(this._=t).addController(this);let i=typeof s=="object"?s:{task:s,args:r};this.v=i.task,this.j=i.args,this.m=i.argsEqual??u,this.k=i.onComplete,this.A=i.onError,this.autoRun=i.autoRun??!0,"initialValue"in i&&(this.u=i.initialValue,this.i=2,this.O=this.T?.())}hostUpdate(){this.autoRun===!0&&this.S()}hostUpdated(){this.autoRun==="afterUpdate"&&this.S()}T(){if(this.j===void 0)return;let t=this.j();if(!Array.isArray(t))throw Error("The args function must return an array");return t}async S(){let t=this.T(),s=this.O;this.O=t,t===s||t===void 0||s!==void 0&&this.m(s,t)||await this.run(t)}async run(t){let s,r;t??=this.T(),this.O=t,this.i===1?this.q?.abort():(this.t=void 0,this.o=void 0,this.h=void 0),this.i=1,this.autoRun==="afterUpdate"?queueMicrotask((()=>this._.requestUpdate())):this._.requestUpdate();let i=++this.p;this.q=new AbortController;let a=!1;try{s=await this.v(t,{signal:this.q.signal})}catch(l){a=!0,r=l}if(this.p===i){if(s===n)this.i=0;else{if(a===!1){try{this.k?.(s)}catch{}this.i=2,this.o?.(s)}else{try{this.A?.(r)}catch{}this.i=3,this.h?.(r)}this.u=s,this.l=r}this._.requestUpdate()}}abort(t){this.i===1&&this.q?.abort(t)}get value(){return this.u}get error(){return this.l}get status(){return this.i}render(t){switch(this.i){case 0:return t.initial?.();case 1:return t.pending?.();case 2:return t.complete?.(this.value);case 3:return t.error?.(this.error);default:throw Error("Unexpected status: "+this.i)}}},u=(h,t)=>h===t||h.length===t.length&&h.every(((s,r)=>!o(s,t[r])));export{c as a,e as b};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
+
import a from"./PBZ25RYU.js";import{b as P}from"./35BFNU6G.js";import{a as E}from"./EBPMKUJA.js";import{n as v,s as g,t as C,x as w}from"./ZDF7MWDN.js";export default $arcgis.t(([j,{property:p,subclass:I},{on:Y,watch:M},{createObservable:D,trackAccess:O},{property:J,subclass:Q},z,{a:b,b:x}])=>{var A=(t,o)=>i=>U(i,t),u=class extends w{constructor(o,i){super(o),this.Y=new Map,this.A=void 0,this.#e=D();let e=this;e.#t=i,e.Z(),e.setProvisionalExports(S(o,new WeakRef(e),o.M.length-1,e.instance,e.Y),!1),g(o,r=>{if(r){let n=M(()=>o[r],s=>{if(s===e.instance)return;let c=e.instance;e.exports=s,e.instance=s,e.Y.forEach((d,m)=>o.requestUpdate(d,c[m])),e.#o&&c.destroy(),e.#o=!1},{sync:!0});e.onDestroy(n.remove)}},e.exports)}#o;#e;#t;get exports(){return O(this.#e),super.exports}set exports(o){super.exports=o,this.#e.notify()}Z(){let o=this;o.instance="prototype"in o.#t&&"declaredClass"in o.#t.prototype?new o.#t:o.#t(),o.#o=!0}hostConnected(){this.exports=this.instance}hostDestroy(){this.#o&&this.instance.destroy?.()}},U=E(u),S=(t,o,i,e,r)=>new Proxy(e,{get:(n,s)=>{let c=n[s];if(typeof s=="symbol"||r.has(s))return c;let d=t.M[i];return d.A=s,C(t,m=>{if(d.A=void 0,m!==void 0){let f=m.key;r.set(s,f);let h=t.constructor.getPropertyOptions(f),y=s!==f&&f.toLowerCase().includes("disable");$(o,h,s,f,y),h.i===void 0&&N(h,i,s,y)}},c)}}),$=(t,o,i,e,r,n)=>n=M(()=>{let s=t.deref();return s===void 0||s.component.manager.destroyed?n=n.remove():s.exports[i]},(s,c)=>{if(!n)return;t.deref().component?.requestUpdate(e,r?!c:c),o.c=!1},{sync:!0}),N=(t,o,i,e)=>{t.d.get=function(){let r=this.M[o]?.exports[i];return e?!r:r},t.d.set=function(r){let n=this.M[o];n.A!==i&&(n.exports[i]=e?!r:r)}};var L=Object.defineProperty,V=Object.getOwnPropertyDescriptor,l=(t,o,i,e)=>{for(var r=e>1?void 0:e?V(o,i):o,n=t.length-1,s;n>=0;n--)(s=t[n])&&(r=(e?s(o,i,r):s(r))||r);return e&&r&&L(o,i,r),r},a=class extends j{constructor(){super(...arguments),this.fetching=!1,this.status="idle",this.error=void 0,this.portalUrl=void 0,this._itemClassificationValidationErrors=new Map,this.fetchingPromise=new v}get primaryAttribute(){return this.portalClassificationSchema?.classificationMetadata.primaryAttribute}setPortalClassificationData({portalUrl:t,schema:o}){this.portalUrl=t,this.portalClassificationSchema=o,this.status="loaded",this.fetchingPromise.resolve(!0)}setFetching(t){this.fetching=t}async loadPortalClassificationData(t,{signal:o}){this.status="loading";let{result:i,error:e}=await b(t,o);if(e){e.name==="AbortError"?console.log("Request aborted."):(this.error=e,this.status="error",this.fetchingPromise.reject(e));return}else this.setPortalClassificationData({schema:i,portalUrl:t})}async validateClassification(t,o,i,e){if(!o)return"";let r=t?this._itemClassificationValidationErrors.get(t):void 0;if(r)return await r;let n=(async()=>{let{error:s}=await x(i,o,e??{});return s?s?.details.raw.messages.join(", "):""})();return t&&this._itemClassificationValidationErrors.set(t,n),t?await this._itemClassificationValidationErrors.get(t):await n}};l([p()],a.prototype,"portalClassificationSchema",2);l([p()],a.prototype,"fetching",2);l([p()],a.prototype,"status",2);l([p()],a.prototype,"error",2);l([p()],a.prototype,"portalUrl",2);l([p()],a.prototype,"_itemClassificationValidationErrors",2);a=l([I("custom.ClassificationModel")],a);var k;function _(t){return k??=new a(t),k}var at=A(_),ct=t=>new P(t,{task:async([o],{signal:i})=>{if(!o)throw new Error("Portal item is required to load classification data");if(o.loaded||await o.load({signal:i}),t.itemClassification=o.classification,t.classificationModel.status==="loading"&&await t.classificationModel.fetchingPromise.promise,!t.portalItem?.portal.hasClassificationSchema){t.classificationModel.setPortalClassificationData({portalUrl:o.portal.restUrl,schema:void 0});return}(t.classificationModel.status==="idle"||t.classificationModel.status==="loaded"&&t.classificationModel.portalUrl!==o.portal.restUrl)&&await t.classificationModel.loadPortalClassificationData(o.portal.restUrl,{signal:i})},args:()=>[t.portalItem]});return{a:at,b:ct}},"core/Accessor","core/accessorSupport/decorators","core/reactiveUtils","applications/Components/reactiveUtils","core/accessorSupport/decorators","core/Accessor",a)
|
|
@@ -18,7 +18,7 @@ Right ${t}`)}}var Lt=class GS extends ze{static isInstance(t){if(!super.isInstan
|
|
|
18
18
|
Please upgrade your packages to versions that set`,"message tool calls. e.g., `pnpm install @langchain/anthropic`,","pnpm install @langchain/openai`, etc."].join(" "));try{if(r!=null&&i===void 0){let[n,a]=_c(r);t.tool_calls=n??[],t.invalid_tool_calls=a??[]}else t.tool_calls=t.tool_calls??[],t.invalid_tool_calls=t.invalid_tool_calls??[]}catch{t.tool_calls=[],t.invalid_tool_calls=[]}if(t.response_metadata!==void 0&&"output_version"in t.response_metadata&&t.response_metadata.output_version==="v1"&&(t.contentBlocks=t.content,t.content=void 0),t.contentBlocks!==void 0){t.tool_calls&&t.contentBlocks.push(...t.tool_calls.map(a=>({type:"tool_call",id:a.id,name:a.name,args:a.args})));let n=t.contentBlocks.filter(a=>a.type==="tool_call").filter(a=>!t.tool_calls?.some(o=>o.id===a.id&&o.name===a.name));n.length>0&&(t.tool_calls=n.map(a=>({type:"tool_call",id:a.id,name:a.name,args:a.args})))}}super(t),typeof t!="string"&&(this.tool_calls=t.tool_calls??this.tool_calls,this.invalid_tool_calls=t.invalid_tool_calls??this.invalid_tool_calls),this.usage_metadata=t.usage_metadata}static lc_name(){return"AIMessage"}get contentBlocks(){if(this.response_metadata&&"output_version"in this.response_metadata&&this.response_metadata.output_version==="v1")return this.content;if(this.response_metadata&&"model_provider"in this.response_metadata&&typeof this.response_metadata.model_provider=="string"){let t=yh(this.response_metadata.model_provider);if(t)return t.translateContent(this)}let e=super.contentBlocks;if(this.tool_calls){let t=this.tool_calls.filter(r=>!e.some(i=>i.id===r.id&&i.name===r.name));e.push(...t.map(r=>({type:"tool_call",id:r.id,name:r.name,args:r.args})))}return e}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}static isInstance(e){return super.isInstance(e)&&e.type==="ai"}};function jo(e){return e._getType()==="ai"}function vc(e){return e._getType()==="ai"}var mt=class extends Lt{type="ai";tool_calls=[];invalid_tool_calls=[];tool_call_chunks=[];usage_metadata;constructor(e){let t;if(typeof e=="string"||Array.isArray(e))t={content:e,tool_calls:[],invalid_tool_calls:[],tool_call_chunks:[]};else if(e.tool_call_chunks===void 0||e.tool_call_chunks.length===0)t={...e,tool_calls:e.tool_calls??[],invalid_tool_calls:[],tool_call_chunks:[],usage_metadata:e.usage_metadata!==void 0?e.usage_metadata:void 0};else{let r=zl(e.tool_call_chunks??[]);t={...e,tool_call_chunks:r.tool_call_chunks,tool_calls:r.tool_calls,invalid_tool_calls:r.invalid_tool_calls,usage_metadata:e.usage_metadata!==void 0?e.usage_metadata:void 0}}super(t),this.tool_call_chunks=t.tool_call_chunks??this.tool_call_chunks,this.tool_calls=t.tool_calls??this.tool_calls,this.invalid_tool_calls=t.invalid_tool_calls??this.invalid_tool_calls,this.usage_metadata=t.usage_metadata}get lc_aliases(){return{...super.lc_aliases,tool_calls:"tool_calls",invalid_tool_calls:"invalid_tool_calls",tool_call_chunks:"tool_call_chunks",usage_metadata:"usage_metadata"}}static lc_name(){return"AIMessageChunk"}get contentBlocks(){if(this.response_metadata&&"output_version"in this.response_metadata&&this.response_metadata.output_version==="v1")return this.content;if(this.response_metadata&&"model_provider"in this.response_metadata&&typeof this.response_metadata.model_provider=="string"){let t=yh(this.response_metadata.model_provider);if(t)return t.translateContent(this)}let e=super.contentBlocks;if(this.tool_calls&&typeof this.content!="string"){let t=this.content.filter(r=>r.type==="tool_call").map(r=>r.id);for(let r of this.tool_calls)r.id&&!t.includes(r.id)&&e.push({...r,type:"tool_call",id:r.id,name:r.name,args:r.args})}return e}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,tool_call_chunks:this.tool_call_chunks,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}concat(e){let t={content:Ct(this.content,e.content),additional_kwargs:He(this.additional_kwargs,e.additional_kwargs),response_metadata:jl(this.response_metadata,e.response_metadata),tool_call_chunks:[],tool_calls:[],id:this.id??e.id};if(this.tool_call_chunks!==void 0||e.tool_call_chunks!==void 0){let i=ki(this.tool_call_chunks,e.tool_call_chunks);i!==void 0&&i.length>0&&(t.tool_call_chunks=i)}if(this.tool_calls!==void 0||e.tool_calls!==void 0){let i=ki(this.tool_calls,e.tool_calls);i!==void 0&&i.length>0&&(t.tool_calls=i)}(this.usage_metadata!==void 0||e.usage_metadata!==void 0)&&(t.usage_metadata=Mo(this.usage_metadata,e.usage_metadata));let r=this.constructor;return new r(t)}static isInstance(e){return super.isInstance(e)&&e.type==="ai"}};var Wr=class dk extends ze{static lc_name(){return"ChatMessage"}type="generic";role;static _chatMessageClass(){return dk}constructor(t,r){(typeof t=="string"||Array.isArray(t))&&(t={content:t,role:r}),super(t),this.role=t.role}static isInstance(t){return super.isInstance(t)&&t.type==="generic"}get _printableFields(){return{...super._printableFields,role:this.role}}},va=class extends Lt{static lc_name(){return"ChatMessageChunk"}type="generic";role;constructor(e,t){(typeof e=="string"||Array.isArray(e))&&(e={content:e,role:t}),super(e),this.role=e.role}concat(e){let t=this.constructor;return new t({content:Ct(this.content,e.content),additional_kwargs:He(this.additional_kwargs,e.additional_kwargs),response_metadata:He(this.response_metadata,e.response_metadata),role:this.role,id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type==="generic"}get _printableFields(){return{...super._printableFields,role:this.role}}};function pk(e){return e._getType()==="generic"}function fk(e){return e._getType()==="generic"}var ba=class extends ze{static lc_name(){return"FunctionMessage"}type="function";name;constructor(e){super(e),this.name=e.name}},wa=class extends Lt{static lc_name(){return"FunctionMessageChunk"}type="function";concat(e){let t=this.constructor;return new t({content:Ct(this.content,e.content),additional_kwargs:He(this.additional_kwargs,e.additional_kwargs),response_metadata:He(this.response_metadata,e.response_metadata),name:this.name??"",id:this.id??e.id})}};function mk(e){return e._getType()==="function"}function hk(e){return e._getType()==="function"}var Ye=class extends ze{static lc_name(){return"HumanMessage"}type="human";constructor(e){super(e)}static isInstance(e){return super.isInstance(e)&&e.type==="human"}},xa=class extends Lt{static lc_name(){return"HumanMessageChunk"}type="human";constructor(e){super(e)}concat(e){let t=this.constructor;return new t({content:Ct(this.content,e.content),additional_kwargs:He(this.additional_kwargs,e.additional_kwargs),response_metadata:He(this.response_metadata,e.response_metadata),id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type==="human"}};function gk(e){return e.getType()==="human"}function _k(e){return e.getType()==="human"}var qr=class extends ze{type="remove";id;constructor(e){super({...e,content:[]}),this.id=e.id}get _printableFields(){return{...super._printableFields,id:this.id}}static isInstance(e){return super.isInstance(e)&&e.type==="remove"}};var Bt=class Dl extends ze{static lc_name(){return"SystemMessage"}type="system";constructor(t){super(t)}concat(t){if(typeof t=="string")return new Dl({content:Ct(this.content,t),additional_kwargs:this.additional_kwargs,response_metadata:this.response_metadata,id:this.id,name:this.name});if(Dl.isInstance(t))return new Dl({content:Ct(this.content,t.content),additional_kwargs:{...this.additional_kwargs,...t.additional_kwargs},response_metadata:{...this.response_metadata,...t.response_metadata},id:this.id??t.id,name:this.name??t.name});throw new Error("Unexpected chunk type for system message")}static isInstance(t){return super.isInstance(t)&&t.type==="system"}},Qn=class extends Lt{static lc_name(){return"SystemMessageChunk"}type="system";constructor(e){super(e)}concat(e){let t=this.constructor;return new t({content:Ct(this.content,e.content),additional_kwargs:He(this.additional_kwargs,e.additional_kwargs),response_metadata:He(this.response_metadata,e.response_metadata),id:this.id??e.id})}static isInstance(e){return super.isInstance(e)&&e.type==="system"}};function yk(e){return e._getType()==="system"}function vk(e){return e._getType()==="system"}var bk=e=>e();function n4(e){return $i(e)?e:typeof e.id=="string"&&e.type==="function"&&typeof e.function=="object"&&e.function!==null&&"arguments"in e.function&&typeof e.function.arguments=="string"&&"name"in e.function&&typeof e.function.name=="string"?{id:e.id,args:JSON.parse(e.function.arguments),name:e.function.name,type:"tool_call"}:e}function i4(e){return typeof e=="object"&&e!=null&&e.lc===1&&Array.isArray(e.id)&&e.kwargs!=null&&typeof e.kwargs=="object"}function vh(e){let t,r;if(i4(e)){let i=e.id.at(-1);i==="HumanMessage"||i==="HumanMessageChunk"?t="user":i==="AIMessage"||i==="AIMessageChunk"?t="assistant":i==="SystemMessage"||i==="SystemMessageChunk"?t="system":i==="FunctionMessage"||i==="FunctionMessageChunk"?t="function":i==="ToolMessage"||i==="ToolMessageChunk"?t="tool":t="unknown",r=e.kwargs}else{let{type:i,...n}=e;t=i,r=n}if(t==="human"||t==="user")return new Ye(r);if(t==="ai"||t==="assistant"){let{tool_calls:i,...n}=r;if(!Array.isArray(i))return new Ie(r);let a=i.map(n4);return new Ie({...n,tool_calls:a})}else{if(t==="system")return new Bt(r);if(t==="developer")return new Bt({...r,additional_kwargs:{...r.additional_kwargs,__openai_role__:"developer"}});if(t==="tool"&&"tool_call_id"in r)return new Ft({...r,content:r.content,tool_call_id:r.tool_call_id,name:r.name});if(t==="remove"&&"id"in r&&typeof r.id=="string")return new qr({...r,id:r.id});throw Xn(new Error(`Unable to coerce message from array: only human, AI, system, developer, or tool message coercion is currently supported.
|
|
19
19
|
|
|
20
20
|
Received: ${JSON.stringify(e,null,2)}`),"MESSAGE_COERCION_FAILURE")}}function xt(e){if(typeof e=="string")return new Ye(e);if(Je(e))return e;if(Array.isArray(e)){let[t,r]=e;return vh({type:t,content:r})}else if(Ml(e)){let{role:t,...r}=e;return vh({...r,type:t})}else return vh(e)}function a4(e){if(typeof e=="string")return e;switch(e.type){case"text":return e.text??"";case"text-plain":return e.text??"[text-plain file]";case"image":case"image_url":return"[image]";case"audio":case"input_audio":return"[audio]";case"video":return"[video]";case"file":return"[file]";case"reasoning":case"tool_call":case"tool_call_chunk":case"invalid_tool_call":case"server_tool_call":case"server_tool_call_chunk":case"server_tool_call_result":case"non_standard":return"";default:return e.type?`[${e.type}]`:""}}function zo(e,t="Human",r="AI"){let i=[];for(let n of e){let a;if(n.type==="human")a=t;else if(n.type==="ai")a=r;else if(n.type==="system")a="System";else if(n.type==="tool")a="Tool";else if(n.type==="generic")a=n.role;else throw new Error(`Got unsupported message type: ${n.type}`);let o=n.name?`${n.name}, `:"",s=typeof n.content=="string"?n.content:Array.isArray(n.content)?n.content.map(a4).filter(Boolean).join(""):"",c=`${a}: ${o}${s}`;if(n.type==="ai"){let u=n;u.tool_calls&&u.tool_calls.length>0?c+=JSON.stringify(u.tool_calls):u.additional_kwargs&&"function_call"in u.additional_kwargs&&(c+=JSON.stringify(u.additional_kwargs.function_call))}i.push(c)}return i.join(`
|
|
21
|
-
`)}function o4(e){if(e.data!==void 0)return e;{let t=e;return{type:t.type,data:{content:t.text,role:t.role,name:void 0,tool_call_id:void 0}}}}function bc(e){let t=o4(e);switch(t.type){case"human":return new Ye(t.data);case"ai":return new Ie(t.data);case"system":return new Bt(t.data);case"function":if(t.data.name===void 0)throw new Error("Name must be defined for function messages");return new ba(t.data);case"tool":if(t.data.tool_call_id===void 0)throw new Error("Tool call ID must be defined for tool messages");return new Ft(t.data);case"generic":if(t.data.role===void 0)throw new Error("Role must be defined for chat messages");return new Wr(t.data);default:throw new Error(`Got unexpected type: ${t.type}`)}}function wk(e){return e.map(bc)}function xk(e){return e.map(t=>t.toDict())}function Sa(e){let t=e._getType();if(t==="human")return new xa({...e});if(t==="ai"){let r={...e};return"tool_calls"in r&&(r={...r,tool_call_chunks:r.tool_calls?.map(i=>({...i,type:"tool_call_chunk",index:void 0,args:JSON.stringify(i.args)}))}),new mt({...r})}else{if(t==="system")return new Qn({...e});if(t==="function")return new wa({...e});if(Wr.isInstance(e))return new va({...e});throw new Error("Unknown message type.")}}function zl(e){let t=e.reduce((n,a)=>{let o=n.findIndex(([s])=>"id"in a&&a.id&&"index"in a&&a.index!==void 0?a.id===s.id&&a.index===s.index:"id"in a&&a.id?a.id===s.id:"index"in a&&a.index!==void 0?a.index===s.index:!1);return o!==-1?n[o].push(a):n.push([a]),n},[]),r=[],i=[];for(let n of t){let a=null,o=n[0]?.name??"",s=n.map(l=>l.args||"").join("").trim(),c=s.length?s:"{}",u=n[0]?.id;try{if(a=kn(c),!u||a===null||typeof a!="object"||Array.isArray(a))throw new Error("Malformed tool call chunk args.");r.push({name:o,args:a,id:u,type:"tool_call"})}catch{i.push({name:o,args:c,id:u,error:"Malformed args.",type:"invalid_tool_call"})}}return{tool_call_chunks:e,tool_calls:r,invalid_tool_calls:i}}var Sk=I({BaseCache:()=>$k,InMemoryCache:()=>bh,defaultHashKeyEncoder:()=>kk,deserializeStoredGeneration:()=>s4,serializeGeneration:()=>c4}),kk=(...e)=>Oo(e.join("_"));function s4(e){return e.message!==void 0?{text:e.text,message:bc(e.message)}:{text:e.text}}function c4(e){let t={text:e.text};return e.message!==void 0&&(t.message=e.message.toDict()),t}var $k=class{keyEncoder=kk;makeDefaultKeyEncoder(e){this.keyEncoder=e}},u4=new Map,bh=class Ek extends $k{cache;constructor(t){super(),this.cache=t??new Map}lookup(t,r){return Promise.resolve(this.cache.get(this.keyEncoder(t,r))??null)}async update(t,r,i){this.cache.set(this.keyEncoder(t,r),i)}static global(){return new Ek(u4)}};var Ik=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function l4(e){return typeof e=="string"&&Ik.test(e)}var Ei=l4;function d4(e){if(!Ei(e))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var wh=d4;var St=[];for(let e=0;e<256;++e)St.push((e+256).toString(16).slice(1));function Do(e,t=0){return(St[e[t+0]]+St[e[t+1]]+St[e[t+2]]+St[e[t+3]]+"-"+St[e[t+4]]+St[e[t+5]]+"-"+St[e[t+6]]+St[e[t+7]]+"-"+St[e[t+8]]+St[e[t+9]]+"-"+St[e[t+10]]+St[e[t+11]]+St[e[t+12]]+St[e[t+13]]+St[e[t+14]]+St[e[t+15]]).toLowerCase()}var xh,p4=new Uint8Array(16);function Uo(){if(!xh){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");xh=crypto.getRandomValues.bind(crypto)}return xh(p4)}function f4(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}var Tk="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Ck="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Sh(e,t,r,i,n,a){let o=typeof r=="string"?f4(r):r,s=typeof i=="string"?wh(i):i;if(typeof i=="string"&&(i=wh(i)),i?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,n){a=a||0;for(let u=0;u<16;++u)n[a+u]=c[u];return n}return Do(c)}var m4=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),kh={randomUUID:m4};function h4(e,t,r){if(kh.randomUUID&&!t&&!e)return kh.randomUUID();e=e||{};let i=e.random??e.rng?.()??Uo();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return Do(i)}var $h=h4;function g4(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function Eh(e,t){return e<<t|e>>>32-t}function _4(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],i=new Uint8Array(e.length+1);i.set(e),i[e.length]=128,e=i;let n=e.length/4+2,a=Math.ceil(n/16),o=new Array(a);for(let s=0;s<a;++s){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=e[s*64+u*4]<<24|e[s*64+u*4+1]<<16|e[s*64+u*4+2]<<8|e[s*64+u*4+3];o[s]=c}o[a-1][14]=(e.length-1)*8/Math.pow(2,32),o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<a;++s){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=o[s][m];for(let m=16;m<80;++m)c[m]=Eh(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],p=r[3],f=r[4];for(let m=0;m<80;++m){let g=Math.floor(m/20),v=Eh(u,5)+g4(g,l,d,p)+f+t[g]+c[m]>>>0;f=p,p=d,d=Eh(l,30)>>>0,l=u,u=v}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+p>>>0,r[4]=r[4]+f>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}var Ok=_4;function Ih(e,t,r,i){return Sh(80,Ok,e,t,r,i)}Ih.DNS=Tk;Ih.URL=Ck;var Ul=Ih;var Th={};function y4(e,t,r){let i;if(e)i=Ak(e.random??e.rng?.()??Uo(),e.msecs,e.seq,t,r);else{let n=Date.now(),a=Uo();v4(Th,n,a),i=Ak(a,Th.msecs,Th.seq,t,r)}return t??Do(i)}function v4(e,t,r){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function Ak(e,t,r,i,n=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!i)i=new Uint8Array(16),n=0;else if(n<0||n+16>i.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);return t??=Date.now(),r??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],i[n++]=t/1099511627776&255,i[n++]=t/4294967296&255,i[n++]=t/16777216&255,i[n++]=t/65536&255,i[n++]=t/256&255,i[n++]=t&255,i[n++]=112|r>>>28&15,i[n++]=r>>>20&255,i[n++]=128|r>>>14&63,i[n++]=r>>>6&255,i[n++]=r<<2&255|e[10]&3,i[n++]=e[11],i[n++]=e[12],i[n++]=e[13],i[n++]=e[14],i[n++]=e[15],i}var Or=y4;var Pk=I({BaseCallbackHandler:()=>Xr,callbackHandlerPrefersStreaming:()=>wc,isBaseCallbackHandler:()=>Ch}),w4=class{};function wc(e){return"lc_prefer_streaming"in e&&e.lc_prefer_streaming}var Xr=class extends w4{lc_serializable=!1;get lc_namespace(){return["langchain_core","callbacks",this.name]}get lc_secrets(){}get lc_attributes(){}get lc_aliases(){}get lc_serializable_keys(){}static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,Co(this.constructor)]}lc_kwargs;ignoreLLM=!1;ignoreChain=!1;ignoreAgent=!1;ignoreRetriever=!1;ignoreCustomEvent=!1;raiseError=!1;awaitHandlers=Ut("LANGCHAIN_CALLBACKS_BACKGROUND")==="false";constructor(e){super(),this.lc_kwargs=e||{},e&&(this.ignoreLLM=e.ignoreLLM??this.ignoreLLM,this.ignoreChain=e.ignoreChain??this.ignoreChain,this.ignoreAgent=e.ignoreAgent??this.ignoreAgent,this.ignoreRetriever=e.ignoreRetriever??this.ignoreRetriever,this.ignoreCustomEvent=e.ignoreCustomEvent??this.ignoreCustomEvent,this.raiseError=e.raiseError??this.raiseError,this.awaitHandlers=this.raiseError||(e._awaitHandler??this.awaitHandlers))}copy(){return new this.constructor(this)}toJSON(){return at.prototype.toJSON.call(this)}toJSONNotImplemented(){return at.prototype.toJSONNotImplemented.call(this)}static fromMethods(e){class t extends Xr{name=Or();constructor(){super(),Object.assign(this,e)}}return new t}},Ch=e=>{let t=e;return t!==void 0&&typeof t.copy=="function"&&typeof t.name=="string"&&typeof t.awaitHandlers=="boolean"};var Nk=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function x4(e){return typeof e=="string"&&Nk.test(e)}var xc=x4;function S4(e){if(!xc(e))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var Ll=S4;var kt=[];for(let e=0;e<256;++e)kt.push((e+256).toString(16).slice(1));function Lo(e,t=0){return(kt[e[t+0]]+kt[e[t+1]]+kt[e[t+2]]+kt[e[t+3]]+"-"+kt[e[t+4]]+kt[e[t+5]]+"-"+kt[e[t+6]]+kt[e[t+7]]+"-"+kt[e[t+8]]+kt[e[t+9]]+"-"+kt[e[t+10]]+kt[e[t+11]]+kt[e[t+12]]+kt[e[t+13]]+kt[e[t+14]]+kt[e[t+15]]).toLowerCase()}var k4=new Uint8Array(16);function Fo(){return crypto.getRandomValues(k4)}function $4(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():E4(e,t,r)}function E4(e,t,r){e=e||{};let i=e.random??e.rng?.()??Fo();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return Lo(i)}var ka=$4;function I4(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function Oh(e,t){return e<<t|e>>>32-t}function T4(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],i=new Uint8Array(e.length+1);i.set(e),i[e.length]=128,e=i;let n=e.length/4+2,a=Math.ceil(n/16),o=new Array(a);for(let s=0;s<a;++s){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=e[s*64+u*4]<<24|e[s*64+u*4+1]<<16|e[s*64+u*4+2]<<8|e[s*64+u*4+3];o[s]=c}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<a;++s){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=o[s][m];for(let m=16;m<80;++m)c[m]=Oh(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],p=r[3],f=r[4];for(let m=0;m<80;++m){let g=Math.floor(m/20),v=Oh(u,5)+I4(g,l,d,p)+f+t[g]+c[m]>>>0;f=p,p=d,d=Oh(l,30)>>>0,l=u,u=v}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+p>>>0,r[4]=r[4]+f>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}var Rk=T4;function C4(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}var Ah="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Ph="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Nh(e,t,r,i,n,a){let o=typeof r=="string"?C4(r):r,s=typeof i=="string"?Ll(i):i;if(typeof i=="string"&&(i=Ll(i)),i?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,n){if(a??=0,a<0||a+16>n.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)n[a+u]=c[u];return n}return Lo(c)}function Rh(e,t,r,i){return Nh(80,Rk,e,t,r,i)}Rh.DNS=Ah;Rh.URL=Ph;var Mh=Rh;var jh={};function O4(e,t,r){let i;if(e)i=Mk(e.random??e.rng?.()??Fo(),e.msecs,e.seq,t,r);else{let n=Date.now(),a=Fo();A4(jh,n,a),i=Mk(a,jh.msecs,jh.seq,t,r)}return t??Lo(i)}function A4(e,t,r){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function Mk(e,t,r,i,n=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!i)i=new Uint8Array(16),n=0;else if(n<0||n+16>i.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);return t??=Date.now(),r??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],i[n++]=t/1099511627776&255,i[n++]=t/4294967296&255,i[n++]=t/16777216&255,i[n++]=t/65536&255,i[n++]=t/256&255,i[n++]=t&255,i[n++]=112|r>>>28&15,i[n++]=r>>>20&255,i[n++]=128|r>>>14&63,i[n++]=r>>>6&255,i[n++]=r<<2&255|e[10]&3,i[n++]=e[11],i[n++]=e[12],i[n++]=e[13],i[n++]=e[14],i[n++]=e[15],i}var Bo=O4;var jk="gen_ai.operation.name",zk="gen_ai.system",zh="gen_ai.request.model",Dk="gen_ai.response.model",Dh="gen_ai.usage.input_tokens",Uh="gen_ai.usage.output_tokens",Lh="gen_ai.usage.total_tokens",Uk="gen_ai.request.max_tokens",Lk="gen_ai.request.temperature",Fk="gen_ai.request.top_p",Bk="gen_ai.request.frequency_penalty",Zk="gen_ai.request.presence_penalty",Vk="gen_ai.response.finish_reasons",Gk="gen_ai.prompt",Hk="gen_ai.completion",Jk="gen_ai.request.extra_query",Kk="gen_ai.request.extra_body",Wk="gen_ai.serialized.name",qk="gen_ai.serialized.signature",Xk="gen_ai.serialized.doc",Yk="gen_ai.response.id",Qk="gen_ai.response.service_tier",e$="gen_ai.response.system_fingerprint",t$="gen_ai.usage.input_token_details",r$="gen_ai.usage.output_token_details",n$="langsmith.trace.session_id",i$="langsmith.trace.session_name",a$="langsmith.span.kind",o$="langsmith.trace.name",s$="langsmith.metadata",Fh="langsmith.span.tags";var c$="langsmith.request.streaming",u$="langsmith.request.headers";var R4=(...e)=>fetch(...e),M4,l$=Symbol.for("ls:fetch_implementation");var d$=()=>globalThis[l$]===void 0?!0:M4??!1,p$=e=>async(...t)=>{if(e||Me("DEBUG")==="true"){let[i,n]=t;console.log(`\u2192 ${n?.method||"GET"} ${i}`)}let r=await(globalThis[l$]??R4)(...t);return(e||Me("DEBUG")==="true")&&console.log(`\u2190 ${r.status} ${r.statusText} ${r.url}`),r};var Sc=()=>Me("PROJECT")??gr("LANGCHAIN_SESSION")??"default";var f$={};function $a(e){f$[e]||(console.warn(e),f$[e]=!0)}var N=e=>BigInt(e),_$=N("0x9E3779B1"),y$=N("0x85EBCA77"),j4=N("0xC2B2AE3D"),Ii=N("0x9E3779B185EBCA87"),Ea=N("0xC2B2AE3D27D4EB4F"),v$=N("0x165667B19E3779F9"),Gh=N("0x85EBCA77C2B2AE63"),z4=N("0x27D4EB2F165667C5"),D4=N("0x165667919E3779F9"),U4=N("0x9FB21C651E98DF25");function L4(e){let t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=parseInt(e.substring(r,r+2),16);return t}var $n=L4("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),Vo=(N(1)<<N(128))-N(1),me=(N(1)<<N(64))-N(1),Vl=(N(1)<<N(32))-N(1),ei=64,b$=ei/8,F4=8,Fl=4;function De(e,t=0){return new Uint8Array(e.buffer,e.byteOffset+t,e.length-t)}function Ve(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getBigUint64(0,!0)}function Zo(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getUint32(0,!0)}function Bh(e,t=0){return e[t]}var B4=e=>(e&N(255))<<N(56)|(e&N(65280))<<N(40)|(e&N(16711680))<<N(24)|(e&N(4278190080))<<N(8)|(e&N(0xff00000000))>>N(8)|(e&N(0xff0000000000))>>N(24)|(e&N(0xff000000000000))>>N(40)|(e&N(0xff00000000000000))>>N(56),Z4=e=>(e=(e&N(65535))<<N(16)|(e&N(4294901760))>>N(16),e=(e&N(16711935))<<N(8)|(e&N(4278255360))>>N(8),e),V4=(e,t)=>(e&Vl)*(t&Vl)&me,Go=e=>{if(!e)throw new Error("Assert failed")};function G4(e,t){return(e<<t|e>>N(32)-t)&Vl}function w$(e,t,r){for(let i=0;i<b$;i++){let n=Ve(t,i*8),a=n^Ve(r,i*8);e[i^1]+=n,e[i]+=V4(a,a>>N(32))}return e}function m$(e,t,r,i){for(let n=0;n<i;n++)w$(e,De(t,n*ei),De(r,n*8));return e}function H4(e,t){for(let r=0;r<b$;r++){let i=Ve(t,r*8),n=e[r];n=Zh(n,N(47)),n^=i,n*=_$,e[r]=n&me}return e}function Bl(e,t){return x$(e[0]^Ve(t,0),e[1]^Ve(t,F4))}function h$(e,t,r){let i=r;return i+=Bl(e.slice(0),De(t,0*Fl)),i+=Bl(e.slice(2),De(t,4*Fl)),i+=Bl(e.slice(4),De(t,8*Fl)),i+=Bl(e.slice(6),De(t,12*Fl)),En(i&me)}function J4(e,t,r,i,n){let a=Math.floor((r.byteLength-ei)/8),o=ei*a,s=Math.floor((t.byteLength-1)/o);for(let c=0;c<s;c++)e=m$(e,De(t,c*o),r,a),e=n(e,De(r,r.byteLength-ei));{let c=Math.floor((t.byteLength-1-o*s)/ei);e=m$(e,De(t,s*o),r,c),e=i(e,De(t,t.byteLength-ei),De(r,r.byteLength-ei-7))}return e}function K4(e,t,r){let i=new BigUint64Array([j4,Ii,Ea,v$,Gh,y$,z4,_$]);Go(e.length>128),i=J4(i,e,t,w$,H4),Go(i.length*8==64);{let n=h$(i,De(t,11),N(e.byteLength)*Ii&me);return h$(i,De(t,t.byteLength-ei-11),~(N(e.byteLength)*Ea)&me)<<N(64)|n}}function x$(e,t){let r=e*t&Vo;return r&me^r>>N(64)}function g$(e,t,r){return x$((Ve(e,0)^Ve(t,0)+r)&me,(Ve(e,8)^Ve(t,8)-r)&me)}function Zl(e,t,r,i,n){let a=e&me,o=e>>N(64)&me;return a+=g$(t,i,n),a^=Ve(r,0)+Ve(r,8),a&=me,o+=g$(r,De(i,16),n),o^=Ve(t,0)+Ve(t,8),o&=me,o<<N(64)|a}function En(e){return e^=e>>N(37),e*=D4,e&=me,e^=e>>N(32),e}function Gl(e){return e^=e>>N(33),e*=Ea,e&=me,e^=e>>N(29),e*=v$,e&=me,e^=e>>N(32),e}function W4(e,t,r){let i=e.byteLength;Go(i>0&&i<=3);let n=N(Bh(e,i-1))|N(i<<8)|N(Bh(e,0)<<16)|N(Bh(e,i>>1)<<24),a=(N(Zo(t,0))^N(Zo(t,4)))+r,o=(n^a)&me,s=(N(Zo(t,8))^N(Zo(t,12)))-r,c=(G4(Z4(n),N(13))^s)&me;return(Gl(c)&me)<<N(64)|Gl(o)}function Zh(e,t){return e^e>>t}function q4(e,t,r){let i=e.byteLength;Go(i>=4&&i<=8);{let n=Zo(e,0),a=Zo(e,i-4),o=N(n)|N(a)<<N(32),s=(Ve(t,16)^Ve(t,24))+r&me,u=(o^s)*(Ii+(N(i)<<N(2)))&Vo;return u+=(u&me)<<N(65),u&=Vo,u^=u>>N(67),Zh(Zh(u&me,N(35))*U4&me,N(28))|En(u>>N(64))<<N(64)}}function X4(e,t,r){let i=e.byteLength;Go(i>=9&&i<=16);{let n=(Ve(t,32)^Ve(t,40))+r&me,a=(Ve(t,48)^Ve(t,56))-r&me,o=Ve(e),s=Ve(e,i-8),c=(o^s^n)*Ii,u=(c&me)+(N(i-1)<<N(54));c=c&(Vo^me)|u,s^=a,c+=s+(s&Vl)*(y$-N(1))<<N(64),c&=Vo,c^=B4(c>>N(64));let l=(c&me)*Ea;return l+=(c>>N(64))*Ea<<N(64),l&=Vo,En(l&me)|En(l>>N(64))<<N(64)}}function Y4(e,t){let r=e.byteLength;return Go(r<=16),r>8?X4(e,$n,t):r>=4?q4(e,$n,t):r>0?W4(e,$n,t):Gl(t^Ve($n,64)^Ve($n,72))|Gl(t^Ve($n,80)^Ve($n,88))<<N(64)}function Vh(e){return~e+N(1)&me}function Q4(e,t,r){let i=N(e.byteLength)*Ii&me,n=N(e.byteLength-1)/N(32);for(;n>=0;){let s=Number(n);i=Zl(i,De(e,16*s),De(e,e.byteLength-16*(s+1)),De(t,32*s),r),n--}let a=i+(i>>N(64))&me;a=En(a);let o=(i&me)*Ii+(i>>N(64))*Gh+(N(e.byteLength)-r&me)*Ea;return o&=me,o=Vh(En(o)),a|o<<N(64)}function eM(e,t,r){let i=N(e.byteLength)*Ii&me;for(let o=32;o<160;o+=32)i=Zl(i,De(e,o-32),De(e,o-16),De(t,o-32),r);i=En(i&me)|En(i>>N(64))<<N(64);for(let o=160;o<=e.byteLength;o+=32)i=Zl(i,De(e,o-32),De(e,o-16),De(t,3+o-160),r);i=Zl(i,De(e,e.byteLength-16),De(e,e.byteLength-32),De(t,103),Vh(r));let n=i+(i>>N(64))&me;n=En(n);let a=(i&me)*Ii+(i>>N(64))*Gh+(N(e.byteLength)-r&me)*Ea;return a&=me,a=Vh(En(a)),n|a<<N(64)}function S$(e,t=N(0)){let r=e.byteLength;return r<=16?Y4(e,t):r<=128?Q4(e,$n,t):r<=240?eM(e,$n,t):K4(e,$n,t)}function k$(e){let t=new Uint8Array(16),r=new DataView(t.buffer),i=e&me,n=e>>N(64);return r.setBigUint64(0,n,!1),r.setBigUint64(8,i,!1),t}var $$=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function le(e,t){if(!$$.test(e)){let r=t!==void 0?`Invalid UUID for ${t}: ${e}`:`Invalid UUID: ${e}`;throw new Error(r)}return e}function Hl(e){let t=typeof e=="string"?Date.parse(e):e;return Bo({msecs:t,seq:0})}function tM(e){if(!$$.test(e))return null;let t=e[14];return parseInt(t,16)}function rM(e){let t=e.replace(/-/g,""),r=new Uint8Array(16);for(let i=0;i<16;i++)r[i]=parseInt(t.slice(i*2,i*2+2),16);return r}function nM(e){let t=Array.from(e).map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var iM=new TextEncoder;function aM(e){let t=iM.encode(e),r=S$(t);return k$(r)}function kc(e,t){let r=`${e}:${t}`,i=aM(r),n=new Uint8Array(16);if(tM(e)===7){let o=rM(e);n.set(o.slice(0,6),0)}else{let o=Date.now();n[0]=o/1099511627776&255,n[1]=o/4294967296&255,n[2]=o/16777216&255,n[3]=o/65536&255,n[4]=o/256&255,n[5]=o&255}return n[6]=112|i[0]&15,n[7]=i[1],n[8]=128|i[2]&63,n.set(i.slice(3,10),9),nM(n)}var $c={join:(...e)=>e.join("/"),dirname:e=>e.split("/").slice(0,-1).join("/")};async function E$(e){}async function I$(e,t){}async function T$(e){return[]}async function C$(e){return{size:0}}function Jl(e){return!1}function O$(e){return""}function sM(e,t){return t===null?!1:Date.now()-e.createdAt>t*1e3}var Kl=class{constructor(t={}){Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ttlSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshIntervalSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metrics",{enumerable:!0,configurable:!0,writable:!0,value:{hits:0,misses:0,refreshes:0,refreshErrors:0}}),this.configure(t)}get metrics(){return{...this._metrics}}get totalRequests(){return this._metrics.hits+this._metrics.misses}get hitRate(){let t=this.totalRequests;return t>0?this._metrics.hits/t:0}resetMetrics(){this._metrics={hits:0,misses:0,refreshes:0,refreshErrors:0}}get(t,r){if(this.maxSize===0)return;let i=this.cache.get(t);if(!i){this._metrics.misses+=1;return}return this.cache.delete(t),this.cache.set(t,{...i,refreshFunc:r}),this._metrics.hits+=1,i.value}set(t,r,i){if(this.maxSize===0)return;if(this.refreshTimer===void 0&&this.startRefreshLoop(),!this.cache.has(t)&&this.cache.size>=this.maxSize){let a=this.cache.keys().next().value;a!==void 0&&this.cache.delete(a)}let n={value:r,createdAt:Date.now(),refreshFunc:i};this.cache.delete(t),this.cache.set(t,n)}invalidate(t){this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}stop(){this.refreshTimer&&(clearInterval(this.refreshTimer),this.refreshTimer=void 0)}dump(t){let r={};for(let[a,o]of this.cache.entries())r[a]=o.value;let i=$c.dirname(t);Jl(i)||void 0;let n=`${t}.tmp`;try{JSON.stringify({entries:r},null,2)}catch(a){throw Jl(n)&&void 0,a}}load(t){if(!Jl(t))return 0;let r;try{let a=O$(t);r=JSON.parse(a).entries??null}catch{return 0}if(!r)return 0;let i=0,n=Date.now();for(let[a,o]of Object.entries(r)){if(this.cache.size>=this.maxSize)break;let s={value:o,createdAt:n};this.cache.set(a,s),i+=1}return i}startRefreshLoop(){this.stop(),this.ttlSeconds!==null&&(this.refreshTimer=setInterval(()=>{this.refreshStaleEntries().catch(t=>{console.warn("Unexpected error in cache refresh loop:",t)})},this.refreshIntervalSeconds*1e3),this.refreshTimer.unref&&this.refreshTimer.unref())}getStaleEntries(){let t=[];for(let[r,i]of this.cache.entries())sM(i,this.ttlSeconds)&&t.push([r,i]);return t}async refreshStaleEntries(){let t=this.getStaleEntries();if(t.length!==0){for(let[r,i]of t)if(i.refreshFunc!==void 0)try{let n=await i.refreshFunc();this.set(r,n,i.refreshFunc),this._metrics.refreshes+=1}catch(n){this._metrics.refreshErrors+=1,console.warn(`Failed to refresh cache entry ${r}:`,n)}}}configure(t){this.stop(),this.refreshIntervalSeconds=t.refreshIntervalSeconds??60,this.maxSize=t.maxSize??100,this.ttlSeconds=t.ttlSeconds??300}},Wl=new Kl;var ql="0.5.25";var Tn,cM=()=>typeof window<"u"&&typeof window.document<"u",uM=()=>typeof globalThis=="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",lM=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),N$=()=>typeof Deno<"u",dM=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!N$(),Kh=()=>Tn||(typeof Bun<"u"?Tn="bun":cM()?Tn="browser":dM()?Tn="node":uM()?Tn="webworker":lM()?Tn="jsdom":N$()?Tn="deno":Tn="other",Tn),Hh;function Xl(){if(Hh===void 0){let e=Kh(),t=fM();Hh={library:"langsmith",runtime:e,sdk:"langsmith-js",sdk_version:ql,...t}}return Hh}function Wh(){let e=pM(),t={},r=["LANGCHAIN_API_KEY","LANGCHAIN_ENDPOINT","LANGCHAIN_TRACING_V2","LANGCHAIN_PROJECT","LANGCHAIN_SESSION","LANGSMITH_API_KEY","LANGSMITH_ENDPOINT","LANGSMITH_TRACING_V2","LANGSMITH_PROJECT","LANGSMITH_SESSION"];for(let[i,n]of Object.entries(e))typeof n=="string"&&!r.includes(i)&&!i.toLowerCase().includes("key")&&!i.toLowerCase().includes("secret")&&!i.toLowerCase().includes("token")&&(i==="LANGCHAIN_REVISION_ID"?t.revision_id=n:t[i]=n);return t}function pM(){let e={};try{if(typeof process<"u"&&process.env)for(let[t,r]of Object.entries(process.env))(t.startsWith("LANGCHAIN_")||t.startsWith("LANGSMITH_"))&&r!=null&&((t.toLowerCase().includes("key")||t.toLowerCase().includes("secret")||t.toLowerCase().includes("token"))&&typeof r=="string"?e[t]=r.slice(0,2)+"*".repeat(r.length-4)+r.slice(-2):e[t]=r)}catch{}return e}function gr(e){try{return typeof process<"u"?process.env?.[e]:void 0}catch{return}}function Me(e){return gr(`LANGSMITH_${e}`)||gr(`LANGCHAIN_${e}`)}var Jh;function fM(){if(Jh!==void 0)return Jh;let e=["VERCEL_GIT_COMMIT_SHA","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","COMMIT_REF","RENDER_GIT_COMMIT","CI_COMMIT_SHA","CIRCLE_SHA1","CF_PAGES_COMMIT_SHA","REACT_APP_GIT_SHA","SOURCE_VERSION","GITHUB_SHA","TRAVIS_COMMIT","GIT_COMMIT","BUILD_VCS_NUMBER","bamboo_planRepository_revision","Build.SourceVersion","BITBUCKET_COMMIT","DRONE_COMMIT_SHA","SEMAPHORE_GIT_SHA","BUILDKITE_COMMIT"],t={};for(let r of e){let i=gr(r);i!==void 0&&(t[r]=i)}return Jh=t,t}function A$(){return gr("OTEL_ENABLED")==="true"||Me("OTEL_ENABLED")==="true"}var P$=new Set(["langsmith","otel"]);function Yl(e){if(e!==void 0)return e;let t=Me("TRACING_MODE");if(t!==void 0&&t!==""){let r=t.toLowerCase();if(!P$.has(r))throw new Error(`Invalid LANGSMITH_TRACING_MODE=${JSON.stringify(t)}. Must be one of: ${[...P$].sort().join(", ")}`);return A$()&&console.warn("Both LANGSMITH_TRACING_MODE and the legacy OTEL_ENABLED / LANGSMITH_OTEL_ENABLED env vars are set. LANGSMITH_TRACING_MODE takes precedence."),r}return A$()?"otel":"langsmith"}var Yh=class{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan(t,...r){!this.hasWarned&&Yl()==="otel"&&(console.warn('OTel tracing mode is active (via LANGSMITH_TRACING_MODE, OTEL_ENABLED, or LANGSMITH_OTEL_ENABLED), but the required OTEL instances have not been initialized. Please add:\n```\nimport { initializeOTEL } from "langsmith/experimental/otel/setup";\ninitializeOTEL();\n```\nat the beginning of your code.'),this.hasWarned=!0);let i;if(r.length===1&&typeof r[0]=="function"?i=r[0]:r.length===2&&typeof r[1]=="function"?i=r[1]:r.length===3&&typeof r[2]=="function"&&(i=r[2]),typeof i=="function")return i()}},Qh=class{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new Yh})}getTracer(t,r){return this.mockTracer}getActiveSpan(){}setSpan(t,r){return t}getSpan(t){}setSpanContext(t,r){return t}getTracerProvider(){}setGlobalTracerProvider(t){return!1}},eg=class{active(){return{}}with(t,r){return r()}},qh=Symbol.for("ls:otel_trace"),Xh=Symbol.for("ls:otel_context"),R$=Symbol.for("ls:otel_get_default_otlp_tracer_provider"),mM=new Qh,hM=new eg,tg=class{getTraceInstance(){return globalThis[qh]??mM}getContextInstance(){return globalThis[Xh]??hM}initializeGlobalInstances(t){globalThis[qh]===void 0&&(globalThis[qh]=t.trace),globalThis[Xh]===void 0&&(globalThis[Xh]=t.context)}setDefaultOTLPTracerComponents(t){globalThis[R$]=t}getDefaultOTLPTracerComponents(){return globalThis[R$]??void 0}},rg=new tg;function Ql(){return rg.getTraceInstance()}function M$(){return rg.getContextInstance()}function j$(){return rg.getDefaultOTLPTracerComponents()}var gM={llm:"chat",tool:"execute_tool",retriever:"embeddings",embedding:"embeddings",prompt:"chat"};function _M(e){return gM[e]||e}var ed=class{constructor(){Object.defineProperty(this,"spans",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}exportBatch(t,r){for(let i of t)try{if(!i.run)continue;if(i.operation==="post"){let n=this.createSpanForRun(i,i.run,r.get(i.id));n&&!i.run.end_time&&this.spans.set(i.id,n)}else this.updateSpanForRun(i,i.run)}catch(n){console.error(`Error processing operation ${i.id}:`,n)}}createSpanForRun(t,r,i){let n=i&&Ql().getSpan(i);if(n)try{return this.finishSpanSetup(n,r,t)}catch(a){console.error(`Failed to create span for run ${t.id}:`,a);return}}finishSpanSetup(t,r,i){return this.setSpanAttributes(t,r,i),r.error?(t.setStatus({code:2}),t.recordException(new Error(r.error))):t.setStatus({code:1}),r.end_time&&t.end(new Date(r.end_time)),t}updateSpanForRun(t,r){try{let i=this.spans.get(t.id);if(!i){console.debug(`No span found for run ${t.id} during update`);return}this.setSpanAttributes(i,r,t),r.error?(i.setStatus({code:2}),i.recordException(new Error(r.error))):i.setStatus({code:1});let n=r.end_time;n&&(i.end(new Date(n)),this.spans.delete(t.id))}catch(i){console.error(`Failed to update span for run ${t.id}:`,i)}}extractModelName(t){if(t.extra?.metadata){let r=t.extra.metadata;if(r.ls_model_name)return r.ls_model_name;if(r.invocation_params){let i=r.invocation_params;if(i.model)return i.model;if(i.model_name)return i.model_name}}}setSpanAttributes(t,r,i){if("run_type"in r&&r.run_type){t.setAttribute(a$,r.run_type);let s=_M(r.run_type||"chain");t.setAttribute(jk,s)}"name"in r&&r.name&&t.setAttribute(o$,r.name),"session_id"in r&&r.session_id&&t.setAttribute(n$,r.session_id),"session_name"in r&&r.session_name&&t.setAttribute(i$,r.session_name),this.setGenAiSystem(t,r);let n=this.extractModelName(r);n&&t.setAttribute(zh,n),"prompt_tokens"in r&&typeof r.prompt_tokens=="number"&&t.setAttribute(Dh,r.prompt_tokens),"completion_tokens"in r&&typeof r.completion_tokens=="number"&&t.setAttribute(Uh,r.completion_tokens),"total_tokens"in r&&typeof r.total_tokens=="number"&&t.setAttribute(Lh,r.total_tokens),this.setInvocationParameters(t,r);let a=r.extra?.metadata||{};for(let[s,c]of Object.entries(a))c!=null&&t.setAttribute(`${s$}.${s}`,String(c));let o=r.tags;if(o&&Array.isArray(o)?t.setAttribute(Fh,o.join(", ")):o&&t.setAttribute(Fh,String(o)),"serialized"in r&&typeof r.serialized=="object"){let s=r.serialized;s.name&&t.setAttribute(Wk,String(s.name)),s.signature&&t.setAttribute(qk,String(s.signature)),s.doc&&t.setAttribute(Xk,String(s.doc))}this.setIOAttributes(t,i)}setGenAiSystem(t,r){let i="langchain",n=this.extractModelName(r);if(n){let a=n.toLowerCase();a.includes("anthropic")||a.startsWith("claude")?i="anthropic":a.includes("bedrock")?i="aws.bedrock":a.includes("azure")&&a.includes("openai")?i="az.ai.openai":a.includes("azure")&&a.includes("inference")?i="az.ai.inference":a.includes("cohere")?i="cohere":a.includes("deepseek")?i="deepseek":a.includes("gemini")?i="gemini":a.includes("groq")?i="groq":a.includes("watson")||a.includes("ibm")?i="ibm.watsonx.ai":a.includes("mistral")?i="mistral_ai":a.includes("gpt")||a.includes("openai")?i="openai":a.includes("perplexity")||a.includes("sonar")?i="perplexity":a.includes("vertex")?i="vertex_ai":(a.includes("xai")||a.includes("grok"))&&(i="xai")}t.setAttribute(zk,i)}setInvocationParameters(t,r){if(!r.extra?.metadata?.invocation_params)return;let i=r.extra.metadata.invocation_params;i.max_tokens!==void 0&&t.setAttribute(Uk,i.max_tokens),i.temperature!==void 0&&t.setAttribute(Lk,i.temperature),i.top_p!==void 0&&t.setAttribute(Fk,i.top_p),i.frequency_penalty!==void 0&&t.setAttribute(Bk,i.frequency_penalty),i.presence_penalty!==void 0&&t.setAttribute(Zk,i.presence_penalty)}setIOAttributes(t,r){if(r.run.inputs)try{let i=r.run.inputs;typeof i=="object"&&i!==null&&(i.model&&Array.isArray(i.messages)&&t.setAttribute(zh,i.model),i.stream!==void 0&&t.setAttribute(c$,i.stream),i.extra_headers&&t.setAttribute(u$,JSON.stringify(i.extra_headers)),i.extra_query&&t.setAttribute(Jk,JSON.stringify(i.extra_query)),i.extra_body&&t.setAttribute(Kk,JSON.stringify(i.extra_body))),t.setAttribute(Gk,JSON.stringify(i))}catch(i){console.debug(`Failed to process inputs for run ${r.id}`,i)}if(r.run.outputs)try{let i=r.run.outputs,n=this.getUnifiedRunTokens(i);if(n&&(t.setAttribute(Dh,n[0]),t.setAttribute(Uh,n[1]),t.setAttribute(Lh,n[0]+n[1])),i&&typeof i=="object"){if(i.model&&t.setAttribute(Dk,String(i.model)),i.id&&t.setAttribute(Yk,i.id),i.choices&&Array.isArray(i.choices)){let a=i.choices.map(o=>o.finish_reason).filter(o=>o).map(String);a.length>0&&t.setAttribute(Vk,a.join(", "))}if(i.service_tier&&t.setAttribute(Qk,i.service_tier),i.system_fingerprint&&t.setAttribute(e$,i.system_fingerprint),i.usage_metadata&&typeof i.usage_metadata=="object"){let a=i.usage_metadata;a.input_token_details&&t.setAttribute(t$,JSON.stringify(a.input_token_details)),a.output_token_details&&t.setAttribute(r$,JSON.stringify(a.output_token_details))}}t.setAttribute(Hk,JSON.stringify(i))}catch(i){console.debug(`Failed to process outputs for run ${r.id}`,i)}}getUnifiedRunTokens(t){if(!t)return null;let r=this.extractUnifiedRunTokens(t.usage_metadata);if(r)return r;let i=Object.keys(t);for(let o of i){let s=t[o];if(!(!s||typeof s!="object")&&(r=this.extractUnifiedRunTokens(s.usage_metadata),r||s.lc===1&&s.kwargs&&typeof s.kwargs=="object"&&(r=this.extractUnifiedRunTokens(s.kwargs.usage_metadata),r)))return r}let n=t.generations||[];if(!Array.isArray(n))return null;let a=Array.isArray(n[0])?n.flat():n;for(let o of a)if(typeof o=="object"&&o.message&&typeof o.message=="object"&&o.message.kwargs&&typeof o.message.kwargs=="object"&&(r=this.extractUnifiedRunTokens(o.message.kwargs.usage_metadata),r))return r;return null}extractUnifiedRunTokens(t){return!t||typeof t!="object"||typeof t.input_tokens!="number"||typeof t.output_tokens!="number"?null:[t.input_tokens,t.output_tokens]}};var yM=Object.prototype.toString,vM=e=>yM.call(e)==="[object Error]",bM=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function ng(e){if(!(e&&vM(e)&&e.name==="TypeError"&&typeof e.message=="string"))return!1;let{message:r,stack:i}=e;return r==="Load failed"?i===void 0||"__sentry_captured__"in e:r.startsWith("error sending request for url")?!0:bM.has(r)}function wM(e){if(typeof e=="number"){if(e<0)throw new TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(e!==void 0)throw new TypeError("Expected `retries` to be a number or Infinity.")}function td(e,t,{min:r=0,allowInfinity:i=!1}={}){if(t!==void 0){if(typeof t!="number"||Number.isNaN(t))throw new TypeError(`Expected \`${e}\` to be a number${i?" or Infinity":""}.`);if(!i&&!Number.isFinite(t))throw new TypeError(`Expected \`${e}\` to be a finite number.`);if(t<r)throw new TypeError(`Expected \`${e}\` to be \u2265 ${r}.`)}}var ig=class extends Error{constructor(t){super(),t instanceof Error?(this.originalError=t,{message:t}=t):(this.originalError=new Error(t),this.originalError.stack=this.stack),this.name="AbortError",this.message=t}};function xM(e,t){let r=Math.max(1,e+1),i=t.randomize?Math.random()+1:1,n=Math.round(i*t.minTimeout*t.factor**(r-1));return n=Math.min(n,t.maxTimeout),n}function z$(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function SM({error:e,attemptNumber:t,retriesConsumed:r,startTime:i,options:n}){let a=e instanceof Error?e:new TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(a instanceof ig)throw a.originalError;let o=Number.isFinite(n.retries)?Math.max(0,n.retries-r):n.retries,s=n.maxRetryTime??Number.POSITIVE_INFINITY,c=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:r});if(await n.onFailedAttempt(c),z$(i,s)<=0)throw a;let u=await n.shouldConsumeRetry(c),l=z$(i,s);if(l<=0||o<=0)throw a;if(a instanceof TypeError&&!ng(a)){if(u)throw a;return n.signal?.throwIfAborted(),!1}if(!await n.shouldRetry(c))throw a;if(!u)return n.signal?.throwIfAborted(),!1;let d=xM(r,n),p=Math.min(d,l);return p>0&&await new Promise((f,m)=>{let g=()=>{clearTimeout(v),n.signal?.removeEventListener("abort",g),m(n.signal.reason)},v=setTimeout(()=>{n.signal?.removeEventListener("abort",g),f()},p);n.unref&&v.unref?.(),n.signal?.addEventListener("abort",g,{once:!0})}),n.signal?.throwIfAborted(),!0}async function ag(e,t={}){if(t={...t},wM(t.retries),Object.hasOwn(t,"forever"))throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=Number.POSITIVE_INFINITY,t.maxRetryTime??=Number.POSITIVE_INFINITY,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,td("factor",t.factor,{min:0,allowInfinity:!1}),td("minTimeout",t.minTimeout,{min:0,allowInfinity:!1}),td("maxTimeout",t.maxTimeout,{min:0,allowInfinity:!0}),td("maxRetryTime",t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let r=0,i=0,n=performance.now();for(;!Number.isFinite(t.retries)||i<=t.retries;){r++;try{t.signal?.throwIfAborted();let a=await e(r);return t.signal?.throwIfAborted(),a}catch(a){await SM({error:a,attemptNumber:r,retriesConsumed:i,startTime:n,options:t})&&i++}}throw new Error("Retry attempts exhausted without throwing an error.")}var sd=da(od(),1),J$="default"in sd.default?sd.default.default:sd.default;var PM=[408,425,429,500,502,503,504],Ic=class{constructor(t){Object.defineProperty(this,"maxConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxRetries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxQueueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFailedResponseHook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.maxConcurrency=t.maxConcurrency??1/0,this.maxRetries=t.maxRetries??6,this.maxQueueSizeBytes=t.maxQueueSizeBytes,this.queue=new J$({concurrency:this.maxConcurrency}),this.onFailedResponseHook=t?.onFailedResponseHook}call(t,...r){return this.callWithOptions({},t,...r)}callWithOptions(t,r,...i){let n=t.sizeBytes??0;if(this.maxQueueSizeBytes!==void 0&&n>0&&this.queueSizeBytes+n>this.maxQueueSizeBytes)return Promise.reject(new Error(`Queue size limit (${this.maxQueueSizeBytes} bytes) exceeded. Current queue size: ${this.queueSizeBytes} bytes, attempted addition: ${n} bytes.`));n>0&&(this.queueSizeBytes+=n);let a=this.onFailedResponseHook,o=this.queue.add(()=>ag(()=>r(...i).catch(s=>{throw s instanceof Error?s:new Error(s)}),{async onFailedAttempt({error:s}){if(typeof s!="object"||s==null)throw s;let c="message"in s&&typeof s.message=="string"?s.message:void 0;if(c?.startsWith("Cancel")||c?.startsWith("TimeoutError")||c?.startsWith("AbortError")||"name"in s&&s.name==="TimeoutError"||"code"in s&&s.code==="ECONNABORTED")throw s;let u="response"in s?s.response:void 0;if(a&&await a(u))return;let l=u?.status??("status"in s?s.status:void 0);if(l!=null&&(typeof l=="number"||typeof l=="string")&&!PM.includes(+l))throw s},retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0});return n>0&&(o=o.finally(()=>{this.queueSizeBytes-=n})),t.signal?Promise.race([o,new Promise((s,c)=>{t.signal?.addEventListener("abort",()=>{c(new Error("AbortError"))})})]):o}};function pg(e){return typeof e?._getType=="function"}function fg(e){let t={type:e._getType(),data:{content:e.content}};return e?.additional_kwargs&&Object.keys(e.additional_kwargs).length>0&&(t.data.additional_kwargs={...e.additional_kwargs}),t}function ud(e){return`Invalid prompt identifier format: "${e}". Expected one of:
|
|
21
|
+
`)}function o4(e){if(e.data!==void 0)return e;{let t=e;return{type:t.type,data:{content:t.text,role:t.role,name:void 0,tool_call_id:void 0}}}}function bc(e){let t=o4(e);switch(t.type){case"human":return new Ye(t.data);case"ai":return new Ie(t.data);case"system":return new Bt(t.data);case"function":if(t.data.name===void 0)throw new Error("Name must be defined for function messages");return new ba(t.data);case"tool":if(t.data.tool_call_id===void 0)throw new Error("Tool call ID must be defined for tool messages");return new Ft(t.data);case"generic":if(t.data.role===void 0)throw new Error("Role must be defined for chat messages");return new Wr(t.data);default:throw new Error(`Got unexpected type: ${t.type}`)}}function wk(e){return e.map(bc)}function xk(e){return e.map(t=>t.toDict())}function Sa(e){let t=e._getType();if(t==="human")return new xa({...e});if(t==="ai"){let r={...e};return"tool_calls"in r&&(r={...r,tool_call_chunks:r.tool_calls?.map(i=>({...i,type:"tool_call_chunk",index:void 0,args:JSON.stringify(i.args)}))}),new mt({...r})}else{if(t==="system")return new Qn({...e});if(t==="function")return new wa({...e});if(Wr.isInstance(e))return new va({...e});throw new Error("Unknown message type.")}}function zl(e){let t=e.reduce((n,a)=>{let o=n.findIndex(([s])=>"id"in a&&a.id&&"index"in a&&a.index!==void 0?a.id===s.id&&a.index===s.index:"id"in a&&a.id?a.id===s.id:"index"in a&&a.index!==void 0?a.index===s.index:!1);return o!==-1?n[o].push(a):n.push([a]),n},[]),r=[],i=[];for(let n of t){let a=null,o=n[0]?.name??"",s=n.map(l=>l.args||"").join("").trim(),c=s.length?s:"{}",u=n[0]?.id;try{if(a=kn(c),!u||a===null||typeof a!="object"||Array.isArray(a))throw new Error("Malformed tool call chunk args.");r.push({name:o,args:a,id:u,type:"tool_call"})}catch{i.push({name:o,args:c,id:u,error:"Malformed args.",type:"invalid_tool_call"})}}return{tool_call_chunks:e,tool_calls:r,invalid_tool_calls:i}}var Sk=I({BaseCache:()=>$k,InMemoryCache:()=>bh,defaultHashKeyEncoder:()=>kk,deserializeStoredGeneration:()=>s4,serializeGeneration:()=>c4}),kk=(...e)=>Oo(e.join("_"));function s4(e){return e.message!==void 0?{text:e.text,message:bc(e.message)}:{text:e.text}}function c4(e){let t={text:e.text};return e.message!==void 0&&(t.message=e.message.toDict()),t}var $k=class{keyEncoder=kk;makeDefaultKeyEncoder(e){this.keyEncoder=e}},u4=new Map,bh=class Ek extends $k{cache;constructor(t){super(),this.cache=t??new Map}lookup(t,r){return Promise.resolve(this.cache.get(this.keyEncoder(t,r))??null)}async update(t,r,i){this.cache.set(this.keyEncoder(t,r),i)}static global(){return new Ek(u4)}};var Ik=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function l4(e){return typeof e=="string"&&Ik.test(e)}var Ei=l4;function d4(e){if(!Ei(e))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var wh=d4;var St=[];for(let e=0;e<256;++e)St.push((e+256).toString(16).slice(1));function Do(e,t=0){return(St[e[t+0]]+St[e[t+1]]+St[e[t+2]]+St[e[t+3]]+"-"+St[e[t+4]]+St[e[t+5]]+"-"+St[e[t+6]]+St[e[t+7]]+"-"+St[e[t+8]]+St[e[t+9]]+"-"+St[e[t+10]]+St[e[t+11]]+St[e[t+12]]+St[e[t+13]]+St[e[t+14]]+St[e[t+15]]).toLowerCase()}var xh,p4=new Uint8Array(16);function Uo(){if(!xh){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");xh=crypto.getRandomValues.bind(crypto)}return xh(p4)}function f4(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}var Tk="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Ck="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Sh(e,t,r,i,n,a){let o=typeof r=="string"?f4(r):r,s=typeof i=="string"?wh(i):i;if(typeof i=="string"&&(i=wh(i)),i?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,n){if(a=a||0,a<0||a+16>n.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)n[a+u]=c[u];return n}return Do(c)}var m4=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),kh={randomUUID:m4};function h4(e,t,r){if(kh.randomUUID&&!t&&!e)return kh.randomUUID();e=e||{};let i=e.random??e.rng?.()??Uo();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return Do(i)}var $h=h4;function g4(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function Eh(e,t){return e<<t|e>>>32-t}function _4(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],i=new Uint8Array(e.length+1);i.set(e),i[e.length]=128,e=i;let n=e.length/4+2,a=Math.ceil(n/16),o=new Array(a);for(let s=0;s<a;++s){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=e[s*64+u*4]<<24|e[s*64+u*4+1]<<16|e[s*64+u*4+2]<<8|e[s*64+u*4+3];o[s]=c}o[a-1][14]=(e.length-1)*8/Math.pow(2,32),o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<a;++s){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=o[s][m];for(let m=16;m<80;++m)c[m]=Eh(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],p=r[3],f=r[4];for(let m=0;m<80;++m){let g=Math.floor(m/20),v=Eh(u,5)+g4(g,l,d,p)+f+t[g]+c[m]>>>0;f=p,p=d,d=Eh(l,30)>>>0,l=u,u=v}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+p>>>0,r[4]=r[4]+f>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}var Ok=_4;function Ih(e,t,r,i){return Sh(80,Ok,e,t,r,i)}Ih.DNS=Tk;Ih.URL=Ck;var Ul=Ih;var Th={};function y4(e,t,r){let i;if(e)i=Ak(e.random??e.rng?.()??Uo(),e.msecs,e.seq,t,r);else{let n=Date.now(),a=Uo();v4(Th,n,a),i=Ak(a,Th.msecs,Th.seq,t,r)}return t??Do(i)}function v4(e,t,r){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function Ak(e,t,r,i,n=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!i)i=new Uint8Array(16),n=0;else if(n<0||n+16>i.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);return t??=Date.now(),r??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],i[n++]=t/1099511627776&255,i[n++]=t/4294967296&255,i[n++]=t/16777216&255,i[n++]=t/65536&255,i[n++]=t/256&255,i[n++]=t&255,i[n++]=112|r>>>28&15,i[n++]=r>>>20&255,i[n++]=128|r>>>14&63,i[n++]=r>>>6&255,i[n++]=r<<2&255|e[10]&3,i[n++]=e[11],i[n++]=e[12],i[n++]=e[13],i[n++]=e[14],i[n++]=e[15],i}var Or=y4;var Pk=I({BaseCallbackHandler:()=>Xr,callbackHandlerPrefersStreaming:()=>wc,isBaseCallbackHandler:()=>Ch}),w4=class{};function wc(e){return"lc_prefer_streaming"in e&&e.lc_prefer_streaming}var Xr=class extends w4{lc_serializable=!1;get lc_namespace(){return["langchain_core","callbacks",this.name]}get lc_secrets(){}get lc_attributes(){}get lc_aliases(){}get lc_serializable_keys(){}static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,Co(this.constructor)]}lc_kwargs;ignoreLLM=!1;ignoreChain=!1;ignoreAgent=!1;ignoreRetriever=!1;ignoreCustomEvent=!1;raiseError=!1;awaitHandlers=Ut("LANGCHAIN_CALLBACKS_BACKGROUND")==="false";constructor(e){super(),this.lc_kwargs=e||{},e&&(this.ignoreLLM=e.ignoreLLM??this.ignoreLLM,this.ignoreChain=e.ignoreChain??this.ignoreChain,this.ignoreAgent=e.ignoreAgent??this.ignoreAgent,this.ignoreRetriever=e.ignoreRetriever??this.ignoreRetriever,this.ignoreCustomEvent=e.ignoreCustomEvent??this.ignoreCustomEvent,this.raiseError=e.raiseError??this.raiseError,this.awaitHandlers=this.raiseError||(e._awaitHandler??this.awaitHandlers))}copy(){return new this.constructor(this)}toJSON(){return at.prototype.toJSON.call(this)}toJSONNotImplemented(){return at.prototype.toJSONNotImplemented.call(this)}static fromMethods(e){class t extends Xr{name=Or();constructor(){super(),Object.assign(this,e)}}return new t}},Ch=e=>{let t=e;return t!==void 0&&typeof t.copy=="function"&&typeof t.name=="string"&&typeof t.awaitHandlers=="boolean"};var Nk=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function x4(e){return typeof e=="string"&&Nk.test(e)}var xc=x4;function S4(e){if(!xc(e))throw TypeError("Invalid UUID");let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var Ll=S4;var kt=[];for(let e=0;e<256;++e)kt.push((e+256).toString(16).slice(1));function Lo(e,t=0){return(kt[e[t+0]]+kt[e[t+1]]+kt[e[t+2]]+kt[e[t+3]]+"-"+kt[e[t+4]]+kt[e[t+5]]+"-"+kt[e[t+6]]+kt[e[t+7]]+"-"+kt[e[t+8]]+kt[e[t+9]]+"-"+kt[e[t+10]]+kt[e[t+11]]+kt[e[t+12]]+kt[e[t+13]]+kt[e[t+14]]+kt[e[t+15]]).toLowerCase()}var k4=new Uint8Array(16);function Fo(){return crypto.getRandomValues(k4)}function $4(e,t,r){return!t&&!e&&crypto.randomUUID?crypto.randomUUID():E4(e,t,r)}function E4(e,t,r){e=e||{};let i=e.random??e.rng?.()??Fo();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let n=0;n<16;++n)t[r+n]=i[n];return t}return Lo(i)}var ka=$4;function I4(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:return t^r^i;case 2:return t&r^t&i^r&i;case 3:return t^r^i}}function Oh(e,t){return e<<t|e>>>32-t}function T4(e){let t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520],i=new Uint8Array(e.length+1);i.set(e),i[e.length]=128,e=i;let n=e.length/4+2,a=Math.ceil(n/16),o=new Array(a);for(let s=0;s<a;++s){let c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=e[s*64+u*4]<<24|e[s*64+u*4+1]<<16|e[s*64+u*4+2]<<8|e[s*64+u*4+3];o[s]=c}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let s=0;s<a;++s){let c=new Uint32Array(80);for(let m=0;m<16;++m)c[m]=o[s][m];for(let m=16;m<80;++m)c[m]=Oh(c[m-3]^c[m-8]^c[m-14]^c[m-16],1);let u=r[0],l=r[1],d=r[2],p=r[3],f=r[4];for(let m=0;m<80;++m){let g=Math.floor(m/20),v=Oh(u,5)+I4(g,l,d,p)+f+t[g]+c[m]>>>0;f=p,p=d,d=Oh(l,30)>>>0,l=u,u=v}r[0]=r[0]+u>>>0,r[1]=r[1]+l>>>0,r[2]=r[2]+d>>>0,r[3]=r[3]+p>>>0,r[4]=r[4]+f>>>0}return Uint8Array.of(r[0]>>24,r[0]>>16,r[0]>>8,r[0],r[1]>>24,r[1]>>16,r[1]>>8,r[1],r[2]>>24,r[2]>>16,r[2]>>8,r[2],r[3]>>24,r[3]>>16,r[3]>>8,r[3],r[4]>>24,r[4]>>16,r[4]>>8,r[4])}var Rk=T4;function C4(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}var Ah="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Ph="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function Nh(e,t,r,i,n,a){let o=typeof r=="string"?C4(r):r,s=typeof i=="string"?Ll(i):i;if(typeof i=="string"&&(i=Ll(i)),i?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,n){if(a??=0,a<0||a+16>n.length)throw new RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let u=0;u<16;++u)n[a+u]=c[u];return n}return Lo(c)}function Rh(e,t,r,i){return Nh(80,Rk,e,t,r,i)}Rh.DNS=Ah;Rh.URL=Ph;var Mh=Rh;var jh={};function O4(e,t,r){let i;if(e)i=Mk(e.random??e.rng?.()??Fo(),e.msecs,e.seq,t,r);else{let n=Date.now(),a=Fo();A4(jh,n,a),i=Mk(a,jh.msecs,jh.seq,t,r)}return t??Lo(i)}function A4(e,t,r){return e.msecs??=-1/0,e.seq??=0,t>e.msecs?(e.seq=r[6]<<23|r[7]<<16|r[8]<<8|r[9],e.msecs=t):(e.seq=e.seq+1|0,e.seq===0&&e.msecs++),e}function Mk(e,t,r,i,n=0){if(e.length<16)throw new Error("Random bytes length must be >= 16");if(!i)i=new Uint8Array(16),n=0;else if(n<0||n+16>i.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);return t??=Date.now(),r??=e[6]*127<<24|e[7]<<16|e[8]<<8|e[9],i[n++]=t/1099511627776&255,i[n++]=t/4294967296&255,i[n++]=t/16777216&255,i[n++]=t/65536&255,i[n++]=t/256&255,i[n++]=t&255,i[n++]=112|r>>>28&15,i[n++]=r>>>20&255,i[n++]=128|r>>>14&63,i[n++]=r>>>6&255,i[n++]=r<<2&255|e[10]&3,i[n++]=e[11],i[n++]=e[12],i[n++]=e[13],i[n++]=e[14],i[n++]=e[15],i}var Bo=O4;var jk="gen_ai.operation.name",zk="gen_ai.system",zh="gen_ai.request.model",Dk="gen_ai.response.model",Dh="gen_ai.usage.input_tokens",Uh="gen_ai.usage.output_tokens",Lh="gen_ai.usage.total_tokens",Uk="gen_ai.request.max_tokens",Lk="gen_ai.request.temperature",Fk="gen_ai.request.top_p",Bk="gen_ai.request.frequency_penalty",Zk="gen_ai.request.presence_penalty",Vk="gen_ai.response.finish_reasons",Gk="gen_ai.prompt",Hk="gen_ai.completion",Jk="gen_ai.request.extra_query",Kk="gen_ai.request.extra_body",Wk="gen_ai.serialized.name",qk="gen_ai.serialized.signature",Xk="gen_ai.serialized.doc",Yk="gen_ai.response.id",Qk="gen_ai.response.service_tier",e$="gen_ai.response.system_fingerprint",t$="gen_ai.usage.input_token_details",r$="gen_ai.usage.output_token_details",n$="langsmith.trace.session_id",i$="langsmith.trace.session_name",a$="langsmith.span.kind",o$="langsmith.trace.name",s$="langsmith.metadata",Fh="langsmith.span.tags";var c$="langsmith.request.streaming",u$="langsmith.request.headers";var R4=(...e)=>fetch(...e),M4,l$=Symbol.for("ls:fetch_implementation");var d$=()=>globalThis[l$]===void 0?!0:M4??!1,p$=e=>async(...t)=>{if(e||Me("DEBUG")==="true"){let[i,n]=t;console.log(`\u2192 ${n?.method||"GET"} ${i}`)}let r=await(globalThis[l$]??R4)(...t);return(e||Me("DEBUG")==="true")&&console.log(`\u2190 ${r.status} ${r.statusText} ${r.url}`),r};var Sc=()=>Me("PROJECT")??gr("LANGCHAIN_SESSION")??"default";var f$={};function $a(e){f$[e]||(console.warn(e),f$[e]=!0)}var N=e=>BigInt(e),_$=N("0x9E3779B1"),y$=N("0x85EBCA77"),j4=N("0xC2B2AE3D"),Ii=N("0x9E3779B185EBCA87"),Ea=N("0xC2B2AE3D27D4EB4F"),v$=N("0x165667B19E3779F9"),Gh=N("0x85EBCA77C2B2AE63"),z4=N("0x27D4EB2F165667C5"),D4=N("0x165667919E3779F9"),U4=N("0x9FB21C651E98DF25");function L4(e){let t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=parseInt(e.substring(r,r+2),16);return t}var $n=L4("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),Vo=(N(1)<<N(128))-N(1),me=(N(1)<<N(64))-N(1),Vl=(N(1)<<N(32))-N(1),ei=64,b$=ei/8,F4=8,Fl=4;function De(e,t=0){return new Uint8Array(e.buffer,e.byteOffset+t,e.length-t)}function Ve(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getBigUint64(0,!0)}function Zo(e,t=0){return new DataView(e.buffer,e.byteOffset+t).getUint32(0,!0)}function Bh(e,t=0){return e[t]}var B4=e=>(e&N(255))<<N(56)|(e&N(65280))<<N(40)|(e&N(16711680))<<N(24)|(e&N(4278190080))<<N(8)|(e&N(0xff00000000))>>N(8)|(e&N(0xff0000000000))>>N(24)|(e&N(0xff000000000000))>>N(40)|(e&N(0xff00000000000000))>>N(56),Z4=e=>(e=(e&N(65535))<<N(16)|(e&N(4294901760))>>N(16),e=(e&N(16711935))<<N(8)|(e&N(4278255360))>>N(8),e),V4=(e,t)=>(e&Vl)*(t&Vl)&me,Go=e=>{if(!e)throw new Error("Assert failed")};function G4(e,t){return(e<<t|e>>N(32)-t)&Vl}function w$(e,t,r){for(let i=0;i<b$;i++){let n=Ve(t,i*8),a=n^Ve(r,i*8);e[i^1]+=n,e[i]+=V4(a,a>>N(32))}return e}function m$(e,t,r,i){for(let n=0;n<i;n++)w$(e,De(t,n*ei),De(r,n*8));return e}function H4(e,t){for(let r=0;r<b$;r++){let i=Ve(t,r*8),n=e[r];n=Zh(n,N(47)),n^=i,n*=_$,e[r]=n&me}return e}function Bl(e,t){return x$(e[0]^Ve(t,0),e[1]^Ve(t,F4))}function h$(e,t,r){let i=r;return i+=Bl(e.slice(0),De(t,0*Fl)),i+=Bl(e.slice(2),De(t,4*Fl)),i+=Bl(e.slice(4),De(t,8*Fl)),i+=Bl(e.slice(6),De(t,12*Fl)),En(i&me)}function J4(e,t,r,i,n){let a=Math.floor((r.byteLength-ei)/8),o=ei*a,s=Math.floor((t.byteLength-1)/o);for(let c=0;c<s;c++)e=m$(e,De(t,c*o),r,a),e=n(e,De(r,r.byteLength-ei));{let c=Math.floor((t.byteLength-1-o*s)/ei);e=m$(e,De(t,s*o),r,c),e=i(e,De(t,t.byteLength-ei),De(r,r.byteLength-ei-7))}return e}function K4(e,t,r){let i=new BigUint64Array([j4,Ii,Ea,v$,Gh,y$,z4,_$]);Go(e.length>128),i=J4(i,e,t,w$,H4),Go(i.length*8==64);{let n=h$(i,De(t,11),N(e.byteLength)*Ii&me);return h$(i,De(t,t.byteLength-ei-11),~(N(e.byteLength)*Ea)&me)<<N(64)|n}}function x$(e,t){let r=e*t&Vo;return r&me^r>>N(64)}function g$(e,t,r){return x$((Ve(e,0)^Ve(t,0)+r)&me,(Ve(e,8)^Ve(t,8)-r)&me)}function Zl(e,t,r,i,n){let a=e&me,o=e>>N(64)&me;return a+=g$(t,i,n),a^=Ve(r,0)+Ve(r,8),a&=me,o+=g$(r,De(i,16),n),o^=Ve(t,0)+Ve(t,8),o&=me,o<<N(64)|a}function En(e){return e^=e>>N(37),e*=D4,e&=me,e^=e>>N(32),e}function Gl(e){return e^=e>>N(33),e*=Ea,e&=me,e^=e>>N(29),e*=v$,e&=me,e^=e>>N(32),e}function W4(e,t,r){let i=e.byteLength;Go(i>0&&i<=3);let n=N(Bh(e,i-1))|N(i<<8)|N(Bh(e,0)<<16)|N(Bh(e,i>>1)<<24),a=(N(Zo(t,0))^N(Zo(t,4)))+r,o=(n^a)&me,s=(N(Zo(t,8))^N(Zo(t,12)))-r,c=(G4(Z4(n),N(13))^s)&me;return(Gl(c)&me)<<N(64)|Gl(o)}function Zh(e,t){return e^e>>t}function q4(e,t,r){let i=e.byteLength;Go(i>=4&&i<=8);{let n=Zo(e,0),a=Zo(e,i-4),o=N(n)|N(a)<<N(32),s=(Ve(t,16)^Ve(t,24))+r&me,u=(o^s)*(Ii+(N(i)<<N(2)))&Vo;return u+=(u&me)<<N(65),u&=Vo,u^=u>>N(67),Zh(Zh(u&me,N(35))*U4&me,N(28))|En(u>>N(64))<<N(64)}}function X4(e,t,r){let i=e.byteLength;Go(i>=9&&i<=16);{let n=(Ve(t,32)^Ve(t,40))+r&me,a=(Ve(t,48)^Ve(t,56))-r&me,o=Ve(e),s=Ve(e,i-8),c=(o^s^n)*Ii,u=(c&me)+(N(i-1)<<N(54));c=c&(Vo^me)|u,s^=a,c+=s+(s&Vl)*(y$-N(1))<<N(64),c&=Vo,c^=B4(c>>N(64));let l=(c&me)*Ea;return l+=(c>>N(64))*Ea<<N(64),l&=Vo,En(l&me)|En(l>>N(64))<<N(64)}}function Y4(e,t){let r=e.byteLength;return Go(r<=16),r>8?X4(e,$n,t):r>=4?q4(e,$n,t):r>0?W4(e,$n,t):Gl(t^Ve($n,64)^Ve($n,72))|Gl(t^Ve($n,80)^Ve($n,88))<<N(64)}function Vh(e){return~e+N(1)&me}function Q4(e,t,r){let i=N(e.byteLength)*Ii&me,n=N(e.byteLength-1)/N(32);for(;n>=0;){let s=Number(n);i=Zl(i,De(e,16*s),De(e,e.byteLength-16*(s+1)),De(t,32*s),r),n--}let a=i+(i>>N(64))&me;a=En(a);let o=(i&me)*Ii+(i>>N(64))*Gh+(N(e.byteLength)-r&me)*Ea;return o&=me,o=Vh(En(o)),a|o<<N(64)}function eM(e,t,r){let i=N(e.byteLength)*Ii&me;for(let o=32;o<160;o+=32)i=Zl(i,De(e,o-32),De(e,o-16),De(t,o-32),r);i=En(i&me)|En(i>>N(64))<<N(64);for(let o=160;o<=e.byteLength;o+=32)i=Zl(i,De(e,o-32),De(e,o-16),De(t,3+o-160),r);i=Zl(i,De(e,e.byteLength-16),De(e,e.byteLength-32),De(t,103),Vh(r));let n=i+(i>>N(64))&me;n=En(n);let a=(i&me)*Ii+(i>>N(64))*Gh+(N(e.byteLength)-r&me)*Ea;return a&=me,a=Vh(En(a)),n|a<<N(64)}function S$(e,t=N(0)){let r=e.byteLength;return r<=16?Y4(e,t):r<=128?Q4(e,$n,t):r<=240?eM(e,$n,t):K4(e,$n,t)}function k$(e){let t=new Uint8Array(16),r=new DataView(t.buffer),i=e&me,n=e>>N(64);return r.setBigUint64(0,n,!1),r.setBigUint64(8,i,!1),t}var $$=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function le(e,t){if(!$$.test(e)){let r=t!==void 0?`Invalid UUID for ${t}: ${e}`:`Invalid UUID: ${e}`;throw new Error(r)}return e}function Hl(e){let t=typeof e=="string"?Date.parse(e):e;return Bo({msecs:t,seq:0})}function tM(e){if(!$$.test(e))return null;let t=e[14];return parseInt(t,16)}function rM(e){let t=e.replace(/-/g,""),r=new Uint8Array(16);for(let i=0;i<16;i++)r[i]=parseInt(t.slice(i*2,i*2+2),16);return r}function nM(e){let t=Array.from(e).map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}var iM=new TextEncoder;function aM(e){let t=iM.encode(e),r=S$(t);return k$(r)}function kc(e,t){let r=`${e}:${t}`,i=aM(r),n=new Uint8Array(16);if(tM(e)===7){let o=rM(e);n.set(o.slice(0,6),0)}else{let o=Date.now();n[0]=o/1099511627776&255,n[1]=o/4294967296&255,n[2]=o/16777216&255,n[3]=o/65536&255,n[4]=o/256&255,n[5]=o&255}return n[6]=112|i[0]&15,n[7]=i[1],n[8]=128|i[2]&63,n.set(i.slice(3,10),9),nM(n)}var $c={join:(...e)=>e.join("/"),dirname:e=>e.split("/").slice(0,-1).join("/")};async function E$(e){}async function I$(e,t){}async function T$(e){return[]}async function C$(e){return{size:0}}function Jl(e){return!1}function O$(e){return""}function sM(e,t){return t===null?!1:Date.now()-e.createdAt>t*1e3}var Kl=class{constructor(t={}){Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ttlSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshIntervalSeconds",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"refreshTimer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_metrics",{enumerable:!0,configurable:!0,writable:!0,value:{hits:0,misses:0,refreshes:0,refreshErrors:0}}),this.configure(t)}get metrics(){return{...this._metrics}}get totalRequests(){return this._metrics.hits+this._metrics.misses}get hitRate(){let t=this.totalRequests;return t>0?this._metrics.hits/t:0}resetMetrics(){this._metrics={hits:0,misses:0,refreshes:0,refreshErrors:0}}get(t,r){if(this.maxSize===0)return;let i=this.cache.get(t);if(!i){this._metrics.misses+=1;return}return this.cache.delete(t),this.cache.set(t,{...i,refreshFunc:r}),this._metrics.hits+=1,i.value}set(t,r,i){if(this.maxSize===0)return;if(this.refreshTimer===void 0&&this.startRefreshLoop(),!this.cache.has(t)&&this.cache.size>=this.maxSize){let a=this.cache.keys().next().value;a!==void 0&&this.cache.delete(a)}let n={value:r,createdAt:Date.now(),refreshFunc:i};this.cache.delete(t),this.cache.set(t,n)}invalidate(t){this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}stop(){this.refreshTimer&&(clearInterval(this.refreshTimer),this.refreshTimer=void 0)}dump(t){let r={};for(let[a,o]of this.cache.entries())r[a]=o.value;let i=$c.dirname(t);Jl(i)||void 0;let n=`${t}.tmp`;try{JSON.stringify({entries:r},null,2)}catch(a){throw Jl(n)&&void 0,a}}load(t){if(!Jl(t))return 0;let r;try{let a=O$(t);r=JSON.parse(a).entries??null}catch{return 0}if(!r)return 0;let i=0,n=Date.now();for(let[a,o]of Object.entries(r)){if(this.cache.size>=this.maxSize)break;let s={value:o,createdAt:n};this.cache.set(a,s),i+=1}return i}startRefreshLoop(){this.stop(),this.ttlSeconds!==null&&(this.refreshTimer=setInterval(()=>{this.refreshStaleEntries().catch(t=>{console.warn("Unexpected error in cache refresh loop:",t)})},this.refreshIntervalSeconds*1e3),this.refreshTimer.unref&&this.refreshTimer.unref())}getStaleEntries(){let t=[];for(let[r,i]of this.cache.entries())sM(i,this.ttlSeconds)&&t.push([r,i]);return t}async refreshStaleEntries(){let t=this.getStaleEntries();if(t.length!==0){for(let[r,i]of t)if(i.refreshFunc!==void 0)try{let n=await i.refreshFunc();this.set(r,n,i.refreshFunc),this._metrics.refreshes+=1}catch(n){this._metrics.refreshErrors+=1,console.warn(`Failed to refresh cache entry ${r}:`,n)}}}configure(t){this.stop(),this.refreshIntervalSeconds=t.refreshIntervalSeconds??60,this.maxSize=t.maxSize??100,this.ttlSeconds=t.ttlSeconds??300}},Wl=new Kl;var ql="0.5.25";var Tn,cM=()=>typeof window<"u"&&typeof window.document<"u",uM=()=>typeof globalThis=="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",lM=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),N$=()=>typeof Deno<"u",dM=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!N$(),Kh=()=>Tn||(typeof Bun<"u"?Tn="bun":cM()?Tn="browser":dM()?Tn="node":uM()?Tn="webworker":lM()?Tn="jsdom":N$()?Tn="deno":Tn="other",Tn),Hh;function Xl(){if(Hh===void 0){let e=Kh(),t=fM();Hh={library:"langsmith",runtime:e,sdk:"langsmith-js",sdk_version:ql,...t}}return Hh}function Wh(){let e=pM(),t={},r=["LANGCHAIN_API_KEY","LANGCHAIN_ENDPOINT","LANGCHAIN_TRACING_V2","LANGCHAIN_PROJECT","LANGCHAIN_SESSION","LANGSMITH_API_KEY","LANGSMITH_ENDPOINT","LANGSMITH_TRACING_V2","LANGSMITH_PROJECT","LANGSMITH_SESSION"];for(let[i,n]of Object.entries(e))typeof n=="string"&&!r.includes(i)&&!i.toLowerCase().includes("key")&&!i.toLowerCase().includes("secret")&&!i.toLowerCase().includes("token")&&(i==="LANGCHAIN_REVISION_ID"?t.revision_id=n:t[i]=n);return t}function pM(){let e={};try{if(typeof process<"u"&&process.env)for(let[t,r]of Object.entries(process.env))(t.startsWith("LANGCHAIN_")||t.startsWith("LANGSMITH_"))&&r!=null&&((t.toLowerCase().includes("key")||t.toLowerCase().includes("secret")||t.toLowerCase().includes("token"))&&typeof r=="string"?e[t]=r.slice(0,2)+"*".repeat(r.length-4)+r.slice(-2):e[t]=r)}catch{}return e}function gr(e){try{return typeof process<"u"?process.env?.[e]:void 0}catch{return}}function Me(e){return gr(`LANGSMITH_${e}`)||gr(`LANGCHAIN_${e}`)}var Jh;function fM(){if(Jh!==void 0)return Jh;let e=["VERCEL_GIT_COMMIT_SHA","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","COMMIT_REF","RENDER_GIT_COMMIT","CI_COMMIT_SHA","CIRCLE_SHA1","CF_PAGES_COMMIT_SHA","REACT_APP_GIT_SHA","SOURCE_VERSION","GITHUB_SHA","TRAVIS_COMMIT","GIT_COMMIT","BUILD_VCS_NUMBER","bamboo_planRepository_revision","Build.SourceVersion","BITBUCKET_COMMIT","DRONE_COMMIT_SHA","SEMAPHORE_GIT_SHA","BUILDKITE_COMMIT"],t={};for(let r of e){let i=gr(r);i!==void 0&&(t[r]=i)}return Jh=t,t}function A$(){return gr("OTEL_ENABLED")==="true"||Me("OTEL_ENABLED")==="true"}var P$=new Set(["langsmith","otel"]);function Yl(e){if(e!==void 0)return e;let t=Me("TRACING_MODE");if(t!==void 0&&t!==""){let r=t.toLowerCase();if(!P$.has(r))throw new Error(`Invalid LANGSMITH_TRACING_MODE=${JSON.stringify(t)}. Must be one of: ${[...P$].sort().join(", ")}`);return A$()&&console.warn("Both LANGSMITH_TRACING_MODE and the legacy OTEL_ENABLED / LANGSMITH_OTEL_ENABLED env vars are set. LANGSMITH_TRACING_MODE takes precedence."),r}return A$()?"otel":"langsmith"}var Yh=class{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan(t,...r){!this.hasWarned&&Yl()==="otel"&&(console.warn('OTel tracing mode is active (via LANGSMITH_TRACING_MODE, OTEL_ENABLED, or LANGSMITH_OTEL_ENABLED), but the required OTEL instances have not been initialized. Please add:\n```\nimport { initializeOTEL } from "langsmith/experimental/otel/setup";\ninitializeOTEL();\n```\nat the beginning of your code.'),this.hasWarned=!0);let i;if(r.length===1&&typeof r[0]=="function"?i=r[0]:r.length===2&&typeof r[1]=="function"?i=r[1]:r.length===3&&typeof r[2]=="function"&&(i=r[2]),typeof i=="function")return i()}},Qh=class{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new Yh})}getTracer(t,r){return this.mockTracer}getActiveSpan(){}setSpan(t,r){return t}getSpan(t){}setSpanContext(t,r){return t}getTracerProvider(){}setGlobalTracerProvider(t){return!1}},eg=class{active(){return{}}with(t,r){return r()}},qh=Symbol.for("ls:otel_trace"),Xh=Symbol.for("ls:otel_context"),R$=Symbol.for("ls:otel_get_default_otlp_tracer_provider"),mM=new Qh,hM=new eg,tg=class{getTraceInstance(){return globalThis[qh]??mM}getContextInstance(){return globalThis[Xh]??hM}initializeGlobalInstances(t){globalThis[qh]===void 0&&(globalThis[qh]=t.trace),globalThis[Xh]===void 0&&(globalThis[Xh]=t.context)}setDefaultOTLPTracerComponents(t){globalThis[R$]=t}getDefaultOTLPTracerComponents(){return globalThis[R$]??void 0}},rg=new tg;function Ql(){return rg.getTraceInstance()}function M$(){return rg.getContextInstance()}function j$(){return rg.getDefaultOTLPTracerComponents()}var gM={llm:"chat",tool:"execute_tool",retriever:"embeddings",embedding:"embeddings",prompt:"chat"};function _M(e){return gM[e]||e}var ed=class{constructor(){Object.defineProperty(this,"spans",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}exportBatch(t,r){for(let i of t)try{if(!i.run)continue;if(i.operation==="post"){let n=this.createSpanForRun(i,i.run,r.get(i.id));n&&!i.run.end_time&&this.spans.set(i.id,n)}else this.updateSpanForRun(i,i.run)}catch(n){console.error(`Error processing operation ${i.id}:`,n)}}createSpanForRun(t,r,i){let n=i&&Ql().getSpan(i);if(n)try{return this.finishSpanSetup(n,r,t)}catch(a){console.error(`Failed to create span for run ${t.id}:`,a);return}}finishSpanSetup(t,r,i){return this.setSpanAttributes(t,r,i),r.error?(t.setStatus({code:2}),t.recordException(new Error(r.error))):t.setStatus({code:1}),r.end_time&&t.end(new Date(r.end_time)),t}updateSpanForRun(t,r){try{let i=this.spans.get(t.id);if(!i){console.debug(`No span found for run ${t.id} during update`);return}this.setSpanAttributes(i,r,t),r.error?(i.setStatus({code:2}),i.recordException(new Error(r.error))):i.setStatus({code:1});let n=r.end_time;n&&(i.end(new Date(n)),this.spans.delete(t.id))}catch(i){console.error(`Failed to update span for run ${t.id}:`,i)}}extractModelName(t){if(t.extra?.metadata){let r=t.extra.metadata;if(r.ls_model_name)return r.ls_model_name;if(r.invocation_params){let i=r.invocation_params;if(i.model)return i.model;if(i.model_name)return i.model_name}}}setSpanAttributes(t,r,i){if("run_type"in r&&r.run_type){t.setAttribute(a$,r.run_type);let s=_M(r.run_type||"chain");t.setAttribute(jk,s)}"name"in r&&r.name&&t.setAttribute(o$,r.name),"session_id"in r&&r.session_id&&t.setAttribute(n$,r.session_id),"session_name"in r&&r.session_name&&t.setAttribute(i$,r.session_name),this.setGenAiSystem(t,r);let n=this.extractModelName(r);n&&t.setAttribute(zh,n),"prompt_tokens"in r&&typeof r.prompt_tokens=="number"&&t.setAttribute(Dh,r.prompt_tokens),"completion_tokens"in r&&typeof r.completion_tokens=="number"&&t.setAttribute(Uh,r.completion_tokens),"total_tokens"in r&&typeof r.total_tokens=="number"&&t.setAttribute(Lh,r.total_tokens),this.setInvocationParameters(t,r);let a=r.extra?.metadata||{};for(let[s,c]of Object.entries(a))c!=null&&t.setAttribute(`${s$}.${s}`,String(c));let o=r.tags;if(o&&Array.isArray(o)?t.setAttribute(Fh,o.join(", ")):o&&t.setAttribute(Fh,String(o)),"serialized"in r&&typeof r.serialized=="object"){let s=r.serialized;s.name&&t.setAttribute(Wk,String(s.name)),s.signature&&t.setAttribute(qk,String(s.signature)),s.doc&&t.setAttribute(Xk,String(s.doc))}this.setIOAttributes(t,i)}setGenAiSystem(t,r){let i="langchain",n=this.extractModelName(r);if(n){let a=n.toLowerCase();a.includes("anthropic")||a.startsWith("claude")?i="anthropic":a.includes("bedrock")?i="aws.bedrock":a.includes("azure")&&a.includes("openai")?i="az.ai.openai":a.includes("azure")&&a.includes("inference")?i="az.ai.inference":a.includes("cohere")?i="cohere":a.includes("deepseek")?i="deepseek":a.includes("gemini")?i="gemini":a.includes("groq")?i="groq":a.includes("watson")||a.includes("ibm")?i="ibm.watsonx.ai":a.includes("mistral")?i="mistral_ai":a.includes("gpt")||a.includes("openai")?i="openai":a.includes("perplexity")||a.includes("sonar")?i="perplexity":a.includes("vertex")?i="vertex_ai":(a.includes("xai")||a.includes("grok"))&&(i="xai")}t.setAttribute(zk,i)}setInvocationParameters(t,r){if(!r.extra?.metadata?.invocation_params)return;let i=r.extra.metadata.invocation_params;i.max_tokens!==void 0&&t.setAttribute(Uk,i.max_tokens),i.temperature!==void 0&&t.setAttribute(Lk,i.temperature),i.top_p!==void 0&&t.setAttribute(Fk,i.top_p),i.frequency_penalty!==void 0&&t.setAttribute(Bk,i.frequency_penalty),i.presence_penalty!==void 0&&t.setAttribute(Zk,i.presence_penalty)}setIOAttributes(t,r){if(r.run.inputs)try{let i=r.run.inputs;typeof i=="object"&&i!==null&&(i.model&&Array.isArray(i.messages)&&t.setAttribute(zh,i.model),i.stream!==void 0&&t.setAttribute(c$,i.stream),i.extra_headers&&t.setAttribute(u$,JSON.stringify(i.extra_headers)),i.extra_query&&t.setAttribute(Jk,JSON.stringify(i.extra_query)),i.extra_body&&t.setAttribute(Kk,JSON.stringify(i.extra_body))),t.setAttribute(Gk,JSON.stringify(i))}catch(i){console.debug(`Failed to process inputs for run ${r.id}`,i)}if(r.run.outputs)try{let i=r.run.outputs,n=this.getUnifiedRunTokens(i);if(n&&(t.setAttribute(Dh,n[0]),t.setAttribute(Uh,n[1]),t.setAttribute(Lh,n[0]+n[1])),i&&typeof i=="object"){if(i.model&&t.setAttribute(Dk,String(i.model)),i.id&&t.setAttribute(Yk,i.id),i.choices&&Array.isArray(i.choices)){let a=i.choices.map(o=>o.finish_reason).filter(o=>o).map(String);a.length>0&&t.setAttribute(Vk,a.join(", "))}if(i.service_tier&&t.setAttribute(Qk,i.service_tier),i.system_fingerprint&&t.setAttribute(e$,i.system_fingerprint),i.usage_metadata&&typeof i.usage_metadata=="object"){let a=i.usage_metadata;a.input_token_details&&t.setAttribute(t$,JSON.stringify(a.input_token_details)),a.output_token_details&&t.setAttribute(r$,JSON.stringify(a.output_token_details))}}t.setAttribute(Hk,JSON.stringify(i))}catch(i){console.debug(`Failed to process outputs for run ${r.id}`,i)}}getUnifiedRunTokens(t){if(!t)return null;let r=this.extractUnifiedRunTokens(t.usage_metadata);if(r)return r;let i=Object.keys(t);for(let o of i){let s=t[o];if(!(!s||typeof s!="object")&&(r=this.extractUnifiedRunTokens(s.usage_metadata),r||s.lc===1&&s.kwargs&&typeof s.kwargs=="object"&&(r=this.extractUnifiedRunTokens(s.kwargs.usage_metadata),r)))return r}let n=t.generations||[];if(!Array.isArray(n))return null;let a=Array.isArray(n[0])?n.flat():n;for(let o of a)if(typeof o=="object"&&o.message&&typeof o.message=="object"&&o.message.kwargs&&typeof o.message.kwargs=="object"&&(r=this.extractUnifiedRunTokens(o.message.kwargs.usage_metadata),r))return r;return null}extractUnifiedRunTokens(t){return!t||typeof t!="object"||typeof t.input_tokens!="number"||typeof t.output_tokens!="number"?null:[t.input_tokens,t.output_tokens]}};var yM=Object.prototype.toString,vM=e=>yM.call(e)==="[object Error]",bM=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function ng(e){if(!(e&&vM(e)&&e.name==="TypeError"&&typeof e.message=="string"))return!1;let{message:r,stack:i}=e;return r==="Load failed"?i===void 0||"__sentry_captured__"in e:r.startsWith("error sending request for url")?!0:bM.has(r)}function wM(e){if(typeof e=="number"){if(e<0)throw new TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(e!==void 0)throw new TypeError("Expected `retries` to be a number or Infinity.")}function td(e,t,{min:r=0,allowInfinity:i=!1}={}){if(t!==void 0){if(typeof t!="number"||Number.isNaN(t))throw new TypeError(`Expected \`${e}\` to be a number${i?" or Infinity":""}.`);if(!i&&!Number.isFinite(t))throw new TypeError(`Expected \`${e}\` to be a finite number.`);if(t<r)throw new TypeError(`Expected \`${e}\` to be \u2265 ${r}.`)}}var ig=class extends Error{constructor(t){super(),t instanceof Error?(this.originalError=t,{message:t}=t):(this.originalError=new Error(t),this.originalError.stack=this.stack),this.name="AbortError",this.message=t}};function xM(e,t){let r=Math.max(1,e+1),i=t.randomize?Math.random()+1:1,n=Math.round(i*t.minTimeout*t.factor**(r-1));return n=Math.min(n,t.maxTimeout),n}function z$(e,t){return Number.isFinite(t)?t-(performance.now()-e):t}async function SM({error:e,attemptNumber:t,retriesConsumed:r,startTime:i,options:n}){let a=e instanceof Error?e:new TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(a instanceof ig)throw a.originalError;let o=Number.isFinite(n.retries)?Math.max(0,n.retries-r):n.retries,s=n.maxRetryTime??Number.POSITIVE_INFINITY,c=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:r});if(await n.onFailedAttempt(c),z$(i,s)<=0)throw a;let u=await n.shouldConsumeRetry(c),l=z$(i,s);if(l<=0||o<=0)throw a;if(a instanceof TypeError&&!ng(a)){if(u)throw a;return n.signal?.throwIfAborted(),!1}if(!await n.shouldRetry(c))throw a;if(!u)return n.signal?.throwIfAborted(),!1;let d=xM(r,n),p=Math.min(d,l);return p>0&&await new Promise((f,m)=>{let g=()=>{clearTimeout(v),n.signal?.removeEventListener("abort",g),m(n.signal.reason)},v=setTimeout(()=>{n.signal?.removeEventListener("abort",g),f()},p);n.unref&&v.unref?.(),n.signal?.addEventListener("abort",g,{once:!0})}),n.signal?.throwIfAborted(),!0}async function ag(e,t={}){if(t={...t},wM(t.retries),Object.hasOwn(t,"forever"))throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=Number.POSITIVE_INFINITY,t.maxRetryTime??=Number.POSITIVE_INFINITY,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,td("factor",t.factor,{min:0,allowInfinity:!1}),td("minTimeout",t.minTimeout,{min:0,allowInfinity:!1}),td("maxTimeout",t.maxTimeout,{min:0,allowInfinity:!0}),td("maxRetryTime",t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let r=0,i=0,n=performance.now();for(;!Number.isFinite(t.retries)||i<=t.retries;){r++;try{t.signal?.throwIfAborted();let a=await e(r);return t.signal?.throwIfAborted(),a}catch(a){await SM({error:a,attemptNumber:r,retriesConsumed:i,startTime:n,options:t})&&i++}}throw new Error("Retry attempts exhausted without throwing an error.")}var sd=da(od(),1),J$="default"in sd.default?sd.default.default:sd.default;var PM=[408,425,429,500,502,503,504],Ic=class{constructor(t){Object.defineProperty(this,"maxConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxRetries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxQueueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFailedResponseHook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queueSizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.maxConcurrency=t.maxConcurrency??1/0,this.maxRetries=t.maxRetries??6,this.maxQueueSizeBytes=t.maxQueueSizeBytes,this.queue=new J$({concurrency:this.maxConcurrency}),this.onFailedResponseHook=t?.onFailedResponseHook}call(t,...r){return this.callWithOptions({},t,...r)}callWithOptions(t,r,...i){let n=t.sizeBytes??0;if(this.maxQueueSizeBytes!==void 0&&n>0&&this.queueSizeBytes+n>this.maxQueueSizeBytes)return Promise.reject(new Error(`Queue size limit (${this.maxQueueSizeBytes} bytes) exceeded. Current queue size: ${this.queueSizeBytes} bytes, attempted addition: ${n} bytes.`));n>0&&(this.queueSizeBytes+=n);let a=this.onFailedResponseHook,o=this.queue.add(()=>ag(()=>r(...i).catch(s=>{throw s instanceof Error?s:new Error(s)}),{async onFailedAttempt({error:s}){if(typeof s!="object"||s==null)throw s;let c="message"in s&&typeof s.message=="string"?s.message:void 0;if(c?.startsWith("Cancel")||c?.startsWith("TimeoutError")||c?.startsWith("AbortError")||"name"in s&&s.name==="TimeoutError"||"code"in s&&s.code==="ECONNABORTED")throw s;let u="response"in s?s.response:void 0;if(a&&await a(u))return;let l=u?.status??("status"in s?s.status:void 0);if(l!=null&&(typeof l=="number"||typeof l=="string")&&!PM.includes(+l))throw s},retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0});return n>0&&(o=o.finally(()=>{this.queueSizeBytes-=n})),t.signal?Promise.race([o,new Promise((s,c)=>{t.signal?.addEventListener("abort",()=>{c(new Error("AbortError"))})})]):o}};function pg(e){return typeof e?._getType=="function"}function fg(e){let t={type:e._getType(),data:{content:e.content}};return e?.additional_kwargs&&Object.keys(e.additional_kwargs).length>0&&(t.data.additional_kwargs={...e.additional_kwargs}),t}function ud(e){return`Invalid prompt identifier format: "${e}". Expected one of:
|
|
22
22
|
- "prompt-name" (for private prompts)
|
|
23
23
|
- "owner/prompt-name" (for prompts with explicit owner)
|
|
24
24
|
- "prompt-name:commit-hash" (with commit reference)
|
|
@@ -393,4 +393,4 @@ data: ${DF(n.data)}
|
|
|
393
393
|
|
|
394
394
|
`))};try{for await(let n of e){let[a,o,s]=n,c=s;if(o==="debug"){let u=s;u.type==="checkpoint"&&(c={...u,payload:NN(u.payload)})}o==="checkpoints"&&(c=NN(s)),i({event:a?.length?`${o}|${a.join("|")}`:o,data:c})}}catch(n){i({event:"error",data:UF(n)})}r.close()}})}var Um=Symbol.for("INPUT_DONE"),w0=Symbol.for("INPUT_RESUMING"),LF=25;function FF(...e){return new Dm({passthroughFn:t=>{for(let r of e)r.modes.has(t[1])&&r.push(t)},modes:new Set(e.flatMap(t=>Array.from(t.modes)))})}var BF=class extends bm{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}},jN=class zN{input;output;config;checkpointer;checkpointerGetNextVersion;channels;checkpoint;checkpointIdSaved;checkpointConfig;checkpointMetadata;checkpointNamespace;checkpointPendingWrites=[];checkpointPreviousVersions;step;stop;durability;outputKeys;streamKeys;nodes;skipDoneTasks;prevCheckpointConfig;updatedChannels;status="pending";tasks={};stream;checkpointerPromises=new Set;isNested;_checkpointerChainedPromise=Promise.resolve();_trackCheckpointerPromise(t){let r=t.then(i=>(this.checkpointerPromises.delete(r),i),i=>{throw i});this.checkpointerPromises.add(r)}store;cache;manager;interruptAfter;interruptBefore;toInterrupt=[];debug=!1;triggerToNodes;get isResuming(){let t=!1;if("__start__"in this.checkpoint.channel_versions)t=!0;else for(let s in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,s)){t=!0;break}let r=this.config.configurable?.__pregel_resuming!==void 0&&this.config.configurable?.__pregel_resuming,i=this.input===null||this.input===void 0,n=pt(this.input)&&this.input.resume!=null,a=this.input===w0,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||i||n||a||o)}constructor(t){this.input=t.input,this.checkpointer=t.checkpointer,this.checkpointer!==void 0?this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer):this.checkpointerGetNextVersion=$N,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.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 BF(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}static async initialize(t){let{config:r,stream:i}=t;i!==void 0&&r.configurable?.__pregel_stream!==void 0&&(i=FF(i,r.configurable[cc]));let n=r.configurable?!("checkpoint_id"in r.configurable):!0,a=r.configurable?.[er];r.configurable&&a&&(a.subgraphCounter>0&&(r=dr(r,{[Ir]:[r.configurable[Ir],a.subgraphCounter.toString()].join("|")})),a.subgraphCounter+=1);let o=Vr in(r.configurable??{});!o&&r.configurable?.checkpoint_ns!==void 0&&r.configurable?.checkpoint_ns!==""&&(r=dr(r,{checkpoint_ns:"",checkpoint_id:void 0}));let s=r;r.configurable?.checkpoint_map!==void 0&&r.configurable?.checkpoint_map?.[r.configurable?.checkpoint_ns]&&(s=dr(r,{checkpoint_id:r.configurable[Tr][r.configurable?.checkpoint_ns]}));let c=r.configurable?.checkpoint_ns?.split("|")??[],u=await t.checkpointer?.getTuple(s)??{config:r,checkpoint:Ks(),metadata:{source:"input",step:-2,parents:{}},pendingWrites:[]};s={...r,...u.config,configurable:{checkpoint_ns:"",...r.configurable,...u.config.configurable}};let l=u.parentConfig,d=un(u.checkpoint),p={...u.metadata},f=u.pendingWrites??[],m=ea(t.channelSpecs,d),g=(p.step??0)+1,v=g+(r.recursionLimit??LF)+1,S={...d.channel_versions},w=t.store?new vm(t.store):void 0;return w&&await w.start(),new zN({input:t.input,config:r,checkpointer:t.checkpointer,checkpoint:d,checkpointMetadata:p,checkpointConfig:s,prevCheckpointConfig:l,checkpointNamespace:c,channels:m,isNested:o,manager:t.manager,skipDoneTasks:n,step:g,stop:v,checkpointPreviousVersions:S,checkpointPendingWrites:f,outputKeys:t.outputKeys??[],streamKeys:t.streamKeys??[],nodes:t.nodes,stream:i,store:w,cache:t.cache,interruptAfter:t.interruptAfter,interruptBefore:t.interruptBefore,durability:t.durability,debug:t.debug,triggerToNodes:t.triggerToNodes})}_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 i=r;if(i.length===0)return;i.every(([c])=>c in Ju)&&(i=Array.from(new Map(i.map(c=>[c[0],c])).values()));let n=!1;for(let c in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,c)&&this.channels[c].lc_graph_name==="UntrackedValue"){n=!0;break}let a=i;n&&(a=i.filter(([c])=>{let u=this.channels[c];return!u||u.lc_graph_name!=="UntrackedValue"}).map(([c,u])=>c==="__pregel_tasks"&&ct(u)?[c,EN(u,this.channels)]:[c,u])),this.checkpointPendingWrites=this.checkpointPendingWrites.filter(c=>c[0]!==t);for(let[c,u]of a)this.checkpointPendingWrites.push([t,c,u]);let o=dr(this.checkpointConfig,{[Ir]:this.config.configurable?.checkpoint_ns??"",[sl]:this.checkpoint.id});if(this.durability!=="exit"&&this.checkpointer!=null&&this._trackCheckpointerPromise(this.checkpointer.putWrites(o,a,t)),this.tasks&&this._outputWrites(t,i),!r.length||!this.cache||!this.tasks)return;let s=this.tasks[t];s==null||s.cache_key==null||r[0][0]==="__error__"||r[0][0]==="__interrupt__"||this.cache.set([{key:[s.cache_key.ns,s.cache_key.key],value:s.writes,ttl:s.cache_key.ttl}])}_outputWrites(t,r,i=!1){let n=this.tasks[t];if(n!==void 0){if(n.config!==void 0&&(n.config.tags??[]).includes("langsmith:hidden"))return;if(r.length>0)if(r[0][0]==="__interrupt__"){if(n.path?.[0]==="__pregel_push"&&n.path?.[n.path.length-1]===!0)return;let a=r.filter(o=>o[0]===Ze).flatMap(o=>o[1]);this._emit([["updates",{[Ze]:a}],["values",{[Ze]:a}]])}else r[0][0]!=="__error__"&&this._emit(go(yi(_N(this.outputKeys,[[n,r]],i),"updates")));i||this._emit(go(yi(TN([[n,r]],this.streamKeys),"tasks")))}}async _matchCachedWrites(){if(!this.cache)return[];let t=[],r=([o,s])=>`ns:${o.join(",")}|key:${s}`,i=[],n={};for(let o of Object.values(this.tasks))o.cache_key!=null&&!o.writes.length&&(i.push([o.cache_key.ns,o.cache_key.key]),n[r([o.cache_key.ns,o.cache_key.key])]=o);if(i.length===0)return[];let a=await this.cache.get(i);for(let{key:o,value:s}of a){let c=n[r(o)];c!=null&&(c.writes.push(...s),t.push({task:c,result:s}))}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(![Um,w0].includes(this.input))await this._first(r);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new Kn;if(Object.values(this.tasks).every(n=>n.writes.length>0)){let n=Object.values(this.tasks).flatMap(o=>o.writes);this.updatedChannels=Xt(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes);let a=await pn(yi(Rm(this.outputKeys,n,this.channels),"values"));if(this._emit(a),this.checkpointPendingWrites=[],await this._putCheckpoint({source:"loop"}),tl(this.checkpoint,this.interruptAfter,Object.values(this.tasks)))throw this.status="interrupt_after",new Kn;this.config.configurable?.__pregel_resuming!==void 0&&delete this.config.configurable?.[$o]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;if(this.tasks=na(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}),this.checkpointer&&this._emit(await pn(yi(CN(this.checkpointConfig,this.channels,this.streamKeys,this.checkpointMetadata,Object.values(this.tasks),this.checkpointPendingWrites,this.prevCheckpointConfig,this.outputKeys),"checkpoints"))),Object.values(this.tasks).length===0)return this.status="done",!1;if(this.skipDoneTasks&&this.checkpointPendingWrites.length>0){for(let[n,a,o]of this.checkpointPendingWrites){if(a==="__error__"||a==="__interrupt__"||a==="__resume__")continue;let s=Object.values(this.tasks).find(c=>c.id===n);s&&s.writes.push([a,o])}for(let n of Object.values(this.tasks))n.writes.length>0&&this._outputWrites(n.id,n.writes,!0)}if(Object.values(this.tasks).every(n=>n.writes.length>0))return this.tick({inputKeys:r});if(tl(this.checkpoint,this.interruptBefore,Object.values(this.tasks)))throw this.status="interrupt_before",new Kn;let i=await pn(yi(g0(Object.values(this.tasks)),"tasks"));return this._emit(i),!0}async finishAndHandleError(t){this.durability==="exit"&&(!this.isNested||typeof t<"u"||this.checkpointNamespace.every(i=>!i.includes(":")))&&(this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let r=this._suppressInterrupt(t);return(r||t===void 0)&&(this.output=mn(this.channels,this.outputKeys)),r&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(i=>i.writes.length>0)&&(this.updatedChannels=Xt(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emit(go(yi(Rm(this.outputKeys,Object.values(this.tasks).flatMap(i=>i.writes),this.channels),"values")))),Wn(t)&&!t.interrupts.length&&this._emit([["updates",{[Ze]:[]}],["values",{[Ze]:[]}]])),r}async acceptPush(t,r,i){if(this.interruptAfter?.length>0&&tl(this.checkpoint,this.interruptAfter,[t])){this.toInterrupt.push(t);return}let n=jm([Cr,t.path??[],r,t.id,i],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(!n)return;if(this.interruptBefore?.length>0&&tl(this.checkpoint,this.interruptBefore,[n])){this.toInterrupt.push(n);return}this._emit(go(yi(g0([n]),"tasks"))),this.debug&&zm(this.step,[n]),this.tasks[n.id]=n,this.skipDoneTasks&&this._matchWrites({[n.id]:n});let a=await this._matchCachedWrites();for(let{task:o}of a)this._outputWrites(o.id,o.writes,!0);return n}_suppressInterrupt(t){return Wn(t)&&!this.isNested}async _first(t){let{configurable:r}=this.config,i=r?.[er];if(i&&i.nullResume!==void 0&&this.putWrites(fr,[[pr,i.nullResume]]),pt(this.input)){let o=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume=="object"&&Object.keys(this.input.resume).every(Cm)&&(this.config.configurable??={},this.config.configurable[Eo]=this.input.resume),o&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let s={};for(let[c,u,l]of gN(this.input,this.checkpointPendingWrites))s[c]??=[],s[c].push([u,l]);if(Object.keys(s).length===0)throw new fl("Received empty Command input");for(let[c,u]of Object.entries(s))this.putWrites(c,u)}let n=(this.checkpointPendingWrites??[]).filter(o=>o[0]===fr).map(o=>o.slice(1));n.length>0&&Xt(this.checkpoint,this.channels,[{name:bn,writes:n,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let a=pt(this.input)&&n.length>0;if(this.isResuming||a){for(let s in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,s)&&this.checkpoint.channel_versions[s]!==void 0){let c=this.checkpoint.channel_versions[s];this.checkpoint.versions_seen[Ze]={...this.checkpoint.versions_seen[Ze],[s]:c}}let o=await pn(yi(Rm(this.outputKeys,!0,this.channels),"values"));this._emit(o)}if(this.isResuming)this.input=w0;else if(a)await this._putCheckpoint({source:"input"}),this.input=Um;else{let o=await pn(Nm(t,this.input));if(o.length>0){let s=na(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});this.updatedChannels=Xt(this.checkpoint,this.channels,Object.values(s).concat([{name:bn,writes:o,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes),await this._putCheckpoint({source:"input"}),this.input=Um}else if("__pregel_resuming"in(this.config.configurable??{}))this.input=Um;else throw new fl(`Received no input writes for ${JSON.stringify(t,null,2)}`)}this.isNested||(this.config=dr(this.config,{[$o]:this.isResuming}))}_emit(t){for(let[r,i]of t)if(this.stream.modes.has(r)&&this.stream.push([this.checkpointNamespace,r,i]),(r==="checkpoints"||r==="tasks")&&this.stream.modes.has("debug")){let n=r==="checkpoints"?this.step-1:this.step,a=new Date().toISOString(),o=r==="checkpoints"?"checkpoint":typeof i=="object"&&i!=null&&"result"in i?"task_result":"task";this.stream.push([this.checkpointNamespace,"debug",{step:n,type:o,timestamp:a,payload:i}])}}_putCheckpoint(t){let r=this.checkpointMetadata===t,i=this.checkpointer!=null&&(this.durability!=="exit"||r),n=a=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=dr(this.checkpointConfig,{[Ir]:this.config.configurable?.checkpoint_ns??""});let o={...this.checkpoint.channel_versions},s=tc(this.checkpointPreviousVersions,o);this.checkpointPreviousVersions=o,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:un(a),metadata:{...this.checkpointMetadata},newVersions:s}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}};r||(this.checkpointMetadata={...t,step:this.step,parents:this.config.configurable?.checkpoint_map??{}}),this.checkpoint=ln(this.checkpoint,i?this.channels:void 0,this.step,r?{id:this.checkpoint.id}:void 0),i&&n(this.checkpoint),r||(this.step+=1)}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let t=dr(this.checkpointConfig,{[Ir]:this.config.configurable?.checkpoint_ns??"",[sl]:this.checkpoint.id}),r={};for(let[i,n,a]of this.checkpointPendingWrites)r[i]??=[],r[i].push([n,a]);for(let[i,n]of Object.entries(r))this._trackCheckpointerPromise(this.checkpointer.putWrites(t,n,i))}_matchWrites(t){for(let[r,i,n]of this.checkpointPendingWrites){if(i==="__error__"||i==="__interrupt__"||i==="__resume__")continue;let a=Object.values(t).find(o=>o.id===r);a&&a.writes.push([i,n])}for(let r of Object.values(t))r.writes.length>0&&this._outputWrites(r.id,r.writes,!0)}};function ZF(e){return Je(e?.message)}var DN=class extends Xr{name="StreamMessagesHandler";streamFn;metadatas={};seen={};emittedChatModelRunIds={};stableMessageIdMap={};lc_prefer_streaming=!0;constructor(e){super(),this.streamFn=e}_emit(e,t,r,i=!1){if(i&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let n=t.id;r!=null&&(yc(t)?n??=`run-${r}-tool-${t.tool_call_id}`:((n==null||n===`run-${r}`)&&(n=this.stableMessageIdMap[r]??n??`run-${r}`),this.stableMessageIdMap[r]??=n)),n!==t.id&&(t.id=n,t.lc_kwargs.id=n),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],"messages",[t,e[1]]])}handleChatModelStart(e,t,r,i,n,a,o,s){o&&(!a||!a.includes("langsmith:nostream")&&!a.includes("nostream"))&&(this.metadatas[r]=[o.langgraph_checkpoint_ns.split("|"),{tags:a,name:s,...o}])}handleLLMNewToken(e,t,r,i,n,a){let o=a?.chunk;this.emittedChatModelRunIds[r]=!0,this.metadatas[r]!==void 0&&(ZF(o)?this._emit(this.metadatas[r],o.message,r):this._emit(this.metadatas[r],new mt({content:e}),r))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let r=e.generations?.[0]?.[0];Je(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,i,n,a,o,s){if(a!==void 0&&s===a.langgraph_node&&(n===void 0||!n.includes("langsmith:hidden"))&&(this.metadatas[r]=[a.langgraph_checkpoint_ns.split("|"),{tags:n,name:s,...a}],typeof t=="object")){for(let c of Object.values(t))if((Je(c)||Yn(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let u of c)(Je(u)||Yn(u))&&u.id!==void 0&&(this.seen[u.id]=u)}}handleChainEnd(e,t){let r=this.metadatas[t];if(delete this.metadatas[t],r!==void 0){if(Je(e))this._emit(r,e,t,!0);else if(Array.isArray(e))for(let i of e)Je(i)&&this._emit(r,i,t,!0);else if(e!=null&&typeof e=="object"){for(let i of Object.values(e))if(Je(i))this._emit(r,i,t,!0);else if(Array.isArray(i))for(let n of i)Je(n)&&this._emit(r,n,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}};var VF=[400,401,402,403,404,405,406,407,409],GF=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&&VF.includes(+t)||e?.error?.code==="insufficient_quota")};async function x0(e,t,r,i){let n=e.retry_policy??t,a=n!==void 0?n.initialInterval??500:0,o=0,s,c,u=e.config??{};r&&(u=dr(u,r)),u={...u,signal:i};let l=Date.now();for(u.executionInfo!=null&&(u.executionInfo={...u.executionInfo,nodeFirstAttemptTime:l});!i?.aborted;){e.writes.splice(0,e.writes.length),s=void 0;try{c=await e.proc.invoke(e.input,u);break}catch(d){if(s=d,s.pregelTaskId=e.id,Jm(s)){let m=u?.configurable?.checkpoint_ns,g=s.command;if(g.graph===m){for(let v of e.writers)await v.invoke(g,u);s=void 0;break}else if(g.graph===Qt.PARENT){let v=iN(m);s.command=new Qt({...s.command,graph:v})}}if(ga(s)||n===void 0||(o+=1,o>=(n.maxAttempts??3))||!(n.retryOn??GF)(s))break;a=Math.min(n.maxInterval??128e3,a*(n.backoffFactor??2));let p=n.jitter?Math.floor(a+Math.random()*1e3):a;await new Promise(m=>setTimeout(m,p));let f=s.name??s.constructor.unminifiable_name??s.constructor.name;(n?.logWarning??!0)&&console.log(`Retrying task "${String(e.name)}" after ${a.toFixed(2)}ms (attempt ${o}) after ${f}: ${s}`),u=dr(u,{[$o]:!0}),u.executionInfo!=null&&(u.executionInfo={...u.executionInfo,nodeAttempt:o+1,nodeFirstAttemptTime:l})}}return{task:e,result:c,error:s,signalAborted:i?.aborted}}var S0=Symbol.for("promiseAdded");function HF(){let e={next:()=>{},wait:Promise.resolve(S0)};function t(r){e.next=()=>{e.wait=new Promise(t),r(S0)}}return e.wait=new Promise(t),e}var UN=class{nodeFinished;loop;constructor({loop:e,nodeFinished:t}){this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:r,onStepWrite:i,maxConcurrency:n}=e,a=new Set,o,s=new AbortController,c=s.signal,u=t?AbortSignal.timeout(t):void 0,l=Object.values(this.loop.tasks).filter(m=>m.writes.length===0),{signals:d,disposeCombinedSignal:p}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:u,signal:e.signal}),f=this._executeTasksWithRetry(l,{signals:d,retryPolicy:r,maxConcurrency:n});for await(let{task:m,error:g,signalAborted:v}of f)this._commit(m,g),Wn(g)||ga(g)&&!Wn(o)?o=g:g&&(a.size===0||!v)&&(s.abort(),a.add(g));if(p?.(),i?.(this.loop.step,Object.values(this.loop.tasks).map(m=>m.writes).flat()),a.size===1)throw Array.from(a)[0];if(a.size>1)throw new AggregateError(Array.from(a),`Multiple errors occurred during superstep ${this.loop.step}. See the "errors" field of this exception for more details.`);if(Wn(o)||ga(o)&&this.loop.isNested)throw o}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:r}){let i=this.loop.config.configurable?.__pregel_abort_signals??{},n=i.externalAbortSignal??r,a=t??i.timeoutAbortSignal,{signal:o,dispose:s}=rc(n,a,e),c={externalAbortSignal:n,timeoutAbortSignal:a,composedAbortSignal:o};return this.loop.config=dr(this.loop.config,{[U0]:c}),{signals:c,disposeCombinedSignal:s}}async*_executeTasksWithRetry(e,t){let{retryPolicy:r,maxConcurrency:i,signals:n}=t??{},a=HF(),o={},s={executingTasksMap:o,barrier:a,retryPolicy:r,scheduleTask:async(p,f,m)=>this.loop.acceptPush(p,f,m)};if(n?.composedAbortSignal?.aborted)throw new Error("Abort");let c=0,u,l=rc(n?.externalAbortSignal,n?.timeoutAbortSignal),d=l.signal?new Promise((p,f)=>{u=()=>f(new Error("Abort")),l.signal?.addEventListener("abort",u,{once:!0})}):void 0;for(;(c===0||Object.keys(o).length>0)&&e.length;){for(;Object.values(o).length<(i??e.length)&&c<e.length;c+=1){let f=e[c];o[f.id]=x0(f,r,{[ko]:LN?.bind(s,this,f)},n?.composedAbortSignal).catch(m=>({task:f,error:m,signalAborted:n?.composedAbortSignal?.aborted}))}let p=await Promise.race([...Object.values(o),...d?[d]:[],a.wait]);p!==S0&&(yield p,u!=null&&(l.signal?.removeEventListener("abort",u),l.dispose?.()),delete o[p.task.id])}}_commit(e,t){if(t!==void 0)if(Wn(t)){if(t.interrupts.length){let r=t.interrupts.map(n=>[Ze,n]),i=e.writes.filter(n=>n[0]===pr);i.length&&r.push(...i),this.loop.putWrites(e.id,r)}}else ga(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):this.loop.putWrites(e.id,[[So,{message:t.message,name:t.name}]]);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([uc,null]),this.loop.putWrites(e.id,e.writes)}};async function LN(e,t,r,i,n,a={}){let o=t.config?.configurable?.[er];if(!o)throw new Error(`BUG: No scratchpad found on task ${t.name}__${t.id}`);let s=o.callCounter;o.callCounter+=1;let c=new bN({func:r,name:i,input:n,cache:a.cache,retry:a.retry,callbacks:a.callbacks}),u=await this.scheduleTask(t,s,c);if(!u)return;let l=this.executingTasksMap[u.id];if(l!==void 0)return l;if(u.writes.length>0){let d=u.writes.filter(([f])=>f===Si),p=u.writes.filter(([f])=>f===So);if(d.length>0){if(d.length===1)return Promise.resolve(d[0][1]);throw new Error(`BUG: multiple returns found for task ${u.name}__${u.id}`)}if(p.length>0){if(p.length===1){let f=p[0][1],m=f instanceof Error?f:new Error(String(f));return Promise.reject(m)}throw new Error(`BUG: multiple errors found for task ${u.name}__${u.id}`)}return}else{let d=x0(u,a.retry,{[ko]:LN.bind(this,e,u)});return this.executingTasksMap[u.id]=d,this.barrier.next(),d.then(({result:p,error:f})=>f?Promise.reject(f):p)}}var vi=class extends Error{constructor(e){super(e),this.name="GraphValidationError"}};function FN({nodes:e,channels:t,inputChannels:r,outputChannels:i,streamChannels:n,interruptAfterNodes:a,interruptBeforeNodes:o}){if(!t)throw new vi("Channels not provided");let s=new Set,c=new Set;for(let[u,l]of Object.entries(e)){if(u==="__interrupt__")throw new vi(`"Node name ${Ze} is reserved"`);if(l.constructor===fn)l.triggers.forEach(d=>s.add(d));else throw new vi(`Invalid node type ${typeof l}, expected PregelNode`)}for(let u of s)if(!(u in t))throw new vi(`Subscribed channel '${String(u)}' not in channels`);if(Array.isArray(r)){if(r.every(u=>!s.has(u)))throw new vi(`None of the input channels ${r} are subscribed to by any node`)}else if(!s.has(r))throw new vi(`Input channel ${String(r)} is not subscribed to by any node`);Array.isArray(i)?i.forEach(u=>c.add(u)):c.add(i),n&&!Array.isArray(n)?c.add(n):Array.isArray(n)&&n.forEach(u=>c.add(u));for(let u of c)if(!(u in t))throw new vi(`Output channel '${String(u)}' not in channels`);if(a&&a!=="*"){for(let u of a)if(!(u in e))throw new vi(`Node ${String(u)} not in nodes`)}if(o&&o!=="*"){for(let u of o)if(!(u in e))throw new vi(`Node ${String(u)} not in nodes`)}}function k0(e,t){if(Array.isArray(e)){for(let r of e)if(!(r in t))throw new Error(`Key ${String(r)} not found in channels`)}else if(!(e in t))throw new Error(`Key ${String(e)} not found in channels`)}var $0=class BN extends bt{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 BN({unique:this.unique,accumulate:this.accumulate});return typeof t<"u"&&(r.seen=new Set(t[0]),r.values=t[1]),r}update(t){let r=!1;this.accumulate||(r=this.values.length>0,this.values=[]);let i=t.flat();if(i.length>0)if(this.unique)for(let n of i)this.seen.has(n)||(r=!0,this.seen.add(n),this.values.push(n));else r=!0,this.values.push(...i);return r}get(){if(this.values.length===0)throw new Ce;return this.values}checkpoint(){return[[...this.seen],this.values]}isAvailable(){return this.values.length!==0}};var ZN=class{static subscribeTo(e,t){let{key:r,tags:i}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&r!==void 0)throw new Error("Can't specify a key when subscribing to multiple channels");let n;return typeof e=="string"?r?n={[r]:e}:n=[e]:n=Object.fromEntries(e.map(a=>[a,a])),new fn({channels:n,triggers:Array.isArray(e)?e:[e],tags:i})}static writeTo(e,t){let r=[];for(let i of e)r.push({channel:i,value:lr,skipNone:!1});for(let[i,n]of Object.entries(t??{}))re.isRunnable(n)||typeof n=="function"?r.push({channel:i,value:lr,skipNone:!0,mapper:Xe(n)}):r.push({channel:i,value:n,skipNone:!1});return new rt(r)}},JF=class extends re{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)}},Lm=class extends JF{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;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 '${wn}' is reserved and cannot be used in the graph.`);this.channels[wn]=new $0({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.autoValidate&&this.validate()}withConfig(e){let t=yt(this.config,e);return new this.constructor({...this,config:t})}validate(){FN({nodes:this.nodes,channels:this.channels,outputChannels:this.outputChannels,inputChannels:this.inputChannels,streamChannels:this.streamChannels,interruptAfterNodes:this.interruptAfter,interruptBeforeNodes:this.interruptBefore});for(let[e,t]of Object.entries(this.nodes))for(let r of t.triggers)this.triggerToNodes[r]??=[],this.triggerToNodes[r].push(e);return this}get streamChannelsList(){return Array.isArray(this.streamChannels)?this.streamChannels:this.streamChannels?[this.streamChannels]:Object.keys(this.channels)}get streamChannelsAsIs(){return this.streamChannels?this.streamChannels:Object.keys(this.channels)}async getGraphAsync(e){return this.getGraph(e)}*getSubgraphs(e,t){for(let[r,i]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(r))continue;let n=i.subgraphs?.length?i.subgraphs:[i.bound];for(let a of n){let o=Pm(a);if(o!==void 0){if(r===e){yield[r,o];return}if(e===void 0&&(yield[r,o]),t){let s=e;e!==void 0&&(s=e.slice(r.length+1));for(let[c,u]of o.getSubgraphs(s,t))yield[`${r}|${c}`,u]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:r,applyPendingWrites:i=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let n=ea(this.channels,t.checkpoint);if(t.pendingWrites?.length){let d=t.pendingWrites.filter(([p,f])=>p===fr).map(([p,f,m])=>[String(f),m]);d.length>0&&Xt(t.checkpoint,n,[{name:bn,writes:d,triggers:[]}],void 0,this.triggerToNodes)}let a=Object.values(na(t.checkpoint,t.pendingWrites,this.nodes,n,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),o=await pn(this.getSubgraphsAsync()),s=t.config.configurable?.checkpoint_ns??"",c={};for(let d of a){let p=o.find(([m])=>m===d.name);if(!p)continue;let f=`${String(d.name)}:${d.id}`;if(s&&(f=`${s}|${f}`),r===void 0){let m={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:f}};c[d.id]=m}else{let m={configurable:{[Gr]:r,thread_id:t.config.configurable?.thread_id,checkpoint_ns:f}},g=p[1];c[d.id]=await g.getState(m,{subgraphs:!0})}}if(i&&t.pendingWrites?.length){let d=Object.fromEntries(a.map(f=>[f.id,f]));for(let[f,m,g]of t.pendingWrites)["__error__","__interrupt__",_a].includes(m)||f in d&&d[f].writes.push([String(m),g]);let p=a.filter(f=>f.writes.length>0);p.length>0&&Xt(t.checkpoint,n,p,void 0,this.triggerToNodes)}let u=t?.metadata;u&&t?.config?.configurable?.thread_id&&(u={...u,thread_id:t.config.configurable.thread_id});let l=a.filter(d=>d.writes.length===0).map(d=>d.name);return{values:mn(n,this.streamChannelsAsIs),next:l,tasks:_0(a,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:u,config:ra(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 ha("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let i=e.configurable?.checkpoint_ns??"";if(i!==""&&e.configurable?.__pregel_checkpointer===void 0){let o=Sm(i);for await(let[s,c]of this.getSubgraphsAsync(o,!0))if(s===o)return await c.getState(_o(e,{[Gr]:r}),{subgraphs:t?.subgraphs})}let n=yt(this.config,e),a=await r.getTuple(e);return await this._prepareStateSnapshot({config:n,saved:a,subgraphCheckpointer:t?.subgraphs?r:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let r=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!r)throw new ha("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let i=e.configurable?.checkpoint_ns??"";if(i!==""&&e.configurable?.__pregel_checkpointer===void 0){let a=Sm(i);for await(let[o,s]of this.getSubgraphsAsync(a,!0))if(o===a){yield*s.getStateHistory(_o(e,{[Gr]:r}),t);return}}let n=yt(this.config,e,{configurable:{checkpoint_ns:i}});for await(let a of r.list(n,t))yield this._prepareStateSnapshot({config:a.config,saved:a})}async bulkUpdateState(e,t){let r=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!r)throw new ha("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});if(t.length===0)throw new Error("No supersteps provided");if(t.some(o=>o.updates.length===0))throw new Error("No updates provided");let i=e.configurable?.checkpoint_ns??"";if(i!==""&&e.configurable?.__pregel_checkpointer===void 0){let o=Sm(i);for await(let[,s]of this.getSubgraphsAsync(o,!0))return await s.bulkUpdateState(_o(e,{[Gr]:r}),t);throw new Error(`Subgraph "${o}" not found`)}let n=async(o,s)=>{let c=this.config?yt(this.config,o):o,u=await r.getTuple(c),l=u!==void 0?un(u.checkpoint):Ks(),d={...u?.checkpoint.channel_versions},p=u?.metadata?.step??-1,f=_o(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),m=c.metadata??{};u?.config.configurable&&(f=_o(c,u.config.configurable),m={...u.metadata,...m});let{values:g,asNode:v}=s[0];if(g==null&&v===void 0){if(s.length>1)throw new ye("Cannot create empty checkpoint with multiple updates");return ra(await r.put(f,ln(l,void 0,p),{source:"update",step:p+1,parents:u?.metadata?.parents??{}},{}),u?u.metadata:void 0)}let S=ea(this.channels,l);if(g===null&&v==="__end__"){if(s.length>1)throw new ye("Cannot apply multiple updates when clearing state");if(u){let C=na(l,u.pendingWrites||[],this.nodes,S,u.config,!0,{step:(u.metadata?.step??-1)+1,checkpointer:r,store:this.store}),y=(u.pendingWrites||[]).filter(W=>W[0]===fr).map(W=>W.slice(1));y.length>0&&Xt(l,S,[{name:bn,writes:y,triggers:[]}],r.getNextVersion.bind(r),this.triggerToNodes);for(let[W,A,F]of u.pendingWrites||[])["__error__","__interrupt__",_a].includes(A)||W in C&&C[W].writes.push([A,F]);Xt(l,S,Object.values(C),r.getNextVersion.bind(r),this.triggerToNodes)}return ra(await r.put(f,ln(l,S,p),{...m,source:"update",step:p+1,parents:u?.metadata?.parents??{}},tc(d,l.channel_versions)),u?u.metadata:void 0)}if(v==="__copy__"){if(s.length>1)throw new ye("Cannot copy checkpoint with multiple updates");if(u==null)throw new ye("Cannot copy a non-existent checkpoint");let C=A=>!Array.isArray(A)||A.length===0?!1:A.every(F=>Array.isArray(F)&&F.length===2),y=ln(l,void 0,p),W=await r.put(u.parentConfig??_o(u.config,{checkpoint_id:void 0}),y,{source:"fork",step:p+1,parents:u.metadata?.parents??{}},{});if(C(g)){let A=na(y,u.pendingWrites,this.nodes,S,W,!1,{step:p+2}),F=Object.values(A).reduce((Fe,{name:Dt,id:gn})=>(Fe[Dt]??=[],Fe[Dt].push({id:gn}),Fe),{}),de=g.reduce((Fe,Dt)=>{let[gn,we]=Dt;Fe[we]??=[];let ca=Fe[we].length,Hn=F[we]?.[ca]?.id;return Fe[we].push({values:gn,asNode:we,taskId:Hn}),Fe},{});return n(ra(W,u.metadata),Object.values(de).flat())}return ra(W,u.metadata)}if(v==="__input__"){if(s.length>1)throw new ye("Cannot apply multiple updates when updating as input");let C=await pn(Nm(this.inputChannels,g));if(C.length===0)throw new ye(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);Xt(l,S,[{name:bn,writes:C,triggers:[]}],r.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let y=u?.metadata?.step!=null?u.metadata.step+1:-1,W=await r.put(f,ln(l,S,y),{source:"input",step:y,parents:u?.metadata?.parents??{}},tc(d,l.channel_versions));return await r.putWrites(W,C,qn(bn,l.id)),ra(W,u?u.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&u?.pendingWrites!==void 0&&u.pendingWrites.length>0){let C=na(l,u.pendingWrites,this.nodes,S,u.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(u.metadata?.step??-1)+1}),y=(u.pendingWrites??[]).filter(A=>A[0]===fr).map(A=>A.slice(1));y.length>0&&Xt(u.checkpoint,S,[{name:bn,writes:y,triggers:[]}],void 0,this.triggerToNodes);for(let[A,F,de]of u.pendingWrites)["__error__","__interrupt__",_a].includes(F)||C[A]===void 0||C[A].writes.push([F,de]);let W=Object.values(C).filter(A=>A.writes.length>0);W.length>0&&Xt(l,S,W,void 0,this.triggerToNodes)}let w=Object.values(l.versions_seen).map(C=>Object.values(C)).flat().find(C=>!!C),x=[];if(s.length===1){let{values:C,asNode:y,taskId:W}=s[0];if(y===void 0&&Object.keys(this.nodes).length===1)[y]=Object.keys(this.nodes);else if(y===void 0&&w===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(y=this.inputChannels);else if(y===void 0){let A=Object.entries(l.versions_seen).map(([F,de])=>Object.values(de).map(Fe=>[Fe,F])).flat().filter(([F,de])=>de!==Ze).sort(([F],[de])=>ym(F,de));A&&(A.length===1?y=A[0][1]:A[A.length-1][0]!==A[A.length-2][0]&&(y=A[A.length-1][1]))}if(y===void 0)throw new ye('Ambiguous update, specify "asNode"');x.push({values:C,asNode:y,taskId:W})}else for(let{asNode:C,values:y,taskId:W}of s){if(C==null)throw new ye('"asNode" is required when applying multiple updates');x.push({values:y,asNode:C,taskId:W})}let $=[];for(let{asNode:C,values:y,taskId:W}of x){if(this.nodes[C]===void 0)throw new ye(`Node "${C.toString()}" does not exist`);let A=this.nodes[C].getWriters();if(!A.length)throw new ye(`No writers found for node "${C.toString()}"`);$.push({name:C,input:y,proc:A.length>1?Sr.from(A,{omitSequenceTags:!0}):A[0],writes:[],triggers:[Ze],id:W??qn("__interrupt__",l.id),writers:[]})}for(let C of $)await C.proc.invoke(C.input,Se({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[Er]:y=>C.writes.push(...y),[Vr]:(y,W=!1)=>el(l,S,C,y,W)}}));for(let C of $){let y=C.writes.filter(W=>W[0]!==Cr);u!==void 0&&y.length>0&&await r.putWrites(f,y,C.id)}Xt(l,S,$,r.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let T=tc(d,l.channel_versions),B=await r.put(f,ln(l,S,p+1),{source:"update",step:p+1,parents:u?.metadata?.parents??{}},T);for(let C of $){let y=C.writes.filter(W=>W[0]===Cr);y.length>0&&await r.putWrites(B,y,C.id)}return ra(B,u?u.metadata:void 0)},a=e;for(let{updates:o}of t)a=await n(a,o);return a}async updateState(e,t,r){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:r}]}])}_defaults(e){let{debug:t,streamMode:r,inputKeys:i,outputKeys:n,interruptAfter:a,interruptBefore:o,...s}=e,c=!0,u=t!==void 0?t:this.debug,l=n;l===void 0?l=this.streamChannelsAsIs:k0(l,this.channels);let d=i;d===void 0?d=this.inputChannels:k0(d,this.channels);let p=o??this.interruptBefore??[],f=a??this.interruptAfter??[],m;r!==void 0?(m=Array.isArray(r)?r:[r],c=typeof r=="string"):(e.configurable?.__pregel_task_id!==void 0?m=["values"]:m=this.streamMode,c=!0);let g;if(this.checkpointer===!1)g=void 0;else if(e!==void 0&&e.configurable?.__pregel_checkpointer!==void 0)g=e.configurable[Gr];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");g=this.checkpointer}let v=e.store??this.store,S=e.cache??this.cache;if(e.durability!=null&&e.checkpointDuring!=null)throw new Error("Cannot use both `durability` and `checkpointDuring` at the same time.");let w=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),x=e.durability??w??e?.configurable?.__pregel_durability??"async";return[u,m,d,l,s,p,f,g,v,c,S,x]}async stream(e,t){let r=new AbortController,i={recursionLimit:this.config?.recursionLimit,...t,signal:rc(t?.signal,r.signal).signal},n=await super.stream(e,i);return new v0(t?.encoding==="text/event-stream"?MN(n):n,r)}streamEvents(e,t,r){let i=new AbortController,n={recursionLimit:this.config?.recursionLimit,...t,callbacks:vN(this.config?.callbacks,t?.callbacks),signal:rc(t?.signal,i.signal).signal};return new v0(super.streamEvents(e,n,r),i)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let r="version"in(t??{})?void 0:t?.encoding??void 0,i=t?.subgraphs,n=Xs(this.config,t);if(n.recursionLimit===void 0||n.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&n.configurable===void 0)throw new Error('Checkpointer requires one or more of the following "configurable" keys: "thread_id", "checkpoint_ns", "checkpoint_id"');let a=await this._validateInput(e),{runId:o,...s}=n,[c,u,,l,d,p,f,m,g,v,S,w]=this._defaults(s);d.metadata={ls_integration:"langgraph",...d.metadata},typeof d.context<"u"?d.context=await this._validateContext(d.context):d.configurable=await this._validateContext(d.configurable);let x=new Dm({modes:new Set(u)});if(this.checkpointer===!0){d.configurable??={};let A=d.configurable.checkpoint_ns??"";d.configurable[Ir]=A.split("|").map(F=>F.split(":")[0]).join("|")}if(u.includes("messages")){let A=new DN(de=>x.push(de)),{callbacks:F}=d;if(F===void 0)d.callbacks=[A];else if(Array.isArray(F))d.callbacks=F.concat(A);else{let de=F.copy();de.addHandler(A,!0),d.callbacks=de}}if(u.includes("tools")){let A=new RN(de=>x.push(de)),{callbacks:F}=d;if(F===void 0)d.callbacks=[A];else if(Array.isArray(F))d.callbacks=F.concat(A);else{let de=F.copy();de.addHandler(A,!0),d.callbacks=de}}d.writer??=A=>{if(!u.includes("custom"))return;let F=i0()?.configurable?.[Ir]?.split("|").slice(0,-1);x.push([F??[],"custom",A])},d.interrupt??=this.userInterrupt??c0,d.serverInfo==null&&(d.serverInfo=KF(d));let $=await(await _t(d))?.handleChainStart(this.toJSON(),yN(e,"input"),o,void 0,void 0,void 0,d?.runName??this.getName()),T=qu(this.channels),B,C,W=(async()=>{try{B=await jN.initialize({input:a,config:d,checkpointer:m,nodes:this.nodes,channelSpecs:T,outputKeys:l,streamKeys:this.streamChannelsAsIs,store:g,cache:S,stream:x,interruptAfter:f,interruptBefore:p,manager:$,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:w});let A=new UN({loop:B,nodeFinished:d.configurable?.[D0]});t?.subgraphs&&(B.config.configurable={...B.config.configurable,[cc]:B.stream}),await this._runLoop({loop:B,runner:A,debug:c,config:d}),w==="sync"&&await Promise.all(B?.checkpointerPromises??[])}catch(A){C=A}finally{try{B&&(await B.store?.stop(),await B.cache?.stop()),await Promise.all(B?.checkpointerPromises??[])}catch(A){C=C??A}C?x.error(C):x.close()}})();try{for await(let A of x){if(A===void 0)throw new Error("Data structure error.");let[F,de,Fe]=A;if(u.includes(de)){if(r==="text/event-stream"){i?yield[F,de,Fe]:yield[null,de,Fe];continue}i&&!v?yield[F,de,Fe]:v?i?yield[F,Fe]:yield Fe:yield[de,Fe]}}}catch(A){throw await $?.handleChainError(C),A}finally{await W}await $?.handleChainEnd(B?.output??{},o,void 0,void 0,void 0)}async invoke(e,t){let r=t?.streamMode??"values",i={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:r,encoding:void 0},n=[],a=await this.stream(e,i),o=[],s;for await(let c of a)r==="values"?lc(c)?o.push(c[Ze]):s=c:n.push(c);if(r==="values"){if(o.length>0){let c=o.flat(1);if(s==null)return{[Ze]:c};if(typeof s=="object")return{...s,[Ze]:c}}return s}return n}async _runLoop(e){let{loop:t,runner:r,debug:i,config:n}=e,a;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:o}of await t._matchCachedWrites())t._outputWrites(o.id,o.writes,!0);i&&ON(t.checkpointMetadata.step,t.channels,this.streamChannelsList),i&&zm(t.step,Object.values(t.tasks)),await r.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(o,s)=>{i&&AN(o,s,this.streamChannelsList)},maxConcurrency:n.maxConcurrency,signal:n.signal})}if(t.status==="out_of_steps")throw new Hm([`Recursion limit of ${n.recursionLimit} reached`,"without hitting a stop condition. You can increase the",'limit by setting the "recursionLimit" config key.'].join(" "),{lc_error_code:"GRAPH_RECURSION_LIMIT"})}catch(o){if(a=o,!await t.finishAndHandleError(a))throw o}finally{a===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}};function KF(e){let t=e.metadata??{},r=e.configurable??{},i=t.assistant_id,n=t.graph_id,a=r.langgraph_auth_user,o;if(a!=null&&typeof a=="object"&&"identity"in a&&(o=a),i!=null||n!=null||o!=null)return{assistantId:i!=null?String(i):"",graphId:n!=null?String(n):"",user:o}}var hn=class VN extends bt{lc_graph_name="EphemeralValue";guard;value=[];constructor(t=!0){super(),this.guard=t}fromCheckpoint(t){let r=new VN(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 ye("EphemeralValue can only receive one value per step.");return this.value=[t[t.length-1]],!0}get(){if(this.value.length===0)throw new Ce;return this.value[0]}checkpoint(){if(this.value.length===0)throw new Ce;return this.value[0]}isAvailable(){return this.value.length!==0}};var E0=class{path;ends;constructor(e){re.isRunnable(e.path)?this.path=e.path:this.path=Xe(e.path),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,r)=>(t[r]=r,t),{}):e.pathMap}run(e,t){return rt.registerWriter(new jt({name:"<branch_run>",trace:!1,func:async(r,i)=>{try{return await this._route(r,i,e,t)}catch(n){throw n.name===dl.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
|
|
395
395
|
NodeInterrupt should only be thrown inside a node, not in edge conditions.`),n}}}))}async _route(e,t,r,i){let n=await this.path.invoke(i?i(t):e,t);Array.isArray(n)||(n=[n]);let a;if(this.ends?a=n.map(o=>ct(o)?o:this.ends[o]):a=n,a.some(o=>!o))throw new Error("Branch condition returned unknown or null destination");if(a.filter(ct).some(o=>o.node==="__end__"))throw new ye("Cannot send a packet to the END node");return await r(a,t)??e}},I0=class{nodes;edges;branches;entryPoint;compiled=!1;constructor(){this.nodes={},this.edges=new Set,this.branches={}}warnIfCompiled(e){this.compiled&&console.warn(e)}get allEdges(){return this.edges}addNode(...e){function t(i){return i.length>=1&&typeof i[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[i,n,a]of r){for(let s of["|",":"])if(i.includes(s))throw new Error(`"${s}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),i in this.nodes)throw new Error(`Node \`${i}\` already present.`);if(i==="__end__")throw new Error(`Node \`${i}\` is reserved.`);let o=Xe(n);this.nodes[i]={runnable:o,metadata:a?.metadata,subgraphs:Qu(o)?[o]:a?.subgraphs,ends:a?.ends}}return this}addEdge(e,t){if(this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),e==="__end__")throw new Error("END cannot be a start node");if(t==="__start__")throw new Error("START cannot be an end node");if(Array.from(this.edges).some(([r])=>r===e)&&!("channels"in this))throw new Error(`Already found path for ${e}. For multiple edges, use StateGraph.`);return this.edges.add([e,t]),this}addConditionalEdges(e,t,r){let i=typeof e=="object"?e:{source:e,path:t,pathMap:r};this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),re.isRunnable(i.path)||(i.path=Xe(i.path));let n=i.path.getName()==="RunnableLambda"?"condition":i.path.getName();if(this.branches[i.source]&&this.branches[i.source][n])throw new Error(`Condition \`${n}\` already present for node \`${e}\``);return this.branches[i.source]??={},this.branches[i.source][n]=new E0(i),this}setEntryPoint(e){return this.warnIfCompiled("Setting the entry point of a graph that has already been compiled. This will not be reflected in the compiled graph."),this.addEdge(Be,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,We)}compile({checkpointer:e,interruptBefore:t,interruptAfter:r,name:i}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(r)?r:[]]);let n=new T0({builder:this,checkpointer:e,interruptAfter:r,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[Be]:new hn,[We]:new hn},inputChannels:Be,outputChannels:We,streamChannels:[],streamMode:"values",name:i});for(let[a,o]of Object.entries(this.nodes))n.attachNode(a,o);for(let[a,o]of this.edges)n.attachEdge(a,o);for(let[a,o]of Object.entries(this.branches))for(let[s,c]of Object.entries(o))n.attachBranch(a,s,c);return n.validate()}validate(e){let t=new Set([...this.allEdges].map(([i,n])=>i));for(let[i]of Object.entries(this.branches))t.add(i);for(let i of t)if(i!=="__start__"&&!(i in this.nodes))throw new Error(`Found edge starting at unknown node \`${i}\``);let r=new Set([...this.allEdges].map(([i,n])=>n));for(let[i,n]of Object.entries(this.branches))for(let a of Object.values(n))if(a.ends!=null)for(let o of Object.values(a.ends))r.add(o);else{r.add(We);for(let o of Object.keys(this.nodes))o!==i&&r.add(o)}for(let i of Object.values(this.nodes))for(let n of i.ends??[])r.add(n);for(let i of Object.keys(this.nodes))if(!r.has(i))throw new Km([`Node \`${i}\` is not reachable.`,"","If you are returning Command objects from your node,",'make sure you are passing names of potential destination nodes as an "ends" array','into ".addNode(..., { ends: ["node1", "node2"] })".'].join(`
|
|
396
|
-
`),{lc_error_code:"UNREACHABLE_NODE"});for(let i of r)if(i!=="__end__"&&!(i in this.nodes))throw new Error(`Found edge ending at unknown node \`${i}\``);if(e){for(let i of e)if(!(i in this.nodes))throw new Error(`Interrupt node \`${i}\` is not present`)}this.compiled=!0}},T0=class extends Lm{builder;constructor({builder:e,...t}){super(t),this.builder=e}attachNode(e,t){this.channels[e]=new hn,this.nodes[e]=new fn({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new rt([{channel:e,value:lr}],[st])),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 rt([{channel:We,value:lr}],[st]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,r){e==="__start__"&&!this.nodes.__start__&&(this.nodes[Be]=ZN.subscribeTo(Be,{tags:[st]})),this.nodes[e].pipe(r.run(n=>new rt(n.map(a=>ct(a)?a:{channel:a==="__end__"?We:`branch:${e}:${t}:${a}`,value:lr}),[st])));let i=r.ends?Object.values(r.ends):Object.keys(this.nodes);for(let n of i)if(n!=="__end__"){let a=`branch:${e}:${t}:${n}`;this.channels[a]=new hn,this.nodes[n].triggers.push(a),this.nodes[n].channels.push(a)}}async getGraphAsync(e){let t=e?.xray,r=new so,i={[Be]:r.addNode({schema:Fr.any()},Be)},n={},a={};t&&(a=Object.fromEntries((await pn(this.getSubgraphsAsync())).filter(c=>GN(c[1]))));function o(c,u,l,d=!1){if(u==="__end__"&&n.__end__===void 0&&(n[We]=r.addNode({schema:Fr.any()},We)),i[c]!==void 0){if(n[u]===void 0)throw new Error(`End node ${u} not found!`);return r.addEdge(i[c],n[u],l!==u?l:void 0,d)}}for(let[c,u]of Object.entries(this.builder.nodes)){let l=zt(c),d=u.runnable,p=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?p.__interrupt="before,after":this.interruptBefore?.includes(c)?p.__interrupt="before":this.interruptAfter?.includes(c)&&(p.__interrupt="after"),t){let f=typeof t=="number"?t-1:t,m=a[c]!==void 0?await a[c].getGraphAsync({...e,xray:f}):d.getGraph(e);if(m.trimFirstNode(),m.trimLastNode(),Object.keys(m.nodes).length>1){let S=function(x){return x?x.lc_runnable:!1},w=function(x,$){if(x!==void 0&&!Io(x))return x;if(S($))try{let T=$.getName();return T=T.startsWith("Runnable")?T.slice(8):T,T}catch{return $.getName()}else return $.name??"UnknownSchema"},[g,v]=r.extend(m,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);v!==void 0&&(i[l]={name:w(v.id,v.data),...v}),n[l]={name:w(g.id,g.data),...g}}else{let g=r.addNode(d,l,p);i[l]=g,n[l]=g}}else{let f=r.addNode(d,l,p);i[l]=f,n[l]=f}}let s=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of s)o(zt(c),zt(u));for(let[c,u]of Object.entries(this.builder.branches)){let l={...Object.fromEntries(Object.keys(this.builder.nodes).filter(d=>d!==c).map(d=>[zt(d),zt(d)])),[We]:We};for(let d of Object.values(u)){let p;d.ends!==void 0?p=d.ends:p=l;for(let[f,m]of Object.entries(p))o(zt(c),zt(m),f,!0)}}for(let[c,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let l of u.ends)o(zt(c),zt(l),void 0,!0);return r}getGraph(e){let t=e?.xray,r=new so,i={[Be]:r.addNode({schema:Fr.any()},Be)},n={},a={};t&&(a=Object.fromEntries(go(this.getSubgraphs()).filter(c=>GN(c[1]))));function o(c,u,l,d=!1){return u==="__end__"&&n.__end__===void 0&&(n[We]=r.addNode({schema:Fr.any()},We)),r.addEdge(i[c],n[u],l!==u?l:void 0,d)}for(let[c,u]of Object.entries(this.builder.nodes)){let l=zt(c),d=u.runnable,p=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?p.__interrupt="before,after":this.interruptBefore?.includes(c)?p.__interrupt="before":this.interruptAfter?.includes(c)&&(p.__interrupt="after"),t){let f=typeof t=="number"?t-1:t,m=a[c]!==void 0?a[c].getGraph({...e,xray:f}):d.getGraph(e);if(m.trimFirstNode(),m.trimLastNode(),Object.keys(m.nodes).length>1){let S=function(x){return x?x.lc_runnable:!1},w=function(x,$){if(x!==void 0&&!Io(x))return x;if(S($))try{let T=$.getName();return T=T.startsWith("Runnable")?T.slice(8):T,T}catch{return $.getName()}else return $.name??"UnknownSchema"},[g,v]=r.extend(m,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);v!==void 0&&(i[l]={name:w(v.id,v.data),...v}),n[l]={name:w(g.id,g.data),...g}}else{let g=r.addNode(d,l,p);i[l]=g,n[l]=g}}else{let f=r.addNode(d,l,p);i[l]=f,n[l]=f}}let s=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of s)o(zt(c),zt(u));for(let[c,u]of Object.entries(this.builder.branches)){let l={...Object.fromEntries(Object.keys(this.builder.nodes).filter(d=>d!==c).map(d=>[zt(d),zt(d)])),[We]:We};for(let d of Object.values(u)){let p;d.ends!==void 0?p=d.ends:p=l;for(let[f,m]of Object.entries(p))o(zt(c),zt(m),f,!0)}}return r}};function GN(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function zt(e){return e==="subgraph"?`"${e}"`:e}function bi(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"validate"in e["~standard"]}function C0(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"jsonSchema"in e["~standard"]}function WF(e){return bi(e)&&C0(e)}function ia(e){if(C0(e))try{return e["~standard"].jsonSchema.input({target:"draft-07"})}catch{return}}function aa(e){if(e!=null&&bi(e))try{let t=e["~standard"].validate(void 0);if(t&&typeof t=="object"&&!("then"in t&&typeof t.then=="function")){let r=t;if(!r.issues){let i=r.value;return()=>i}}}catch{}}var O0=Symbol.for("langgraph.channel.missing"),Fm=class HN extends bt{lc_graph_name="UntrackedValue";guard;_value=O0;initialValueFactory;constructor(t){super(),this.guard=t?.guard??!0,this.initialValueFactory=t?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new HN({guard:this.guard,initialValueFactory:this.initialValueFactory})}update(t){if(t.length===0)return!1;if(t.length!==1&&this.guard)throw new ye("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===O0)throw new Ce;return this._value}checkpoint(){}isAvailable(){return this._value!==O0}};var oa=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),A0=class JN extends bt{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let r=new JN(this.names);return typeof t<"u"&&(r.seen=new Set(t)),r}update(t){let r=!1;for(let i of t)if(this.names.has(i))this.seen.has(i)||(this.seen.add(i),r=!0);else throw new ye(`Value ${JSON.stringify(i)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!oa(this.names,this.seen))throw new Ce}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&oa(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&oa(this.names,this.seen)}},P0=class KN extends bt{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 KN(this.names);if(typeof t<"u"){let[i,n]=t;r.seen=new Set(i),r.finished=n}return r}update(t){let r=!1;for(let i of t)if(this.names.has(i)&&!this.seen.has(i))this.seen.add(i),r=!0;else if(!this.names.has(i))throw new ye(`Value ${JSON.stringify(i)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!this.finished||!oa(this.names,this.seen))throw new Ce}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&oa(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&oa(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&oa(this.names,this.seen)}};var N0=Symbol.for("langgraph.state.reduced_value"),wi=class{[N0]=!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&&N0 in e&&e[N0]===!0}};var WN=Symbol.for("langgraph.state.untracked_value"),vo=class{[WN]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&WN in e}};var R0=Symbol.for("langgraph.state.state_schema"),Gn=class{[R0]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,r]of Object.entries(this.fields))if(wi.isInstance(r)){let i=aa(r.valueSchema);e[t]=new hi(r.reducer,i)}else if(vo.isInstance(r)){let i=r.schema?aa(r.schema):void 0;e[t]=new Fm({guard:r.guard,initialValueFactory:i})}else if(bi(r))e[t]=new dn(aa(r));else throw new Error(`Invalid state field "${t}": must be a schema, ReducedValue, UntrackedValue, or ManagedValue`);return e}getJsonSchema(){let e={},t=[];for(let[r,i]of Object.entries(this.fields)){let n;if(wi.isInstance(i)?(n=ia(i.valueSchema),i.jsonSchemaExtra&&(n={...n??{},...i.jsonSchemaExtra})):vo.isInstance(i)?n=i.schema?ia(i.schema):void 0:bi(i)&&(n=ia(i)),n){e[r]=n;let a=!1;wi.isInstance(i)?a=aa(i.valueSchema)!==void 0:vo.isInstance(i)?a=i.schema?aa(i.schema)!==void 0:!1:a=aa(i)!==void 0,a||t.push(r)}}return{type:"object",properties:e,required:t.length>0?t:void 0}}getInputJsonSchema(){let e={};for(let[t,r]of Object.entries(this.fields)){let i;wi.isInstance(r)?(i=ia(r.inputSchema),r.jsonSchemaExtra&&(i={...i??{},...r.jsonSchemaExtra})):vo.isInstance(r)?i=r.schema?ia(r.schema):void 0:bi(r)&&(i=ia(r)),i&&(e[t]=i)}return{type:"object",properties:e}}getChannelKeys(){return Object.entries(this.fields).map(([e])=>e)}getAllKeys(){return Object.keys(this.fields)}async validateInput(e){if(e==null||typeof e!="object")return e;let t={};for(let[r,i]of Object.entries(e)){let n=this.fields[r];if(n===void 0){t[r]=i;continue}let a;if(wi.isInstance(n)?a=n.inputSchema:vo.isInstance(n)?a=n.schema:bi(n)&&(a=n),a){let o=await a["~standard"].validate(i);if(o.issues)throw new Error(`Validation failed for field "${r}": ${JSON.stringify(o.issues)}`);t[r]=o.value}else t[r]=i}return t}static isInstance(e){return typeof e=="object"&&e!==null&&R0 in e&&e[R0]===!0}};var qF="__remove_all__";function sa(e,t){let r=Array.isArray(e)?e:[e],i=Array.isArray(t)?t:[t],n=r.map(xt),a=i.map(xt);for(let l of n)(l.id===null||l.id===void 0)&&(l.id=yl(),l.lc_kwargs.id=l.id);let o;for(let l=0;l<a.length;l+=1){let d=a[l];(d.id===null||d.id===void 0)&&(d.id=yl(),d.lc_kwargs.id=d.id),qr.isInstance(d)&&d.id==="__remove_all__"&&(o=l)}if(o!=null)return a.slice(o+1);let s=[...n],c=new Map(s.map((l,d)=>[l.id,d])),u=new Set;for(let l of a){let d=c.get(l.id);if(d!==void 0)qr.isInstance(l)?u.add(l.id):(u.delete(l.id),s[d]=l);else{if(qr.isInstance(l))throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${l.id}')`);c.set(l.id,s.length),s.push(l)}}return s.filter(l=>!u.has(l.id))}var XF=new wi(Fr.custom().default(()=>[]),{inputSchema:Fr.custom(),reducer:sa,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var YF=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=Va(e);for(let[i,n]of Object.entries(r)){let a=this.get(n);a?.reducer?t[i]=new hi(a.reducer.fn,a.default):t[i]=new dn(a?.default)}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let r=Object.entries(t).filter(([,a])=>a===!0).sort(([a],[o])=>a.localeCompare(o)).map(([a,o])=>`${a}:${o}`).join("|"),i=this._extensionCache.get(r)??new Map;if(i.has(e))return i.get(e);let n=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let a=Object.entries(Va(e)).map(([o,s])=>{let c=this.get(s),u=t.withReducerSchema?c?.reducer?.schema??s:s;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let l=oi(u)??oi(s),d=JSON.stringify({...c.jsonSchemaExtra,description:l});u=u.describe(`lg:${d}`)}return[o,u]});n=Dp(e,Object.fromEntries(a)),tt(n)&&(n._def.unknownKeys="strip")}return t.asPartial&&(n=ws(n)),i.set(e,n),this._extensionCache.set(r,i),n}},il=new YF;function qN(e,t){if(t.reducer&&!t.default){let r=Up(e);r!=null&&(t.default=r)}if(t.reducer){let r=Object.assign(e,{lg_reducer_schema:t.reducer?.schema??e});return il.extend(r,()=>t),r}else return il.extend(e,()=>t),e}function bo(e){return e==null?!1:!!(Gn.isInstance(e)||Kt(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"||r0(t)))}function XN(e){if(typeof e!="object"||e==null)return!1;let t=e,r="state"in t&&bo(t.state),i="stateSchema"in t&&bo(t.stateSchema),n="input"in t&&bo(t.input);return!(!r&&!i&&!n||"input"in t&&t.input!=null&&!bo(t.input)||"output"in t&&t.output!=null&&!bo(t.output))}var xi="__root__",Bm=Symbol.for("langgraph.state.partial"),M0=class extends I0{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=il;_configSchema;_configRuntimeSchema;_interrupt;_writer;constructor(e,t){super();let r=this._normalizeToStateGraphInit(e,t),i=r.state??r.stateSchema??r.input;if(!i)throw new dc;let n=this._getChannelsFromSchema(i);this._schemaDefinition=n,Gn.isInstance(i)?this._schemaRuntimeDefinition=i:Kt(i)&&(this._schemaRuntimeDefinition=i),r.input?Gn.isInstance(r.input)?this._inputRuntimeDefinition=r.input:Kt(r.input)?this._inputRuntimeDefinition=r.input:this._inputRuntimeDefinition=Bm:this._inputRuntimeDefinition=Bm,r.output?Gn.isInstance(r.output)?this._outputRuntimeDefinition=r.output:Kt(r.output)?this._outputRuntimeDefinition=r.output:this._outputRuntimeDefinition=this._schemaRuntimeDefinition:this._outputRuntimeDefinition=this._schemaRuntimeDefinition;let a=r.input?this._getChannelsFromSchema(r.input):n,o=r.output?this._getChannelsFromSchema(r.output):n;this._inputDefinition=a,this._outputDefinition=o,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),r.context&&Kt(r.context)&&(this._configRuntimeSchema=r.context),this._interrupt=r.interrupt,this._writer=r.writer}_normalizeToStateGraphInit(e,t){if(XN(e)){if(Kt(t)||wm.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(bo(e)){if(Kt(t)||wm.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(eB(e))return{state:QF(e.channels)};throw new dc}_getChannelsFromSchema(e){if(Gn.isInstance(e))return e.getChannels();if(Kt(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 dc("Invalid schema type. Expected StateSchema, Zod object, AnnotationRoot, or StateDefinition.")}get allEdges(){return new Set([...this.edges,...Array.from(this.waitingEdges).flatMap(([e,t])=>e.map(r=>[r,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,r]of Object.entries(e)){let i;if(typeof r=="function"?i=r():i=r,this.channels[t]!==void 0){if(!this.channels[t].equals(i)&&i.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=i}}}addNode(...e){function t(i){return i.length>=1&&typeof i[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([i,n])=>[i,n]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[i,n,a]of r){if(i in this.channels)throw new Error(`${i} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let l of["|",":"])if(i.includes(l))throw new Error(`"${l}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),i in this.nodes)throw new Error(`Node \`${i}\` already present.`);if(i==="__end__"||i==="__start__")throw new Error(`Node \`${i}\` is reserved.`);let o=this._schemaDefinition;a?.input!==void 0&&(o=this._getChannelsFromSchema(a.input)),this._addSchema(o);let s;re.isRunnable(n)?s=n:typeof n=="function"?s=new jt({func:n,name:i,trace:!1}):s=Xe(n);let c=a?.cachePolicy;typeof c=="boolean"&&(c=c?{}:void 0);let u={runnable:s,retryPolicy:a?.retryPolicy,cachePolicy:c,metadata:a?.metadata,input:o??this._schemaDefinition,subgraphs:Qu(s)?[s]:a?.subgraphs,ends:a?.ends,defer:a?.defer};this.nodes[i]=u}return this}addEdge(e,t){if(typeof e=="string")return super.addEdge(e,t);this.compiled&&console.warn("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.");for(let r of e){if(r==="__end__")throw new Error("END cannot be a start node");if(!Object.keys(this.nodes).some(i=>i===r))throw new Error(`Need to add a node named "${r}" first`)}if(t==="__end__")throw new Error("END cannot be an end node");if(!Object.keys(this.nodes).some(r=>r===t))throw new Error(`Need to add a node named "${t}" first`);return this.waitingEdges.add([e,t]),this}addSequence(e){let t=Array.isArray(e)?e:Object.entries(e);if(t.length===0)throw new Error("Sequence requires at least one node.");let r;for(let[i,n,a]of t){if(i in this.nodes)throw new Error(`Node names must be unique: node with the name "${i}" already exists.`);let o=i;this.addNode(o,n,a),r!=null&&this.addEdge(r,o),r=o}return this}compile({checkpointer:e,store:t,cache:r,interruptBefore:i,interruptAfter:n,name:a,description:o}={}){this.validate([...Array.isArray(i)?i:[],...Array.isArray(n)?n:[]]);let s=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),c=s.length===1&&s[0]===xi?xi:s,u=Object.keys(this.channels),l=u.length===1&&u[0]===xi?xi:u,d=this._interrupt,p=new QN({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:i,autoValidate:!1,nodes:{},channels:{...this.channels,[Be]:new hn},inputChannels:Be,outputChannels:c,streamChannels:l,streamMode:"updates",store:t,cache:r,name:a,description:o,userInterrupt:d});p.attachNode(Be);for(let[f,m]of Object.entries(this.nodes))p.attachNode(f,m);p.attachBranch(Be,Vm,YN(),{withReader:!1});for(let[f]of Object.entries(this.nodes))p.attachBranch(f,Vm,YN(),{withReader:!1});for(let[f,m]of this.edges)p.attachEdge(f,m);for(let[f,m]of this.waitingEdges)p.attachEdge(f,m);for(let[f,m]of Object.entries(this.branches))for(let[g,v]of Object.entries(m))p.attachBranch(f,g,v);return p.validate()}};function QF(e){let t={};for(let[r,i]of Object.entries(e))r===xi?t[r]=xm(i):t[r]=xm(i);return t}var QN=class extends T0{description;_metaRegistry=il;constructor({description:e,...t}){super(t),this.description=e}attachNode(e,t){let r;e==="__start__"?r=Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([s])=>s):r=Object.keys(this.builder.channels);function i(s){if(pt(s))return s.graph===Qt.PARENT?null:s._updateAsTuples();if(Array.isArray(s)&&s.length>0&&s.some(c=>pt(c))){let c=[];for(let u of s)if(pt(u)){if(u.graph===Qt.PARENT)continue;c.push(...u._updateAsTuples())}else c.push([xi,u]);return c}else if(s!=null)return[[xi,s]];return null}let n=e;function a(s){if(s){if(pt(s))return s.graph===Qt.PARENT?null:s._updateAsTuples().filter(([c])=>r.includes(c));if(Array.isArray(s)&&s.length>0&&s.some(pt)){let c=[];for(let u of s)if(pt(u)){if(u.graph===Qt.PARENT)continue;c.push(...u._updateAsTuples().filter(([l])=>r.includes(l)))}else{let l=a(u);l&&c.push(...l??[])}return c}else{if(typeof s=="object"&&!Array.isArray(s))return Object.entries(s).filter(([c])=>r.includes(c));{let c=Array.isArray(s)?"array":typeof s;throw new ye(`Expected node "${n.toString()}" to return an object or an array containing at least one Command object, received ${c}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let o=[{value:lr,mapper:new jt({func:r.length&&r[0]===xi?i:a,trace:!1,recurse:!1})}];if(e==="__start__")this.nodes[e]=new fn({tags:[st],triggers:[Be],channels:[Be],writers:[new rt(o,[st])]});else{let s=t?.input??this.builder._schemaDefinition,c=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(s)).map(d=>[d,d])),u=Object.keys(c).length===1&&xi in c,l=`branch:to:${e}`;this.channels[l]=t?.defer?new n0:new hn(!1),this.nodes[e]=new fn({triggers:[l],channels:u?Object.keys(c):c,writers:[new rt(o,[st])],mapper:u?void 0:d=>Object.fromEntries(Object.entries(d).filter(([p])=>p in c)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:t?.cachePolicy,subgraphs:t?.subgraphs,ends:t?.ends})}}attachEdge(e,t){if(t!=="__end__"){if(typeof e=="string")this.nodes[e].writers.push(new rt([{channel:`branch:to:${t}`,value:null}],[st]));else if(Array.isArray(e)){let r=`join:${e.join("+")}:${t}`;this.channels[r]=this.builder.nodes[t].defer?new P0(new Set(e)):new A0(new Set(e)),this.nodes[t].triggers.push(r);for(let i of e)this.nodes[i].writers.push(new rt([{channel:r,value:i}],[st]))}}}attachBranch(e,t,r,i={withReader:!0}){let n=async(a,o)=>{let s=a.filter(u=>u!==We);if(!s.length)return;let c=s.map(u=>ct(u)?u:{channel:u==="__end__"?u:`branch:to:${u}`,value:e});await rt.doWrite({...o,tags:(o.tags??[]).concat([st])},c)};this.nodes[e].writers.push(r.run(n,i.withReader?a=>mN.doRead(a,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=this.builder._inputRuntimeDefinition,r=this.builder._schemaRuntimeDefinition;if(Gn.isInstance(t)){if(pt(e)){let n=e;return e.update&&(n.update=await t.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await t.validateInput(e)}if(t===Bm&&Gn.isInstance(r)){if(pt(e)){let n=e;return e.update&&(n.update=await r.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await r.validateInput(e)}let i=(()=>{let n=a=>{if(a!=null)return this._metaRegistry.getExtendedChannelSchemas(a,{withReducerSchema:!0})};if(Kt(t))return n(t);if(t===Bm)return Kt(r)?ws(n(r)):void 0})();if(pt(e)){let n=e;return e.update&&i!=null&&(n.update=vs(i,e.update)),n}return i!=null?vs(i,e):e}isInterrupted(e){return lc(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return Kt(t)&&vs(t,e),e}};function eB(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function tB(e){if(ct(e))return[e];let t=[];pt(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(pt));let r=[];for(let i of t){if(i.graph===Qt.PARENT)throw new pl(i);ct(i.goto)||typeof i.goto=="string"?r.push(i.goto):Array.isArray(i.goto)&&r.push(...i.goto)}return r}function YN(){return new E0({path:new jt({func:tB,tags:[st],trace:!1,recurse:!1,name:"<control_branch>"})})}var rB=class extends M0{constructor(){super({channels:{__root__:{reducer:sa,default:()=>[]}}})}};function nB(e,t){let{stateKey:r,...i}=t??{},n=Xs(i),a=r??"messages";r===null&&(a=void 0);let o=xt(e);if(!o.id)throw new Error("Message ID is required.");let s=(Array.isArray(n.callbacks)?n.callbacks:typeof n.callbacks<"u"?n.callbacks.handlers:[]).find(c=>"name"in c&&c.name==="StreamMessagesHandler");if(s){let c=n.metadata??{},u=(c.langgraph_checkpoint_ns??"").split("|");s._emit([u,c],o,void 0,!1)}return a&&n.configurable?.__pregel_send?.([[a,o]]),o}function iB(e,t){let r=typeof e=="string"?{name:e,retry:void 0,cachePolicy:void 0}:e,{name:i,retry:n}=r;if(u0(t)||l0(t))throw new Error("Generators are disallowed as tasks. For streaming responses, use config.write.");let a=r.cachePolicy??("cache"in r?r.cache:void 0),o;return typeof a=="boolean"?o=a?{}:void 0:o=a,(...s)=>kN({func:t,name:i,retry:n,cache:o},...s)}var eR=function(t,r){let{name:i,checkpointer:n,store:a,cache:o}=typeof t=="string"?{name:t,checkpointer:void 0,store:void 0}:t;if(u0(r)||l0(r))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let s="updates",c=SN(i,r);function u(f){return typeof f=="object"&&f!==null&&"__lg_type"in f&&f.__lg_type==="__pregel_final"}let l=new jt({name:"pluckReturnValue",func:f=>u(f)?f.value:f}),d=new jt({name:"pluckSaveValue",func:f=>u(f)?f.save:f}),p=new fn({bound:c,triggers:[Be],channels:[Be],writers:[new rt([{channel:We,value:lr,mapper:l},{channel:ma,value:lr,mapper:d}],[st])]});return new Lm({name:i,checkpointer:n,nodes:{[i]:p},channels:{[Be]:new hn,[We]:new dn,[ma]:new dn},inputChannels:Be,outputChannels:We,streamChannels:We,streamMode:s,store:a,cache:o})};eR.final=function({value:t,save:r}){return{value:t,save:r,__lg_type:"__pregel_final"}};function aB(){return $e.getRunnableConfig().configurable?.[fa]}var oB=Xu.Root({messages:Xu({reducer:sa,default:()=>[]})}),tR={reducer:{fn:sa},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},sB=vt.object({messages:qN(vt.custom(),tR)});function cB(e){let t=$e.getRunnableConfig();if(!t)throw new Error("Called interrupt() outside the context of a graph.");let r=t.configurable;if(!r)throw new Error("No configurable found in config");return r.writer?.(e)}export{Be as a,We as b,Ze as c,Zm as d,F0 as e,pa as f,iR as g,lc as h,Qt as i,pt as j,Hr as k,Gm as l,Hm as m,ha as n,Kn as o,dl as p,pl as q,Jm as r,ga as s,Wn as t,fl as u,Ce as v,ye as w,aR as x,Km as y,oR as z,dc as A,sR as B,vS as C,Ut as D,UR as E,Sn as F,CS as G,hc as H,OS as I,Ft as J,No as K,Ie as L,jo as M,mt as N,Wr as O,va as P,wa as Q,xa as R,Qn as S,bk as T,_t as U,Mi as V,Na as W,Fi as X,ap as Y,Ba as Z,Ue as _,tt as $,ar as aa,oi as ba,Up as ca,D as da,vt as ea,ht as fa,Pt as ga,SL as ha,gu as ia,mf as ja,iw as ka,YO as la,QO as ma,TL as na,CL as oa,ow as pa,Qi as qa,ww as ra,Ds as sa,Pu as ta,Fr as ua,N6 as va,Ks as wa,un as xa,_m as ya,XP as za,qs as Aa,vm as Ba,eN as Ca,bt as Da,hi as Ea,Xu as Fa,cF as Ga,uF as Ha,i0 as Ia,lF as Ja,c0 as Ka,I0 as La,bi as Ma,WF as Na,ia as Oa,aa as Pa,Fm as Qa,wi as Ra,vo as Sa,Gn as Ta,qF as Ua,sa as Va,XF as Wa,il as Xa,qN as Ya,M0 as Za,QN as _a,rB as $a,nB as ab,iB as bb,eR as cb,aB as db,oB as eb,tR as fb,sB as gb,cB as hb};
|
|
396
|
+
`),{lc_error_code:"UNREACHABLE_NODE"});for(let i of r)if(i!=="__end__"&&!(i in this.nodes))throw new Error(`Found edge ending at unknown node \`${i}\``);if(e){for(let i of e)if(!(i in this.nodes))throw new Error(`Interrupt node \`${i}\` is not present`)}this.compiled=!0}},T0=class extends Lm{builder;constructor({builder:e,...t}){super(t),this.builder=e}attachNode(e,t){this.channels[e]=new hn,this.nodes[e]=new fn({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new rt([{channel:e,value:lr}],[st])),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 rt([{channel:We,value:lr}],[st]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,r){e==="__start__"&&!this.nodes.__start__&&(this.nodes[Be]=ZN.subscribeTo(Be,{tags:[st]})),this.nodes[e].pipe(r.run(n=>new rt(n.map(a=>ct(a)?a:{channel:a==="__end__"?We:`branch:${e}:${t}:${a}`,value:lr}),[st])));let i=r.ends?Object.values(r.ends):Object.keys(this.nodes);for(let n of i)if(n!=="__end__"){let a=`branch:${e}:${t}:${n}`;this.channels[a]=new hn,this.nodes[n].triggers.push(a),this.nodes[n].channels.push(a)}}async getGraphAsync(e){let t=e?.xray,r=new so,i={[Be]:r.addNode({schema:Fr.any()},Be)},n={},a={};t&&(a=Object.fromEntries((await pn(this.getSubgraphsAsync())).filter(c=>GN(c[1]))));function o(c,u,l,d=!1){if(u==="__end__"&&n.__end__===void 0&&(n[We]=r.addNode({schema:Fr.any()},We)),i[c]!==void 0){if(n[u]===void 0)throw new Error(`End node ${u} not found!`);return r.addEdge(i[c],n[u],l!==u?l:void 0,d)}}for(let[c,u]of Object.entries(this.builder.nodes)){let l=zt(c),d=u.runnable,p=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?p.__interrupt="before,after":this.interruptBefore?.includes(c)?p.__interrupt="before":this.interruptAfter?.includes(c)&&(p.__interrupt="after"),t){let f=typeof t=="number"?t-1:t,m=a[c]!==void 0?await a[c].getGraphAsync({...e,xray:f}):d.getGraph(e);if(m.trimFirstNode(),m.trimLastNode(),Object.keys(m.nodes).length>1){let S=function(x){return x?x.lc_runnable:!1},w=function(x,$){if(x!==void 0&&!Io(x))return x;if(S($))try{let T=$.getName();return T=T.startsWith("Runnable")?T.slice(8):T,T}catch{return $.getName()}else return $.name??"UnknownSchema"},[g,v]=r.extend(m,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);v!==void 0&&(i[l]={name:w(v.id,v.data),...v}),n[l]={name:w(g.id,g.data),...g}}else{let g=r.addNode(d,l,p);i[l]=g,n[l]=g}}else{let f=r.addNode(d,l,p);i[l]=f,n[l]=f}}let s=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of s)o(zt(c),zt(u));for(let[c,u]of Object.entries(this.builder.branches)){let l={...Object.fromEntries(Object.keys(this.builder.nodes).filter(d=>d!==c).map(d=>[zt(d),zt(d)])),[We]:We};for(let d of Object.values(u)){let p;d.ends!==void 0?p=d.ends:p=l;for(let[f,m]of Object.entries(p))o(zt(c),zt(m),f,!0)}}for(let[c,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let l of u.ends)o(zt(c),zt(l),void 0,!0);return r}getGraph(e){let t=e?.xray,r=new so,i={[Be]:r.addNode({schema:Fr.any()},Be)},n={},a={};t&&(a=Object.fromEntries(go(this.getSubgraphs()).filter(c=>GN(c[1]))));function o(c,u,l,d=!1){return u==="__end__"&&n.__end__===void 0&&(n[We]=r.addNode({schema:Fr.any()},We)),r.addEdge(i[c],n[u],l!==u?l:void 0,d)}for(let[c,u]of Object.entries(this.builder.nodes)){let l=zt(c),d=u.runnable,p=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?p.__interrupt="before,after":this.interruptBefore?.includes(c)?p.__interrupt="before":this.interruptAfter?.includes(c)&&(p.__interrupt="after"),t){let f=typeof t=="number"?t-1:t,m=a[c]!==void 0?a[c].getGraph({...e,xray:f}):d.getGraph(e);if(m.trimFirstNode(),m.trimLastNode(),Object.keys(m.nodes).length>1){let S=function(x){return x?x.lc_runnable:!1},w=function(x,$){if(x!==void 0&&!Io(x))return x;if(S($))try{let T=$.getName();return T=T.startsWith("Runnable")?T.slice(8):T,T}catch{return $.getName()}else return $.name??"UnknownSchema"},[g,v]=r.extend(m,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);v!==void 0&&(i[l]={name:w(v.id,v.data),...v}),n[l]={name:w(g.id,g.data),...g}}else{let g=r.addNode(d,l,p);i[l]=g,n[l]=g}}else{let f=r.addNode(d,l,p);i[l]=f,n[l]=f}}let s=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of s)o(zt(c),zt(u));for(let[c,u]of Object.entries(this.builder.branches)){let l={...Object.fromEntries(Object.keys(this.builder.nodes).filter(d=>d!==c).map(d=>[zt(d),zt(d)])),[We]:We};for(let d of Object.values(u)){let p;d.ends!==void 0?p=d.ends:p=l;for(let[f,m]of Object.entries(p))o(zt(c),zt(m),f,!0)}}return r}};function GN(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function zt(e){return e==="subgraph"?`"${e}"`:e}function bi(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"validate"in e["~standard"]}function C0(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"jsonSchema"in e["~standard"]}function WF(e){return bi(e)&&C0(e)}function ia(e){if(C0(e))try{return e["~standard"].jsonSchema.input({target:"draft-07"})}catch{return}}function aa(e){if(e!=null&&bi(e))try{let t=e["~standard"].validate(void 0);if(t&&typeof t=="object"&&!("then"in t&&typeof t.then=="function")){let r=t;if(!r.issues){let i=r.value;return()=>i}}}catch{}}var O0=Symbol.for("langgraph.channel.missing"),Fm=class HN extends bt{lc_graph_name="UntrackedValue";guard;_value=O0;initialValueFactory;constructor(t){super(),this.guard=t?.guard??!0,this.initialValueFactory=t?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new HN({guard:this.guard,initialValueFactory:this.initialValueFactory})}update(t){if(t.length===0)return!1;if(t.length!==1&&this.guard)throw new ye("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===O0)throw new Ce;return this._value}checkpoint(){}isAvailable(){return this._value!==O0}};var oa=(e,t)=>e.size===t.size&&[...e].every(r=>t.has(r)),A0=class JN extends bt{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let r=new JN(this.names);return typeof t<"u"&&(r.seen=new Set(t)),r}update(t){let r=!1;for(let i of t)if(this.names.has(i))this.seen.has(i)||(this.seen.add(i),r=!0);else throw new ye(`Value ${JSON.stringify(i)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!oa(this.names,this.seen))throw new Ce}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&oa(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&oa(this.names,this.seen)}},P0=class KN extends bt{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 KN(this.names);if(typeof t<"u"){let[i,n]=t;r.seen=new Set(i),r.finished=n}return r}update(t){let r=!1;for(let i of t)if(this.names.has(i)&&!this.seen.has(i))this.seen.add(i),r=!0;else if(!this.names.has(i))throw new ye(`Value ${JSON.stringify(i)} not in names ${JSON.stringify(this.names)}`);return r}get(){if(!this.finished||!oa(this.names,this.seen))throw new Ce}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&oa(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&oa(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&oa(this.names,this.seen)}};var N0=Symbol.for("langgraph.state.reduced_value"),wi=class{[N0]=!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&&N0 in e&&e[N0]===!0}};var WN=Symbol.for("langgraph.state.untracked_value"),vo=class{[WN]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&WN in e}};var R0=Symbol.for("langgraph.state.state_schema"),Gn=class{[R0]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,r]of Object.entries(this.fields))if(wi.isInstance(r)){let i=aa(r.valueSchema);e[t]=new hi(r.reducer,i)}else if(vo.isInstance(r)){let i=r.schema?aa(r.schema):void 0;e[t]=new Fm({guard:r.guard,initialValueFactory:i})}else if(bi(r))e[t]=new dn(aa(r));else throw new Error(`Invalid state field "${t}": must be a schema, ReducedValue, UntrackedValue, or ManagedValue`);return e}getJsonSchema(){let e={},t=[];for(let[r,i]of Object.entries(this.fields)){let n;if(wi.isInstance(i)?(n=ia(i.valueSchema),i.jsonSchemaExtra&&(n={...n??{},...i.jsonSchemaExtra})):vo.isInstance(i)?n=i.schema?ia(i.schema):void 0:bi(i)&&(n=ia(i)),n){e[r]=n;let a=!1;wi.isInstance(i)?a=aa(i.valueSchema)!==void 0:vo.isInstance(i)?a=i.schema?aa(i.schema)!==void 0:!1:a=aa(i)!==void 0,a||t.push(r)}}return{type:"object",properties:e,required:t.length>0?t:void 0}}getInputJsonSchema(){let e={};for(let[t,r]of Object.entries(this.fields)){let i;wi.isInstance(r)?(i=ia(r.inputSchema),r.jsonSchemaExtra&&(i={...i??{},...r.jsonSchemaExtra})):vo.isInstance(r)?i=r.schema?ia(r.schema):void 0:bi(r)&&(i=ia(r)),i&&(e[t]=i)}return{type:"object",properties:e}}getChannelKeys(){return Object.entries(this.fields).map(([e])=>e)}getAllKeys(){return Object.keys(this.fields)}async validateInput(e){if(e==null||typeof e!="object")return e;let t={};for(let[r,i]of Object.entries(e)){let n=this.fields[r];if(n===void 0){t[r]=i;continue}let a;if(wi.isInstance(n)?a=n.inputSchema:vo.isInstance(n)?a=n.schema:bi(n)&&(a=n),a){let o=await a["~standard"].validate(i);if(o.issues)throw new Error(`Validation failed for field "${r}": ${JSON.stringify(o.issues)}`);t[r]=o.value}else t[r]=i}return t}static isInstance(e){return typeof e=="object"&&e!==null&&R0 in e&&e[R0]===!0}};var qF="__remove_all__";function sa(e,t){let r=Array.isArray(e)?e:[e],i=Array.isArray(t)?t:[t],n=r.map(xt),a=i.map(xt);for(let l of n)(l.id===null||l.id===void 0)&&(l.id=yl(),l.lc_kwargs.id=l.id);let o;for(let l=0;l<a.length;l+=1){let d=a[l];(d.id===null||d.id===void 0)&&(d.id=yl(),d.lc_kwargs.id=d.id),qr.isInstance(d)&&d.id==="__remove_all__"&&(o=l)}if(o!=null)return a.slice(o+1);let s=[...n],c=new Map(s.map((l,d)=>[l.id,d])),u=new Set;for(let l of a){let d=c.get(l.id);if(d!==void 0)qr.isInstance(l)?u.add(l.id):(u.delete(l.id),s[d]=l);else{if(qr.isInstance(l))throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${l.id}')`);c.set(l.id,s.length),s.push(l)}}return s.filter(l=>!u.has(l.id))}var XF=new wi(Fr.custom().default(()=>[]),{inputSchema:Fr.custom(),reducer:sa,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var YF=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=Va(e);for(let[i,n]of Object.entries(r)){let a=this.get(n);a?.reducer?t[i]=new hi(a.reducer.fn,a.default):t[i]=new dn(a?.default)}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let r=Object.entries(t).filter(([,a])=>a===!0).sort(([a],[o])=>a.localeCompare(o)).map(([a,o])=>`${a}:${o}`).join("|"),i=this._extensionCache.get(r)??new Map;if(i.has(e))return i.get(e);let n=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let a=Object.entries(Va(e)).map(([o,s])=>{let c=this.get(s),u=t.withReducerSchema?c?.reducer?.schema??s:s;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let l=oi(u)??oi(s),d=JSON.stringify({...c.jsonSchemaExtra,description:l});u=u.describe(`lg:${d}`)}return[o,u]});n=Dp(e,Object.fromEntries(a)),tt(n)&&(n._def.unknownKeys="strip")}return t.asPartial&&(n=ws(n)),i.set(e,n),this._extensionCache.set(r,i),n}},il=new YF;function qN(e,t){if(t.reducer&&!t.default){let r=Up(e);r!=null&&(t.default=r)}if(t.reducer){let r=Object.assign(e,{lg_reducer_schema:t.reducer?.schema??e});return il.extend(r,()=>t),r}else return il.extend(e,()=>t),e}function bo(e){return e==null?!1:!!(Gn.isInstance(e)||Kt(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"||r0(t)))}function XN(e){if(typeof e!="object"||e==null)return!1;let t=e,r="state"in t&&bo(t.state),i="stateSchema"in t&&bo(t.stateSchema),n="input"in t&&bo(t.input);return!(!r&&!i&&!n||"input"in t&&t.input!=null&&!bo(t.input)||"output"in t&&t.output!=null&&!bo(t.output))}var xi="__root__",Bm=Symbol.for("langgraph.state.partial"),M0=class extends I0{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=il;_configSchema;_configRuntimeSchema;_interrupt;_writer;constructor(e,t){super();let r=this._normalizeToStateGraphInit(e,t),i=r.state??r.stateSchema??r.input;if(!i)throw new dc;let n=this._getChannelsFromSchema(i);this._schemaDefinition=n,Gn.isInstance(i)?this._schemaRuntimeDefinition=i:Kt(i)&&(this._schemaRuntimeDefinition=i),r.input?Gn.isInstance(r.input)?this._inputRuntimeDefinition=r.input:Kt(r.input)?this._inputRuntimeDefinition=r.input:this._inputRuntimeDefinition=Bm:this._inputRuntimeDefinition=Bm,r.output?Gn.isInstance(r.output)?this._outputRuntimeDefinition=r.output:Kt(r.output)?this._outputRuntimeDefinition=r.output:this._outputRuntimeDefinition=this._schemaRuntimeDefinition:this._outputRuntimeDefinition=this._schemaRuntimeDefinition;let a=r.input?this._getChannelsFromSchema(r.input):n,o=r.output?this._getChannelsFromSchema(r.output):n;this._inputDefinition=a,this._outputDefinition=o,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),r.context&&Kt(r.context)&&(this._configRuntimeSchema=r.context),this._interrupt=r.interrupt,this._writer=r.writer}_normalizeToStateGraphInit(e,t){if(XN(e)){if(Kt(t)||wm.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(bo(e)){if(Kt(t)||wm.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(eB(e))return{state:QF(e.channels)};throw new dc}_getChannelsFromSchema(e){if(Gn.isInstance(e))return e.getChannels();if(Kt(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 dc("Invalid schema type. Expected StateSchema, Zod object, AnnotationRoot, or StateDefinition.")}get allEdges(){return new Set([...this.edges,...Array.from(this.waitingEdges).flatMap(([e,t])=>e.map(r=>[r,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,r]of Object.entries(e)){let i;if(typeof r=="function"?i=r():i=r,this.channels[t]!==void 0){if(!this.channels[t].equals(i)&&i.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=i}}}addNode(...e){function t(i){return i.length>=1&&typeof i[0]!="string"}let r=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([i,n])=>[i,n]):[[e[0],e[1],e[2]]];if(r.length===0)throw new Error("No nodes provided in `addNode`");for(let[i,n,a]of r){if(i in this.channels)throw new Error(`${i} is already being used as a state attribute (a.k.a. a channel), cannot also be used as a node name.`);for(let l of["|",":"])if(i.includes(l))throw new Error(`"${l}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),i in this.nodes)throw new Error(`Node \`${i}\` already present.`);if(i==="__end__"||i==="__start__")throw new Error(`Node \`${i}\` is reserved.`);let o=this._schemaDefinition;a?.input!==void 0&&(o=this._getChannelsFromSchema(a.input)),this._addSchema(o);let s;re.isRunnable(n)?s=n:typeof n=="function"?s=new jt({func:n,name:i,trace:!1}):s=Xe(n);let c=a?.cachePolicy;typeof c=="boolean"&&(c=c?{}:void 0);let u={runnable:s,retryPolicy:a?.retryPolicy,cachePolicy:c,metadata:a?.metadata,input:o??this._schemaDefinition,subgraphs:Qu(s)?[s]:a?.subgraphs,ends:a?.ends,defer:a?.defer};this.nodes[i]=u}return this}addEdge(e,t){if(typeof e=="string")return super.addEdge(e,t);this.compiled&&console.warn("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph.");for(let r of e){if(r==="__end__")throw new Error("END cannot be a start node");if(!Object.keys(this.nodes).some(i=>i===r))throw new Error(`Need to add a node named "${r}" first`)}if(t==="__end__")throw new Error("END cannot be an end node");if(!Object.keys(this.nodes).some(r=>r===t))throw new Error(`Need to add a node named "${t}" first`);return this.waitingEdges.add([e,t]),this}addSequence(e){let t=Array.isArray(e)?e:Object.entries(e);if(t.length===0)throw new Error("Sequence requires at least one node.");let r;for(let[i,n,a]of t){if(i in this.nodes)throw new Error(`Node names must be unique: node with the name "${i}" already exists.`);let o=i;this.addNode(o,n,a),r!=null&&this.addEdge(r,o),r=o}return this}compile({checkpointer:e,store:t,cache:r,interruptBefore:i,interruptAfter:n,name:a,description:o}={}){this.validate([...Array.isArray(i)?i:[],...Array.isArray(n)?n:[]]);let s=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),c=s.length===1&&s[0]===xi?xi:s,u=Object.keys(this.channels),l=u.length===1&&u[0]===xi?xi:u,d=this._interrupt,p=new QN({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:i,autoValidate:!1,nodes:{},channels:{...this.channels,[Be]:new hn},inputChannels:Be,outputChannels:c,streamChannels:l,streamMode:"updates",store:t,cache:r,name:a,description:o,userInterrupt:d});p.attachNode(Be);for(let[f,m]of Object.entries(this.nodes))p.attachNode(f,m);p.attachBranch(Be,Vm,YN(),{withReader:!1});for(let[f]of Object.entries(this.nodes))p.attachBranch(f,Vm,YN(),{withReader:!1});for(let[f,m]of this.edges)p.attachEdge(f,m);for(let[f,m]of this.waitingEdges)p.attachEdge(f,m);for(let[f,m]of Object.entries(this.branches))for(let[g,v]of Object.entries(m))p.attachBranch(f,g,v);return p.validate()}};function QF(e){let t={};for(let[r,i]of Object.entries(e))r===xi?t[r]=xm(i):t[r]=xm(i);return t}var QN=class extends T0{description;_metaRegistry=il;constructor({description:e,...t}){super(t),this.description=e}attachNode(e,t){let r;e==="__start__"?r=Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([s])=>s):r=Object.keys(this.builder.channels);function i(s){if(pt(s))return s.graph===Qt.PARENT?null:s._updateAsTuples();if(Array.isArray(s)&&s.length>0&&s.some(c=>pt(c))){let c=[];for(let u of s)if(pt(u)){if(u.graph===Qt.PARENT)continue;c.push(...u._updateAsTuples())}else c.push([xi,u]);return c}else if(s!=null)return[[xi,s]];return null}let n=e;function a(s){if(s){if(pt(s))return s.graph===Qt.PARENT?null:s._updateAsTuples().filter(([c])=>r.includes(c));if(Array.isArray(s)&&s.length>0&&s.some(pt)){let c=[];for(let u of s)if(pt(u)){if(u.graph===Qt.PARENT)continue;c.push(...u._updateAsTuples().filter(([l])=>r.includes(l)))}else{let l=a(u);l&&c.push(...l??[])}return c}else{if(typeof s=="object"&&!Array.isArray(s))return Object.entries(s).filter(([c])=>r.includes(c));{let c=Array.isArray(s)?"array":typeof s;throw new ye(`Expected node "${n.toString()}" to return an object or an array containing at least one Command object, received ${c}`,{lc_error_code:"INVALID_GRAPH_NODE_RETURN_VALUE"})}}}else return null}let o=[{value:lr,mapper:new jt({func:r.length&&r[0]===xi?i:a,trace:!1,recurse:!1})}];if(e==="__start__")this.nodes[e]=new fn({tags:[st],triggers:[Be],channels:[Be],writers:[new rt(o,[st])]});else{let s=t?.input??this.builder._schemaDefinition,c=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(s)).map(d=>[d,d])),u=Object.keys(c).length===1&&xi in c,l=`branch:to:${e}`;this.channels[l]=t?.defer?new n0:new hn(!1),this.nodes[e]=new fn({triggers:[l],channels:u?Object.keys(c):c,writers:[new rt(o,[st])],mapper:u?void 0:d=>Object.fromEntries(Object.entries(d).filter(([p])=>p in c)),bound:t?.runnable,metadata:t?.metadata,retryPolicy:t?.retryPolicy,cachePolicy:t?.cachePolicy,subgraphs:t?.subgraphs,ends:t?.ends})}}attachEdge(e,t){if(t!=="__end__"){if(typeof e=="string")this.nodes[e].writers.push(new rt([{channel:`branch:to:${t}`,value:null}],[st]));else if(Array.isArray(e)){let r=`join:${e.join("+")}:${t}`;this.channels[r]=this.builder.nodes[t].defer?new P0(new Set(e)):new A0(new Set(e)),this.nodes[t].triggers.push(r);for(let i of e)this.nodes[i].writers.push(new rt([{channel:r,value:i}],[st]))}}}attachBranch(e,t,r,i={withReader:!0}){let n=async(a,o)=>{let s=a.filter(u=>u!==We);if(!s.length)return;let c=s.map(u=>ct(u)?u:{channel:u==="__end__"?u:`branch:to:${u}`,value:e});await rt.doWrite({...o,tags:(o.tags??[]).concat([st])},c)};this.nodes[e].writers.push(r.run(n,i.withReader?a=>mN.doRead(a,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=this.builder._inputRuntimeDefinition,r=this.builder._schemaRuntimeDefinition;if(Gn.isInstance(t)){if(pt(e)){let n=e;return e.update&&(n.update=await t.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await t.validateInput(e)}if(t===Bm&&Gn.isInstance(r)){if(pt(e)){let n=e;return e.update&&(n.update=await r.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),n}return await r.validateInput(e)}let i=(()=>{let n=a=>{if(a!=null)return this._metaRegistry.getExtendedChannelSchemas(a,{withReducerSchema:!0})};if(Kt(t))return n(t);if(t===Bm)return Kt(r)?ws(n(r)):void 0})();if(pt(e)){let n=e;return e.update&&i!=null&&(n.update=vs(i,e.update)),n}return i!=null?vs(i,e):e}isInterrupted(e){return lc(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return Kt(t)&&vs(t,e),e}};function eB(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function tB(e){if(ct(e))return[e];let t=[];pt(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(pt));let r=[];for(let i of t){if(i.graph===Qt.PARENT)throw new pl(i);ct(i.goto)||typeof i.goto=="string"?r.push(i.goto):Array.isArray(i.goto)&&r.push(...i.goto)}return r}function YN(){return new E0({path:new jt({func:tB,tags:[st],trace:!1,recurse:!1,name:"<control_branch>"})})}var rB=class extends M0{constructor(){super({channels:{__root__:{reducer:sa,default:()=>[]}}})}};function nB(e,t){let{stateKey:r,...i}=t??{},n=Xs(i),a=r??"messages";r===null&&(a=void 0);let o=xt(e);if(!o.id)throw new Error("Message ID is required.");let s=(Array.isArray(n.callbacks)?n.callbacks:typeof n.callbacks<"u"?n.callbacks.handlers:[]).find(c=>"name"in c&&c.name==="StreamMessagesHandler");if(s){let c=n.metadata??{},u=(c.langgraph_checkpoint_ns??"").split("|");s._emit([u,c],o,void 0,!1)}return a&&n.configurable?.__pregel_send?.([[a,o]]),o}function iB(e,t){let r=typeof e=="string"?{name:e,retry:void 0,cachePolicy:void 0}:e,{name:i,retry:n}=r;if(u0(t)||l0(t))throw new Error("Generators are disallowed as tasks. For streaming responses, use config.write.");let a=r.cachePolicy??("cache"in r?r.cache:void 0),o;return typeof a=="boolean"?o=a?{}:void 0:o=a,(...s)=>kN({func:t,name:i,retry:n,cache:o},...s)}var eR=function(t,r){let{name:i,checkpointer:n,store:a,cache:o}=typeof t=="string"?{name:t,checkpointer:void 0,store:void 0}:t;if(u0(r)||l0(r))throw new Error("Generators are disallowed as entrypoints. For streaming responses, use config.write.");let s="updates",c=SN(i,r);function u(f){return typeof f=="object"&&f!==null&&"__lg_type"in f&&f.__lg_type==="__pregel_final"}let l=new jt({name:"pluckReturnValue",func:f=>u(f)?f.value:f}),d=new jt({name:"pluckSaveValue",func:f=>u(f)?f.save:f}),p=new fn({bound:c,triggers:[Be],channels:[Be],writers:[new rt([{channel:We,value:lr,mapper:l},{channel:ma,value:lr,mapper:d}],[st])]});return new Lm({name:i,checkpointer:n,nodes:{[i]:p},channels:{[Be]:new hn,[We]:new dn,[ma]:new dn},inputChannels:Be,outputChannels:We,streamChannels:We,streamMode:s,store:a,cache:o})};eR.final=function({value:t,save:r}){return{value:t,save:r,__lg_type:"__pregel_final"}};function aB(){return $e.getRunnableConfig().configurable?.[fa]}var oB=Xu.Root({messages:Xu({reducer:sa,default:()=>[]})}),tR={reducer:{fn:sa},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]},sB=vt.object({messages:qN(vt.custom(),tR)});function cB(e){let t=$e.getRunnableConfig();if(!t)throw new Error("Called interrupt() outside the context of a graph.");let r=t.configurable;if(!r)throw new Error("No configurable found in config");return r.writer?.(e)}export{Be as a,We as b,Ze as c,Zm as d,F0 as e,pa as f,iR as g,lc as h,Qt as i,pt as j,Hr as k,Gm as l,Hm as m,ha as n,Kn as o,dl as p,pl as q,Jm as r,ga as s,Wn as t,fl as u,Ce as v,ye as w,aR as x,Km as y,oR as z,dc as A,sR as B,vS as C,Ut as D,UR as E,Sn as F,CS as G,hc as H,OS as I,ze as J,Ft as K,No as L,Ro as M,Ie as N,jo as O,mt as P,Wr as Q,va as R,wa as S,xa as T,Bt as U,Qn as V,bk as W,$e as X,_t as Y,yt as Z,ve as _,_r as $,ut as aa,Pi as ba,Mi as ca,Na as da,Fi as ea,ap as fa,Ba as ga,Ue as ha,tt as ia,ar as ja,zp as ka,vs as la,oi as ma,Kt as na,Va as oa,ws as pa,Up as qa,NT as ra,D as sa,vt as ta,Xp as ua,ht as va,re as wa,Dr as xa,Sr as ya,Pt as za,SL as Aa,gu as Ba,mf as Ca,iw as Da,YO as Ea,QO as Fa,TL as Ga,CL as Ha,ow as Ia,Qi as Ja,ww as Ka,Ds as La,Pu as Ma,Fr as Na,w6 as Oa,N6 as Pa,Ks as Qa,un as Ra,_m as Sa,XP as Ta,qs as Ua,vm as Va,eN as Wa,bt as Xa,hi as Ya,Xu as Za,cF as _a,uF as $a,i0 as ab,lF as bb,c0 as cb,I0 as db,bi as eb,WF as fb,ia as gb,aa as hb,Fm as ib,wi as jb,vo as kb,Gn as lb,qF as mb,sa as nb,XF as ob,il as pb,qN as qb,M0 as rb,QN as sb,rB as tb,nB as ub,iB as vb,eR as wb,aB as xb,oB as yb,tR as zb,sB as Ab,cB as Bb};
|