UNPKG

@langchain/openai

Version:
1 lines 1.82 kB
{"version":3,"file":"custom.cjs","names":["func: RunnableFunc<string, string, ToolRunnableConfig>","fields: CustomToolFields","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 // eslint-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,WACdA,MACAC,QACqB;AACrB,QAAO,IAAIC,mCAAY;EACrB,GAAG;EACH,aAAa;EACb,UAAU,EACR,YAAY,OACb;EACD,MAAM,OAAO,OAAO,YAAY,WAC9B,IAAI,QAAgB,CAAC,SAAS,WAAW;GACvC,MAAM,0DAA0B,QAAQ,EACtC,WAAW,YAAY,UAAU,CAClC,EAAC;GAEGC,+DAAmC,qEACf,YAAY,EACnC,YAAY;AACV,QAAI;KACF,QAAQ,KAAK,OAAO,YAAY,CAAC;IAClC,SAAQ,GAAG;KACV,OAAO,EAAE;IACV;GACF,EACF;EACF;CACJ;AACF"}