@esri/solutions-components 5.1.0-next.41 → 5.1.0-next.42

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.
@@ -612,15 +612,15 @@ ${r}`)}return e}function xz(e){let t=e.split(`
612
612
  `)}var Tz=Q({EventStreamContentType:()=>Oz,convertEventStreamToIterableReadableDataStream:()=>$z,getBytes:()=>OT,getLines:()=>IT,getMessages:()=>$T}),Oz="text/event-stream";async function OT(e,t){if(e instanceof ReadableStream){let n=e.getReader();for(;;){let r=await n.read();if(r.done){t(new Uint8Array,!0);break}t(r.value)}}else try{for await(let n of e)t(new Uint8Array(n));t(new Uint8Array,!0)}catch(n){throw new Error(["Parsing event source stream failed.","Ensure your implementation of fetch returns a web or Node readable stream.",`Error: ${n.message}`].join(`
613
613
  `))}}var oi=(function(e){return e[e.NewLine=10]="NewLine",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.Colon=58]="Colon",e})(oi||{});function IT(e){let t,n,r,s=!1;return function(i,o){if(o){e(i,0,!0);return}t===void 0?(t=i,n=0,r=-1):t=Iz(t,i);let c=t.length,u=0;for(;n<c;){s&&(t[n]===oi.NewLine&&(u=++n),s=!1);let l=-1;for(;n<c&&l===-1;++n)switch(t[n]){case oi.Colon:r===-1&&(r=n-u);break;case oi.CarriageReturn:s=!0;case oi.NewLine:l=n;break}if(l===-1)break;e(t.subarray(u,l),r),u=n,r=-1}u===c?t=void 0:u!==0&&(t=t.subarray(u),n-=u)}}function $T(e,t,n){let r=Np(),s=new TextDecoder;return function(i,o,c){if(c){Cz(r)||(e?.(r),r=Np());return}if(i.length===0)e?.(r),r=Np();else if(o>0){let u=s.decode(i.subarray(0,o)),l=o+(i[o+1]===oi.Space?2:1),d=s.decode(i.subarray(l));switch(u){case"data":r.data=r.data?r.data+`
614
614
  `+d:d;break;case"event":r.event=d;break;case"id":t?.(r.id=d);break;case"retry":{let h=parseInt(d,10);Number.isNaN(h)||n?.(r.retry=h);break}}}}}function Iz(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}function Np(){return{data:"",event:"",id:"",retry:void 0}}function $z(e,t){let n=new ReadableStream({async start(r){let s=$T(i=>{if(i.event==="error")throw new Error(i.data??"Unspecified event streaming error.");i.event==="metadata"?t?.(i):i.data&&r.enqueue(i.data)});await OT(e,IT((i,o,c)=>{s(i,o,c),c&&r.close()}))}});return gn.fromReadableStream(n)}function Cz(e){return e.data===""&&e.event===""&&e.id===""&&e.retry===void 0}var Az=Q({}),Rz=Q({convertToOpenAIFunction:()=>CT,convertToOpenAITool:()=>AT,isLangChainTool:()=>ru,isRunnableToolLike:()=>Ty,isStructuredTool:()=>xy,isStructuredToolParams:()=>Oy});function CT(e,t){let n=typeof t=="number"?void 0:t;return{name:e.name,description:e.description,parameters:It(e.schema),...n?.strict!==void 0?{strict:n.strict}:{}}}function AT(e,t){let n=typeof t=="number"?void 0:t,r;return ru(e)?r={type:"function",function:CT(e)}:r=e,n?.strict!==void 0&&(r.function.strict=n.strict),r}function RT(e,t){let n=0,r=0,s=0;for(let a=0;a<e.length;a++)n+=e[a]*t[a],r+=e[a]*e[a],s+=t[a]*t[a];return n/(Math.sqrt(r)*Math.sqrt(s))}function Nz(e,t){let n=0;for(let r=0;r<e.length;r++)n+=e[r]*t[r];return n}function Pz(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])*(e[r]-t[r]);return n}function Mz(e,t){return Math.sqrt(Pz(e,t))}var jz=Q({cosineSimilarity:()=>_g,euclideanDistance:()=>Dz,innerProduct:()=>zz,matrixFunc:()=>Wh,maximalMarginalRelevance:()=>Uz,normalize:()=>Lz});function Wh(e,t,n){if(e.length===0||e[0].length===0||t.length===0||t[0].length===0)return[[]];if(e[0].length!==t[0].length)throw new Error(`Number of columns in X and Y must be the same. X has shape ${[e.length,e[0].length]} and Y has shape ${[t.length,t[0].length]}.`);return e.map(r=>t.map(s=>n(r,s)).map(s=>Number.isNaN(s)?0:s))}function Lz(e,t=!1){let n=Fz(e);return e.map(r=>r.map(s=>t?1-s/n:s/n))}function _g(e,t){return Wh(e,t,RT)}function zz(e,t){return Wh(e,t,Nz)}function Dz(e,t){return Wh(e,t,Mz)}function Uz(e,t,n=.5,r=4){if(Math.min(r,t.length)<=0)return[];let s=_g(Array.isArray(e[0])?e:[e],t)[0],a=NT(s).maxIndex,i=[t[a]],o=[a];for(;o.length<Math.min(r,t.length);){let c=-1/0,u=-1,l=_g(t,i);s.forEach((d,h)=>{if(o.includes(h))return;let f=Math.max(...l[h]),p=n*d-(1-n)*f;p>c&&(c=p,u=h)}),i.push(t[u]),o.push(u)}return o}function NT(e){if(e.length===0)return{maxIndex:-1,maxValue:NaN};let t=e[0],n=0;for(let r=1;r<e.length;r+=1)e[r]>t&&(n=r,t=e[r]);return{maxIndex:n,maxValue:t}}function Fz(e){return e.reduce((t,n)=>Math.max(t,NT(n).maxValue),0)}var Bz=Q({isCloudMetadata:()=>yg,isLocalhost:()=>vg,isPrivateIp:()=>zT,isSafeUrl:()=>Kz,isSameOrigin:()=>Xz,validateSafeUrl:()=>DT}),Zz=["10.0.0.0/8","172.16.0.0/12","192.168.0.0/16","127.0.0.0/8","169.254.0.0/16","0.0.0.0/8","::1/128","fc00::/7","fe80::/10","ff00::/8"],Vz=["169.254.169.254","169.254.170.2","100.100.100.200"],qz=["metadata.google.internal","metadata","instance-data"],Hz=["localhost","localhost.localdomain"],Gz=/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;function PT(e){return Gz.test(e)}function Jh(e){return LT(e)!==null}function MT(e){return PT(e)||Jh(e)}function jT(e){if(PT(e))return e.split(".").map(t=>parseInt(t,10));if(Jh(e)){let t=LT(e);if(!t)return null;let n=t.split(":"),r=[];for(let s of n)r.push(parseInt(s,16));return r}return null}function LT(e){if(!e||typeof e!="string"||!e.includes(":")||!/^[0-9a-fA-F:]+$/.test(e))return null;let t=e;if(t.includes("::")){let r=t.split("::");if(r.length>2)return null;let[s,a]=r,i=s?s.split(":"):[],o=a?a.split(":"):[],c=8-(i.length+o.length);if(c<0)return null;let u=Array(c).fill("0");t=[...i,...u,...o].filter(l=>l!=="").join(":")}let n=t.split(":");if(n.length!==8)return null;for(let r of n)if(r.length===0||r.length>4||!/^[0-9a-fA-F]+$/.test(r))return null;return n.map(r=>r.padStart(4,"0").toLowerCase()).join(":")}function Wz(e){let[t,n]=e.split("/");if(!t||!n)return null;let r=jT(t);if(!r)return null;let s=parseInt(n,10);if(isNaN(s))return null;let a=Jh(t);return a&&s>128||!a&&s>32?null:{addr:r,prefixLen:s,isIpv6:a}}function Jz(e,t){let n=jT(e);if(!n)return!1;let r=Wz(t);if(!r)return!1;let s=Jh(e);if(s!==r.isIpv6)return!1;let{addr:a,prefixLen:i}=r;if(s)for(let o=0;o<Math.ceil(i/16);o++){let c=65535<<16-Math.min(16,i-o*16)&65535;if((n[o]&c)!==(a[o]&c))return!1}else for(let o=0;o<Math.ceil(i/8);o++){let c=255<<8-Math.min(8,i-o*8)&255;if((n[o]&c)!==(a[o]&c))return!1}return!0}function zT(e){if(!MT(e))return!1;for(let t of Zz)if(Jz(e,t))return!0;return!1}function yg(e,t){if(Vz.includes(t||""))return!0;let n=e.toLowerCase();return!!qz.includes(n)}function vg(e,t){if(t&&(t==="127.0.0.1"||t==="::1"||t==="0.0.0.0"||t.startsWith("127.")))return!0;let n=e.toLowerCase();return!!Hz.includes(n)}function DT(e,t){let n=t?.allowPrivate??!1,r=t?.allowHttp??!1;try{let s;try{s=new URL(e)}catch{throw new Error(`Invalid URL: ${e}`)}let a=s.hostname;if(!a)throw new Error("URL missing hostname.");if(yg(a))throw new Error(`URL points to cloud metadata endpoint: ${a}`);if(vg(a)){if(!n)throw new Error(`URL points to localhost: ${a}`);return e}let i=s.protocol;if(i!=="http:"&&i!=="https:")throw new Error(`Invalid URL scheme: ${i}. Only http and https are allowed.`);if(i==="http:"&&!r)throw new Error("HTTP scheme not allowed. Use HTTPS or set allowHttp: true.");if(MT(a)){let o=a;if(vg(a,o)){if(!n)throw new Error(`URL points to localhost: ${a}`);return e}if(yg(a,o))throw new Error(`URL resolves to cloud metadata IP: ${o} (${a})`);if(zT(o)&&!n)throw new Error(`URL resolves to private IP: ${o} (${a}). Set allowPrivate: true to allow.`);return e}return e}catch(s){throw s&&typeof s=="object"&&"message"in s?s:new Error(`URL validation failed: ${s}`)}}function Kz(e,t){try{return DT(e,t),!0}catch{return!1}}function Xz(e,t){try{return new URL(e).origin===new URL(t).origin}catch{return!1}}var Yz=Q({SaveableVectorStore:()=>Qz,VectorStore:()=>Iy,VectorStoreRetriever:()=>pl}),pl=class extends wy{static lc_name(){return"VectorStoreRetriever"}get lc_namespace(){return["langchain_core","vectorstores"]}vectorStore;k=4;searchType="similarity";searchKwargs;filter;_vectorstoreType(){return this.vectorStore._vectorstoreType()}constructor(e){super(e),this.vectorStore=e.vectorStore,this.k=e.k??this.k,this.searchType=e.searchType??this.searchType,this.filter=e.filter,e.searchType==="mmr"&&(this.searchKwargs=e.searchKwargs)}async _getRelevantDocuments(e,t){if(this.searchType==="mmr"){if(typeof this.vectorStore.maxMarginalRelevanceSearch!="function")throw new Error(`The vector store backing this retriever, ${this._vectorstoreType()} does not support max marginal relevance search.`);return this.vectorStore.maxMarginalRelevanceSearch(e,{k:this.k,filter:this.filter,...this.searchKwargs},t?.getChild("vectorstore"))}return this.vectorStore.similaritySearch(e,this.k,this.filter,t?.getChild("vectorstore"))}async addDocuments(e,t){return this.vectorStore.addDocuments(e,t)}},Iy=class extends Mn{lc_namespace=["langchain","vectorstores",this._vectorstoreType()];embeddings;constructor(e,t){super(t),this.embeddings=e}async delete(e){throw new Error("Not implemented.")}async similaritySearch(e,t=4,n=void 0,r=void 0){return(await this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)).map(s=>s[0])}async similaritySearchWithScore(e,t=4,n=void 0,r=void 0){return this.similaritySearchVectorWithScore(await this.embeddings.embedQuery(e),t,n)}static fromTexts(e,t,n,r){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}static fromDocuments(e,t,n){throw new Error("the Langchain vectorstore implementation you are using forgot to override this, please report a bug")}asRetriever(e,t,n,r,s,a){if(typeof e=="number")return new pl({vectorStore:this,k:e,filter:t,tags:[...r??[],this._vectorstoreType()],metadata:s,verbose:a,callbacks:n});{let i={vectorStore:this,k:e?.k,filter:e?.filter,tags:[...e?.tags??[],this._vectorstoreType()],metadata:e?.metadata,verbose:e?.verbose,callbacks:e?.callbacks,searchType:e?.searchType};return e?.searchType==="mmr"?new pl({...i,searchKwargs:e.searchKwargs}):new pl({...i})}}},Qz=class extends Iy{static load(e,t){throw new Error("Not implemented")}},eD=class extends Na{_combineLLMOutput(){return[]}_llmType(){return"fake"}async _generate(e,t,n){if(t?.stop?.length)return{generations:[{message:new Xe(t.stop[0]),text:t.stop[0]}]};let r=e.map(s=>typeof s.content=="string"?s.content:JSON.stringify(s.content,null,2)).join(`
615
- `);return await n?.handleLLMNewToken(r),{generations:[{message:new Xe(r),text:r}],llmOutput:{}}}},tD=class UT extends Na{sleep=50;responses=[];chunks=[];toolStyle="openai";thrownErrorString;tools=[];constructor({sleep:t=50,responses:n=[],chunks:r=[],toolStyle:s="openai",thrownErrorString:a,...i}){super(i),this.sleep=t,this.responses=n,this.chunks=r,this.toolStyle=s,this.thrownErrorString=a}_llmType(){return"fake"}bindTools(t){let n=[...this.tools,...t],r=n.map(i=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:i.name,description:i.description,parameters:It(i.schema)}};case"anthropic":return{name:i.name,description:i.description,input_schema:It(i.schema)};case"bedrock":return{toolSpec:{name:i.name,description:i.description,inputSchema:It(i.schema)}};case"google":return{name:i.name,description:i.description,parameters:It(i.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:r}]:r,a=new UT({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return a.tools=n,a.withConfig({tools:s})}async _generate(t,n,r){if(this.thrownErrorString)throw new Error(this.thrownErrorString);return{generations:[{text:"",message:new Xe({content:this.responses?.[0]?.content??t[0].content??"",tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(t,n,r){if(this.thrownErrorString)throw new Error(this.thrownErrorString);if(this.chunks?.length){for(let i of this.chunks){let o=new Jr({message:new mn({content:i.content,tool_calls:i.tool_calls,additional_kwargs:i.additional_kwargs??{}}),text:i.content?.toString()??""});if(n.signal?.aborted)break;yield o,await r?.handleLLMNewToken(i.content,void 0,void 0,void 0,void 0,{chunk:o})}return}let s=this.responses?.[0]??new Xe(typeof t[0].content=="string"?t[0].content:""),a=typeof s.content=="string"?s.content:"";for(let i of a){await new Promise(c=>setTimeout(c,this.sleep));let o=new Jr({message:new mn({content:i}),text:i});if(n.signal?.aborted)break;yield o,await r?.handleLLMNewToken(i,void 0,void 0,void 0,void 0,{chunk:o})}}},nD=class FT extends Na{static lc_name(){return"FakeListChatModel"}lc_serializable=!0;responses;i=0;sleep;emitCustomEvent=!1;generationInfo;tools=[];toolStyle="openai";constructor(t){super(t);let{responses:n,sleep:r,emitCustomEvent:s,generationInfo:a}=t;this.responses=n,this.sleep=r,this.emitCustomEvent=s??this.emitCustomEvent,this.generationInfo=a}_combineLLMOutput(){return[]}_llmType(){return"fake-list"}async _generate(t,n,r){if(await this._sleepIfRequested(),n?.thrownErrorString)throw new Error(n.thrownErrorString);if(this.emitCustomEvent&&await r?.handleCustomEvent("some_test_event",{someval:!0}),n?.stop?.length)return{generations:[this._formatGeneration(n.stop[0])]};{let s=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(s)],llmOutput:{}}}}_formatGeneration(t){return{message:new Xe(t),text:t}}async*_streamResponseChunks(t,n,r){let s=this._currentResponse();this._incrementResponse(),this.emitCustomEvent&&await r?.handleCustomEvent("some_test_event",{someval:!0});let a=[...s];for(let i=0;i<a.length;i++){let o=a[i],c=i===a.length-1;if(await this._sleepIfRequested(),n?.thrownErrorString)throw new Error(n.thrownErrorString);let u=this._createResponseChunk(o,c?this.generationInfo:void 0);if(n.signal?.aborted)break;yield u,r?.handleLLMNewToken(o)}}async _sleepIfRequested(){this.sleep!==void 0&&await this._sleep()}async _sleep(){return new Promise(t=>{setTimeout(()=>t(),this.sleep)})}_createResponseChunk(t,n){return new Jr({message:new mn({content:t}),text:t,generationInfo:n})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){this.i<this.responses.length-1?this.i+=1:this.i=0}bindTools(t){let n=[...this.tools,...t],r=n.map(i=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:i.name,description:i.description,parameters:It(i.schema)}};case"anthropic":return{name:i.name,description:i.description,input_schema:It(i.schema)};case"bedrock":return{toolSpec:{name:i.name,description:i.description,inputSchema:It(i.schema)}};case"google":return{name:i.name,description:i.description,parameters:It(i.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:r}]:r,a=new FT({responses:this.responses,sleep:this.sleep,emitCustomEvent:this.emitCustomEvent,generationInfo:this.generationInfo});return a.tools=n,a.toolStyle=this.toolStyle,a.i=this.i,a.withConfig({tools:s})}withStructuredOutput(t,n){return lr.from(async r=>{let s=await this.invoke(r);if(s.tool_calls?.[0]?.args)return s.tool_calls[0].args;if(typeof s.content=="string")return JSON.parse(s.content);throw new Error("No structured output found")})}},rD=class extends ry{vectorSize;constructor(e){super(e??{}),this.vectorSize=e?.vectorSize??4}async embedDocuments(e){return Promise.all(e.map(t=>this.embedQuery(t)))}async embedQuery(e){let t=e;t=t.toLowerCase().replaceAll(/[^a-z ]/g,"");let n=t.length%this.vectorSize,r=n===0?0:this.vectorSize-n,s=t.length+r;t=t.padEnd(s," ");let a=t.length/this.vectorSize,i=[];for(let o=0;o<t.length;o+=a)i.push(t.slice(o,o+a));return i.map(o=>{let c=0;for(let u=0;u<o.length;u+=1)c+=o===" "?0:o.charCodeAt(u);return c%26/26})}},sD=class extends ry{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}},aD=class extends py{response;thrownErrorString;constructor(e){super(e),this.response=e.response,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let r=this.response??e;return await n?.handleLLMNewToken(r),r}},iD=class extends py{sleep=50;responses;thrownErrorString;constructor(e){super(e),this.sleep=e.sleep??this.sleep,this.responses=e.responses,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let t=this.responses?.[0];return this.responses=this.responses?.slice(1),t??e}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let r=this.responses?.[0];this.responses=this.responses?.slice(1);for(let s of r??e)await new Promise(a=>setTimeout(a,this.sleep)),yield{text:s,generationInfo:{}},await n?.handleLLMNewToken(s)}},oD=class extends kx{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new $n(e))}async addAIMessage(e){this.messages.push(new Xe(e))}async clear(){this.messages=[]}},cD=class extends ny{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},uD=class extends Qr{name="fake_tracer";runs=[];constructor(){super()}persistRun(e){return this.runs.push(e),Promise.resolve()}},lD=class extends ao{lc_namespace=["tests","fake"];getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}},dD=class extends wy{lc_namespace=["test","fake"];output=[new gs({pageContent:"foo"}),new gs({pageContent:"bar"})];constructor(e){super(),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}},hD=class extends Me{lc_namespace=["tests","fake"];returnOptions;constructor(e){super(e),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}},fD=class extends Gh{name;description;schema;constructor(e){super(e),this.name=e.name,this.description=e.description,this.schema=e.schema}async _call(e,t){return JSON.stringify(e)}},pD=class extends Qr{runPromiseResolver;runPromise;name="single_run_extractor";constructor(){super(),this.runPromise=new Promise(e=>{this.runPromiseResolver=e})}async persistRun(e){this.runPromiseResolver(e)}async extract(){return this.runPromise}},mD=class BT extends Iy{memoryVectors=[];similarity;_vectorstoreType(){return"memory"}constructor(t,{similarity:n,...r}={}){super(t,r),this.similarity=n??RT}async addDocuments(t){let n=t.map(({pageContent:r})=>r);return this.addVectors(await this.embeddings.embedDocuments(n),t)}async addVectors(t,n){let r=t.map((s,a)=>({content:n[a].pageContent,embedding:s,metadata:n[a].metadata}));this.memoryVectors=this.memoryVectors.concat(r)}async similaritySearchVectorWithScore(t,n,r){let s=i=>r?r(new gs({metadata:i.metadata,pageContent:i.content})):!0,a=this.memoryVectors.filter(s);return a.map((i,o)=>({similarity:this.similarity(t,i.embedding),index:o})).sort((i,o)=>i.similarity>o.similarity?-1:0).slice(0,n).map(i=>[new gs({metadata:a[i.index].metadata,pageContent:a[i.index].content}),i.similarity])}static async fromTexts(t,n,r,s){let a=[];for(let i=0;i<t.length;i+=1){let o=Array.isArray(n)?n[i]:n,c=new gs({pageContent:t[i],metadata:o});a.push(c)}return BT.fromDocuments(a,r,s)}static async fromDocuments(t,n,r){let s=new this(n,r);return await s.addDocuments(t),s}static async fromExistingIndex(t,n){return new this(t,n)}},gD=Q({FakeChatMessageHistory:()=>oD,FakeChatModel:()=>eD,FakeEmbeddings:()=>sD,FakeLLM:()=>aD,FakeListChatMessageHistory:()=>cD,FakeListChatModel:()=>nD,FakeRetriever:()=>dD,FakeRunnable:()=>hD,FakeSplitIntoListParser:()=>lD,FakeStreamingChatModel:()=>tD,FakeStreamingLLM:()=>iD,FakeTool:()=>fD,FakeTracer:()=>uD,FakeVectorStore:()=>mD,SingleRunExtractor:()=>pD,SyntheticEmbeddings:()=>rD}),_D=Q({agents:()=>z$,caches:()=>zC,callbacks__base:()=>eA,callbacks__manager:()=>rP,callbacks__promises:()=>QN,chat_history:()=>l4,document_loaders__base:()=>p4,document_loaders__langsmith:()=>m4,documents:()=>f4,embeddings:()=>y4,errors:()=>B$,example_selectors:()=>E4,index:()=>L$,indexing:()=>O4,language_models__base:()=>F4,language_models__chat_models:()=>d2,language_models__llms:()=>f2,language_models__profile:()=>p2,language_models__structured_output:()=>u2,load__serializable:()=>N$,memory:()=>m2,messages:()=>u4,messages__tool:()=>cC,output_parsers:()=>o2,output_parsers__openai_functions:()=>b2,output_parsers__openai_tools:()=>k2,outputs:()=>yP,prompt_values:()=>I4,prompts:()=>J2,retrievers:()=>Y2,retrievers__document_compressors:()=>K2,runnables:()=>W4,runnables__graph:()=>BL,singletons:()=>iP,stores:()=>Q2,structured_query:()=>iz,testing:()=>dz,tools:()=>hz,tracers__base:()=>LN,tracers__console:()=>FN,tracers__log_stream:()=>gP,tracers__run_collector:()=>_z,tracers__tracer_langchain:()=>GN,types__stream:()=>vz,utils__async_caller:()=>OP,utils__chunk_array:()=>wz,utils__context:()=>kz,utils__env:()=>M$,utils__event_source_parse:()=>Tz,utils__format:()=>Az,utils__function_calling:()=>Rz,utils__hash:()=>U$,utils__json_patch:()=>J4,utils__json_schema:()=>ML,utils__math:()=>jz,utils__ssrf:()=>Bz,utils__standard_schema:()=>CP,utils__stream:()=>cP,utils__testing:()=>gD,utils__tiktoken:()=>D4,utils__types:()=>c2,vectorstores:()=>Yz}),yD=50;function vD(e){let t={};for(let n=e;n&&n.prototype;n=Object.getPrototypeOf(n))Object.assign(t,Reflect.get(n.prototype,"lc_aliases"));return Object.entries(t).reduce((n,[r,s])=>(n[s]=r,n),{})}async function ml(e){let{optionalImportsMap:t,optionalImportEntrypoints:n,importMap:r,secretsMap:s,secretsFromEnv:a,path:i,depth:o,maxDepth:c}=this,u=i.join(".");if(o>c)throw new Error(`Maximum recursion depth (${c}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof e!="object"||e==null)return e;if(Array.isArray(e))return Promise.all(e.map((h,f)=>ml.call({...this,path:[...i,`${f}`],depth:o+1},h)));let l=e;if(dS(l))return dm(l);if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="secret"){let[h]=l.id;if(h in s)return s[h];if(a){let f=rr(h);if(f)return f}throw new Error(`Missing secret "${h}" at ${u}`)}if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="not_implemented"){let f=JSON.stringify(l);throw new Error(`Trying to load an object that doesn't implement serialization: ${u} -> ${f}`)}if("lc"in l&&"type"in l&&"id"in l&&"kwargs"in l&&l.lc===1&&l.type==="constructor"){let h=l,f=JSON.stringify(h),[p,...m]=h.id.slice().reverse(),v=m.reverse(),g={langchain_core:_D,langchain:r},_=null,k=[v.join("/")];v[0]==="langchain_community"&&k.push(["langchain",...v.slice(1)].join("/"));let S=k.find(O=>O in t);if(j$.concat(n).includes(v.join("/"))||S)if(S!==void 0)_=await t[S];else throw new Error(`Missing key "${v.join("/")}" for ${u} in load(optionalImportsMap={})`);else{let O;if(v[0]==="langchain"||v[0]==="langchain_core")O=g[v[0]],v.shift();else throw new Error(`Invalid namespace: ${u} -> ${f}`);if(v.length===0)throw new Error(`Invalid namespace: ${u} -> ${f}`);let w;do{if(w=v.join("__"),w in O)break;v.pop()}while(v.length>0);w in O&&(_=O[w])}if(typeof _!="object"||_===null)throw new Error(`Invalid namespace: ${u} -> ${f}`);let E=_[p]??Object.values(_).find(O=>typeof O=="function"&&kh(O)===p);if(typeof E!="function")throw new Error(`Invalid identifer: ${u} -> ${f}`);let I=new E(uS(await ml.call({...this,path:[...i,"kwargs"],depth:o+1},h.kwargs),I$,vD(E)));return Object.defineProperty(I.constructor,"name",{value:p}),I}let d={};for(let[h,f]of Object.entries(l))d[h]=await ml.call({...this,path:[...i,h],depth:o+1},f);return d}async function wD(e,t){let n=JSON.parse(e),r={optionalImportsMap:{},optionalImportEntrypoints:[],secretsMap:{},secretsFromEnv:!1,importMap:{},path:["$"],depth:0,maxDepth:yD};return ml.call(r,n)}function bD(e){return e!==null&&e.lc===1&&e.type==="constructor"&&Array.isArray(e.id)}async function wg(e){if(e&&typeof e=="object"){if(Array.isArray(e))return await Promise.all(e.map(t=>wg(t)));{let t={};for(let[n,r]of Object.entries(e))t[n]=await wg(r);if(t.lc===2&&t.type==="undefined")return;if(t.lc===2&&t.type==="constructor"&&Array.isArray(t.id))try{let n=t.id[t.id.length-1],r;switch(n){case"Set":r=Set;break;case"Map":r=Map;break;case"RegExp":r=RegExp;break;case"Error":r=Error;break;case"Uint8Array":r=Uint8Array;break;default:return t}return t.method?r[t.method](...t.args||[]):new r(...t.args||[])}catch{return t}else if(bD(t))return wD(JSON.stringify(t));return t}}return e}function Ru(e,t,n,r){return{lc:2,type:"constructor",id:[e.name],method:t??null,args:n??[],kwargs:r??{}}}function kD(e){return e===void 0?{lc:2,type:"undefined"}:e instanceof Set||e instanceof Map?Ru(e.constructor,void 0,[Array.from(e)]):e instanceof RegExp?Ru(RegExp,void 0,[e.source,e.flags]):e instanceof Error?Ru(e.constructor,void 0,[e.message]):e?.lg_name==="Send"?{node:e.node,args:e.args}:e instanceof Uint8Array?Ru(Uint8Array,"from",[Array.from(e)]):e}var SD=class{_dumps(e){return new TextEncoder().encode(v$(e,(t,n)=>kD(n)))}async dumpsTyped(e){return e instanceof Uint8Array?["bytes",e]:["json",this._dumps(e)]}async _loads(e){return wg(JSON.parse(e))}async loadsTyped(e,t){if(e==="bytes")return typeof t=="string"?new TextEncoder().encode(t):t;if(e==="json")return this._loads(typeof t=="string"?t:new TextDecoder().decode(t));throw new Error(`Unknown serialization type: ${e}`)}};function ZT(e){if(typeof e!="object"||e===null)return e;let t=Array.isArray(e)?[]:{};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=ZT(e[n]));return t}function VT(){return{v:4,id:cS(-2),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function Yl(e){return{v:e.v,id:e.id,ts:e.ts,channel_values:{...e.channel_values},channel_versions:{...e.channel_versions},versions_seen:ZT(e.versions_seen)}}function qT(e,t){return typeof e=="number"&&typeof t=="number"?Math.sign(e-t):String(e).localeCompare(String(t))}function ED(...e){return e.reduce((t,n,r)=>r===0?n:qT(t,n)>=0?t:n)}var xD={[p$]:-1,[sl]:-2,[m$]:-3,[g$]:-4},mo=class extends Error{constructor(e){super(e),this.name="InvalidNamespaceError"}};function TD(e){if(e.length===0)throw new mo("Namespace cannot be empty.");for(let t of e){if(typeof t!="string")throw new mo(`Invalid namespace label '${t}' found in ${e}. Namespace labels must be strings, but got ${typeof t}.`);if(t.includes("."))throw new mo(`Invalid namespace label '${t}' found in ${e}. Namespace labels cannot contain periods ('.').`);if(t==="")throw new mo(`Namespace labels cannot be empty strings. Got ${t} in ${e}`)}if(e[0]==="langgraph")throw new mo(`Root label for namespace cannot be "langgraph". Got: ${e}`)}var OD=class{async get(e,t){return(await this.batch([{namespace:e,key:t}]))[0]}async search(e,t={}){let{filter:n,limit:r=10,offset:s=0,query:a}=t;return(await this.batch([{namespacePrefix:e,filter:n,limit:r,offset:s,query:a}]))[0]}async put(e,t,n,r){TD(e),await this.batch([{namespace:e,key:t,value:n,index:r}])}async delete(e,t){await this.batch([{namespace:e,key:t,value:null}])}async listNamespaces(e={}){let{prefix:t,suffix:n,maxDepth:r,limit:s=100,offset:a=0}=e,i=[];return t&&i.push({matchType:"prefix",path:t}),n&&i.push({matchType:"suffix",path:n}),(await this.batch([{matchConditions:i.length?i:void 0,maxDepth:r,limit:s,offset:a}]))[0]}start(){}stop(){}},ID=e=>"lg_name"in e&&e.lg_name==="AsyncBatchedStore"?e.store:e,$D=class extends OD{lg_name="AsyncBatchedStore";store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(e){super(),this.store=ID(e)}get isRunning(){return this.running}async batch(e){throw new Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(e,t){return this.enqueueOperation({namespace:e,key:t})}async search(e,t){let{filter:n,limit:r=10,offset:s=0,query:a}=t||{};return this.enqueueOperation({namespacePrefix:e,filter:n,limit:r,offset:s,query:a})}async put(e,t,n){return this.enqueueOperation({namespace:e,key:t,value:n})}async delete(e,t){return this.enqueueOperation({namespace:e,key:t,value:null})}start(){this.running||(this.running=!0,this.processingTask=this.processBatchQueue())}async stop(){this.running=!1,this.processingTask&&await this.processingTask}enqueueOperation(e){return new Promise((t,n)=>{let r=this.nextKey;this.nextKey+=1,this.queue.set(r,{operation:e,resolve:t,reject:n})})}async processBatchQueue(){for(;this.running;){if(await new Promise(t=>{setTimeout(t,0)}),this.queue.size===0)continue;let e=new Map(this.queue);this.queue.clear();try{let t=Array.from(e.values()).map(({operation:r})=>r),n=await this.store.batch(t);e.forEach(({resolve:r},s)=>{r(n[Array.from(e.keys()).indexOf(s)])})}catch(t){e.forEach(({reject:n})=>{n(t)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:"[LangGraphStore]"}}},CD=class{serde=new SD;constructor(e){this.serde=e||this.serde}};function HT(e){return e!=null&&e.lg_is_channel===!0}var Ls=class{ValueType;UpdateType;lg_is_channel=!0;consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===$t.unminifiable_name)return!1;throw e}}equals(e){return this===e}},bg=Symbol.for("LG_IS_ONLY_BASE_CHANNEL");function $y(e){if(e[bg]===!0)return e;let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];HT(r)&&(t[n]=r)}return Object.assign(t,{[bg]:!0}),t}function Ql(e,t){let n=$y(e),r={};for(let s in n){if(!Object.prototype.hasOwnProperty.call(n,s))continue;let a=t.channel_values[s];r[s]=n[s].fromCheckpoint(a)}return Object.assign(r,{[bg]:!0}),r}function Ks(e,t,n,r){let s;if(t===void 0)s=e.channel_values;else{s={};for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))try{s[a]=t[a].checkpoint()}catch(i){if(i.name!==$t.unminifiable_name)throw i}}return{v:4,id:r?.id??cS(n),ts:new Date().toISOString(),channel_values:s,channel_versions:e.channel_versions,versions_seen:e.versions_seen}}var AD=e=>e!=null&&e.lc_graph_name==="BinaryOperatorAggregate",ed=class GT extends Ls{lc_graph_name="BinaryOperatorAggregate";value;operator;initialValueFactory;constructor(t,n){super(),this.operator=t,this.initialValueFactory=n,this.value=n?.()}fromCheckpoint(t){let n=new GT(this.operator,this.initialValueFactory);return typeof t<"u"&&(n.value=t),n}update(t){let n=t;if(!n.length)return!1;if(this.value===void 0){let s=n[0],[a,i]=om(s);a?this.value=i:this.value=s,n=n.slice(1)}let r=!1;for(let s of n)if(WI(s)){if(r)throw new Ye("Can receive only one Overwrite value per step.");let[,a]=om(s);this.value=a,r=!0;continue}else!r&&this.value!==void 0&&(this.value=this.operator(this.value,s));return!0}get(){if(this.value===void 0)throw new $t;return this.value}checkpoint(){if(this.value===void 0)throw new $t;return this.value}isAvailable(){return this.value!==void 0}equals(t){return this===t?!0:AD(t)?this.operator===t.operator:!1}},Kh=class WT extends Ls{lc_graph_name="LastValue";value=[];constructor(t){super(),this.initialValueFactory=t,t&&(this.value=[t()])}fromCheckpoint(t){let n=new WT(this.initialValueFactory);return typeof t<"u"&&(n.value=[t]),n}update(t){if(t.length===0)return!1;if(t.length!==1)throw new Ye("LastValue can only receive one value per step.",{lc_error_code:"INVALID_CONCURRENT_GRAPH_UPDATE"});return this.value=[t[t.length-1]],!0}get(){if(this.value.length===0)throw new $t;return this.value[0]}checkpoint(){if(this.value.length===0)throw new $t;return this.value[0]}isAvailable(){return this.value.length!==0}},RD=class JT extends Ls{lc_graph_name="LastValueAfterFinish";value=[];finished=!1;fromCheckpoint(t){let n=new JT;if(typeof t<"u"){let[r,s]=t;n.value=[r],n.finished=s}return n}update(t){return t.length===0?!1:(this.finished=!1,this.value=[t[t.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new $t;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}},kg=class{lc_graph_name="AnnotationRoot";spec;constructor(e){this.spec=e}static isInstance(e){return typeof e=="object"&&e!==null&&"lc_graph_name"in e&&e.lc_graph_name==="AnnotationRoot"}},_t=function(e){return e?Sg(e):new Kh};_t.Root=e=>new kg(e);function Sg(e){return typeof e=="object"&&e&&"reducer"in e&&e.reducer?new ed(e.reducer,e.default):typeof e=="object"&&e&&"value"in e&&e.value?new ed(e.value,e.default):new Kh}var ND=["tags","metadata","callbacks","configurable"],PD=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","interrupt","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal"],MD=25;function KT(...e){let t={tags:[],metadata:{},callbacks:void 0,recursionLimit:MD,configurable:{}},n=Lt.getRunnableConfig();if(n!==void 0){for(let[r,s]of Object.entries(n))if(s!==void 0)if(ND.includes(r)){let a;Array.isArray(s)?a=[...s]:typeof s=="object"?r==="callbacks"&&"copy"in s&&typeof s.copy=="function"?a=s.copy():a={...s}:a=s,t[r]=a}else t[r]=s}for(let r of e)if(r!==void 0)for(let[s,a]of Object.entries(r))a!==void 0&&PD.includes(s)&&(t[s]=a);for(let[r,s]of Object.entries(t.configurable))t.metadata=t.metadata??{},!r.startsWith("__")&&(typeof s=="string"||typeof s=="number"||typeof s=="boolean")&&!(r in t.metadata)&&(t.metadata[r]=s);return t}function jD(){return Lt.getRunnableConfig()}function Pp(e){return e.split("|").filter(t=>!t.match(/^\d+$/)).map(t=>t.split(":")[0]).join("|")}function LD(e){let t=e.split("|");for(;t.length>1&&t[t.length-1].match(/^\d+$/);)t.pop();return t.slice(0,-1).join("|")}var Pa=class extends Me{lc_namespace=["langgraph"];func;tags;config;trace=!0;recurse=!0;constructor(e){super(),this.name=e.name??e.func.name,this.func=e.func,this.config=e.tags?{tags:e.tags}:void 0,this.trace=e.trace??this.trace,this.recurse=e.recurse??this.recurse}async _tracedInvoke(e,t,n){return new Promise((r,s)=>{let a=qe(t,{callbacks:n?.getChild()});Lt.runWithConfig(a,async()=>{try{r(await this.func(e,a))}catch(i){s(i)}})})}async invoke(e,t){let n,r=KT(t),s=Pn(this.config,r);return this.trace?n=await this._callWithConfig(this._tracedInvoke,e,s):n=await Lt.runWithConfig(s,async()=>this.func(e,s)),Me.isRunnable(n)&&this.recurse?await Lt.runWithConfig(s,async()=>n.invoke(e,s)):n}};function*ts(e,t){if(t===void 0)yield*e;else for(let n of e)yield[t,n]}async function os(e){let t=[];for await(let n of await e)t.push(n);return t}function xo(e){let t=[];for(let n of e)t.push(n);return t}function Ua(e,t){return e?"configurable"in e?{...e,configurable:{...e.configurable,...t}}:{...e,configurable:t}:{configurable:t}}function zD(e){return typeof e=="object"&&e?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var ca={[Symbol.for("LG_PASSTHROUGH")]:!0};function Nu(e){return typeof e=="object"&&e?.[Symbol.for("LG_PASSTHROUGH")]!==void 0}var Mp=Symbol("IS_WRITER"),Xt=class Eg extends Pa{writes;constructor(t,n){let r=`ChannelWrite<${t.map(s=>pn(s)?s.node:"channel"in s?s.channel:"...").join(",")}>`;super({writes:t,name:r,tags:n,trace:!1,func:async(s,a)=>this._write(s,a??{})}),this.writes=t}async _write(t,n){let r=this.writes.map(s=>jp(s)&&Nu(s.value)?{mapper:s.mapper,value:t}:gl(s)&&Nu(s.value)?{channel:s.channel,value:t,skipNone:s.skipNone,mapper:s.mapper}:s);return await Eg.doWrite(n,r),t}static async doWrite(t,n){for(let a of n){if(gl(a)){if(a.channel==="__pregel_tasks")throw new Ye("Cannot write to the reserved channel TASKS");if(Nu(a.value))throw new Ye("PASSTHROUGH value must be replaced")}if(jp(a)&&Nu(a.value))throw new Ye("PASSTHROUGH value must be replaced")}let r=[];for(let a of n)if(pn(a))r.push([vi,a]);else if(jp(a)){let i=await a.mapper.invoke(a.value,t);i!=null&&i.length>0&&r.push(...i)}else if(gl(a)){let i=a.mapper!==void 0?await a.mapper.invoke(a.value,t):a.value;if(zD(i)||a.skipNone&&i===void 0)continue;r.push([a.channel,i])}else throw new Error(`Invalid write entry: ${JSON.stringify(a)}`);let s=t.configurable?.[ds];s(r)}static isWriter(t){return t instanceof Eg||Mp in t&&!!t[Mp]}static registerWriter(t){return Object.defineProperty(t,Mp,{value:!0})}};function gl(e){return e!==void 0&&typeof e.channel=="string"}function jp(e){return e!==void 0&&!gl(e)&&Me.isRunnable(e.mapper)}var DD=class XT extends Pa{lc_graph_name="ChannelRead";channel;fresh=!1;mapper;constructor(t,n,r=!1){super({trace:!1,func:(s,a)=>XT.doRead(a,this.channel,this.fresh,this.mapper)}),this.fresh=r,this.mapper=n,this.channel=t,this.name=Array.isArray(t)?`ChannelRead<${t.join(",")}>`:`ChannelRead<${t}>`}static doRead(t,n,r,s){let a=t.configurable?.[ra];if(!a)throw new Error("Runnable is not configured with a read function. Make sure to call in the context of a Pregel process");return s?s(a(n,r)):a(n,r)}},Fa=new cc,fc=class To extends xs{lc_graph_name="PregelNode";channels;triggers=[];mapper;writers=[];bound=Fa;kwargs={};metadata={};tags=[];retryPolicy;cachePolicy;subgraphs;ends;constructor(t){let{channels:n,triggers:r,mapper:s,writers:a,bound:i,kwargs:o,metadata:c,retryPolicy:u,cachePolicy:l,tags:d,subgraphs:h,ends:f}=t,p=[...t.config?.tags?t.config.tags:[],...d??[]];super({...t,bound:t.bound??Fa,config:{...t.config?t.config:{},tags:p}}),this.channels=n,this.triggers=r,this.mapper=s,this.writers=a??this.writers,this.bound=i??this.bound,this.kwargs=o??this.kwargs,this.metadata=c??this.metadata,this.tags=p,this.retryPolicy=u,this.cachePolicy=l,this.subgraphs=h,this.ends=f}getWriters(){let t=[...this.writers];for(;t.length>1&&t[t.length-1]instanceof Xt&&t[t.length-2]instanceof Xt;){let n=t.slice(-2),r=n[0].writes.concat(n[1].writes);t[t.length-2]=new Xt(r,n[0].config?.tags),t.pop()}return t}getNode(){let t=this.getWriters();if(!(this.bound===Fa&&t.length===0))return this.bound===Fa&&t.length===1?t[0]:this.bound===Fa?new Ts({first:t[0],middle:t.slice(1,t.length-1),last:t[t.length-1],omitSequenceTags:!0}):t.length>0?new Ts({first:this.bound,middle:t.slice(0,t.length-1),last:t[t.length-1],omitSequenceTags:!0}):this.bound}join(t){if(!Array.isArray(t))throw new Error("channels must be a list");if(typeof this.channels!="object")throw new Error("all channels must be named when using .join()");return new To({channels:{...this.channels,...Object.fromEntries(t.map(n=>[n,n]))},triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound,kwargs:this.kwargs,config:this.config,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}pipe(t){return Xt.isWriter(t)?new To({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:[...this.writers,t],bound:this.bound,config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):this.bound===Fa?new To({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:jt(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):new To({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound.pipe(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}};function UD(e){return"steps"in e&&Array.isArray(e.steps)}function Cy(e){return"lg_is_pregel"in e&&e.lg_is_pregel===!0}function YT(e){let t=[e];for(let n of t){if(Cy(n))return n;UD(n)&&t.push(...n.steps)}}var D=e=>BigInt(e),Ke=(e,t=0)=>new DataView(e.buffer,e.byteOffset+t,e.byteLength-t),QT=D("0x9E3779B1"),e1=D("0x85EBCA77"),FD=D("0xC2B2AE3D"),Os=D("0x9E3779B185EBCA87"),ma=D("0xC2B2AE3D27D4EB4F"),t1=D("0x165667B19E3779F9"),Ay=D("0x85EBCA77C2B2AE63"),BD=D("0x27D4EB2F165667C5"),ZD=D("0x165667919E3779F9"),VD=D("0x9FB21C651E98DF25"),qD=e=>{let t=e.length;if(t%2!==0)throw new Error("String should have an even number of characters");let n=t/2,r=new Uint8Array(n),s=0,a=0;for(;a<n;){let i=e.slice(s,s+=2);r[a]=Number.parseInt(i,16),a+=1}return Ke(r)},gr=qD("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),_i=(D(1)<<D(128))-D(1),$e=(D(1)<<D(64))-D(1),td=(D(1)<<D(32))-D(1),Ur=64,n1=Ur/8,HD=8,Pu=4;function Ni(e){if(!e)throw new Error("Assert failed")}function GD(e){let t=new DataView(new ArrayBuffer(8));return t.setBigUint64(0,e,!0),t.getBigUint64(0,!1)}function WD(e){let t=e;return t=(t&D(65535))<<D(16)|(t&D(4294901760))>>D(16),t=(t&D(16711935))<<D(8)|(t&D(4278255360))>>D(8),t}function JD(e,t){return(e&td)*(t&td)&$e}function KD(e,t){return(e<<t|e>>D(32)-t)&td}function r1(e,t,n){for(let r=0;r<n1;r+=1){let s=t.getBigUint64(r*8,!0),a=s^n.getBigUint64(r*8,!0);e[r^1]+=s,e[r]+=JD(a,a>>D(32))}return e}function _0(e,t,n,r){for(let s=0;s<r;s+=1)r1(e,Ke(t,s*Ur),Ke(n,s*8));return e}function XD(e,t){for(let n=0;n<n1;n+=1){let r=t.getBigUint64(n*8,!0),s=e[n];s=xg(s,D(47)),s^=r,s*=QT,e[n]=s&$e}return e}function Mu(e,t){return s1(e[0]^t.getBigUint64(0,!0),e[1]^t.getBigUint64(HD,!0))}function y0(e,t,n){let r=n;return r+=Mu(e.slice(0),Ke(t,0*Pu)),r+=Mu(e.slice(2),Ke(t,4*Pu)),r+=Mu(e.slice(4),Ke(t,8*Pu)),r+=Mu(e.slice(6),Ke(t,12*Pu)),br(r&$e)}function YD(e,t,n,r,s){let a=e,i=Math.floor((n.byteLength-Ur)/8),o=Ur*i,c=Math.floor((t.byteLength-1)/o);for(let u=0;u<c;u+=1)a=_0(a,Ke(t,u*o),n,i),a=s(a,Ke(n,n.byteLength-Ur));{let u=Math.floor((t.byteLength-1-o*c)/Ur);a=_0(a,Ke(t,c*o),n,u),a=r(a,Ke(t,t.byteLength-Ur),Ke(n,n.byteLength-Ur-7))}return a}function QD(e,t){let n=new BigUint64Array([FD,Os,ma,t1,Ay,e1,BD,QT]);Ni(e.byteLength>128),n=YD(n,e,t,r1,XD),Ni(n.length*8===64);{let r=y0(n,Ke(t,11),D(e.byteLength)*Os&$e);return y0(n,Ke(t,t.byteLength-Ur-11),~(D(e.byteLength)*ma)&$e)<<D(64)|r}}function s1(e,t){let n=e*t&_i;return n&$e^n>>D(64)}function v0(e,t,n){return s1((e.getBigUint64(0,!0)^t.getBigUint64(0,!0)+n)&$e,(e.getBigUint64(8,!0)^t.getBigUint64(8,!0)-n)&$e)}function _l(e,t,n,r,s){let a=e&$e,i=e>>D(64)&$e;return a+=v0(t,r,s),a^=n.getBigUint64(0,!0)+n.getBigUint64(8,!0),a&=$e,i+=v0(n,Ke(r,16),s),i^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),i&=$e,i<<D(64)|a}function br(e){let t=e;return t^=t>>D(37),t*=ZD,t&=$e,t^=t>>D(32),t}function nd(e){let t=e;return t^=t>>D(33),t*=ma,t&=$e,t^=t>>D(29),t*=t1,t&=$e,t^=t>>D(32),t}function eU(e,t,n){let r=e.byteLength;Ni(r>0&&r<=3);let s=D(e.getUint8(r-1))|D(r<<8)|D(e.getUint8(0)<<16)|D(e.getUint8(r>>1)<<24),a=(s^(D(t.getUint32(0,!0))^D(t.getUint32(4,!0)))+n)&$e,i=(D(t.getUint32(8,!0))^D(t.getUint32(12,!0)))-n;return(nd((KD(WD(s),D(13))^i)&$e)&$e)<<D(64)|nd(a)}function xg(e,t){return e^e>>t}function tU(e,t,n){let r=e.byteLength;Ni(r>=4&&r<=8);{let s=e.getUint32(0,!0),a=e.getUint32(r-4,!0),i=((D(s)|D(a)<<D(32))^(t.getBigUint64(16,!0)^t.getBigUint64(24,!0))+n&$e)*(Os+(D(r)<<D(2)))&_i;return i+=(i&$e)<<D(65),i&=_i,i^=i>>D(67),xg(xg(i&$e,D(35))*VD&$e,D(28))|br(i>>D(64))<<D(64)}}function nU(e,t,n){let r=e.byteLength;Ni(r>=9&&r<=16);{let s=(t.getBigUint64(32,!0)^t.getBigUint64(40,!0))+n&$e,a=(t.getBigUint64(48,!0)^t.getBigUint64(56,!0))-n&$e,i=e.getBigUint64(0,!0),o=e.getBigUint64(r-8,!0),c=(i^o^s)*Os,u=(c&$e)+(D(r-1)<<D(54));c=c&(_i^$e)|u,o^=a,c+=o+(o&td)*(e1-D(1))<<D(64),c&=_i,c^=GD(c>>D(64));let l=(c&$e)*ma;return l+=(c>>D(64))*ma<<D(64),l&=_i,br(l&$e)|br(l>>D(64))<<D(64)}}function rU(e,t){let n=e.byteLength;return Ni(n<=16),n>8?nU(e,gr,t):n>=4?tU(e,gr,t):n>0?eU(e,gr,t):nd(t^gr.getBigUint64(64,!0)^gr.getBigUint64(72,!0))|nd(t^gr.getBigUint64(80,!0)^gr.getBigUint64(88,!0))<<D(64)}function Tg(e){return~e+D(1)&$e}function sU(e,t,n){let r=D(e.byteLength)*Os&$e,s=D(e.byteLength-1)/D(32);for(;s>=0;){let o=Number(s);r=_l(r,Ke(e,16*o),Ke(e,e.byteLength-16*(o+1)),Ke(t,32*o),n),s-=D(1)}let a=r+(r>>D(64))&$e;a=br(a);let i=(r&$e)*Os+(r>>D(64))*Ay+(D(e.byteLength)-n&$e)*ma;return i&=$e,i=Tg(br(i)),a|i<<D(64)}function aU(e,t,n){let r=D(e.byteLength)*Os&$e;for(let i=32;i<160;i+=32)r=_l(r,Ke(e,i-32),Ke(e,i-16),Ke(t,i-32),n);r=br(r&$e)|br(r>>D(64))<<D(64);for(let i=160;i<=e.byteLength;i+=32)r=_l(r,Ke(e,i-32),Ke(e,i-16),Ke(t,3+i-160),n);r=_l(r,Ke(e,e.byteLength-16),Ke(e,e.byteLength-32),Ke(t,103),Tg(n));let s=r+(r>>D(64))&$e;s=br(s);let a=(r&$e)*Os+(r>>D(64))*Ay+(D(e.byteLength)-n&$e)*ma;return a&=$e,a=Tg(br(a)),s|a<<D(64)}function Hs(e,t=D(0)){let n=new TextEncoder,r=Ke(typeof e=="string"?n.encode(e):e),s=r.byteLength,a=i=>i.toString(16).padStart(32,"0");return s<=16?a(rU(r,t)):s<=128?a(sU(r,gr,t)):s<=240?a(aU(r,gr,t)):a(QD(r,gr))}function a1(e){return/^[0-9a-f]{32}$/.test(e)}function yi(e,t,n=!0,r=!1){try{return e[t].get()}catch(s){if(s.name===$t.unminifiable_name){if(r)return s;if(n)return null}throw s}}function ga(e,t,n=!0){if(Array.isArray(t)){let r={};for(let s of t)try{r[s]=yi(e,s,!n)}catch(a){if(a.name===$t.unminifiable_name)continue}return r}else return yi(e,t)}function*iU(e,t){if(e.graph===vr.PARENT)throw new Ye("There is no parent graph.");if(e.goto){let n;Array.isArray(e.goto)?n=e.goto:n=[e.goto];for(let r of n)if(pn(r))yield[yr,vi,r];else if(typeof r=="string")yield[yr,`branch:to:${r}`,"__start__"];else throw new Error(`In Command.send, expected Send or string, got ${typeof r}`)}if(e.resume)if(typeof e.resume=="object"&&Object.keys(e.resume).length&&Object.keys(e.resume).every(a1))for(let[n,r]of Object.entries(e.resume)){let s=t.filter(a=>a[0]===n&&a[1]==="__resume__").map(a=>a[2]).slice(0,1)??[];s.push(r),yield[n,vs,s]}else yield[yr,vs,e.resume];if(e.update){if(typeof e.update!="object"||!e.update)throw new Error("Expected cmd.update to be a dict mapping channel names to update values");if(Array.isArray(e.update))for(let[n,r]of e.update)yield[yr,n,r];else for(let[n,r]of Object.entries(e.update))yield[yr,n,r]}}function*i1(e,t){if(t!=null)if(Array.isArray(e)&&typeof t=="object"&&!Array.isArray(t))for(let n in t)e.includes(n)&&(yield[n,t[n]]);else{if(Array.isArray(e))throw new Error('Input chunk must be an object when "inputChannels" is an array');yield[e,t]}}function*Lp(e,t,n){Array.isArray(e)?(t===!0||t.find(([r,s])=>e.includes(r)))&&(yield ga(n,e)):(t===!0||t.some(([r,s])=>r===e))&&(yield yi(n,e))}function*oU(e,t,n){let r=t.filter(([o,c])=>(o.config===void 0||!o.config.tags?.includes("langsmith:hidden"))&&c[0][0]!=="__error__"&&c[0][0]!=="__interrupt__");if(!r.length)return;let s;r.some(([o])=>o.writes.some(([c,u])=>c==="__return__"))?s=r.flatMap(([o])=>o.writes.filter(([c,u])=>c===bh).map(([c,u])=>[o.name,u])):Array.isArray(e)?s=r.flatMap(([o])=>{let{writes:c}=o,u={};for(let[l]of c)e.includes(l)&&(u[l]=(u[l]||0)+1);return Object.values(u).some(l=>l>1)?c.filter(([l])=>e.includes(l)).map(([l,d])=>[o.name,{[l]:d}]):[[o.name,Object.fromEntries(c.filter(([l])=>e.includes(l)))]]}):s=r.flatMap(([o])=>o.writes.filter(([c,u])=>c===e).map(([c,u])=>[o.name,u]));let a={};for(let[o,c]of s)o in a||(a[o]=[]),a[o].push(c);let i={};for(let o in a)if(a[o].length===1){let[c]=a[o];i[o]=c}else i[o]=a[o];n&&(i.__metadata__={cached:n}),yield i}function Ry(e){let t=typeof e[bt];if(t==="number")return 0;if(t==="string")return"";for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=typeof e[n];if(r==="number")return 0;if(r==="string")return"";break}}function yl(e,t){if(Object.keys(e).length>0){let n=Ry(t);return Object.fromEntries(Object.entries(t).filter(([r,s])=>s>(e[r]??n)))}else return t}function cU(e,t){return e&&!Array.isArray(e)&&!(e instanceof Date)&&typeof e=="object"?e:{[t]:e}}function Yn(e,t){return e===null?{configurable:t}:e?.configurable===void 0?{...e,configurable:t}:{...e,configurable:{...e.configurable,...t}}}function Bs(e,t){let n=t?.parents??{};return Object.keys(n).length>0?Yn(e,{[Lr]:{...n,[e.configurable?.checkpoint_ns??""]:e.configurable?.checkpoint_id}}):e}function rd(...e){let t=[...new Set(e.filter(Boolean))];if(t.length===0)return{signal:void 0,dispose:void 0};if(t.length===1)return{signal:t[0],dispose:void 0};if(typeof AbortSignal.any=="function")return{signal:AbortSignal.any(t),dispose:void 0};let n=new AbortController,r=()=>{let a=t.find(i=>i.aborted)?.reason;n.abort(a),t.forEach(i=>i.removeEventListener("abort",r))};t.forEach(a=>a.addEventListener("abort",r,{once:!0}));let s=t.find(a=>a.aborted);return s&&n.abort(s.reason),{signal:n.signal,dispose:()=>{t.forEach(a=>a.removeEventListener("abort",r))}}}var uU=(e,t)=>{if(!(!e&&!t))return e?t?Array.isArray(e)&&Array.isArray(t)?[...e,...t]:Array.isArray(e)?[...e,t]:Array.isArray(t)?[e,...t]:[e,t]:e:t},lU=class{func;name;input;retry;cache;callbacks;__lg_type="call";constructor({func:e,name:t,input:n,retry:r,cache:s,callbacks:a}){this.func=e,this.name=t,this.input=n,this.retry=r,this.cache=s,this.callbacks=a}};function dU(e){return typeof e=="object"&&e!==null&&"__lg_type"in e&&e.__lg_type==="call"}function hU(e,t){return new Ts({name:e,first:new Pa({func:n=>t(...n),name:e,trace:!1,recurse:!1}),last:new Xt([{channel:bh,value:ca}],[dn])})}var fU=e=>e!==void 0?e+1:1;function pU(e,t){if(t==null)return!1;for(let n of e)if(t[n])return!0;return!1}function mU(e){let t;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t==null?t=e[n]:t=ED(t,e[n]));return t}function ju(e,t,n){let r=Ry(e.channel_versions),s=e.versions_seen.__interrupt__??{},a=!1;if((e.channel_versions.__start__??r)>(s.__start__??r))a=!0;else for(let o in e.channel_versions)if(Object.prototype.hasOwnProperty.call(e.channel_versions,o)&&e.channel_versions[o]>(s[o]??r)){a=!0;break}let i=n.some(o=>t==="*"?!o.config?.tags?.includes(dn):t.includes(o.name));return a&&i}function vl(e,t,n,r,s=!1){let a=new Set;if(Array.isArray(r))a=new Set(r.filter(o=>n.writes.some(([c,u])=>c===o)));else{for(let[o]of n.writes)if(o===r){a=new Set([o]);break}a=a||new Set}let i;if(s&&a.size>0){let o=Object.fromEntries(Object.entries(t).filter(([l,d])=>a.has(l))),c=Ks(e,o,-1),u=Ql(o,c);xn(Yl(c),u,[n],void 0,void 0),i=ga({...t,...u},r)}else i=ga(t,r);return i}function zp(e,t,n){for(let[r,s]of n)if(["__pregel_push","__pregel_tasks"].includes(r)&&s!=null){if(!pn(s))throw new Ye(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(s)}`);if(!(s.node in t))throw new Ye(`Invalid node name "${s.node}" in Send packet`)}e(n)}var gU=new Set([p_,Vr,vs,Ot,bh,wh]);function xn(e,t,n,r,s){n.sort((h,f)=>{let p=h.path?.slice(0,3)||[],m=f.path?.slice(0,3)||[];for(let v=0;v<Math.min(p.length,m.length);v+=1){if(p[v]<m[v])return-1;if(p[v]>m[v])return 1}return p.length-m.length});let a=n.some(h=>h.triggers.length>0),i=$y(t);for(let h of n){e.versions_seen[h.name]??={};for(let f of h.triggers)f in e.channel_versions&&(e.versions_seen[h.name][f]=e.channel_versions[f])}let o=mU(e.channel_versions),c=new Set(n.flatMap(h=>h.triggers).filter(h=>!qI.includes(h))),u=!1;for(let h of c)h in i&&i[h].consume()&&r!==void 0&&(e.channel_versions[h]=r(o),u=!0);let l={};for(let h of n)for(let[f,p]of h.writes)gU.has(f)||f in i&&(l[f]??=[],l[f].push(p));o!=null&&r!=null&&(o=u?r(o):o);let d=new Set;for(let[h,f]of Object.entries(l))if(h in i){let p=i[h],m;try{m=p.update(f)}catch(v){if(v.name===Ye.unminifiable_name){let g=new Ye(`Invalid update for channel "${h}" with values ${JSON.stringify(f)}: ${v.message}`);throw g.lc_error_code=v.lc_error_code,g}else throw v}m&&r!==void 0&&(e.channel_versions[h]=r(o),p.isAvailable()&&d.add(h))}if(a)for(let h in i){if(!Object.prototype.hasOwnProperty.call(i,h))continue;let f=i[h];f.isAvailable()&&!d.has(h)&&f.update([])&&r!==void 0&&(e.channel_versions[h]=r(o),f.isAvailable()&&d.add(h))}if(a&&!pU(d,s))for(let h in i){if(!Object.prototype.hasOwnProperty.call(i,h))continue;let f=i[h];f.finish()&&r!==void 0&&(e.channel_versions[h]=r(o),f.isAvailable()&&d.add(h))}return d}function*_U(e,t,n){if(n.updatedChannels!=null&&n.triggerToNodes!=null){let r=new Set;for(let s of n.updatedChannels){let a=n.triggerToNodes[s];for(let i of a??[])r.add(i)}yield*[...r].sort();return}if(!(()=>{for(let r in e.channel_versions)if(e.channel_versions[r]!==null)return!1;return!0})())for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(yield r)}function ci(e,t,n,r,s,a,i){let o={},c=r[vi];if(c?.isAvailable()){let u=c.get().length;for(let l=0;l<u;l+=1){let d=Og([Vr,l],e,t,n,r,s,a,i);d!==void 0&&(o[d.id]=d)}}for(let u of _U(e,n,i)){let l=Og([am,u],e,t,n,r,s,a,i);l!==void 0&&(o[l.id]=l)}return o}function Og(e,t,n,r,s,a,i,o){let{step:c,checkpointer:u,manager:l}=o,d=a.configurable??{},h=d.checkpoint_ns??"";if(e[0]==="__pregel_push"&&dU(e[e.length-1])){let f=e[e.length-1],p=hU(f.name,f.func),m=[Vr],v=h===""?f.name:`${h}|${f.name}`,g=ni(JSON.stringify([v,c.toString(),f.name,Vr,e[1],e[2]]),t.id),_=`${v}:${g}`,k=[...e.slice(0,3),!0],S={langgraph_step:c,langgraph_node:f.name,langgraph_triggers:m,langgraph_path:k,langgraph_checkpoint_ns:_};if(i){let E=[];return{name:f.name,input:f.input,proc:p,writes:E,config:qe(Pn(a,{metadata:S,store:o.store??a.store}),{runName:f.name,callbacks:l?.getChild(`graph:step:${c}`),configurable:{[Qu]:g,[ds]:I=>zp(O=>E.push(...O),r,I),[ra]:(I,O=!1)=>vl(t,s,{name:f.name,writes:E,triggers:m,path:k},I,O),[Br]:u??d.__pregel_checkpointer,[Lr]:{...d[Lr],[h]:t.id},[hs]:Dp({pendingWrites:n??[],taskId:g,currentTaskInput:f.input,resumeMap:a.configurable?.[el],namespaceHash:Hs(_)}),[tl]:t.channel_values[cf],checkpoint_id:void 0,checkpoint_ns:_}}),triggers:m,retry_policy:f.retry,cache_key:f.cache?{key:Hs((f.cache.keyFunc??JSON.stringify)([f.input])),ns:[of,f.name??"__dynamic__"],ttl:f.cache.ttl}:void 0,id:g,path:k,writers:[]}}else return{id:g,name:f.name,interrupts:[],path:k}}else if(e[0]==="__pregel_push"){let f=typeof e[1]=="number"?e[1]:parseInt(e[1],10);if(!s.__pregel_tasks?.isAvailable())return;let p=s[vi].get();if(f<0||f>=p.length)return;let m=im(p[f])&&!pn(p[f])?new Ko(p[f].node,p[f].args):p[f];if(!im(m)){console.warn(`Ignoring invalid packet ${JSON.stringify(m)} in pending sends.`);return}if(!(m.node in r)){console.warn(`Ignoring unknown node name ${m.node} in pending sends.`);return}let v=[Vr],g=h===""?m.node:`${h}|${m.node}`,_=ni(JSON.stringify([g,c.toString(),m.node,Vr,f.toString()]),t.id),k=`${g}:${_}`,S={langgraph_step:c,langgraph_node:m.node,langgraph_triggers:v,langgraph_path:e.slice(0,3),langgraph_checkpoint_ns:k};if(i){let E=r[m.node],I=E.getNode();if(I!==void 0){E.metadata!==void 0&&(S={...S,...E.metadata});let O=[];return{name:m.node,input:m.args,proc:I,subgraphs:E.subgraphs,writes:O,config:qe(Pn(a,{metadata:S,tags:E.tags,store:o.store??a.store}),{runName:m.node,callbacks:l?.getChild(`graph:step:${c}`),configurable:{[Qu]:_,[ds]:w=>zp(M=>O.push(...M),r,w),[ra]:(w,M=!1)=>vl(t,s,{name:m.node,writes:O,triggers:v,path:e},w,M),[Br]:u??d.__pregel_checkpointer,[Lr]:{...d[Lr],[h]:t.id},[hs]:Dp({pendingWrites:n??[],taskId:_,currentTaskInput:m.args,resumeMap:a.configurable?.[el],namespaceHash:Hs(k)}),[tl]:t.channel_values[cf],checkpoint_id:void 0,checkpoint_ns:k}}),triggers:v,retry_policy:E.retryPolicy,cache_key:E.cachePolicy?{key:Hs((E.cachePolicy.keyFunc??JSON.stringify)([m.args])),ns:[of,E.name??"__dynamic__",m.node],ttl:E.cachePolicy.ttl}:void 0,id:_,path:e,writers:E.getWriters()}}}else return{id:_,name:m.node,interrupts:[],path:e}}else if(e[0]==="__pregel_pull"){let f=e[1].toString(),p=r[f];if(p===void 0)return;if(n?.length){let _=h===""?f:`${h}|${f}`,k=ni(JSON.stringify([_,c.toString(),f,am,f]),t.id);if(n.some(S=>S[0]===k&&S[1]!=="__error__"))return}let m=Ry(t.channel_versions);if(m===void 0)return;let v=t.versions_seen[f]??{},g=p.triggers.find(_=>s[_].isAvailable()?(t.channel_versions[_]??m)>(v[_]??m):!1);if(g!==void 0){let _=yU(p,s,i);if(_===void 0)return;let k=h===""?f:`${h}|${f}`,S=ni(JSON.stringify([k,c.toString(),f,am,[g]]),t.id),E=`${k}:${S}`,I={langgraph_step:c,langgraph_node:f,langgraph_triggers:[g],langgraph_path:e,langgraph_checkpoint_ns:E};if(i){let O=p.getNode();if(O!==void 0){p.metadata!==void 0&&(I={...I,...p.metadata});let w=[];return{name:f,input:_,proc:O,subgraphs:p.subgraphs,writes:w,config:qe(Pn(a,{metadata:I,tags:p.tags,store:o.store??a.store}),{runName:f,callbacks:l?.getChild(`graph:step:${c}`),configurable:{[Qu]:S,[ds]:M=>zp($=>{w.push(...$)},r,M),[ra]:(M,$=!1)=>vl(t,s,{name:f,writes:w,triggers:[g],path:e},M,$),[Br]:u??d.__pregel_checkpointer,[Lr]:{...d[Lr],[h]:t.id},[hs]:Dp({pendingWrites:n??[],taskId:S,currentTaskInput:_,resumeMap:a.configurable?.[el],namespaceHash:Hs(E)}),[tl]:t.channel_values[cf],checkpoint_id:void 0,checkpoint_ns:E}}),triggers:[g],retry_policy:p.retryPolicy,cache_key:p.cachePolicy?{key:Hs((p.cachePolicy.keyFunc??JSON.stringify)([_])),ns:[of,p.name??"__dynamic__",f],ttl:p.cachePolicy.ttl}:void 0,id:S,path:e,writers:p.getWriters()}}}else return{id:S,name:f,interrupts:[],path:e}}}}function yU(e,t,n){let r;if(typeof e.channels=="object"&&!Array.isArray(e.channels)){r={};for(let[s,a]of Object.entries(e.channels))if(e.triggers.includes(a))try{r[s]=yi(t,a,!1)}catch(i){if(i.name===$t.unminifiable_name)return;throw i}else if(a in t)try{r[s]=yi(t,a,!1)}catch(i){if(i.name===$t.unminifiable_name)continue;throw i}}else if(Array.isArray(e.channels)){let s=!1;for(let a of e.channels)try{r=yi(t,a,!1),s=!0;break}catch(i){if(i.name===$t.unminifiable_name)continue;throw i}if(!s)return}else throw new Error(`Invalid channels type, expected list or dict, got ${e.channels}`);return n&&e.mapper!==void 0&&(r=e.mapper(r)),r}function vU(e,t){if(typeof e.args!="object"||e.args===null)return e;let n={};for(let[r,s]of Object.entries(e.args)){let a=t[r];(!a||a.lc_graph_name!=="UntrackedValue")&&(n[r]=s)}return new Ko(e.node,n)}function Dp({pendingWrites:e,taskId:t,currentTaskInput:n,resumeMap:r,namespaceHash:s}){let a=e.find(([o,c])=>o==="00000000-0000-0000-0000-000000000000"&&c==="__resume__")?.[2],i={callCounter:0,interruptCounter:-1,resume:(()=>{let o=e.filter(([c,u])=>c===t&&u==="__resume__").flatMap(([c,u,l])=>l);if(r!=null&&s in r){let c=r[s];o.push(c)}return o})(),nullResume:a,subgraphCounter:0,currentTaskInput:n,consumeNullResume:()=>{if(i.nullResume)return delete i.nullResume,e.splice(e.findIndex(([o,c])=>o==="00000000-0000-0000-0000-000000000000"&&c==="__resume__"),1),a}};return i}var pc={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},mc=(e,t)=>`${e.start}${t}${e.end}`;function*w0(e){for(let{id:t,name:n,input:r,config:s,triggers:a,writes:i}of e)s?.tags?.includes("langsmith:hidden")||(yield{id:t,name:n,input:r,triggers:a,interrupts:i.filter(([o,c])=>o===t&&c==="__interrupt__").map(([,o])=>o)})}function wU(e){return typeof e!="object"||e===null?!1:"$writes"in e&&Array.isArray(e.$writes)}function o1(e){let t={};for(let[n,r]of e){let s=String(n);if(s in t){let a=wU(t[s])?t[s].$writes:[t[s]];a.push(r),t[s]={$writes:a}}else t[s]=r}return t}function*bU(e,t){for(let[{id:n,name:r,config:s},a]of e)s?.tags?.includes("langsmith:hidden")||(yield{id:n,name:r,result:o1(a.filter(([i])=>Array.isArray(t)?t.includes(i):i===t)),interrupts:a.filter(i=>i[0]===Ot).map(i=>i[1])})}function*kU(e,t,n,r,s,a,i,o){function c(d){let h={};return d.callbacks!=null&&(h.callbacks=d.callbacks),d.configurable!=null&&(h.configurable=d.configurable),d.maxConcurrency!=null&&(h.max_concurrency=d.maxConcurrency),d.metadata!=null&&(h.metadata=d.metadata),d.recursionLimit!=null&&(h.recursion_limit=d.recursionLimit),d.runId!=null&&(h.run_id=d.runId),d.runName!=null&&(h.run_name=d.runName),d.tags!=null&&(h.tags=d.tags),h}let u=e.configurable?.checkpoint_ns,l={};for(let d of s){if(!(d.subgraphs?.length?d.subgraphs:[d.proc]).find(YT))continue;let h=`${d.name}:${d.id}`;u&&(h=`${u}|${h}`),l[d.id]={configurable:{thread_id:e.configurable?.thread_id,checkpoint_ns:h}}}yield{config:c(e),values:ga(t,n),metadata:r,next:s.map(d=>d.name),tasks:c1(s,a,l,o),parentConfig:i?c(i):void 0}}function c1(e,t,n,r){return e.map(s=>{let a=t.find(([u,l])=>u===s.id&&l==="__error__")?.[2],i=t.filter(([u,l])=>u===s.id&&l==="__interrupt__").map(([,,u])=>u),o=(()=>{if(a||i.length||!t.length)return;let u=t.findIndex(([l,d])=>l===s.id&&d==="__return__");if(u>=0)return t[u][2];if(typeof r=="string")return t.find(([l,d])=>l===s.id&&d===r)?.[2];if(Array.isArray(r)){let l=t.filter(([d,h])=>d===s.id&&r.includes(h)).map(([,d,h])=>[d,h]);return l.length?o1(l):void 0}})();if(a)return{id:s.id,name:s.name,path:s.path,error:a,interrupts:i,result:o};let c=n?.[s.id];return{id:s.id,name:s.name,path:s.path,interrupts:i,...c!==void 0?{state:c}:{},result:o}})}function SU(e,t,n){console.log([`${mc(pc.blue,`[${e}:checkpoint]`)}`,`\x1B[1m State at the end of step ${e}:\x1B[0m
615
+ `);return await n?.handleLLMNewToken(r),{generations:[{message:new Xe(r),text:r}],llmOutput:{}}}},tD=class UT extends Na{sleep=50;responses=[];chunks=[];toolStyle="openai";thrownErrorString;tools=[];constructor({sleep:t=50,responses:n=[],chunks:r=[],toolStyle:s="openai",thrownErrorString:a,...i}){super(i),this.sleep=t,this.responses=n,this.chunks=r,this.toolStyle=s,this.thrownErrorString=a}_llmType(){return"fake"}bindTools(t){let n=[...this.tools,...t],r=n.map(i=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:i.name,description:i.description,parameters:It(i.schema)}};case"anthropic":return{name:i.name,description:i.description,input_schema:It(i.schema)};case"bedrock":return{toolSpec:{name:i.name,description:i.description,inputSchema:It(i.schema)}};case"google":return{name:i.name,description:i.description,parameters:It(i.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:r}]:r,a=new UT({sleep:this.sleep,responses:this.responses,chunks:this.chunks,toolStyle:this.toolStyle,thrownErrorString:this.thrownErrorString});return a.tools=n,a.withConfig({tools:s})}async _generate(t,n,r){if(this.thrownErrorString)throw new Error(this.thrownErrorString);return{generations:[{text:"",message:new Xe({content:this.responses?.[0]?.content??t[0].content??"",tool_calls:this.chunks?.[0]?.tool_calls})}]}}async*_streamResponseChunks(t,n,r){if(this.thrownErrorString)throw new Error(this.thrownErrorString);if(this.chunks?.length){for(let i of this.chunks){let o=new Jr({message:new mn({content:i.content,tool_calls:i.tool_calls,additional_kwargs:i.additional_kwargs??{}}),text:i.content?.toString()??""});if(n.signal?.aborted)break;yield o,await r?.handleLLMNewToken(i.content,void 0,void 0,void 0,void 0,{chunk:o})}return}let s=this.responses?.[0]??new Xe(typeof t[0].content=="string"?t[0].content:""),a=typeof s.content=="string"?s.content:"";for(let i of a){await new Promise(c=>setTimeout(c,this.sleep));let o=new Jr({message:new mn({content:i}),text:i});if(n.signal?.aborted)break;yield o,await r?.handleLLMNewToken(i,void 0,void 0,void 0,void 0,{chunk:o})}}},nD=class FT extends Na{static lc_name(){return"FakeListChatModel"}lc_serializable=!0;responses;i=0;sleep;emitCustomEvent=!1;generationInfo;tools=[];toolStyle="openai";constructor(t){super(t);let{responses:n,sleep:r,emitCustomEvent:s,generationInfo:a}=t;this.responses=n,this.sleep=r,this.emitCustomEvent=s??this.emitCustomEvent,this.generationInfo=a}_combineLLMOutput(){return[]}_llmType(){return"fake-list"}async _generate(t,n,r){if(await this._sleepIfRequested(),n?.thrownErrorString)throw new Error(n.thrownErrorString);if(this.emitCustomEvent&&await r?.handleCustomEvent("some_test_event",{someval:!0}),n?.stop?.length)return{generations:[this._formatGeneration(n.stop[0])]};{let s=this._currentResponse();return this._incrementResponse(),{generations:[this._formatGeneration(s)],llmOutput:{}}}}_formatGeneration(t){return{message:new Xe(t),text:t}}async*_streamResponseChunks(t,n,r){let s=this._currentResponse();this._incrementResponse(),this.emitCustomEvent&&await r?.handleCustomEvent("some_test_event",{someval:!0});let a=[...s];for(let i=0;i<a.length;i++){let o=a[i],c=i===a.length-1;if(await this._sleepIfRequested(),n?.thrownErrorString)throw new Error(n.thrownErrorString);let u=this._createResponseChunk(o,c?this.generationInfo:void 0);if(n.signal?.aborted)break;yield u,r?.handleLLMNewToken(o)}}async _sleepIfRequested(){this.sleep!==void 0&&await this._sleep()}async _sleep(){return new Promise(t=>{setTimeout(()=>t(),this.sleep)})}_createResponseChunk(t,n){return new Jr({message:new mn({content:t}),text:t,generationInfo:n})}_currentResponse(){return this.responses[this.i]}_incrementResponse(){this.i<this.responses.length-1?this.i+=1:this.i=0}bindTools(t){let n=[...this.tools,...t],r=n.map(i=>{switch(this.toolStyle){case"openai":return{type:"function",function:{name:i.name,description:i.description,parameters:It(i.schema)}};case"anthropic":return{name:i.name,description:i.description,input_schema:It(i.schema)};case"bedrock":return{toolSpec:{name:i.name,description:i.description,inputSchema:It(i.schema)}};case"google":return{name:i.name,description:i.description,parameters:It(i.schema)};default:throw new Error(`Unsupported tool style: ${this.toolStyle}`)}}),s=this.toolStyle==="google"?[{functionDeclarations:r}]:r,a=new FT({responses:this.responses,sleep:this.sleep,emitCustomEvent:this.emitCustomEvent,generationInfo:this.generationInfo});return a.tools=n,a.toolStyle=this.toolStyle,a.i=this.i,a.withConfig({tools:s})}withStructuredOutput(t,n){return lr.from(async r=>{let s=await this.invoke(r);if(s.tool_calls?.[0]?.args)return s.tool_calls[0].args;if(typeof s.content=="string")return JSON.parse(s.content);throw new Error("No structured output found")})}},rD=class extends ry{vectorSize;constructor(e){super(e??{}),this.vectorSize=e?.vectorSize??4}async embedDocuments(e){return Promise.all(e.map(t=>this.embedQuery(t)))}async embedQuery(e){let t=e;t=t.toLowerCase().replaceAll(/[^a-z ]/g,"");let n=t.length%this.vectorSize,r=n===0?0:this.vectorSize-n,s=t.length+r;t=t.padEnd(s," ");let a=t.length/this.vectorSize,i=[];for(let o=0;o<t.length;o+=a)i.push(t.slice(o,o+a));return i.map(o=>{let c=0;for(let u=0;u<o.length;u+=1)c+=o===" "?0:o.charCodeAt(u);return c%26/26})}},sD=class extends ry{constructor(e){super(e??{})}embedDocuments(e){return Promise.resolve(e.map(()=>[.1,.2,.3,.4]))}embedQuery(e){return Promise.resolve([.1,.2,.3,.4])}},aD=class extends py{response;thrownErrorString;constructor(e){super(e),this.response=e.response,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let r=this.response??e;return await n?.handleLLMNewToken(r),r}},iD=class extends py{sleep=50;responses;thrownErrorString;constructor(e){super(e),this.sleep=e.sleep??this.sleep,this.responses=e.responses,this.thrownErrorString=e.thrownErrorString}_llmType(){return"fake"}async _call(e){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let t=this.responses?.[0];return this.responses=this.responses?.slice(1),t??e}async*_streamResponseChunks(e,t,n){if(this.thrownErrorString)throw new Error(this.thrownErrorString);let r=this.responses?.[0];this.responses=this.responses?.slice(1);for(let s of r??e)await new Promise(a=>setTimeout(a,this.sleep)),yield{text:s,generationInfo:{}},await n?.handleLLMNewToken(s)}},oD=class extends kx{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async getMessages(){return this.messages}async addMessage(e){this.messages.push(e)}async addUserMessage(e){this.messages.push(new $n(e))}async addAIMessage(e){this.messages.push(new Xe(e))}async clear(){this.messages=[]}},cD=class extends ny{lc_namespace=["langchain_core","message","fake"];messages=[];constructor(){super()}async addMessage(e){this.messages.push(e)}async getMessages(){return this.messages}},uD=class extends Qr{name="fake_tracer";runs=[];constructor(){super()}persistRun(e){return this.runs.push(e),Promise.resolve()}},lD=class extends ao{lc_namespace=["tests","fake"];getFormatInstructions(){return""}async parse(e){return e.split(",").map(t=>t.trim())}},dD=class extends wy{lc_namespace=["test","fake"];output=[new gs({pageContent:"foo"}),new gs({pageContent:"bar"})];constructor(e){super(),this.output=e?.output??this.output}async _getRelevantDocuments(e){return this.output}},hD=class extends Me{lc_namespace=["tests","fake"];returnOptions;constructor(e){super(e),this.returnOptions=e.returnOptions}async invoke(e,t){return this.returnOptions?t??{}:{input:e}}},fD=class extends Gh{name;description;schema;constructor(e){super(e),this.name=e.name,this.description=e.description,this.schema=e.schema}async _call(e,t){return JSON.stringify(e)}},pD=class extends Qr{runPromiseResolver;runPromise;name="single_run_extractor";constructor(){super(),this.runPromise=new Promise(e=>{this.runPromiseResolver=e})}async persistRun(e){this.runPromiseResolver(e)}async extract(){return this.runPromise}},mD=class BT extends Iy{memoryVectors=[];similarity;_vectorstoreType(){return"memory"}constructor(t,{similarity:n,...r}={}){super(t,r),this.similarity=n??RT}async addDocuments(t){let n=t.map(({pageContent:r})=>r);return this.addVectors(await this.embeddings.embedDocuments(n),t)}async addVectors(t,n){let r=t.map((s,a)=>({content:n[a].pageContent,embedding:s,metadata:n[a].metadata}));this.memoryVectors=this.memoryVectors.concat(r)}async similaritySearchVectorWithScore(t,n,r){let s=i=>r?r(new gs({metadata:i.metadata,pageContent:i.content})):!0,a=this.memoryVectors.filter(s);return a.map((i,o)=>({similarity:this.similarity(t,i.embedding),index:o})).sort((i,o)=>i.similarity>o.similarity?-1:0).slice(0,n).map(i=>[new gs({metadata:a[i.index].metadata,pageContent:a[i.index].content}),i.similarity])}static async fromTexts(t,n,r,s){let a=[];for(let i=0;i<t.length;i+=1){let o=Array.isArray(n)?n[i]:n,c=new gs({pageContent:t[i],metadata:o});a.push(c)}return BT.fromDocuments(a,r,s)}static async fromDocuments(t,n,r){let s=new this(n,r);return await s.addDocuments(t),s}static async fromExistingIndex(t,n){return new this(t,n)}},gD=Q({FakeChatMessageHistory:()=>oD,FakeChatModel:()=>eD,FakeEmbeddings:()=>sD,FakeLLM:()=>aD,FakeListChatMessageHistory:()=>cD,FakeListChatModel:()=>nD,FakeRetriever:()=>dD,FakeRunnable:()=>hD,FakeSplitIntoListParser:()=>lD,FakeStreamingChatModel:()=>tD,FakeStreamingLLM:()=>iD,FakeTool:()=>fD,FakeTracer:()=>uD,FakeVectorStore:()=>mD,SingleRunExtractor:()=>pD,SyntheticEmbeddings:()=>rD}),_D=Q({agents:()=>z$,caches:()=>zC,callbacks__base:()=>eA,callbacks__manager:()=>rP,callbacks__promises:()=>QN,chat_history:()=>l4,document_loaders__base:()=>p4,document_loaders__langsmith:()=>m4,documents:()=>f4,embeddings:()=>y4,errors:()=>B$,example_selectors:()=>E4,index:()=>L$,indexing:()=>O4,language_models__base:()=>F4,language_models__chat_models:()=>d2,language_models__llms:()=>f2,language_models__profile:()=>p2,language_models__structured_output:()=>u2,load__serializable:()=>N$,memory:()=>m2,messages:()=>u4,messages__tool:()=>cC,output_parsers:()=>o2,output_parsers__openai_functions:()=>b2,output_parsers__openai_tools:()=>k2,outputs:()=>yP,prompt_values:()=>I4,prompts:()=>J2,retrievers:()=>Y2,retrievers__document_compressors:()=>K2,runnables:()=>W4,runnables__graph:()=>BL,singletons:()=>iP,stores:()=>Q2,structured_query:()=>iz,testing:()=>dz,tools:()=>hz,tracers__base:()=>LN,tracers__console:()=>FN,tracers__log_stream:()=>gP,tracers__run_collector:()=>_z,tracers__tracer_langchain:()=>GN,types__stream:()=>vz,utils__async_caller:()=>OP,utils__chunk_array:()=>wz,utils__context:()=>kz,utils__env:()=>M$,utils__event_source_parse:()=>Tz,utils__format:()=>Az,utils__function_calling:()=>Rz,utils__hash:()=>U$,utils__json_patch:()=>J4,utils__json_schema:()=>ML,utils__math:()=>jz,utils__ssrf:()=>Bz,utils__standard_schema:()=>CP,utils__stream:()=>cP,utils__testing:()=>gD,utils__tiktoken:()=>D4,utils__types:()=>c2,vectorstores:()=>Yz}),yD=50;function vD(e){let t={};for(let n=e;n&&n.prototype;n=Object.getPrototypeOf(n))Object.assign(t,Reflect.get(n.prototype,"lc_aliases"));return Object.entries(t).reduce((n,[r,s])=>(n[s]=r,n),{})}async function ml(e){let{optionalImportsMap:t,optionalImportEntrypoints:n,importMap:r,secretsMap:s,secretsFromEnv:a,path:i,depth:o,maxDepth:c}=this,u=i.join(".");if(o>c)throw new Error(`Maximum recursion depth (${c}) exceeded during deserialization. This may indicate a malicious payload or you may need to increase maxDepth.`);if(typeof e!="object"||e==null)return e;if(Array.isArray(e))return Promise.all(e.map((h,f)=>ml.call({...this,path:[...i,`${f}`],depth:o+1},h)));let l=e;if(dS(l))return dm(l);if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="secret"){let[h]=l.id;if(h in s)return s[h];if(a){let f=rr(h);if(f)return f}throw new Error(`Missing secret "${h}" at ${u}`)}if("lc"in l&&"type"in l&&"id"in l&&l.lc===1&&l.type==="not_implemented"){let f=JSON.stringify(l);throw new Error(`Trying to load an object that doesn't implement serialization: ${u} -> ${f}`)}if("lc"in l&&"type"in l&&"id"in l&&"kwargs"in l&&l.lc===1&&l.type==="constructor"){let h=l,f=JSON.stringify(h),[p,...m]=h.id.slice().reverse(),v=m.reverse(),g={langchain_core:_D,langchain:r},_=null,k=[v.join("/")];v[0]==="langchain_community"&&k.push(["langchain",...v.slice(1)].join("/"));let S=k.find(O=>O in t);if(j$.concat(n).includes(v.join("/"))||S)if(S!==void 0)_=await t[S];else throw new Error(`Missing key "${v.join("/")}" for ${u} in load(optionalImportsMap={})`);else{let O;if(v[0]==="langchain"||v[0]==="langchain_core")O=g[v[0]],v.shift();else throw new Error(`Invalid namespace: ${u} -> ${f}`);if(v.length===0)throw new Error(`Invalid namespace: ${u} -> ${f}`);let w;do{if(w=v.join("__"),w in O)break;v.pop()}while(v.length>0);w in O&&(_=O[w])}if(typeof _!="object"||_===null)throw new Error(`Invalid namespace: ${u} -> ${f}`);let E=_[p]??Object.values(_).find(O=>typeof O=="function"&&kh(O)===p);if(typeof E!="function")throw new Error(`Invalid identifer: ${u} -> ${f}`);let I=new E(uS(await ml.call({...this,path:[...i,"kwargs"],depth:o+1},h.kwargs),I$,vD(E)));return Object.defineProperty(I.constructor,"name",{value:p}),I}let d={};for(let[h,f]of Object.entries(l))d[h]=await ml.call({...this,path:[...i,h],depth:o+1},f);return d}async function wD(e,t){let n=JSON.parse(e),r={optionalImportsMap:{},optionalImportEntrypoints:[],secretsMap:{},secretsFromEnv:!1,importMap:{},path:["$"],depth:0,maxDepth:yD};return ml.call(r,n)}function bD(e){return e!==null&&e.lc===1&&e.type==="constructor"&&Array.isArray(e.id)}async function wg(e){if(e&&typeof e=="object"){if(Array.isArray(e))return await Promise.all(e.map(t=>wg(t)));{let t={};for(let[n,r]of Object.entries(e))t[n]=await wg(r);if(t.lc===2&&t.type==="undefined")return;if(t.lc===2&&t.type==="constructor"&&Array.isArray(t.id))try{let n=t.id[t.id.length-1],r;switch(n){case"Set":r=Set;break;case"Map":r=Map;break;case"RegExp":r=RegExp;break;case"Error":r=Error;break;case"Uint8Array":r=Uint8Array;break;default:return t}return t.method?r[t.method](...t.args||[]):new r(...t.args||[])}catch{return t}else if(bD(t))return wD(JSON.stringify(t));return t}}return e}function Ru(e,t,n,r){return{lc:2,type:"constructor",id:[e.name],method:t??null,args:n??[],kwargs:r??{}}}function kD(e){return e===void 0?{lc:2,type:"undefined"}:e instanceof Set||e instanceof Map?Ru(e.constructor,void 0,[Array.from(e)]):e instanceof RegExp?Ru(RegExp,void 0,[e.source,e.flags]):e instanceof Error?Ru(e.constructor,void 0,[e.message]):e?.lg_name==="Send"?{node:e.node,args:e.args}:e instanceof Uint8Array?Ru(Uint8Array,"from",[Array.from(e)]):e}var SD=class{_dumps(e){return new TextEncoder().encode(v$(e,(t,n)=>kD(n)))}async dumpsTyped(e){return e instanceof Uint8Array?["bytes",e]:["json",this._dumps(e)]}async _loads(e){return wg(JSON.parse(e))}async loadsTyped(e,t){if(e==="bytes")return typeof t=="string"?new TextEncoder().encode(t):t;if(e==="json")return this._loads(typeof t=="string"?t:new TextDecoder().decode(t));throw new Error(`Unknown serialization type: ${e}`)}};function ZT(e){if(typeof e!="object"||e===null)return e;let t=Array.isArray(e)?[]:{};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=ZT(e[n]));return t}function VT(){return{v:4,id:cS(-2),ts:new Date().toISOString(),channel_values:{},channel_versions:{},versions_seen:{}}}function Yl(e){return{v:e.v,id:e.id,ts:e.ts,channel_values:{...e.channel_values},channel_versions:{...e.channel_versions},versions_seen:ZT(e.versions_seen)}}function qT(e,t){return typeof e=="number"&&typeof t=="number"?Math.sign(e-t):String(e).localeCompare(String(t))}function ED(...e){return e.reduce((t,n,r)=>r===0?n:qT(t,n)>=0?t:n)}var xD={[p$]:-1,[sl]:-2,[m$]:-3,[g$]:-4},mo=class extends Error{constructor(e){super(e),this.name="InvalidNamespaceError"}};function TD(e){if(e.length===0)throw new mo("Namespace cannot be empty.");for(let t of e){if(typeof t!="string")throw new mo(`Invalid namespace label '${t}' found in ${e}. Namespace labels must be strings, but got ${typeof t}.`);if(t.includes("."))throw new mo(`Invalid namespace label '${t}' found in ${e}. Namespace labels cannot contain periods ('.').`);if(t==="")throw new mo(`Namespace labels cannot be empty strings. Got ${t} in ${e}`)}if(e[0]==="langgraph")throw new mo(`Root label for namespace cannot be "langgraph". Got: ${e}`)}var OD=class{async get(e,t){return(await this.batch([{namespace:e,key:t}]))[0]}async search(e,t={}){let{filter:n,limit:r=10,offset:s=0,query:a}=t;return(await this.batch([{namespacePrefix:e,filter:n,limit:r,offset:s,query:a}]))[0]}async put(e,t,n,r){TD(e),await this.batch([{namespace:e,key:t,value:n,index:r}])}async delete(e,t){await this.batch([{namespace:e,key:t,value:null}])}async listNamespaces(e={}){let{prefix:t,suffix:n,maxDepth:r,limit:s=100,offset:a=0}=e,i=[];return t&&i.push({matchType:"prefix",path:t}),n&&i.push({matchType:"suffix",path:n}),(await this.batch([{matchConditions:i.length?i:void 0,maxDepth:r,limit:s,offset:a}]))[0]}start(){}stop(){}},ID=e=>"lg_name"in e&&e.lg_name==="AsyncBatchedStore"?e.store:e,$D=class extends OD{lg_name="AsyncBatchedStore";store;queue=new Map;nextKey=0;running=!1;processingTask=null;constructor(e){super(),this.store=ID(e)}get isRunning(){return this.running}async batch(e){throw new Error("The `batch` method is not implemented on `AsyncBatchedStore`.\n Instead, it calls the `batch` method on the wrapped store.\n If you are seeing this error, something is wrong.")}async get(e,t){return this.enqueueOperation({namespace:e,key:t})}async search(e,t){let{filter:n,limit:r=10,offset:s=0,query:a}=t||{};return this.enqueueOperation({namespacePrefix:e,filter:n,limit:r,offset:s,query:a})}async put(e,t,n){return this.enqueueOperation({namespace:e,key:t,value:n})}async delete(e,t){return this.enqueueOperation({namespace:e,key:t,value:null})}start(){this.running||(this.running=!0,this.processingTask=this.processBatchQueue())}async stop(){this.running=!1,this.processingTask&&await this.processingTask}enqueueOperation(e){return new Promise((t,n)=>{let r=this.nextKey;this.nextKey+=1,this.queue.set(r,{operation:e,resolve:t,reject:n})})}async processBatchQueue(){for(;this.running;){if(await new Promise(t=>{setTimeout(t,0)}),this.queue.size===0)continue;let e=new Map(this.queue);this.queue.clear();try{let t=Array.from(e.values()).map(({operation:r})=>r),n=await this.store.batch(t);e.forEach(({resolve:r},s)=>{r(n[Array.from(e.keys()).indexOf(s)])})}catch(t){e.forEach(({reject:n})=>{n(t)})}}}toJSON(){return{queue:this.queue,nextKey:this.nextKey,running:this.running,store:"[LangGraphStore]"}}},CD=class{serde=new SD;constructor(e){this.serde=e||this.serde}};function HT(e){return e!=null&&e.lg_is_channel===!0}var Ls=class{ValueType;UpdateType;lg_is_channel=!0;consume(){return!1}finish(){return!1}isAvailable(){try{return this.get(),!0}catch(e){if(e.name===$t.unminifiable_name)return!1;throw e}}equals(e){return this===e}},bg=Symbol.for("LG_IS_ONLY_BASE_CHANNEL");function $y(e){if(e[bg]===!0)return e;let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];HT(r)&&(t[n]=r)}return Object.assign(t,{[bg]:!0}),t}function Ql(e,t){let n=$y(e),r={};for(let s in n){if(!Object.prototype.hasOwnProperty.call(n,s))continue;let a=t.channel_values[s];r[s]=n[s].fromCheckpoint(a)}return Object.assign(r,{[bg]:!0}),r}function Ks(e,t,n,r){let s;if(t===void 0)s=e.channel_values;else{s={};for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))try{s[a]=t[a].checkpoint()}catch(i){if(i.name!==$t.unminifiable_name)throw i}}return{v:4,id:r?.id??cS(n),ts:new Date().toISOString(),channel_values:s,channel_versions:e.channel_versions,versions_seen:e.versions_seen}}var AD=e=>e!=null&&e.lc_graph_name==="BinaryOperatorAggregate",ed=class GT extends Ls{lc_graph_name="BinaryOperatorAggregate";value;operator;initialValueFactory;constructor(t,n){super(),this.operator=t,this.initialValueFactory=n,this.value=n?.()}fromCheckpoint(t){let n=new GT(this.operator,this.initialValueFactory);return typeof t<"u"&&(n.value=t),n}update(t){let n=t;if(!n.length)return!1;if(this.value===void 0){let s=n[0],[a,i]=om(s);a?this.value=i:this.value=s,n=n.slice(1)}let r=!1;for(let s of n)if(WI(s)){if(r)throw new Ye("Can receive only one Overwrite value per step.");let[,a]=om(s);this.value=a,r=!0;continue}else!r&&this.value!==void 0&&(this.value=this.operator(this.value,s));return!0}get(){if(this.value===void 0)throw new $t;return this.value}checkpoint(){if(this.value===void 0)throw new $t;return this.value}isAvailable(){return this.value!==void 0}equals(t){return this===t?!0:AD(t)?this.operator===t.operator:!1}},Kh=class WT extends Ls{lc_graph_name="LastValue";value=[];constructor(t){super(),this.initialValueFactory=t,t&&(this.value=[t()])}fromCheckpoint(t){let n=new WT(this.initialValueFactory);return typeof t<"u"&&(n.value=[t]),n}update(t){if(t.length===0)return!1;if(t.length!==1)throw new Ye("LastValue can only receive one value per step.",{lc_error_code:"INVALID_CONCURRENT_GRAPH_UPDATE"});return this.value=[t[t.length-1]],!0}get(){if(this.value.length===0)throw new $t;return this.value[0]}checkpoint(){if(this.value.length===0)throw new $t;return this.value[0]}isAvailable(){return this.value.length!==0}},RD=class JT extends Ls{lc_graph_name="LastValueAfterFinish";value=[];finished=!1;fromCheckpoint(t){let n=new JT;if(typeof t<"u"){let[r,s]=t;n.value=[r],n.finished=s}return n}update(t){return t.length===0?!1:(this.finished=!1,this.value=[t[t.length-1]],!0)}get(){if(this.value.length===0||!this.finished)throw new $t;return this.value[0]}checkpoint(){if(this.value.length!==0)return[this.value[0],this.finished]}consume(){return this.finished?(this.finished=!1,this.value=[],!0):!1}finish(){return!this.finished&&this.value.length>0?(this.finished=!0,!0):!1}isAvailable(){return this.value.length!==0&&this.finished}},kg=class{lc_graph_name="AnnotationRoot";spec;constructor(e){this.spec=e}static isInstance(e){return typeof e=="object"&&e!==null&&"lc_graph_name"in e&&e.lc_graph_name==="AnnotationRoot"}},_t=function(e){return e?Sg(e):new Kh};_t.Root=e=>new kg(e);function Sg(e){return typeof e=="object"&&e&&"reducer"in e&&e.reducer?new ed(e.reducer,e.default):typeof e=="object"&&e&&"value"in e&&e.value?new ed(e.value,e.default):new Kh}var ND=["tags","metadata","callbacks","configurable"],PD=["tags","metadata","callbacks","runName","maxConcurrency","recursionLimit","configurable","runId","outputKeys","streamMode","store","writer","interrupt","context","interruptBefore","interruptAfter","checkpointDuring","durability","signal"],MD=25;function KT(...e){let t={tags:[],metadata:{},callbacks:void 0,recursionLimit:MD,configurable:{}},n=Lt.getRunnableConfig();if(n!==void 0){for(let[r,s]of Object.entries(n))if(s!==void 0)if(ND.includes(r)){let a;Array.isArray(s)?a=[...s]:typeof s=="object"?r==="callbacks"&&"copy"in s&&typeof s.copy=="function"?a=s.copy():a={...s}:a=s,t[r]=a}else t[r]=s}for(let r of e)if(r!==void 0)for(let[s,a]of Object.entries(r))a!==void 0&&PD.includes(s)&&(t[s]=a);for(let[r,s]of Object.entries(t.configurable))t.metadata=t.metadata??{},!r.startsWith("__")&&(typeof s=="string"||typeof s=="number"||typeof s=="boolean")&&!(r in t.metadata)&&(t.metadata[r]=s);return t}function jD(){return Lt.getRunnableConfig()}function Pp(e){return e.split("|").filter(t=>!t.match(/^\d+$/)).map(t=>t.split(":")[0]).join("|")}function LD(e){let t=e.split("|");for(;t.length>1&&t[t.length-1].match(/^\d+$/);)t.pop();return t.slice(0,-1).join("|")}var Pa=class extends Me{lc_namespace=["langgraph"];func;tags;config;trace=!0;recurse=!0;constructor(e){super(),this.name=e.name??e.func.name,this.func=e.func,this.config=e.tags?{tags:e.tags}:void 0,this.trace=e.trace??this.trace,this.recurse=e.recurse??this.recurse}async _tracedInvoke(e,t,n){return new Promise((r,s)=>{let a=qe(t,{callbacks:n?.getChild()});Lt.runWithConfig(a,async()=>{try{r(await this.func(e,a))}catch(i){s(i)}})})}async invoke(e,t){let n,r=KT(t),s=Pn(this.config,r);return this.trace?n=await this._callWithConfig(this._tracedInvoke,e,s):n=await Lt.runWithConfig(s,async()=>this.func(e,s)),Me.isRunnable(n)&&this.recurse?await Lt.runWithConfig(s,async()=>n.invoke(e,s)):n}};function*ts(e,t){if(t===void 0)yield*e;else for(let n of e)yield[t,n]}async function os(e){let t=[];for await(let n of await e)t.push(n);return t}function xo(e){let t=[];for(let n of e)t.push(n);return t}function Ua(e,t){return e?"configurable"in e?{...e,configurable:{...e.configurable,...t}}:{...e,configurable:t}:{configurable:t}}function zD(e){return typeof e=="object"&&e?.[Symbol.for("LG_SKIP_WRITE")]!==void 0}var ca={[Symbol.for("LG_PASSTHROUGH")]:!0};function Nu(e){return typeof e=="object"&&e?.[Symbol.for("LG_PASSTHROUGH")]!==void 0}var Mp=Symbol("IS_WRITER"),Xt=class Eg extends Pa{writes;constructor(t,n){let r=`ChannelWrite<${t.map(s=>pn(s)?s.node:"channel"in s?s.channel:"...").join(",")}>`;super({writes:t,name:r,tags:n,trace:!1,func:async(s,a)=>this._write(s,a??{})}),this.writes=t}async _write(t,n){let r=this.writes.map(s=>jp(s)&&Nu(s.value)?{mapper:s.mapper,value:t}:gl(s)&&Nu(s.value)?{channel:s.channel,value:t,skipNone:s.skipNone,mapper:s.mapper}:s);return await Eg.doWrite(n,r),t}static async doWrite(t,n){for(let a of n){if(gl(a)){if(a.channel==="__pregel_tasks")throw new Ye("Cannot write to the reserved channel TASKS");if(Nu(a.value))throw new Ye("PASSTHROUGH value must be replaced")}if(jp(a)&&Nu(a.value))throw new Ye("PASSTHROUGH value must be replaced")}let r=[];for(let a of n)if(pn(a))r.push([vi,a]);else if(jp(a)){let i=await a.mapper.invoke(a.value,t);i!=null&&i.length>0&&r.push(...i)}else if(gl(a)){let i=a.mapper!==void 0?await a.mapper.invoke(a.value,t):a.value;if(zD(i)||a.skipNone&&i===void 0)continue;r.push([a.channel,i])}else throw new Error(`Invalid write entry: ${JSON.stringify(a)}`);let s=t.configurable?.[ds];s(r)}static isWriter(t){return t instanceof Eg||Mp in t&&!!t[Mp]}static registerWriter(t){return Object.defineProperty(t,Mp,{value:!0})}};function gl(e){return e!==void 0&&typeof e.channel=="string"}function jp(e){return e!==void 0&&!gl(e)&&Me.isRunnable(e.mapper)}var DD=class XT extends Pa{lc_graph_name="ChannelRead";channel;fresh=!1;mapper;constructor(t,n,r=!1){super({trace:!1,func:(s,a)=>XT.doRead(a,this.channel,this.fresh,this.mapper)}),this.fresh=r,this.mapper=n,this.channel=t,this.name=Array.isArray(t)?`ChannelRead<${t.join(",")}>`:`ChannelRead<${t}>`}static doRead(t,n,r,s){let a=t.configurable?.[ra];if(!a)throw new Error("Runnable is not configured with a read function. Make sure to call in the context of a Pregel process");return s?s(a(n,r)):a(n,r)}},Fa=new cc,fc=class To extends xs{lc_graph_name="PregelNode";channels;triggers=[];mapper;writers=[];bound=Fa;kwargs={};metadata={};tags=[];retryPolicy;cachePolicy;subgraphs;ends;constructor(t){let{channels:n,triggers:r,mapper:s,writers:a,bound:i,kwargs:o,metadata:c,retryPolicy:u,cachePolicy:l,tags:d,subgraphs:h,ends:f}=t,p=[...t.config?.tags?t.config.tags:[],...d??[]];super({...t,bound:t.bound??Fa,config:{...t.config?t.config:{},tags:p}}),this.channels=n,this.triggers=r,this.mapper=s,this.writers=a??this.writers,this.bound=i??this.bound,this.kwargs=o??this.kwargs,this.metadata=c??this.metadata,this.tags=p,this.retryPolicy=u,this.cachePolicy=l,this.subgraphs=h,this.ends=f}getWriters(){let t=[...this.writers];for(;t.length>1&&t[t.length-1]instanceof Xt&&t[t.length-2]instanceof Xt;){let n=t.slice(-2),r=n[0].writes.concat(n[1].writes);t[t.length-2]=new Xt(r,n[0].config?.tags),t.pop()}return t}getNode(){let t=this.getWriters();if(!(this.bound===Fa&&t.length===0))return this.bound===Fa&&t.length===1?t[0]:this.bound===Fa?new Ts({first:t[0],middle:t.slice(1,t.length-1),last:t[t.length-1],omitSequenceTags:!0}):t.length>0?new Ts({first:this.bound,middle:t.slice(0,t.length-1),last:t[t.length-1],omitSequenceTags:!0}):this.bound}join(t){if(!Array.isArray(t))throw new Error("channels must be a list");if(typeof this.channels!="object")throw new Error("all channels must be named when using .join()");return new To({channels:{...this.channels,...Object.fromEntries(t.map(n=>[n,n]))},triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound,kwargs:this.kwargs,config:this.config,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}pipe(t){return Xt.isWriter(t)?new To({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:[...this.writers,t],bound:this.bound,config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):this.bound===Fa?new To({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:jt(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy}):new To({channels:this.channels,triggers:this.triggers,mapper:this.mapper,writers:this.writers,bound:this.bound.pipe(t),config:this.config,kwargs:this.kwargs,retryPolicy:this.retryPolicy,cachePolicy:this.cachePolicy})}};function UD(e){return"steps"in e&&Array.isArray(e.steps)}function Cy(e){return"lg_is_pregel"in e&&e.lg_is_pregel===!0}function YT(e){let t=[e];for(let n of t){if(Cy(n))return n;UD(n)&&t.push(...n.steps)}}var D=e=>BigInt(e),Ke=(e,t=0)=>new DataView(e.buffer,e.byteOffset+t,e.byteLength-t),QT=D("0x9E3779B1"),e1=D("0x85EBCA77"),FD=D("0xC2B2AE3D"),Os=D("0x9E3779B185EBCA87"),ma=D("0xC2B2AE3D27D4EB4F"),t1=D("0x165667B19E3779F9"),Ay=D("0x85EBCA77C2B2AE63"),BD=D("0x27D4EB2F165667C5"),ZD=D("0x165667919E3779F9"),VD=D("0x9FB21C651E98DF25"),qD=e=>{let t=e.length;if(t%2!==0)throw new Error("String should have an even number of characters");let n=t/2,r=new Uint8Array(n),s=0,a=0;for(;a<n;){let i=e.slice(s,s+=2);r[a]=Number.parseInt(i,16),a+=1}return Ke(r)},gr=qD("b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e"),_i=(D(1)<<D(128))-D(1),$e=(D(1)<<D(64))-D(1),td=(D(1)<<D(32))-D(1),Ur=64,n1=Ur/8,HD=8,Pu=4;function Ni(e){if(!e)throw new Error("Assert failed")}function GD(e){let t=new DataView(new ArrayBuffer(8));return t.setBigUint64(0,e,!0),t.getBigUint64(0,!1)}function WD(e){let t=e;return t=(t&D(65535))<<D(16)|(t&D(4294901760))>>D(16),t=(t&D(16711935))<<D(8)|(t&D(4278255360))>>D(8),t}function JD(e,t){return(e&td)*(t&td)&$e}function KD(e,t){return(e<<t|e>>D(32)-t)&td}function r1(e,t,n){for(let r=0;r<n1;r+=1){let s=t.getBigUint64(r*8,!0),a=s^n.getBigUint64(r*8,!0);e[r^1]+=s,e[r]+=JD(a,a>>D(32))}return e}function _0(e,t,n,r){for(let s=0;s<r;s+=1)r1(e,Ke(t,s*Ur),Ke(n,s*8));return e}function XD(e,t){for(let n=0;n<n1;n+=1){let r=t.getBigUint64(n*8,!0),s=e[n];s=xg(s,D(47)),s^=r,s*=QT,e[n]=s&$e}return e}function Mu(e,t){return s1(e[0]^t.getBigUint64(0,!0),e[1]^t.getBigUint64(HD,!0))}function y0(e,t,n){let r=n;return r+=Mu(e.slice(0),Ke(t,0*Pu)),r+=Mu(e.slice(2),Ke(t,4*Pu)),r+=Mu(e.slice(4),Ke(t,8*Pu)),r+=Mu(e.slice(6),Ke(t,12*Pu)),br(r&$e)}function YD(e,t,n,r,s){let a=e,i=Math.floor((n.byteLength-Ur)/8),o=Ur*i,c=Math.floor((t.byteLength-1)/o);for(let u=0;u<c;u+=1)a=_0(a,Ke(t,u*o),n,i),a=s(a,Ke(n,n.byteLength-Ur));{let u=Math.floor((t.byteLength-1-o*c)/Ur);a=_0(a,Ke(t,c*o),n,u),a=r(a,Ke(t,t.byteLength-Ur),Ke(n,n.byteLength-Ur-7))}return a}function QD(e,t){let n=new BigUint64Array([FD,Os,ma,t1,Ay,e1,BD,QT]);Ni(e.byteLength>128),n=YD(n,e,t,r1,XD),Ni(n.length*8===64);{let r=y0(n,Ke(t,11),D(e.byteLength)*Os&$e);return y0(n,Ke(t,t.byteLength-Ur-11),~(D(e.byteLength)*ma)&$e)<<D(64)|r}}function s1(e,t){let n=e*t&_i;return n&$e^n>>D(64)}function v0(e,t,n){return s1((e.getBigUint64(0,!0)^t.getBigUint64(0,!0)+n)&$e,(e.getBigUint64(8,!0)^t.getBigUint64(8,!0)-n)&$e)}function _l(e,t,n,r,s){let a=e&$e,i=e>>D(64)&$e;return a+=v0(t,r,s),a^=n.getBigUint64(0,!0)+n.getBigUint64(8,!0),a&=$e,i+=v0(n,Ke(r,16),s),i^=t.getBigUint64(0,!0)+t.getBigUint64(8,!0),i&=$e,i<<D(64)|a}function br(e){let t=e;return t^=t>>D(37),t*=ZD,t&=$e,t^=t>>D(32),t}function nd(e){let t=e;return t^=t>>D(33),t*=ma,t&=$e,t^=t>>D(29),t*=t1,t&=$e,t^=t>>D(32),t}function eU(e,t,n){let r=e.byteLength;Ni(r>0&&r<=3);let s=D(e.getUint8(r-1))|D(r<<8)|D(e.getUint8(0)<<16)|D(e.getUint8(r>>1)<<24),a=(s^(D(t.getUint32(0,!0))^D(t.getUint32(4,!0)))+n)&$e,i=(D(t.getUint32(8,!0))^D(t.getUint32(12,!0)))-n;return(nd((KD(WD(s),D(13))^i)&$e)&$e)<<D(64)|nd(a)}function xg(e,t){return e^e>>t}function tU(e,t,n){let r=e.byteLength;Ni(r>=4&&r<=8);{let s=e.getUint32(0,!0),a=e.getUint32(r-4,!0),i=((D(s)|D(a)<<D(32))^(t.getBigUint64(16,!0)^t.getBigUint64(24,!0))+n&$e)*(Os+(D(r)<<D(2)))&_i;return i+=(i&$e)<<D(65),i&=_i,i^=i>>D(67),xg(xg(i&$e,D(35))*VD&$e,D(28))|br(i>>D(64))<<D(64)}}function nU(e,t,n){let r=e.byteLength;Ni(r>=9&&r<=16);{let s=(t.getBigUint64(32,!0)^t.getBigUint64(40,!0))+n&$e,a=(t.getBigUint64(48,!0)^t.getBigUint64(56,!0))-n&$e,i=e.getBigUint64(0,!0),o=e.getBigUint64(r-8,!0),c=(i^o^s)*Os,u=(c&$e)+(D(r-1)<<D(54));c=c&(_i^$e)|u,o^=a,c+=o+(o&td)*(e1-D(1))<<D(64),c&=_i,c^=GD(c>>D(64));let l=(c&$e)*ma;return l+=(c>>D(64))*ma<<D(64),l&=_i,br(l&$e)|br(l>>D(64))<<D(64)}}function rU(e,t){let n=e.byteLength;return Ni(n<=16),n>8?nU(e,gr,t):n>=4?tU(e,gr,t):n>0?eU(e,gr,t):nd(t^gr.getBigUint64(64,!0)^gr.getBigUint64(72,!0))|nd(t^gr.getBigUint64(80,!0)^gr.getBigUint64(88,!0))<<D(64)}function Tg(e){return~e+D(1)&$e}function sU(e,t,n){let r=D(e.byteLength)*Os&$e,s=D(e.byteLength-1)/D(32);for(;s>=0;){let o=Number(s);r=_l(r,Ke(e,16*o),Ke(e,e.byteLength-16*(o+1)),Ke(t,32*o),n),s-=D(1)}let a=r+(r>>D(64))&$e;a=br(a);let i=(r&$e)*Os+(r>>D(64))*Ay+(D(e.byteLength)-n&$e)*ma;return i&=$e,i=Tg(br(i)),a|i<<D(64)}function aU(e,t,n){let r=D(e.byteLength)*Os&$e;for(let i=32;i<160;i+=32)r=_l(r,Ke(e,i-32),Ke(e,i-16),Ke(t,i-32),n);r=br(r&$e)|br(r>>D(64))<<D(64);for(let i=160;i<=e.byteLength;i+=32)r=_l(r,Ke(e,i-32),Ke(e,i-16),Ke(t,3+i-160),n);r=_l(r,Ke(e,e.byteLength-16),Ke(e,e.byteLength-32),Ke(t,103),Tg(n));let s=r+(r>>D(64))&$e;s=br(s);let a=(r&$e)*Os+(r>>D(64))*Ay+(D(e.byteLength)-n&$e)*ma;return a&=$e,a=Tg(br(a)),s|a<<D(64)}function Hs(e,t=D(0)){let n=new TextEncoder,r=Ke(typeof e=="string"?n.encode(e):e),s=r.byteLength,a=i=>i.toString(16).padStart(32,"0");return s<=16?a(rU(r,t)):s<=128?a(sU(r,gr,t)):s<=240?a(aU(r,gr,t)):a(QD(r,gr))}function a1(e){return/^[0-9a-f]{32}$/.test(e)}function yi(e,t,n=!0,r=!1){try{return e[t].get()}catch(s){if(s.name===$t.unminifiable_name){if(r)return s;if(n)return null}throw s}}function ga(e,t,n=!0){if(Array.isArray(t)){let r={};for(let s of t)try{r[s]=yi(e,s,!n)}catch(a){if(a.name===$t.unminifiable_name)continue}return r}else return yi(e,t)}function*iU(e,t){if(e.graph===vr.PARENT)throw new Ye("There is no parent graph.");if(e.goto){let n;Array.isArray(e.goto)?n=e.goto:n=[e.goto];for(let r of n)if(pn(r))yield[yr,vi,r];else if(typeof r=="string")yield[yr,`branch:to:${r}`,"__start__"];else throw new Error(`In Command.send, expected Send or string, got ${typeof r}`)}if(e.resume)if(typeof e.resume=="object"&&Object.keys(e.resume).length&&Object.keys(e.resume).every(a1))for(let[n,r]of Object.entries(e.resume)){let s=t.filter(a=>a[0]===n&&a[1]==="__resume__").map(a=>a[2]).slice(0,1)??[];s.push(r),yield[n,vs,s]}else yield[yr,vs,e.resume];if(e.update){if(typeof e.update!="object"||!e.update)throw new Error("Expected cmd.update to be a dict mapping channel names to update values");if(Array.isArray(e.update))for(let[n,r]of e.update)yield[yr,n,r];else for(let[n,r]of Object.entries(e.update))yield[yr,n,r]}}function*i1(e,t){if(t!=null)if(Array.isArray(e)&&typeof t=="object"&&!Array.isArray(t))for(let n in t)e.includes(n)&&(yield[n,t[n]]);else{if(Array.isArray(e))throw new Error('Input chunk must be an object when "inputChannels" is an array');yield[e,t]}}function*Lp(e,t,n){Array.isArray(e)?(t===!0||t.find(([r,s])=>e.includes(r)))&&(yield ga(n,e)):(t===!0||t.some(([r,s])=>r===e))&&(yield yi(n,e))}function*oU(e,t,n){let r=t.filter(([o,c])=>(o.config===void 0||!o.config.tags?.includes("langsmith:hidden"))&&c[0][0]!=="__error__"&&c[0][0]!=="__interrupt__");if(!r.length)return;let s;r.some(([o])=>o.writes.some(([c,u])=>c==="__return__"))?s=r.flatMap(([o])=>o.writes.filter(([c,u])=>c===bh).map(([c,u])=>[o.name,u])):Array.isArray(e)?s=r.flatMap(([o])=>{let{writes:c}=o,u={};for(let[l]of c)e.includes(l)&&(u[l]=(u[l]||0)+1);return Object.values(u).some(l=>l>1)?c.filter(([l])=>e.includes(l)).map(([l,d])=>[o.name,{[l]:d}]):[[o.name,Object.fromEntries(c.filter(([l])=>e.includes(l)))]]}):s=r.flatMap(([o])=>o.writes.filter(([c,u])=>c===e).map(([c,u])=>[o.name,u]));let a={};for(let[o,c]of s)o in a||(a[o]=[]),a[o].push(c);let i={};for(let o in a)if(a[o].length===1){let[c]=a[o];i[o]=c}else i[o]=a[o];n&&(i.__metadata__={cached:n}),yield i}function Ry(e){let t=typeof e[bt];if(t==="number")return 0;if(t==="string")return"";for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=typeof e[n];if(r==="number")return 0;if(r==="string")return"";break}}function yl(e,t){if(Object.keys(e).length>0){let n=Ry(t);return Object.fromEntries(Object.entries(t).filter(([r,s])=>s>(e[r]??n)))}else return t}function cU(e,t){return e&&!Array.isArray(e)&&!(e instanceof Date)&&typeof e=="object"?e:{[t]:e}}function Yn(e,t){return e===null?{configurable:t}:e?.configurable===void 0?{...e,configurable:t}:{...e,configurable:{...e.configurable,...t}}}function Bs(e,t){let n=t?.parents??{};return Object.keys(n).length>0?Yn(e,{[Lr]:{...n,[e.configurable?.checkpoint_ns??""]:e.configurable?.checkpoint_id}}):e}function rd(...e){let t=[...new Set(e.filter(Boolean))];if(t.length===0)return{signal:void 0,dispose:void 0};if(t.length===1)return{signal:t[0],dispose:void 0};let n=new AbortController,r=()=>{let a=t.find(i=>i.aborted)?.reason;n.abort(a),t.forEach(i=>i.removeEventListener("abort",r))};t.forEach(a=>a.addEventListener("abort",r,{once:!0}));let s=t.find(a=>a.aborted);return s&&n.abort(s.reason),{signal:n.signal,dispose:()=>{t.forEach(a=>a.removeEventListener("abort",r))}}}var uU=(e,t)=>{if(!(!e&&!t))return e?t?Array.isArray(e)&&Array.isArray(t)?[...e,...t]:Array.isArray(e)?[...e,t]:Array.isArray(t)?[e,...t]:[e,t]:e:t},lU=class{func;name;input;retry;cache;callbacks;__lg_type="call";constructor({func:e,name:t,input:n,retry:r,cache:s,callbacks:a}){this.func=e,this.name=t,this.input=n,this.retry=r,this.cache=s,this.callbacks=a}};function dU(e){return typeof e=="object"&&e!==null&&"__lg_type"in e&&e.__lg_type==="call"}function hU(e,t){return new Ts({name:e,first:new Pa({func:n=>t(...n),name:e,trace:!1,recurse:!1}),last:new Xt([{channel:bh,value:ca}],[dn])})}var fU=e=>e!==void 0?e+1:1;function pU(e,t){if(t==null)return!1;for(let n of e)if(t[n])return!0;return!1}function mU(e){let t;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t==null?t=e[n]:t=ED(t,e[n]));return t}function ju(e,t,n){let r=Ry(e.channel_versions),s=e.versions_seen.__interrupt__??{},a=!1;if((e.channel_versions.__start__??r)>(s.__start__??r))a=!0;else for(let o in e.channel_versions)if(Object.prototype.hasOwnProperty.call(e.channel_versions,o)&&e.channel_versions[o]>(s[o]??r)){a=!0;break}let i=n.some(o=>t==="*"?!o.config?.tags?.includes(dn):t.includes(o.name));return a&&i}function vl(e,t,n,r,s=!1){let a=new Set;if(Array.isArray(r))a=new Set(r.filter(o=>n.writes.some(([c,u])=>c===o)));else{for(let[o]of n.writes)if(o===r){a=new Set([o]);break}a=a||new Set}let i;if(s&&a.size>0){let o=Object.fromEntries(Object.entries(t).filter(([l,d])=>a.has(l))),c=Ks(e,o,-1),u=Ql(o,c);xn(Yl(c),u,[n],void 0,void 0),i=ga({...t,...u},r)}else i=ga(t,r);return i}function zp(e,t,n){for(let[r,s]of n)if(["__pregel_push","__pregel_tasks"].includes(r)&&s!=null){if(!pn(s))throw new Ye(`Invalid packet type, expected SendProtocol, got ${JSON.stringify(s)}`);if(!(s.node in t))throw new Ye(`Invalid node name "${s.node}" in Send packet`)}e(n)}var gU=new Set([p_,Vr,vs,Ot,bh,wh]);function xn(e,t,n,r,s){n.sort((h,f)=>{let p=h.path?.slice(0,3)||[],m=f.path?.slice(0,3)||[];for(let v=0;v<Math.min(p.length,m.length);v+=1){if(p[v]<m[v])return-1;if(p[v]>m[v])return 1}return p.length-m.length});let a=n.some(h=>h.triggers.length>0),i=$y(t);for(let h of n){e.versions_seen[h.name]??={};for(let f of h.triggers)f in e.channel_versions&&(e.versions_seen[h.name][f]=e.channel_versions[f])}let o=mU(e.channel_versions),c=new Set(n.flatMap(h=>h.triggers).filter(h=>!qI.includes(h))),u=!1;for(let h of c)h in i&&i[h].consume()&&r!==void 0&&(e.channel_versions[h]=r(o),u=!0);let l={};for(let h of n)for(let[f,p]of h.writes)gU.has(f)||f in i&&(l[f]??=[],l[f].push(p));o!=null&&r!=null&&(o=u?r(o):o);let d=new Set;for(let[h,f]of Object.entries(l))if(h in i){let p=i[h],m;try{m=p.update(f)}catch(v){if(v.name===Ye.unminifiable_name){let g=new Ye(`Invalid update for channel "${h}" with values ${JSON.stringify(f)}: ${v.message}`);throw g.lc_error_code=v.lc_error_code,g}else throw v}m&&r!==void 0&&(e.channel_versions[h]=r(o),p.isAvailable()&&d.add(h))}if(a)for(let h in i){if(!Object.prototype.hasOwnProperty.call(i,h))continue;let f=i[h];f.isAvailable()&&!d.has(h)&&f.update([])&&r!==void 0&&(e.channel_versions[h]=r(o),f.isAvailable()&&d.add(h))}if(a&&!pU(d,s))for(let h in i){if(!Object.prototype.hasOwnProperty.call(i,h))continue;let f=i[h];f.finish()&&r!==void 0&&(e.channel_versions[h]=r(o),f.isAvailable()&&d.add(h))}return d}function*_U(e,t,n){if(n.updatedChannels!=null&&n.triggerToNodes!=null){let r=new Set;for(let s of n.updatedChannels){let a=n.triggerToNodes[s];for(let i of a??[])r.add(i)}yield*[...r].sort();return}if(!(()=>{for(let r in e.channel_versions)if(e.channel_versions[r]!==null)return!1;return!0})())for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(yield r)}function ci(e,t,n,r,s,a,i){let o={},c=r[vi];if(c?.isAvailable()){let u=c.get().length;for(let l=0;l<u;l+=1){let d=Og([Vr,l],e,t,n,r,s,a,i);d!==void 0&&(o[d.id]=d)}}for(let u of _U(e,n,i)){let l=Og([am,u],e,t,n,r,s,a,i);l!==void 0&&(o[l.id]=l)}return o}function Og(e,t,n,r,s,a,i,o){let{step:c,checkpointer:u,manager:l}=o,d=a.configurable??{},h=d.checkpoint_ns??"";if(e[0]==="__pregel_push"&&dU(e[e.length-1])){let f=e[e.length-1],p=hU(f.name,f.func),m=[Vr],v=h===""?f.name:`${h}|${f.name}`,g=ni(JSON.stringify([v,c.toString(),f.name,Vr,e[1],e[2]]),t.id),_=`${v}:${g}`,k=[...e.slice(0,3),!0],S={langgraph_step:c,langgraph_node:f.name,langgraph_triggers:m,langgraph_path:k,langgraph_checkpoint_ns:_};if(i){let E=[];return{name:f.name,input:f.input,proc:p,writes:E,config:qe(Pn(a,{metadata:S,store:o.store??a.store}),{runName:f.name,callbacks:l?.getChild(`graph:step:${c}`),configurable:{[Qu]:g,[ds]:I=>zp(O=>E.push(...O),r,I),[ra]:(I,O=!1)=>vl(t,s,{name:f.name,writes:E,triggers:m,path:k},I,O),[Br]:u??d.__pregel_checkpointer,[Lr]:{...d[Lr],[h]:t.id},[hs]:Dp({pendingWrites:n??[],taskId:g,currentTaskInput:f.input,resumeMap:a.configurable?.[el],namespaceHash:Hs(_)}),[tl]:t.channel_values[cf],checkpoint_id:void 0,checkpoint_ns:_}}),triggers:m,retry_policy:f.retry,cache_key:f.cache?{key:Hs((f.cache.keyFunc??JSON.stringify)([f.input])),ns:[of,f.name??"__dynamic__"],ttl:f.cache.ttl}:void 0,id:g,path:k,writers:[]}}else return{id:g,name:f.name,interrupts:[],path:k}}else if(e[0]==="__pregel_push"){let f=typeof e[1]=="number"?e[1]:parseInt(e[1],10);if(!s.__pregel_tasks?.isAvailable())return;let p=s[vi].get();if(f<0||f>=p.length)return;let m=im(p[f])&&!pn(p[f])?new Ko(p[f].node,p[f].args):p[f];if(!im(m)){console.warn(`Ignoring invalid packet ${JSON.stringify(m)} in pending sends.`);return}if(!(m.node in r)){console.warn(`Ignoring unknown node name ${m.node} in pending sends.`);return}let v=[Vr],g=h===""?m.node:`${h}|${m.node}`,_=ni(JSON.stringify([g,c.toString(),m.node,Vr,f.toString()]),t.id),k=`${g}:${_}`,S={langgraph_step:c,langgraph_node:m.node,langgraph_triggers:v,langgraph_path:e.slice(0,3),langgraph_checkpoint_ns:k};if(i){let E=r[m.node],I=E.getNode();if(I!==void 0){E.metadata!==void 0&&(S={...S,...E.metadata});let O=[];return{name:m.node,input:m.args,proc:I,subgraphs:E.subgraphs,writes:O,config:qe(Pn(a,{metadata:S,tags:E.tags,store:o.store??a.store}),{runName:m.node,callbacks:l?.getChild(`graph:step:${c}`),configurable:{[Qu]:_,[ds]:w=>zp(M=>O.push(...M),r,w),[ra]:(w,M=!1)=>vl(t,s,{name:m.node,writes:O,triggers:v,path:e},w,M),[Br]:u??d.__pregel_checkpointer,[Lr]:{...d[Lr],[h]:t.id},[hs]:Dp({pendingWrites:n??[],taskId:_,currentTaskInput:m.args,resumeMap:a.configurable?.[el],namespaceHash:Hs(k)}),[tl]:t.channel_values[cf],checkpoint_id:void 0,checkpoint_ns:k}}),triggers:v,retry_policy:E.retryPolicy,cache_key:E.cachePolicy?{key:Hs((E.cachePolicy.keyFunc??JSON.stringify)([m.args])),ns:[of,E.name??"__dynamic__",m.node],ttl:E.cachePolicy.ttl}:void 0,id:_,path:e,writers:E.getWriters()}}}else return{id:_,name:m.node,interrupts:[],path:e}}else if(e[0]==="__pregel_pull"){let f=e[1].toString(),p=r[f];if(p===void 0)return;if(n?.length){let _=h===""?f:`${h}|${f}`,k=ni(JSON.stringify([_,c.toString(),f,am,f]),t.id);if(n.some(S=>S[0]===k&&S[1]!=="__error__"))return}let m=Ry(t.channel_versions);if(m===void 0)return;let v=t.versions_seen[f]??{},g=p.triggers.find(_=>s[_].isAvailable()?(t.channel_versions[_]??m)>(v[_]??m):!1);if(g!==void 0){let _=yU(p,s,i);if(_===void 0)return;let k=h===""?f:`${h}|${f}`,S=ni(JSON.stringify([k,c.toString(),f,am,[g]]),t.id),E=`${k}:${S}`,I={langgraph_step:c,langgraph_node:f,langgraph_triggers:[g],langgraph_path:e,langgraph_checkpoint_ns:E};if(i){let O=p.getNode();if(O!==void 0){p.metadata!==void 0&&(I={...I,...p.metadata});let w=[];return{name:f,input:_,proc:O,subgraphs:p.subgraphs,writes:w,config:qe(Pn(a,{metadata:I,tags:p.tags,store:o.store??a.store}),{runName:f,callbacks:l?.getChild(`graph:step:${c}`),configurable:{[Qu]:S,[ds]:M=>zp($=>{w.push(...$)},r,M),[ra]:(M,$=!1)=>vl(t,s,{name:f,writes:w,triggers:[g],path:e},M,$),[Br]:u??d.__pregel_checkpointer,[Lr]:{...d[Lr],[h]:t.id},[hs]:Dp({pendingWrites:n??[],taskId:S,currentTaskInput:_,resumeMap:a.configurable?.[el],namespaceHash:Hs(E)}),[tl]:t.channel_values[cf],checkpoint_id:void 0,checkpoint_ns:E}}),triggers:[g],retry_policy:p.retryPolicy,cache_key:p.cachePolicy?{key:Hs((p.cachePolicy.keyFunc??JSON.stringify)([_])),ns:[of,p.name??"__dynamic__",f],ttl:p.cachePolicy.ttl}:void 0,id:S,path:e,writers:p.getWriters()}}}else return{id:S,name:f,interrupts:[],path:e}}}}function yU(e,t,n){let r;if(typeof e.channels=="object"&&!Array.isArray(e.channels)){r={};for(let[s,a]of Object.entries(e.channels))if(e.triggers.includes(a))try{r[s]=yi(t,a,!1)}catch(i){if(i.name===$t.unminifiable_name)return;throw i}else if(a in t)try{r[s]=yi(t,a,!1)}catch(i){if(i.name===$t.unminifiable_name)continue;throw i}}else if(Array.isArray(e.channels)){let s=!1;for(let a of e.channels)try{r=yi(t,a,!1),s=!0;break}catch(i){if(i.name===$t.unminifiable_name)continue;throw i}if(!s)return}else throw new Error(`Invalid channels type, expected list or dict, got ${e.channels}`);return n&&e.mapper!==void 0&&(r=e.mapper(r)),r}function vU(e,t){if(typeof e.args!="object"||e.args===null)return e;let n={};for(let[r,s]of Object.entries(e.args)){let a=t[r];(!a||a.lc_graph_name!=="UntrackedValue")&&(n[r]=s)}return new Ko(e.node,n)}function Dp({pendingWrites:e,taskId:t,currentTaskInput:n,resumeMap:r,namespaceHash:s}){let a=e.find(([o,c])=>o==="00000000-0000-0000-0000-000000000000"&&c==="__resume__")?.[2],i={callCounter:0,interruptCounter:-1,resume:(()=>{let o=e.filter(([c,u])=>c===t&&u==="__resume__").flatMap(([c,u,l])=>l);if(r!=null&&s in r){let c=r[s];o.push(c)}return o})(),nullResume:a,subgraphCounter:0,currentTaskInput:n,consumeNullResume:()=>{if(i.nullResume)return delete i.nullResume,e.splice(e.findIndex(([o,c])=>o==="00000000-0000-0000-0000-000000000000"&&c==="__resume__"),1),a}};return i}var pc={blue:{start:"\x1B[34m",end:"\x1B[0m"},green:{start:"\x1B[32m",end:"\x1B[0m"},yellow:{start:"\x1B[33;1m",end:"\x1B[0m"}},mc=(e,t)=>`${e.start}${t}${e.end}`;function*w0(e){for(let{id:t,name:n,input:r,config:s,triggers:a,writes:i}of e)s?.tags?.includes("langsmith:hidden")||(yield{id:t,name:n,input:r,triggers:a,interrupts:i.filter(([o,c])=>o===t&&c==="__interrupt__").map(([,o])=>o)})}function wU(e){return typeof e!="object"||e===null?!1:"$writes"in e&&Array.isArray(e.$writes)}function o1(e){let t={};for(let[n,r]of e){let s=String(n);if(s in t){let a=wU(t[s])?t[s].$writes:[t[s]];a.push(r),t[s]={$writes:a}}else t[s]=r}return t}function*bU(e,t){for(let[{id:n,name:r,config:s},a]of e)s?.tags?.includes("langsmith:hidden")||(yield{id:n,name:r,result:o1(a.filter(([i])=>Array.isArray(t)?t.includes(i):i===t)),interrupts:a.filter(i=>i[0]===Ot).map(i=>i[1])})}function*kU(e,t,n,r,s,a,i,o){function c(d){let h={};return d.callbacks!=null&&(h.callbacks=d.callbacks),d.configurable!=null&&(h.configurable=d.configurable),d.maxConcurrency!=null&&(h.max_concurrency=d.maxConcurrency),d.metadata!=null&&(h.metadata=d.metadata),d.recursionLimit!=null&&(h.recursion_limit=d.recursionLimit),d.runId!=null&&(h.run_id=d.runId),d.runName!=null&&(h.run_name=d.runName),d.tags!=null&&(h.tags=d.tags),h}let u=e.configurable?.checkpoint_ns,l={};for(let d of s){if(!(d.subgraphs?.length?d.subgraphs:[d.proc]).find(YT))continue;let h=`${d.name}:${d.id}`;u&&(h=`${u}|${h}`),l[d.id]={configurable:{thread_id:e.configurable?.thread_id,checkpoint_ns:h}}}yield{config:c(e),values:ga(t,n),metadata:r,next:s.map(d=>d.name),tasks:c1(s,a,l,o),parentConfig:i?c(i):void 0}}function c1(e,t,n,r){return e.map(s=>{let a=t.find(([u,l])=>u===s.id&&l==="__error__")?.[2],i=t.filter(([u,l])=>u===s.id&&l==="__interrupt__").map(([,,u])=>u),o=(()=>{if(a||i.length||!t.length)return;let u=t.findIndex(([l,d])=>l===s.id&&d==="__return__");if(u>=0)return t[u][2];if(typeof r=="string")return t.find(([l,d])=>l===s.id&&d===r)?.[2];if(Array.isArray(r)){let l=t.filter(([d,h])=>d===s.id&&r.includes(h)).map(([,d,h])=>[d,h]);return l.length?o1(l):void 0}})();if(a)return{id:s.id,name:s.name,path:s.path,error:a,interrupts:i,result:o};let c=n?.[s.id];return{id:s.id,name:s.name,path:s.path,interrupts:i,...c!==void 0?{state:c}:{},result:o}})}function SU(e,t,n){console.log([`${mc(pc.blue,`[${e}:checkpoint]`)}`,`\x1B[1m State at the end of step ${e}:\x1B[0m
616
616
  `,JSON.stringify(ga(t,n),null,2)].join(""))}function u1(e,t){let n=t.length;console.log([`${mc(pc.blue,`[${e}:tasks]`)}`,`\x1B[1m Starting step ${e} with ${n} task${n===1?"":"s"}:\x1B[0m
617
617
  `,t.map(r=>`- ${mc(pc.green,String(r.name))} -> ${JSON.stringify(r.input,null,2)}`).join(`
618
618
  `)].join(""))}function EU(e,t,n){let r={};for(let[s,a]of t)n.includes(s)&&(r[s]||(r[s]=[]),r[s].push(a));console.log([`${mc(pc.blue,`[${e}:writes]`)}`,`\x1B[1m Finished step ${e} with writes to ${Object.keys(r).length} channel${Object.keys(r).length!==1?"s":""}:\x1B[0m
619
619
  `,Object.entries(r).map(([s,a])=>`- ${mc(pc.yellow,s)} -> ${a.map(i=>JSON.stringify(i)).join(", ")}`).join(`
620
- `)].join(""))}var b0=class extends gn{_abortController;_innerReader;_disposeSignal;constructor(e,t,n){let r=e.getReader(),s=t??new AbortController,a=n;super({start(i){return o();function o(){return r.read().then(({done:c,value:u})=>{if(c){i.close(),a?.();return}return i.enqueue(u),o()})}}}),this._abortController=s,this._innerReader=r,this._disposeSignal=n}async cancel(e){this._abortController.abort(e),this._innerReader.releaseLock(),this._disposeSignal?.()}get signal(){return this._abortController.signal}},l1=class extends gn{modes;controller;passthroughFn;_closed=!1;get closed(){return this._closed}constructor(e){let t,n=new Promise(r=>{t=r});super({start:r=>{t(r)}}),n.then(r=>{this.controller=r}),this.passthroughFn=e.passthroughFn,this.modes=e.modes}push(e){this.passthroughFn?.(e),this.controller.enqueue(e)}close(){try{this.controller.close()}catch{}finally{this._closed=!0}}error(e){this.controller.error(e)}},xU=class extends Aa{name="StreamToolsHandler";streamFn;runs={};constructor(e){super(),this.streamFn=e}handleToolStart(e,t,n,r,s,a,i,o){if(!a||s&&s.includes("langsmith:hidden"))return;let c=a.langgraph_checkpoint_ns?.split("|")??[],u={ns:c,toolCallId:o,toolName:i??"unknown",input:t};this.runs[n]=u,this.streamFn([c,"tools",{event:"on_tool_start",toolCallId:u.toolCallId,name:u.toolName,input:t}])}handleToolEvent(e,t){let n=this.runs[t];n&&this.streamFn([n.ns,"tools",{event:"on_tool_event",toolCallId:n.toolCallId,name:n.toolName,data:e}])}handleToolEnd(e,t){let n=this.runs[t];delete this.runs[t],n&&this.streamFn([n.ns,"tools",{event:"on_tool_end",toolCallId:n.toolCallId,name:n.toolName,output:e}])}handleToolError(e,t){let n=this.runs[t];delete this.runs[t],n&&this.streamFn([n.ns,"tools",{event:"on_tool_error",toolCallId:n.toolCallId,name:n.toolName,error:e}])}};function TU(e){return JSON.stringify(e,function(t,n){let r=this[t];if(r!=null&&typeof r=="object"&&"toDict"in r&&typeof r.toDict=="function"){let{type:s,data:a}=r.toDict();return{...a,type:s}}return n})}function OU(e){return e instanceof Error?{error:e.name,message:e.message}:{error:"Error",message:JSON.stringify(e)}}function Ny(e){return typeof e!="object"||e==null?!1:"configurable"in e&&typeof e.configurable=="object"&&e.configurable!=null}function Up(e){return!Ny(e)||!e.configurable.thread_id?null:{thread_id:e.configurable.thread_id,checkpoint_ns:e.configurable.checkpoint_ns||"",checkpoint_id:e.configurable.checkpoint_id||null,checkpoint_map:e.configurable.checkpoint_map||null}}function k0(e){if(Ny(e)){let t=Object.fromEntries(Object.entries(e.configurable).filter(([r])=>!r.startsWith("__"))),n={...e,configurable:t};return delete n.callbacks,n}return e}function S0(e){let t={...e,checkpoint:Up(e.config),parent_checkpoint:Up(e.parentConfig),config:k0(e.config),parent_config:k0(e.parentConfig),tasks:e.tasks.map(n=>{if(Ny(n.state)){let r=Up(n.state);if(r!=null){let s={...n,checkpoint:r};return delete s.state,s}}return n})};return delete t.parentConfig,t}function IU(e){let t=new TextEncoder;return new ReadableStream({async start(n){let r=s=>{n.enqueue(t.encode(`event: ${s.event}
620
+ `)].join(""))}var b0=class extends gn{_abortController;_innerReader;constructor(e,t){let n=e.getReader(),r=t??new AbortController;super({start(s){return a();function a(){return n.read().then(({done:i,value:o})=>{if(i){s.close();return}return s.enqueue(o),a()})}}}),this._abortController=r,this._innerReader=n}async cancel(e){this._abortController.abort(e),this._innerReader.releaseLock()}get signal(){return this._abortController.signal}},l1=class extends gn{modes;controller;passthroughFn;_closed=!1;get closed(){return this._closed}constructor(e){let t,n=new Promise(r=>{t=r});super({start:r=>{t(r)}}),n.then(r=>{this.controller=r}),this.passthroughFn=e.passthroughFn,this.modes=e.modes}push(e){this.passthroughFn?.(e),this.controller.enqueue(e)}close(){try{this.controller.close()}catch{}finally{this._closed=!0}}error(e){this.controller.error(e)}},xU=class extends Aa{name="StreamToolsHandler";streamFn;runs={};constructor(e){super(),this.streamFn=e}handleToolStart(e,t,n,r,s,a,i,o){if(!a||s&&s.includes("langsmith:hidden"))return;let c=a.langgraph_checkpoint_ns?.split("|")??[],u={ns:c,toolCallId:o,toolName:i??"unknown",input:t};this.runs[n]=u,this.streamFn([c,"tools",{event:"on_tool_start",toolCallId:u.toolCallId,name:u.toolName,input:t}])}handleToolEvent(e,t){let n=this.runs[t];n&&this.streamFn([n.ns,"tools",{event:"on_tool_event",toolCallId:n.toolCallId,name:n.toolName,data:e}])}handleToolEnd(e,t){let n=this.runs[t];delete this.runs[t],n&&this.streamFn([n.ns,"tools",{event:"on_tool_end",toolCallId:n.toolCallId,name:n.toolName,output:e}])}handleToolError(e,t){let n=this.runs[t];delete this.runs[t],n&&this.streamFn([n.ns,"tools",{event:"on_tool_error",toolCallId:n.toolCallId,name:n.toolName,error:e}])}};function TU(e){return JSON.stringify(e,function(t,n){let r=this[t];if(r!=null&&typeof r=="object"&&"toDict"in r&&typeof r.toDict=="function"){let{type:s,data:a}=r.toDict();return{...a,type:s}}return n})}function OU(e){return e instanceof Error?{error:e.name,message:e.message}:{error:"Error",message:JSON.stringify(e)}}function Ny(e){return typeof e!="object"||e==null?!1:"configurable"in e&&typeof e.configurable=="object"&&e.configurable!=null}function Up(e){return!Ny(e)||!e.configurable.thread_id?null:{thread_id:e.configurable.thread_id,checkpoint_ns:e.configurable.checkpoint_ns||"",checkpoint_id:e.configurable.checkpoint_id||null,checkpoint_map:e.configurable.checkpoint_map||null}}function k0(e){if(Ny(e)){let t=Object.fromEntries(Object.entries(e.configurable).filter(([r])=>!r.startsWith("__"))),n={...e,configurable:t};return delete n.callbacks,n}return e}function S0(e){let t={...e,checkpoint:Up(e.config),parent_checkpoint:Up(e.parentConfig),config:k0(e.config),parent_config:k0(e.parentConfig),tasks:e.tasks.map(n=>{if(Ny(n.state)){let r=Up(n.state);if(r!=null){let s={...n,checkpoint:r};return delete s.state,s}}return n})};return delete t.parentConfig,t}function IU(e){let t=new TextEncoder;return new ReadableStream({async start(n){let r=s=>{n.enqueue(t.encode(`event: ${s.event}
621
621
  data: ${TU(s.data)}
622
622
 
623
- `))};try{for await(let s of e){let[a,i,o]=s,c=o;if(i==="debug"){let u=o;u.type==="checkpoint"&&(c={...u,payload:S0(u.payload)})}i==="checkpoints"&&(c=S0(o)),r({event:a?.length?`${i}|${a.join("|")}`:i,data:c})}}catch(s){r({event:"error",data:OU(s)})}n.close()}})}var Lu=Symbol.for("INPUT_DONE"),Fp=Symbol.for("INPUT_RESUMING"),$U=25;function CU(...e){return new l1({passthroughFn:t=>{for(let n of e)n.modes.has(t[1])&&n.push(t)},modes:new Set(e.flatMap(t=>Array.from(t.modes)))})}var AU=class extends CD{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 n=this.queue.then(()=>this.cache[e](...t));return this.queue=n.then(()=>{},()=>{}),n}},RU=class d1{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=[];isNested;_checkpointerChainedPromise=Promise.resolve();store;cache;manager;interruptAfter;interruptBefore;toInterrupt=[];debug=!1;triggerToNodes;get isResuming(){let t=!1;if("__start__"in this.checkpoint.channel_versions)t=!0;else for(let o in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,o)){t=!0;break}let n=this.config.configurable?.__pregel_resuming!==void 0&&this.config.configurable?.__pregel_resuming,r=this.input===null||this.input===void 0,s=Ut(this.input)&&this.input.resume!=null,a=this.input===Fp,i=!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&&(n||r||s||a||i)}constructor(t){this.input=t.input,this.checkpointer=t.checkpointer,this.checkpointer!==void 0?this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer):this.checkpointerGetNextVersion=fU,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 AU(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:n,stream:r}=t;r!==void 0&&n.configurable?.__pregel_stream!==void 0&&(r=CU(r,n.configurable[f_]));let s=n.configurable?!("checkpoint_id"in n.configurable):!0,a=n.configurable?.[hs];n.configurable&&a&&(a.subgraphCounter>0&&(n=Yn(n,{[Zr]:[n.configurable[Zr],a.subgraphCounter.toString()].join("|")})),a.subgraphCounter+=1);let i=ra in(n.configurable??{});!i&&n.configurable?.checkpoint_ns!==void 0&&n.configurable?.checkpoint_ns!==""&&(n=Yn(n,{checkpoint_ns:"",checkpoint_id:void 0}));let o=n;n.configurable?.checkpoint_map!==void 0&&n.configurable?.checkpoint_map?.[n.configurable?.checkpoint_ns]&&(o=Yn(n,{checkpoint_id:n.configurable[Lr][n.configurable?.checkpoint_ns]}));let c=n.configurable?.checkpoint_ns?.split("|")??[],u=await t.checkpointer?.getTuple(o)??{config:n,checkpoint:VT(),metadata:{source:"input",step:-2,parents:{}},pendingWrites:[]};o={...n,...u.config,configurable:{checkpoint_ns:"",...n.configurable,...u.config.configurable}};let l=u.parentConfig,d=Yl(u.checkpoint),h={...u.metadata},f=u.pendingWrites??[],p=Ql(t.channelSpecs,d),m=(h.step??0)+1,v=m+(n.recursionLimit??$U)+1,g={...d.channel_versions},_=t.store?new $D(t.store):void 0;return _&&await _.start(),new d1({input:t.input,config:n,checkpointer:t.checkpointer,checkpoint:d,checkpointMetadata:h,checkpointConfig:o,prevCheckpointConfig:l,checkpointNamespace:c,channels:p,isNested:i,manager:t.manager,skipDoneTasks:s,step:m,stop:v,checkpointPreviousVersions:g,checkpointPendingWrites:f,outputKeys:t.outputKeys??[],streamKeys:t.streamKeys??[],nodes:t.nodes,stream:r,store:_,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.checkpointerPromises.push(this._checkpointerChainedPromise)}putWrites(t,n){let r=n;if(r.length===0)return;r.every(([c])=>c in xD)&&(r=Array.from(new Map(r.map(c=>[c[0],c])).values()));let s=!1;for(let c in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,c)&&this.channels[c].lc_graph_name==="UntrackedValue"){s=!0;break}let a=r;s&&(a=r.filter(([c])=>{let u=this.channels[c];return!u||u.lc_graph_name!=="UntrackedValue"}).map(([c,u])=>c==="__pregel_tasks"&&pn(u)?[c,vU(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 i=Yn(this.checkpointConfig,{[Zr]:this.config.configurable?.checkpoint_ns??"",[sm]:this.checkpoint.id});if(this.durability!=="exit"&&this.checkpointer!=null&&this.checkpointerPromises.push(this.checkpointer.putWrites(i,a,t)),this.tasks&&this._outputWrites(t,r),!n.length||!this.cache||!this.tasks)return;let o=this.tasks[t];o==null||o.cache_key==null||n[0][0]==="__error__"||n[0][0]==="__interrupt__"||this.cache.set([{key:[o.cache_key.ns,o.cache_key.key],value:o.writes,ttl:o.cache_key.ttl}])}_outputWrites(t,n,r=!1){let s=this.tasks[t];if(s!==void 0){if(s.config!==void 0&&(s.config.tags??[]).includes("langsmith:hidden"))return;if(n.length>0)if(n[0][0]==="__interrupt__"){if(s.path?.[0]==="__pregel_push"&&s.path?.[s.path.length-1]===!0)return;let a=n.filter(i=>i[0]===Ot).flatMap(i=>i[1]);this._emit([["updates",{[Ot]:a}],["values",{[Ot]:a}]])}else n[0][0]!=="__error__"&&this._emit(xo(ts(oU(this.outputKeys,[[s,n]],r),"updates")));r||this._emit(xo(ts(bU([[s,n]],this.streamKeys),"tasks")))}}async _matchCachedWrites(){if(!this.cache)return[];let t=[],n=([i,o])=>`ns:${i.join(",")}|key:${o}`,r=[],s={};for(let i of Object.values(this.tasks))i.cache_key!=null&&!i.writes.length&&(r.push([i.cache_key.ns,i.cache_key.key]),s[n([i.cache_key.ns,i.cache_key.key])]=i);if(r.length===0)return[];let a=await this.cache.get(r);for(let{key:i,value:o}of a){let c=s[n(i)];c!=null&&(c.writes.push(...o),t.push({task:c,result:o}))}return t}async tick(t){this.store&&!this.store.isRunning&&await this.store?.start();let{inputKeys:n=[]}=t;if(this.status!=="pending")throw new Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);if(![Lu,Fp].includes(this.input))await this._first(n);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new pi;if(Object.values(this.tasks).every(s=>s.writes.length>0)){let s=Object.values(this.tasks).flatMap(i=>i.writes);this.updatedChannels=xn(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes);let a=await os(ts(Lp(this.outputKeys,s,this.channels),"values"));if(this._emit(a),this.checkpointPendingWrites=[],await this._putCheckpoint({source:"loop"}),ju(this.checkpoint,this.interruptAfter,Object.values(this.tasks)))throw this.status="interrupt_after",new pi;this.config.configurable?.__pregel_resuming!==void 0&&delete this.config.configurable?.[Cl]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;if(this.tasks=ci(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 os(ts(kU(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[s,a,i]of this.checkpointPendingWrites){if(a==="__error__"||a==="__interrupt__"||a==="__resume__")continue;let o=Object.values(this.tasks).find(c=>c.id===s);o&&o.writes.push([a,i])}for(let s of Object.values(this.tasks))s.writes.length>0&&this._outputWrites(s.id,s.writes,!0)}if(Object.values(this.tasks).every(s=>s.writes.length>0))return this.tick({inputKeys:n});if(ju(this.checkpoint,this.interruptBefore,Object.values(this.tasks)))throw this.status="interrupt_before",new pi;let r=await os(ts(w0(Object.values(this.tasks)),"tasks"));return this._emit(r),!0}async finishAndHandleError(t){this.durability==="exit"&&(!this.isNested||typeof t<"u"||this.checkpointNamespace.every(r=>!r.includes(":")))&&(this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let n=this._suppressInterrupt(t);return(n||t===void 0)&&(this.output=ga(this.channels,this.outputKeys)),n&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(r=>r.writes.length>0)&&(this.updatedChannels=xn(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emit(xo(ts(Lp(this.outputKeys,Object.values(this.tasks).flatMap(r=>r.writes),this.channels),"values")))),ti(t)&&!t.interrupts.length&&this._emit([["updates",{[Ot]:[]}],["values",{[Ot]:[]}]])),n}async acceptPush(t,n,r){if(this.interruptAfter?.length>0&&ju(this.checkpoint,this.interruptAfter,[t])){this.toInterrupt.push(t);return}let s=Og([Vr,t.path??[],n,t.id,r],this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,t.config??{},!0,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(!s)return;if(this.interruptBefore?.length>0&&ju(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}this._emit(xo(ts(w0([s]),"tasks"))),this.debug&&u1(this.step,[s]),this.tasks[s.id]=s,this.skipDoneTasks&&this._matchWrites({[s.id]:s});let a=await this._matchCachedWrites();for(let{task:i}of a)this._outputWrites(i.id,i.writes,!0);return s}_suppressInterrupt(t){return ti(t)&&!this.isNested}async _first(t){let{configurable:n}=this.config,r=n?.[hs];if(r&&r.nullResume!==void 0&&this.putWrites(yr,[[vs,r.nullResume]]),Ut(this.input)){let i=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume=="object"&&Object.keys(this.input.resume).every(a1)&&(this.config.configurable??={},this.config.configurable[el]=this.input.resume),i&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let o={};for(let[c,u,l]of iU(this.input,this.checkpointPendingWrites))o[c]??=[],o[c].push([u,l]);if(Object.keys(o).length===0)throw new Iv("Received empty Command input");for(let[c,u]of Object.entries(o))this.putWrites(c,u)}let s=(this.checkpointPendingWrites??[]).filter(i=>i[0]===yr).map(i=>i.slice(1));s.length>0&&xn(this.checkpoint,this.channels,[{name:is,writes:s,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let a=Ut(this.input)&&s.length>0;if(this.isResuming||a){for(let o in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,o)&&this.checkpoint.channel_versions[o]!==void 0){let c=this.checkpoint.channel_versions[o];this.checkpoint.versions_seen[Ot]={...this.checkpoint.versions_seen[Ot],[o]:c}}let i=await os(ts(Lp(this.outputKeys,!0,this.channels),"values"));this._emit(i)}if(this.isResuming)this.input=Fp;else if(a)await this._putCheckpoint({source:"input"}),this.input=Lu;else{let i=await os(i1(t,this.input));if(i.length>0){let o=ci(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});this.updatedChannels=xn(this.checkpoint,this.channels,Object.values(o).concat([{name:is,writes:i,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes),await this._putCheckpoint({source:"input"}),this.input=Lu}else if("__pregel_resuming"in(this.config.configurable??{}))this.input=Lu;else throw new Iv(`Received no input writes for ${JSON.stringify(t,null,2)}`)}this.isNested||(this.config=Yn(this.config,{[Cl]:this.isResuming}))}_emit(t){for(let[n,r]of t)if(this.stream.modes.has(n)&&this.stream.push([this.checkpointNamespace,n,r]),(n==="checkpoints"||n==="tasks")&&this.stream.modes.has("debug")){let s=n==="checkpoints"?this.step-1:this.step,a=new Date().toISOString(),i=n==="checkpoints"?"checkpoint":typeof r=="object"&&r!=null&&"result"in r?"task_result":"task";this.stream.push([this.checkpointNamespace,"debug",{step:s,type:i,timestamp:a,payload:r}])}}_putCheckpoint(t){let n=this.checkpointMetadata===t,r=this.checkpointer!=null&&(this.durability!=="exit"||n),s=a=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=Yn(this.checkpointConfig,{[Zr]:this.config.configurable?.checkpoint_ns??""});let i={...this.checkpoint.channel_versions},o=yl(this.checkpointPreviousVersions,i);this.checkpointPreviousVersions=i,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:Yl(a),metadata:{...this.checkpointMetadata},newVersions:o}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}};n||(this.checkpointMetadata={...t,step:this.step,parents:this.config.configurable?.checkpoint_map??{}}),this.checkpoint=Ks(this.checkpoint,r?this.channels:void 0,this.step,n?{id:this.checkpoint.id}:void 0),r&&s(this.checkpoint),n||(this.step+=1)}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let t=Yn(this.checkpointConfig,{[Zr]:this.config.configurable?.checkpoint_ns??"",[sm]:this.checkpoint.id}),n={};for(let[r,s,a]of this.checkpointPendingWrites)n[r]??=[],n[r].push([s,a]);for(let[r,s]of Object.entries(n))this.checkpointerPromises.push(this.checkpointer.putWrites(t,s,r))}_matchWrites(t){for(let[n,r,s]of this.checkpointPendingWrites){if(r==="__error__"||r==="__interrupt__"||r==="__resume__")continue;let a=Object.values(t).find(i=>i.id===n);a&&a.writes.push([r,s])}for(let n of Object.values(t))n.writes.length>0&&this._outputWrites(n.id,n.writes,!0)}};function NU(e){return Mt(e?.message)}var PU=class extends Aa{name="StreamMessagesHandler";streamFn;metadatas={};seen={};emittedChatModelRunIds={};stableMessageIdMap={};lc_prefer_streaming=!0;constructor(e){super(),this.streamFn=e}_emit(e,t,n,r=!1){if(r&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let s=t.id;n!=null&&(O_(t)?s??=`run-${n}-tool-${t.tool_call_id}`:((s==null||s===`run-${n}`)&&(s=this.stableMessageIdMap[n]??s??`run-${n}`),this.stableMessageIdMap[n]??=s)),s!==t.id&&(t.id=s,t.lc_kwargs.id=s),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],"messages",[t,e[1]]])}handleChatModelStart(e,t,n,r,s,a,i,o){i&&(!a||!a.includes("langsmith:nostream")&&!a.includes("nostream"))&&(this.metadatas[n]=[i.langgraph_checkpoint_ns.split("|"),{tags:a,name:o,...i}])}handleLLMNewToken(e,t,n,r,s,a){let i=a?.chunk;this.emittedChatModelRunIds[n]=!0,this.metadatas[n]!==void 0&&(NU(i)?this._emit(this.metadatas[n],i.message,n):this._emit(this.metadatas[n],new mn({content:e}),n))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let n=e.generations?.[0]?.[0];Mt(n?.message)&&this._emit(this.metadatas[t],n?.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,n,r,s,a,i,o){if(a!==void 0&&o===a.langgraph_node&&(s===void 0||!s.includes("langsmith:hidden"))&&(this.metadatas[n]=[a.langgraph_checkpoint_ns.split("|"),{tags:s,name:o,...a}],typeof t=="object")){for(let c of Object.values(t))if((Mt(c)||Qo(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let u of c)(Mt(u)||Qo(u))&&u.id!==void 0&&(this.seen[u.id]=u)}}handleChainEnd(e,t){let n=this.metadatas[t];if(delete this.metadatas[t],n!==void 0){if(Mt(e))this._emit(n,e,t,!0);else if(Array.isArray(e))for(let r of e)Mt(r)&&this._emit(n,r,t,!0);else if(e!=null&&typeof e=="object"){for(let r of Object.values(e))if(Mt(r))this._emit(n,r,t,!0);else if(Array.isArray(r))for(let s of r)Mt(s)&&this._emit(n,s,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}},MU=[400,401,402,403,404,405,406,407,409],jU=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&&MU.includes(+t)||e?.error?.code==="insufficient_quota")};async function h1(e,t,n,r){let s=e.retry_policy??t,a=s!==void 0?s.initialInterval??500:0,i=0,o,c,{config:u}=e;for(n&&(u=Yn(u,n)),u={...u,signal:r};!r?.aborted;){e.writes.splice(0,e.writes.length),o=void 0;try{c=await e.proc.invoke(e.input,u);break}catch(l){if(o=l,o.pregelTaskId=e.id,KI(o)){let f=u?.configurable?.checkpoint_ns,p=o.command;if(p.graph===f){for(let m of e.writers)await m.invoke(p,u);o=void 0;break}else if(p.graph===vr.PARENT){let m=LD(f);o.command=new vr({...o.command,graph:m})}}if(rl(o)||s===void 0||(i+=1,i>=(s.maxAttempts??3))||!(s.retryOn??jU)(o))break;a=Math.min(s.maxInterval??128e3,a*(s.backoffFactor??2));let d=s.jitter?Math.floor(a+Math.random()*1e3):a;await new Promise(f=>setTimeout(f,d));let h=o.name??o.constructor.unminifiable_name??o.constructor.name;(s?.logWarning??!0)&&console.log(`Retrying task "${String(e.name)}" after ${a.toFixed(2)}ms (attempt ${i}) after ${h}: ${o}`),u=Yn(u,{[Cl]:!0})}}return{task:e,result:c,error:o,signalAborted:r?.aborted}}var Ig=Symbol.for("promiseAdded");function LU(){let e={next:()=>{},wait:Promise.resolve(Ig)};function t(n){e.next=()=>{e.wait=new Promise(t),n(Ig)}}return e.wait=new Promise(t),e}var zU=class{nodeFinished;loop;constructor({loop:e,nodeFinished:t}){this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:n,onStepWrite:r,maxConcurrency:s}=e,a=new Set,i,o=new AbortController,c=o.signal,u=t?AbortSignal.timeout(t):void 0,l=Object.values(this.loop.tasks).filter(p=>p.writes.length===0),{signals:d,disposeCombinedSignal:h}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:u,signal:e.signal}),f=this._executeTasksWithRetry(l,{signals:d,retryPolicy:n,maxConcurrency:s});for await(let{task:p,error:m,signalAborted:v}of f)this._commit(p,m),ti(m)||rl(m)&&!ti(i)?i=m:m&&(a.size===0||!v)&&(o.abort(),a.add(m));if(h?.(),r?.(this.loop.step,Object.values(this.loop.tasks).map(p=>p.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(ti(i)||rl(i)&&this.loop.isNested)throw i}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:n}){let r=this.loop.config.configurable?.__pregel_abort_signals??{},s=r.externalAbortSignal??n,a=t??r.timeoutAbortSignal,{signal:i,dispose:o}=rd(s,a,e),c={externalAbortSignal:s,timeoutAbortSignal:a,composedAbortSignal:i};return this.loop.config=Yn(this.loop.config,{[VI]:c}),{signals:c,disposeCombinedSignal:o}}async*_executeTasksWithRetry(e,t){let{retryPolicy:n,maxConcurrency:r,signals:s}=t??{},a=LU(),i={},o={executingTasksMap:i,barrier:a,retryPolicy:n,scheduleTask:async(h,f,p)=>this.loop.acceptPush(h,f,p)};if(s?.composedAbortSignal?.aborted)throw new Error("Abort");let c=0,u,l=rd(s?.externalAbortSignal,s?.timeoutAbortSignal),d=l.signal?new Promise((h,f)=>{u=()=>f(new Error("Abort")),l.signal?.addEventListener("abort",u,{once:!0})}):void 0;for(;(c===0||Object.keys(i).length>0)&&e.length;){for(;Object.values(i).length<(r??e.length)&&c<e.length;c+=1){let f=e[c];i[f.id]=h1(f,n,{[h_]:f1?.bind(o,this,f)},s?.composedAbortSignal).catch(p=>({task:f,error:p,signalAborted:s?.composedAbortSignal?.aborted}))}let h=await Promise.race([...Object.values(i),...d?[d]:[],a.wait]);h!==Ig&&(yield h,u!=null&&(l.signal?.removeEventListener("abort",u),l.dispose?.()),delete i[h.task.id])}}_commit(e,t){if(t!==void 0)if(ti(t)){if(t.interrupts.length){let n=t.interrupts.map(s=>[Ot,s]),r=e.writes.filter(s=>s[0]===vs);r.length&&n.push(...r),this.loop.putWrites(e.id,n)}}else rl(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):this.loop.putWrites(e.id,[[wh,{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([p_,null]),this.loop.putWrites(e.id,e.writes)}};async function f1(e,t,n,r,s,a={}){let i=t.config?.configurable?.[hs];if(!i)throw new Error(`BUG: No scratchpad found on task ${t.name}__${t.id}`);let o=i.callCounter;i.callCounter+=1;let c=new lU({func:n,name:r,input:s,cache:a.cache,retry:a.retry,callbacks:a.callbacks}),u=await this.scheduleTask(t,o,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===bh),h=u.writes.filter(([f])=>f===wh);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(h.length>0){if(h.length===1){let f=h[0][1],p=f instanceof Error?f:new Error(String(f));return Promise.reject(p)}throw new Error(`BUG: multiple errors found for task ${u.name}__${u.id}`)}return}else{let d=h1(u,a.retry,{[h_]:f1.bind(this,e,u)});return this.executingTasksMap[u.id]=d,this.barrier.next(),d.then(({result:h,error:f})=>f?Promise.reject(f):h)}}var Rr=class extends Error{constructor(e){super(e),this.name="GraphValidationError"}};function DU({nodes:e,channels:t,inputChannels:n,outputChannels:r,streamChannels:s,interruptAfterNodes:a,interruptBeforeNodes:i}){if(!t)throw new Rr("Channels not provided");let o=new Set,c=new Set;for(let[u,l]of Object.entries(e)){if(u==="__interrupt__")throw new Rr(`"Node name ${Ot} is reserved"`);if(l.constructor===fc)l.triggers.forEach(d=>o.add(d));else throw new Rr(`Invalid node type ${typeof l}, expected PregelNode`)}for(let u of o)if(!(u in t))throw new Rr(`Subscribed channel '${String(u)}' not in channels`);if(Array.isArray(n)){if(n.every(u=>!o.has(u)))throw new Rr(`None of the input channels ${n} are subscribed to by any node`)}else if(!o.has(n))throw new Rr(`Input channel ${String(n)} is not subscribed to by any node`);Array.isArray(r)?r.forEach(u=>c.add(u)):c.add(r),s&&!Array.isArray(s)?c.add(s):Array.isArray(s)&&s.forEach(u=>c.add(u));for(let u of c)if(!(u in t))throw new Rr(`Output channel '${String(u)}' not in channels`);if(a&&a!=="*"){for(let u of a)if(!(u in e))throw new Rr(`Node ${String(u)} not in nodes`)}if(i&&i!=="*"){for(let u of i)if(!(u in e))throw new Rr(`Node ${String(u)} not in nodes`)}}function E0(e,t){if(Array.isArray(e)){for(let n of e)if(!(n in t))throw new Error(`Key ${String(n)} not found in channels`)}else if(!(e in t))throw new Error(`Key ${String(e)} not found in channels`)}var UU=class p1 extends Ls{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 n=new p1({unique:this.unique,accumulate:this.accumulate});return typeof t<"u"&&(n.seen=new Set(t[0]),n.values=t[1]),n}update(t){let n=!1;this.accumulate||(n=this.values.length>0,this.values=[]);let r=t.flat();if(r.length>0)if(this.unique)for(let s of r)this.seen.has(s)||(n=!0,this.seen.add(s),this.values.push(s));else n=!0,this.values.push(...r);return n}get(){if(this.values.length===0)throw new $t;return this.values}checkpoint(){return[[...this.seen],this.values]}isAvailable(){return this.values.length!==0}};function FU(e){let t=Lt.getRunnableConfig();if(!t)throw new Error("Called interrupt() outside the context of a graph.");let n=t.configurable;if(!n)throw new Error("No configurable found in config");if(!n.__pregel_checkpointer)throw new nl("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let r=n[hs];r.interruptCounter+=1;let s=r.interruptCounter;if(r.resume.length>0&&s<r.resume.length)return n[ds]?.([[vs,r.resume]]),r.resume[s];if(r.nullResume!==void 0){if(r.resume.length!==s)throw new Error(`Resume length mismatch: ${r.resume.length} !== ${s}`);let i=r.consumeNullResume();return r.resume.push(i),n[ds]?.([[vs,r.resume]]),i}let a=n[Zr]?.split("|");throw new pi([{id:a?Hs(a.join("|")):void 0,value:e}])}var BU=class{static subscribeTo(e,t){let{key:n,tags:r}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&n!==void 0)throw new Error("Can't specify a key when subscribing to multiple channels");let s;return typeof e=="string"?n?s={[n]:e}:s=[e]:s=Object.fromEntries(e.map(a=>[a,a])),new fc({channels:s,triggers:Array.isArray(e)?e:[e],tags:r})}static writeTo(e,t){let n=[];for(let r of e)n.push({channel:r,value:ca,skipNone:!1});for(let[r,s]of Object.entries(t??{}))Me.isRunnable(s)||typeof s=="function"?n.push({channel:r,value:ca,skipNone:!0,mapper:jt(s)}):n.push({channel:r,value:s,skipNone:!1});return new Xt(n)}},ZU=class extends Me{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)}},VU=class extends ZU{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 '${vi}' is reserved and cannot be used in the graph.`);this.channels[vi]=new UU({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=Pn(this.config,e);return new this.constructor({...this,config:t})}validate(){DU({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 n of t.triggers)this.triggerToNodes[n]??=[],this.triggerToNodes[n].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[n,r]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(n))continue;let s=r.subgraphs?.length?r.subgraphs:[r.bound];for(let a of s){let i=YT(a);if(i!==void 0){if(n===e){yield[n,i];return}if(e===void 0&&(yield[n,i]),t){let o=e;e!==void 0&&(o=e.slice(n.length+1));for(let[c,u]of i.getSubgraphs(o,t))yield[`${n}|${c}`,u]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:n,applyPendingWrites:r=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let s=Ql(this.channels,t.checkpoint);if(t.pendingWrites?.length){let d=t.pendingWrites.filter(([h,f])=>h===yr).map(([h,f,p])=>[String(f),p]);d.length>0&&xn(t.checkpoint,s,[{name:is,writes:d,triggers:[]}],void 0,this.triggerToNodes)}let a=Object.values(ci(t.checkpoint,t.pendingWrites,this.nodes,s,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),i=await os(this.getSubgraphsAsync()),o=t.config.configurable?.checkpoint_ns??"",c={};for(let d of a){let h=i.find(([p])=>p===d.name);if(!h)continue;let f=`${String(d.name)}:${d.id}`;if(o&&(f=`${o}|${f}`),n===void 0){let p={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:f}};c[d.id]=p}else{let p={configurable:{[Br]:n,thread_id:t.config.configurable?.thread_id,checkpoint_ns:f}},m=h[1];c[d.id]=await m.getState(p,{subgraphs:!0})}}if(r&&t.pendingWrites?.length){let d=Object.fromEntries(a.map(f=>[f.id,f]));for(let[f,p,m]of t.pendingWrites)["__error__","__interrupt__",sl].includes(p)||f in d&&d[f].writes.push([String(p),m]);let h=a.filter(f=>f.writes.length>0);h.length>0&&xn(t.checkpoint,s,h,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:ga(s,this.streamChannelsAsIs),next:l,tasks:c1(a,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:u,config:Bs(t.config,t.metadata),createdAt:t.checkpoint.ts,parentConfig:t.parentConfig}}async getState(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new nl("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let r=e.configurable?.checkpoint_ns??"";if(r!==""&&e.configurable?.__pregel_checkpointer===void 0){let i=Pp(r);for await(let[o,c]of this.getSubgraphsAsync(i,!0))if(o===i)return await c.getState(Ua(e,{[Br]:n}),{subgraphs:t?.subgraphs})}let s=Pn(this.config,e),a=await n.getTuple(e);return await this._prepareStateSnapshot({config:s,saved:a,subgraphCheckpointer:t?.subgraphs?n:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new nl("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let r=e.configurable?.checkpoint_ns??"";if(r!==""&&e.configurable?.__pregel_checkpointer===void 0){let a=Pp(r);for await(let[i,o]of this.getSubgraphsAsync(a,!0))if(i===a){yield*o.getStateHistory(Ua(e,{[Br]:n}),t);return}}let s=Pn(this.config,e,{configurable:{checkpoint_ns:r}});for await(let a of n.list(s,t))yield this._prepareStateSnapshot({config:a.config,saved:a})}async bulkUpdateState(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new nl("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});if(t.length===0)throw new Error("No supersteps provided");if(t.some(i=>i.updates.length===0))throw new Error("No updates provided");let r=e.configurable?.checkpoint_ns??"";if(r!==""&&e.configurable?.__pregel_checkpointer===void 0){let i=Pp(r);for await(let[,o]of this.getSubgraphsAsync(i,!0))return await o.bulkUpdateState(Ua(e,{[Br]:n}),t);throw new Error(`Subgraph "${i}" not found`)}let s=async(i,o)=>{let c=this.config?Pn(this.config,i):i,u=await n.getTuple(c),l=u!==void 0?Yl(u.checkpoint):VT(),d={...u?.checkpoint.channel_versions},h=u?.metadata?.step??-1,f=Ua(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),p=c.metadata??{};u?.config.configurable&&(f=Ua(c,u.config.configurable),p={...u.metadata,...p});let{values:m,asNode:v}=o[0];if(m==null&&v===void 0){if(o.length>1)throw new Ye("Cannot create empty checkpoint with multiple updates");return Bs(await n.put(f,Ks(l,void 0,h),{source:"update",step:h+1,parents:u?.metadata?.parents??{}},{}),u?u.metadata:void 0)}let g=Ql(this.channels,l);if(m===null&&v==="__end__"){if(o.length>1)throw new Ye("Cannot apply multiple updates when clearing state");if(u){let O=ci(l,u.pendingWrites||[],this.nodes,g,u.config,!0,{step:(u.metadata?.step??-1)+1,checkpointer:n,store:this.store}),w=(u.pendingWrites||[]).filter(M=>M[0]===yr).map(M=>M.slice(1));w.length>0&&xn(l,g,[{name:is,writes:w,triggers:[]}],n.getNextVersion.bind(n),this.triggerToNodes);for(let[M,$,P]of u.pendingWrites||[])["__error__","__interrupt__",sl].includes($)||M in O&&O[M].writes.push([$,P]);xn(l,g,Object.values(O),n.getNextVersion.bind(n),this.triggerToNodes)}return Bs(await n.put(f,Ks(l,g,h),{...p,source:"update",step:h+1,parents:u?.metadata?.parents??{}},yl(d,l.channel_versions)),u?u.metadata:void 0)}if(v==="__copy__"){if(o.length>1)throw new Ye("Cannot copy checkpoint with multiple updates");if(u==null)throw new Ye("Cannot copy a non-existent checkpoint");let O=$=>!Array.isArray($)||$.length===0?!1:$.every(P=>Array.isArray(P)&&P.length===2),w=Ks(l,void 0,h),M=await n.put(u.parentConfig??Ua(u.config,{checkpoint_id:void 0}),w,{source:"fork",step:h+1,parents:u.metadata?.parents??{}},{});if(O(m)){let $=ci(w,u.pendingWrites,this.nodes,g,M,!1,{step:h+2}),P=Object.values($).reduce((Le,{name:Z,id:z})=>(Le[Z]??=[],Le[Z].push({id:z}),Le),{}),pe=m.reduce((Le,Z)=>{let[z,U]=Z;Le[U]??=[];let ee=Le[U].length,oe=P[U]?.[ee]?.id;return Le[U].push({values:z,asNode:U,taskId:oe}),Le},{});return s(Bs(M,u.metadata),Object.values(pe).flat())}return Bs(M,u.metadata)}if(v==="__input__"){if(o.length>1)throw new Ye("Cannot apply multiple updates when updating as input");let O=await os(i1(this.inputChannels,m));if(O.length===0)throw new Ye(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);xn(l,g,[{name:is,writes:O,triggers:[]}],n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let w=u?.metadata?.step!=null?u.metadata.step+1:-1,M=await n.put(f,Ks(l,g,w),{source:"input",step:w,parents:u?.metadata?.parents??{}},yl(d,l.channel_versions));return await n.putWrites(M,O,ni(is,l.id)),Bs(M,u?u.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&u?.pendingWrites!==void 0&&u.pendingWrites.length>0){let O=ci(l,u.pendingWrites,this.nodes,g,u.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(u.metadata?.step??-1)+1}),w=(u.pendingWrites??[]).filter($=>$[0]===yr).map($=>$.slice(1));w.length>0&&xn(u.checkpoint,g,[{name:is,writes:w,triggers:[]}],void 0,this.triggerToNodes);for(let[$,P,pe]of u.pendingWrites)["__error__","__interrupt__",sl].includes(P)||O[$]===void 0||O[$].writes.push([P,pe]);let M=Object.values(O).filter($=>$.writes.length>0);M.length>0&&xn(l,g,M,void 0,this.triggerToNodes)}let _=Object.values(l.versions_seen).map(O=>Object.values(O)).flat().find(O=>!!O),k=[];if(o.length===1){let{values:O,asNode:w,taskId:M}=o[0];if(w===void 0&&Object.keys(this.nodes).length===1)[w]=Object.keys(this.nodes);else if(w===void 0&&_===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(w=this.inputChannels);else if(w===void 0){let $=Object.entries(l.versions_seen).map(([P,pe])=>Object.values(pe).map(Le=>[Le,P])).flat().filter(([P,pe])=>pe!==Ot).sort(([P],[pe])=>qT(P,pe));$&&($.length===1?w=$[0][1]:$[$.length-1][0]!==$[$.length-2][0]&&(w=$[$.length-1][1]))}if(w===void 0)throw new Ye('Ambiguous update, specify "asNode"');k.push({values:O,asNode:w,taskId:M})}else for(let{asNode:O,values:w,taskId:M}of o){if(O==null)throw new Ye('"asNode" is required when applying multiple updates');k.push({values:w,asNode:O,taskId:M})}let S=[];for(let{asNode:O,values:w,taskId:M}of k){if(this.nodes[O]===void 0)throw new Ye(`Node "${O.toString()}" does not exist`);let $=this.nodes[O].getWriters();if(!$.length)throw new Ye(`No writers found for node "${O.toString()}"`);S.push({name:O,input:w,proc:$.length>1?Ts.from($,{omitSequenceTags:!0}):$[0],writes:[],triggers:[Ot],id:M??ni("__interrupt__",l.id),writers:[]})}for(let O of S)await O.proc.invoke(O.input,qe({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[ds]:w=>O.writes.push(...w),[ra]:(w,M=!1)=>vl(l,g,O,w,M)}}));for(let O of S){let w=O.writes.filter(M=>M[0]!==Vr);u!==void 0&&w.length>0&&await n.putWrites(f,w,O.id)}xn(l,g,S,n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let E=yl(d,l.channel_versions),I=await n.put(f,Ks(l,g,h+1),{source:"update",step:h+1,parents:u?.metadata?.parents??{}},E);for(let O of S){let w=O.writes.filter(M=>M[0]===Vr);w.length>0&&await n.putWrites(I,w,O.id)}return Bs(I,u?u.metadata:void 0)},a=e;for(let{updates:i}of t)a=await s(a,i);return a}async updateState(e,t,n){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:n}]}])}_defaults(e){let{debug:t,streamMode:n,inputKeys:r,outputKeys:s,interruptAfter:a,interruptBefore:i,...o}=e,c=!0,u=t!==void 0?t:this.debug,l=s;l===void 0?l=this.streamChannelsAsIs:E0(l,this.channels);let d=r;d===void 0?d=this.inputChannels:E0(d,this.channels);let h=i??this.interruptBefore??[],f=a??this.interruptAfter??[],p;n!==void 0?(p=Array.isArray(n)?n:[n],c=typeof n=="string"):(e.configurable?.__pregel_task_id!==void 0?p=["values"]:p=this.streamMode,c=!0);let m;if(this.checkpointer===!1)m=void 0;else if(e!==void 0&&e.configurable?.__pregel_checkpointer!==void 0)m=e.configurable[Br];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");m=this.checkpointer}let v=e.store??this.store,g=e.cache??this.cache;if(e.durability!=null&&e.checkpointDuring!=null)throw new Error("Cannot use both `durability` and `checkpointDuring` at the same time.");let _=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),k=e.durability??_??e?.configurable?.__pregel_durability??"async";return[u,p,d,l,o,h,f,m,v,c,g,k]}async stream(e,t){let n=new AbortController,{signal:r,dispose:s}=rd(t?.signal,n.signal),a={recursionLimit:this.config?.recursionLimit,...t,signal:r},i=await super.stream(e,a);return new b0(t?.encoding==="text/event-stream"?IU(i):i,n,s)}streamEvents(e,t,n){let r=new AbortController,{signal:s,dispose:a}=rd(t?.signal,r.signal),i={recursionLimit:this.config?.recursionLimit,...t,callbacks:uU(this.config?.callbacks,t?.callbacks),signal:s};return new b0(super.streamEvents(e,i,n),r,a)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let n="version"in(t??{})?void 0:t?.encoding??void 0,r=t?.subgraphs,s=KT(this.config,t);if(s.recursionLimit===void 0||s.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&s.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:i,...o}=s,[c,u,,l,d,h,f,p,m,v,g,_]=this._defaults(o);typeof d.context<"u"?d.context=await this._validateContext(d.context):d.configurable=await this._validateContext(d.configurable);let k=new l1({modes:new Set(u)});if(this.checkpointer===!0){d.configurable??={};let $=d.configurable.checkpoint_ns??"";d.configurable[Zr]=$.split("|").map(P=>P.split(":")[0]).join("|")}if(u.includes("messages")){let $=new PU(pe=>k.push(pe)),{callbacks:P}=d;if(P===void 0)d.callbacks=[$];else if(Array.isArray(P))d.callbacks=P.concat($);else{let pe=P.copy();pe.addHandler($,!0),d.callbacks=pe}}if(u.includes("tools")){let $=new xU(pe=>k.push(pe)),{callbacks:P}=d;if(P===void 0)d.callbacks=[$];else if(Array.isArray(P))d.callbacks=P.concat($);else{let pe=P.copy();pe.addHandler($,!0),d.callbacks=pe}}d.writer??=$=>{if(!u.includes("custom"))return;let P=jD()?.configurable?.[Zr]?.split("|").slice(0,-1);k.push([P??[],"custom",$])},d.interrupt??=this.userInterrupt??FU;let S=await(await tn(d))?.handleChainStart(this.toJSON(),cU(e,"input"),i,void 0,void 0,void 0,d?.runName??this.getName()),E=$y(this.channels),I,O,M=(async()=>{try{I=await RU.initialize({input:a,config:d,checkpointer:p,nodes:this.nodes,channelSpecs:E,outputKeys:l,streamKeys:this.streamChannelsAsIs,store:m,cache:g,stream:k,interruptAfter:f,interruptBefore:h,manager:S,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:_});let $=new zU({loop:I,nodeFinished:d.configurable?.[ZI]});t?.subgraphs&&(I.config.configurable={...I.config.configurable,[f_]:I.stream}),await this._runLoop({loop:I,runner:$,debug:c,config:d}),_==="sync"&&await Promise.all(I?.checkpointerPromises??[])}catch($){O=$}finally{try{I&&(await I.store?.stop(),await I.cache?.stop()),await Promise.all(I?.checkpointerPromises??[])}catch($){O=O??$}O?k.error(O):k.close()}})();try{for await(let $ of k){if($===void 0)throw new Error("Data structure error.");let[P,pe,Le]=$;if(u.includes(pe)){if(n==="text/event-stream"){r?yield[P,pe,Le]:yield[null,pe,Le];continue}r&&!v?yield[P,pe,Le]:v?r?yield[P,Le]:yield Le:yield[pe,Le]}}}catch($){throw await S?.handleChainError(O),$}finally{await M}await S?.handleChainEnd(I?.output??{},i,void 0,void 0,void 0)}async invoke(e,t){let n=t?.streamMode??"values",r={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:n,encoding:void 0},s=[],a=await this.stream(e,r),i=[],o;for await(let c of a)n==="values"?nS(c)?i.push(c[Ot]):o=c:s.push(c);if(n==="values"){if(i.length>0){let c=i.flat(1);if(o==null)return{[Ot]:c};if(typeof o=="object")return{...o,[Ot]:c}}return o}return s}async _runLoop(e){let{loop:t,runner:n,debug:r,config:s}=e,a;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:i}of await t._matchCachedWrites())t._outputWrites(i.id,i.writes,!0);r&&SU(t.checkpointMetadata.step,t.channels,this.streamChannelsList),r&&u1(t.step,Object.values(t.tasks)),await n.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(i,o)=>{r&&EU(i,o,this.streamChannelsList)},maxConcurrency:s.maxConcurrency,signal:s.signal})}if(t.status==="out_of_steps")throw new JI([`Recursion limit of ${s.recursionLimit} reached`,"without hitting a stop condition. You can increase the",'limit by setting the "recursionLimit" config key.'].join(" "),{lc_error_code:"GRAPH_RECURSION_LIMIT"})}catch(i){if(a=i,!await t.finishAndHandleError(a))throw i}finally{a===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}},Pi=class m1 extends Ls{lc_graph_name="EphemeralValue";guard;value=[];constructor(t=!0){super(),this.guard=t}fromCheckpoint(t){let n=new m1(this.guard);return typeof t<"u"&&(n.value=[t]),n}update(t){if(t.length===0){let n=this.value.length>0;return this.value=[],n}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 $t;return this.value[0]}checkpoint(){if(this.value.length===0)throw new $t;return this.value[0]}isAvailable(){return this.value.length!==0}};function Re(e,t,n){function r(o,c){var u;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(u=o._zod).traits??(u.traits=new Set),o._zod.traits.add(e),t(o,c);for(let l in i.prototype)l in o||Object.defineProperty(o,l,{value:i.prototype[l].bind(o)});o._zod.constr=i,o._zod.def=c}let s=n?.Parent??Object;class a extends s{}Object.defineProperty(a,"name",{value:e});function i(o){var c;let u=n?.Parent?new a:this;r(u,o),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(i,"init",{value:r}),Object.defineProperty(i,Symbol.hasInstance,{value:o=>n?.Parent&&o instanceof n.Parent?!0:o?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}var gc=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},qU={};function _a(e){return qU}function HU(e,t){return typeof t=="bigint"?t.toString():t}function Py(e){return e==null}function My(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ut(e,t,n){Object.defineProperty(e,t,{get(){{let r=n();return e[t]=r,r}},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}var g1=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function x0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function T0(e){if(x0(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(x0(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function GU(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function zs(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Ho(e,t=0){for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function WU(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function zu(e){return typeof e=="string"?e:e?.message}function ya(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let s=zu(e.inst?._zod.def?.error?.(e))??zu(t?.error?.(e))??zu(n.customError?.(e))??zu(n.localeError?.(e))??"Invalid input";r.message=s}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function jy(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function _c(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}var _1=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,HU,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},y1=Re("$ZodError",_1),v1=Re("$ZodError",_1,{Parent:Error});function JU(e,t=n=>n.message){let n={},r=[];for(let s of e.issues)s.path.length>0?(n[s.path[0]]=n[s.path[0]]||[],n[s.path[0]].push(t(s))):r.push(t(s));return{formErrors:r,fieldErrors:n}}function KU(e,t){let n=t||function(a){return a.message},r={_errors:[]},s=a=>{for(let i of a.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(o=>s({issues:o}));else if(i.code==="invalid_key")s({issues:i.issues});else if(i.code==="invalid_element")s({issues:i.issues});else if(i.path.length===0)r._errors.push(n(i));else{let o=r,c=0;for(;c<i.path.length;){let u=i.path[c];c===i.path.length-1?(o[u]=o[u]||{_errors:[]},o[u]._errors.push(n(i))):o[u]=o[u]||{_errors:[]},o=o[u],c++}}};return s(e),r}var XU=e=>(t,n,r,s)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},i=t._zod.run({value:n,issues:[]},a);if(i instanceof Promise)throw new gc;if(i.issues.length){let o=new(s?.Err??e)(i.issues.map(c=>ya(c,a,_a())));throw g1(o,s?.callee),o}return i.value},YU=e=>async(t,n,r,s)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},i=t._zod.run({value:n,issues:[]},a);if(i instanceof Promise&&(i=await i),i.issues.length){let o=new(s?.Err??e)(i.issues.map(c=>ya(c,a,_a())));throw g1(o,s?.callee),o}return i.value},w1=e=>(t,n,r)=>{let s=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},s);if(a instanceof Promise)throw new gc;return a.issues.length?{success:!1,error:new(e??y1)(a.issues.map(i=>ya(i,s,_a())))}:{success:!0,data:a.value}},QU=w1(v1),b1=e=>async(t,n,r)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},s);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(i=>ya(i,s,_a())))}:{success:!0,data:a.value}},e9=b1(v1),oo=Re("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),t9=Re("$ZodCheckMaxLength",(e,t)=>{var n;oo.init(e,t),(n=e._zod.def).when??(n.when=r=>{let s=r.value;return!Py(s)&&s.length!==void 0}),e._zod.onattach.push(r=>{let s=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<s&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{let s=r.value;if(s.length<=t.maximum)return;let i=jy(s);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),n9=Re("$ZodCheckMinLength",(e,t)=>{var n;oo.init(e,t),(n=e._zod.def).when??(n.when=r=>{let s=r.value;return!Py(s)&&s.length!==void 0}),e._zod.onattach.push(r=>{let s=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>s&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{let s=r.value;if(s.length>=t.minimum)return;let i=jy(s);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),r9=Re("$ZodCheckLengthEquals",(e,t)=>{var n;oo.init(e,t),(n=e._zod.def).when??(n.when=r=>{let s=r.value;return!Py(s)&&s.length!==void 0}),e._zod.onattach.push(r=>{let s=r._zod.bag;s.minimum=t.length,s.maximum=t.length,s.length=t.length}),e._zod.check=r=>{let s=r.value,a=s.length;if(a===t.length)return;let i=jy(s),o=a>t.length;r.issues.push({origin:i,...o?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),s9=Re("$ZodCheckOverwrite",(e,t)=>{oo.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),a9={major:4,minor:0,patch:0},an=Re("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=a9;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let s of r)for(let a of s._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let s=(a,i,o)=>{let c=Ho(a),u;for(let l of i){if(l._zod.def.when){if(!l._zod.def.when(a))continue}else if(c)continue;let d=a.issues.length,h=l._zod.check(a);if(h instanceof Promise&&o?.async===!1)throw new gc;if(u||h instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await h,a.issues.length!==d&&(c||(c=Ho(a,d)))});else{if(a.issues.length===d)continue;c||(c=Ho(a,d))}}return u?u.then(()=>a):a};e._zod.run=(a,i)=>{let o=e._zod.parse(a,i);if(o instanceof Promise){if(i.async===!1)throw new gc;return o.then(c=>s(c,r,i))}return s(o,r,i)}}e["~standard"]={validate:s=>{try{let a=QU(e,s);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return e9(e,s).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}}),i9=Re("$ZodAny",(e,t)=>{an.init(e,t),e._zod.parse=n=>n});function O0(e,t,n){e.issues.length&&t.issues.push(...WU(n,e.issues)),t.value[n]=e.value}var o9=Re("$ZodArray",(e,t)=>{an.init(e,t),e._zod.parse=(n,r)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({expected:"array",code:"invalid_type",input:s,inst:e}),n;n.value=Array(s.length);let a=[];for(let i=0;i<s.length;i++){let o=s[i],c=t.element._zod.run({value:o,issues:[]},r);c instanceof Promise?a.push(c.then(u=>O0(u,n,i))):O0(c,n,i)}return a.length?Promise.all(a).then(()=>n):n}});function I0(e,t,n,r){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(a=>ya(a,r,_a())))}),t}var c9=Re("$ZodUnion",(e,t)=>{an.init(e,t),ut(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ut(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ut(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ut(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>My(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let s=!1,a=[];for(let i of t.options){let o=i._zod.run({value:n.value,issues:[]},r);if(o instanceof Promise)a.push(o),s=!0;else{if(o.issues.length===0)return o;a.push(o)}}return s?Promise.all(a).then(i=>I0(i,n,e,r)):I0(a,n,e,r)}}),u9=Re("$ZodIntersection",(e,t)=>{an.init(e,t),e._zod.parse=(n,r)=>{let s=n.value,a=t.left._zod.run({value:s,issues:[]},r),i=t.right._zod.run({value:s,issues:[]},r);return a instanceof Promise||i instanceof Promise?Promise.all([a,i]).then(([c,u])=>$0(n,c,u)):$0(n,a,i)}});function $g(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(T0(e)&&T0(t)){let n=Object.keys(t),r=Object.keys(e).filter(a=>n.indexOf(a)!==-1),s={...e,...t};for(let a of r){let i=$g(e[a],t[a]);if(!i.valid)return{valid:!1,mergeErrorPath:[a,...i.mergeErrorPath]};s[a]=i.data}return{valid:!0,data:s}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let s=e[r],a=t[r],i=$g(s,a);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function $0(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),Ho(e))return e;let r=$g(t.value,n.value);if(!r.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}var l9=Re("$ZodTransform",(e,t)=>{an.init(e,t),e._zod.parse=(n,r)=>{let s=t.transform(n.value,n);if(r.async)return(s instanceof Promise?s:Promise.resolve(s)).then(i=>(n.value=i,n));if(s instanceof Promise)throw new gc;return n.value=s,n}}),d9=Re("$ZodOptional",(e,t)=>{an.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ut(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ut(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${My(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),h9=Re("$ZodNullable",(e,t)=>{an.init(e,t),ut(e._zod,"optin",()=>t.innerType._zod.optin),ut(e._zod,"optout",()=>t.innerType._zod.optout),ut(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${My(n.source)}|null)$`):void 0}),ut(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),f9=Re("$ZodDefault",(e,t)=>{an.init(e,t),e._zod.optin="optional",ut(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let s=t.innerType._zod.run(n,r);return s instanceof Promise?s.then(a=>C0(a,t)):C0(s,t)}});function C0(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var p9=Re("$ZodPrefault",(e,t)=>{an.init(e,t),e._zod.optin="optional",ut(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),m9=Re("$ZodNonOptional",(e,t)=>{an.init(e,t),ut(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let s=t.innerType._zod.run(n,r);return s instanceof Promise?s.then(a=>A0(a,e)):A0(s,e)}});function A0(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var g9=Re("$ZodCatch",(e,t)=>{an.init(e,t),e._zod.optin="optional",ut(e._zod,"optout",()=>t.innerType._zod.optout),ut(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let s=t.innerType._zod.run(n,r);return s instanceof Promise?s.then(a=>(n.value=a.value,a.issues.length&&(n.value=t.catchValue({...n,error:{issues:a.issues.map(i=>ya(i,r,_a()))},input:n.value}),n.issues=[]),n)):(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(a=>ya(a,r,_a()))},input:n.value}),n.issues=[]),n)}}),_9=Re("$ZodPipe",(e,t)=>{an.init(e,t),ut(e._zod,"values",()=>t.in._zod.values),ut(e._zod,"optin",()=>t.in._zod.optin),ut(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let s=t.in._zod.run(n,r);return s instanceof Promise?s.then(a=>R0(a,t,r)):R0(s,t,r)}});function R0(e,t,n){return Ho(e)?e:t.out._zod.run({value:e.value,issues:e.issues},n)}var y9=Re("$ZodReadonly",(e,t)=>{an.init(e,t),ut(e._zod,"propValues",()=>t.innerType._zod.propValues),ut(e._zod,"values",()=>t.innerType._zod.values),ut(e._zod,"optin",()=>t.innerType._zod.optin),ut(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let s=t.innerType._zod.run(n,r);return s instanceof Promise?s.then(N0):N0(s)}});function N0(e){return e.value=Object.freeze(e.value),e}var v9=Re("$ZodCustom",(e,t)=>{oo.init(e,t),an.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,s=t.fn(r);if(s instanceof Promise)return s.then(a=>P0(a,n,r,e));P0(s,n,r,e)}});function P0(e,t,n,r){if(!e){let s={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(s.params=r._zod.def.params),t.issues.push(_c(s))}}var w9=class{constructor(){this._map=new Map,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(t){let n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};function b9(){return new w9}var Du=b9();function k9(e){return new e({type:"any"})}function S9(e,t){return new t9({check:"max_length",...zs(t),maximum:e})}function M0(e,t){return new n9({check:"min_length",...zs(t),minimum:e})}function E9(e,t){return new r9({check:"length_equals",...zs(t),length:e})}function x9(e){return new s9({check:"overwrite",tx:e})}function T9(e,t,n){return new e({type:"array",element:t,...zs(n)})}function O9(e,t,n){let r=zs(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function I9(e,t,n){return new e({type:"custom",check:"custom",fn:t,...zs(n)})}var $9=(e,t)=>{y1.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>KU(e,n)},flatten:{value:n=>JU(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Xh=Re("ZodError",$9,{Parent:Error}),C9=XU(Xh),A9=YU(Xh),R9=w1(Xh),N9=b1(Xh),vn=Re("ZodType",(e,t)=>(an.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>GU(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>C9(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>R9(e,n,r),e.parseAsync=async(n,r)=>A9(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>N9(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(r5(n,r)),e.superRefine=n=>e.check(s5(n)),e.overwrite=n=>e.check(x9(n)),e.optional=()=>j0(e),e.nullable=()=>L0(e),e.nullish=()=>j0(L0(e)),e.nonoptional=n=>K9(e,n),e.array=()=>j9(e),e.or=n=>z9([e,n]),e.and=n=>U9(e,n),e.transform=n=>z0(e,B9(n)),e.default=n=>H9(e,n),e.prefault=n=>W9(e,n),e.catch=n=>Y9(e,n),e.pipe=n=>z0(e,n),e.readonly=()=>t5(e),e.describe=n=>{let r=e.clone();return Du.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return Du.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Du.get(e);let r=e.clone();return Du.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),P9=Re("ZodAny",(e,t)=>{i9.init(e,t),vn.init(e,t)});function Uu(){return k9(P9)}var M9=Re("ZodArray",(e,t)=>{o9.init(e,t),vn.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(M0(n,r)),e.nonempty=n=>e.check(M0(1,n)),e.max=(n,r)=>e.check(S9(n,r)),e.length=(n,r)=>e.check(E9(n,r)),e.unwrap=()=>e.element});function j9(e,t){return T9(M9,e,t)}var L9=Re("ZodUnion",(e,t)=>{c9.init(e,t),vn.init(e,t),e.options=t.options});function z9(e,t){return new L9({type:"union",options:e,...zs(t)})}var D9=Re("ZodIntersection",(e,t)=>{u9.init(e,t),vn.init(e,t)});function U9(e,t){return new D9({type:"intersection",left:e,right:t})}var F9=Re("ZodTransform",(e,t)=>{l9.init(e,t),vn.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=a=>{if(typeof a=="string")n.issues.push(_c(a,n.value,t));else{let i=a;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),i.continue??(i.continue=!0),n.issues.push(_c(i))}};let s=t.transform(n.value,n);return s instanceof Promise?s.then(a=>(n.value=a,n)):(n.value=s,n)}});function B9(e){return new F9({type:"transform",transform:e})}var Z9=Re("ZodOptional",(e,t)=>{d9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function j0(e){return new Z9({type:"optional",innerType:e})}var V9=Re("ZodNullable",(e,t)=>{h9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function L0(e){return new V9({type:"nullable",innerType:e})}var q9=Re("ZodDefault",(e,t)=>{f9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function H9(e,t){return new q9({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}var G9=Re("ZodPrefault",(e,t)=>{p9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function W9(e,t){return new G9({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}var J9=Re("ZodNonOptional",(e,t)=>{m9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function K9(e,t){return new J9({type:"nonoptional",innerType:e,...zs(t)})}var X9=Re("ZodCatch",(e,t)=>{g9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Y9(e,t){return new X9({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Q9=Re("ZodPipe",(e,t)=>{_9.init(e,t),vn.init(e,t),e.in=t.in,e.out=t.out});function z0(e,t){return new Q9({type:"pipe",in:e,out:t})}var e5=Re("ZodReadonly",(e,t)=>{y9.init(e,t),vn.init(e,t)});function t5(e){return new e5({type:"readonly",innerType:e})}var k1=Re("ZodCustom",(e,t)=>{v9.init(e,t),vn.init(e,t)});function n5(e){let t=new oo({check:"custom"});return t._zod.check=e,t}function D0(e,t){return O9(k1,(()=>!0),t)}function r5(e,t={}){return I9(k1,e,t)}function s5(e){let t=n5(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(_c(r,n.value,t._zod.def));else{let s=r;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=t),s.continue??(s.continue=!t._zod.def.abort),n.issues.push(_c(s))}},e(n.value,n)));return t}var S1=class{path;ends;constructor(e){Me.isRunnable(e.path)?this.path=e.path:this.path=jt(e.path),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,n)=>(t[n]=n,t),{}):e.pathMap}run(e,t){return Xt.registerWriter(new Pa({name:"<branch_run>",trace:!1,func:async(n,r)=>{try{return await this._route(n,r,e,t)}catch(s){throw s.name===m_.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
623
+ `))};try{for await(let s of e){let[a,i,o]=s,c=o;if(i==="debug"){let u=o;u.type==="checkpoint"&&(c={...u,payload:S0(u.payload)})}i==="checkpoints"&&(c=S0(o)),r({event:a?.length?`${i}|${a.join("|")}`:i,data:c})}}catch(s){r({event:"error",data:OU(s)})}n.close()}})}var Lu=Symbol.for("INPUT_DONE"),Fp=Symbol.for("INPUT_RESUMING"),$U=25;function CU(...e){return new l1({passthroughFn:t=>{for(let n of e)n.modes.has(t[1])&&n.push(t)},modes:new Set(e.flatMap(t=>Array.from(t.modes)))})}var AU=class extends CD{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 n=this.queue.then(()=>this.cache[e](...t));return this.queue=n.then(()=>{},()=>{}),n}},RU=class d1{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=[];isNested;_checkpointerChainedPromise=Promise.resolve();store;cache;manager;interruptAfter;interruptBefore;toInterrupt=[];debug=!1;triggerToNodes;get isResuming(){let t=!1;if("__start__"in this.checkpoint.channel_versions)t=!0;else for(let o in this.checkpoint.channel_versions)if(Object.prototype.hasOwnProperty.call(this.checkpoint.channel_versions,o)){t=!0;break}let n=this.config.configurable?.__pregel_resuming!==void 0&&this.config.configurable?.__pregel_resuming,r=this.input===null||this.input===void 0,s=Ut(this.input)&&this.input.resume!=null,a=this.input===Fp,i=!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&&(n||r||s||a||i)}constructor(t){this.input=t.input,this.checkpointer=t.checkpointer,this.checkpointer!==void 0?this.checkpointerGetNextVersion=this.checkpointer.getNextVersion.bind(this.checkpointer):this.checkpointerGetNextVersion=fU,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 AU(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:n,stream:r}=t;r!==void 0&&n.configurable?.__pregel_stream!==void 0&&(r=CU(r,n.configurable[f_]));let s=n.configurable?!("checkpoint_id"in n.configurable):!0,a=n.configurable?.[hs];n.configurable&&a&&(a.subgraphCounter>0&&(n=Yn(n,{[Zr]:[n.configurable[Zr],a.subgraphCounter.toString()].join("|")})),a.subgraphCounter+=1);let i=ra in(n.configurable??{});!i&&n.configurable?.checkpoint_ns!==void 0&&n.configurable?.checkpoint_ns!==""&&(n=Yn(n,{checkpoint_ns:"",checkpoint_id:void 0}));let o=n;n.configurable?.checkpoint_map!==void 0&&n.configurable?.checkpoint_map?.[n.configurable?.checkpoint_ns]&&(o=Yn(n,{checkpoint_id:n.configurable[Lr][n.configurable?.checkpoint_ns]}));let c=n.configurable?.checkpoint_ns?.split("|")??[],u=await t.checkpointer?.getTuple(o)??{config:n,checkpoint:VT(),metadata:{source:"input",step:-2,parents:{}},pendingWrites:[]};o={...n,...u.config,configurable:{checkpoint_ns:"",...n.configurable,...u.config.configurable}};let l=u.parentConfig,d=Yl(u.checkpoint),h={...u.metadata},f=u.pendingWrites??[],p=Ql(t.channelSpecs,d),m=(h.step??0)+1,v=m+(n.recursionLimit??$U)+1,g={...d.channel_versions},_=t.store?new $D(t.store):void 0;return _&&await _.start(),new d1({input:t.input,config:n,checkpointer:t.checkpointer,checkpoint:d,checkpointMetadata:h,checkpointConfig:o,prevCheckpointConfig:l,checkpointNamespace:c,channels:p,isNested:i,manager:t.manager,skipDoneTasks:s,step:m,stop:v,checkpointPreviousVersions:g,checkpointPendingWrites:f,outputKeys:t.outputKeys??[],streamKeys:t.streamKeys??[],nodes:t.nodes,stream:r,store:_,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.checkpointerPromises.push(this._checkpointerChainedPromise)}putWrites(t,n){let r=n;if(r.length===0)return;r.every(([c])=>c in xD)&&(r=Array.from(new Map(r.map(c=>[c[0],c])).values()));let s=!1;for(let c in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,c)&&this.channels[c].lc_graph_name==="UntrackedValue"){s=!0;break}let a=r;s&&(a=r.filter(([c])=>{let u=this.channels[c];return!u||u.lc_graph_name!=="UntrackedValue"}).map(([c,u])=>c==="__pregel_tasks"&&pn(u)?[c,vU(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 i=Yn(this.checkpointConfig,{[Zr]:this.config.configurable?.checkpoint_ns??"",[sm]:this.checkpoint.id});if(this.durability!=="exit"&&this.checkpointer!=null&&this.checkpointerPromises.push(this.checkpointer.putWrites(i,a,t)),this.tasks&&this._outputWrites(t,r),!n.length||!this.cache||!this.tasks)return;let o=this.tasks[t];o==null||o.cache_key==null||n[0][0]==="__error__"||n[0][0]==="__interrupt__"||this.cache.set([{key:[o.cache_key.ns,o.cache_key.key],value:o.writes,ttl:o.cache_key.ttl}])}_outputWrites(t,n,r=!1){let s=this.tasks[t];if(s!==void 0){if(s.config!==void 0&&(s.config.tags??[]).includes("langsmith:hidden"))return;if(n.length>0)if(n[0][0]==="__interrupt__"){if(s.path?.[0]==="__pregel_push"&&s.path?.[s.path.length-1]===!0)return;let a=n.filter(i=>i[0]===Ot).flatMap(i=>i[1]);this._emit([["updates",{[Ot]:a}],["values",{[Ot]:a}]])}else n[0][0]!=="__error__"&&this._emit(xo(ts(oU(this.outputKeys,[[s,n]],r),"updates")));r||this._emit(xo(ts(bU([[s,n]],this.streamKeys),"tasks")))}}async _matchCachedWrites(){if(!this.cache)return[];let t=[],n=([i,o])=>`ns:${i.join(",")}|key:${o}`,r=[],s={};for(let i of Object.values(this.tasks))i.cache_key!=null&&!i.writes.length&&(r.push([i.cache_key.ns,i.cache_key.key]),s[n([i.cache_key.ns,i.cache_key.key])]=i);if(r.length===0)return[];let a=await this.cache.get(r);for(let{key:i,value:o}of a){let c=s[n(i)];c!=null&&(c.writes.push(...o),t.push({task:c,result:o}))}return t}async tick(t){this.store&&!this.store.isRunning&&await this.store?.start();let{inputKeys:n=[]}=t;if(this.status!=="pending")throw new Error(`Cannot tick when status is no longer "pending". Current status: "${this.status}"`);if(![Lu,Fp].includes(this.input))await this._first(n);else{if(this.toInterrupt.length>0)throw this.status="interrupt_before",new pi;if(Object.values(this.tasks).every(s=>s.writes.length>0)){let s=Object.values(this.tasks).flatMap(i=>i.writes);this.updatedChannels=xn(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes);let a=await os(ts(Lp(this.outputKeys,s,this.channels),"values"));if(this._emit(a),this.checkpointPendingWrites=[],await this._putCheckpoint({source:"loop"}),ju(this.checkpoint,this.interruptAfter,Object.values(this.tasks)))throw this.status="interrupt_after",new pi;this.config.configurable?.__pregel_resuming!==void 0&&delete this.config.configurable?.[Cl]}else return!1}if(this.step>this.stop)return this.status="out_of_steps",!1;if(this.tasks=ci(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 os(ts(kU(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[s,a,i]of this.checkpointPendingWrites){if(a==="__error__"||a==="__interrupt__"||a==="__resume__")continue;let o=Object.values(this.tasks).find(c=>c.id===s);o&&o.writes.push([a,i])}for(let s of Object.values(this.tasks))s.writes.length>0&&this._outputWrites(s.id,s.writes,!0)}if(Object.values(this.tasks).every(s=>s.writes.length>0))return this.tick({inputKeys:n});if(ju(this.checkpoint,this.interruptBefore,Object.values(this.tasks)))throw this.status="interrupt_before",new pi;let r=await os(ts(w0(Object.values(this.tasks)),"tasks"));return this._emit(r),!0}async finishAndHandleError(t){this.durability==="exit"&&(!this.isNested||typeof t<"u"||this.checkpointNamespace.every(r=>!r.includes(":")))&&(this._putCheckpoint(this.checkpointMetadata),this._flushPendingWrites());let n=this._suppressInterrupt(t);return(n||t===void 0)&&(this.output=ga(this.channels,this.outputKeys)),n&&(this.tasks!==void 0&&this.checkpointPendingWrites.length>0&&Object.values(this.tasks).some(r=>r.writes.length>0)&&(this.updatedChannels=xn(this.checkpoint,this.channels,Object.values(this.tasks),this.checkpointerGetNextVersion,this.triggerToNodes),this._emit(xo(ts(Lp(this.outputKeys,Object.values(this.tasks).flatMap(r=>r.writes),this.channels),"values")))),ti(t)&&!t.interrupts.length&&this._emit([["updates",{[Ot]:[]}],["values",{[Ot]:[]}]])),n}async acceptPush(t,n,r){if(this.interruptAfter?.length>0&&ju(this.checkpoint,this.interruptAfter,[t])){this.toInterrupt.push(t);return}let s=Og([Vr,t.path??[],n,t.id,r],this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,t.config??{},!0,{step:this.step,checkpointer:this.checkpointer,manager:this.manager,store:this.store,stream:this.stream});if(!s)return;if(this.interruptBefore?.length>0&&ju(this.checkpoint,this.interruptBefore,[s])){this.toInterrupt.push(s);return}this._emit(xo(ts(w0([s]),"tasks"))),this.debug&&u1(this.step,[s]),this.tasks[s.id]=s,this.skipDoneTasks&&this._matchWrites({[s.id]:s});let a=await this._matchCachedWrites();for(let{task:i}of a)this._outputWrites(i.id,i.writes,!0);return s}_suppressInterrupt(t){return ti(t)&&!this.isNested}async _first(t){let{configurable:n}=this.config,r=n?.[hs];if(r&&r.nullResume!==void 0&&this.putWrites(yr,[[vs,r.nullResume]]),Ut(this.input)){let i=this.input.resume!=null;if(this.input.resume!=null&&typeof this.input.resume=="object"&&Object.keys(this.input.resume).every(a1)&&(this.config.configurable??={},this.config.configurable[el]=this.input.resume),i&&this.checkpointer==null)throw new Error("Cannot use Command(resume=...) without checkpointer");let o={};for(let[c,u,l]of iU(this.input,this.checkpointPendingWrites))o[c]??=[],o[c].push([u,l]);if(Object.keys(o).length===0)throw new Iv("Received empty Command input");for(let[c,u]of Object.entries(o))this.putWrites(c,u)}let s=(this.checkpointPendingWrites??[]).filter(i=>i[0]===yr).map(i=>i.slice(1));s.length>0&&xn(this.checkpoint,this.channels,[{name:is,writes:s,triggers:[]}],this.checkpointerGetNextVersion,this.triggerToNodes);let a=Ut(this.input)&&s.length>0;if(this.isResuming||a){for(let o in this.channels)if(Object.prototype.hasOwnProperty.call(this.channels,o)&&this.checkpoint.channel_versions[o]!==void 0){let c=this.checkpoint.channel_versions[o];this.checkpoint.versions_seen[Ot]={...this.checkpoint.versions_seen[Ot],[o]:c}}let i=await os(ts(Lp(this.outputKeys,!0,this.channels),"values"));this._emit(i)}if(this.isResuming)this.input=Fp;else if(a)await this._putCheckpoint({source:"input"}),this.input=Lu;else{let i=await os(i1(t,this.input));if(i.length>0){let o=ci(this.checkpoint,this.checkpointPendingWrites,this.nodes,this.channels,this.config,!0,{step:this.step});this.updatedChannels=xn(this.checkpoint,this.channels,Object.values(o).concat([{name:is,writes:i,triggers:[]}]),this.checkpointerGetNextVersion,this.triggerToNodes),await this._putCheckpoint({source:"input"}),this.input=Lu}else if("__pregel_resuming"in(this.config.configurable??{}))this.input=Lu;else throw new Iv(`Received no input writes for ${JSON.stringify(t,null,2)}`)}this.isNested||(this.config=Yn(this.config,{[Cl]:this.isResuming}))}_emit(t){for(let[n,r]of t)if(this.stream.modes.has(n)&&this.stream.push([this.checkpointNamespace,n,r]),(n==="checkpoints"||n==="tasks")&&this.stream.modes.has("debug")){let s=n==="checkpoints"?this.step-1:this.step,a=new Date().toISOString(),i=n==="checkpoints"?"checkpoint":typeof r=="object"&&r!=null&&"result"in r?"task_result":"task";this.stream.push([this.checkpointNamespace,"debug",{step:s,type:i,timestamp:a,payload:r}])}}_putCheckpoint(t){let n=this.checkpointMetadata===t,r=this.checkpointer!=null&&(this.durability!=="exit"||n),s=a=>{this.prevCheckpointConfig=this.checkpointConfig?.configurable?.checkpoint_id?this.checkpointConfig:void 0,this.checkpointConfig=Yn(this.checkpointConfig,{[Zr]:this.config.configurable?.checkpoint_ns??""});let i={...this.checkpoint.channel_versions},o=yl(this.checkpointPreviousVersions,i);this.checkpointPreviousVersions=i,this._checkpointerPutAfterPrevious({config:{...this.checkpointConfig},checkpoint:Yl(a),metadata:{...this.checkpointMetadata},newVersions:o}),this.checkpointConfig={...this.checkpointConfig,configurable:{...this.checkpointConfig.configurable,checkpoint_id:this.checkpoint.id}}};n||(this.checkpointMetadata={...t,step:this.step,parents:this.config.configurable?.checkpoint_map??{}}),this.checkpoint=Ks(this.checkpoint,r?this.channels:void 0,this.step,n?{id:this.checkpoint.id}:void 0),r&&s(this.checkpoint),n||(this.step+=1)}_flushPendingWrites(){if(this.checkpointer==null||this.checkpointPendingWrites.length===0)return;let t=Yn(this.checkpointConfig,{[Zr]:this.config.configurable?.checkpoint_ns??"",[sm]:this.checkpoint.id}),n={};for(let[r,s,a]of this.checkpointPendingWrites)n[r]??=[],n[r].push([s,a]);for(let[r,s]of Object.entries(n))this.checkpointerPromises.push(this.checkpointer.putWrites(t,s,r))}_matchWrites(t){for(let[n,r,s]of this.checkpointPendingWrites){if(r==="__error__"||r==="__interrupt__"||r==="__resume__")continue;let a=Object.values(t).find(i=>i.id===n);a&&a.writes.push([r,s])}for(let n of Object.values(t))n.writes.length>0&&this._outputWrites(n.id,n.writes,!0)}};function NU(e){return Mt(e?.message)}var PU=class extends Aa{name="StreamMessagesHandler";streamFn;metadatas={};seen={};emittedChatModelRunIds={};stableMessageIdMap={};lc_prefer_streaming=!0;constructor(e){super(),this.streamFn=e}_emit(e,t,n,r=!1){if(r&&t.id!==void 0&&this.seen[t.id]!==void 0)return;let s=t.id;n!=null&&(O_(t)?s??=`run-${n}-tool-${t.tool_call_id}`:((s==null||s===`run-${n}`)&&(s=this.stableMessageIdMap[n]??s??`run-${n}`),this.stableMessageIdMap[n]??=s)),s!==t.id&&(t.id=s,t.lc_kwargs.id=s),t.id!=null&&(this.seen[t.id]=t),this.streamFn([e[0],"messages",[t,e[1]]])}handleChatModelStart(e,t,n,r,s,a,i,o){i&&(!a||!a.includes("langsmith:nostream")&&!a.includes("nostream"))&&(this.metadatas[n]=[i.langgraph_checkpoint_ns.split("|"),{tags:a,name:o,...i}])}handleLLMNewToken(e,t,n,r,s,a){let i=a?.chunk;this.emittedChatModelRunIds[n]=!0,this.metadatas[n]!==void 0&&(NU(i)?this._emit(this.metadatas[n],i.message,n):this._emit(this.metadatas[n],new mn({content:e}),n))}handleLLMEnd(e,t){if(this.metadatas[t]!==void 0){if(!this.emittedChatModelRunIds[t]){let n=e.generations?.[0]?.[0];Mt(n?.message)&&this._emit(this.metadatas[t],n?.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,n,r,s,a,i,o){if(a!==void 0&&o===a.langgraph_node&&(s===void 0||!s.includes("langsmith:hidden"))&&(this.metadatas[n]=[a.langgraph_checkpoint_ns.split("|"),{tags:s,name:o,...a}],typeof t=="object")){for(let c of Object.values(t))if((Mt(c)||Qo(c))&&c.id!==void 0)this.seen[c.id]=c;else if(Array.isArray(c))for(let u of c)(Mt(u)||Qo(u))&&u.id!==void 0&&(this.seen[u.id]=u)}}handleChainEnd(e,t){let n=this.metadatas[t];if(delete this.metadatas[t],n!==void 0){if(Mt(e))this._emit(n,e,t,!0);else if(Array.isArray(e))for(let r of e)Mt(r)&&this._emit(n,r,t,!0);else if(e!=null&&typeof e=="object"){for(let r of Object.values(e))if(Mt(r))this._emit(n,r,t,!0);else if(Array.isArray(r))for(let s of r)Mt(s)&&this._emit(n,s,t,!0)}}}handleChainError(e,t){delete this.metadatas[t]}},MU=[400,401,402,403,404,405,406,407,409],jU=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&&MU.includes(+t)||e?.error?.code==="insufficient_quota")};async function h1(e,t,n,r){let s=e.retry_policy??t,a=s!==void 0?s.initialInterval??500:0,i=0,o,c,{config:u}=e;for(n&&(u=Yn(u,n)),u={...u,signal:r};!r?.aborted;){e.writes.splice(0,e.writes.length),o=void 0;try{c=await e.proc.invoke(e.input,u);break}catch(l){if(o=l,o.pregelTaskId=e.id,KI(o)){let f=u?.configurable?.checkpoint_ns,p=o.command;if(p.graph===f){for(let m of e.writers)await m.invoke(p,u);o=void 0;break}else if(p.graph===vr.PARENT){let m=LD(f);o.command=new vr({...o.command,graph:m})}}if(rl(o)||s===void 0||(i+=1,i>=(s.maxAttempts??3))||!(s.retryOn??jU)(o))break;a=Math.min(s.maxInterval??128e3,a*(s.backoffFactor??2));let d=s.jitter?Math.floor(a+Math.random()*1e3):a;await new Promise(f=>setTimeout(f,d));let h=o.name??o.constructor.unminifiable_name??o.constructor.name;(s?.logWarning??!0)&&console.log(`Retrying task "${String(e.name)}" after ${a.toFixed(2)}ms (attempt ${i}) after ${h}: ${o}`),u=Yn(u,{[Cl]:!0})}}return{task:e,result:c,error:o,signalAborted:r?.aborted}}var Ig=Symbol.for("promiseAdded");function LU(){let e={next:()=>{},wait:Promise.resolve(Ig)};function t(n){e.next=()=>{e.wait=new Promise(t),n(Ig)}}return e.wait=new Promise(t),e}var zU=class{nodeFinished;loop;constructor({loop:e,nodeFinished:t}){this.loop=e,this.nodeFinished=t}async tick(e={}){let{timeout:t,retryPolicy:n,onStepWrite:r,maxConcurrency:s}=e,a=new Set,i,o=new AbortController,c=o.signal,u=t?AbortSignal.timeout(t):void 0,l=Object.values(this.loop.tasks).filter(p=>p.writes.length===0),{signals:d,disposeCombinedSignal:h}=this._initializeAbortSignals({exceptionSignal:c,stepTimeoutSignal:u,signal:e.signal}),f=this._executeTasksWithRetry(l,{signals:d,retryPolicy:n,maxConcurrency:s});for await(let{task:p,error:m,signalAborted:v}of f)this._commit(p,m),ti(m)||rl(m)&&!ti(i)?i=m:m&&(a.size===0||!v)&&(o.abort(),a.add(m));if(h?.(),r?.(this.loop.step,Object.values(this.loop.tasks).map(p=>p.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(ti(i)||rl(i)&&this.loop.isNested)throw i}_initializeAbortSignals({exceptionSignal:e,stepTimeoutSignal:t,signal:n}){let r=this.loop.config.configurable?.__pregel_abort_signals??{},s=r.externalAbortSignal??n,a=t??r.timeoutAbortSignal,{signal:i,dispose:o}=rd(s,a,e),c={externalAbortSignal:s,timeoutAbortSignal:a,composedAbortSignal:i};return this.loop.config=Yn(this.loop.config,{[VI]:c}),{signals:c,disposeCombinedSignal:o}}async*_executeTasksWithRetry(e,t){let{retryPolicy:n,maxConcurrency:r,signals:s}=t??{},a=LU(),i={},o={executingTasksMap:i,barrier:a,retryPolicy:n,scheduleTask:async(h,f,p)=>this.loop.acceptPush(h,f,p)};if(s?.composedAbortSignal?.aborted)throw new Error("Abort");let c=0,u,l=rd(s?.externalAbortSignal,s?.timeoutAbortSignal),d=l.signal?new Promise((h,f)=>{u=()=>f(new Error("Abort")),l.signal?.addEventListener("abort",u,{once:!0})}):void 0;for(;(c===0||Object.keys(i).length>0)&&e.length;){for(;Object.values(i).length<(r??e.length)&&c<e.length;c+=1){let f=e[c];i[f.id]=h1(f,n,{[h_]:f1?.bind(o,this,f)},s?.composedAbortSignal).catch(p=>({task:f,error:p,signalAborted:s?.composedAbortSignal?.aborted}))}let h=await Promise.race([...Object.values(i),...d?[d]:[],a.wait]);h!==Ig&&(yield h,u!=null&&(l.signal?.removeEventListener("abort",u),l.dispose?.()),delete i[h.task.id])}}_commit(e,t){if(t!==void 0)if(ti(t)){if(t.interrupts.length){let n=t.interrupts.map(s=>[Ot,s]),r=e.writes.filter(s=>s[0]===vs);r.length&&n.push(...r),this.loop.putWrites(e.id,n)}}else rl(t)&&e.writes.length?this.loop.putWrites(e.id,e.writes):this.loop.putWrites(e.id,[[wh,{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([p_,null]),this.loop.putWrites(e.id,e.writes)}};async function f1(e,t,n,r,s,a={}){let i=t.config?.configurable?.[hs];if(!i)throw new Error(`BUG: No scratchpad found on task ${t.name}__${t.id}`);let o=i.callCounter;i.callCounter+=1;let c=new lU({func:n,name:r,input:s,cache:a.cache,retry:a.retry,callbacks:a.callbacks}),u=await this.scheduleTask(t,o,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===bh),h=u.writes.filter(([f])=>f===wh);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(h.length>0){if(h.length===1){let f=h[0][1],p=f instanceof Error?f:new Error(String(f));return Promise.reject(p)}throw new Error(`BUG: multiple errors found for task ${u.name}__${u.id}`)}return}else{let d=h1(u,a.retry,{[h_]:f1.bind(this,e,u)});return this.executingTasksMap[u.id]=d,this.barrier.next(),d.then(({result:h,error:f})=>f?Promise.reject(f):h)}}var Rr=class extends Error{constructor(e){super(e),this.name="GraphValidationError"}};function DU({nodes:e,channels:t,inputChannels:n,outputChannels:r,streamChannels:s,interruptAfterNodes:a,interruptBeforeNodes:i}){if(!t)throw new Rr("Channels not provided");let o=new Set,c=new Set;for(let[u,l]of Object.entries(e)){if(u==="__interrupt__")throw new Rr(`"Node name ${Ot} is reserved"`);if(l.constructor===fc)l.triggers.forEach(d=>o.add(d));else throw new Rr(`Invalid node type ${typeof l}, expected PregelNode`)}for(let u of o)if(!(u in t))throw new Rr(`Subscribed channel '${String(u)}' not in channels`);if(Array.isArray(n)){if(n.every(u=>!o.has(u)))throw new Rr(`None of the input channels ${n} are subscribed to by any node`)}else if(!o.has(n))throw new Rr(`Input channel ${String(n)} is not subscribed to by any node`);Array.isArray(r)?r.forEach(u=>c.add(u)):c.add(r),s&&!Array.isArray(s)?c.add(s):Array.isArray(s)&&s.forEach(u=>c.add(u));for(let u of c)if(!(u in t))throw new Rr(`Output channel '${String(u)}' not in channels`);if(a&&a!=="*"){for(let u of a)if(!(u in e))throw new Rr(`Node ${String(u)} not in nodes`)}if(i&&i!=="*"){for(let u of i)if(!(u in e))throw new Rr(`Node ${String(u)} not in nodes`)}}function E0(e,t){if(Array.isArray(e)){for(let n of e)if(!(n in t))throw new Error(`Key ${String(n)} not found in channels`)}else if(!(e in t))throw new Error(`Key ${String(e)} not found in channels`)}var UU=class p1 extends Ls{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 n=new p1({unique:this.unique,accumulate:this.accumulate});return typeof t<"u"&&(n.seen=new Set(t[0]),n.values=t[1]),n}update(t){let n=!1;this.accumulate||(n=this.values.length>0,this.values=[]);let r=t.flat();if(r.length>0)if(this.unique)for(let s of r)this.seen.has(s)||(n=!0,this.seen.add(s),this.values.push(s));else n=!0,this.values.push(...r);return n}get(){if(this.values.length===0)throw new $t;return this.values}checkpoint(){return[[...this.seen],this.values]}isAvailable(){return this.values.length!==0}};function FU(e){let t=Lt.getRunnableConfig();if(!t)throw new Error("Called interrupt() outside the context of a graph.");let n=t.configurable;if(!n)throw new Error("No configurable found in config");if(!n.__pregel_checkpointer)throw new nl("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let r=n[hs];r.interruptCounter+=1;let s=r.interruptCounter;if(r.resume.length>0&&s<r.resume.length)return n[ds]?.([[vs,r.resume]]),r.resume[s];if(r.nullResume!==void 0){if(r.resume.length!==s)throw new Error(`Resume length mismatch: ${r.resume.length} !== ${s}`);let i=r.consumeNullResume();return r.resume.push(i),n[ds]?.([[vs,r.resume]]),i}let a=n[Zr]?.split("|");throw new pi([{id:a?Hs(a.join("|")):void 0,value:e}])}var BU=class{static subscribeTo(e,t){let{key:n,tags:r}={key:void 0,tags:void 0,...t??{}};if(Array.isArray(e)&&n!==void 0)throw new Error("Can't specify a key when subscribing to multiple channels");let s;return typeof e=="string"?n?s={[n]:e}:s=[e]:s=Object.fromEntries(e.map(a=>[a,a])),new fc({channels:s,triggers:Array.isArray(e)?e:[e],tags:r})}static writeTo(e,t){let n=[];for(let r of e)n.push({channel:r,value:ca,skipNone:!1});for(let[r,s]of Object.entries(t??{}))Me.isRunnable(s)||typeof s=="function"?n.push({channel:r,value:ca,skipNone:!0,mapper:jt(s)}):n.push({channel:r,value:s,skipNone:!1});return new Xt(n)}},ZU=class extends Me{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)}},VU=class extends ZU{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 '${vi}' is reserved and cannot be used in the graph.`);this.channels[vi]=new UU({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=Pn(this.config,e);return new this.constructor({...this,config:t})}validate(){DU({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 n of t.triggers)this.triggerToNodes[n]??=[],this.triggerToNodes[n].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[n,r]of Object.entries(this.nodes)){if(e!==void 0&&!e.startsWith(n))continue;let s=r.subgraphs?.length?r.subgraphs:[r.bound];for(let a of s){let i=YT(a);if(i!==void 0){if(n===e){yield[n,i];return}if(e===void 0&&(yield[n,i]),t){let o=e;e!==void 0&&(o=e.slice(n.length+1));for(let[c,u]of i.getSubgraphs(o,t))yield[`${n}|${c}`,u]}}}}}async*getSubgraphsAsync(e,t){yield*this.getSubgraphs(e,t)}async _prepareStateSnapshot({config:e,saved:t,subgraphCheckpointer:n,applyPendingWrites:r=!1}){if(t===void 0)return{values:{},next:[],config:e,tasks:[]};let s=Ql(this.channels,t.checkpoint);if(t.pendingWrites?.length){let d=t.pendingWrites.filter(([h,f])=>h===yr).map(([h,f,p])=>[String(f),p]);d.length>0&&xn(t.checkpoint,s,[{name:is,writes:d,triggers:[]}],void 0,this.triggerToNodes)}let a=Object.values(ci(t.checkpoint,t.pendingWrites,this.nodes,s,t.config,!0,{step:(t.metadata?.step??-1)+1,store:this.store})),i=await os(this.getSubgraphsAsync()),o=t.config.configurable?.checkpoint_ns??"",c={};for(let d of a){let h=i.find(([p])=>p===d.name);if(!h)continue;let f=`${String(d.name)}:${d.id}`;if(o&&(f=`${o}|${f}`),n===void 0){let p={configurable:{thread_id:t.config.configurable?.thread_id,checkpoint_ns:f}};c[d.id]=p}else{let p={configurable:{[Br]:n,thread_id:t.config.configurable?.thread_id,checkpoint_ns:f}},m=h[1];c[d.id]=await m.getState(p,{subgraphs:!0})}}if(r&&t.pendingWrites?.length){let d=Object.fromEntries(a.map(f=>[f.id,f]));for(let[f,p,m]of t.pendingWrites)["__error__","__interrupt__",sl].includes(p)||f in d&&d[f].writes.push([String(p),m]);let h=a.filter(f=>f.writes.length>0);h.length>0&&xn(t.checkpoint,s,h,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:ga(s,this.streamChannelsAsIs),next:l,tasks:c1(a,t?.pendingWrites??[],c,this.streamChannelsAsIs),metadata:u,config:Bs(t.config,t.metadata),createdAt:t.checkpoint.ts,parentConfig:t.parentConfig}}async getState(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new nl("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let r=e.configurable?.checkpoint_ns??"";if(r!==""&&e.configurable?.__pregel_checkpointer===void 0){let i=Pp(r);for await(let[o,c]of this.getSubgraphsAsync(i,!0))if(o===i)return await c.getState(Ua(e,{[Br]:n}),{subgraphs:t?.subgraphs})}let s=Pn(this.config,e),a=await n.getTuple(e);return await this._prepareStateSnapshot({config:s,saved:a,subgraphCheckpointer:t?.subgraphs?n:void 0,applyPendingWrites:!e.configurable?.checkpoint_id})}async*getStateHistory(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new nl("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});let r=e.configurable?.checkpoint_ns??"";if(r!==""&&e.configurable?.__pregel_checkpointer===void 0){let a=Pp(r);for await(let[i,o]of this.getSubgraphsAsync(a,!0))if(i===a){yield*o.getStateHistory(Ua(e,{[Br]:n}),t);return}}let s=Pn(this.config,e,{configurable:{checkpoint_ns:r}});for await(let a of n.list(s,t))yield this._prepareStateSnapshot({config:a.config,saved:a})}async bulkUpdateState(e,t){let n=e.configurable?.__pregel_checkpointer??this.checkpointer;if(!n)throw new nl("No checkpointer set",{lc_error_code:"MISSING_CHECKPOINTER"});if(t.length===0)throw new Error("No supersteps provided");if(t.some(i=>i.updates.length===0))throw new Error("No updates provided");let r=e.configurable?.checkpoint_ns??"";if(r!==""&&e.configurable?.__pregel_checkpointer===void 0){let i=Pp(r);for await(let[,o]of this.getSubgraphsAsync(i,!0))return await o.bulkUpdateState(Ua(e,{[Br]:n}),t);throw new Error(`Subgraph "${i}" not found`)}let s=async(i,o)=>{let c=this.config?Pn(this.config,i):i,u=await n.getTuple(c),l=u!==void 0?Yl(u.checkpoint):VT(),d={...u?.checkpoint.channel_versions},h=u?.metadata?.step??-1,f=Ua(c,{checkpoint_ns:c.configurable?.checkpoint_ns??""}),p=c.metadata??{};u?.config.configurable&&(f=Ua(c,u.config.configurable),p={...u.metadata,...p});let{values:m,asNode:v}=o[0];if(m==null&&v===void 0){if(o.length>1)throw new Ye("Cannot create empty checkpoint with multiple updates");return Bs(await n.put(f,Ks(l,void 0,h),{source:"update",step:h+1,parents:u?.metadata?.parents??{}},{}),u?u.metadata:void 0)}let g=Ql(this.channels,l);if(m===null&&v==="__end__"){if(o.length>1)throw new Ye("Cannot apply multiple updates when clearing state");if(u){let O=ci(l,u.pendingWrites||[],this.nodes,g,u.config,!0,{step:(u.metadata?.step??-1)+1,checkpointer:n,store:this.store}),w=(u.pendingWrites||[]).filter(M=>M[0]===yr).map(M=>M.slice(1));w.length>0&&xn(l,g,[{name:is,writes:w,triggers:[]}],n.getNextVersion.bind(n),this.triggerToNodes);for(let[M,$,P]of u.pendingWrites||[])["__error__","__interrupt__",sl].includes($)||M in O&&O[M].writes.push([$,P]);xn(l,g,Object.values(O),n.getNextVersion.bind(n),this.triggerToNodes)}return Bs(await n.put(f,Ks(l,g,h),{...p,source:"update",step:h+1,parents:u?.metadata?.parents??{}},yl(d,l.channel_versions)),u?u.metadata:void 0)}if(v==="__copy__"){if(o.length>1)throw new Ye("Cannot copy checkpoint with multiple updates");if(u==null)throw new Ye("Cannot copy a non-existent checkpoint");let O=$=>!Array.isArray($)||$.length===0?!1:$.every(P=>Array.isArray(P)&&P.length===2),w=Ks(l,void 0,h),M=await n.put(u.parentConfig??Ua(u.config,{checkpoint_id:void 0}),w,{source:"fork",step:h+1,parents:u.metadata?.parents??{}},{});if(O(m)){let $=ci(w,u.pendingWrites,this.nodes,g,M,!1,{step:h+2}),P=Object.values($).reduce((Le,{name:Z,id:z})=>(Le[Z]??=[],Le[Z].push({id:z}),Le),{}),pe=m.reduce((Le,Z)=>{let[z,U]=Z;Le[U]??=[];let ee=Le[U].length,oe=P[U]?.[ee]?.id;return Le[U].push({values:z,asNode:U,taskId:oe}),Le},{});return s(Bs(M,u.metadata),Object.values(pe).flat())}return Bs(M,u.metadata)}if(v==="__input__"){if(o.length>1)throw new Ye("Cannot apply multiple updates when updating as input");let O=await os(i1(this.inputChannels,m));if(O.length===0)throw new Ye(`Received no input writes for ${JSON.stringify(this.inputChannels,null,2)}`);xn(l,g,[{name:is,writes:O,triggers:[]}],n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let w=u?.metadata?.step!=null?u.metadata.step+1:-1,M=await n.put(f,Ks(l,g,w),{source:"input",step:w,parents:u?.metadata?.parents??{}},yl(d,l.channel_versions));return await n.putWrites(M,O,ni(is,l.id)),Bs(M,u?u.metadata:void 0)}if(c.configurable?.checkpoint_id===void 0&&u?.pendingWrites!==void 0&&u.pendingWrites.length>0){let O=ci(l,u.pendingWrites,this.nodes,g,u.config,!0,{store:this.store,checkpointer:this.checkpointer,step:(u.metadata?.step??-1)+1}),w=(u.pendingWrites??[]).filter($=>$[0]===yr).map($=>$.slice(1));w.length>0&&xn(u.checkpoint,g,[{name:is,writes:w,triggers:[]}],void 0,this.triggerToNodes);for(let[$,P,pe]of u.pendingWrites)["__error__","__interrupt__",sl].includes(P)||O[$]===void 0||O[$].writes.push([P,pe]);let M=Object.values(O).filter($=>$.writes.length>0);M.length>0&&xn(l,g,M,void 0,this.triggerToNodes)}let _=Object.values(l.versions_seen).map(O=>Object.values(O)).flat().find(O=>!!O),k=[];if(o.length===1){let{values:O,asNode:w,taskId:M}=o[0];if(w===void 0&&Object.keys(this.nodes).length===1)[w]=Object.keys(this.nodes);else if(w===void 0&&_===void 0)typeof this.inputChannels=="string"&&this.nodes[this.inputChannels]!==void 0&&(w=this.inputChannels);else if(w===void 0){let $=Object.entries(l.versions_seen).map(([P,pe])=>Object.values(pe).map(Le=>[Le,P])).flat().filter(([P,pe])=>pe!==Ot).sort(([P],[pe])=>qT(P,pe));$&&($.length===1?w=$[0][1]:$[$.length-1][0]!==$[$.length-2][0]&&(w=$[$.length-1][1]))}if(w===void 0)throw new Ye('Ambiguous update, specify "asNode"');k.push({values:O,asNode:w,taskId:M})}else for(let{asNode:O,values:w,taskId:M}of o){if(O==null)throw new Ye('"asNode" is required when applying multiple updates');k.push({values:w,asNode:O,taskId:M})}let S=[];for(let{asNode:O,values:w,taskId:M}of k){if(this.nodes[O]===void 0)throw new Ye(`Node "${O.toString()}" does not exist`);let $=this.nodes[O].getWriters();if(!$.length)throw new Ye(`No writers found for node "${O.toString()}"`);S.push({name:O,input:w,proc:$.length>1?Ts.from($,{omitSequenceTags:!0}):$[0],writes:[],triggers:[Ot],id:M??ni("__interrupt__",l.id),writers:[]})}for(let O of S)await O.proc.invoke(O.input,qe({...c,store:c?.store??this.store},{runName:c.runName??`${this.getName()}UpdateState`,configurable:{[ds]:w=>O.writes.push(...w),[ra]:(w,M=!1)=>vl(l,g,O,w,M)}}));for(let O of S){let w=O.writes.filter(M=>M[0]!==Vr);u!==void 0&&w.length>0&&await n.putWrites(f,w,O.id)}xn(l,g,S,n.getNextVersion.bind(this.checkpointer),this.triggerToNodes);let E=yl(d,l.channel_versions),I=await n.put(f,Ks(l,g,h+1),{source:"update",step:h+1,parents:u?.metadata?.parents??{}},E);for(let O of S){let w=O.writes.filter(M=>M[0]===Vr);w.length>0&&await n.putWrites(I,w,O.id)}return Bs(I,u?u.metadata:void 0)},a=e;for(let{updates:i}of t)a=await s(a,i);return a}async updateState(e,t,n){return this.bulkUpdateState(e,[{updates:[{values:t,asNode:n}]}])}_defaults(e){let{debug:t,streamMode:n,inputKeys:r,outputKeys:s,interruptAfter:a,interruptBefore:i,...o}=e,c=!0,u=t!==void 0?t:this.debug,l=s;l===void 0?l=this.streamChannelsAsIs:E0(l,this.channels);let d=r;d===void 0?d=this.inputChannels:E0(d,this.channels);let h=i??this.interruptBefore??[],f=a??this.interruptAfter??[],p;n!==void 0?(p=Array.isArray(n)?n:[n],c=typeof n=="string"):(e.configurable?.__pregel_task_id!==void 0?p=["values"]:p=this.streamMode,c=!0);let m;if(this.checkpointer===!1)m=void 0;else if(e!==void 0&&e.configurable?.__pregel_checkpointer!==void 0)m=e.configurable[Br];else{if(this.checkpointer===!0)throw new Error("checkpointer: true cannot be used for root graphs.");m=this.checkpointer}let v=e.store??this.store,g=e.cache??this.cache;if(e.durability!=null&&e.checkpointDuring!=null)throw new Error("Cannot use both `durability` and `checkpointDuring` at the same time.");let _=(()=>{if(e.checkpointDuring!=null)return e.checkpointDuring===!1?"exit":"async"})(),k=e.durability??_??e?.configurable?.__pregel_durability??"async";return[u,p,d,l,o,h,f,m,v,c,g,k]}async stream(e,t){let n=new AbortController,r={recursionLimit:this.config?.recursionLimit,...t,signal:rd(t?.signal,n.signal).signal},s=await super.stream(e,r);return new b0(t?.encoding==="text/event-stream"?IU(s):s,n)}streamEvents(e,t,n){let r=new AbortController,s={recursionLimit:this.config?.recursionLimit,...t,callbacks:uU(this.config?.callbacks,t?.callbacks),signal:rd(t?.signal,r.signal).signal};return new b0(super.streamEvents(e,s,n),r)}async _validateInput(e){return e}async _validateContext(e){return e}async*_streamIterator(e,t){let n="version"in(t??{})?void 0:t?.encoding??void 0,r=t?.subgraphs,s=KT(this.config,t);if(s.recursionLimit===void 0||s.recursionLimit<1)throw new Error('Passed "recursionLimit" must be at least 1.');if(this.checkpointer!==void 0&&this.checkpointer!==!1&&s.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:i,...o}=s,[c,u,,l,d,h,f,p,m,v,g,_]=this._defaults(o);typeof d.context<"u"?d.context=await this._validateContext(d.context):d.configurable=await this._validateContext(d.configurable);let k=new l1({modes:new Set(u)});if(this.checkpointer===!0){d.configurable??={};let $=d.configurable.checkpoint_ns??"";d.configurable[Zr]=$.split("|").map(P=>P.split(":")[0]).join("|")}if(u.includes("messages")){let $=new PU(pe=>k.push(pe)),{callbacks:P}=d;if(P===void 0)d.callbacks=[$];else if(Array.isArray(P))d.callbacks=P.concat($);else{let pe=P.copy();pe.addHandler($,!0),d.callbacks=pe}}if(u.includes("tools")){let $=new xU(pe=>k.push(pe)),{callbacks:P}=d;if(P===void 0)d.callbacks=[$];else if(Array.isArray(P))d.callbacks=P.concat($);else{let pe=P.copy();pe.addHandler($,!0),d.callbacks=pe}}d.writer??=$=>{if(!u.includes("custom"))return;let P=jD()?.configurable?.[Zr]?.split("|").slice(0,-1);k.push([P??[],"custom",$])},d.interrupt??=this.userInterrupt??FU;let S=await(await tn(d))?.handleChainStart(this.toJSON(),cU(e,"input"),i,void 0,void 0,void 0,d?.runName??this.getName()),E=$y(this.channels),I,O,M=(async()=>{try{I=await RU.initialize({input:a,config:d,checkpointer:p,nodes:this.nodes,channelSpecs:E,outputKeys:l,streamKeys:this.streamChannelsAsIs,store:m,cache:g,stream:k,interruptAfter:f,interruptBefore:h,manager:S,debug:this.debug,triggerToNodes:this.triggerToNodes,durability:_});let $=new zU({loop:I,nodeFinished:d.configurable?.[ZI]});t?.subgraphs&&(I.config.configurable={...I.config.configurable,[f_]:I.stream}),await this._runLoop({loop:I,runner:$,debug:c,config:d}),_==="sync"&&await Promise.all(I?.checkpointerPromises??[])}catch($){O=$}finally{try{I&&(await I.store?.stop(),await I.cache?.stop()),await Promise.all(I?.checkpointerPromises??[])}catch($){O=O??$}O?k.error(O):k.close()}})();try{for await(let $ of k){if($===void 0)throw new Error("Data structure error.");let[P,pe,Le]=$;if(u.includes(pe)){if(n==="text/event-stream"){r?yield[P,pe,Le]:yield[null,pe,Le];continue}r&&!v?yield[P,pe,Le]:v?r?yield[P,Le]:yield Le:yield[pe,Le]}}}catch($){throw await S?.handleChainError(O),$}finally{await M}await S?.handleChainEnd(I?.output??{},i,void 0,void 0,void 0)}async invoke(e,t){let n=t?.streamMode??"values",r={...t,outputKeys:t?.outputKeys??this.outputChannels,streamMode:n,encoding:void 0},s=[],a=await this.stream(e,r),i=[],o;for await(let c of a)n==="values"?nS(c)?i.push(c[Ot]):o=c:s.push(c);if(n==="values"){if(i.length>0){let c=i.flat(1);if(o==null)return{[Ot]:c};if(typeof o=="object")return{...o,[Ot]:c}}return o}return s}async _runLoop(e){let{loop:t,runner:n,debug:r,config:s}=e,a;try{for(;await t.tick({inputKeys:this.inputChannels});){for(let{task:i}of await t._matchCachedWrites())t._outputWrites(i.id,i.writes,!0);r&&SU(t.checkpointMetadata.step,t.channels,this.streamChannelsList),r&&u1(t.step,Object.values(t.tasks)),await n.tick({timeout:this.stepTimeout,retryPolicy:this.retryPolicy,onStepWrite:(i,o)=>{r&&EU(i,o,this.streamChannelsList)},maxConcurrency:s.maxConcurrency,signal:s.signal})}if(t.status==="out_of_steps")throw new JI([`Recursion limit of ${s.recursionLimit} reached`,"without hitting a stop condition. You can increase the",'limit by setting the "recursionLimit" config key.'].join(" "),{lc_error_code:"GRAPH_RECURSION_LIMIT"})}catch(i){if(a=i,!await t.finishAndHandleError(a))throw i}finally{a===void 0&&await t.finishAndHandleError()}}async clearCache(){await this.cache?.clear([])}},Pi=class m1 extends Ls{lc_graph_name="EphemeralValue";guard;value=[];constructor(t=!0){super(),this.guard=t}fromCheckpoint(t){let n=new m1(this.guard);return typeof t<"u"&&(n.value=[t]),n}update(t){if(t.length===0){let n=this.value.length>0;return this.value=[],n}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 $t;return this.value[0]}checkpoint(){if(this.value.length===0)throw new $t;return this.value[0]}isAvailable(){return this.value.length!==0}};function Re(e,t,n){function r(o,c){var u;Object.defineProperty(o,"_zod",{value:o._zod??{},enumerable:!1}),(u=o._zod).traits??(u.traits=new Set),o._zod.traits.add(e),t(o,c);for(let l in i.prototype)l in o||Object.defineProperty(o,l,{value:i.prototype[l].bind(o)});o._zod.constr=i,o._zod.def=c}let s=n?.Parent??Object;class a extends s{}Object.defineProperty(a,"name",{value:e});function i(o){var c;let u=n?.Parent?new a:this;r(u,o),(c=u._zod).deferred??(c.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(i,"init",{value:r}),Object.defineProperty(i,Symbol.hasInstance,{value:o=>n?.Parent&&o instanceof n.Parent?!0:o?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}var gc=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},qU={};function _a(e){return qU}function HU(e,t){return typeof t=="bigint"?t.toString():t}function Py(e){return e==null}function My(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function ut(e,t,n){Object.defineProperty(e,t,{get(){{let r=n();return e[t]=r,r}},set(r){Object.defineProperty(e,t,{value:r})},configurable:!0})}var g1=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function x0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function T0(e){if(x0(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(x0(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function GU(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function zs(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Ho(e,t=0){for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function WU(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function zu(e){return typeof e=="string"?e:e?.message}function ya(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let s=zu(e.inst?._zod.def?.error?.(e))??zu(t?.error?.(e))??zu(n.customError?.(e))??zu(n.localeError?.(e))??"Invalid input";r.message=s}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function jy(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function _c(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}var _1=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,HU,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},y1=Re("$ZodError",_1),v1=Re("$ZodError",_1,{Parent:Error});function JU(e,t=n=>n.message){let n={},r=[];for(let s of e.issues)s.path.length>0?(n[s.path[0]]=n[s.path[0]]||[],n[s.path[0]].push(t(s))):r.push(t(s));return{formErrors:r,fieldErrors:n}}function KU(e,t){let n=t||function(a){return a.message},r={_errors:[]},s=a=>{for(let i of a.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(o=>s({issues:o}));else if(i.code==="invalid_key")s({issues:i.issues});else if(i.code==="invalid_element")s({issues:i.issues});else if(i.path.length===0)r._errors.push(n(i));else{let o=r,c=0;for(;c<i.path.length;){let u=i.path[c];c===i.path.length-1?(o[u]=o[u]||{_errors:[]},o[u]._errors.push(n(i))):o[u]=o[u]||{_errors:[]},o=o[u],c++}}};return s(e),r}var XU=e=>(t,n,r,s)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},i=t._zod.run({value:n,issues:[]},a);if(i instanceof Promise)throw new gc;if(i.issues.length){let o=new(s?.Err??e)(i.issues.map(c=>ya(c,a,_a())));throw g1(o,s?.callee),o}return i.value},YU=e=>async(t,n,r,s)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},i=t._zod.run({value:n,issues:[]},a);if(i instanceof Promise&&(i=await i),i.issues.length){let o=new(s?.Err??e)(i.issues.map(c=>ya(c,a,_a())));throw g1(o,s?.callee),o}return i.value},w1=e=>(t,n,r)=>{let s=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},s);if(a instanceof Promise)throw new gc;return a.issues.length?{success:!1,error:new(e??y1)(a.issues.map(i=>ya(i,s,_a())))}:{success:!0,data:a.value}},QU=w1(v1),b1=e=>async(t,n,r)=>{let s=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},s);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(i=>ya(i,s,_a())))}:{success:!0,data:a.value}},e9=b1(v1),oo=Re("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),t9=Re("$ZodCheckMaxLength",(e,t)=>{var n;oo.init(e,t),(n=e._zod.def).when??(n.when=r=>{let s=r.value;return!Py(s)&&s.length!==void 0}),e._zod.onattach.push(r=>{let s=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<s&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{let s=r.value;if(s.length<=t.maximum)return;let i=jy(s);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),n9=Re("$ZodCheckMinLength",(e,t)=>{var n;oo.init(e,t),(n=e._zod.def).when??(n.when=r=>{let s=r.value;return!Py(s)&&s.length!==void 0}),e._zod.onattach.push(r=>{let s=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>s&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{let s=r.value;if(s.length>=t.minimum)return;let i=jy(s);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:s,inst:e,continue:!t.abort})}}),r9=Re("$ZodCheckLengthEquals",(e,t)=>{var n;oo.init(e,t),(n=e._zod.def).when??(n.when=r=>{let s=r.value;return!Py(s)&&s.length!==void 0}),e._zod.onattach.push(r=>{let s=r._zod.bag;s.minimum=t.length,s.maximum=t.length,s.length=t.length}),e._zod.check=r=>{let s=r.value,a=s.length;if(a===t.length)return;let i=jy(s),o=a>t.length;r.issues.push({origin:i,...o?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),s9=Re("$ZodCheckOverwrite",(e,t)=>{oo.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}}),a9={major:4,minor:0,patch:0},an=Re("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=a9;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let s of r)for(let a of s._zod.onattach)a(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let s=(a,i,o)=>{let c=Ho(a),u;for(let l of i){if(l._zod.def.when){if(!l._zod.def.when(a))continue}else if(c)continue;let d=a.issues.length,h=l._zod.check(a);if(h instanceof Promise&&o?.async===!1)throw new gc;if(u||h instanceof Promise)u=(u??Promise.resolve()).then(async()=>{await h,a.issues.length!==d&&(c||(c=Ho(a,d)))});else{if(a.issues.length===d)continue;c||(c=Ho(a,d))}}return u?u.then(()=>a):a};e._zod.run=(a,i)=>{let o=e._zod.parse(a,i);if(o instanceof Promise){if(i.async===!1)throw new gc;return o.then(c=>s(c,r,i))}return s(o,r,i)}}e["~standard"]={validate:s=>{try{let a=QU(e,s);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return e9(e,s).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}}),i9=Re("$ZodAny",(e,t)=>{an.init(e,t),e._zod.parse=n=>n});function O0(e,t,n){e.issues.length&&t.issues.push(...WU(n,e.issues)),t.value[n]=e.value}var o9=Re("$ZodArray",(e,t)=>{an.init(e,t),e._zod.parse=(n,r)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({expected:"array",code:"invalid_type",input:s,inst:e}),n;n.value=Array(s.length);let a=[];for(let i=0;i<s.length;i++){let o=s[i],c=t.element._zod.run({value:o,issues:[]},r);c instanceof Promise?a.push(c.then(u=>O0(u,n,i))):O0(c,n,i)}return a.length?Promise.all(a).then(()=>n):n}});function I0(e,t,n,r){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(a=>ya(a,r,_a())))}),t}var c9=Re("$ZodUnion",(e,t)=>{an.init(e,t),ut(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),ut(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),ut(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),ut(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>My(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let s=!1,a=[];for(let i of t.options){let o=i._zod.run({value:n.value,issues:[]},r);if(o instanceof Promise)a.push(o),s=!0;else{if(o.issues.length===0)return o;a.push(o)}}return s?Promise.all(a).then(i=>I0(i,n,e,r)):I0(a,n,e,r)}}),u9=Re("$ZodIntersection",(e,t)=>{an.init(e,t),e._zod.parse=(n,r)=>{let s=n.value,a=t.left._zod.run({value:s,issues:[]},r),i=t.right._zod.run({value:s,issues:[]},r);return a instanceof Promise||i instanceof Promise?Promise.all([a,i]).then(([c,u])=>$0(n,c,u)):$0(n,a,i)}});function $g(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(T0(e)&&T0(t)){let n=Object.keys(t),r=Object.keys(e).filter(a=>n.indexOf(a)!==-1),s={...e,...t};for(let a of r){let i=$g(e[a],t[a]);if(!i.valid)return{valid:!1,mergeErrorPath:[a,...i.mergeErrorPath]};s[a]=i.data}return{valid:!0,data:s}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let s=e[r],a=t[r],i=$g(s,a);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function $0(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),Ho(e))return e;let r=$g(t.value,n.value);if(!r.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}var l9=Re("$ZodTransform",(e,t)=>{an.init(e,t),e._zod.parse=(n,r)=>{let s=t.transform(n.value,n);if(r.async)return(s instanceof Promise?s:Promise.resolve(s)).then(i=>(n.value=i,n));if(s instanceof Promise)throw new gc;return n.value=s,n}}),d9=Re("$ZodOptional",(e,t)=>{an.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ut(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ut(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${My(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),h9=Re("$ZodNullable",(e,t)=>{an.init(e,t),ut(e._zod,"optin",()=>t.innerType._zod.optin),ut(e._zod,"optout",()=>t.innerType._zod.optout),ut(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${My(n.source)}|null)$`):void 0}),ut(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),f9=Re("$ZodDefault",(e,t)=>{an.init(e,t),e._zod.optin="optional",ut(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let s=t.innerType._zod.run(n,r);return s instanceof Promise?s.then(a=>C0(a,t)):C0(s,t)}});function C0(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var p9=Re("$ZodPrefault",(e,t)=>{an.init(e,t),e._zod.optin="optional",ut(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),m9=Re("$ZodNonOptional",(e,t)=>{an.init(e,t),ut(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let s=t.innerType._zod.run(n,r);return s instanceof Promise?s.then(a=>A0(a,e)):A0(s,e)}});function A0(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var g9=Re("$ZodCatch",(e,t)=>{an.init(e,t),e._zod.optin="optional",ut(e._zod,"optout",()=>t.innerType._zod.optout),ut(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let s=t.innerType._zod.run(n,r);return s instanceof Promise?s.then(a=>(n.value=a.value,a.issues.length&&(n.value=t.catchValue({...n,error:{issues:a.issues.map(i=>ya(i,r,_a()))},input:n.value}),n.issues=[]),n)):(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(a=>ya(a,r,_a()))},input:n.value}),n.issues=[]),n)}}),_9=Re("$ZodPipe",(e,t)=>{an.init(e,t),ut(e._zod,"values",()=>t.in._zod.values),ut(e._zod,"optin",()=>t.in._zod.optin),ut(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let s=t.in._zod.run(n,r);return s instanceof Promise?s.then(a=>R0(a,t,r)):R0(s,t,r)}});function R0(e,t,n){return Ho(e)?e:t.out._zod.run({value:e.value,issues:e.issues},n)}var y9=Re("$ZodReadonly",(e,t)=>{an.init(e,t),ut(e._zod,"propValues",()=>t.innerType._zod.propValues),ut(e._zod,"values",()=>t.innerType._zod.values),ut(e._zod,"optin",()=>t.innerType._zod.optin),ut(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let s=t.innerType._zod.run(n,r);return s instanceof Promise?s.then(N0):N0(s)}});function N0(e){return e.value=Object.freeze(e.value),e}var v9=Re("$ZodCustom",(e,t)=>{oo.init(e,t),an.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,s=t.fn(r);if(s instanceof Promise)return s.then(a=>P0(a,n,r,e));P0(s,n,r,e)}});function P0(e,t,n,r){if(!e){let s={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(s.params=r._zod.def.params),t.issues.push(_c(s))}}var w9=class{constructor(){this._map=new Map,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(t){let n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};function b9(){return new w9}var Du=b9();function k9(e){return new e({type:"any"})}function S9(e,t){return new t9({check:"max_length",...zs(t),maximum:e})}function M0(e,t){return new n9({check:"min_length",...zs(t),minimum:e})}function E9(e,t){return new r9({check:"length_equals",...zs(t),length:e})}function x9(e){return new s9({check:"overwrite",tx:e})}function T9(e,t,n){return new e({type:"array",element:t,...zs(n)})}function O9(e,t,n){let r=zs(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function I9(e,t,n){return new e({type:"custom",check:"custom",fn:t,...zs(n)})}var $9=(e,t)=>{y1.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>KU(e,n)},flatten:{value:n=>JU(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Xh=Re("ZodError",$9,{Parent:Error}),C9=XU(Xh),A9=YU(Xh),R9=w1(Xh),N9=b1(Xh),vn=Re("ZodType",(e,t)=>(an.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>GU(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>C9(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>R9(e,n,r),e.parseAsync=async(n,r)=>A9(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>N9(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(r5(n,r)),e.superRefine=n=>e.check(s5(n)),e.overwrite=n=>e.check(x9(n)),e.optional=()=>j0(e),e.nullable=()=>L0(e),e.nullish=()=>j0(L0(e)),e.nonoptional=n=>K9(e,n),e.array=()=>j9(e),e.or=n=>z9([e,n]),e.and=n=>U9(e,n),e.transform=n=>z0(e,B9(n)),e.default=n=>H9(e,n),e.prefault=n=>W9(e,n),e.catch=n=>Y9(e,n),e.pipe=n=>z0(e,n),e.readonly=()=>t5(e),e.describe=n=>{let r=e.clone();return Du.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return Du.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Du.get(e);let r=e.clone();return Du.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),P9=Re("ZodAny",(e,t)=>{i9.init(e,t),vn.init(e,t)});function Uu(){return k9(P9)}var M9=Re("ZodArray",(e,t)=>{o9.init(e,t),vn.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(M0(n,r)),e.nonempty=n=>e.check(M0(1,n)),e.max=(n,r)=>e.check(S9(n,r)),e.length=(n,r)=>e.check(E9(n,r)),e.unwrap=()=>e.element});function j9(e,t){return T9(M9,e,t)}var L9=Re("ZodUnion",(e,t)=>{c9.init(e,t),vn.init(e,t),e.options=t.options});function z9(e,t){return new L9({type:"union",options:e,...zs(t)})}var D9=Re("ZodIntersection",(e,t)=>{u9.init(e,t),vn.init(e,t)});function U9(e,t){return new D9({type:"intersection",left:e,right:t})}var F9=Re("ZodTransform",(e,t)=>{l9.init(e,t),vn.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=a=>{if(typeof a=="string")n.issues.push(_c(a,n.value,t));else{let i=a;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),i.continue??(i.continue=!0),n.issues.push(_c(i))}};let s=t.transform(n.value,n);return s instanceof Promise?s.then(a=>(n.value=a,n)):(n.value=s,n)}});function B9(e){return new F9({type:"transform",transform:e})}var Z9=Re("ZodOptional",(e,t)=>{d9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function j0(e){return new Z9({type:"optional",innerType:e})}var V9=Re("ZodNullable",(e,t)=>{h9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function L0(e){return new V9({type:"nullable",innerType:e})}var q9=Re("ZodDefault",(e,t)=>{f9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function H9(e,t){return new q9({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}var G9=Re("ZodPrefault",(e,t)=>{p9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function W9(e,t){return new G9({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}var J9=Re("ZodNonOptional",(e,t)=>{m9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType});function K9(e,t){return new J9({type:"nonoptional",innerType:e,...zs(t)})}var X9=Re("ZodCatch",(e,t)=>{g9.init(e,t),vn.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Y9(e,t){return new X9({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Q9=Re("ZodPipe",(e,t)=>{_9.init(e,t),vn.init(e,t),e.in=t.in,e.out=t.out});function z0(e,t){return new Q9({type:"pipe",in:e,out:t})}var e5=Re("ZodReadonly",(e,t)=>{y9.init(e,t),vn.init(e,t)});function t5(e){return new e5({type:"readonly",innerType:e})}var k1=Re("ZodCustom",(e,t)=>{v9.init(e,t),vn.init(e,t)});function n5(e){let t=new oo({check:"custom"});return t._zod.check=e,t}function D0(e,t){return O9(k1,(()=>!0),t)}function r5(e,t={}){return I9(k1,e,t)}function s5(e){let t=n5(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(_c(r,n.value,t._zod.def));else{let s=r;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=t),s.continue??(s.continue=!t._zod.def.abort),n.issues.push(_c(s))}},e(n.value,n)));return t}var S1=class{path;ends;constructor(e){Me.isRunnable(e.path)?this.path=e.path:this.path=jt(e.path),this.ends=Array.isArray(e.pathMap)?e.pathMap.reduce((t,n)=>(t[n]=n,t),{}):e.pathMap}run(e,t){return Xt.registerWriter(new Pa({name:"<branch_run>",trace:!1,func:async(n,r)=>{try{return await this._route(n,r,e,t)}catch(s){throw s.name===m_.unminifiable_name&&console.warn(`[WARN]: 'NodeInterrupt' thrown in conditional edge. This is likely a bug in your graph implementation.
624
624
  NodeInterrupt should only be thrown inside a node, not in edge conditions.`),s}}}))}async _route(e,t,n,r){let s=await this.path.invoke(r?r(t):e,t);Array.isArray(s)||(s=[s]);let a;if(this.ends?a=s.map(i=>pn(i)?i:this.ends[i]):a=s,a.some(i=>!i))throw new Error("Branch condition returned unknown or null destination");if(a.filter(pn).some(i=>i.node==="__end__"))throw new Ye("Cannot send a packet to the END node");return await n(a,t)??e}},a5=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(r){return r.length>=1&&typeof r[0]!="string"}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]):[[e[0],e[1],e[2]]];if(n.length===0)throw new Error("No nodes provided in `addNode`");for(let[r,s,a]of n){for(let o of["|",":"])if(r.includes(o))throw new Error(`"${o}" is a reserved character and is not allowed in node names.`);if(this.warnIfCompiled("Adding a node to a graph that has already been compiled. This will not be reflected in the compiled graph."),r in this.nodes)throw new Error(`Node \`${r}\` already present.`);if(r==="__end__")throw new Error(`Node \`${r}\` is reserved.`);let i=jt(s);this.nodes[r]={runnable:i,metadata:a?.metadata,subgraphs:Cy(i)?[i]: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(([n])=>n===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,n){let r=typeof e=="object"?e:{source:e,path:t,pathMap:n};this.warnIfCompiled("Adding an edge to a graph that has already been compiled. This will not be reflected in the compiled graph."),Me.isRunnable(r.path)||(r.path=jt(r.path));let s=r.path.getName()==="RunnableLambda"?"condition":r.path.getName();if(this.branches[r.source]&&this.branches[r.source][s])throw new Error(`Condition \`${s}\` already present for node \`${e}\``);return this.branches[r.source]??={},this.branches[r.source][s]=new S1(r),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(bt,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,Tt)}compile({checkpointer:e,interruptBefore:t,interruptAfter:n,name:r}={}){this.validate([...Array.isArray(t)?t:[],...Array.isArray(n)?n:[]]);let s=new E1({builder:this,checkpointer:e,interruptAfter:n,interruptBefore:t,autoValidate:!1,nodes:{},channels:{[bt]:new Pi,[Tt]:new Pi},inputChannels:bt,outputChannels:Tt,streamChannels:[],streamMode:"values",name:r});for(let[a,i]of Object.entries(this.nodes))s.attachNode(a,i);for(let[a,i]of this.edges)s.attachEdge(a,i);for(let[a,i]of Object.entries(this.branches))for(let[o,c]of Object.entries(i))s.attachBranch(a,o,c);return s.validate()}validate(e){let t=new Set([...this.allEdges].map(([r,s])=>r));for(let[r]of Object.entries(this.branches))t.add(r);for(let r of t)if(r!=="__start__"&&!(r in this.nodes))throw new Error(`Found edge starting at unknown node \`${r}\``);let n=new Set([...this.allEdges].map(([r,s])=>s));for(let[r,s]of Object.entries(this.branches))for(let a of Object.values(s))if(a.ends!=null)for(let i of Object.values(a.ends))n.add(i);else{n.add(Tt);for(let i of Object.keys(this.nodes))i!==r&&n.add(i)}for(let r of Object.values(this.nodes))for(let s of r.ends??[])n.add(s);for(let r of Object.keys(this.nodes))if(!n.has(r))throw new XI([`Node \`${r}\` 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(`
625
625
  `),{lc_error_code:"UNREACHABLE_NODE"});for(let r of n)if(r!=="__end__"&&!(r in this.nodes))throw new Error(`Found edge ending at unknown node \`${r}\``);if(e){for(let r of e)if(!(r in this.nodes))throw new Error(`Interrupt node \`${r}\` is not present`)}this.compiled=!0}},E1=class extends VU{builder;constructor({builder:e,...t}){super(t),this.builder=e}attachNode(e,t){this.channels[e]=new Pi,this.nodes[e]=new fc({channels:[],triggers:[],metadata:t.metadata,subgraphs:t.subgraphs,ends:t.ends}).pipe(t.runnable).pipe(new Xt([{channel:e,value:ca}],[dn])),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 Xt([{channel:Tt,value:ca}],[dn]))}else this.nodes[t].triggers.push(e),this.nodes[t].channels.push(e)}attachBranch(e,t,n){e==="__start__"&&!this.nodes.__start__&&(this.nodes[bt]=BU.subscribeTo(bt,{tags:[dn]})),this.nodes[e].pipe(n.run(s=>new Xt(s.map(a=>pn(a)?a:{channel:a==="__end__"?Tt:`branch:${e}:${t}:${a}`,value:ca}),[dn])));let r=n.ends?Object.values(n.ends):Object.keys(this.nodes);for(let s of r)if(s!=="__end__"){let a=`branch:${e}:${t}:${s}`;this.channels[a]=new Pi,this.nodes[s].triggers.push(a),this.nodes[s].channels.push(a)}}async getGraphAsync(e){let t=e?.xray,n=new oc,r={[bt]:n.addNode({schema:Uu()},bt)},s={},a={};t&&(a=Object.fromEntries((await os(this.getSubgraphsAsync())).filter(c=>U0(c[1]))));function i(c,u,l,d=!1){if(u==="__end__"&&s.__end__===void 0&&(s[Tt]=n.addNode({schema:Uu()},Tt)),r[c]!==void 0){if(s[u]===void 0)throw new Error(`End node ${u} not found!`);return n.addEdge(r[c],s[u],l!==u?l:void 0,d)}}for(let[c,u]of Object.entries(this.builder.nodes)){let l=Dt(c),d=u.runnable,h=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?h.__interrupt="before,after":this.interruptBefore?.includes(c)?h.__interrupt="before":this.interruptAfter?.includes(c)&&(h.__interrupt="after"),t){let f=typeof t=="number"?t-1:t,p=a[c]!==void 0?await a[c].getGraphAsync({...e,xray:f}):d.getGraph(e);if(p.trimFirstNode(),p.trimLastNode(),Object.keys(p.nodes).length>1){let m=function(k){return k?k.lc_runnable:!1},v=function(k,S){if(k!==void 0&&!cm(k))return k;if(m(S))try{let E=S.getName();return E=E.startsWith("Runnable")?E.slice(8):E,E}catch{return S.getName()}else return S.name??"UnknownSchema"},[g,_]=n.extend(p,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);_!==void 0&&(r[l]={name:v(_.id,_.data),..._}),s[l]={name:v(g.id,g.data),...g}}else{let m=n.addNode(d,l,h);r[l]=m,s[l]=m}}else{let f=n.addNode(d,l,h);r[l]=f,s[l]=f}}let o=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of o)i(Dt(c),Dt(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=>[Dt(d),Dt(d)])),[Tt]:Tt};for(let d of Object.values(u)){let h;d.ends!==void 0?h=d.ends:h=l;for(let[f,p]of Object.entries(h))i(Dt(c),Dt(p),f,!0)}}for(let[c,u]of Object.entries(this.builder.nodes))if(u.ends!==void 0)for(let l of u.ends)i(Dt(c),Dt(l),void 0,!0);return n}getGraph(e){let t=e?.xray,n=new oc,r={[bt]:n.addNode({schema:Uu()},bt)},s={},a={};t&&(a=Object.fromEntries(xo(this.getSubgraphs()).filter(c=>U0(c[1]))));function i(c,u,l,d=!1){return u==="__end__"&&s.__end__===void 0&&(s[Tt]=n.addNode({schema:Uu()},Tt)),n.addEdge(r[c],s[u],l!==u?l:void 0,d)}for(let[c,u]of Object.entries(this.builder.nodes)){let l=Dt(c),d=u.runnable,h=u.metadata??{};if(this.interruptBefore?.includes(c)&&this.interruptAfter?.includes(c)?h.__interrupt="before,after":this.interruptBefore?.includes(c)?h.__interrupt="before":this.interruptAfter?.includes(c)&&(h.__interrupt="after"),t){let f=typeof t=="number"?t-1:t,p=a[c]!==void 0?a[c].getGraph({...e,xray:f}):d.getGraph(e);if(p.trimFirstNode(),p.trimLastNode(),Object.keys(p.nodes).length>1){let m=function(k){return k?k.lc_runnable:!1},v=function(k,S){if(k!==void 0&&!cm(k))return k;if(m(S))try{let E=S.getName();return E=E.startsWith("Runnable")?E.slice(8):E,E}catch{return S.getName()}else return S.name??"UnknownSchema"},[g,_]=n.extend(p,l);if(g===void 0)throw new Error(`Could not extend subgraph "${c}" due to missing entrypoint.`);_!==void 0&&(r[l]={name:v(_.id,_.data),..._}),s[l]={name:v(g.id,g.data),...g}}else{let m=n.addNode(d,l,h);r[l]=m,s[l]=m}}else{let f=n.addNode(d,l,h);r[l]=f,s[l]=f}}let o=[...this.builder.allEdges].sort(([c],[u])=>c<u?-1:u>c?1:0);for(let[c,u]of o)i(Dt(c),Dt(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=>[Dt(d),Dt(d)])),[Tt]:Tt};for(let d of Object.values(u)){let h;d.ends!==void 0?h=d.ends:h=l;for(let[f,p]of Object.entries(h))i(Dt(c),Dt(p),f,!0)}}return n}};function U0(e){return typeof e.attachNode=="function"&&typeof e.attachEdge=="function"}function Dt(e){return e==="subgraph"?`"${e}"`:e}function Oo(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"validate"in e["~standard"]}function i5(e){return typeof e=="object"&&e!==null&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"jsonSchema"in e["~standard"]}function Ba(e){if(i5(e))try{return e["~standard"].jsonSchema.input({target:"draft-07"})}catch{return}}function Za(e){if(e!=null&&Oo(e))try{let t=e["~standard"].validate(void 0);if(t&&typeof t=="object"&&!("then"in t&&typeof t.then=="function")){let n=t;if(!n.issues){let r=n.value;return()=>r}}}catch{}}var Bp=Symbol.for("langgraph.channel.missing"),o5=class x1 extends Ls{lc_graph_name="UntrackedValue";guard;_value=Bp;initialValueFactory;constructor(t){super(),this.guard=t?.guard??!0,this.initialValueFactory=t?.initialValueFactory,this.initialValueFactory&&(this._value=this.initialValueFactory())}fromCheckpoint(t){return new x1({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===Bp)throw new $t;return this._value}checkpoint(){}isAvailable(){return this._value!==Bp}},Ys=(e,t)=>e.size===t.size&&[...e].every(n=>t.has(n)),c5=class T1 extends Ls{lc_graph_name="NamedBarrierValue";names;seen;constructor(t){super(),this.names=t,this.seen=new Set}fromCheckpoint(t){let n=new T1(this.names);return typeof t<"u"&&(n.seen=new Set(t)),n}update(t){let n=!1;for(let r of t)if(this.names.has(r))this.seen.has(r)||(this.seen.add(r),n=!0);else throw new Ye(`Value ${JSON.stringify(r)} not in names ${JSON.stringify(this.names)}`);return n}get(){if(!Ys(this.names,this.seen))throw new $t}checkpoint(){return[...this.seen]}consume(){return this.seen&&this.names&&Ys(this.seen,this.names)?(this.seen=new Set,!0):!1}isAvailable(){return!!this.names&&Ys(this.names,this.seen)}},u5=class O1 extends Ls{lc_graph_name="NamedBarrierValueAfterFinish";names;seen;finished;constructor(t){super(),this.names=t,this.seen=new Set,this.finished=!1}fromCheckpoint(t){let n=new O1(this.names);if(typeof t<"u"){let[r,s]=t;n.seen=new Set(r),n.finished=s}return n}update(t){let n=!1;for(let r of t)if(this.names.has(r)&&!this.seen.has(r))this.seen.add(r),n=!0;else if(!this.names.has(r))throw new Ye(`Value ${JSON.stringify(r)} not in names ${JSON.stringify(this.names)}`);return n}get(){if(!this.finished||!Ys(this.names,this.seen))throw new $t}checkpoint(){return[[...this.seen],this.finished]}consume(){return this.finished&&this.seen&&this.names&&Ys(this.seen,this.names)?(this.seen=new Set,this.finished=!1,!0):!1}finish(){return!this.finished&&this.names&&Ys(this.names,this.seen)?(this.finished=!0,!0):!1}isAvailable(){return this.finished&&!!this.names&&Ys(this.names,this.seen)}},Zp=Symbol.for("langgraph.state.reduced_value"),Ja=class{[Zp]=!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&&Zp in e&&e[Zp]===!0}},F0=Symbol.for("langgraph.state.untracked_value"),go=class{[F0]=!0;schema;guard;constructor(e,t){this.schema=e,this.guard=t?.guard??!0}static isInstance(e){return typeof e=="object"&&e!==null&&F0 in e}},Vp=Symbol.for("langgraph.state.state_schema"),Qs=class{[Vp]=!0;constructor(e){this.fields=e}getChannels(){let e={};for(let[t,n]of Object.entries(this.fields))if(Ja.isInstance(n)){let r=Za(n.valueSchema);e[t]=new ed(n.reducer,r)}else if(go.isInstance(n)){let r=n.schema?Za(n.schema):void 0;e[t]=new o5({guard:n.guard,initialValueFactory:r})}else if(Oo(n))e[t]=new Kh(Za(n));else throw new Error(`Invalid state field "${t}": must be a schema, ReducedValue, UntrackedValue, or ManagedValue`);return e}getJsonSchema(){let e={},t=[];for(let[n,r]of Object.entries(this.fields)){let s;if(Ja.isInstance(r)?(s=Ba(r.valueSchema),r.jsonSchemaExtra&&(s={...s??{},...r.jsonSchemaExtra})):go.isInstance(r)?s=r.schema?Ba(r.schema):void 0:Oo(r)&&(s=Ba(r)),s){e[n]=s;let a=!1;Ja.isInstance(r)?a=Za(r.valueSchema)!==void 0:go.isInstance(r)?a=r.schema?Za(r.schema)!==void 0:!1:a=Za(r)!==void 0,a||t.push(n)}}return{type:"object",properties:e,required:t.length>0?t:void 0}}getInputJsonSchema(){let e={};for(let[t,n]of Object.entries(this.fields)){let r;Ja.isInstance(n)?(r=Ba(n.inputSchema),n.jsonSchemaExtra&&(r={...r??{},...n.jsonSchemaExtra})):go.isInstance(n)?r=n.schema?Ba(n.schema):void 0:Oo(n)&&(r=Ba(n)),r&&(e[t]=r)}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[n,r]of Object.entries(e)){let s=this.fields[n];if(s===void 0){t[n]=r;continue}let a;if(Ja.isInstance(s)?a=s.inputSchema:go.isInstance(s)?a=s.schema:Oo(s)&&(a=s),a){let i=await a["~standard"].validate(r);if(i.issues)throw new Error(`Validation failed for field "${n}": ${JSON.stringify(i.issues)}`);t[n]=i.value}else t[n]=r}return t}static isInstance(e){return typeof e=="object"&&e!==null&&Vp in e&&e[Vp]===!0}};function Ma(e,t){let n=Array.isArray(e)?e:[e],r=Array.isArray(t)?t:[t],s=n.map(Sr),a=r.map(Sr);for(let l of s)(l.id===null||l.id===void 0)&&(l.id=Js(),l.lc_kwargs.id=l.id);let i;for(let l=0;l<a.length;l+=1){let d=a[l];(d.id===null||d.id===void 0)&&(d.id=Js(),d.lc_kwargs.id=d.id),sa.isInstance(d)&&d.id==="__remove_all__"&&(i=l)}if(i!=null)return a.slice(i+1);let o=[...s],c=new Map(o.map((l,d)=>[l.id,d])),u=new Set;for(let l of a){let d=c.get(l.id);if(d!==void 0)sa.isInstance(l)?u.add(l.id):(u.delete(l.id),o[d]=l);else{if(sa.isInstance(l))throw new Error(`Attempting to delete a message with an ID that doesn't exist ('${l.id}')`);c.set(l.id,o.length),o.push(l)}}return o.filter(l=>!u.has(l.id))}new Ja(D0().default(()=>[]),{inputSchema:D0(),reducer:Ma,jsonSchemaExtra:{langgraph_type:"messages",description:"A list of chat messages"}});var l5=class{_map=new Map;_extensionCache=new Map;get(e){return this._map.get(e)}extend(e,t){let n=this.get(e);this._map.set(e,t(n))}remove(e){return this._map.delete(e),this}has(e){return this._map.has(e)}getChannelsForSchema(e){let t={},n=ac(e);for(let[r,s]of Object.entries(n)){let a=this.get(s);a?.reducer?t[r]=new ed(a.reducer.fn,a.default):t[r]=new Kh(a?.default)}return t}getExtendedChannelSchemas(e,t){if(Object.keys(t).length===0)return e;let n=Object.entries(t).filter(([,a])=>a===!0).sort(([a],[i])=>a.localeCompare(i)).map(([a,i])=>`${a}:${i}`).join("|"),r=this._extensionCache.get(n)??new Map;if(r.has(e))return r.get(e);let s=e;if(t.withReducerSchema||t.withJsonSchemaExtrasAsDescription){let a=Object.entries(ac(e)).map(([i,o])=>{let c=this.get(o),u=t.withReducerSchema?c?.reducer?.schema??o:o;if(t.withJsonSchemaExtrasAsDescription&&c?.jsonSchemaExtra){let l=Oi(u)??Oi(o),d=JSON.stringify({...c.jsonSchemaExtra,description:l});u=u.describe(`lg:${d}`)}return[i,u]});s=VE(e,Object.fromEntries(a)),gt(s)&&(s._def.unknownKeys="strip")}return t.asPartial&&(s=K_(s)),r.set(e,s),this._extensionCache.set(n,r),s}},sd=new l5;function d5(e,t){if(t.reducer&&!t.default){let n=qE(e);n!=null&&(t.default=n)}if(t.reducer){let n=Object.assign(e,{lg_reducer_schema:t.reducer?.schema??e});return sd.extend(n,()=>t),n}else return sd.extend(e,()=>t),e}function Ka(e){return e==null?!1:!!(Qs.isInstance(e)||Nn(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"||HT(t)))}function h5(e){if(typeof e!="object"||e==null)return!1;let t=e,n="state"in t&&Ka(t.state),r="stateSchema"in t&&Ka(t.stateSchema),s="input"in t&&Ka(t.input);return!(!n&&!r&&!s||"input"in t&&t.input!=null&&!Ka(t.input)||"output"in t&&t.output!=null&&!Ka(t.output))}var qr="__root__",ad=Symbol.for("langgraph.state.partial"),Ly=class extends a5{channels={};waitingEdges=new Set;_schemaDefinition;_schemaRuntimeDefinition;_inputDefinition;_inputRuntimeDefinition;_outputDefinition;_outputRuntimeDefinition;_schemaDefinitions=new Map;_metaRegistry=sd;_configSchema;_configRuntimeSchema;_interrupt;_writer;constructor(e,t){super();let n=this._normalizeToStateGraphInit(e,t),r=n.state??n.stateSchema??n.input;if(!r)throw new uf;let s=this._getChannelsFromSchema(r);this._schemaDefinition=s,Qs.isInstance(r)?this._schemaRuntimeDefinition=r:Nn(r)&&(this._schemaRuntimeDefinition=r),n.input?Qs.isInstance(n.input)?this._inputRuntimeDefinition=n.input:Nn(n.input)?this._inputRuntimeDefinition=n.input:this._inputRuntimeDefinition=ad:this._inputRuntimeDefinition=ad,n.output?Qs.isInstance(n.output)?this._outputRuntimeDefinition=n.output:Nn(n.output)?this._outputRuntimeDefinition=n.output:this._outputRuntimeDefinition=this._schemaRuntimeDefinition:this._outputRuntimeDefinition=this._schemaRuntimeDefinition;let a=n.input?this._getChannelsFromSchema(n.input):s,i=n.output?this._getChannelsFromSchema(n.output):s;this._inputDefinition=a,this._outputDefinition=i,this._addSchema(this._schemaDefinition),this._addSchema(this._inputDefinition),this._addSchema(this._outputDefinition),n.context&&Nn(n.context)&&(this._configRuntimeSchema=n.context),this._interrupt=n.interrupt,this._writer=n.writer}_normalizeToStateGraphInit(e,t){if(h5(e)){if(Nn(t)||kg.isInstance(t))return{...e,context:t};let n=t;return{...e,input:e.input??n?.input,output:e.output??n?.output,context:e.context??n?.context,interrupt:e.interrupt??n?.interrupt,writer:e.writer??n?.writer,nodes:e.nodes??n?.nodes}}if(Ka(e)){if(Nn(t)||kg.isInstance(t))return{state:e,context:t};let n=t;return{state:e,input:n?.input,output:n?.output,context:n?.context,interrupt:n?.interrupt,writer:n?.writer,nodes:n?.nodes}}if(m5(e))return{state:f5(e.channels)};throw new uf}_getChannelsFromSchema(e){if(Qs.isInstance(e))return e.getChannels();if(Nn(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 uf("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(n=>[n,t]))])}_addSchema(e){if(!this._schemaDefinitions.has(e)){this._schemaDefinitions.set(e,e);for(let[t,n]of Object.entries(e)){let r;if(typeof n=="function"?r=n():r=n,this.channels[t]!==void 0){if(!this.channels[t].equals(r)&&r.lc_graph_name!=="LastValue")throw new Error(`Channel "${t}" already exists with a different type.`)}else this.channels[t]=r}}}addNode(...e){function t(r){return r.length>=1&&typeof r[0]!="string"}let n=t(e)?Array.isArray(e[0])?e[0]:Object.entries(e[0]).map(([r,s])=>[r,s]):[[e[0],e[1],e[2]]];if(n.length===0)throw new Error("No nodes provided in `addNode`");for(let[r,s,a]of n){if(r in this.channels)throw new Error(`${r} 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(r.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."),r in this.nodes)throw new Error(`Node \`${r}\` already present.`);if(r==="__end__"||r==="__start__")throw new Error(`Node \`${r}\` is reserved.`);let i=this._schemaDefinition;a?.input!==void 0&&(i=this._getChannelsFromSchema(a.input)),this._addSchema(i);let o;Me.isRunnable(s)?o=s:typeof s=="function"?o=new Pa({func:s,name:r,trace:!1}):o=jt(s);let c=a?.cachePolicy;typeof c=="boolean"&&(c=c?{}:void 0);let u={runnable:o,retryPolicy:a?.retryPolicy,cachePolicy:c,metadata:a?.metadata,input:i??this._schemaDefinition,subgraphs:Cy(o)?[o]:a?.subgraphs,ends:a?.ends,defer:a?.defer};this.nodes[r]=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 n of e){if(n==="__end__")throw new Error("END cannot be a start node");if(!Object.keys(this.nodes).some(r=>r===n))throw new Error(`Need to add a node named "${n}" first`)}if(t==="__end__")throw new Error("END cannot be an end node");if(!Object.keys(this.nodes).some(n=>n===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 n;for(let[r,s,a]of t){if(r in this.nodes)throw new Error(`Node names must be unique: node with the name "${r}" already exists.`);let i=r;this.addNode(i,s,a),n!=null&&this.addEdge(n,i),n=i}return this}compile({checkpointer:e,store:t,cache:n,interruptBefore:r,interruptAfter:s,name:a,description:i}={}){this.validate([...Array.isArray(r)?r:[],...Array.isArray(s)?s:[]]);let o=Object.keys(this._schemaDefinitions.get(this._outputDefinition)),c=o.length===1&&o[0]===qr?qr:o,u=Object.keys(this.channels),l=u.length===1&&u[0]===qr?qr:u,d=this._interrupt,h=new p5({builder:this,checkpointer:e,interruptAfter:s,interruptBefore:r,autoValidate:!1,nodes:{},channels:{...this.channels,[bt]:new Pi},inputChannels:bt,outputChannels:c,streamChannels:l,streamMode:"updates",store:t,cache:n,name:a,description:i,userInterrupt:d});h.attachNode(bt);for(let[f,p]of Object.entries(this.nodes))h.attachNode(f,p);h.attachBranch(bt,Tv,B0(),{withReader:!1});for(let[f]of Object.entries(this.nodes))h.attachBranch(f,Tv,B0(),{withReader:!1});for(let[f,p]of this.edges)h.attachEdge(f,p);for(let[f,p]of this.waitingEdges)h.attachEdge(f,p);for(let[f,p]of Object.entries(this.branches))for(let[m,v]of Object.entries(p))h.attachBranch(f,m,v);return h.validate()}};function f5(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Sg(r);return t}var p5=class extends E1{description;_metaRegistry=sd;constructor({description:e,...t}){super(t),this.description=e}attachNode(e,t){let n;e==="__start__"?n=Object.entries(this.builder._schemaDefinitions.get(this.builder._inputDefinition)).map(([o])=>o):n=Object.keys(this.builder.channels);function r(o){if(Ut(o))return o.graph===vr.PARENT?null:o._updateAsTuples();if(Array.isArray(o)&&o.length>0&&o.some(c=>Ut(c))){let c=[];for(let u of o)if(Ut(u)){if(u.graph===vr.PARENT)continue;c.push(...u._updateAsTuples())}else c.push([qr,u]);return c}else if(o!=null)return[[qr,o]];return null}let s=e;function a(o){if(o){if(Ut(o))return o.graph===vr.PARENT?null:o._updateAsTuples().filter(([c])=>n.includes(c));if(Array.isArray(o)&&o.length>0&&o.some(Ut)){let c=[];for(let u of o)if(Ut(u)){if(u.graph===vr.PARENT)continue;c.push(...u._updateAsTuples().filter(([l])=>n.includes(l)))}else{let l=a(u);l&&c.push(...l??[])}return c}else{if(typeof o=="object"&&!Array.isArray(o))return Object.entries(o).filter(([c])=>n.includes(c));{let c=Array.isArray(o)?"array":typeof o;throw new Ye(`Expected node "${s.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 i=[{value:ca,mapper:new Pa({func:n.length&&n[0]===qr?r:a,trace:!1,recurse:!1})}];if(e==="__start__")this.nodes[e]=new fc({tags:[dn],triggers:[bt],channels:[bt],writers:[new Xt(i,[dn])]});else{let o=t?.input??this.builder._schemaDefinition,c=Object.fromEntries(Object.keys(this.builder._schemaDefinitions.get(o)).map(d=>[d,d])),u=Object.keys(c).length===1&&qr in c,l=`branch:to:${e}`;this.channels[l]=t?.defer?new RD:new Pi(!1),this.nodes[e]=new fc({triggers:[l],channels:u?Object.keys(c):c,writers:[new Xt(i,[dn])],mapper:u?void 0:d=>Object.fromEntries(Object.entries(d).filter(([h])=>h 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 Xt([{channel:`branch:to:${t}`,value:null}],[dn]));else if(Array.isArray(e)){let n=`join:${e.join("+")}:${t}`;this.channels[n]=this.builder.nodes[t].defer?new u5(new Set(e)):new c5(new Set(e)),this.nodes[t].triggers.push(n);for(let r of e)this.nodes[r].writers.push(new Xt([{channel:n,value:r}],[dn]))}}}attachBranch(e,t,n,r={withReader:!0}){let s=async(a,i)=>{let o=a.filter(u=>u!==Tt);if(!o.length)return;let c=o.map(u=>pn(u)?u:{channel:u==="__end__"?u:`branch:to:${u}`,value:e});await Xt.doWrite({...i,tags:(i.tags??[]).concat([dn])},c)};this.nodes[e].writers.push(n.run(s,r.withReader?a=>DD.doRead(a,this.streamChannels??this.outputChannels,!0):void 0))}async _validateInput(e){if(e==null)return e;let t=this.builder._inputRuntimeDefinition,n=this.builder._schemaRuntimeDefinition;if(Qs.isInstance(t)){if(Ut(e)){let s=e;return e.update&&(s.update=await t.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),s}return await t.validateInput(e)}if(t===ad&&Qs.isInstance(n)){if(Ut(e)){let s=e;return e.update&&(s.update=await n.validateInput(Array.isArray(e.update)?Object.fromEntries(e.update):e.update)),s}return await n.validateInput(e)}let r=(()=>{let s=a=>{if(a!=null)return this._metaRegistry.getExtendedChannelSchemas(a,{withReducerSchema:!0})};if(Nn(t))return s(t);if(t===ad)return Nn(n)?K_(s(n)):void 0})();if(Ut(e)){let s=e;return e.update&&r!=null&&(s.update=ul(r,e.update)),s}return r!=null?ul(r,e):e}isInterrupted(e){return nS(e)}async _validateContext(e){let t=this.builder._configRuntimeSchema;return Nn(t)&&ul(t,e),e}};function m5(e){return typeof e=="object"&&e!==null&&e.channels!==void 0}function g5(e){if(pn(e))return[e];let t=[];Ut(e)?t.push(e):Array.isArray(e)&&t.push(...e.filter(Ut));let n=[];for(let r of t){if(r.graph===vr.PARENT)throw new sS(r);pn(r.goto)||typeof r.goto=="string"?n.push(r.goto):Array.isArray(r.goto)&&n.push(...r.goto)}return n}function B0(){return new S1({path:new Pa({func:g5,tags:[dn],trace:!1,recurse:!1,name:"<control_branch>"})})}var je;(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let a={};for(let i of s)a[i]=i;return a},e.getValidEnumValues=s=>{let a=e.objectKeys(s).filter(o=>typeof s[s[o]]!="number"),i={};for(let o of a)i[o]=s[o];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(a){return s[a]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let a=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&a.push(i);return a},e.find=(s,a)=>{for(let i of s)if(a(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,a=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(a)}e.joinValues=r,e.jsonStringifyReplacer=(s,a)=>typeof a=="bigint"?a.toString():a})(je||(je={}));var Cg;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Cg||(Cg={}));var W=je.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Fr=e=>{switch(typeof e){case"undefined":return W.undefined;case"string":return W.string;case"number":return Number.isNaN(e)?W.nan:W.number;case"boolean":return W.boolean;case"function":return W.function;case"bigint":return W.bigint;case"symbol":return W.symbol;case"object":return Array.isArray(e)?W.array:e===null?W.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?W.promise:typeof Map<"u"&&e instanceof Map?W.map:typeof Set<"u"&&e instanceof Set?W.set:typeof Date<"u"&&e instanceof Date?W.date:W.object;default:return W.unknown}},j=je.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),_5=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ar=class I1 extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(a){return a.message},r={_errors:[]},s=a=>{for(let i of a.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let o=r,c=0;for(;c<i.path.length;){let u=i.path[c];c===i.path.length-1?(o[u]=o[u]||{_errors:[]},o[u]._errors.push(n(i))):o[u]=o[u]||{_errors:[]},o=o[u],c++}}};return s(this),r}static assert(t){if(!(t instanceof I1))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,je.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let a=s.path[0];n[a]=n[a]||[],n[a].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};ar.create=e=>new ar(e);var Mi=(e,t)=>{let n;switch(e.code){case j.invalid_type:e.received===W.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case j.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,je.jsonStringifyReplacer)}`;break;case j.unrecognized_keys:n=`Unrecognized key(s) in object: ${je.joinValues(e.keys,", ")}`;break;case j.invalid_union:n="Invalid input";break;case j.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${je.joinValues(e.options)}`;break;case j.invalid_enum_value:n=`Invalid enum value. Expected ${je.joinValues(e.options)}, received '${e.received}'`;break;case j.invalid_arguments:n="Invalid function arguments";break;case j.invalid_return_type:n="Invalid function return type";break;case j.invalid_date:n="Invalid date";break;case j.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:je.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case j.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case j.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case j.custom:n="Invalid input";break;case j.invalid_intersection_types:n="Intersection results could not be merged";break;case j.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case j.not_finite:n="Number must be finite";break;default:n=t.defaultError,je.assertNever(e)}return{message:n}},$1=Mi;function y5(e){$1=e}function id(){return $1}var od=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,a=[...n,...s.path||[]],i={...s,path:a};if(s.message!==void 0)return{...s,path:a,message:s.message};let o="",c=r.filter(u=>!!u).slice().reverse();for(let u of c)o=u(i,{data:t,defaultError:o}).message;return{...s,path:a,message:o}},v5=[];function V(e,t){let n=id(),r=od({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Mi?void 0:Mi].filter(s=>!!s)});e.common.issues.push(r)}var Zt=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let s of n){if(s.status==="aborted")return fe;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let a=await s.key,i=await s.value;r.push({key:a,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:a,value:i}=s;if(a.status==="aborted"||i.status==="aborted")return fe;a.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),a.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[a.value]=i.value)}return{status:t.value,value:r}}},fe=Object.freeze({status:"aborted"}),ui=e=>({status:"dirty",value:e}),nn=e=>({status:"valid",value:e}),Ag=e=>e.status==="aborted",Rg=e=>e.status==="dirty",va=e=>e.status==="valid",yc=e=>typeof Promise<"u"&&e instanceof Promise,ie;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(ie||(ie={}));var Ln=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Z0=(e,t)=>{if(va(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new ar(e.common.issues);return this._error=n,this._error}}};function Te(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,o)=>{let{message:c}=e;return i.code==="invalid_enum_value"?{message:c??o.defaultError}:typeof o.data>"u"?{message:c??r??o.defaultError}:i.code!=="invalid_type"?{message:o.defaultError}:{message:c??n??o.defaultError}},description:s}}var Ce=class{get description(){return this._def.description}_getType(t){return Fr(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Fr(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Zt,ctx:{common:t.parent.common,data:t.data,parsedType:Fr(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(yc(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Fr(t)},s=this._parseSync({data:t,path:r.path,parent:r});return Z0(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Fr(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return va(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>va(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Fr(t)},s=this._parse({data:t,path:r.path,parent:r}),a=await(yc(s)?s:Promise.resolve(s));return Z0(r,a)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,a)=>{let i=t(s),o=()=>a.addIssue({code:j.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(o(),!1)):i?!0:(o(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new In({schema:this,typeName:me.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return xr.create(this,this._def)}nullable(){return Cs.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return xa.create(this)}promise(){return $s.create(this,this._def)}or(t){return wc.create([this,t],this._def)}and(t){return bc.create(this,t,this._def)}transform(t){return new In({...Te(this._def),schema:this,typeName:me.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new Sc({...Te(this._def),innerType:this,defaultValue:n,typeName:me.ZodDefault})}brand(){return new xc({typeName:me.ZodBranded,type:this,...Te(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new Ec({...Te(this._def),innerType:this,catchValue:n,typeName:me.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return Tc.create(this,t)}readonly(){return Oc.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},w5=/^c[^\s-]{8,}$/i,b5=/^[0-9a-z]+$/,k5=/^[0-9A-HJKMNP-TV-Z]{26}$/i,S5=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,E5=/^[a-z0-9_-]{21}$/i,x5=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,T5=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,O5=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,I5="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",qp,$5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,C5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,A5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,R5=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,N5=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,P5=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,C1="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",M5=new RegExp(`^${C1}$`);function A1(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function j5(e){return new RegExp(`^${A1(e)}$`)}function R1(e){let t=`${C1}T${A1(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function L5(e,t){return!!((t==="v4"||!t)&&$5.test(e)||(t==="v6"||!t)&&A5.test(e))}function z5(e,t){if(!x5.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function D5(e,t){return!!((t==="v4"||!t)&&C5.test(e)||(t==="v6"||!t)&&R5.test(e))}var ji=class Io extends Ce{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==W.string){let a=this._getOrReturnCtx(t);return V(a,{code:j.invalid_type,expected:W.string,received:a.parsedType}),fe}let r=new Zt,s;for(let a of this._def.checks)if(a.kind==="min")t.data.length<a.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:j.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),r.dirty());else if(a.kind==="max")t.data.length>a.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:j.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),r.dirty());else if(a.kind==="length"){let i=t.data.length>a.value,o=t.data.length<a.value;(i||o)&&(s=this._getOrReturnCtx(t,s),i?V(s,{code:j.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):o&&V(s,{code:j.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),r.dirty())}else if(a.kind==="email")O5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"email",code:j.invalid_string,message:a.message}),r.dirty());else if(a.kind==="emoji")qp||(qp=new RegExp(I5,"u")),qp.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"emoji",code:j.invalid_string,message:a.message}),r.dirty());else if(a.kind==="uuid")S5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"uuid",code:j.invalid_string,message:a.message}),r.dirty());else if(a.kind==="nanoid")E5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"nanoid",code:j.invalid_string,message:a.message}),r.dirty());else if(a.kind==="cuid")w5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"cuid",code:j.invalid_string,message:a.message}),r.dirty());else if(a.kind==="cuid2")b5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"cuid2",code:j.invalid_string,message:a.message}),r.dirty());else if(a.kind==="ulid")k5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"ulid",code:j.invalid_string,message:a.message}),r.dirty());else if(a.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),V(s,{validation:"url",code:j.invalid_string,message:a.message}),r.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"regex",code:j.invalid_string,message:a.message}),r.dirty())):a.kind==="trim"?t.data=t.data.trim():a.kind==="includes"?t.data.includes(a.value,a.position)||(s=this._getOrReturnCtx(t,s),V(s,{code:j.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),r.dirty()):a.kind==="toLowerCase"?t.data=t.data.toLowerCase():a.kind==="toUpperCase"?t.data=t.data.toUpperCase():a.kind==="startsWith"?t.data.startsWith(a.value)||(s=this._getOrReturnCtx(t,s),V(s,{code:j.invalid_string,validation:{startsWith:a.value},message:a.message}),r.dirty()):a.kind==="endsWith"?t.data.endsWith(a.value)||(s=this._getOrReturnCtx(t,s),V(s,{code:j.invalid_string,validation:{endsWith:a.value},message:a.message}),r.dirty()):a.kind==="datetime"?R1(a).test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{code:j.invalid_string,validation:"datetime",message:a.message}),r.dirty()):a.kind==="date"?M5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{code:j.invalid_string,validation:"date",message:a.message}),r.dirty()):a.kind==="time"?j5(a).test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{code:j.invalid_string,validation:"time",message:a.message}),r.dirty()):a.kind==="duration"?T5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"duration",code:j.invalid_string,message:a.message}),r.dirty()):a.kind==="ip"?L5(t.data,a.version)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"ip",code:j.invalid_string,message:a.message}),r.dirty()):a.kind==="jwt"?z5(t.data,a.alg)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"jwt",code:j.invalid_string,message:a.message}),r.dirty()):a.kind==="cidr"?D5(t.data,a.version)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"cidr",code:j.invalid_string,message:a.message}),r.dirty()):a.kind==="base64"?N5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"base64",code:j.invalid_string,message:a.message}),r.dirty()):a.kind==="base64url"?P5.test(t.data)||(s=this._getOrReturnCtx(t,s),V(s,{validation:"base64url",code:j.invalid_string,message:a.message}),r.dirty()):je.assertNever(a);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:j.invalid_string,...ie.errToObj(r)})}_addCheck(t){return new Io({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...ie.errToObj(t)})}url(t){return this._addCheck({kind:"url",...ie.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...ie.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...ie.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...ie.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...ie.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...ie.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...ie.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...ie.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...ie.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...ie.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...ie.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...ie.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...ie.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...ie.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...ie.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...ie.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...ie.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...ie.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...ie.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...ie.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...ie.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...ie.errToObj(n)})}nonempty(t){return this.min(1,ie.errToObj(t))}trim(){return new Io({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Io({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Io({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};ji.create=e=>new ji({checks:[],typeName:me.ZodString,coerce:e?.coerce??!1,...Te(e)});function U5(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,a=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return a%i/10**s}var vc=class Ng extends Ce{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==W.number){let a=this._getOrReturnCtx(t);return V(a,{code:j.invalid_type,expected:W.number,received:a.parsedType}),fe}let r,s=new Zt;for(let a of this._def.checks)a.kind==="int"?je.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),V(r,{code:j.invalid_type,expected:"integer",received:"float",message:a.message}),s.dirty()):a.kind==="min"?(a.inclusive?t.data<a.value:t.data<=a.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:j.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind==="max"?(a.inclusive?t.data>a.value:t.data>=a.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:j.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind==="multipleOf"?U5(t.data,a.value)!==0&&(r=this._getOrReturnCtx(t,r),V(r,{code:j.not_multiple_of,multipleOf:a.value,message:a.message}),s.dirty()):a.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),V(r,{code:j.not_finite,message:a.message}),s.dirty()):je.assertNever(a);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,ie.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ie.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ie.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ie.toString(n))}setLimit(t,n,r,s){return new Ng({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ie.toString(s)}]})}_addCheck(t){return new Ng({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:ie.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ie.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ie.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ie.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ie.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ie.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:ie.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ie.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ie.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&je.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};vc.create=e=>new vc({checks:[],typeName:me.ZodNumber,coerce:e?.coerce||!1,...Te(e)});var wa=class e extends Ce{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==W.bigint)return this._getInvalidInput(t);let r,s=new Zt;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?t.data<a.value:t.data<=a.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:j.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),s.dirty()):a.kind==="max"?(a.inclusive?t.data>a.value:t.data>=a.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:j.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),s.dirty()):a.kind==="multipleOf"?t.data%a.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),V(r,{code:j.not_multiple_of,multipleOf:a.value,message:a.message}),s.dirty()):je.assertNever(a);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return V(n,{code:j.invalid_type,expected:W.bigint,received:n.parsedType}),fe}gte(t,n){return this.setLimit("min",t,!0,ie.toString(n))}gt(t,n){return this.setLimit("min",t,!1,ie.toString(n))}lte(t,n){return this.setLimit("max",t,!0,ie.toString(n))}lt(t,n){return this.setLimit("max",t,!1,ie.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:ie.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ie.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ie.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ie.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ie.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:ie.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};wa.create=e=>new wa({checks:[],typeName:me.ZodBigInt,coerce:e?.coerce??!1,...Te(e)});var ba=class extends Ce{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==W.boolean){let r=this._getOrReturnCtx(t);return V(r,{code:j.invalid_type,expected:W.boolean,received:r.parsedType}),fe}return nn(t.data)}};ba.create=e=>new ba({typeName:me.ZodBoolean,coerce:e?.coerce||!1,...Te(e)});var ka=class e extends Ce{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==W.date){let a=this._getOrReturnCtx(t);return V(a,{code:j.invalid_type,expected:W.date,received:a.parsedType}),fe}if(Number.isNaN(t.data.getTime())){let a=this._getOrReturnCtx(t);return V(a,{code:j.invalid_date}),fe}let r=new Zt,s;for(let a of this._def.checks)a.kind==="min"?t.data.getTime()<a.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:j.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),r.dirty()):a.kind==="max"?t.data.getTime()>a.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:j.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),r.dirty()):je.assertNever(a);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:ie.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:ie.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};ka.create=e=>new ka({checks:[],coerce:e?.coerce||!1,typeName:me.ZodDate,...Te(e)});var Li=class extends Ce{_parse(t){if(this._getType(t)!==W.symbol){let r=this._getOrReturnCtx(t);return V(r,{code:j.invalid_type,expected:W.symbol,received:r.parsedType}),fe}return nn(t.data)}};Li.create=e=>new Li({typeName:me.ZodSymbol,...Te(e)});var Sa=class extends Ce{_parse(t){if(this._getType(t)!==W.undefined){let r=this._getOrReturnCtx(t);return V(r,{code:j.invalid_type,expected:W.undefined,received:r.parsedType}),fe}return nn(t.data)}};Sa.create=e=>new Sa({typeName:me.ZodUndefined,...Te(e)});var Ea=class extends Ce{_parse(t){if(this._getType(t)!==W.null){let r=this._getOrReturnCtx(t);return V(r,{code:j.invalid_type,expected:W.null,received:r.parsedType}),fe}return nn(t.data)}};Ea.create=e=>new Ea({typeName:me.ZodNull,...Te(e)});var Is=class extends Ce{constructor(){super(...arguments),this._any=!0}_parse(t){return nn(t.data)}};Is.create=e=>new Is({typeName:me.ZodAny,...Te(e)});var ua=class extends Ce{constructor(){super(...arguments),this._unknown=!0}_parse(t){return nn(t.data)}};ua.create=e=>new ua({typeName:me.ZodUnknown,...Te(e)});var Xr=class extends Ce{_parse(t){let n=this._getOrReturnCtx(t);return V(n,{code:j.invalid_type,expected:W.never,received:n.parsedType}),fe}};Xr.create=e=>new Xr({typeName:me.ZodNever,...Te(e)});var zi=class extends Ce{_parse(t){if(this._getType(t)!==W.undefined){let r=this._getOrReturnCtx(t);return V(r,{code:j.invalid_type,expected:W.void,received:r.parsedType}),fe}return nn(t.data)}};zi.create=e=>new zi({typeName:me.ZodVoid,...Te(e)});var xa=class wl extends Ce{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==W.array)return V(n,{code:j.invalid_type,expected:W.array,received:n.parsedType}),fe;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,o=n.data.length<s.exactLength.value;(i||o)&&(V(n,{code:i?j.too_big:j.too_small,minimum:o?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(V(n,{code:j.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(V(n,{code:j.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,o)=>s.type._parseAsync(new Ln(n,i,n.path,o)))).then(i=>Zt.mergeArray(r,i));let a=[...n.data].map((i,o)=>s.type._parseSync(new Ln(n,i,n.path,o)));return Zt.mergeArray(r,a)}get element(){return this._def.type}min(t,n){return new wl({...this._def,minLength:{value:t,message:ie.toString(n)}})}max(t,n){return new wl({...this._def,maxLength:{value:t,message:ie.toString(n)}})}length(t,n){return new wl({...this._def,exactLength:{value:t,message:ie.toString(n)}})}nonempty(t){return this.min(1,t)}};xa.create=(e,t)=>new xa({type:e,minLength:null,maxLength:null,exactLength:null,typeName:me.ZodArray,...Te(t)});function Xa(e){if(e instanceof zn){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=xr.create(Xa(r))}return new zn({...e._def,shape:()=>t})}else return e instanceof xa?new xa({...e._def,type:Xa(e.element)}):e instanceof xr?xr.create(Xa(e.unwrap())):e instanceof Cs?Cs.create(Xa(e.unwrap())):e instanceof Cr?Cr.create(e.items.map(t=>Xa(t))):e}var zn=class Wn extends Ce{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=je.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==W.object){let u=this._getOrReturnCtx(t);return V(u,{code:j.invalid_type,expected:W.object,received:u.parsedType}),fe}let{status:r,ctx:s}=this._processInputParams(t),{shape:a,keys:i}=this._getCached(),o=[];if(!(this._def.catchall instanceof Xr&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||o.push(u);let c=[];for(let u of i){let l=a[u],d=s.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Ln(s,d,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Xr){let u=this._def.unknownKeys;if(u==="passthrough")for(let l of o)c.push({key:{status:"valid",value:l},value:{status:"valid",value:s.data[l]}});else if(u==="strict")o.length>0&&(V(s,{code:j.unrecognized_keys,keys:o}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let l of o){let d=s.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Ln(s,d,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let l of c){let d=await l.key,h=await l.value;u.push({key:d,value:h,alwaysSet:l.alwaysSet})}return u}).then(u=>Zt.mergeObjectSync(r,u)):Zt.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return ie.errToObj,new Wn({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:ie.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new Wn({...this._def,unknownKeys:"strip"})}passthrough(){return new Wn({...this._def,unknownKeys:"passthrough"})}extend(t){return new Wn({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Wn({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:me.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Wn({...this._def,catchall:t})}pick(t){let n={};for(let r of je.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new Wn({...this._def,shape:()=>n})}omit(t){let n={};for(let r of je.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new Wn({...this._def,shape:()=>n})}deepPartial(){return Xa(this)}partial(t){let n={};for(let r of je.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new Wn({...this._def,shape:()=>n})}required(t){let n={};for(let r of je.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let a=this.shape[r];for(;a instanceof xr;)a=a._def.innerType;n[r]=a}return new Wn({...this._def,shape:()=>n})}keyof(){return P1(je.objectKeys(this.shape))}};zn.create=(e,t)=>new zn({shape:()=>e,unknownKeys:"strip",catchall:Xr.create(),typeName:me.ZodObject,...Te(t)});zn.strictCreate=(e,t)=>new zn({shape:()=>e,unknownKeys:"strict",catchall:Xr.create(),typeName:me.ZodObject,...Te(t)});zn.lazycreate=(e,t)=>new zn({shape:e,unknownKeys:"strip",catchall:Xr.create(),typeName:me.ZodObject,...Te(t)});var wc=class extends Ce{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(a){for(let o of a)if(o.result.status==="valid")return o.result;for(let o of a)if(o.result.status==="dirty")return n.common.issues.push(...o.ctx.common.issues),o.result;let i=a.map(o=>new ar(o.ctx.common.issues));return V(n,{code:j.invalid_union,unionErrors:i}),fe}if(n.common.async)return Promise.all(r.map(async a=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await a._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let a,i=[];for(let c of r){let u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!a&&(a={result:l,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(a)return n.common.issues.push(...a.ctx.common.issues),a.result;let o=i.map(c=>new ar(c));return V(n,{code:j.invalid_union,unionErrors:o}),fe}}get options(){return this._def.options}};wc.create=(e,t)=>new wc({options:e,typeName:me.ZodUnion,...Te(t)});var Pr=e=>e instanceof Ta?Pr(e.schema):e instanceof In?Pr(e.innerType()):e instanceof kc?[e.value]:e instanceof su?e.options:e instanceof Oa?je.objectValues(e.enum):e instanceof Sc?Pr(e._def.innerType):e instanceof Sa?[void 0]:e instanceof Ea?[null]:e instanceof xr?[void 0,...Pr(e.unwrap())]:e instanceof Cs?[null,...Pr(e.unwrap())]:e instanceof xc||e instanceof Oc?Pr(e.unwrap()):e instanceof Ec?Pr(e._def.innerType):[],cd=class e extends Ce{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==W.object)return V(n,{code:j.invalid_type,expected:W.object,received:n.parsedType}),fe;let r=this.discriminator,s=n.data[r],a=this.optionsMap.get(s);return a?n.common.async?a._parseAsync({data:n.data,path:n.path,parent:n}):a._parseSync({data:n.data,path:n.path,parent:n}):(V(n,{code:j.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),fe)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let a of n){let i=Pr(a.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let o of i){if(s.has(o))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(o)}`);s.set(o,a)}}return new e({typeName:me.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...Te(r)})}};function Pg(e,t){let n=Fr(e),r=Fr(t);if(e===t)return{valid:!0,data:e};if(n===W.object&&r===W.object){let s=je.objectKeys(t),a=je.objectKeys(e).filter(o=>s.indexOf(o)!==-1),i={...e,...t};for(let o of a){let c=Pg(e[o],t[o]);if(!c.valid)return{valid:!1};i[o]=c.data}return{valid:!0,data:i}}else if(n===W.array&&r===W.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let a=0;a<e.length;a++){let i=e[a],o=t[a],c=Pg(i,o);if(!c.valid)return{valid:!1};s.push(c.data)}return{valid:!0,data:s}}else return n===W.date&&r===W.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var bc=class extends Ce{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(a,i)=>{if(Ag(a)||Ag(i))return fe;let o=Pg(a.value,i.value);return o.valid?((Rg(a)||Rg(i))&&n.dirty(),{status:n.value,value:o.data}):(V(r,{code:j.invalid_intersection_types}),fe)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([a,i])=>s(a,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};bc.create=(e,t,n)=>new bc({left:e,right:t,typeName:me.ZodIntersection,...Te(n)});var Cr=class e extends Ce{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==W.array)return V(r,{code:j.invalid_type,expected:W.array,received:r.parsedType}),fe;if(r.data.length<this._def.items.length)return V(r,{code:j.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),fe;!this._def.rest&&r.data.length>this._def.items.length&&(V(r,{code:j.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let a=[...r.data].map((i,o)=>{let c=this._def.items[o]||this._def.rest;return c?c._parse(new Ln(r,i,r.path,o)):null}).filter(i=>!!i);return r.common.async?Promise.all(a).then(i=>Zt.mergeArray(n,i)):Zt.mergeArray(n,a)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Cr.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Cr({items:e,typeName:me.ZodTuple,rest:null,...Te(t)})};var N1=class Mg extends Ce{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==W.object)return V(r,{code:j.invalid_type,expected:W.object,received:r.parsedType}),fe;let s=[],a=this._def.keyType,i=this._def.valueType;for(let o in r.data)s.push({key:a._parse(new Ln(r,o,r.path,o)),value:i._parse(new Ln(r,r.data[o],r.path,o)),alwaysSet:o in r.data});return r.common.async?Zt.mergeObjectAsync(n,s):Zt.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof Ce?new Mg({keyType:t,valueType:n,typeName:me.ZodRecord,...Te(r)}):new Mg({keyType:ji.create(),valueType:t,typeName:me.ZodRecord,...Te(n)})}},Di=class extends Ce{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==W.map)return V(r,{code:j.invalid_type,expected:W.map,received:r.parsedType}),fe;let s=this._def.keyType,a=this._def.valueType,i=[...r.data.entries()].map(([o,c],u)=>({key:s._parse(new Ln(r,o,r.path,[u,"key"])),value:a._parse(new Ln(r,c,r.path,[u,"value"]))}));if(r.common.async){let o=new Map;return Promise.resolve().then(async()=>{for(let c of i){let u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return fe;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),o.set(u.value,l.value)}return{status:n.value,value:o}})}else{let o=new Map;for(let c of i){let u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return fe;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),o.set(u.value,l.value)}return{status:n.value,value:o}}}};Di.create=(e,t,n)=>new Di({valueType:t,keyType:e,typeName:me.ZodMap,...Te(n)});var Ui=class e extends Ce{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==W.set)return V(r,{code:j.invalid_type,expected:W.set,received:r.parsedType}),fe;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(V(r,{code:j.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(V(r,{code:j.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let a=this._def.valueType;function i(c){let u=new Set;for(let l of c){if(l.status==="aborted")return fe;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}let o=[...r.data.values()].map((c,u)=>a._parse(new Ln(r,c,r.path,u)));return r.common.async?Promise.all(o).then(c=>i(c)):i(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:ie.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:ie.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Ui.create=(e,t)=>new Ui({valueType:e,minSize:null,maxSize:null,typeName:me.ZodSet,...Te(t)});var ud=class e extends Ce{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==W.function)return V(n,{code:j.invalid_type,expected:W.function,received:n.parsedType}),fe;function r(o,c){return od({data:o,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,id(),Mi].filter(u=>!!u),issueData:{code:j.invalid_arguments,argumentsError:c}})}function s(o,c){return od({data:o,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,id(),Mi].filter(u=>!!u),issueData:{code:j.invalid_return_type,returnTypeError:c}})}let a={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof $s){let o=this;return nn(async function(...c){let u=new ar([]),l=await o._def.args.parseAsync(c,a).catch(f=>{throw u.addIssue(r(c,f)),u}),d=await Reflect.apply(i,this,l);return await o._def.returns._def.type.parseAsync(d,a).catch(f=>{throw u.addIssue(s(d,f)),u})})}else{let o=this;return nn(function(...c){let u=o._def.args.safeParse(c,a);if(!u.success)throw new ar([r(c,u.error)]);let l=Reflect.apply(i,this,u.data),d=o._def.returns.safeParse(l,a);if(!d.success)throw new ar([s(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Cr.create(t).rest(ua.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Cr.create([]).rest(ua.create()),returns:n||ua.create(),typeName:me.ZodFunction,...Te(r)})}},Ta=class extends Ce{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};Ta.create=(e,t)=>new Ta({getter:e,typeName:me.ZodLazy,...Te(t)});var kc=class extends Ce{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return V(n,{received:n.data,code:j.invalid_literal,expected:this._def.value}),fe}return{status:"valid",value:t.data}}get value(){return this._def.value}};kc.create=(e,t)=>new kc({value:e,typeName:me.ZodLiteral,...Te(t)});function P1(e,t){return new su({values:e,typeName:me.ZodEnum,...Te(t)})}var su=class jg extends Ce{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return V(n,{expected:je.joinValues(r),received:n.parsedType,code:j.invalid_type}),fe}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return V(n,{received:n.data,code:j.invalid_enum_value,options:r}),fe}return nn(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return jg.create(t,{...this._def,...n})}exclude(t,n=this._def){return jg.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};su.create=P1;var Oa=class extends Ce{_parse(t){let n=je.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==W.string&&r.parsedType!==W.number){let s=je.objectValues(n);return V(r,{expected:je.joinValues(s),received:r.parsedType,code:j.invalid_type}),fe}if(this._cache||(this._cache=new Set(je.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=je.objectValues(n);return V(r,{received:r.data,code:j.invalid_enum_value,options:s}),fe}return nn(t.data)}get enum(){return this._def.values}};Oa.create=(e,t)=>new Oa({values:e,typeName:me.ZodNativeEnum,...Te(t)});var $s=class extends Ce{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==W.promise&&n.common.async===!1)return V(n,{code:j.invalid_type,expected:W.promise,received:n.parsedType}),fe;let r=n.parsedType===W.promise?n.data:Promise.resolve(n.data);return nn(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};$s.create=(e,t)=>new $s({type:e,typeName:me.ZodPromise,...Te(t)});var In=class extends Ce{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===me.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,a={addIssue:i=>{V(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(a.addIssue=a.addIssue.bind(a),s.type==="preprocess"){let i=s.transform(r.data,a);if(r.common.async)return Promise.resolve(i).then(async o=>{if(n.value==="aborted")return fe;let c=await this._def.schema._parseAsync({data:o,path:r.path,parent:r});return c.status==="aborted"?fe:c.status==="dirty"||n.value==="dirty"?ui(c.value):c});{if(n.value==="aborted")return fe;let o=this._def.schema._parseSync({data:i,path:r.path,parent:r});return o.status==="aborted"?fe:o.status==="dirty"||n.value==="dirty"?ui(o.value):o}}if(s.type==="refinement"){let i=o=>{let c=s.refinement(o,a);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return o};if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?fe:(o.status==="dirty"&&n.dirty(),i(o.value),{status:n.value,value:o.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>o.status==="aborted"?fe:(o.status==="dirty"&&n.dirty(),i(o.value).then(()=>({status:n.value,value:o.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!va(i))return fe;let o=s.transform(i.value,a);if(o instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:o}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>va(i)?Promise.resolve(s.transform(i.value,a)).then(o=>({status:n.value,value:o})):fe);je.assertNever(s)}};In.create=(e,t,n)=>new In({schema:e,typeName:me.ZodEffects,effect:t,...Te(n)});In.createWithPreprocess=(e,t,n)=>new In({schema:t,effect:{type:"preprocess",transform:e},typeName:me.ZodEffects,...Te(n)});var xr=class extends Ce{_parse(t){return this._getType(t)===W.undefined?nn(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};xr.create=(e,t)=>new xr({innerType:e,typeName:me.ZodOptional,...Te(t)});var Cs=class extends Ce{_parse(t){return this._getType(t)===W.null?nn(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Cs.create=(e,t)=>new Cs({innerType:e,typeName:me.ZodNullable,...Te(t)});var Sc=class extends Ce{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===W.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};Sc.create=(e,t)=>new Sc({innerType:e,typeName:me.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Te(t)});var Ec=class extends Ce{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return yc(s)?s.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new ar(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ar(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};Ec.create=(e,t)=>new Ec({innerType:e,typeName:me.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Te(t)});var Fi=class extends Ce{_parse(t){if(this._getType(t)!==W.nan){let r=this._getOrReturnCtx(t);return V(r,{code:j.invalid_type,expected:W.nan,received:r.parsedType}),fe}return{status:"valid",value:t.data}}};Fi.create=e=>new Fi({typeName:me.ZodNaN,...Te(e)});var F5=Symbol("zod_brand"),xc=class extends Ce{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},Tc=class e extends Ce{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?fe:a.status==="dirty"?(n.dirty(),ui(a.value)):this._def.out._parseAsync({data:a.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?fe:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:me.ZodPipeline})}},Oc=class extends Ce{_parse(t){let n=this._def.innerType._parse(t),r=s=>(va(s)&&(s.value=Object.freeze(s.value)),s);return yc(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};Oc.create=(e,t)=>new Oc({innerType:e,typeName:me.ZodReadonly,...Te(t)});function V0(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function zy(e,t={},n){return e?Is.create().superRefine((r,s)=>{let a=e(r);if(a instanceof Promise)return a.then(i=>{if(!i){let o=V0(t,r),c=o.fatal??n??!0;s.addIssue({code:"custom",...o,fatal:c})}});if(!a){let i=V0(t,r),o=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:o})}}):Is.create()}var B5={object:zn.lazycreate},me;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(me||(me={}));var Z5=(e,t={message:`Input not instance of ${e.name}`})=>zy(n=>n instanceof e,t),un=ji.create,Go=vc.create,V5=Fi.create,q5=wa.create,M1=ba.create,H5=ka.create,G5=Li.create,W5=Sa.create,J5=Ea.create,K5=Is.create,X5=ua.create,Y5=Xr.create,Q5=zi.create,li=xa.create,cs=zn.create,e3=zn.strictCreate,t3=wc.create,n3=cd.create,r3=bc.create,s3=Cr.create,a3=N1.create,i3=Di.create,o3=Ui.create,c3=ud.create,u3=Ta.create,$o=kc.create,l3=su.create,d3=Oa.create,h3=$s.create,q0=In.create,f3=xr.create,p3=Cs.create,m3=In.createWithPreprocess,g3=Tc.create,_3=()=>un().optional(),y3=()=>Go().optional(),v3=()=>M1().optional(),w3={string:(e=>ji.create({...e,coerce:!0})),number:(e=>vc.create({...e,coerce:!0})),boolean:(e=>ba.create({...e,coerce:!0})),bigint:(e=>wa.create({...e,coerce:!0})),date:(e=>ka.create({...e,coerce:!0}))},b3=fe,St=Object.freeze(Object.defineProperty({__proto__:null,BRAND:F5,DIRTY:ui,EMPTY_PATH:v5,INVALID:fe,NEVER:b3,OK:nn,ParseStatus:Zt,Schema:Ce,ZodAny:Is,ZodArray:xa,ZodBigInt:wa,ZodBoolean:ba,ZodBranded:xc,ZodCatch:Ec,ZodDate:ka,ZodDefault:Sc,ZodDiscriminatedUnion:cd,ZodEffects:In,ZodEnum:su,ZodError:ar,get ZodFirstPartyTypeKind(){return me},ZodFunction:ud,ZodIntersection:bc,ZodIssueCode:j,ZodLazy:Ta,ZodLiteral:kc,ZodMap:Di,ZodNaN:Fi,ZodNativeEnum:Oa,ZodNever:Xr,ZodNull:Ea,ZodNullable:Cs,ZodNumber:vc,ZodObject:zn,ZodOptional:xr,ZodParsedType:W,ZodPipeline:Tc,ZodPromise:$s,ZodReadonly:Oc,ZodRecord:N1,ZodSchema:Ce,ZodSet:Ui,ZodString:ji,ZodSymbol:Li,ZodTransformer:In,ZodTuple:Cr,ZodType:Ce,ZodUndefined:Sa,ZodUnion:wc,ZodUnknown:ua,ZodVoid:zi,addIssueToContext:V,any:K5,array:li,bigint:q5,boolean:M1,coerce:w3,custom:zy,date:H5,datetimeRegex:R1,defaultErrorMap:Mi,discriminatedUnion:n3,effect:q0,enum:l3,function:c3,getErrorMap:id,getParsedType:Fr,instanceof:Z5,intersection:r3,isAborted:Ag,isAsync:yc,isDirty:Rg,isValid:va,late:B5,lazy:u3,literal:$o,makeIssue:od,map:i3,nan:V5,nativeEnum:d3,never:Y5,null:J5,nullable:p3,number:Go,object:cs,get objectUtil(){return Cg},oboolean:v3,onumber:y3,optional:f3,ostring:_3,pipeline:g3,preprocess:m3,promise:h3,quotelessJson:_5,record:a3,set:o3,setErrorMap:y5,strictObject:e3,string:un,symbol:G5,transformer:q0,tuple:s3,undefined:W5,union:t3,unknown:X5,get util(){return je},void:Q5},Symbol.toStringTag,{value:"Module"}));_t.Root({messages:_t({reducer:Ma,default:()=>[]})});var k3={reducer:{fn:Ma},jsonSchemaExtra:{langgraph_type:"messages"},default:()=>[]};cs({messages:d5(zy(),k3)});async function S3(e,t,n){if(n===void 0)throw new Error(["Unable to dispatch a custom event without a parent run id.",'"dispatchCustomEvent" can only be called from within an existing run (e.g.,',"inside a tool or a RunnableLambda).",`
626
626