@langchain/core
Version:
Core LangChain.js abstractions and schemas
1 lines • 4.32 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","names":["_store: any","callback: () => T","getGlobalAsyncLocalStorageInstance","config: any","avoidCreatingRootRunTree?: boolean","CallbackManager","RunTree","_CONTEXT_VARIABLES_KEY","instance: AsyncLocalStorageInterface","setGlobalAsyncLocalStorageInstance"],"sources":["../../../src/singletons/async_local_storage/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { RunTree } from \"langsmith\";\nimport {\n AsyncLocalStorageInterface,\n getGlobalAsyncLocalStorageInstance,\n setGlobalAsyncLocalStorageInstance,\n _CONTEXT_VARIABLES_KEY,\n} from \"./globals.js\";\nimport { CallbackManager } from \"../../callbacks/manager.js\";\nimport { LangChainTracer } from \"../../tracers/tracer_langchain.js\";\n\nexport class MockAsyncLocalStorage implements AsyncLocalStorageInterface {\n getStore(): any {\n return undefined;\n }\n\n run<T>(_store: any, callback: () => T): T {\n return callback();\n }\n\n enterWith(_store: any) {\n return undefined;\n }\n}\n\nconst mockAsyncLocalStorage = new MockAsyncLocalStorage();\n\nconst LC_CHILD_KEY = Symbol.for(\"lc:child_config\");\n\nclass AsyncLocalStorageProvider {\n getInstance(): AsyncLocalStorageInterface {\n return getGlobalAsyncLocalStorageInstance() ?? mockAsyncLocalStorage;\n }\n\n getRunnableConfig() {\n const storage = this.getInstance();\n // this has the runnable config\n // which means that we should also have an instance of a LangChainTracer\n // with the run map prepopulated\n return storage.getStore()?.extra?.[LC_CHILD_KEY];\n }\n\n runWithConfig<T>(\n config: any,\n callback: () => T,\n avoidCreatingRootRunTree?: boolean\n ): T {\n const callbackManager = CallbackManager._configureSync(\n config?.callbacks,\n undefined,\n config?.tags,\n undefined,\n config?.metadata\n );\n const storage = this.getInstance();\n const previousValue = storage.getStore();\n const parentRunId = callbackManager?.getParentRunId();\n\n const langChainTracer = callbackManager?.handlers?.find(\n (handler) => handler?.name === \"langchain_tracer\"\n ) as LangChainTracer | undefined;\n\n let runTree;\n if (langChainTracer && parentRunId) {\n runTree = langChainTracer.getRunTreeWithTracingConfig(parentRunId);\n } else if (!avoidCreatingRootRunTree) {\n runTree = new RunTree({\n name: \"<runnable_lambda>\",\n tracingEnabled: false,\n });\n }\n\n if (runTree) {\n runTree.extra = { ...runTree.extra, [LC_CHILD_KEY]: config };\n }\n\n if (\n previousValue !== undefined &&\n previousValue[_CONTEXT_VARIABLES_KEY] !== undefined\n ) {\n if (runTree === undefined) {\n runTree = {};\n }\n (runTree as any)[_CONTEXT_VARIABLES_KEY] =\n previousValue[_CONTEXT_VARIABLES_KEY];\n }\n\n return storage.run(runTree, callback);\n }\n\n initializeGlobalInstance(instance: AsyncLocalStorageInterface) {\n if (getGlobalAsyncLocalStorageInstance() === undefined) {\n setGlobalAsyncLocalStorageInstance(instance);\n }\n }\n}\n\nconst AsyncLocalStorageProviderSingleton = new AsyncLocalStorageProvider();\n\nexport { AsyncLocalStorageProviderSingleton, type AsyncLocalStorageInterface };\n"],"mappings":";;;;;;AAWA,IAAa,wBAAb,MAAyE;CACvE,WAAgB;AACd,SAAO;CACR;CAED,IAAOA,QAAaC,UAAsB;AACxC,SAAO,UAAU;CAClB;CAED,UAAUD,QAAa;AACrB,SAAO;CACR;AACF;AAED,MAAM,wBAAwB,IAAI;AAElC,MAAM,eAAe,OAAO,IAAI,kBAAkB;AAElD,IAAM,4BAAN,MAAgC;CAC9B,cAA0C;AACxC,SAAOE,oDAAoC,IAAI;CAChD;CAED,oBAAoB;EAClB,MAAM,UAAU,KAAK,aAAa;AAIlC,SAAO,QAAQ,UAAU,EAAE,QAAQ;CACpC;CAED,cACEC,QACAF,UACAG,0BACG;EACH,MAAM,kBAAkBC,0CAAgB,eACtC,QAAQ,WACR,QACA,QAAQ,MACR,QACA,QAAQ,SACT;EACD,MAAM,UAAU,KAAK,aAAa;EAClC,MAAM,gBAAgB,QAAQ,UAAU;EACxC,MAAM,cAAc,iBAAiB,gBAAgB;EAErD,MAAM,kBAAkB,iBAAiB,UAAU,KACjD,CAAC,YAAY,SAAS,SAAS,mBAChC;EAED,IAAI;AACJ,MAAI,mBAAmB,aACrB,UAAU,gBAAgB,4BAA4B,YAAY;WACzD,CAAC,0BACV,UAAU,IAAIC,kBAAQ;GACpB,MAAM;GACN,gBAAgB;EACjB;AAGH,MAAI,SACF,QAAQ,QAAQ;GAAE,GAAG,QAAQ;IAAQ,eAAe;EAAQ;AAG9D,MACE,kBAAkB,UAClB,cAAcC,4CAA4B,QAC1C;AACA,OAAI,YAAY,QACd,UAAU,CAAE;GAEb,QAAgBA,0CACf,cAAcA;EACjB;AAED,SAAO,QAAQ,IAAI,SAAS,SAAS;CACtC;CAED,yBAAyBC,UAAsC;AAC7D,MAAIN,oDAAoC,KAAK,QAC3CO,mDAAmC,SAAS;CAE/C;AACF;AAED,MAAM,qCAAqC,IAAI"}