{"version":3,"file":"custom.cjs","names":["DynamicTool","AsyncLocalStorageProviderSingleton"],"sources":["../../src/tools/custom.ts"],"sourcesContent":["import {\n  patchConfig,\n  pickRunnableConfigKeys,\n  RunnableFunc,\n} from \"@langchain/core/runnables\";\nimport { AsyncLocalStorageProviderSingleton } from \"@langchain/core/singletons\";\nimport { DynamicTool, ToolRunnableConfig } from \"@langchain/core/tools\";\nimport OpenAI from \"openai\";\n\nexport type CustomToolFields = Omit<OpenAI.Responses.CustomTool, \"type\">;\n\nexport function customTool(\n  func: RunnableFunc<string, string, ToolRunnableConfig>,\n  fields: CustomToolFields\n): DynamicTool<string> {\n  return new DynamicTool({\n    ...fields,\n    description: \"\",\n    metadata: {\n      customTool: fields,\n    },\n    func: async (input, runManager, config) =>\n      new Promise<string>((resolve, reject) => {\n        const childConfig = patchConfig(config, {\n          callbacks: runManager?.getChild(),\n        });\n        // oxlint-disable-next-line no-void\n        void AsyncLocalStorageProviderSingleton.runWithConfig(\n          pickRunnableConfigKeys(childConfig),\n          async () => {\n            try {\n              resolve(func(input, childConfig));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        );\n      }),\n  });\n}\n"],"mappings":";;;;AAWA,SAAgB,WACd,MACA,QACqB;AACrB,QAAO,IAAIA,sBAAAA,YAAY;EACrB,GAAG;EACH,aAAa;EACb,UAAU,EACR,YAAY,QACb;EACD,MAAM,OAAO,OAAO,YAAY,WAC9B,IAAI,SAAiB,SAAS,WAAW;GACvC,MAAM,eAAA,GAAA,0BAAA,aAA0B,QAAQ,EACtC,WAAW,YAAY,UAAU,EAClC,CAAC;AAEGC,8BAAAA,mCAAmC,eAAA,GAAA,0BAAA,wBACf,YAAY,EACnC,YAAY;AACV,QAAI;AACF,aAAQ,KAAK,OAAO,YAAY,CAAC;aAC1B,GAAG;AACV,YAAO,EAAE;;KAGd;IACD;EACL,CAAC"}