@elizaos/core 1.6.4-alpha.21 → 1.6.4-alpha.22
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.
|
@@ -49,7 +49,7 @@ Please make sure you are calling this method within a traceable function and tha
|
|
|
49
49
|
* https://github.com/Starcounter-Jack/JSON-Patch
|
|
50
50
|
* (c) 2013-2021 Joachim Wester
|
|
51
51
|
* MIT license
|
|
52
|
-
*/var IB={...CO,JsonPatchError:Q_,deepClone:O8,escapePathComponent:z1,unescapePathComponent:OP};var yJ=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function sN($){return typeof $==="string"&&yJ.test($)}var uJ=sN;function $C($){if(!uJ($))throw TypeError("Invalid UUID");var q,K=new Uint8Array(16);return K[0]=(q=parseInt($.slice(0,8),16))>>>24,K[1]=q>>>16&255,K[2]=q>>>8&255,K[3]=q&255,K[4]=(q=parseInt($.slice(9,13),16))>>>8,K[5]=q&255,K[6]=(q=parseInt($.slice(14,18),16))>>>8,K[7]=q&255,K[8]=(q=parseInt($.slice(19,23),16))>>>8,K[9]=q&255,K[10]=(q=parseInt($.slice(24,36),16))/1099511627776&255,K[11]=q/4294967296&255,K[12]=q>>>24&255,K[13]=q>>>16&255,K[14]=q>>>8&255,K[15]=q&255,K}var xJ=$C;var Zq=[];for(vP=0;vP<256;++vP)Zq.push((vP+256).toString(16).slice(1));var vP;function J1($,q=0){return(Zq[$[q+0]]+Zq[$[q+1]]+Zq[$[q+2]]+Zq[$[q+3]]+"-"+Zq[$[q+4]]+Zq[$[q+5]]+"-"+Zq[$[q+6]]+Zq[$[q+7]]+"-"+Zq[$[q+8]]+Zq[$[q+9]]+"-"+Zq[$[q+10]]+Zq[$[q+11]]+Zq[$[q+12]]+Zq[$[q+13]]+Zq[$[q+14]]+Zq[$[q+15]]).toLowerCase()}var T1,qC=new Uint8Array(16);function EO(){if(!T1){if(T1=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!T1)throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported")}return T1(qC)}function KC($){$=unescape(encodeURIComponent($));var q=[];for(var K=0;K<$.length;++K)q.push($.charCodeAt(K));return q}var _C="6ba7b810-9dad-11d1-80b4-00c04fd430c8",PC="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function hO($,q,K){function P(_,O,j,z){var J;if(typeof _==="string")_=KC(_);if(typeof O==="string")O=xJ(O);if(((J=O)===null||J===void 0?void 0:J.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var w=new Uint8Array(16+_.length);if(w.set(O),w.set(_,O.length),w=K(w),w[6]=w[6]&15|q,w[8]=w[8]&63|128,j){z=z||0;for(var k=0;k<16;++k)j[z+k]=w[k];return j}return J1(w)}try{P.name=$}catch(_){}return P.DNS=_C,P.URL=PC,P}var jC=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),RO={randomUUID:jC};function OC($,q,K){if(RO.randomUUID&&!q&&!$)return RO.randomUUID();$=$||{};var P=$.random||($.rng||EO)();if(P[6]=P[6]&15|64,P[8]=P[8]&63|128,q){K=K||0;for(var _=0;_<16;++_)q[K+_]=P[_];return q}return J1(P)}var qK=OC;function YC($,q,K,P){switch($){case 0:return q&K^~q&P;case 1:return q^K^P;case 2:return q&K^q&P^K&P;case 3:return q^K^P}}function IO($,q){return $<<q|$>>>32-q}function vC($){var q=[1518500249,1859775393,2400959708,3395469782],K=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof $==="string"){var P=unescape(encodeURIComponent($));$=[];for(var _=0;_<P.length;++_)$.push(P.charCodeAt(_))}else if(!Array.isArray($))$=Array.prototype.slice.call($);$.push(128);var O=$.length/4+2,j=Math.ceil(O/16),z=Array(j);for(var J=0;J<j;++J){var w=new Uint32Array(16);for(var k=0;k<16;++k)w[k]=$[J*64+k*4]<<24|$[J*64+k*4+1]<<16|$[J*64+k*4+2]<<8|$[J*64+k*4+3];z[J]=w}z[j-1][14]=($.length-1)*8/Math.pow(2,32),z[j-1][14]=Math.floor(z[j-1][14]),z[j-1][15]=($.length-1)*8&4294967295;for(var X=0;X<j;++X){var G=new Uint32Array(80);for(var V=0;V<16;++V)G[V]=z[X][V];for(var C=16;C<80;++C)G[C]=IO(G[C-3]^G[C-8]^G[C-14]^G[C-16],1);var E=K[0],h=K[1],I=K[2],D=K[3],g=K[4];for(var y=0;y<80;++y){var u=Math.floor(y/20),p=IO(E,5)+YC(u,h,I,D)+g+q[u]+G[y]>>>0;g=D,D=I,I=IO(h,30)>>>0,h=E,E=p}K[0]=K[0]+E>>>0,K[1]=K[1]+h>>>0,K[2]=K[2]+I>>>0,K[3]=K[3]+D>>>0,K[4]=K[4]+g>>>0}return[K[0]>>24&255,K[0]>>16&255,K[0]>>8&255,K[0]&255,K[1]>>24&255,K[1]>>16&255,K[1]>>8&255,K[1]&255,K[2]>>24&255,K[2]>>16&255,K[2]>>8&255,K[2]&255,K[3]>>24&255,K[3]>>16&255,K[3]>>8&255,K[3]&255,K[4]>>24&255,K[4]>>16&255,K[4]>>8&255,K[4]&255]}var cJ=vC;var zC=hO("v5",80,cJ),w1=zC;var mJ="gen_ai.operation.name",dJ="gen_ai.system",DO="gen_ai.request.model",lJ="gen_ai.response.model",LO="gen_ai.usage.input_tokens",bO="gen_ai.usage.output_tokens",gO="gen_ai.usage.total_tokens",rJ="gen_ai.request.max_tokens",oJ="gen_ai.request.temperature",nJ="gen_ai.request.top_p",iJ="gen_ai.request.frequency_penalty",BJ="gen_ai.request.presence_penalty",tJ="gen_ai.response.finish_reasons",UJ="gen_ai.prompt",FJ="gen_ai.completion",aJ="gen_ai.request.extra_query",QJ="gen_ai.request.extra_body",eJ="gen_ai.serialized.name",sJ="gen_ai.serialized.signature",$T="gen_ai.serialized.doc",qT="gen_ai.response.id",KT="gen_ai.response.service_tier",_T="gen_ai.response.system_fingerprint",PT="gen_ai.usage.input_token_details",jT="gen_ai.usage.output_token_details",OT="langsmith.trace.session_id",YT="langsmith.trace.session_name",vT="langsmith.span.kind",zT="langsmith.trace.name",WT="langsmith.metadata",yO="langsmith.span.tags";var HT="langsmith.request.streaming",JT="langsmith.request.headers";var HC=(...$)=>fetch(...$),TT=Symbol.for("ls:fetch_implementation");var wT=()=>{let $=globalThis[TT];if(!$)return!1;return typeof $==="function"&&"Headers"in $&&"Request"in $&&"Response"in $},ZT=($)=>{return async(...q)=>{if($||c6("DEBUG")==="true"){let[P,_]=q;console.log(`→ ${_?.method||"GET"} ${P}`)}let K=await(globalThis[TT]??HC)(...q);if($||c6("DEBUG")==="true")console.log(`← ${K.status} ${K.statusText} ${K.url}`);return K}};var zP=()=>{return c6("PROJECT")??Qq("LANGCHAIN_SESSION")??"default"};var Z1="0.3.75";var g8,JC=()=>typeof window<"u"&&typeof window.document<"u",TC=()=>typeof globalThis==="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",wC=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),fT=()=>typeof Deno<"u",ZC=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!fT(),cO=()=>{if(g8)return g8;if(typeof Bun<"u")g8="bun";else if(JC())g8="browser";else if(ZC())g8="node";else if(TC())g8="webworker";else if(wC())g8="jsdom";else if(fT())g8="deno";else g8="other";return g8},uO;function f1(){if(uO===void 0){let $=cO(),q=XC();uO={library:"langsmith",runtime:$,sdk:"langsmith-js",sdk_version:Z1,...q}}return uO}function pO(){let $=fC(),q={},K=["LANGCHAIN_API_KEY","LANGCHAIN_ENDPOINT","LANGCHAIN_TRACING_V2","LANGCHAIN_PROJECT","LANGCHAIN_SESSION","LANGSMITH_API_KEY","LANGSMITH_ENDPOINT","LANGSMITH_TRACING_V2","LANGSMITH_PROJECT","LANGSMITH_SESSION"];for(let[P,_]of Object.entries($))if(typeof _==="string"&&!K.includes(P)&&!P.toLowerCase().includes("key")&&!P.toLowerCase().includes("secret")&&!P.toLowerCase().includes("token"))if(P==="LANGCHAIN_REVISION_ID")q.revision_id=_;else q[P]=_;return q}function fC(){let $={};try{if(typeof process<"u"&&process.env){for(let[q,K]of Object.entries(process.env))if((q.startsWith("LANGCHAIN_")||q.startsWith("LANGSMITH_"))&&K!=null)if((q.toLowerCase().includes("key")||q.toLowerCase().includes("secret")||q.toLowerCase().includes("token"))&&typeof K==="string")$[q]=K.slice(0,2)+"*".repeat(K.length-4)+K.slice(-2);else $[q]=K}}catch(q){}return $}function Qq($){try{return typeof process<"u"?process.env?.[$]:void 0}catch(q){return}}function c6($){return Qq(`LANGSMITH_${$}`)||Qq(`LANGCHAIN_${$}`)}var xO;function XC(){if(xO!==void 0)return xO;let $=["VERCEL_GIT_COMMIT_SHA","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","COMMIT_REF","RENDER_GIT_COMMIT","CI_COMMIT_SHA","CIRCLE_SHA1","CF_PAGES_COMMIT_SHA","REACT_APP_GIT_SHA","SOURCE_VERSION","GITHUB_SHA","TRAVIS_COMMIT","GIT_COMMIT","BUILD_VCS_NUMBER","bamboo_planRepository_revision","Build.SourceVersion","BITBUCKET_COMMIT","DRONE_COMMIT_SHA","SEMAPHORE_GIT_SHA","BUILDKITE_COMMIT"],q={};for(let K of $){let P=Qq(K);if(P!==void 0)q[K]=P}return xO=q,q}function X1(){return Qq("OTEL_ENABLED")==="true"||c6("OTEL_ENABLED")==="true"}class kT{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan($,...q){if(!this.hasWarned&&X1())console.warn('You have enabled OTEL export via the `OTEL_ENABLED` or `LANGSMITH_OTEL_ENABLED` environment variable, but have not initialized the required OTEL instances. Please add:\n```\nimport { initializeOTEL } from "langsmith/experimental/otel/setup";\ninitializeOTEL();\n```\nat the beginning of your code.'),this.hasWarned=!0;let K;if(q.length===1&&typeof q[0]==="function")K=q[0];else if(q.length===2&&typeof q[1]==="function")K=q[1];else if(q.length===3&&typeof q[2]==="function")K=q[2];if(typeof K==="function")return K();return}}class AT{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new kT})}getTracer($,q){return this.mockTracer}getActiveSpan(){return}setSpan($,q){return $}getSpan($){return}setSpanContext($,q){return $}getTracerProvider(){return}setGlobalTracerProvider($){return!1}}class GT{active(){return{}}with($,q){return q()}}var mO=Symbol.for("ls:otel_trace"),dO=Symbol.for("ls:otel_context"),XT=Symbol.for("ls:otel_get_default_otlp_tracer_provider"),kC=new AT,AC=new GT;class VT{getTraceInstance(){return globalThis[mO]??kC}getContextInstance(){return globalThis[dO]??AC}initializeGlobalInstances($){if(globalThis[mO]===void 0)globalThis[mO]=$.trace;if(globalThis[dO]===void 0)globalThis[dO]=$.context}setDefaultOTLPTracerComponents($){globalThis[XT]=$}getDefaultOTLPTracerComponents(){return globalThis[XT]??void 0}}var lO=new VT;function k1(){return lO.getTraceInstance()}function ST(){return lO.getContextInstance()}function MT(){return lO.getDefaultOTLPTracerComponents()}var GC={llm:"chat",tool:"execute_tool",retriever:"embeddings",embedding:"embeddings",prompt:"chat"};function VC($){return GC[$]||$}class rO{constructor(){Object.defineProperty(this,"spans",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}exportBatch($,q){for(let K of $)try{if(!K.run)continue;if(K.operation==="post"){let P=this.createSpanForRun(K,K.run,q.get(K.id));if(P&&!K.run.end_time)this.spans.set(K.id,P)}else this.updateSpanForRun(K,K.run)}catch(P){console.error(`Error processing operation ${K.id}:`,P)}}createSpanForRun($,q,K){let P=K&&k1().getSpan(K);if(!P)return;try{return this.finishSpanSetup(P,q,$)}catch(_){console.error(`Failed to create span for run ${$.id}:`,_);return}}finishSpanSetup($,q,K){if(this.setSpanAttributes($,q,K),q.error)$.setStatus({code:2}),$.recordException(Error(q.error));else $.setStatus({code:1});if(q.end_time)$.end(new Date(q.end_time));return $}updateSpanForRun($,q){try{let K=this.spans.get($.id);if(!K){console.debug(`No span found for run ${$.id} during update`);return}if(this.setSpanAttributes(K,q,$),q.error)K.setStatus({code:2}),K.recordException(Error(q.error));else K.setStatus({code:1});let P=q.end_time;if(P)K.end(new Date(P)),this.spans.delete($.id)}catch(K){console.error(`Failed to update span for run ${$.id}:`,K)}}extractModelName($){if($.extra?.metadata){let q=$.extra.metadata;if(q.ls_model_name)return q.ls_model_name;if(q.invocation_params){let K=q.invocation_params;if(K.model)return K.model;else if(K.model_name)return K.model_name}}return}setSpanAttributes($,q,K){if("run_type"in q&&q.run_type){$.setAttribute(vT,q.run_type);let j=VC(q.run_type||"chain");$.setAttribute(mJ,j)}if("name"in q&&q.name)$.setAttribute(zT,q.name);if("session_id"in q&&q.session_id)$.setAttribute(OT,q.session_id);if("session_name"in q&&q.session_name)$.setAttribute(YT,q.session_name);this.setGenAiSystem($,q);let P=this.extractModelName(q);if(P)$.setAttribute(DO,P);if("prompt_tokens"in q&&typeof q.prompt_tokens==="number")$.setAttribute(LO,q.prompt_tokens);if("completion_tokens"in q&&typeof q.completion_tokens==="number")$.setAttribute(bO,q.completion_tokens);if("total_tokens"in q&&typeof q.total_tokens==="number")$.setAttribute(gO,q.total_tokens);this.setInvocationParameters($,q);let _=q.extra?.metadata||{};for(let[j,z]of Object.entries(_))if(z!==null&&z!==void 0)$.setAttribute(`${WT}.${j}`,String(z));let O=q.tags;if(O&&Array.isArray(O))$.setAttribute(yO,O.join(", "));else if(O)$.setAttribute(yO,String(O));if("serialized"in q&&typeof q.serialized==="object"){let j=q.serialized;if(j.name)$.setAttribute(eJ,String(j.name));if(j.signature)$.setAttribute(sJ,String(j.signature));if(j.doc)$.setAttribute($T,String(j.doc))}this.setIOAttributes($,K)}setGenAiSystem($,q){let K="langchain",P=this.extractModelName(q);if(P){let _=P.toLowerCase();if(_.includes("anthropic")||_.startsWith("claude"))K="anthropic";else if(_.includes("bedrock"))K="aws.bedrock";else if(_.includes("azure")&&_.includes("openai"))K="az.ai.openai";else if(_.includes("azure")&&_.includes("inference"))K="az.ai.inference";else if(_.includes("cohere"))K="cohere";else if(_.includes("deepseek"))K="deepseek";else if(_.includes("gemini"))K="gemini";else if(_.includes("groq"))K="groq";else if(_.includes("watson")||_.includes("ibm"))K="ibm.watsonx.ai";else if(_.includes("mistral"))K="mistral_ai";else if(_.includes("gpt")||_.includes("openai"))K="openai";else if(_.includes("perplexity")||_.includes("sonar"))K="perplexity";else if(_.includes("vertex"))K="vertex_ai";else if(_.includes("xai")||_.includes("grok"))K="xai"}$.setAttribute(dJ,K)}setInvocationParameters($,q){if(!q.extra?.metadata?.invocation_params)return;let K=q.extra.metadata.invocation_params;if(K.max_tokens!==void 0)$.setAttribute(rJ,K.max_tokens);if(K.temperature!==void 0)$.setAttribute(oJ,K.temperature);if(K.top_p!==void 0)$.setAttribute(nJ,K.top_p);if(K.frequency_penalty!==void 0)$.setAttribute(iJ,K.frequency_penalty);if(K.presence_penalty!==void 0)$.setAttribute(BJ,K.presence_penalty)}setIOAttributes($,q){if(q.run.inputs)try{let K=q.run.inputs;if(typeof K==="object"&&K!==null){if(K.model&&Array.isArray(K.messages))$.setAttribute(DO,K.model);if(K.stream!==void 0)$.setAttribute(HT,K.stream);if(K.extra_headers)$.setAttribute(JT,JSON.stringify(K.extra_headers));if(K.extra_query)$.setAttribute(aJ,JSON.stringify(K.extra_query));if(K.extra_body)$.setAttribute(QJ,JSON.stringify(K.extra_body))}$.setAttribute(UJ,JSON.stringify(K))}catch(K){console.debug(`Failed to process inputs for run ${q.id}`,K)}if(q.run.outputs)try{let K=q.run.outputs,P=this.getUnifiedRunTokens(K);if(P)$.setAttribute(LO,P[0]),$.setAttribute(bO,P[1]),$.setAttribute(gO,P[0]+P[1]);if(K&&typeof K==="object"){if(K.model)$.setAttribute(lJ,String(K.model));if(K.id)$.setAttribute(qT,K.id);if(K.choices&&Array.isArray(K.choices)){let _=K.choices.map((O)=>O.finish_reason).filter((O)=>O).map(String);if(_.length>0)$.setAttribute(tJ,_.join(", "))}if(K.service_tier)$.setAttribute(KT,K.service_tier);if(K.system_fingerprint)$.setAttribute(_T,K.system_fingerprint);if(K.usage_metadata&&typeof K.usage_metadata==="object"){let _=K.usage_metadata;if(_.input_token_details)$.setAttribute(PT,JSON.stringify(_.input_token_details));if(_.output_token_details)$.setAttribute(jT,JSON.stringify(_.output_token_details))}}$.setAttribute(FJ,JSON.stringify(K))}catch(K){console.debug(`Failed to process outputs for run ${q.id}`,K)}}getUnifiedRunTokens($){if(!$)return null;let q=this.extractUnifiedRunTokens($.usage_metadata);if(q)return q;let K=Object.keys($);for(let O of K){let j=$[O];if(!j||typeof j!=="object")continue;if(q=this.extractUnifiedRunTokens(j.usage_metadata),q)return q;if(j.lc===1&&j.kwargs&&typeof j.kwargs==="object"){if(q=this.extractUnifiedRunTokens(j.kwargs.usage_metadata),q)return q}}let P=$.generations||[];if(!Array.isArray(P))return null;let _=Array.isArray(P[0])?P.flat():P;for(let O of _)if(typeof O==="object"&&O.message&&typeof O.message==="object"&&O.message.kwargs&&typeof O.message.kwargs==="object"){if(q=this.extractUnifiedRunTokens(O.message.kwargs.usage_metadata),q)return q}return null}extractUnifiedRunTokens($){if(!$||typeof $!=="object")return null;if(typeof $.input_tokens!=="number"||typeof $.output_tokens!=="number")return null;return[$.input_tokens,$.output_tokens]}}var pT=Dq(P1(),1),M1=Dq(S1(),1),gC=[429,500,502,503,504];class N1{constructor($){if(Object.defineProperty(this,"maxConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxRetries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFailedResponseHook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxConcurrency=$.maxConcurrency??1/0,this.maxRetries=$.maxRetries??6,"default"in M1.default)this.queue=new M1.default.default({concurrency:this.maxConcurrency});else this.queue=new M1.default({concurrency:this.maxConcurrency});this.onFailedResponseHook=$?.onFailedResponseHook}call($,...q){let K=this.onFailedResponseHook;return this.queue.add(()=>pT.default(()=>$(...q).catch((P)=>{if(P instanceof Error)throw P;else throw Error(P)}),{async onFailedAttempt(P){if(P.message.startsWith("Cancel")||P.message.startsWith("TimeoutError")||P.name==="TimeoutError"||P.message.startsWith("AbortError"))throw P;if(P?.code==="ECONNABORTED")throw P;let _=P?.response;if(K){if(await K(_))return}let O=_?.status??P?.status;if(O){if(!gC.includes(+O))throw P}},retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0})}callWithOptions($,q,...K){if($.signal)return Promise.race([this.call(q,...K),new Promise((P,_)=>{$.signal?.addEventListener("abort",()=>{_(Error("AbortError"))})})]);return this.call(q,...K)}}function iO($){return typeof $?._getType==="function"}function BO($){let q={type:$._getType(),data:{content:$.content}};if($?.additional_kwargs&&Object.keys($.additional_kwargs).length>0)q.data.additional_kwargs={...$.additional_kwargs};return q}var yC=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function _6($,q){if(!yC.test($)){let K=q!==void 0?`Invalid UUID for ${q}: ${$}`:`Invalid UUID: ${$}`;throw Error(K)}return $}var mT={};function HP($){if(!mT[$])console.warn($),mT[$]=!0}var hR=Dq(IZ(),1);function KK($){if(!$||$.split("/").length>2||$.startsWith("/")||$.endsWith("/")||$.split(":").length>2)throw Error(`Invalid identifier format: ${$}`);let[q,K]=$.split(":"),P=K||"latest";if(q.includes("/")){let[_,O]=q.split("/",2);if(!_||!O)throw Error(`Invalid identifier format: ${$}`);return[_,O,P]}else{if(!q)throw Error(`Invalid identifier format: ${$}`);return["-",q,P]}}class DZ extends Error{constructor($){super($);Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="LangSmithConflictError",this.status=409}}async function a$($,q,K){let P;if($.ok){if(K)P=await $.text();return}if($.status===403)try{if((await $.json())?.error==="org_scoped_key_requires_workspace")P="This API key is org-scoped and requires workspace specification. Please provide 'workspaceId' parameter, or set LANGSMITH_WORKSPACE_ID environment variable."}catch(j){let z=Error(`${$.status} ${$.statusText}`);throw z.status=$?.status,z}if(P===void 0)try{P=await $.text()}catch(j){P=""}let _=`Failed to ${q}. Received status [${$.status}]: ${$.statusText}. Message: ${P}`;if($.status===409)throw new DZ(_);let O=Error(_);throw O.status=$.status,O}var LZ="ERR_CONFLICTING_ENDPOINTS";class v2 extends Error{constructor(){super("You cannot provide both LANGSMITH_ENDPOINT / LANGCHAIN_ENDPOINT and LANGSMITH_RUNS_ENDPOINTS.");Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:LZ}),this.name="ConflictingEndpointsError"}}function bZ($){return typeof $==="object"&&$!==null&&$.code===LZ}var gZ="[...]",RR={result:"[Circular]"},m1=[],$4=[],IR=new TextEncoder;function DR(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function p1($){return IR.encode($)}function yZ($){if($&&typeof $==="object"&&$!==null){if($ instanceof Map)return Object.fromEntries($);else if($ instanceof Set)return Array.from($);else if($ instanceof Date)return $.toISOString();else if($ instanceof RegExp)return $.toString();else if($ instanceof Error)return{name:$.name,message:$.message}}else if(typeof $==="bigint")return $.toString();return $}function LR($){return function(q,K){if($){let P=$.call(this,q,K);if(P!==void 0)return P}return yZ(K)}}function oq($,q,K,P,_){try{let O=JSON.stringify($,LR(K),P);return p1(O)}catch(O){if(!O.message?.includes("Converting circular structure to JSON"))return console.warn(`[WARNING]: LangSmith received unserializable value.${q?`
|
|
52
|
+
*/var IB={...CO,JsonPatchError:Q_,deepClone:O8,escapePathComponent:z1,unescapePathComponent:OP};var yJ=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function sN($){return typeof $==="string"&&yJ.test($)}var uJ=sN;function $C($){if(!uJ($))throw TypeError("Invalid UUID");var q,K=new Uint8Array(16);return K[0]=(q=parseInt($.slice(0,8),16))>>>24,K[1]=q>>>16&255,K[2]=q>>>8&255,K[3]=q&255,K[4]=(q=parseInt($.slice(9,13),16))>>>8,K[5]=q&255,K[6]=(q=parseInt($.slice(14,18),16))>>>8,K[7]=q&255,K[8]=(q=parseInt($.slice(19,23),16))>>>8,K[9]=q&255,K[10]=(q=parseInt($.slice(24,36),16))/1099511627776&255,K[11]=q/4294967296&255,K[12]=q>>>24&255,K[13]=q>>>16&255,K[14]=q>>>8&255,K[15]=q&255,K}var xJ=$C;var Zq=[];for(vP=0;vP<256;++vP)Zq.push((vP+256).toString(16).slice(1));var vP;function J1($,q=0){return(Zq[$[q+0]]+Zq[$[q+1]]+Zq[$[q+2]]+Zq[$[q+3]]+"-"+Zq[$[q+4]]+Zq[$[q+5]]+"-"+Zq[$[q+6]]+Zq[$[q+7]]+"-"+Zq[$[q+8]]+Zq[$[q+9]]+"-"+Zq[$[q+10]]+Zq[$[q+11]]+Zq[$[q+12]]+Zq[$[q+13]]+Zq[$[q+14]]+Zq[$[q+15]]).toLowerCase()}var T1,qC=new Uint8Array(16);function EO(){if(!T1){if(T1=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!T1)throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported")}return T1(qC)}function KC($){$=unescape(encodeURIComponent($));var q=[];for(var K=0;K<$.length;++K)q.push($.charCodeAt(K));return q}var _C="6ba7b810-9dad-11d1-80b4-00c04fd430c8",PC="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function hO($,q,K){function P(_,O,j,z){var J;if(typeof _==="string")_=KC(_);if(typeof O==="string")O=xJ(O);if(((J=O)===null||J===void 0?void 0:J.length)!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var w=new Uint8Array(16+_.length);if(w.set(O),w.set(_,O.length),w=K(w),w[6]=w[6]&15|q,w[8]=w[8]&63|128,j){z=z||0;for(var k=0;k<16;++k)j[z+k]=w[k];return j}return J1(w)}try{P.name=$}catch(_){}return P.DNS=_C,P.URL=PC,P}var jC=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),RO={randomUUID:jC};function OC($,q,K){if(RO.randomUUID&&!q&&!$)return RO.randomUUID();$=$||{};var P=$.random||($.rng||EO)();if(P[6]=P[6]&15|64,P[8]=P[8]&63|128,q){K=K||0;for(var _=0;_<16;++_)q[K+_]=P[_];return q}return J1(P)}var qK=OC;function YC($,q,K,P){switch($){case 0:return q&K^~q&P;case 1:return q^K^P;case 2:return q&K^q&P^K&P;case 3:return q^K^P}}function IO($,q){return $<<q|$>>>32-q}function vC($){var q=[1518500249,1859775393,2400959708,3395469782],K=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof $==="string"){var P=unescape(encodeURIComponent($));$=[];for(var _=0;_<P.length;++_)$.push(P.charCodeAt(_))}else if(!Array.isArray($))$=Array.prototype.slice.call($);$.push(128);var O=$.length/4+2,j=Math.ceil(O/16),z=Array(j);for(var J=0;J<j;++J){var w=new Uint32Array(16);for(var k=0;k<16;++k)w[k]=$[J*64+k*4]<<24|$[J*64+k*4+1]<<16|$[J*64+k*4+2]<<8|$[J*64+k*4+3];z[J]=w}z[j-1][14]=($.length-1)*8/Math.pow(2,32),z[j-1][14]=Math.floor(z[j-1][14]),z[j-1][15]=($.length-1)*8&4294967295;for(var X=0;X<j;++X){var G=new Uint32Array(80);for(var V=0;V<16;++V)G[V]=z[X][V];for(var C=16;C<80;++C)G[C]=IO(G[C-3]^G[C-8]^G[C-14]^G[C-16],1);var E=K[0],h=K[1],I=K[2],D=K[3],g=K[4];for(var y=0;y<80;++y){var u=Math.floor(y/20),p=IO(E,5)+YC(u,h,I,D)+g+q[u]+G[y]>>>0;g=D,D=I,I=IO(h,30)>>>0,h=E,E=p}K[0]=K[0]+E>>>0,K[1]=K[1]+h>>>0,K[2]=K[2]+I>>>0,K[3]=K[3]+D>>>0,K[4]=K[4]+g>>>0}return[K[0]>>24&255,K[0]>>16&255,K[0]>>8&255,K[0]&255,K[1]>>24&255,K[1]>>16&255,K[1]>>8&255,K[1]&255,K[2]>>24&255,K[2]>>16&255,K[2]>>8&255,K[2]&255,K[3]>>24&255,K[3]>>16&255,K[3]>>8&255,K[3]&255,K[4]>>24&255,K[4]>>16&255,K[4]>>8&255,K[4]&255]}var cJ=vC;var zC=hO("v5",80,cJ),w1=zC;var mJ="gen_ai.operation.name",dJ="gen_ai.system",DO="gen_ai.request.model",lJ="gen_ai.response.model",LO="gen_ai.usage.input_tokens",bO="gen_ai.usage.output_tokens",gO="gen_ai.usage.total_tokens",rJ="gen_ai.request.max_tokens",oJ="gen_ai.request.temperature",nJ="gen_ai.request.top_p",iJ="gen_ai.request.frequency_penalty",BJ="gen_ai.request.presence_penalty",tJ="gen_ai.response.finish_reasons",UJ="gen_ai.prompt",FJ="gen_ai.completion",aJ="gen_ai.request.extra_query",QJ="gen_ai.request.extra_body",eJ="gen_ai.serialized.name",sJ="gen_ai.serialized.signature",$T="gen_ai.serialized.doc",qT="gen_ai.response.id",KT="gen_ai.response.service_tier",_T="gen_ai.response.system_fingerprint",PT="gen_ai.usage.input_token_details",jT="gen_ai.usage.output_token_details",OT="langsmith.trace.session_id",YT="langsmith.trace.session_name",vT="langsmith.span.kind",zT="langsmith.trace.name",WT="langsmith.metadata",yO="langsmith.span.tags";var HT="langsmith.request.streaming",JT="langsmith.request.headers";var HC=(...$)=>fetch(...$),TT=Symbol.for("ls:fetch_implementation");var wT=()=>{let $=globalThis[TT];if(!$)return!1;return typeof $==="function"&&"Headers"in $&&"Request"in $&&"Response"in $},ZT=($)=>{return async(...q)=>{if($||c6("DEBUG")==="true"){let[P,_]=q;console.log(`→ ${_?.method||"GET"} ${P}`)}let K=await(globalThis[TT]??HC)(...q);if($||c6("DEBUG")==="true")console.log(`← ${K.status} ${K.statusText} ${K.url}`);return K}};var zP=()=>{return c6("PROJECT")??Qq("LANGCHAIN_SESSION")??"default"};var Z1="0.3.78";var g8,JC=()=>typeof window<"u"&&typeof window.document<"u",TC=()=>typeof globalThis==="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",wC=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),fT=()=>typeof Deno<"u",ZC=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!fT(),cO=()=>{if(g8)return g8;if(typeof Bun<"u")g8="bun";else if(JC())g8="browser";else if(ZC())g8="node";else if(TC())g8="webworker";else if(wC())g8="jsdom";else if(fT())g8="deno";else g8="other";return g8},uO;function f1(){if(uO===void 0){let $=cO(),q=XC();uO={library:"langsmith",runtime:$,sdk:"langsmith-js",sdk_version:Z1,...q}}return uO}function pO(){let $=fC(),q={},K=["LANGCHAIN_API_KEY","LANGCHAIN_ENDPOINT","LANGCHAIN_TRACING_V2","LANGCHAIN_PROJECT","LANGCHAIN_SESSION","LANGSMITH_API_KEY","LANGSMITH_ENDPOINT","LANGSMITH_TRACING_V2","LANGSMITH_PROJECT","LANGSMITH_SESSION"];for(let[P,_]of Object.entries($))if(typeof _==="string"&&!K.includes(P)&&!P.toLowerCase().includes("key")&&!P.toLowerCase().includes("secret")&&!P.toLowerCase().includes("token"))if(P==="LANGCHAIN_REVISION_ID")q.revision_id=_;else q[P]=_;return q}function fC(){let $={};try{if(typeof process<"u"&&process.env){for(let[q,K]of Object.entries(process.env))if((q.startsWith("LANGCHAIN_")||q.startsWith("LANGSMITH_"))&&K!=null)if((q.toLowerCase().includes("key")||q.toLowerCase().includes("secret")||q.toLowerCase().includes("token"))&&typeof K==="string")$[q]=K.slice(0,2)+"*".repeat(K.length-4)+K.slice(-2);else $[q]=K}}catch(q){}return $}function Qq($){try{return typeof process<"u"?process.env?.[$]:void 0}catch(q){return}}function c6($){return Qq(`LANGSMITH_${$}`)||Qq(`LANGCHAIN_${$}`)}var xO;function XC(){if(xO!==void 0)return xO;let $=["VERCEL_GIT_COMMIT_SHA","NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA","COMMIT_REF","RENDER_GIT_COMMIT","CI_COMMIT_SHA","CIRCLE_SHA1","CF_PAGES_COMMIT_SHA","REACT_APP_GIT_SHA","SOURCE_VERSION","GITHUB_SHA","TRAVIS_COMMIT","GIT_COMMIT","BUILD_VCS_NUMBER","bamboo_planRepository_revision","Build.SourceVersion","BITBUCKET_COMMIT","DRONE_COMMIT_SHA","SEMAPHORE_GIT_SHA","BUILDKITE_COMMIT"],q={};for(let K of $){let P=Qq(K);if(P!==void 0)q[K]=P}return xO=q,q}function X1(){return Qq("OTEL_ENABLED")==="true"||c6("OTEL_ENABLED")==="true"}class kT{constructor(){Object.defineProperty(this,"hasWarned",{enumerable:!0,configurable:!0,writable:!0,value:!1})}startActiveSpan($,...q){if(!this.hasWarned&&X1())console.warn('You have enabled OTEL export via the `OTEL_ENABLED` or `LANGSMITH_OTEL_ENABLED` environment variable, but have not initialized the required OTEL instances. Please add:\n```\nimport { initializeOTEL } from "langsmith/experimental/otel/setup";\ninitializeOTEL();\n```\nat the beginning of your code.'),this.hasWarned=!0;let K;if(q.length===1&&typeof q[0]==="function")K=q[0];else if(q.length===2&&typeof q[1]==="function")K=q[1];else if(q.length===3&&typeof q[2]==="function")K=q[2];if(typeof K==="function")return K();return}}class AT{constructor(){Object.defineProperty(this,"mockTracer",{enumerable:!0,configurable:!0,writable:!0,value:new kT})}getTracer($,q){return this.mockTracer}getActiveSpan(){return}setSpan($,q){return $}getSpan($){return}setSpanContext($,q){return $}getTracerProvider(){return}setGlobalTracerProvider($){return!1}}class GT{active(){return{}}with($,q){return q()}}var mO=Symbol.for("ls:otel_trace"),dO=Symbol.for("ls:otel_context"),XT=Symbol.for("ls:otel_get_default_otlp_tracer_provider"),kC=new AT,AC=new GT;class VT{getTraceInstance(){return globalThis[mO]??kC}getContextInstance(){return globalThis[dO]??AC}initializeGlobalInstances($){if(globalThis[mO]===void 0)globalThis[mO]=$.trace;if(globalThis[dO]===void 0)globalThis[dO]=$.context}setDefaultOTLPTracerComponents($){globalThis[XT]=$}getDefaultOTLPTracerComponents(){return globalThis[XT]??void 0}}var lO=new VT;function k1(){return lO.getTraceInstance()}function ST(){return lO.getContextInstance()}function MT(){return lO.getDefaultOTLPTracerComponents()}var GC={llm:"chat",tool:"execute_tool",retriever:"embeddings",embedding:"embeddings",prompt:"chat"};function VC($){return GC[$]||$}class rO{constructor(){Object.defineProperty(this,"spans",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}exportBatch($,q){for(let K of $)try{if(!K.run)continue;if(K.operation==="post"){let P=this.createSpanForRun(K,K.run,q.get(K.id));if(P&&!K.run.end_time)this.spans.set(K.id,P)}else this.updateSpanForRun(K,K.run)}catch(P){console.error(`Error processing operation ${K.id}:`,P)}}createSpanForRun($,q,K){let P=K&&k1().getSpan(K);if(!P)return;try{return this.finishSpanSetup(P,q,$)}catch(_){console.error(`Failed to create span for run ${$.id}:`,_);return}}finishSpanSetup($,q,K){if(this.setSpanAttributes($,q,K),q.error)$.setStatus({code:2}),$.recordException(Error(q.error));else $.setStatus({code:1});if(q.end_time)$.end(new Date(q.end_time));return $}updateSpanForRun($,q){try{let K=this.spans.get($.id);if(!K){console.debug(`No span found for run ${$.id} during update`);return}if(this.setSpanAttributes(K,q,$),q.error)K.setStatus({code:2}),K.recordException(Error(q.error));else K.setStatus({code:1});let P=q.end_time;if(P)K.end(new Date(P)),this.spans.delete($.id)}catch(K){console.error(`Failed to update span for run ${$.id}:`,K)}}extractModelName($){if($.extra?.metadata){let q=$.extra.metadata;if(q.ls_model_name)return q.ls_model_name;if(q.invocation_params){let K=q.invocation_params;if(K.model)return K.model;else if(K.model_name)return K.model_name}}return}setSpanAttributes($,q,K){if("run_type"in q&&q.run_type){$.setAttribute(vT,q.run_type);let j=VC(q.run_type||"chain");$.setAttribute(mJ,j)}if("name"in q&&q.name)$.setAttribute(zT,q.name);if("session_id"in q&&q.session_id)$.setAttribute(OT,q.session_id);if("session_name"in q&&q.session_name)$.setAttribute(YT,q.session_name);this.setGenAiSystem($,q);let P=this.extractModelName(q);if(P)$.setAttribute(DO,P);if("prompt_tokens"in q&&typeof q.prompt_tokens==="number")$.setAttribute(LO,q.prompt_tokens);if("completion_tokens"in q&&typeof q.completion_tokens==="number")$.setAttribute(bO,q.completion_tokens);if("total_tokens"in q&&typeof q.total_tokens==="number")$.setAttribute(gO,q.total_tokens);this.setInvocationParameters($,q);let _=q.extra?.metadata||{};for(let[j,z]of Object.entries(_))if(z!==null&&z!==void 0)$.setAttribute(`${WT}.${j}`,String(z));let O=q.tags;if(O&&Array.isArray(O))$.setAttribute(yO,O.join(", "));else if(O)$.setAttribute(yO,String(O));if("serialized"in q&&typeof q.serialized==="object"){let j=q.serialized;if(j.name)$.setAttribute(eJ,String(j.name));if(j.signature)$.setAttribute(sJ,String(j.signature));if(j.doc)$.setAttribute($T,String(j.doc))}this.setIOAttributes($,K)}setGenAiSystem($,q){let K="langchain",P=this.extractModelName(q);if(P){let _=P.toLowerCase();if(_.includes("anthropic")||_.startsWith("claude"))K="anthropic";else if(_.includes("bedrock"))K="aws.bedrock";else if(_.includes("azure")&&_.includes("openai"))K="az.ai.openai";else if(_.includes("azure")&&_.includes("inference"))K="az.ai.inference";else if(_.includes("cohere"))K="cohere";else if(_.includes("deepseek"))K="deepseek";else if(_.includes("gemini"))K="gemini";else if(_.includes("groq"))K="groq";else if(_.includes("watson")||_.includes("ibm"))K="ibm.watsonx.ai";else if(_.includes("mistral"))K="mistral_ai";else if(_.includes("gpt")||_.includes("openai"))K="openai";else if(_.includes("perplexity")||_.includes("sonar"))K="perplexity";else if(_.includes("vertex"))K="vertex_ai";else if(_.includes("xai")||_.includes("grok"))K="xai"}$.setAttribute(dJ,K)}setInvocationParameters($,q){if(!q.extra?.metadata?.invocation_params)return;let K=q.extra.metadata.invocation_params;if(K.max_tokens!==void 0)$.setAttribute(rJ,K.max_tokens);if(K.temperature!==void 0)$.setAttribute(oJ,K.temperature);if(K.top_p!==void 0)$.setAttribute(nJ,K.top_p);if(K.frequency_penalty!==void 0)$.setAttribute(iJ,K.frequency_penalty);if(K.presence_penalty!==void 0)$.setAttribute(BJ,K.presence_penalty)}setIOAttributes($,q){if(q.run.inputs)try{let K=q.run.inputs;if(typeof K==="object"&&K!==null){if(K.model&&Array.isArray(K.messages))$.setAttribute(DO,K.model);if(K.stream!==void 0)$.setAttribute(HT,K.stream);if(K.extra_headers)$.setAttribute(JT,JSON.stringify(K.extra_headers));if(K.extra_query)$.setAttribute(aJ,JSON.stringify(K.extra_query));if(K.extra_body)$.setAttribute(QJ,JSON.stringify(K.extra_body))}$.setAttribute(UJ,JSON.stringify(K))}catch(K){console.debug(`Failed to process inputs for run ${q.id}`,K)}if(q.run.outputs)try{let K=q.run.outputs,P=this.getUnifiedRunTokens(K);if(P)$.setAttribute(LO,P[0]),$.setAttribute(bO,P[1]),$.setAttribute(gO,P[0]+P[1]);if(K&&typeof K==="object"){if(K.model)$.setAttribute(lJ,String(K.model));if(K.id)$.setAttribute(qT,K.id);if(K.choices&&Array.isArray(K.choices)){let _=K.choices.map((O)=>O.finish_reason).filter((O)=>O).map(String);if(_.length>0)$.setAttribute(tJ,_.join(", "))}if(K.service_tier)$.setAttribute(KT,K.service_tier);if(K.system_fingerprint)$.setAttribute(_T,K.system_fingerprint);if(K.usage_metadata&&typeof K.usage_metadata==="object"){let _=K.usage_metadata;if(_.input_token_details)$.setAttribute(PT,JSON.stringify(_.input_token_details));if(_.output_token_details)$.setAttribute(jT,JSON.stringify(_.output_token_details))}}$.setAttribute(FJ,JSON.stringify(K))}catch(K){console.debug(`Failed to process outputs for run ${q.id}`,K)}}getUnifiedRunTokens($){if(!$)return null;let q=this.extractUnifiedRunTokens($.usage_metadata);if(q)return q;let K=Object.keys($);for(let O of K){let j=$[O];if(!j||typeof j!=="object")continue;if(q=this.extractUnifiedRunTokens(j.usage_metadata),q)return q;if(j.lc===1&&j.kwargs&&typeof j.kwargs==="object"){if(q=this.extractUnifiedRunTokens(j.kwargs.usage_metadata),q)return q}}let P=$.generations||[];if(!Array.isArray(P))return null;let _=Array.isArray(P[0])?P.flat():P;for(let O of _)if(typeof O==="object"&&O.message&&typeof O.message==="object"&&O.message.kwargs&&typeof O.message.kwargs==="object"){if(q=this.extractUnifiedRunTokens(O.message.kwargs.usage_metadata),q)return q}return null}extractUnifiedRunTokens($){if(!$||typeof $!=="object")return null;if(typeof $.input_tokens!=="number"||typeof $.output_tokens!=="number")return null;return[$.input_tokens,$.output_tokens]}}var pT=Dq(P1(),1),M1=Dq(S1(),1),gC=[429,500,502,503,504];class N1{constructor($){if(Object.defineProperty(this,"maxConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"maxRetries",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"onFailedResponseHook",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxConcurrency=$.maxConcurrency??1/0,this.maxRetries=$.maxRetries??6,"default"in M1.default)this.queue=new M1.default.default({concurrency:this.maxConcurrency});else this.queue=new M1.default({concurrency:this.maxConcurrency});this.onFailedResponseHook=$?.onFailedResponseHook}call($,...q){let K=this.onFailedResponseHook;return this.queue.add(()=>pT.default(()=>$(...q).catch((P)=>{if(P instanceof Error)throw P;else throw Error(P)}),{async onFailedAttempt(P){if(P.message.startsWith("Cancel")||P.message.startsWith("TimeoutError")||P.name==="TimeoutError"||P.message.startsWith("AbortError"))throw P;if(P?.code==="ECONNABORTED")throw P;let _=P?.response;if(K){if(await K(_))return}let O=_?.status??P?.status;if(O){if(!gC.includes(+O))throw P}},retries:this.maxRetries,randomize:!0}),{throwOnTimeout:!0})}callWithOptions($,q,...K){if($.signal)return Promise.race([this.call(q,...K),new Promise((P,_)=>{$.signal?.addEventListener("abort",()=>{_(Error("AbortError"))})})]);return this.call(q,...K)}}function iO($){return typeof $?._getType==="function"}function BO($){let q={type:$._getType(),data:{content:$.content}};if($?.additional_kwargs&&Object.keys($.additional_kwargs).length>0)q.data.additional_kwargs={...$.additional_kwargs};return q}var yC=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function _6($,q){if(!yC.test($)){let K=q!==void 0?`Invalid UUID for ${q}: ${$}`:`Invalid UUID: ${$}`;throw Error(K)}return $}var mT={};function HP($){if(!mT[$])console.warn($),mT[$]=!0}var hR=Dq(IZ(),1);function KK($){if(!$||$.split("/").length>2||$.startsWith("/")||$.endsWith("/")||$.split(":").length>2)throw Error(`Invalid identifier format: ${$}`);let[q,K]=$.split(":"),P=K||"latest";if(q.includes("/")){let[_,O]=q.split("/",2);if(!_||!O)throw Error(`Invalid identifier format: ${$}`);return[_,O,P]}else{if(!q)throw Error(`Invalid identifier format: ${$}`);return["-",q,P]}}class DZ extends Error{constructor($){super($);Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name="LangSmithConflictError",this.status=409}}async function a$($,q,K){let P;if($.ok){if(K)P=await $.text();return}if($.status===403)try{if((await $.json())?.error==="org_scoped_key_requires_workspace")P="This API key is org-scoped and requires workspace specification. Please provide 'workspaceId' parameter, or set LANGSMITH_WORKSPACE_ID environment variable."}catch(j){let z=Error(`${$.status} ${$.statusText}`);throw z.status=$?.status,z}if(P===void 0)try{P=await $.text()}catch(j){P=""}let _=`Failed to ${q}. Received status [${$.status}]: ${$.statusText}. Message: ${P}`;if($.status===409)throw new DZ(_);let O=Error(_);throw O.status=$.status,O}var LZ="ERR_CONFLICTING_ENDPOINTS";class v2 extends Error{constructor(){super("You cannot provide both LANGSMITH_ENDPOINT / LANGCHAIN_ENDPOINT and LANGSMITH_RUNS_ENDPOINTS.");Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:LZ}),this.name="ConflictingEndpointsError"}}function bZ($){return typeof $==="object"&&$!==null&&$.code===LZ}var gZ="[...]",RR={result:"[Circular]"},m1=[],$4=[],IR=new TextEncoder;function DR(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function p1($){return IR.encode($)}function yZ($){if($&&typeof $==="object"&&$!==null){if($ instanceof Map)return Object.fromEntries($);else if($ instanceof Set)return Array.from($);else if($ instanceof Date)return $.toISOString();else if($ instanceof RegExp)return $.toString();else if($ instanceof Error)return{name:$.name,message:$.message}}else if(typeof $==="bigint")return $.toString();return $}function LR($){return function(q,K){if($){let P=$.call(this,q,K);if(P!==void 0)return P}return yZ(K)}}function oq($,q,K,P,_){try{let O=JSON.stringify($,LR(K),P);return p1(O)}catch(O){if(!O.message?.includes("Converting circular structure to JSON"))return console.warn(`[WARNING]: LangSmith received unserializable value.${q?`
|
|
53
53
|
Context: ${q}`:""}`),p1("[Unserializable]");if(c6("SUPPRESS_CIRCULAR_JSON_WARNINGS")!=="true"&&console.warn(`[WARNING]: LangSmith received circular JSON. This will decrease tracer performance. ${q?`
|
|
54
54
|
Context: ${q}`:""}`),typeof _>"u")_=DR();W2($,"",0,[],void 0,0,_);let j;try{if($4.length===0)j=JSON.stringify($,K,P);else j=JSON.stringify($,bR(K),P)}catch(z){return p1("[unable to serialize, circular reference is too complex to analyze]")}finally{while(m1.length!==0){let z=m1.pop();if(z.length===4)Object.defineProperty(z[0],z[1],z[3]);else z[0][z[1]]=z[2]}}return p1(j)}}function z2($,q,K,P){var _=Object.getOwnPropertyDescriptor(P,K);if(_.get!==void 0)if(_.configurable)Object.defineProperty(P,K,{value:$}),m1.push([P,K,q,_]);else $4.push([q,K,$]);else P[K]=$,m1.push([P,K,q])}function W2($,q,K,P,_,O,j){O+=1;var z;if(typeof $==="object"&&$!==null){for(z=0;z<P.length;z++)if(P[z]===$){z2(RR,$,q,_);return}if(typeof j.depthLimit<"u"&&O>j.depthLimit){z2(gZ,$,q,_);return}if(typeof j.edgesLimit<"u"&&K+1>j.edgesLimit){z2(gZ,$,q,_);return}if(P.push($),Array.isArray($))for(z=0;z<$.length;z++)W2($[z],z,z,P,$,O,j);else{$=yZ($);var J=Object.keys($);for(z=0;z<J.length;z++){var w=J[z];W2($[w],w,z,P,$,O,j)}}P.pop()}}function bR($){return $=typeof $<"u"?$:function(q,K){return K},function(q,K){if($4.length>0)for(var P=0;P<$4.length;P++){var _=$4[P];if(_[1]===q&&_[0]===K){K=_[2],$4.splice(P,1);break}}return $.call(this,q,K)}}function uZ($,q){let K=f1(),P=q??pO(),_=$.extra??{},O=_.metadata;return $.extra={..._,runtime:{...K,..._?.runtime},metadata:{...P,...P.revision_id||"revision_id"in $&&$.revision_id?{revision_id:("revision_id"in $?$.revision_id:void 0)??P.revision_id}:{},...O}},$}var gR=($)=>{let q=$?.toString()??c6("TRACING_SAMPLING_RATE");if(q===void 0)return;let K=parseFloat(q);if(K<0||K>1)throw Error(`LANGSMITH_TRACING_SAMPLING_RATE must be between 0 and 1 if set. Got: ${K}`);return K},yR=($)=>{let K=$.replace("http://","").replace("https://","").split("/")[0].split(":")[0];return K==="localhost"||K==="127.0.0.1"||K==="::1"};async function uR($){let q=[];for await(let K of $)q.push(K);return q}function d1($){if($===void 0)return;return $.trim().replace(/^"(.*)"$/,"$1").replace(/^'(.*)'$/,"$1")}var xR=async($)=>{if($?.status===429){let q=parseInt($.headers.get("retry-after")??"10",10)*1000;if(q>0)return await new Promise((K)=>setTimeout(K,q)),!0}return!1};function xZ($){if(typeof $==="number")return Number($.toFixed(4));return $}class mZ{constructor(){Object.defineProperty(this,"items",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"sizeBytes",{enumerable:!0,configurable:!0,writable:!0,value:0})}peek(){return this.items[0]}push($){let q,K=new Promise((_)=>{q=_}),P=oq($.item,`Serializing run with id: ${$.item.id}`).length;return this.items.push({action:$.action,payload:$.item,otelContext:$.otelContext,apiKey:$.apiKey,apiUrl:$.apiUrl,itemPromiseResolve:q,itemPromise:K,size:P}),this.sizeBytes+=P,K}pop({upToSizeBytes:$,upToSize:q}){if($<1)throw Error("Number of bytes to pop off may not be less than 1.");let K=[],P=0;while(P+(this.peek()?.size??0)<$&&this.items.length>0&&K.length<q){let _=this.items.shift();if(_)K.push(_),P+=_.size,this.sizeBytes-=_.size}if(K.length===0&&this.items.length>0){let _=this.items.shift();K.push(_),P+=_.size,this.sizeBytes-=_.size}return[K.map((_)=>({action:_.action,item:_.payload,otelContext:_.otelContext,apiKey:_.apiKey,apiUrl:_.apiUrl})),()=>K.forEach((_)=>_.itemPromiseResolve())]}}var cR=25165824,pR=1e4,mR=100,cZ="https://api.smith.langchain.com";class LK{get _fetch(){return this.fetchImplementation||ZT(this.debug)}constructor($={}){Object.defineProperty(this,"apiKey",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"apiUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"webUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"workspaceId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"caller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"batchIngestCaller",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"timeout_ms",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tenantId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"hideInputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"hideOutputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingSampleRate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"filteredPostUuids",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"autoBatchTracing",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"autoBatchQueue",{enumerable:!0,configurable:!0,writable:!0,value:new mZ}),Object.defineProperty(this,"autoBatchTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"autoBatchAggregationDelayMs",{enumerable:!0,configurable:!0,writable:!0,value:250}),Object.defineProperty(this,"batchSizeBytesLimit",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"batchSizeLimit",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fetchOptions",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"settings",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"blockOnRootRunFinalization",{enumerable:!0,configurable:!0,writable:!0,value:Qq("LANGSMITH_TRACING_BACKGROUND")==="false"}),Object.defineProperty(this,"traceBatchConcurrency",{enumerable:!0,configurable:!0,writable:!0,value:5}),Object.defineProperty(this,"_serverInfo",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_getServerInfoPromise",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"manualFlushMode",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"langSmithToOTELTranslator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fetchImplementation",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cachedLSEnvVarsForMetadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"multipartStreamingDisabled",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"debug",{enumerable:!0,configurable:!0,writable:!0,value:Qq("LANGSMITH_DEBUG")==="true"});let q=LK.getDefaultClientConfig();if(this.tracingSampleRate=gR($.tracingSamplingRate),this.apiUrl=d1($.apiUrl??q.apiUrl)??"",this.apiUrl.endsWith("/"))this.apiUrl=this.apiUrl.slice(0,-1);if(this.apiKey=d1($.apiKey??q.apiKey),this.webUrl=d1($.webUrl??q.webUrl),this.webUrl?.endsWith("/"))this.webUrl=this.webUrl.slice(0,-1);if(this.workspaceId=d1($.workspaceId??c6("WORKSPACE_ID")),this.timeout_ms=$.timeout_ms??90000,this.caller=new N1({...$.callerOptions??{},maxRetries:4,debug:$.debug??this.debug}),this.traceBatchConcurrency=$.traceBatchConcurrency??this.traceBatchConcurrency,this.traceBatchConcurrency<1)throw Error("Trace batch concurrency must be positive.");if(this.debug=$.debug??this.debug,this.fetchImplementation=$.fetchImplementation,this.batchIngestCaller=new N1({maxRetries:2,maxConcurrency:this.traceBatchConcurrency,...$.callerOptions??{},onFailedResponseHook:xR,debug:$.debug??this.debug}),this.hideInputs=$.hideInputs??$.anonymizer??q.hideInputs,this.hideOutputs=$.hideOutputs??$.anonymizer??q.hideOutputs,this.autoBatchTracing=$.autoBatchTracing??this.autoBatchTracing,this.blockOnRootRunFinalization=$.blockOnRootRunFinalization??this.blockOnRootRunFinalization,this.batchSizeBytesLimit=$.batchSizeBytesLimit,this.batchSizeLimit=$.batchSizeLimit,this.fetchOptions=$.fetchOptions||{},this.manualFlushMode=$.manualFlushMode??this.manualFlushMode,X1())this.langSmithToOTELTranslator=new rO;this.cachedLSEnvVarsForMetadata=pO()}static getDefaultClientConfig(){let $=c6("API_KEY"),q=c6("ENDPOINT")??cZ,K=c6("HIDE_INPUTS")==="true",P=c6("HIDE_OUTPUTS")==="true";return{apiUrl:q,apiKey:$,webUrl:void 0,hideInputs:K,hideOutputs:P}}getHostUrl(){if(this.webUrl)return this.webUrl;else if(yR(this.apiUrl))return this.webUrl="http://localhost:3000",this.webUrl;else if(this.apiUrl.endsWith("/api/v1"))return this.webUrl=this.apiUrl.replace("/api/v1",""),this.webUrl;else if(this.apiUrl.includes("/api")&&!this.apiUrl.split(".",1)[0].endsWith("api"))return this.webUrl=this.apiUrl.replace("/api",""),this.webUrl;else if(this.apiUrl.split(".",1)[0].includes("dev"))return this.webUrl="https://dev.smith.langchain.com",this.webUrl;else if(this.apiUrl.split(".",1)[0].includes("eu"))return this.webUrl="https://eu.smith.langchain.com",this.webUrl;else if(this.apiUrl.split(".",1)[0].includes("beta"))return this.webUrl="https://beta.smith.langchain.com",this.webUrl;else return this.webUrl="https://smith.langchain.com",this.webUrl}get headers(){let $={"User-Agent":`langsmith-js/${Z1}`};if(this.apiKey)$["x-api-key"]=`${this.apiKey}`;if(this.workspaceId)$["x-tenant-id"]=this.workspaceId;return $}_getPlatformEndpointPath($){return this.apiUrl.slice(-3)!=="/v1"&&this.apiUrl.slice(-4)!=="/v1/"?`/v1/platform/${$}`:`/platform/${$}`}async processInputs($){if(this.hideInputs===!1)return $;if(this.hideInputs===!0)return{};if(typeof this.hideInputs==="function")return this.hideInputs($);return $}async processOutputs($){if(this.hideOutputs===!1)return $;if(this.hideOutputs===!0)return{};if(typeof this.hideOutputs==="function")return this.hideOutputs($);return $}async prepareRunCreateOrUpdateInputs($){let q={...$};if(q.inputs!==void 0)q.inputs=await this.processInputs(q.inputs);if(q.outputs!==void 0)q.outputs=await this.processOutputs(q.outputs);return q}async _getResponse($,q){let K=q?.toString()??"",P=`${this.apiUrl}${$}?${K}`;return await this.caller.call(async()=>{let O=await this._fetch(P,{method:"GET",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await a$(O,`fetch ${$}`),O})}async _get($,q){return(await this._getResponse($,q)).json()}async*_getPaginated($,q=new URLSearchParams,K){let P=Number(q.get("offset"))||0,_=Number(q.get("limit"))||100;while(!0){q.set("offset",String(P)),q.set("limit",String(_));let O=`${this.apiUrl}${$}?${q}`,j=await this.caller.call(async()=>{let J=await this._fetch(O,{method:"GET",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await a$(J,`fetch ${$}`),J}),z=K?K(await j.json()):await j.json();if(z.length===0)break;if(yield z,z.length<_)break;P+=z.length}}async*_getCursorPaginatedList($,q=null,K="POST",P="runs"){let _=q?{...q}:{};while(!0){let O=JSON.stringify(_),z=await(await this.caller.call(async()=>{let w=await this._fetch(`${this.apiUrl}${$}`,{method:K,headers:{...this.headers,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:O});return await a$(w,`fetch ${$}`),w})).json();if(!z)break;if(!z[P])break;yield z[P];let J=z.cursors;if(!J)break;if(!J.next)break;_.cursor=J.next}}_shouldSample(){if(this.tracingSampleRate===void 0)return!0;return Math.random()<this.tracingSampleRate}_filterForSampling($,q=!1){if(this.tracingSampleRate===void 0)return $;if(q){let K=[];for(let P of $)if(!this.filteredPostUuids.has(P.trace_id))K.push(P);else if(P.id===P.trace_id)this.filteredPostUuids.delete(P.trace_id);return K}else{let K=[];for(let P of $){let _=P.trace_id??P.id;if(this.filteredPostUuids.has(_))continue;if(P.id===_)if(this._shouldSample())K.push(P);else this.filteredPostUuids.add(_);else K.push(P)}return K}}async _getBatchSizeLimitBytes(){let $=await this._ensureServerInfo();return this.batchSizeBytesLimit??$.batch_ingest_config?.size_limit_bytes??cR}async _getBatchSizeLimit(){let $=await this._ensureServerInfo();return this.batchSizeLimit??$.batch_ingest_config?.size_limit??mR}async _getDatasetExamplesMultiPartSupport(){return(await this._ensureServerInfo()).instance_flags?.dataset_examples_multipart_enabled??!1}drainAutoBatchQueue({batchSizeLimitBytes:$,batchSizeLimit:q}){let K=[];while(this.autoBatchQueue.items.length>0){let[P,_]=this.autoBatchQueue.pop({upToSizeBytes:$,upToSize:q});if(!P.length){_();break}let O=P.reduce((J,w)=>{let k=w.apiUrl??this.apiUrl,X=w.apiKey??this.apiKey,V=w.apiKey===this.apiKey&&w.apiUrl===this.apiUrl?"default":`${k}|${X}`;if(!J[V])J[V]=[];return J[V].push(w),J},{}),j=[];for(let[J,w]of Object.entries(O)){let k=this._processBatch(w,{apiUrl:J==="default"?void 0:J.split("|")[0],apiKey:J==="default"?void 0:J.split("|")[1]});j.push(k)}let z=Promise.all(j).finally(_);K.push(z)}return Promise.all(K)}async _processBatch($,q){if(!$.length)return;try{if(this.langSmithToOTELTranslator!==void 0)this._sendBatchToOTELTranslator($);else{let K={runCreates:$.filter((_)=>_.action==="create").map((_)=>_.item),runUpdates:$.filter((_)=>_.action==="update").map((_)=>_.item)},P=await this._ensureServerInfo();if(P?.batch_ingest_config?.use_multipart_endpoint){let _=P?.instance_flags?.gzip_body_enabled;await this.multipartIngestRuns(K,{...q,useGzip:_})}else await this.batchIngestRuns(K,q)}}catch(K){console.error("Error exporting batch:",K)}}_sendBatchToOTELTranslator($){if(this.langSmithToOTELTranslator!==void 0){let q=new Map,K=[];for(let P of $)if(P.item.id&&P.otelContext)if(q.set(P.item.id,P.otelContext),P.action==="create")K.push({operation:"post",id:P.item.id,trace_id:P.item.trace_id??P.item.id,run:P.item});else K.push({operation:"patch",id:P.item.id,trace_id:P.item.trace_id??P.item.id,run:P.item});this.langSmithToOTELTranslator.exportBatch(K,q)}}async processRunOperation($){clearTimeout(this.autoBatchTimeout),this.autoBatchTimeout=void 0,$.item=uZ($.item,this.cachedLSEnvVarsForMetadata);let q=this.autoBatchQueue.push($);if(this.manualFlushMode)return q;let K=await this._getBatchSizeLimitBytes(),P=await this._getBatchSizeLimit();if(this.autoBatchQueue.sizeBytes>K||this.autoBatchQueue.items.length>P)this.drainAutoBatchQueue({batchSizeLimitBytes:K,batchSizeLimit:P});if(this.autoBatchQueue.items.length>0)this.autoBatchTimeout=setTimeout(()=>{this.autoBatchTimeout=void 0,this.drainAutoBatchQueue({batchSizeLimitBytes:K,batchSizeLimit:P})},this.autoBatchAggregationDelayMs);return q}async _getServerInfo(){let q=await(await this.caller.call(async()=>{let K=await this._fetch(`${this.apiUrl}/info`,{method:"GET",headers:{Accept:"application/json"},signal:AbortSignal.timeout(pR),...this.fetchOptions});return await a$(K,"get server info"),K})).json();if(this.debug)console.log(`
|
|
55
55
|
=== LangSmith Server Configuration ===
|
|
@@ -81,7 +81,7 @@ Message: ${Array.isArray(O.detail)?O.detail.join(`
|
|
|
81
81
|
creating a LangChain Hub handle.
|
|
82
82
|
You can add a handle by creating a public prompt at:
|
|
83
83
|
|
|
84
|
-
https://smith.langchain.com/prompts`);let[P,_,O]=KK($);if(!await this._currentTenantIsOwner(P))throw await this._ownerConflictError("create a prompt",P);let j={repo_handle:_,...q?.description&&{description:q.description},...q?.readme&&{readme:q.readme},...q?.tags&&{tags:q.tags},is_public:!!q?.isPublic},z=JSON.stringify(j),J=await this.caller.call(async()=>{let k=await this._fetch(`${this.apiUrl}/repos/`,{method:"POST",headers:{...this.headers,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:z});return await a$(k,"create prompt"),k}),{repo:w}=await J.json();return w}async createCommit($,q,K){if(!await this.promptExists($))throw Error("Prompt does not exist, you must create it first.");let[P,_,O]=KK($),j=K?.parentCommitHash==="latest"||!K?.parentCommitHash?await this._getLatestCommitHash(`${P}/${_}`):K?.parentCommitHash,z={manifest:JSON.parse(JSON.stringify(q)),parent_commit:j},J=JSON.stringify(z),k=await(await this.caller.call(async()=>{let X=await this._fetch(`${this.apiUrl}/commits/${P}/${_}`,{method:"POST",headers:{...this.headers,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:J});return await a$(X,"create commit"),X})).json();return this._getPromptUrl(`${P}/${_}${k.commit_hash?`:${k.commit_hash}`:""}`)}async updateExamplesMultipart($,q=[]){return this._updateExamplesMultipart($,q)}async _updateExamplesMultipart($,q=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let K=new FormData;for(let O of q){let j=O.id,z={...O.metadata&&{metadata:O.metadata},...O.split&&{split:O.split}},J=oq(z,`Serializing body for example with id: ${j}`),w=new Blob([J],{type:"application/json"});if(K.append(j,w),O.inputs){let k=oq(O.inputs,`Serializing inputs for example with id: ${j}`),X=new Blob([k],{type:"application/json"});K.append(`${j}.inputs`,X)}if(O.outputs){let k=oq(O.outputs,`Serializing outputs whle updating example with id: ${j}`),X=new Blob([k],{type:"application/json"});K.append(`${j}.outputs`,X)}if(O.attachments)for(let[k,X]of Object.entries(O.attachments)){let G,V;if(Array.isArray(X))[G,V]=X;else G=X.mimeType,V=X.data;let C=new Blob([V],{type:`${G}; length=${V.byteLength}`});K.append(`${j}.attachment.${k}`,C)}if(O.attachments_operations){let k=oq(O.attachments_operations,`Serializing attachments while updating example with id: ${j}`),X=new Blob([k],{type:"application/json"});K.append(`${j}.attachments_operations`,X)}}let P=$??q[0]?.dataset_id;return(await this.caller.call(async()=>{let O=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${P}/examples`)}`,{method:"PATCH",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:K});return await a$(O,"update examples"),O})).json()}async uploadExamplesMultipart($,q=[]){return this._uploadExamplesMultipart($,q)}async _uploadExamplesMultipart($,q=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let K=new FormData;for(let _ of q){let O=(_.id??qK()).toString(),j={created_at:_.created_at,..._.metadata&&{metadata:_.metadata},..._.split&&{split:_.split},..._.source_run_id&&{source_run_id:_.source_run_id},..._.use_source_run_io&&{use_source_run_io:_.use_source_run_io},..._.use_source_run_attachments&&{use_source_run_attachments:_.use_source_run_attachments}},z=oq(j,`Serializing body for uploaded example with id: ${O}`),J=new Blob([z],{type:"application/json"});if(K.append(O,J),_.inputs){let w=oq(_.inputs,`Serializing inputs for uploaded example with id: ${O}`),k=new Blob([w],{type:"application/json"});K.append(`${O}.inputs`,k)}if(_.outputs){let w=oq(_.outputs,`Serializing outputs for uploaded example with id: ${O}`),k=new Blob([w],{type:"application/json"});K.append(`${O}.outputs`,k)}if(_.attachments)for(let[w,k]of Object.entries(_.attachments)){let X,G;if(Array.isArray(k))[X,G]=k;else X=k.mimeType,G=k.data;let V=new Blob([G],{type:`${X}; length=${G.byteLength}`});K.append(`${O}.attachment.${w}`,V)}}return(await this.caller.call(async()=>{let _=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${$}/examples`)}`,{method:"POST",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:K});return await a$(_,"upload examples"),_})).json()}async updatePrompt($,q){if(!await this.promptExists($))throw Error("Prompt does not exist, you must create it first.");let[K,P]=KK($);if(!await this._currentTenantIsOwner(K))throw await this._ownerConflictError("update a prompt",K);let _={};if(q?.description!==void 0)_.description=q.description;if(q?.readme!==void 0)_.readme=q.readme;if(q?.tags!==void 0)_.tags=q.tags;if(q?.isPublic!==void 0)_.is_public=q.isPublic;if(q?.isArchived!==void 0)_.is_archived=q.isArchived;if(Object.keys(_).length===0)throw Error("No valid update options provided");let O=JSON.stringify(_);return(await this.caller.call(async()=>{let z=await this._fetch(`${this.apiUrl}/repos/${K}/${P}`,{method:"PATCH",headers:{...this.headers,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:O});return await a$(z,"update prompt"),z})).json()}async deletePrompt($){if(!await this.promptExists($))throw Error("Prompt does not exist, you must create it first.");let[q,K,P]=KK($);if(!await this._currentTenantIsOwner(q))throw await this._ownerConflictError("delete a prompt",q);return(await this.caller.call(async()=>{let O=await this._fetch(`${this.apiUrl}/repos/${q}/${K}`,{method:"DELETE",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await a$(O,"delete prompt"),O})).json()}async pullPromptCommit($,q){let[K,P,_]=KK($),j=await(await this.caller.call(async()=>{let z=await this._fetch(`${this.apiUrl}/commits/${K}/${P}/${_}${q?.includeModel?"?include_model=true":""}`,{method:"GET",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await a$(z,"pull prompt commit"),z})).json();return{owner:K,repo:P,commit_hash:j.commit_hash,manifest:j.manifest,examples:j.examples}}async _pullPrompt($,q){let K=await this.pullPromptCommit($,{includeModel:q?.includeModel});return JSON.stringify(K.manifest)}async pushPrompt($,q){if(await this.promptExists($)){if(q&&Object.keys(q).some((P)=>P!=="object"))await this.updatePrompt($,{description:q?.description,readme:q?.readme,tags:q?.tags,isPublic:q?.isPublic})}else await this.createPrompt($,{description:q?.description,readme:q?.readme,tags:q?.tags,isPublic:q?.isPublic});if(!q?.object)return await this._getPromptUrl($);return await this.createCommit($,q?.object,{parentCommitHash:q?.parentCommitHash})}async clonePublicDataset($,q={}){let{sourceApiUrl:K=this.apiUrl,datasetName:P}=q,[_,O]=this.parseTokenOrUrl($,K),j=new LK({apiUrl:_,apiKey:"placeholder"}),z=await j.readSharedDataset(O),J=P||z.name;try{if(await this.hasDataset({datasetId:J})){console.log(`Dataset ${J} already exists in your tenant. Skipping.`);return}}catch(X){}let w=await j.listSharedExamples(O),k=await this.createDataset(J,{description:z.description,dataType:z.data_type||"kv",inputsSchema:z.inputs_schema_definition??void 0,outputsSchema:z.outputs_schema_definition??void 0});try{await this.createExamples({inputs:w.map((X)=>X.inputs),outputs:w.flatMap((X)=>X.outputs?[X.outputs]:[]),datasetId:k.id})}catch(X){throw console.error(`An error occurred while creating dataset ${J}. You should delete it manually.`),X}}parseTokenOrUrl($,q,K=2,P="dataset"){try{return _6($),[q,$]}catch(_){}try{let O=new URL($).pathname.split("/").filter((j)=>j!=="");if(O.length>=K){let j=O[O.length-K];return[q,j]}else throw Error(`Invalid public ${P} URL: ${$}`)}catch(_){throw Error(`Invalid public ${P} URL or token: ${$}`)}}async awaitPendingTraceBatches(){if(this.manualFlushMode)return console.warn("[WARNING]: When tracing in manual flush mode, you must call `await client.flush()` manually to submit trace batches."),Promise.resolve();if(await Promise.all([...this.autoBatchQueue.items.map(({itemPromise:$})=>$),this.batchIngestCaller.queue.onIdle()]),this.langSmithToOTELTranslator!==void 0)await MT()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush()}}function pZ($){return"dataset_id"in $||"dataset_name"in $}var dZ=($)=>{if($!==void 0)return $;return!!["TRACING_V2","TRACING"].find((K)=>c6(K)==="true")};var l1=Symbol.for("lc:context_variables");function dR($){return $.replace(/[-:.]/g,"")}function H2($,q,K=1){let P=K.toFixed(0).slice(0,3).padStart(3,"0"),_=`${new Date($).toISOString().slice(0,-1)}${P}Z`;return{dottedOrder:dR(_)+q,microsecondPrecisionDatestring:_}}class r1{constructor($,q,K,P){Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.metadata=$,this.tags=q,this.project_name=K,this.replicas=P}static fromHeader($){let q=$.split(","),K={},P=[],_,O;for(let j of q){let[z,J]=j.split("="),w=decodeURIComponent(J);if(z==="langsmith-metadata")K=JSON.parse(w);else if(z==="langsmith-tags")P=w.split(",");else if(z==="langsmith-project")_=w;else if(z==="langsmith-replicas")O=JSON.parse(w)}return new r1(K,P,_,O)}toHeader(){let $=[];if(this.metadata&&Object.keys(this.metadata).length>0)$.push(`langsmith-metadata=${encodeURIComponent(JSON.stringify(this.metadata))}`);if(this.tags&&this.tags.length>0)$.push(`langsmith-tags=${encodeURIComponent(this.tags.join(","))}`);if(this.project_name)$.push(`langsmith-project=${encodeURIComponent(this.project_name)}`);return $.join(",")}}class qq{constructor($){if(Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"run_type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_runs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"end_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"serialized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reference_example_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dotted_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"attachments",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_serialized_start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),rZ($)){Object.assign(this,{...$});return}let q=qq.getDefaultConfig(),{metadata:K,...P}=$,_=P.client??qq.getSharedClient(),O={...K,...P?.extra?.metadata};if(P.extra={...P.extra,metadata:O},Object.assign(this,{...q,...P,client:_}),!this.trace_id)if(this.parent_run)this.trace_id=this.parent_run.trace_id??this.id;else this.trace_id=this.id;if(this.replicas=iR(this.replicas),this.execution_order??=1,this.child_execution_order??=1,!this.dotted_order){let{dottedOrder:j,microsecondPrecisionDatestring:z}=H2(this.start_time,this.id,this.execution_order);if(this.parent_run)this.dotted_order=this.parent_run.dotted_order+"."+j;else this.dotted_order=j;this._serialized_start_time=z}}set metadata($){this.extra={...this.extra,metadata:{...this.extra?.metadata,...$}}}get metadata(){return this.extra?.metadata}static getDefaultConfig(){return{id:qK(),run_type:"chain",project_name:zP(),child_runs:[],api_url:Qq("LANGCHAIN_ENDPOINT")??"http://localhost:1984",api_key:Qq("LANGCHAIN_API_KEY"),caller_options:{},start_time:Date.now(),serialized:{},inputs:{},extra:{}}}static getSharedClient(){if(!qq.sharedClient)qq.sharedClient=new LK;return qq.sharedClient}createChild($){let q=this.child_execution_order+1,K=new qq({...$,parent_run:this,project_name:this.project_name,replicas:this.replicas,client:this.client,tracingEnabled:this.tracingEnabled,execution_order:q,child_execution_order:q});if(l1 in this)K[l1]=this[l1];let P=Symbol.for("lc:child_config"),_=$.extra?.[P]??this.extra[P];if(rR(_)){let z={..._},J=lR(z.callbacks)?z.callbacks.copy?.():void 0;if(J)Object.assign(J,{_parentRunId:K.id}),J.handlers?.find(oZ)?.updateFromRunTree?.(K),z.callbacks=J;K.extra[P]=z}let O=new Set,j=this;while(j!=null&&!O.has(j.id))O.add(j.id),j.child_execution_order=Math.max(j.child_execution_order,q),j=j.parent_run;return this.child_runs.push(K),K}async end($,q,K=Date.now(),P){if(this.outputs=this.outputs??$,this.error=this.error??q,this.end_time=this.end_time??K,P&&Object.keys(P).length>0)this.extra=this.extra?{...this.extra,metadata:{...this.extra.metadata,...P}}:{metadata:P}}_convertToCreate($,q,K=!0){let P=$.extra??{};if(P?.runtime?.library===void 0){if(!P.runtime)P.runtime={};if(q){for(let[j,z]of Object.entries(q))if(!P.runtime[j])P.runtime[j]=z}}let _,O;if(!K)_=$.child_runs.map((j)=>this._convertToCreate(j,q,K)),O=void 0;else O=$.parent_run?.id??$.parent_run_id,_=[];return{id:$.id,name:$.name,start_time:$._serialized_start_time??$.start_time,end_time:$.end_time,run_type:$.run_type,reference_example_id:$.reference_example_id,extra:P,serialized:$.serialized,error:$.error,inputs:$.inputs,outputs:$.outputs,session_name:$.project_name,child_runs:_,parent_run_id:O,trace_id:$.trace_id,dotted_order:$.dotted_order,tags:$.tags,attachments:$.attachments,events:$.events}}_remapForProject($,q,K=!0){let P=this._convertToCreate(this,q,K);if($===this.project_name)return P;let _=(k)=>{return w1(`${k}:${$}`,w1.DNS)},O=_(P.id),j=P.trace_id?_(P.trace_id):void 0,z=P.parent_run_id?_(P.parent_run_id):void 0,J;if(P.dotted_order){let k=oR(P.dotted_order),X=[];for(let V=0;V<k.length-1;V++){let[C,E]=k[V],h=_(E);X.push(C.toISOString().replace(/[-:]/g,"").replace(".","")+h)}let[G]=k[k.length-1];X.push(G.toISOString().replace(/[-:]/g,"").replace(".","")+O),J=X.join(".")}else J=void 0;return{...P,id:O,trace_id:j,parent_run_id:z,dotted_order:J,session_name:$}}async postRun($=!0){try{let q=f1();if(this.replicas&&this.replicas.length>0)for(let{projectName:K,apiKey:P,apiUrl:_,workspaceId:O}of this.replicas){let j=this._remapForProject(K??this.project_name,q,!0);await this.client.createRun(j,{apiKey:P,apiUrl:_,workspaceId:O})}else{let K=this._convertToCreate(this,q,$);await this.client.createRun(K)}if(!$){HP("Posting with excludeChildRuns=false is deprecated and will be removed in a future version.");for(let K of this.child_runs)await K.postRun(!1)}}catch(q){console.error(`Error in postRun for run ${this.id}:`,q)}}async patchRun($){if(this.replicas&&this.replicas.length>0)for(let{projectName:q,apiKey:K,apiUrl:P,workspaceId:_,updates:O}of this.replicas){let j=this._remapForProject(q??this.project_name),z={id:j.id,outputs:j.outputs,error:j.error,parent_run_id:j.parent_run_id,session_name:j.session_name,reference_example_id:j.reference_example_id,end_time:j.end_time,dotted_order:j.dotted_order,trace_id:j.trace_id,events:j.events,tags:j.tags,extra:j.extra,attachments:this.attachments,...O};if(!$?.excludeInputs)z.inputs=j.inputs;await this.client.updateRun(j.id,z,{apiKey:K,apiUrl:P,workspaceId:_})}else try{let q={end_time:this.end_time,error:this.error,outputs:this.outputs,parent_run_id:this.parent_run?.id??this.parent_run_id,reference_example_id:this.reference_example_id,extra:this.extra,events:this.events,dotted_order:this.dotted_order,trace_id:this.trace_id,tags:this.tags,attachments:this.attachments,session_name:this.project_name};if(!$?.excludeInputs)q.inputs=this.inputs;await this.client.updateRun(this.id,q)}catch(q){console.error(`Error in patchRun for run ${this.id}`,q)}}toJSON(){return this._convertToCreate(this,void 0,!1)}addEvent($){if(!this.events)this.events=[];if(typeof $==="string")this.events.push({name:"event",time:new Date().toISOString(),message:$});else this.events.push({...$,time:$.time??new Date().toISOString()})}static fromRunnableConfig($,q){let K=$?.callbacks,P,_,O,j=dZ();if(K){let J=K?.getParentRunId?.()??"",w=K?.handlers?.find((k)=>k?.name=="langchain_tracer");P=w?.getRun?.(J),_=w?.projectName,O=w?.client,j=j||!!w}if(!P)return new qq({...q,client:O,tracingEnabled:j,project_name:_});return new qq({name:P.name,id:P.id,trace_id:P.trace_id,dotted_order:P.dotted_order,client:O,tracingEnabled:j,project_name:_,tags:[...new Set((P?.tags??[]).concat($?.tags??[]))],extra:{metadata:{...P?.extra?.metadata,...$?.metadata}}}).createChild(q)}static fromDottedOrder($){return this.fromHeaders({"langsmith-trace":$})}static fromHeaders($,q){let K="get"in $&&typeof $.get==="function"?{"langsmith-trace":$.get("langsmith-trace"),baggage:$.get("baggage")}:$,P=K["langsmith-trace"];if(!P||typeof P!=="string")return;let _=P.trim(),O=_.split(".").map((J)=>{let[w,k]=J.split("Z");return{strTime:w,time:Date.parse(w+"Z"),uuid:k}}),j=O[0].uuid,z={...q,name:q?.name??"parent",run_type:q?.run_type??"chain",start_time:q?.start_time??Date.now(),id:O.at(-1)?.uuid,trace_id:j,dotted_order:_};if(K.baggage&&typeof K.baggage==="string"){let J=r1.fromHeader(K.baggage);z.metadata=J.metadata,z.tags=J.tags,z.project_name=J.project_name,z.replicas=J.replicas}return new qq(z)}toHeaders($){let q={"langsmith-trace":this.dotted_order,baggage:new r1(this.extra?.metadata,this.tags,this.project_name,this.replicas).toHeader()};if($)for(let[K,P]of Object.entries(q))$.set(K,P);return q}}Object.defineProperty(qq,"sharedClient",{enumerable:!0,configurable:!0,writable:!0,value:null});function rZ($){return $!=null&&typeof $.createChild==="function"&&typeof $.postRun==="function"}function oZ($){return typeof $==="object"&&$!=null&&typeof $.name==="string"&&$.name==="langchain_tracer"}function lZ($){return Array.isArray($)&&$.some((q)=>oZ(q))}function lR($){return typeof $==="object"&&$!=null&&Array.isArray($.handlers)}function rR($){return $!=null&&typeof $.callbacks==="object"&&(lZ($.callbacks?.handlers)||lZ($.callbacks))}function oR($){return $.split(".").map((K)=>{let P=K.slice(0,-36),_=K.slice(-36),O=parseInt(P.slice(0,4)),j=parseInt(P.slice(4,6))-1,z=parseInt(P.slice(6,8)),J=parseInt(P.slice(9,11)),w=parseInt(P.slice(11,13)),k=parseInt(P.slice(13,15)),X=parseInt(P.slice(15,21));return[new Date(O,j,z,J,w,k,X/1000),_]})}function nR(){let $=Qq("LANGSMITH_RUNS_ENDPOINTS");if(!$)return[];try{let q=JSON.parse($);if(Array.isArray(q)){let K=[];for(let P of q){if(typeof P!=="object"||P===null){console.warn(`Invalid item type in LANGSMITH_RUNS_ENDPOINTS: expected object, got ${typeof P}`);continue}if(typeof P.api_url!=="string"){console.warn(`Invalid api_url type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof P.api_url}`);continue}if(typeof P.api_key!=="string"){console.warn(`Invalid api_key type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof P.api_key}`);continue}K.push({apiUrl:P.api_url.replace(/\/$/,""),apiKey:P.api_key})}return K}else if(typeof q==="object"&&q!==null){BR(q);let K=[];for(let[P,_]of Object.entries(q)){let O=P.replace(/\/$/,"");if(typeof _==="string")K.push({apiUrl:O,apiKey:_});else{console.warn(`Invalid value type in LANGSMITH_RUNS_ENDPOINTS for URL ${P}: expected string, got ${typeof _}`);continue}}return K}else return console.warn("Invalid LANGSMITH_RUNS_ENDPOINTS – must be valid JSON array of "+`objects with api_url and api_key properties, or object mapping url->apiKey, got ${typeof q}`),[]}catch(q){if(bZ(q))throw q;return console.warn("Invalid LANGSMITH_RUNS_ENDPOINTS – must be valid JSON array of "+"objects with api_url and api_key properties, or object mapping url->apiKey"),[]}}function iR($){if($)return $.map((q)=>{if(Array.isArray(q))return{projectName:q[0],updates:q[1]};return q});return nR()}function BR($){if(Object.keys($).length>0&&c6("ENDPOINT"))throw new v2}var sZ=Dq(iZ(),1),sR=Dq(eZ(),1);function $f($,q){return q?.[$]||sZ.default($)}function qf($,q,K){let P={};for(let _ in $)if(Object.hasOwn($,_))P[q(_,K)]=$[_];return P}function Kf($){return Array.isArray($)?[...$]:{...$}}function $I($,q){let K=Kf($);for(let[P,_]of Object.entries(q)){let[O,...j]=P.split(".").reverse(),z=K;for(let J of j.reverse()){if(z[J]===void 0)break;z[J]=Kf(z[J]),z=z[J]}if(z[O]!==void 0)z[O]={lc:1,type:"secret",id:[_]}}return K}function T2($){let q=Object.getPrototypeOf($);if(typeof $.lc_name==="function"&&(typeof q.lc_name!=="function"||$.lc_name()!==q.lc_name()))return $.lc_name();else return $.name}class _K{static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,T2(this.constructor)]}get lc_secrets(){return}get lc_attributes(){return}get lc_aliases(){return}get lc_serializable_keys(){return}constructor($,...q){if(Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"lc_kwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.lc_serializable_keys!==void 0)this.lc_kwargs=Object.fromEntries(Object.entries($||{}).filter(([K])=>this.lc_serializable_keys?.includes(K)));else this.lc_kwargs=$??{}}toJSON(){if(!this.lc_serializable)return this.toJSONNotImplemented();if(this.lc_kwargs instanceof _K||typeof this.lc_kwargs!=="object"||Array.isArray(this.lc_kwargs))return this.toJSONNotImplemented();let $={},q={},K=Object.keys(this.lc_kwargs).reduce((P,_)=>{return P[_]=_ in this?this[_]:this.lc_kwargs[_],P},{});for(let P=Object.getPrototypeOf(this);P;P=Object.getPrototypeOf(P))Object.assign($,Reflect.get(P,"lc_aliases",this)),Object.assign(q,Reflect.get(P,"lc_secrets",this)),Object.assign(K,Reflect.get(P,"lc_attributes",this));return Object.keys(q).forEach((P)=>{let _=this,O=K,[j,...z]=P.split(".").reverse();for(let J of z.reverse()){if(!(J in _)||_[J]===void 0)return;if(!(J in O)||O[J]===void 0){if(typeof _[J]==="object"&&_[J]!=null)O[J]={};else if(Array.isArray(_[J]))O[J]=[]}_=_[J],O=O[J]}if(j in _&&_[j]!==void 0)O[j]=O[j]||_[j]}),{lc:1,type:"constructor",id:this.lc_id,kwargs:qf(Object.keys(q).length?$I(K,q):K,$f,$)}}toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:this.lc_id}}}var qI=()=>typeof window<"u"&&typeof window.document<"u",KI=()=>typeof globalThis==="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",_I=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),Z2=()=>typeof Deno<"u",PI=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!Z2(),jI=()=>{let $;if(qI())$="browser";else if(PI())$="node";else if(KI())$="webworker";else if(_I())$="jsdom";else if(Z2())$="deno";else $="other";return $},w2;function _f(){if(w2===void 0)w2={library:"langchain-js",runtime:jI()};return w2}function u8($){try{if(typeof process<"u")return process.env?.[$];else if(Z2())return Deno?.env.get($);else return}catch(q){return}}class Pf{}class O_ extends Pf{get lc_namespace(){return["langchain_core","callbacks",this.name]}get lc_secrets(){return}get lc_attributes(){return}get lc_aliases(){return}get lc_serializable_keys(){return}static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,T2(this.constructor)]}constructor($){super();if(Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"lc_kwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ignoreLLM",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreChain",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreAgent",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreRetriever",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreCustomEvent",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"raiseError",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"awaitHandlers",{enumerable:!0,configurable:!0,writable:!0,value:u8("LANGCHAIN_CALLBACKS_BACKGROUND")==="false"}),this.lc_kwargs=$||{},$)this.ignoreLLM=$.ignoreLLM??this.ignoreLLM,this.ignoreChain=$.ignoreChain??this.ignoreChain,this.ignoreAgent=$.ignoreAgent??this.ignoreAgent,this.ignoreRetriever=$.ignoreRetriever??this.ignoreRetriever,this.ignoreCustomEvent=$.ignoreCustomEvent??this.ignoreCustomEvent,this.raiseError=$.raiseError??this.raiseError,this.awaitHandlers=this.raiseError||($._awaitHandler??this.awaitHandlers)}copy(){return new this.constructor(this)}toJSON(){return _K.prototype.toJSON.call(this)}toJSONNotImplemented(){return _K.prototype.toJSONNotImplemented.call(this)}static fromMethods($){class q extends O_{constructor(){super();Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:rq()}),Object.assign(this,$)}}return new q}}var jf=($)=>{let q=$;return q!==void 0&&typeof q.copy==="function"&&typeof q.name==="string"&&typeof q.awaitHandlers==="boolean"};var OI=($)=>{if(!$)return;return $.events=$.events??[],$.child_runs=$.child_runs??[],$};function X2($,q){if(!$)return;return new qq({...$,start_time:$._serialized_start_time??$.start_time,parent_run:X2(q),child_runs:$.child_runs.map((K)=>X2(K)).filter((K)=>K!==void 0),extra:{...$.extra,runtime:_f()},tracingEnabled:!1})}function f2($,q){return $&&!Array.isArray($)&&typeof $==="object"?$:{[q]:$}}function q4($){return typeof $._addRunToRunMap==="function"}class C8 extends O_{constructor($){super(...arguments);Object.defineProperty(this,"runMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"runTreeMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"usesRunTreeMap",{enumerable:!0,configurable:!0,writable:!0,value:!1})}copy(){return this}getRunById($){if($===void 0)return;return this.usesRunTreeMap?OI(this.runTreeMap.get($)):this.runMap.get($)}stringifyError($){if($ instanceof Error)return $.message+($?.stack?`
|
|
84
|
+
https://smith.langchain.com/prompts`);let[P,_,O]=KK($);if(!await this._currentTenantIsOwner(P))throw await this._ownerConflictError("create a prompt",P);let j={repo_handle:_,...q?.description&&{description:q.description},...q?.readme&&{readme:q.readme},...q?.tags&&{tags:q.tags},is_public:!!q?.isPublic},z=JSON.stringify(j),J=await this.caller.call(async()=>{let k=await this._fetch(`${this.apiUrl}/repos/`,{method:"POST",headers:{...this.headers,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:z});return await a$(k,"create prompt"),k}),{repo:w}=await J.json();return w}async createCommit($,q,K){if(!await this.promptExists($))throw Error("Prompt does not exist, you must create it first.");let[P,_,O]=KK($),j=K?.parentCommitHash==="latest"||!K?.parentCommitHash?await this._getLatestCommitHash(`${P}/${_}`):K?.parentCommitHash,z={manifest:JSON.parse(JSON.stringify(q)),parent_commit:j},J=JSON.stringify(z),k=await(await this.caller.call(async()=>{let X=await this._fetch(`${this.apiUrl}/commits/${P}/${_}`,{method:"POST",headers:{...this.headers,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:J});return await a$(X,"create commit"),X})).json();return this._getPromptUrl(`${P}/${_}${k.commit_hash?`:${k.commit_hash}`:""}`)}async updateExamplesMultipart($,q=[]){return this._updateExamplesMultipart($,q)}async _updateExamplesMultipart($,q=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let K=new FormData;for(let O of q){let j=O.id,z={...O.metadata&&{metadata:O.metadata},...O.split&&{split:O.split}},J=oq(z,`Serializing body for example with id: ${j}`),w=new Blob([J],{type:"application/json"});if(K.append(j,w),O.inputs){let k=oq(O.inputs,`Serializing inputs for example with id: ${j}`),X=new Blob([k],{type:"application/json"});K.append(`${j}.inputs`,X)}if(O.outputs){let k=oq(O.outputs,`Serializing outputs whle updating example with id: ${j}`),X=new Blob([k],{type:"application/json"});K.append(`${j}.outputs`,X)}if(O.attachments)for(let[k,X]of Object.entries(O.attachments)){let G,V;if(Array.isArray(X))[G,V]=X;else G=X.mimeType,V=X.data;let C=new Blob([V],{type:`${G}; length=${V.byteLength}`});K.append(`${j}.attachment.${k}`,C)}if(O.attachments_operations){let k=oq(O.attachments_operations,`Serializing attachments while updating example with id: ${j}`),X=new Blob([k],{type:"application/json"});K.append(`${j}.attachments_operations`,X)}}let P=$??q[0]?.dataset_id;return(await this.caller.call(async()=>{let O=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${P}/examples`)}`,{method:"PATCH",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:K});return await a$(O,"update examples"),O})).json()}async uploadExamplesMultipart($,q=[]){return this._uploadExamplesMultipart($,q)}async _uploadExamplesMultipart($,q=[]){if(!await this._getDatasetExamplesMultiPartSupport())throw Error("Your LangSmith deployment does not allow using the multipart examples endpoint, please upgrade your deployment to the latest version.");let K=new FormData;for(let _ of q){let O=(_.id??qK()).toString(),j={created_at:_.created_at,..._.metadata&&{metadata:_.metadata},..._.split&&{split:_.split},..._.source_run_id&&{source_run_id:_.source_run_id},..._.use_source_run_io&&{use_source_run_io:_.use_source_run_io},..._.use_source_run_attachments&&{use_source_run_attachments:_.use_source_run_attachments}},z=oq(j,`Serializing body for uploaded example with id: ${O}`),J=new Blob([z],{type:"application/json"});if(K.append(O,J),_.inputs){let w=oq(_.inputs,`Serializing inputs for uploaded example with id: ${O}`),k=new Blob([w],{type:"application/json"});K.append(`${O}.inputs`,k)}if(_.outputs){let w=oq(_.outputs,`Serializing outputs for uploaded example with id: ${O}`),k=new Blob([w],{type:"application/json"});K.append(`${O}.outputs`,k)}if(_.attachments)for(let[w,k]of Object.entries(_.attachments)){let X,G;if(Array.isArray(k))[X,G]=k;else X=k.mimeType,G=k.data;let V=new Blob([G],{type:`${X}; length=${G.byteLength}`});K.append(`${O}.attachment.${w}`,V)}}return(await this.caller.call(async()=>{let _=await this._fetch(`${this.apiUrl}${this._getPlatformEndpointPath(`datasets/${$}/examples`)}`,{method:"POST",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:K});return await a$(_,"upload examples"),_})).json()}async updatePrompt($,q){if(!await this.promptExists($))throw Error("Prompt does not exist, you must create it first.");let[K,P]=KK($);if(!await this._currentTenantIsOwner(K))throw await this._ownerConflictError("update a prompt",K);let _={};if(q?.description!==void 0)_.description=q.description;if(q?.readme!==void 0)_.readme=q.readme;if(q?.tags!==void 0)_.tags=q.tags;if(q?.isPublic!==void 0)_.is_public=q.isPublic;if(q?.isArchived!==void 0)_.is_archived=q.isArchived;if(Object.keys(_).length===0)throw Error("No valid update options provided");let O=JSON.stringify(_);return(await this.caller.call(async()=>{let z=await this._fetch(`${this.apiUrl}/repos/${K}/${P}`,{method:"PATCH",headers:{...this.headers,"Content-Type":"application/json"},signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions,body:O});return await a$(z,"update prompt"),z})).json()}async deletePrompt($){if(!await this.promptExists($))throw Error("Prompt does not exist, you must create it first.");let[q,K,P]=KK($);if(!await this._currentTenantIsOwner(q))throw await this._ownerConflictError("delete a prompt",q);return(await this.caller.call(async()=>{let O=await this._fetch(`${this.apiUrl}/repos/${q}/${K}`,{method:"DELETE",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await a$(O,"delete prompt"),O})).json()}async pullPromptCommit($,q){let[K,P,_]=KK($),j=await(await this.caller.call(async()=>{let z=await this._fetch(`${this.apiUrl}/commits/${K}/${P}/${_}${q?.includeModel?"?include_model=true":""}`,{method:"GET",headers:this.headers,signal:AbortSignal.timeout(this.timeout_ms),...this.fetchOptions});return await a$(z,"pull prompt commit"),z})).json();return{owner:K,repo:P,commit_hash:j.commit_hash,manifest:j.manifest,examples:j.examples}}async _pullPrompt($,q){let K=await this.pullPromptCommit($,{includeModel:q?.includeModel});return JSON.stringify(K.manifest)}async pushPrompt($,q){if(await this.promptExists($)){if(q&&Object.keys(q).some((P)=>P!=="object"))await this.updatePrompt($,{description:q?.description,readme:q?.readme,tags:q?.tags,isPublic:q?.isPublic})}else await this.createPrompt($,{description:q?.description,readme:q?.readme,tags:q?.tags,isPublic:q?.isPublic});if(!q?.object)return await this._getPromptUrl($);return await this.createCommit($,q?.object,{parentCommitHash:q?.parentCommitHash})}async clonePublicDataset($,q={}){let{sourceApiUrl:K=this.apiUrl,datasetName:P}=q,[_,O]=this.parseTokenOrUrl($,K),j=new LK({apiUrl:_,apiKey:"placeholder"}),z=await j.readSharedDataset(O),J=P||z.name;try{if(await this.hasDataset({datasetId:J})){console.log(`Dataset ${J} already exists in your tenant. Skipping.`);return}}catch(X){}let w=await j.listSharedExamples(O),k=await this.createDataset(J,{description:z.description,dataType:z.data_type||"kv",inputsSchema:z.inputs_schema_definition??void 0,outputsSchema:z.outputs_schema_definition??void 0});try{await this.createExamples({inputs:w.map((X)=>X.inputs),outputs:w.flatMap((X)=>X.outputs?[X.outputs]:[]),datasetId:k.id})}catch(X){throw console.error(`An error occurred while creating dataset ${J}. You should delete it manually.`),X}}parseTokenOrUrl($,q,K=2,P="dataset"){try{return _6($),[q,$]}catch(_){}try{let O=new URL($).pathname.split("/").filter((j)=>j!=="");if(O.length>=K){let j=O[O.length-K];return[q,j]}else throw Error(`Invalid public ${P} URL: ${$}`)}catch(_){throw Error(`Invalid public ${P} URL or token: ${$}`)}}async awaitPendingTraceBatches(){if(this.manualFlushMode)return console.warn("[WARNING]: When tracing in manual flush mode, you must call `await client.flush()` manually to submit trace batches."),Promise.resolve();if(await Promise.all([...this.autoBatchQueue.items.map(({itemPromise:$})=>$),this.batchIngestCaller.queue.onIdle()]),this.langSmithToOTELTranslator!==void 0)await MT()?.DEFAULT_LANGSMITH_SPAN_PROCESSOR?.forceFlush()}}function pZ($){return"dataset_id"in $||"dataset_name"in $}var dZ=($)=>{if($!==void 0)return $;return!!["TRACING_V2","TRACING"].find((K)=>c6(K)==="true")};var l1=Symbol.for("lc:context_variables");function dR($){return $.replace(/[-:.]/g,"")}function H2($,q,K=1){let P=K.toFixed(0).slice(0,3).padStart(3,"0"),_=`${new Date($).toISOString().slice(0,-1)}${P}Z`;return{dottedOrder:dR(_)+q,microsecondPrecisionDatestring:_}}class r1{constructor($,q,K,P){Object.defineProperty(this,"metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.metadata=$,this.tags=q,this.project_name=K,this.replicas=P}static fromHeader($){let q=$.split(","),K={},P=[],_,O;for(let j of q){let[z,J]=j.split("="),w=decodeURIComponent(J);if(z==="langsmith-metadata")K=JSON.parse(w);else if(z==="langsmith-tags")P=w.split(",");else if(z==="langsmith-project")_=w;else if(z==="langsmith-replicas")O=JSON.parse(w)}return new r1(K,P,_,O)}toHeader(){let $=[];if(this.metadata&&Object.keys(this.metadata).length>0)$.push(`langsmith-metadata=${encodeURIComponent(JSON.stringify(this.metadata))}`);if(this.tags&&this.tags.length>0)$.push(`langsmith-tags=${encodeURIComponent(this.tags.join(","))}`);if(this.project_name)$.push(`langsmith-project=${encodeURIComponent(this.project_name)}`);return $.join(",")}}class qq{constructor($){if(Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"run_type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"project_name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"parent_run_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_runs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"end_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"extra",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tags",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"serialized",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"inputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"outputs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reference_example_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"client",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"trace_id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"dotted_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"tracingEnabled",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"child_execution_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"attachments",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"replicas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_serialized_start_time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),rZ($)){Object.assign(this,{...$});return}let q=qq.getDefaultConfig(),{metadata:K,...P}=$,_=P.client??qq.getSharedClient(),O={...K,...P?.extra?.metadata};if(P.extra={...P.extra,metadata:O},"id"in P&&P.id==null)delete P.id;if(Object.assign(this,{...q,...P,client:_}),!this.trace_id)if(this.parent_run)this.trace_id=this.parent_run.trace_id??this.id;else this.trace_id=this.id;if(this.replicas=iR(this.replicas),this.execution_order??=1,this.child_execution_order??=1,!this.dotted_order){let{dottedOrder:j,microsecondPrecisionDatestring:z}=H2(this.start_time,this.id,this.execution_order);if(this.parent_run)this.dotted_order=this.parent_run.dotted_order+"."+j;else this.dotted_order=j;this._serialized_start_time=z}}set metadata($){this.extra={...this.extra,metadata:{...this.extra?.metadata,...$}}}get metadata(){return this.extra?.metadata}static getDefaultConfig(){return{id:qK(),run_type:"chain",project_name:zP(),child_runs:[],api_url:Qq("LANGCHAIN_ENDPOINT")??"http://localhost:1984",api_key:Qq("LANGCHAIN_API_KEY"),caller_options:{},start_time:Date.now(),serialized:{},inputs:{},extra:{}}}static getSharedClient(){if(!qq.sharedClient)qq.sharedClient=new LK;return qq.sharedClient}createChild($){let q=this.child_execution_order+1,K=new qq({...$,parent_run:this,project_name:this.project_name,replicas:this.replicas,client:this.client,tracingEnabled:this.tracingEnabled,execution_order:q,child_execution_order:q});if(l1 in this)K[l1]=this[l1];let P=Symbol.for("lc:child_config"),_=$.extra?.[P]??this.extra[P];if(rR(_)){let z={..._},J=lR(z.callbacks)?z.callbacks.copy?.():void 0;if(J)Object.assign(J,{_parentRunId:K.id}),J.handlers?.find(oZ)?.updateFromRunTree?.(K),z.callbacks=J;K.extra[P]=z}let O=new Set,j=this;while(j!=null&&!O.has(j.id))O.add(j.id),j.child_execution_order=Math.max(j.child_execution_order,q),j=j.parent_run;return this.child_runs.push(K),K}async end($,q,K=Date.now(),P){if(this.outputs=this.outputs??$,this.error=this.error??q,this.end_time=this.end_time??K,P&&Object.keys(P).length>0)this.extra=this.extra?{...this.extra,metadata:{...this.extra.metadata,...P}}:{metadata:P}}_convertToCreate($,q,K=!0){let P=$.extra??{};if(P?.runtime?.library===void 0){if(!P.runtime)P.runtime={};if(q){for(let[j,z]of Object.entries(q))if(!P.runtime[j])P.runtime[j]=z}}let _,O;if(!K)_=$.child_runs.map((j)=>this._convertToCreate(j,q,K)),O=void 0;else O=$.parent_run?.id??$.parent_run_id,_=[];return{id:$.id,name:$.name,start_time:$._serialized_start_time??$.start_time,end_time:$.end_time,run_type:$.run_type,reference_example_id:$.reference_example_id,extra:P,serialized:$.serialized,error:$.error,inputs:$.inputs,outputs:$.outputs,session_name:$.project_name,child_runs:_,parent_run_id:O,trace_id:$.trace_id,dotted_order:$.dotted_order,tags:$.tags,attachments:$.attachments,events:$.events}}_remapForProject($,q,K=!0){let P=this._convertToCreate(this,q,K);if($===this.project_name)return P;let _=(k)=>{return w1(`${k}:${$}`,w1.DNS)},O=_(P.id),j=P.trace_id?_(P.trace_id):void 0,z=P.parent_run_id?_(P.parent_run_id):void 0,J;if(P.dotted_order){let k=oR(P.dotted_order),X=[];for(let V=0;V<k.length-1;V++){let[C,E]=k[V],h=_(E);X.push(C.toISOString().replace(/[-:]/g,"").replace(".","")+h)}let[G]=k[k.length-1];X.push(G.toISOString().replace(/[-:]/g,"").replace(".","")+O),J=X.join(".")}else J=void 0;return{...P,id:O,trace_id:j,parent_run_id:z,dotted_order:J,session_name:$}}async postRun($=!0){try{let q=f1();if(this.replicas&&this.replicas.length>0)for(let{projectName:K,apiKey:P,apiUrl:_,workspaceId:O}of this.replicas){let j=this._remapForProject(K??this.project_name,q,!0);await this.client.createRun(j,{apiKey:P,apiUrl:_,workspaceId:O})}else{let K=this._convertToCreate(this,q,$);await this.client.createRun(K)}if(!$){HP("Posting with excludeChildRuns=false is deprecated and will be removed in a future version.");for(let K of this.child_runs)await K.postRun(!1)}}catch(q){console.error(`Error in postRun for run ${this.id}:`,q)}}async patchRun($){if(this.replicas&&this.replicas.length>0)for(let{projectName:q,apiKey:K,apiUrl:P,workspaceId:_,updates:O}of this.replicas){let j=this._remapForProject(q??this.project_name),z={id:j.id,outputs:j.outputs,error:j.error,parent_run_id:j.parent_run_id,session_name:j.session_name,reference_example_id:j.reference_example_id,end_time:j.end_time,dotted_order:j.dotted_order,trace_id:j.trace_id,events:j.events,tags:j.tags,extra:j.extra,attachments:this.attachments,...O};if(!$?.excludeInputs)z.inputs=j.inputs;await this.client.updateRun(j.id,z,{apiKey:K,apiUrl:P,workspaceId:_})}else try{let q={end_time:this.end_time,error:this.error,outputs:this.outputs,parent_run_id:this.parent_run?.id??this.parent_run_id,reference_example_id:this.reference_example_id,extra:this.extra,events:this.events,dotted_order:this.dotted_order,trace_id:this.trace_id,tags:this.tags,attachments:this.attachments,session_name:this.project_name};if(!$?.excludeInputs)q.inputs=this.inputs;await this.client.updateRun(this.id,q)}catch(q){console.error(`Error in patchRun for run ${this.id}`,q)}}toJSON(){return this._convertToCreate(this,void 0,!1)}addEvent($){if(!this.events)this.events=[];if(typeof $==="string")this.events.push({name:"event",time:new Date().toISOString(),message:$});else this.events.push({...$,time:$.time??new Date().toISOString()})}static fromRunnableConfig($,q){let K=$?.callbacks,P,_,O,j=dZ();if(K){let J=K?.getParentRunId?.()??"",w=K?.handlers?.find((k)=>k?.name=="langchain_tracer");P=w?.getRun?.(J),_=w?.projectName,O=w?.client,j=j||!!w}if(!P)return new qq({...q,client:O,tracingEnabled:j,project_name:_});return new qq({name:P.name,id:P.id,trace_id:P.trace_id,dotted_order:P.dotted_order,client:O,tracingEnabled:j,project_name:_,tags:[...new Set((P?.tags??[]).concat($?.tags??[]))],extra:{metadata:{...P?.extra?.metadata,...$?.metadata}}}).createChild(q)}static fromDottedOrder($){return this.fromHeaders({"langsmith-trace":$})}static fromHeaders($,q){let K="get"in $&&typeof $.get==="function"?{"langsmith-trace":$.get("langsmith-trace"),baggage:$.get("baggage")}:$,P=K["langsmith-trace"];if(!P||typeof P!=="string")return;let _=P.trim(),O=_.split(".").map((J)=>{let[w,k]=J.split("Z");return{strTime:w,time:Date.parse(w+"Z"),uuid:k}}),j=O[0].uuid,z={...q,name:q?.name??"parent",run_type:q?.run_type??"chain",start_time:q?.start_time??Date.now(),id:O.at(-1)?.uuid,trace_id:j,dotted_order:_};if(K.baggage&&typeof K.baggage==="string"){let J=r1.fromHeader(K.baggage);z.metadata=J.metadata,z.tags=J.tags,z.project_name=J.project_name,z.replicas=J.replicas}return new qq(z)}toHeaders($){let q={"langsmith-trace":this.dotted_order,baggage:new r1(this.extra?.metadata,this.tags,this.project_name,this.replicas).toHeader()};if($)for(let[K,P]of Object.entries(q))$.set(K,P);return q}}Object.defineProperty(qq,"sharedClient",{enumerable:!0,configurable:!0,writable:!0,value:null});function rZ($){return $!=null&&typeof $.createChild==="function"&&typeof $.postRun==="function"}function oZ($){return typeof $==="object"&&$!=null&&typeof $.name==="string"&&$.name==="langchain_tracer"}function lZ($){return Array.isArray($)&&$.some((q)=>oZ(q))}function lR($){return typeof $==="object"&&$!=null&&Array.isArray($.handlers)}function rR($){return $!=null&&typeof $.callbacks==="object"&&(lZ($.callbacks?.handlers)||lZ($.callbacks))}function oR($){return $.split(".").map((K)=>{let P=K.slice(0,-36),_=K.slice(-36),O=parseInt(P.slice(0,4)),j=parseInt(P.slice(4,6))-1,z=parseInt(P.slice(6,8)),J=parseInt(P.slice(9,11)),w=parseInt(P.slice(11,13)),k=parseInt(P.slice(13,15)),X=parseInt(P.slice(15,21));return[new Date(O,j,z,J,w,k,X/1000),_]})}function nR(){let $=Qq("LANGSMITH_RUNS_ENDPOINTS");if(!$)return[];try{let q=JSON.parse($);if(Array.isArray(q)){let K=[];for(let P of q){if(typeof P!=="object"||P===null){console.warn(`Invalid item type in LANGSMITH_RUNS_ENDPOINTS: expected object, got ${typeof P}`);continue}if(typeof P.api_url!=="string"){console.warn(`Invalid api_url type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof P.api_url}`);continue}if(typeof P.api_key!=="string"){console.warn(`Invalid api_key type in LANGSMITH_RUNS_ENDPOINTS: expected string, got ${typeof P.api_key}`);continue}K.push({apiUrl:P.api_url.replace(/\/$/,""),apiKey:P.api_key})}return K}else if(typeof q==="object"&&q!==null){BR(q);let K=[];for(let[P,_]of Object.entries(q)){let O=P.replace(/\/$/,"");if(typeof _==="string")K.push({apiUrl:O,apiKey:_});else{console.warn(`Invalid value type in LANGSMITH_RUNS_ENDPOINTS for URL ${P}: expected string, got ${typeof _}`);continue}}return K}else return console.warn("Invalid LANGSMITH_RUNS_ENDPOINTS – must be valid JSON array of "+`objects with api_url and api_key properties, or object mapping url->apiKey, got ${typeof q}`),[]}catch(q){if(bZ(q))throw q;return console.warn("Invalid LANGSMITH_RUNS_ENDPOINTS – must be valid JSON array of "+"objects with api_url and api_key properties, or object mapping url->apiKey"),[]}}function iR($){if($)return $.map((q)=>{if(Array.isArray(q))return{projectName:q[0],updates:q[1]};return q});return nR()}function BR($){if(Object.keys($).length>0&&c6("ENDPOINT"))throw new v2}var sZ=Dq(iZ(),1),sR=Dq(eZ(),1);function $f($,q){return q?.[$]||sZ.default($)}function qf($,q,K){let P={};for(let _ in $)if(Object.hasOwn($,_))P[q(_,K)]=$[_];return P}function Kf($){return Array.isArray($)?[...$]:{...$}}function $I($,q){let K=Kf($);for(let[P,_]of Object.entries(q)){let[O,...j]=P.split(".").reverse(),z=K;for(let J of j.reverse()){if(z[J]===void 0)break;z[J]=Kf(z[J]),z=z[J]}if(z[O]!==void 0)z[O]={lc:1,type:"secret",id:[_]}}return K}function T2($){let q=Object.getPrototypeOf($);if(typeof $.lc_name==="function"&&(typeof q.lc_name!=="function"||$.lc_name()!==q.lc_name()))return $.lc_name();else return $.name}class _K{static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,T2(this.constructor)]}get lc_secrets(){return}get lc_attributes(){return}get lc_aliases(){return}get lc_serializable_keys(){return}constructor($,...q){if(Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"lc_kwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.lc_serializable_keys!==void 0)this.lc_kwargs=Object.fromEntries(Object.entries($||{}).filter(([K])=>this.lc_serializable_keys?.includes(K)));else this.lc_kwargs=$??{}}toJSON(){if(!this.lc_serializable)return this.toJSONNotImplemented();if(this.lc_kwargs instanceof _K||typeof this.lc_kwargs!=="object"||Array.isArray(this.lc_kwargs))return this.toJSONNotImplemented();let $={},q={},K=Object.keys(this.lc_kwargs).reduce((P,_)=>{return P[_]=_ in this?this[_]:this.lc_kwargs[_],P},{});for(let P=Object.getPrototypeOf(this);P;P=Object.getPrototypeOf(P))Object.assign($,Reflect.get(P,"lc_aliases",this)),Object.assign(q,Reflect.get(P,"lc_secrets",this)),Object.assign(K,Reflect.get(P,"lc_attributes",this));return Object.keys(q).forEach((P)=>{let _=this,O=K,[j,...z]=P.split(".").reverse();for(let J of z.reverse()){if(!(J in _)||_[J]===void 0)return;if(!(J in O)||O[J]===void 0){if(typeof _[J]==="object"&&_[J]!=null)O[J]={};else if(Array.isArray(_[J]))O[J]=[]}_=_[J],O=O[J]}if(j in _&&_[j]!==void 0)O[j]=O[j]||_[j]}),{lc:1,type:"constructor",id:this.lc_id,kwargs:qf(Object.keys(q).length?$I(K,q):K,$f,$)}}toJSONNotImplemented(){return{lc:1,type:"not_implemented",id:this.lc_id}}}var qI=()=>typeof window<"u"&&typeof window.document<"u",KI=()=>typeof globalThis==="object"&&globalThis.constructor&&globalThis.constructor.name==="DedicatedWorkerGlobalScope",_I=()=>typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&navigator.userAgent.includes("jsdom"),Z2=()=>typeof Deno<"u",PI=()=>typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"&&!Z2(),jI=()=>{let $;if(qI())$="browser";else if(PI())$="node";else if(KI())$="webworker";else if(_I())$="jsdom";else if(Z2())$="deno";else $="other";return $},w2;function _f(){if(w2===void 0)w2={library:"langchain-js",runtime:jI()};return w2}function u8($){try{if(typeof process<"u")return process.env?.[$];else if(Z2())return Deno?.env.get($);else return}catch(q){return}}class Pf{}class O_ extends Pf{get lc_namespace(){return["langchain_core","callbacks",this.name]}get lc_secrets(){return}get lc_attributes(){return}get lc_aliases(){return}get lc_serializable_keys(){return}static lc_name(){return this.name}get lc_id(){return[...this.lc_namespace,T2(this.constructor)]}constructor($){super();if(Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"lc_kwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ignoreLLM",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreChain",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreAgent",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreRetriever",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreCustomEvent",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"raiseError",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"awaitHandlers",{enumerable:!0,configurable:!0,writable:!0,value:u8("LANGCHAIN_CALLBACKS_BACKGROUND")==="false"}),this.lc_kwargs=$||{},$)this.ignoreLLM=$.ignoreLLM??this.ignoreLLM,this.ignoreChain=$.ignoreChain??this.ignoreChain,this.ignoreAgent=$.ignoreAgent??this.ignoreAgent,this.ignoreRetriever=$.ignoreRetriever??this.ignoreRetriever,this.ignoreCustomEvent=$.ignoreCustomEvent??this.ignoreCustomEvent,this.raiseError=$.raiseError??this.raiseError,this.awaitHandlers=this.raiseError||($._awaitHandler??this.awaitHandlers)}copy(){return new this.constructor(this)}toJSON(){return _K.prototype.toJSON.call(this)}toJSONNotImplemented(){return _K.prototype.toJSONNotImplemented.call(this)}static fromMethods($){class q extends O_{constructor(){super();Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:rq()}),Object.assign(this,$)}}return new q}}var jf=($)=>{let q=$;return q!==void 0&&typeof q.copy==="function"&&typeof q.name==="string"&&typeof q.awaitHandlers==="boolean"};var OI=($)=>{if(!$)return;return $.events=$.events??[],$.child_runs=$.child_runs??[],$};function X2($,q){if(!$)return;return new qq({...$,start_time:$._serialized_start_time??$.start_time,parent_run:X2(q),child_runs:$.child_runs.map((K)=>X2(K)).filter((K)=>K!==void 0),extra:{...$.extra,runtime:_f()},tracingEnabled:!1})}function f2($,q){return $&&!Array.isArray($)&&typeof $==="object"?$:{[q]:$}}function q4($){return typeof $._addRunToRunMap==="function"}class C8 extends O_{constructor($){super(...arguments);Object.defineProperty(this,"runMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"runTreeMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"usesRunTreeMap",{enumerable:!0,configurable:!0,writable:!0,value:!1})}copy(){return this}getRunById($){if($===void 0)return;return this.usesRunTreeMap?OI(this.runTreeMap.get($)):this.runMap.get($)}stringifyError($){if($ instanceof Error)return $.message+($?.stack?`
|
|
85
85
|
|
|
86
86
|
${$.stack}`:"");if(typeof $==="string")return $;return`${$}`}_addChildRun($,q){$.child_runs.push(q)}_addRunToRunMap($){let{dottedOrder:q,microsecondPrecisionDatestring:K}=H2(new Date($.start_time).getTime(),$.id,$.execution_order),P={...$},_=this.getRunById(P.parent_run_id);if(P.parent_run_id!==void 0){if(_){if(this._addChildRun(_,P),_.child_execution_order=Math.max(_.child_execution_order,P.child_execution_order),P.trace_id=_.trace_id,_.dotted_order!==void 0)P.dotted_order=[_.dotted_order,q].join("."),P._serialized_start_time=K}}else P.trace_id=P.id,P.dotted_order=q,P._serialized_start_time=K;if(this.usesRunTreeMap){let O=X2(P,_);if(O!==void 0)this.runTreeMap.set(P.id,O)}else this.runMap.set(P.id,P);return P}async _endTrace($){let q=$.parent_run_id!==void 0&&this.getRunById($.parent_run_id);if(q)q.child_execution_order=Math.max(q.child_execution_order,$.child_execution_order);else await this.persistRun($);if(await this.onRunUpdate?.($),this.usesRunTreeMap)this.runTreeMap.delete($.id);else this.runMap.delete($.id)}_getExecutionOrder($){let q=$!==void 0&&this.getRunById($);if(!q)return 1;return q.child_execution_order+1}_createRunForLLMStart($,q,K,P,_,O,j,z){let J=this._getExecutionOrder(P),w=Date.now(),k=j?{..._,metadata:j}:_,X={id:K,name:z??$.id[$.id.length-1],parent_run_id:P,start_time:w,serialized:$,events:[{name:"start",time:new Date(w).toISOString()}],inputs:{prompts:q},execution_order:J,child_runs:[],child_execution_order:J,run_type:"llm",extra:k??{},tags:O||[]};return this._addRunToRunMap(X)}async handleLLMStart($,q,K,P,_,O,j,z){let J=this.getRunById(K)??this._createRunForLLMStart($,q,K,P,_,O,j,z);return await this.onRunCreate?.(J),await this.onLLMStart?.(J),J}_createRunForChatModelStart($,q,K,P,_,O,j,z){let J=this._getExecutionOrder(P),w=Date.now(),k=j?{..._,metadata:j}:_,X={id:K,name:z??$.id[$.id.length-1],parent_run_id:P,start_time:w,serialized:$,events:[{name:"start",time:new Date(w).toISOString()}],inputs:{messages:q},execution_order:J,child_runs:[],child_execution_order:J,run_type:"llm",extra:k??{},tags:O||[]};return this._addRunToRunMap(X)}async handleChatModelStart($,q,K,P,_,O,j,z){let J=this.getRunById(K)??this._createRunForChatModelStart($,q,K,P,_,O,j,z);return await this.onRunCreate?.(J),await this.onLLMStart?.(J),J}async handleLLMEnd($,q,K,P,_){let O=this.getRunById(q);if(!O||O?.run_type!=="llm")throw Error("No LLM run to end.");return O.end_time=Date.now(),O.outputs=$,O.events.push({name:"end",time:new Date(O.end_time).toISOString()}),O.extra={...O.extra,..._},await this.onLLMEnd?.(O),await this._endTrace(O),O}async handleLLMError($,q,K,P,_){let O=this.getRunById(q);if(!O||O?.run_type!=="llm")throw Error("No LLM run to end.");return O.end_time=Date.now(),O.error=this.stringifyError($),O.events.push({name:"error",time:new Date(O.end_time).toISOString()}),O.extra={...O.extra,..._},await this.onLLMError?.(O),await this._endTrace(O),O}_createRunForChainStart($,q,K,P,_,O,j,z){let J=this._getExecutionOrder(P),w=Date.now(),k={id:K,name:z??$.id[$.id.length-1],parent_run_id:P,start_time:w,serialized:$,events:[{name:"start",time:new Date(w).toISOString()}],inputs:q,execution_order:J,child_execution_order:J,run_type:j??"chain",child_runs:[],extra:O?{metadata:O}:{},tags:_||[]};return this._addRunToRunMap(k)}async handleChainStart($,q,K,P,_,O,j,z){let J=this.getRunById(K)??this._createRunForChainStart($,q,K,P,_,O,j,z);return await this.onRunCreate?.(J),await this.onChainStart?.(J),J}async handleChainEnd($,q,K,P,_){let O=this.getRunById(q);if(!O)throw Error("No chain run to end.");if(O.end_time=Date.now(),O.outputs=f2($,"output"),O.events.push({name:"end",time:new Date(O.end_time).toISOString()}),_?.inputs!==void 0)O.inputs=f2(_.inputs,"input");return await this.onChainEnd?.(O),await this._endTrace(O),O}async handleChainError($,q,K,P,_){let O=this.getRunById(q);if(!O)throw Error("No chain run to end.");if(O.end_time=Date.now(),O.error=this.stringifyError($),O.events.push({name:"error",time:new Date(O.end_time).toISOString()}),_?.inputs!==void 0)O.inputs=f2(_.inputs,"input");return await this.onChainError?.(O),await this._endTrace(O),O}_createRunForToolStart($,q,K,P,_,O,j){let z=this._getExecutionOrder(P),J=Date.now(),w={id:K,name:j??$.id[$.id.length-1],parent_run_id:P,start_time:J,serialized:$,events:[{name:"start",time:new Date(J).toISOString()}],inputs:{input:q},execution_order:z,child_execution_order:z,run_type:"tool",child_runs:[],extra:O?{metadata:O}:{},tags:_||[]};return this._addRunToRunMap(w)}async handleToolStart($,q,K,P,_,O,j){let z=this.getRunById(K)??this._createRunForToolStart($,q,K,P,_,O,j);return await this.onRunCreate?.(z),await this.onToolStart?.(z),z}async handleToolEnd($,q){let K=this.getRunById(q);if(!K||K?.run_type!=="tool")throw Error("No tool run to end");return K.end_time=Date.now(),K.outputs={output:$},K.events.push({name:"end",time:new Date(K.end_time).toISOString()}),await this.onToolEnd?.(K),await this._endTrace(K),K}async handleToolError($,q){let K=this.getRunById(q);if(!K||K?.run_type!=="tool")throw Error("No tool run to end");return K.end_time=Date.now(),K.error=this.stringifyError($),K.events.push({name:"error",time:new Date(K.end_time).toISOString()}),await this.onToolError?.(K),await this._endTrace(K),K}async handleAgentAction($,q){let K=this.getRunById(q);if(!K||K?.run_type!=="chain")return;let P=K;P.actions=P.actions||[],P.actions.push($),P.events.push({name:"agent_action",time:new Date().toISOString(),kwargs:{action:$}}),await this.onAgentAction?.(K)}async handleAgentEnd($,q){let K=this.getRunById(q);if(!K||K?.run_type!=="chain")return;K.events.push({name:"agent_end",time:new Date().toISOString(),kwargs:{action:$}}),await this.onAgentEnd?.(K)}_createRunForRetrieverStart($,q,K,P,_,O,j){let z=this._getExecutionOrder(P),J=Date.now(),w={id:K,name:j??$.id[$.id.length-1],parent_run_id:P,start_time:J,serialized:$,events:[{name:"start",time:new Date(J).toISOString()}],inputs:{query:q},execution_order:z,child_execution_order:z,run_type:"retriever",child_runs:[],extra:O?{metadata:O}:{},tags:_||[]};return this._addRunToRunMap(w)}async handleRetrieverStart($,q,K,P,_,O,j){let z=this.getRunById(K)??this._createRunForRetrieverStart($,q,K,P,_,O,j);return await this.onRunCreate?.(z),await this.onRetrieverStart?.(z),z}async handleRetrieverEnd($,q){let K=this.getRunById(q);if(!K||K?.run_type!=="retriever")throw Error("No retriever run to end");return K.end_time=Date.now(),K.outputs={documents:$},K.events.push({name:"end",time:new Date(K.end_time).toISOString()}),await this.onRetrieverEnd?.(K),await this._endTrace(K),K}async handleRetrieverError($,q){let K=this.getRunById(q);if(!K||K?.run_type!=="retriever")throw Error("No retriever run to end");return K.end_time=Date.now(),K.error=this.stringifyError($),K.events.push({name:"error",time:new Date(K.end_time).toISOString()}),await this.onRetrieverError?.(K),await this._endTrace(K),K}async handleText($,q){let K=this.getRunById(q);if(!K||K?.run_type!=="chain")return;K.events.push({name:"text",time:new Date().toISOString(),kwargs:{text:$}}),await this.onText?.(K)}async handleLLMNewToken($,q,K,P,_,O){let j=this.getRunById(K);if(!j||j?.run_type!=="llm")throw Error('Invalid "runId" provided to "handleLLMNewToken" callback.');return j.events.push({name:"new_token",time:new Date().toISOString(),kwargs:{token:$,idx:q,chunk:O?.chunk}}),await this.onLLMNewToken?.(j,$,{chunk:O?.chunk}),j}}var k2=Dq(zf(),1);function yq($,q){return`${$.open}${q}${$.close}`}function z8($,q){try{return JSON.stringify($,null,2)}catch(K){return q}}function Wf($){if(typeof $==="string")return $.trim();if($===null||$===void 0)return $;return z8($,$.toString())}function bK($){if(!$.end_time)return"";let q=$.end_time-$.start_time;if(q<1000)return`${q}ms`;return`${(q/1000).toFixed(2)}s`}var{color:nq}=k2.default;class o1 extends C8{constructor(){super(...arguments);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"console_callback_handler"})}persistRun($){return Promise.resolve()}getParents($){let q=[],K=$;while(K.parent_run_id){let P=this.runMap.get(K.parent_run_id);if(P)q.push(P),K=P;else break}return q}getBreadcrumbs($){let K=[...this.getParents($).reverse(),$].map((P,_,O)=>{let j=`${P.execution_order}:${P.run_type}:${P.name}`;return _===O.length-1?yq(k2.default.bold,j):j}).join(" > ");return yq(nq.grey,K)}onChainStart($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.green,"[chain/start]")} [${q}] Entering Chain run with input: ${z8($.inputs,"[inputs]")}`)}onChainEnd($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.cyan,"[chain/end]")} [${q}] [${bK($)}] Exiting Chain run with output: ${z8($.outputs,"[outputs]")}`)}onChainError($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.red,"[chain/error]")} [${q}] [${bK($)}] Chain run errored with error: ${z8($.error,"[error]")}`)}onLLMStart($){let q=this.getBreadcrumbs($),K="prompts"in $.inputs?{prompts:$.inputs.prompts.map((P)=>P.trim())}:$.inputs;console.log(`${yq(nq.green,"[llm/start]")} [${q}] Entering LLM run with input: ${z8(K,"[inputs]")}`)}onLLMEnd($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.cyan,"[llm/end]")} [${q}] [${bK($)}] Exiting LLM run with output: ${z8($.outputs,"[response]")}`)}onLLMError($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.red,"[llm/error]")} [${q}] [${bK($)}] LLM run errored with error: ${z8($.error,"[error]")}`)}onToolStart($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.green,"[tool/start]")} [${q}] Entering Tool run with input: "${Wf($.inputs.input)}"`)}onToolEnd($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.cyan,"[tool/end]")} [${q}] [${bK($)}] Exiting Tool run with output: "${Wf($.outputs?.output)}"`)}onToolError($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.red,"[tool/error]")} [${q}] [${bK($)}] Tool run errored with error: ${z8($.error,"[error]")}`)}onRetrieverStart($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.green,"[retriever/start]")} [${q}] Entering Retriever run with input: ${z8($.inputs,"[inputs]")}`)}onRetrieverEnd($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.cyan,"[retriever/end]")} [${q}] [${bK($)}] Exiting Retriever run with output: ${z8($.outputs,"[outputs]")}`)}onRetrieverError($){let q=this.getBreadcrumbs($);console.log(`${yq(nq.red,"[retriever/error]")} [${q}] [${bK($)}] Retriever run errored with error: ${z8($.error,"[error]")}`)}onAgentAction($){let q=$,K=this.getBreadcrumbs($);console.log(`${yq(nq.blue,"[agent/action]")} [${K}] Agent selected action: ${z8(q.actions[q.actions.length-1],"[action]")}`)}}function A2($){return!!($&&typeof $==="object"&&("type"in $)&&$.type==="tool_call")}class G2 extends Error{constructor($,q){super($);Object.defineProperty(this,"output",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.output=q}}function Hf($){if(typeof $>"u")return null;try{return JSON.parse($)}catch(O){}let q="",K=[],P=!1,_=!1;for(let O of $){if(P)if(O==='"'&&!_)P=!1;else if(O===`
|
|
87
87
|
`&&!_)O="\\n";else if(O==="\\")_=!_;else _=!1;else if(O==='"')P=!0,_=!1;else if(O==="{")K.push("}");else if(O==="[")K.push("]");else if(O==="}"||O==="]")if(K&&K[K.length-1]===O)K.pop();else return null;q+=O}if(P)q+='"';for(let O=K.length-1;O>=0;O-=1)q+=K[O];try{return JSON.parse(q)}catch(O){return null}}function V2($){return typeof $==="object"&&$!==null&&"type"in $&&typeof $.type==="string"&&"source_type"in $&&($.source_type==="url"||$.source_type==="base64"||$.source_type==="text"||$.source_type==="id")}function Y_($,q){if(typeof $==="string"){if($==="")return q;if(typeof q==="string")return $+q;else if(Array.isArray(q)&&q.some((K)=>V2(K)))return[{type:"text",source_type:"text",text:$},...q];else return[{type:"text",text:$},...q]}else if(Array.isArray(q))return n1($,q)??[...$,...q];else if(q==="")return $;else if(Array.isArray($)&&$.some((K)=>V2(K)))return[...$,{type:"file",source_type:"text",text:q}];else return[...$,{type:"text",text:q}]}function vI($,q){function K(P,_){if(typeof P!=="object"||P===null||P===void 0)return P;if(_>=q){if(Array.isArray(P))return"[Array]";return"[Object]"}if(Array.isArray(P))return P.map((j)=>K(j,_+1));let O={};for(let j of Object.keys(P))O[j]=K(P[j],_+1);return O}return JSON.stringify(K($,0),null,2)}class PK extends _K{get lc_aliases(){return{additional_kwargs:"additional_kwargs",response_metadata:"response_metadata"}}get text(){if(typeof this.content==="string")return this.content;if(!Array.isArray(this.content))return"";return this.content.map(($)=>{if(typeof $==="string")return $;if($.type==="text")return $.text;return""}).join("")}getType(){return this._getType()}constructor($,q){if(typeof $==="string")$={content:$,additional_kwargs:q,response_metadata:{}};if(!$.additional_kwargs)$.additional_kwargs={};if(!$.response_metadata)$.response_metadata={};super($);Object.defineProperty(this,"lc_namespace",{enumerable:!0,configurable:!0,writable:!0,value:["langchain_core","messages"]}),Object.defineProperty(this,"lc_serializable",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"content",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"additional_kwargs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"response_metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=$.name,this.content=$.content,this.additional_kwargs=$.additional_kwargs,this.response_metadata=$.response_metadata,this.id=$.id}toDict(){return{type:this._getType(),data:this.toJSON().kwargs}}static lc_name(){return"BaseMessage"}get _printableFields(){return{id:this.id,content:this.content,name:this.name,additional_kwargs:this.additional_kwargs,response_metadata:this.response_metadata}}_updateId($){this.id=$,this.lc_kwargs.id=$}get[Symbol.toStringTag](){return this.constructor.lc_name()}[Symbol.for("nodejs.util.inspect.custom")]($){if($===null)return this;let q=vI(this._printableFields,Math.max(4,$));return`${this.constructor.lc_name()} ${q}`}}function x8($,q){let K={...$};for(let[P,_]of Object.entries(q))if(K[P]==null)K[P]=_;else if(_==null)continue;else if(typeof K[P]!==typeof _||Array.isArray(K[P])!==Array.isArray(_))throw Error(`field[${P}] already exists in the message chunk, but with a different type.`);else if(typeof K[P]==="string")if(P==="type")continue;else if(["id","name","output_version","model_provider"].includes(P))K[P]=_;else K[P]+=_;else if(typeof K[P]==="object"&&!Array.isArray(K[P]))K[P]=x8(K[P],_);else if(Array.isArray(K[P]))K[P]=n1(K[P],_);else if(K[P]===_)continue;else console.warn(`field[${P}] already exists in this message chunk and value has unsupported type.`);return K}function n1($,q){if($===void 0&&q===void 0)return;else if($===void 0||q===void 0)return $||q;else{let K=[...$];for(let P of q)if(typeof P==="object"&&P!==null&&"index"in P&&typeof P.index==="number"){let _=K.findIndex((O)=>{let j=typeof O==="object",z="index"in O&&O.index===P.index,J="id"in O&&"id"in P&&O?.id===P?.id,w=!("id"in O)||!O?.id||!("id"in P)||!P?.id;return j&&z&&(J||w)});if(_!==-1&&typeof K[_]==="object"&&K[_]!==null)K[_]=x8(K[_],P);else K.push(P)}else if(typeof P==="object"&&P!==null&&"text"in P&&P.text==="")continue;else K.push(P);return K}}class gK extends PK{}class v_ extends gK{constructor($){let q;if(typeof $==="string")q={content:$,tool_calls:[],invalid_tool_calls:[],tool_call_chunks:[]};else if($.tool_call_chunks===void 0||$.tool_call_chunks.length===0)q={...$,tool_calls:$.tool_calls??[],invalid_tool_calls:[],tool_call_chunks:[],usage_metadata:$.usage_metadata!==void 0?$.usage_metadata:void 0};else{let P=($.tool_call_chunks??[]).reduce((j,z)=>{let J=j.findIndex(([w])=>{if("id"in z&&z.id&&"index"in z&&z.index!==void 0)return z.id===w.id&&z.index===w.index;if("id"in z&&z.id)return z.id===w.id;if("index"in z&&z.index!==void 0)return z.index===w.index;return!1});if(J!==-1)j[J].push(z);else j.push([z]);return j},[]),_=[],O=[];for(let j of P){let z={},J=j[0]?.name??"",w=j.map((G)=>G.args||"").join(""),k=w.length?w:"{}",X=j[0]?.id;try{if(z=Hf(k),!X||z===null||typeof z!=="object"||Array.isArray(z))throw Error("Malformed tool call chunk args.");_.push({name:J,args:z,id:X,type:"tool_call"})}catch(G){O.push({name:J,args:k,id:X,error:"Malformed args.",type:"invalid_tool_call"})}}q={...$,tool_calls:_,invalid_tool_calls:O,usage_metadata:$.usage_metadata!==void 0?$.usage_metadata:void 0}}super(q);Object.defineProperty(this,"tool_calls",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"invalid_tool_calls",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"tool_call_chunks",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"usage_metadata",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.tool_call_chunks=q.tool_call_chunks??this.tool_call_chunks,this.tool_calls=q.tool_calls??this.tool_calls,this.invalid_tool_calls=q.invalid_tool_calls??this.invalid_tool_calls,this.usage_metadata=q.usage_metadata}get lc_aliases(){return{...super.lc_aliases,tool_calls:"tool_calls",invalid_tool_calls:"invalid_tool_calls",tool_call_chunks:"tool_call_chunks"}}static lc_name(){return"AIMessageChunk"}_getType(){return"ai"}get _printableFields(){return{...super._printableFields,tool_calls:this.tool_calls,tool_call_chunks:this.tool_call_chunks,invalid_tool_calls:this.invalid_tool_calls,usage_metadata:this.usage_metadata}}concat($){let q={content:Y_(this.content,$.content),additional_kwargs:x8(this.additional_kwargs,$.additional_kwargs),response_metadata:x8(this.response_metadata,$.response_metadata),tool_call_chunks:[],id:this.id??$.id};if(this.tool_call_chunks!==void 0||$.tool_call_chunks!==void 0){let K=n1(this.tool_call_chunks,$.tool_call_chunks);if(K!==void 0&&K.length>0)q.tool_call_chunks=K}if(this.usage_metadata!==void 0||$.usage_metadata!==void 0){let K={...(this.usage_metadata?.input_token_details?.audio!==void 0||$.usage_metadata?.input_token_details?.audio!==void 0)&&{audio:(this.usage_metadata?.input_token_details?.audio??0)+($.usage_metadata?.input_token_details?.audio??0)},...(this.usage_metadata?.input_token_details?.cache_read!==void 0||$.usage_metadata?.input_token_details?.cache_read!==void 0)&&{cache_read:(this.usage_metadata?.input_token_details?.cache_read??0)+($.usage_metadata?.input_token_details?.cache_read??0)},...(this.usage_metadata?.input_token_details?.cache_creation!==void 0||$.usage_metadata?.input_token_details?.cache_creation!==void 0)&&{cache_creation:(this.usage_metadata?.input_token_details?.cache_creation??0)+($.usage_metadata?.input_token_details?.cache_creation??0)}},P={...(this.usage_metadata?.output_token_details?.audio!==void 0||$.usage_metadata?.output_token_details?.audio!==void 0)&&{audio:(this.usage_metadata?.output_token_details?.audio??0)+($.usage_metadata?.output_token_details?.audio??0)},...(this.usage_metadata?.output_token_details?.reasoning!==void 0||$.usage_metadata?.output_token_details?.reasoning!==void 0)&&{reasoning:(this.usage_metadata?.output_token_details?.reasoning??0)+($.usage_metadata?.output_token_details?.reasoning??0)}},_=this.usage_metadata??{input_tokens:0,output_tokens:0,total_tokens:0},O=$.usage_metadata??{input_tokens:0,output_tokens:0,total_tokens:0},j={input_tokens:_.input_tokens+O.input_tokens,output_tokens:_.output_tokens+O.output_tokens,total_tokens:_.total_tokens+O.total_tokens,...Object.keys(K).length>0&&{input_token_details:K},...Object.keys(P).length>0&&{output_token_details:P}};q.usage_metadata=j}return new v_(q)}}function Jf($,q="Human",K="AI"){let P=[];for(let _ of $){let O;if(_._getType()==="human")O=q;else if(_._getType()==="ai")O=K;else if(_._getType()==="system")O="System";else if(_._getType()==="function")O="Function";else if(_._getType()==="tool")O="Tool";else if(_._getType()==="generic")O=_.role;else throw Error(`Got unsupported message type: ${_._getType()}`);let j=_.name?`${_.name}, `:"",z=typeof _.content==="string"?_.content:JSON.stringify(_.content,null,2);P.push(`${O}: ${j}${z}`)}return P.join(`
|
|
@@ -643,5 +643,5 @@ Data: ${JSON.stringify(K.metadata)}
|
|
|
643
643
|
`}`}).join(`
|
|
644
644
|
`)}var s7$=!0,$1$=!1,q1$={check:async()=>({status:"not-applicable",environment:"browser"}),isHealthy:()=>!0};export{wn as validateUuid,BM as validateCharacter,iM as uuidSchema,h7$ as updateWorldSettings,Y0 as unsaltWorldSettings,ji as unsaltSettingValue,lM as truncateToCompleteSentence,JP$ as trimTokens,Dn as toString,tM as toHex,Mn as templateTypeSchema,Nn as styleSchema,WO as stringToUuid,HP$ as splitChunks,un as slice,UM as shouldRespondTemplate,Cn as settingsSchema,yo as setEnv,q1$ as serverHealth,En as secretsSchema,Oi as saltWorldSettings,Pi as saltSettingValue,UH as safeReplacer,e4$ as recentLogs,pn as randomBytes,TP$ as prewarmUuidCache,mP$ as postCreationTemplate,UK as parseKeyValueXml,WP$ as parseJSONObjectFromText,zO as parseBooleanFromText,AP$ as parseAndValidateCharacter,xM as normalizeJsonString,eM as multiStepSummaryTemplate,QM as multiStepDecisionTemplate,FM as messageHandlerTemplate,Gn as messageExampleSchema,kn as mediaSchema,j6 as logger,mo as loadEnvConfig,Sn as knowledgeItemSchema,GP$ as isValidCharacter,$1$ as isNode,bP$ as isMessageMetadata,LP$ as isFragmentMetadata,xP$ as isFragmentMemory,DP$ as isDocumentMetadata,uP$ as isDocumentMemory,gP$ as isDescriptionMetadata,yP$ as isCustomMetadata,Ln as isBuffer,s7$ as isBrowser,I7$ as initializeOnboarding,co as initBrowserEnvironment,aM as imageDescriptionTemplate,uo as hasEnv,R7$ as getWorldSettings,nP$ as getUserServerRole,Mi as getTypedService,y_ as getSalt,XH as getNumberEnv,cP$ as getMemoryText,nM as getLocalServerUrl,b_ as getEnvironment,VK as getEnv,a7$ as getEntityDetails,wP$ as getContentTypeFromMimeType,xo as getBooleanEnv,In as fromString,Rn as fromHex,gn as fromBytes,dM as formatTimestamp,vP$ as formatPosts,zP$ as formatMessages,Q7$ as formatEntities,EP$ as formatActions,CP$ as formatActionNames,iP$ as findWorldsForOwner,PM as findEnvFile,F7$ as findEntityByName,xn as equals,D7$ as encryptedCharacter,O0 as encryptStringValue,P0 as encryptObjectValues,Q4$ as elizaLogger,Vn as directoryItemSchema,L_ as detectEnvironment,y7$ as defineService,L7$ as decryptedCharacter,HO as decryptStringValue,HO as decryptSecret,j0 as decryptObjectValues,a4$ as customLevels,po as currentRuntime,Q8 as createUniqueUuid,Ki as createSettingFromConfig,Ni as createServiceError,Yi as createService,IP$ as createMessageMemory,F7 as createLogger,An as contentSchema,yn as concat,a7 as composePromptFromState,pM as composePrompt,NP$ as composeActionExamples,E7$ as clearSaltCache,hn as characterSchema,cn as byteLength,dP$ as booleanFooter,e7 as asUUID,bn as alloc,YP$ as addHeader,t4$ as __loggerTestHooks,hi as VECTOR_DIMS,V0 as TeeType,G0 as TEEMode,Si as ServiceType,v0 as ServiceBuilder,ZO as Service,en as Semaphore,S0 as SOCKET_MESSAGE_TYPE,X0 as Role,A0 as PlatformPrefix,I6 as ModelType,f0 as MemoryType,Q4 as MODEL_SETTINGS,fO as EventType,fH as Environment,wi as ElizaOS,sH as DefaultMessageService,dn as DatabaseAdapter,F4 as ContentType,a4 as ChannelType,FK as BufferUtils,qJ as BM25,k0 as AgentStatus,KJ as AgentRuntime};
|
|
645
645
|
|
|
646
|
-
//# debugId=
|
|
646
|
+
//# debugId=E750FC09D0A1369264756E2164756E21
|
|
647
647
|
//# sourceMappingURL=index.browser.js.map
|