@langchain/core
Version:
Core LangChain.js abstractions and schemas
59 lines (57 loc) • 2.41 kB
JavaScript
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
const require_globals = require('./globals.cjs');
const require_callbacks_manager = require('../../callbacks/manager.cjs');
const langsmith = require_rolldown_runtime.__toESM(require("langsmith"));
//#region src/singletons/async_local_storage/index.ts
var MockAsyncLocalStorage = class {
getStore() {
return void 0;
}
run(_store, callback) {
return callback();
}
enterWith(_store) {
return void 0;
}
};
const mockAsyncLocalStorage = new MockAsyncLocalStorage();
const LC_CHILD_KEY = Symbol.for("lc:child_config");
var AsyncLocalStorageProvider = class {
getInstance() {
return require_globals.getGlobalAsyncLocalStorageInstance() ?? mockAsyncLocalStorage;
}
getRunnableConfig() {
const storage = this.getInstance();
return storage.getStore()?.extra?.[LC_CHILD_KEY];
}
runWithConfig(config, callback, avoidCreatingRootRunTree) {
const callbackManager = require_callbacks_manager.CallbackManager._configureSync(config?.callbacks, void 0, config?.tags, void 0, config?.metadata);
const storage = this.getInstance();
const previousValue = storage.getStore();
const parentRunId = callbackManager?.getParentRunId();
const langChainTracer = callbackManager?.handlers?.find((handler) => handler?.name === "langchain_tracer");
let runTree;
if (langChainTracer && parentRunId) runTree = langChainTracer.getRunTreeWithTracingConfig(parentRunId);
else if (!avoidCreatingRootRunTree) runTree = new langsmith.RunTree({
name: "<runnable_lambda>",
tracingEnabled: false
});
if (runTree) runTree.extra = {
...runTree.extra,
[LC_CHILD_KEY]: config
};
if (previousValue !== void 0 && previousValue[require_globals._CONTEXT_VARIABLES_KEY] !== void 0) {
if (runTree === void 0) runTree = {};
runTree[require_globals._CONTEXT_VARIABLES_KEY] = previousValue[require_globals._CONTEXT_VARIABLES_KEY];
}
return storage.run(runTree, callback);
}
initializeGlobalInstance(instance) {
if (require_globals.getGlobalAsyncLocalStorageInstance() === void 0) require_globals.setGlobalAsyncLocalStorageInstance(instance);
}
};
const AsyncLocalStorageProviderSingleton = new AsyncLocalStorageProvider();
//#endregion
exports.AsyncLocalStorageProviderSingleton = AsyncLocalStorageProviderSingleton;
exports.MockAsyncLocalStorage = MockAsyncLocalStorage;
//# sourceMappingURL=index.cjs.map