{"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"}