beeai-framework 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +1 -1
  3. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +1 -1
  4. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +1 -1
  5. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +1 -1
  6. package/dist/adapters/anthropic/backend/chat.d.cts +1 -1
  7. package/dist/adapters/anthropic/backend/chat.d.ts +1 -1
  8. package/dist/adapters/anthropic/backend/embedding.d.cts +1 -1
  9. package/dist/adapters/anthropic/backend/embedding.d.ts +1 -1
  10. package/dist/adapters/azure-openai/backend/chat.d.cts +1 -1
  11. package/dist/adapters/azure-openai/backend/chat.d.ts +1 -1
  12. package/dist/adapters/azure-openai/backend/embedding.d.cts +1 -1
  13. package/dist/adapters/azure-openai/backend/embedding.d.ts +1 -1
  14. package/dist/adapters/dummy/backend/chat.d.cts +1 -1
  15. package/dist/adapters/dummy/backend/chat.d.ts +1 -1
  16. package/dist/adapters/dummy/backend/embedding.d.cts +1 -1
  17. package/dist/adapters/dummy/backend/embedding.d.ts +1 -1
  18. package/dist/adapters/google-vertex/backend/chat.d.cts +1 -1
  19. package/dist/adapters/google-vertex/backend/chat.d.ts +1 -1
  20. package/dist/adapters/google-vertex/backend/embedding.d.cts +1 -1
  21. package/dist/adapters/google-vertex/backend/embedding.d.ts +1 -1
  22. package/dist/adapters/groq/backend/chat.d.cts +1 -1
  23. package/dist/adapters/groq/backend/chat.d.ts +1 -1
  24. package/dist/adapters/groq/backend/embedding.d.cts +1 -1
  25. package/dist/adapters/groq/backend/embedding.d.ts +1 -1
  26. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  27. package/dist/adapters/langchain/backend/chat.d.cts +1 -1
  28. package/dist/adapters/langchain/backend/chat.d.ts +1 -1
  29. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  30. package/dist/adapters/langchain/backend/embedding.d.cts +1 -1
  31. package/dist/adapters/langchain/backend/embedding.d.ts +1 -1
  32. package/dist/adapters/langchain/tools.cjs.map +1 -1
  33. package/dist/adapters/langchain/tools.d.cts +1 -1
  34. package/dist/adapters/langchain/tools.d.ts +1 -1
  35. package/dist/adapters/langchain/tools.js.map +1 -1
  36. package/dist/adapters/ollama/backend/chat.d.cts +1 -1
  37. package/dist/adapters/ollama/backend/chat.d.ts +1 -1
  38. package/dist/adapters/ollama/backend/embedding.d.cts +1 -1
  39. package/dist/adapters/ollama/backend/embedding.d.ts +1 -1
  40. package/dist/adapters/openai/backend/chat.d.cts +1 -1
  41. package/dist/adapters/openai/backend/chat.d.ts +1 -1
  42. package/dist/adapters/openai/backend/embedding.d.cts +1 -1
  43. package/dist/adapters/openai/backend/embedding.d.ts +1 -1
  44. package/dist/adapters/vercel/backend/chat.cjs +4 -2
  45. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  46. package/dist/adapters/vercel/backend/chat.d.cts +1 -1
  47. package/dist/adapters/vercel/backend/chat.d.ts +1 -1
  48. package/dist/adapters/vercel/backend/chat.js +4 -2
  49. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  50. package/dist/adapters/vercel/backend/embedding.d.cts +1 -1
  51. package/dist/adapters/vercel/backend/embedding.d.ts +1 -1
  52. package/dist/adapters/watsonx/backend/chat.cjs +6 -2
  53. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  54. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  55. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  56. package/dist/adapters/watsonx/backend/chat.js +6 -2
  57. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  58. package/dist/adapters/watsonx/backend/embedding.d.cts +1 -1
  59. package/dist/adapters/watsonx/backend/embedding.d.ts +1 -1
  60. package/dist/agent-Bf2FaCKy.d.ts +84 -0
  61. package/dist/agent-Bpt7IFa_.d.cts +84 -0
  62. package/dist/agents/base.d.cts +2 -2
  63. package/dist/agents/base.d.ts +2 -2
  64. package/dist/agents/experimental/remote/agent.cjs +110 -0
  65. package/dist/agents/experimental/remote/agent.cjs.map +1 -0
  66. package/dist/agents/experimental/remote/agent.d.cts +78 -0
  67. package/dist/agents/experimental/remote/agent.d.ts +78 -0
  68. package/dist/agents/experimental/remote/agent.js +108 -0
  69. package/dist/agents/experimental/remote/agent.js.map +1 -0
  70. package/dist/agents/experimental/replan/agent.d.cts +2 -2
  71. package/dist/agents/experimental/replan/agent.d.ts +2 -2
  72. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  73. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  74. package/dist/agents/experimental/streamlit/agent.d.cts +2 -2
  75. package/dist/agents/experimental/streamlit/agent.d.ts +2 -2
  76. package/dist/agents/{bee → react}/agent.cjs +5 -5
  77. package/dist/agents/react/agent.cjs.map +1 -0
  78. package/dist/agents/{bee → react}/agent.d.cts +3 -3
  79. package/dist/agents/{bee → react}/agent.d.ts +3 -3
  80. package/dist/agents/{bee → react}/agent.js +5 -5
  81. package/dist/agents/react/agent.js.map +1 -0
  82. package/dist/agents/{bee → react}/prompts.cjs +18 -18
  83. package/dist/agents/react/prompts.cjs.map +1 -0
  84. package/dist/agents/{bee → react}/prompts.d.cts +10 -10
  85. package/dist/agents/{bee → react}/prompts.d.ts +10 -10
  86. package/dist/agents/{bee → react}/prompts.js +10 -10
  87. package/dist/agents/react/prompts.js.map +1 -0
  88. package/dist/agents/{bee → react}/runners/base.cjs +1 -1
  89. package/dist/agents/{bee → react}/runners/base.cjs.map +1 -1
  90. package/dist/agents/{bee → react}/runners/base.d.cts +3 -3
  91. package/dist/agents/{bee → react}/runners/base.d.ts +3 -3
  92. package/dist/agents/{bee → react}/runners/base.js +1 -1
  93. package/dist/agents/{bee → react}/runners/base.js.map +1 -1
  94. package/dist/agents/{bee → react}/runners/deep-think/prompts.cjs +14 -14
  95. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -0
  96. package/dist/agents/{bee/runners/granite → react/runners/deep-think}/prompts.d.cts +8 -8
  97. package/dist/agents/{bee/runners/granite → react/runners/deep-think}/prompts.d.ts +8 -8
  98. package/dist/agents/{bee → react}/runners/deep-think/prompts.js +9 -9
  99. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -0
  100. package/dist/agents/{bee → react}/runners/deep-think/runner.cjs +10 -10
  101. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -0
  102. package/dist/agents/{bee → react}/runners/deep-think/runner.d.cts +6 -6
  103. package/dist/agents/{bee → react}/runners/deep-think/runner.d.ts +6 -6
  104. package/dist/agents/{bee → react}/runners/deep-think/runner.js +12 -12
  105. package/dist/agents/react/runners/deep-think/runner.js.map +1 -0
  106. package/dist/agents/{bee → react}/runners/default/runner.cjs +10 -10
  107. package/dist/agents/react/runners/default/runner.cjs.map +1 -0
  108. package/dist/agents/{bee → react}/runners/default/runner.d.cts +9 -9
  109. package/dist/agents/{bee → react}/runners/default/runner.d.ts +9 -9
  110. package/dist/agents/{bee → react}/runners/default/runner.js +11 -11
  111. package/dist/agents/react/runners/default/runner.js.map +1 -0
  112. package/dist/agents/{bee → react}/runners/default/runner.spec.cjs +5 -5
  113. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -0
  114. package/dist/agents/{bee → react}/runners/default/runner.spec.js +6 -6
  115. package/dist/agents/react/runners/default/runner.spec.js.map +1 -0
  116. package/dist/agents/{bee → react}/runners/granite/prompts.cjs +14 -14
  117. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -0
  118. package/dist/agents/{bee/runners/deep-think → react/runners/granite}/prompts.d.cts +8 -8
  119. package/dist/agents/{bee/runners/deep-think → react/runners/granite}/prompts.d.ts +8 -8
  120. package/dist/agents/{bee → react}/runners/granite/prompts.js +9 -9
  121. package/dist/agents/react/runners/granite/prompts.js.map +1 -0
  122. package/dist/agents/{bee → react}/runners/granite/runner.cjs +10 -10
  123. package/dist/agents/react/runners/granite/runner.cjs.map +1 -0
  124. package/dist/agents/{bee → react}/runners/granite/runner.d.cts +6 -6
  125. package/dist/agents/{bee → react}/runners/granite/runner.d.ts +6 -6
  126. package/dist/agents/{bee → react}/runners/granite/runner.js +12 -12
  127. package/dist/agents/react/runners/granite/runner.js.map +1 -0
  128. package/dist/agents/{bee → react}/types.d.cts +46 -46
  129. package/dist/agents/{bee → react}/types.d.ts +46 -46
  130. package/dist/agents/toolCalling/agent.cjs +208 -0
  131. package/dist/agents/toolCalling/agent.cjs.map +1 -0
  132. package/dist/agents/toolCalling/agent.d.cts +70 -0
  133. package/dist/agents/toolCalling/agent.d.ts +70 -0
  134. package/dist/agents/toolCalling/agent.js +206 -0
  135. package/dist/agents/toolCalling/agent.js.map +1 -0
  136. package/dist/agents/toolCalling/prompts.cjs +65 -0
  137. package/dist/agents/toolCalling/prompts.cjs.map +1 -0
  138. package/dist/agents/toolCalling/prompts.d.cts +49 -0
  139. package/dist/agents/toolCalling/prompts.d.ts +49 -0
  140. package/dist/agents/toolCalling/prompts.js +62 -0
  141. package/dist/agents/toolCalling/prompts.js.map +1 -0
  142. package/dist/agents/toolCalling/types.cjs +4 -0
  143. package/dist/agents/toolCalling/types.cjs.map +1 -0
  144. package/dist/agents/toolCalling/types.d.cts +66 -0
  145. package/dist/agents/toolCalling/types.d.ts +66 -0
  146. package/dist/agents/toolCalling/types.js +3 -0
  147. package/dist/agents/toolCalling/types.js.map +1 -0
  148. package/dist/agents/types.d.cts +2 -2
  149. package/dist/agents/types.d.ts +2 -2
  150. package/dist/backend/backend.d.cts +1 -1
  151. package/dist/backend/backend.d.ts +1 -1
  152. package/dist/backend/chat.cjs +3 -0
  153. package/dist/backend/chat.cjs.map +1 -1
  154. package/dist/backend/chat.d.cts +3 -2
  155. package/dist/backend/chat.d.ts +3 -2
  156. package/dist/backend/chat.js +3 -0
  157. package/dist/backend/chat.js.map +1 -1
  158. package/dist/backend/core.d.cts +1 -1
  159. package/dist/backend/core.d.ts +1 -1
  160. package/dist/backend/embedding.d.cts +1 -1
  161. package/dist/backend/embedding.d.ts +1 -1
  162. package/dist/backend/message.cjs +9 -0
  163. package/dist/backend/message.cjs.map +1 -1
  164. package/dist/backend/message.d.cts +2 -0
  165. package/dist/backend/message.d.ts +2 -0
  166. package/dist/backend/message.js +9 -0
  167. package/dist/backend/message.js.map +1 -1
  168. package/dist/{base-Csr9guq2.d.cts → base-daM6fHUP.d.cts} +1 -1
  169. package/dist/{base-DHhpWHQm.d.ts → base-mmG-8Pk9.d.ts} +1 -1
  170. package/dist/context.d.cts +1 -1
  171. package/dist/context.d.ts +1 -1
  172. package/dist/emitter/emitter.d.cts +1 -1
  173. package/dist/emitter/emitter.d.ts +1 -1
  174. package/dist/emitter/types.d.cts +1 -1
  175. package/dist/emitter/types.d.ts +1 -1
  176. package/dist/index.d.cts +2 -2
  177. package/dist/index.d.ts +2 -2
  178. package/dist/instrumentation/create-telemetry-middleware.cjs.map +1 -1
  179. package/dist/instrumentation/create-telemetry-middleware.d.cts +1 -1
  180. package/dist/instrumentation/create-telemetry-middleware.d.ts +1 -1
  181. package/dist/instrumentation/create-telemetry-middleware.js.map +1 -1
  182. package/dist/instrumentation/helpers/utils.d.cts +1 -1
  183. package/dist/instrumentation/helpers/utils.d.ts +1 -1
  184. package/dist/internals/fetcher.d.cts +1 -1
  185. package/dist/internals/fetcher.d.ts +1 -1
  186. package/dist/memory/summarizeMemory.d.cts +1 -1
  187. package/dist/memory/summarizeMemory.d.ts +1 -1
  188. package/dist/parsers/linePrefix.d.cts +1 -1
  189. package/dist/parsers/linePrefix.d.ts +1 -1
  190. package/dist/tools/arxiv.d.cts +1 -1
  191. package/dist/tools/arxiv.d.ts +1 -1
  192. package/dist/tools/base.d.cts +1 -1
  193. package/dist/tools/base.d.ts +1 -1
  194. package/dist/tools/calculator.d.cts +1 -1
  195. package/dist/tools/calculator.d.ts +1 -1
  196. package/dist/tools/custom.d.cts +1 -1
  197. package/dist/tools/custom.d.ts +1 -1
  198. package/dist/tools/database/elasticsearch.d.cts +1 -1
  199. package/dist/tools/database/elasticsearch.d.ts +1 -1
  200. package/dist/tools/database/milvus.d.cts +1 -1
  201. package/dist/tools/database/milvus.d.ts +1 -1
  202. package/dist/tools/database/sql.d.cts +1 -1
  203. package/dist/tools/database/sql.d.ts +1 -1
  204. package/dist/tools/llm.d.cts +1 -1
  205. package/dist/tools/llm.d.ts +1 -1
  206. package/dist/tools/mcp.d.cts +1 -1
  207. package/dist/tools/mcp.d.ts +1 -1
  208. package/dist/tools/openapi.d.cts +1 -1
  209. package/dist/tools/openapi.d.ts +1 -1
  210. package/dist/tools/python/output.d.cts +1 -1
  211. package/dist/tools/python/output.d.ts +1 -1
  212. package/dist/tools/python/python.d.cts +1 -1
  213. package/dist/tools/python/python.d.ts +1 -1
  214. package/dist/tools/search/base.d.cts +1 -1
  215. package/dist/tools/search/base.d.ts +1 -1
  216. package/dist/tools/search/duckDuckGoSearch.d.cts +1 -1
  217. package/dist/tools/search/duckDuckGoSearch.d.ts +1 -1
  218. package/dist/tools/search/googleSearch.d.cts +1 -1
  219. package/dist/tools/search/googleSearch.d.ts +1 -1
  220. package/dist/tools/search/searXNGSearch.d.cts +1 -1
  221. package/dist/tools/search/searXNGSearch.d.ts +1 -1
  222. package/dist/tools/search/wikipedia.d.cts +1 -1
  223. package/dist/tools/search/wikipedia.d.ts +1 -1
  224. package/dist/tools/similarity.d.cts +1 -1
  225. package/dist/tools/similarity.d.ts +1 -1
  226. package/dist/tools/weather/openMeteo.d.cts +1 -1
  227. package/dist/tools/weather/openMeteo.d.ts +1 -1
  228. package/dist/tools/web/webCrawler.d.cts +1 -1
  229. package/dist/tools/web/webCrawler.d.ts +1 -1
  230. package/dist/version.cjs +1 -1
  231. package/dist/version.js +1 -1
  232. package/dist/workflows/agent.cjs +2 -2
  233. package/dist/workflows/agent.cjs.map +1 -1
  234. package/dist/workflows/agent.d.cts +6 -6
  235. package/dist/workflows/agent.d.ts +6 -6
  236. package/dist/workflows/agent.js +2 -2
  237. package/dist/workflows/agent.js.map +1 -1
  238. package/dist/workflows/workflow.d.cts +1 -1
  239. package/dist/workflows/workflow.d.ts +1 -1
  240. package/package.json +20 -12
  241. package/dist/agent-DNfflu8t.d.ts +0 -84
  242. package/dist/agent-wkCuP7e1.d.cts +0 -84
  243. package/dist/agents/bee/agent.cjs.map +0 -1
  244. package/dist/agents/bee/agent.js.map +0 -1
  245. package/dist/agents/bee/prompts.cjs.map +0 -1
  246. package/dist/agents/bee/prompts.js.map +0 -1
  247. package/dist/agents/bee/runners/deep-think/prompts.cjs.map +0 -1
  248. package/dist/agents/bee/runners/deep-think/prompts.js.map +0 -1
  249. package/dist/agents/bee/runners/deep-think/runner.cjs.map +0 -1
  250. package/dist/agents/bee/runners/deep-think/runner.js.map +0 -1
  251. package/dist/agents/bee/runners/default/runner.cjs.map +0 -1
  252. package/dist/agents/bee/runners/default/runner.js.map +0 -1
  253. package/dist/agents/bee/runners/default/runner.spec.cjs.map +0 -1
  254. package/dist/agents/bee/runners/default/runner.spec.js.map +0 -1
  255. package/dist/agents/bee/runners/granite/prompts.cjs.map +0 -1
  256. package/dist/agents/bee/runners/granite/prompts.js.map +0 -1
  257. package/dist/agents/bee/runners/granite/runner.cjs.map +0 -1
  258. package/dist/agents/bee/runners/granite/runner.js.map +0 -1
  259. package/dist/agents/{bee → react}/runners/default/runner.spec.d.cts +0 -0
  260. package/dist/agents/{bee → react}/runners/default/runner.spec.d.ts +0 -0
  261. package/dist/agents/{bee → react}/types.cjs +0 -0
  262. package/dist/agents/{bee → react}/types.cjs.map +0 -0
  263. package/dist/agents/{bee → react}/types.js +0 -0
  264. package/dist/agents/{bee → react}/types.js.map +0 -0
  265. package/dist/{emitter-l0W9gC1A.d.ts → emitter-BxVxGBbJ.d.ts} +1 -1
  266. package/dist/{emitter-BWtGHYn0.d.cts → emitter-C9EN5B0j.d.cts} +1 -1
package/README.md CHANGED
@@ -128,7 +128,7 @@ We are using GitHub Issues to manage public bugs. We keep a close eye on this, s
128
128
 
129
129
  ## Code of conduct
130
130
 
131
- This project and everyone participating in it are governed by the [Code of Conduct](./CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please read the [full text](./CODE_OF_CONDUCT.md) so that you can read which actions may or may not be tolerated.
131
+ This project and everyone participating in it are governed by the [Code of Conduct](/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please read the [full text](/CODE_OF_CONDUCT.md) so that you can read which actions may or may not be tolerated.
132
132
 
133
133
  ## Legal notice
134
134
 
@@ -9,7 +9,7 @@ import '../../../backend/chat.cjs';
9
9
  import '../../../backend/message.cjs';
10
10
  import 'ai';
11
11
  import '../../../context.cjs';
12
- import '../../../emitter-BWtGHYn0.cjs';
12
+ import '../../../emitter-C9EN5B0j.cjs';
13
13
  import '../../../internals/helpers/promise.cjs';
14
14
  import '../../../errors.cjs';
15
15
  import 'promise-based-task';
@@ -9,7 +9,7 @@ import '../../../backend/chat.js';
9
9
  import '../../../backend/message.js';
10
10
  import 'ai';
11
11
  import '../../../context.js';
12
- import '../../../emitter-l0W9gC1A.js';
12
+ import '../../../emitter-BxVxGBbJ.js';
13
13
  import '../../../internals/helpers/promise.js';
14
14
  import '../../../errors.js';
15
15
  import 'promise-based-task';
@@ -3,7 +3,7 @@ import { AmazonBedrockProvider } from '@ai-sdk/amazon-bedrock';
3
3
  import { AmazonBedrockClient, AmazonBedrockClientSettings } from './client.cjs';
4
4
  import '../../../backend/embedding.cjs';
5
5
  import '../../../context.cjs';
6
- import '../../../emitter-BWtGHYn0.cjs';
6
+ import '../../../emitter-C9EN5B0j.cjs';
7
7
  import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import '../../../internals/serializable.cjs';
@@ -3,7 +3,7 @@ import { AmazonBedrockProvider } from '@ai-sdk/amazon-bedrock';
3
3
  import { AmazonBedrockClient, AmazonBedrockClientSettings } from './client.js';
4
4
  import '../../../backend/embedding.js';
5
5
  import '../../../context.js';
6
- import '../../../emitter-l0W9gC1A.js';
6
+ import '../../../emitter-BxVxGBbJ.js';
7
7
  import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import '../../../internals/serializable.js';
@@ -8,7 +8,7 @@ import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import 'ai';
10
10
  import '../../../context.cjs';
11
- import '../../../emitter-BWtGHYn0.cjs';
11
+ import '../../../emitter-C9EN5B0j.cjs';
12
12
  import '../../../internals/helpers/promise.cjs';
13
13
  import '../../../errors.cjs';
14
14
  import 'promise-based-task';
@@ -8,7 +8,7 @@ import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import 'ai';
10
10
  import '../../../context.js';
11
- import '../../../emitter-l0W9gC1A.js';
11
+ import '../../../emitter-BxVxGBbJ.js';
12
12
  import '../../../internals/helpers/promise.js';
13
13
  import '../../../errors.js';
14
14
  import 'promise-based-task';
@@ -3,7 +3,7 @@ import { AnthropicClientSettings, AnthropicClient } from './client.cjs';
3
3
  import { AnthropicProvider } from '@ai-sdk/anthropic';
4
4
  import '../../../backend/embedding.cjs';
5
5
  import '../../../context.cjs';
6
- import '../../../emitter-BWtGHYn0.cjs';
6
+ import '../../../emitter-C9EN5B0j.cjs';
7
7
  import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import '../../../internals/serializable.cjs';
@@ -3,7 +3,7 @@ import { AnthropicClientSettings, AnthropicClient } from './client.js';
3
3
  import { AnthropicProvider } from '@ai-sdk/anthropic';
4
4
  import '../../../backend/embedding.js';
5
5
  import '../../../context.js';
6
- import '../../../emitter-l0W9gC1A.js';
6
+ import '../../../emitter-BxVxGBbJ.js';
7
7
  import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import '../../../internals/serializable.js';
@@ -8,7 +8,7 @@ import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import 'ai';
10
10
  import '../../../context.cjs';
11
- import '../../../emitter-BWtGHYn0.cjs';
11
+ import '../../../emitter-C9EN5B0j.cjs';
12
12
  import '../../../internals/helpers/promise.cjs';
13
13
  import '../../../errors.cjs';
14
14
  import 'promise-based-task';
@@ -8,7 +8,7 @@ import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import 'ai';
10
10
  import '../../../context.js';
11
- import '../../../emitter-l0W9gC1A.js';
11
+ import '../../../emitter-BxVxGBbJ.js';
12
12
  import '../../../internals/helpers/promise.js';
13
13
  import '../../../errors.js';
14
14
  import 'promise-based-task';
@@ -3,7 +3,7 @@ import { AzureOpenAIClient, AzureOpenAIClientSettings } from './client.cjs';
3
3
  import { AzureOpenAIProvider } from '@ai-sdk/azure';
4
4
  import '../../../backend/embedding.cjs';
5
5
  import '../../../context.cjs';
6
- import '../../../emitter-BWtGHYn0.cjs';
6
+ import '../../../emitter-C9EN5B0j.cjs';
7
7
  import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import '../../../internals/serializable.cjs';
@@ -3,7 +3,7 @@ import { AzureOpenAIClient, AzureOpenAIClientSettings } from './client.js';
3
3
  import { AzureOpenAIProvider } from '@ai-sdk/azure';
4
4
  import '../../../backend/embedding.js';
5
5
  import '../../../context.js';
6
- import '../../../emitter-l0W9gC1A.js';
6
+ import '../../../emitter-BxVxGBbJ.js';
7
7
  import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import '../../../internals/serializable.js';
@@ -1,6 +1,6 @@
1
1
  import { ChatModel, ChatModelParameters, ChatModelEvents, ChatModelInput, ChatModelOutput, ChatModelCache } from '../../../backend/chat.cjs';
2
2
  import { GetRunContext } from '../../../context.cjs';
3
- import { E as Emitter } from '../../../emitter-BWtGHYn0.cjs';
3
+ import { E as Emitter } from '../../../emitter-C9EN5B0j.cjs';
4
4
  import '../../../backend/message.cjs';
5
5
  import '../../../internals/serializable.cjs';
6
6
  import '../../../internals/types.cjs';
@@ -1,6 +1,6 @@
1
1
  import { ChatModel, ChatModelParameters, ChatModelEvents, ChatModelInput, ChatModelOutput, ChatModelCache } from '../../../backend/chat.js';
2
2
  import { GetRunContext } from '../../../context.js';
3
- import { E as Emitter } from '../../../emitter-l0W9gC1A.js';
3
+ import { E as Emitter } from '../../../emitter-BxVxGBbJ.js';
4
4
  import '../../../backend/message.js';
5
5
  import '../../../internals/serializable.js';
6
6
  import '../../../internals/types.js';
@@ -1,5 +1,5 @@
1
1
  import { GetRunContext } from '../../../context.cjs';
2
- import { E as Emitter } from '../../../emitter-BWtGHYn0.cjs';
2
+ import { E as Emitter } from '../../../emitter-C9EN5B0j.cjs';
3
3
  import { EmbeddingModel, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.cjs';
4
4
  import '../../../internals/serializable.cjs';
5
5
  import '../../../internals/types.cjs';
@@ -1,5 +1,5 @@
1
1
  import { GetRunContext } from '../../../context.js';
2
- import { E as Emitter } from '../../../emitter-l0W9gC1A.js';
2
+ import { E as Emitter } from '../../../emitter-BxVxGBbJ.js';
3
3
  import { EmbeddingModel, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.js';
4
4
  import '../../../internals/serializable.js';
5
5
  import '../../../internals/types.js';
@@ -8,7 +8,7 @@ import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import 'ai';
10
10
  import '../../../context.cjs';
11
- import '../../../emitter-BWtGHYn0.cjs';
11
+ import '../../../emitter-C9EN5B0j.cjs';
12
12
  import '../../../internals/helpers/promise.cjs';
13
13
  import '../../../errors.cjs';
14
14
  import 'promise-based-task';
@@ -8,7 +8,7 @@ import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import 'ai';
10
10
  import '../../../context.js';
11
- import '../../../emitter-l0W9gC1A.js';
11
+ import '../../../emitter-BxVxGBbJ.js';
12
12
  import '../../../internals/helpers/promise.js';
13
13
  import '../../../errors.js';
14
14
  import 'promise-based-task';
@@ -7,7 +7,7 @@ import '../../../internals/types.cjs';
7
7
  import '../../../internals/helpers/guards.cjs';
8
8
  import '../../../backend/embedding.cjs';
9
9
  import '../../../context.cjs';
10
- import '../../../emitter-BWtGHYn0.cjs';
10
+ import '../../../emitter-C9EN5B0j.cjs';
11
11
  import '../../../internals/helpers/promise.cjs';
12
12
  import '../../../errors.cjs';
13
13
  import '../../../backend/utils.cjs';
@@ -7,7 +7,7 @@ import '../../../internals/types.js';
7
7
  import '../../../internals/helpers/guards.js';
8
8
  import '../../../backend/embedding.js';
9
9
  import '../../../context.js';
10
- import '../../../emitter-l0W9gC1A.js';
10
+ import '../../../emitter-BxVxGBbJ.js';
11
11
  import '../../../internals/helpers/promise.js';
12
12
  import '../../../errors.js';
13
13
  import '../../../backend/utils.js';
@@ -8,7 +8,7 @@ import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import 'ai';
10
10
  import '../../../context.cjs';
11
- import '../../../emitter-BWtGHYn0.cjs';
11
+ import '../../../emitter-C9EN5B0j.cjs';
12
12
  import '../../../internals/helpers/promise.cjs';
13
13
  import '../../../errors.cjs';
14
14
  import 'promise-based-task';
@@ -8,7 +8,7 @@ import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import 'ai';
10
10
  import '../../../context.js';
11
- import '../../../emitter-l0W9gC1A.js';
11
+ import '../../../emitter-BxVxGBbJ.js';
12
12
  import '../../../internals/helpers/promise.js';
13
13
  import '../../../errors.js';
14
14
  import 'promise-based-task';
@@ -3,7 +3,7 @@ import { GroqClientSettings, GroqClient } from './client.cjs';
3
3
  import { GroqProvider } from '@ai-sdk/groq';
4
4
  import '../../../backend/embedding.cjs';
5
5
  import '../../../context.cjs';
6
- import '../../../emitter-BWtGHYn0.cjs';
6
+ import '../../../emitter-C9EN5B0j.cjs';
7
7
  import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import '../../../internals/serializable.cjs';
@@ -3,7 +3,7 @@ import { GroqClientSettings, GroqClient } from './client.js';
3
3
  import { GroqProvider } from '@ai-sdk/groq';
4
4
  import '../../../backend/embedding.js';
5
5
  import '../../../context.js';
6
- import '../../../emitter-l0W9gC1A.js';
6
+ import '../../../emitter-BxVxGBbJ.js';
7
7
  import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import '../../../internals/serializable.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["chat.ts"],"names":["LangChainChatModel","ChatModel","emitter","constructor","lcLLM","parameters","Emitter","root","child","namespace","creator","modelId","_modelType","providerId","_create","input","run","preparedInput","prepareInput","response","bindTools","tools","invoke","messages","options","prepareOutput","_createStream","stream","chunk","map","msg","role","content","type","runId","stop","stopSequences","signal","tool_choice","toolChoice","output","push","AssistantMessage","message","text","image_url","toString","ValueError","usage","totalTokens","usage_metadata","total_tokens","promptTokens","input_tokens","completionTokens","output_tokens","response_metadata","stop_sequence","ChatModelOutput","_createStructure","object","withStructuredOutput","schema","method","strict","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"chat.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChatModel,\n ChatModelEmitter,\n ChatModelFinishReason,\n ChatModelInput,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n ChatModelOutput,\n ChatModelParameters,\n ChatModelUsage,\n} from \"@/backend/chat.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport {\n BaseChatModel,\n BaseChatModelCallOptions,\n} from \"@langchain/core/language_models/chat_models\";\nimport { AIMessageChunk, BaseMessageLike } from \"@langchain/core/messages\";\nimport { AssistantMessage, Message } from \"@/backend/message.js\";\nimport { ValueError } from \"@/errors.js\";\n\nexport class LangChainChatModel extends ChatModel {\n public readonly emitter: ChatModelEmitter;\n\n constructor(\n protected readonly lcLLM: BaseChatModel,\n public readonly parameters: ChatModelParameters = {},\n ) {\n super();\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", \"langchain\", \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.lcLLM._modelType();\n }\n\n get providerId() {\n return \"langchain\";\n }\n\n protected async _create(input: ChatModelInput, run: RunContext<this>): Promise<ChatModelOutput> {\n const preparedInput = this.prepareInput(input, run);\n const response = this.lcLLM.bindTools\n ? await this.lcLLM\n .bindTools(input.tools ?? [])\n .invoke(preparedInput.messages, preparedInput.options)\n : await this.lcLLM.invoke(preparedInput.messages, preparedInput.options);\n\n return this.prepareOutput(response);\n }\n\n protected async *_createStream(\n input: ChatModelInput,\n run: RunContext<this>,\n ): AsyncGenerator<ChatModelOutput> {\n const preparedInput = this.prepareInput(input, run);\n\n const stream = this.lcLLM.bindTools\n ? await this.lcLLM\n .bindTools(input.tools ?? [])\n .stream(preparedInput.messages, preparedInput.options)\n : await this.lcLLM.stream(preparedInput.messages, preparedInput.options);\n\n for await (const response of stream) {\n const chunk = this.prepareOutput(response);\n yield chunk;\n }\n }\n\n protected prepareInput(input: ChatModelInput, run: RunContext<this>) {\n const messages: BaseMessageLike[] = input.messages.map((msg) => ({\n role: msg.role,\n content: msg.content,\n type: msg.role,\n // TODO\n }));\n\n const options: BaseChatModelCallOptions = {\n runId: run.runId,\n stop: input.stopSequences,\n signal: run.signal,\n tool_choice: input.toolChoice,\n };\n\n return { messages, options };\n }\n\n protected prepareOutput(output: AIMessageChunk) {\n const messages: Message[] = [];\n if (typeof output.content === \"string\") {\n messages.push(new AssistantMessage(output.content));\n } else {\n messages.push(\n new AssistantMessage(\n output.content.map((message) => {\n if (message.type === \"text\") {\n return { type: \"text\", text: message.text };\n } else if (message.type === \"image_url\") {\n return { type: \"text\", text: message.image_url.toString() };\n } else {\n throw new ValueError(`Unknown message type \"${message.type}\"`);\n }\n }),\n ),\n );\n }\n\n const usage: ChatModelUsage = {\n totalTokens: output.usage_metadata?.total_tokens ?? 0,\n promptTokens: output.usage_metadata?.input_tokens ?? 0,\n completionTokens: output.usage_metadata?.output_tokens ?? 0,\n };\n\n const stop: ChatModelFinishReason = output.response_metadata.stop_sequence || \"stop\";\n\n return new ChatModelOutput(messages, usage, stop);\n }\n\n protected async _createStructure<T>(\n input: ChatModelObjectInput<T>,\n run: RunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const { messages, options } = this.prepareInput(input, run);\n const object = this.lcLLM\n .withStructuredOutput(input.schema, {\n method: \"jsonSchema\",\n strict: false,\n })\n .invoke(messages, options);\n\n return { object: object as T };\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), emitter: this.emitter, lcLLM: this.lcLLM };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["chat.ts"],"names":["LangChainChatModel","ChatModel","emitter","constructor","lcLLM","parameters","Emitter","root","child","namespace","creator","modelId","_modelType","providerId","_create","input","run","preparedInput","prepareInput","response","bindTools","tools","invoke","messages","options","prepareOutput","_createStream","stream","chunk","map","msg","role","content","type","runId","stop","stopSequences","signal","tool_choice","toolChoice","output","push","AssistantMessage","message","text","image_url","toString","ValueError","usage","totalTokens","usage_metadata","total_tokens","promptTokens","input_tokens","completionTokens","output_tokens","response_metadata","stop_sequence","ChatModelOutput","_createStructure","object","withStructuredOutput","schema","method","strict","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"chat.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChatModel,\n ChatModelEmitter,\n ChatModelFinishReason,\n ChatModelInput,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n ChatModelOutput,\n ChatModelParameters,\n ChatModelUsage,\n} from \"@/backend/chat.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport {\n BaseChatModel,\n BaseChatModelCallOptions,\n} from \"@langchain/core/language_models/chat_models\";\nimport { AIMessageChunk, BaseMessageLike } from \"@langchain/core/messages\";\nimport { AssistantMessage, Message } from \"@/backend/message.js\";\nimport { ValueError } from \"@/errors.js\";\n\nexport class LangChainChatModel extends ChatModel {\n public readonly emitter: ChatModelEmitter;\n\n constructor(\n protected readonly lcLLM: BaseChatModel,\n public readonly parameters: ChatModelParameters = {},\n ) {\n super();\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", \"langchain\", \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.lcLLM._modelType();\n }\n\n get providerId() {\n return \"langchain\";\n }\n\n protected async _create(input: ChatModelInput, run: RunContext<this>): Promise<ChatModelOutput> {\n const preparedInput = this.prepareInput(input, run);\n const response = this.lcLLM.bindTools\n ? await this.lcLLM\n .bindTools(input.tools ?? [])\n .invoke(preparedInput.messages, preparedInput.options)\n : await this.lcLLM.invoke(preparedInput.messages, preparedInput.options);\n\n return this.prepareOutput(response);\n }\n\n protected async *_createStream(\n input: ChatModelInput,\n run: RunContext<this>,\n ): AsyncGenerator<ChatModelOutput> {\n const preparedInput = this.prepareInput(input, run);\n\n const stream = this.lcLLM.bindTools\n ? await this.lcLLM\n .bindTools(input.tools ?? [])\n .stream(preparedInput.messages, preparedInput.options)\n : await this.lcLLM.stream(preparedInput.messages, preparedInput.options);\n\n for await (const response of stream) {\n const chunk = this.prepareOutput(response);\n yield chunk;\n }\n }\n\n protected prepareInput(input: ChatModelInput, run: RunContext<this>) {\n const messages: BaseMessageLike[] = input.messages.map((msg) => ({\n role: msg.role,\n content: msg.content,\n type: msg.role,\n // TODO\n }));\n\n const options: BaseChatModelCallOptions = {\n runId: run.runId,\n stop: input.stopSequences,\n signal: run.signal,\n tool_choice: input.toolChoice,\n };\n\n return { messages, options };\n }\n\n protected prepareOutput(output: AIMessageChunk) {\n const messages: Message[] = [];\n if (typeof output.content === \"string\") {\n messages.push(new AssistantMessage(output.content));\n } else {\n messages.push(\n new AssistantMessage(\n output.content.map((message) => {\n if (message.type === \"text\") {\n return { type: \"text\", text: message.text };\n } else if (message.type === \"image_url\") {\n return { type: \"text\", text: message.image_url.toString() };\n } else {\n throw new ValueError(`Unknown message type \"${message.type}\"`);\n }\n }),\n ),\n );\n }\n\n const usage: ChatModelUsage = {\n totalTokens: output.usage_metadata?.total_tokens ?? 0,\n promptTokens: output.usage_metadata?.input_tokens ?? 0,\n completionTokens: output.usage_metadata?.output_tokens ?? 0,\n };\n\n const stop: ChatModelFinishReason = output.response_metadata.stop_sequence || \"stop\";\n\n return new ChatModelOutput(messages, usage, stop);\n }\n\n protected async _createStructure<T>(\n input: ChatModelObjectInput<T>,\n run: RunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const { messages, options } = this.prepareInput(input, run);\n const object = this.lcLLM\n .withStructuredOutput<any>(input.schema, {\n method: \"jsonSchema\",\n strict: false,\n })\n .invoke(messages, options);\n\n return { object: object as T };\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), emitter: this.emitter, lcLLM: this.lcLLM };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -7,7 +7,7 @@ import '../../../internals/serializable.cjs';
7
7
  import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import 'ai';
10
- import '../../../emitter-BWtGHYn0.cjs';
10
+ import '../../../emitter-C9EN5B0j.cjs';
11
11
  import '../../../errors.cjs';
12
12
  import 'promise-based-task';
13
13
  import '../../../cache/base.cjs';
@@ -7,7 +7,7 @@ import '../../../internals/serializable.js';
7
7
  import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import 'ai';
10
- import '../../../emitter-l0W9gC1A.js';
10
+ import '../../../emitter-BxVxGBbJ.js';
11
11
  import '../../../errors.js';
12
12
  import 'promise-based-task';
13
13
  import '../../../cache/base.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["chat.ts"],"names":["LangChainChatModel","ChatModel","emitter","constructor","lcLLM","parameters","Emitter","root","child","namespace","creator","modelId","_modelType","providerId","_create","input","run","preparedInput","prepareInput","response","bindTools","tools","invoke","messages","options","prepareOutput","_createStream","stream","chunk","map","msg","role","content","type","runId","stop","stopSequences","signal","tool_choice","toolChoice","output","push","AssistantMessage","message","text","image_url","toString","ValueError","usage","totalTokens","usage_metadata","total_tokens","promptTokens","input_tokens","completionTokens","output_tokens","response_metadata","stop_sequence","ChatModelOutput","_createStructure","object","withStructuredOutput","schema","method","strict","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"chat.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChatModel,\n ChatModelEmitter,\n ChatModelFinishReason,\n ChatModelInput,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n ChatModelOutput,\n ChatModelParameters,\n ChatModelUsage,\n} from \"@/backend/chat.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport {\n BaseChatModel,\n BaseChatModelCallOptions,\n} from \"@langchain/core/language_models/chat_models\";\nimport { AIMessageChunk, BaseMessageLike } from \"@langchain/core/messages\";\nimport { AssistantMessage, Message } from \"@/backend/message.js\";\nimport { ValueError } from \"@/errors.js\";\n\nexport class LangChainChatModel extends ChatModel {\n public readonly emitter: ChatModelEmitter;\n\n constructor(\n protected readonly lcLLM: BaseChatModel,\n public readonly parameters: ChatModelParameters = {},\n ) {\n super();\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", \"langchain\", \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.lcLLM._modelType();\n }\n\n get providerId() {\n return \"langchain\";\n }\n\n protected async _create(input: ChatModelInput, run: RunContext<this>): Promise<ChatModelOutput> {\n const preparedInput = this.prepareInput(input, run);\n const response = this.lcLLM.bindTools\n ? await this.lcLLM\n .bindTools(input.tools ?? [])\n .invoke(preparedInput.messages, preparedInput.options)\n : await this.lcLLM.invoke(preparedInput.messages, preparedInput.options);\n\n return this.prepareOutput(response);\n }\n\n protected async *_createStream(\n input: ChatModelInput,\n run: RunContext<this>,\n ): AsyncGenerator<ChatModelOutput> {\n const preparedInput = this.prepareInput(input, run);\n\n const stream = this.lcLLM.bindTools\n ? await this.lcLLM\n .bindTools(input.tools ?? [])\n .stream(preparedInput.messages, preparedInput.options)\n : await this.lcLLM.stream(preparedInput.messages, preparedInput.options);\n\n for await (const response of stream) {\n const chunk = this.prepareOutput(response);\n yield chunk;\n }\n }\n\n protected prepareInput(input: ChatModelInput, run: RunContext<this>) {\n const messages: BaseMessageLike[] = input.messages.map((msg) => ({\n role: msg.role,\n content: msg.content,\n type: msg.role,\n // TODO\n }));\n\n const options: BaseChatModelCallOptions = {\n runId: run.runId,\n stop: input.stopSequences,\n signal: run.signal,\n tool_choice: input.toolChoice,\n };\n\n return { messages, options };\n }\n\n protected prepareOutput(output: AIMessageChunk) {\n const messages: Message[] = [];\n if (typeof output.content === \"string\") {\n messages.push(new AssistantMessage(output.content));\n } else {\n messages.push(\n new AssistantMessage(\n output.content.map((message) => {\n if (message.type === \"text\") {\n return { type: \"text\", text: message.text };\n } else if (message.type === \"image_url\") {\n return { type: \"text\", text: message.image_url.toString() };\n } else {\n throw new ValueError(`Unknown message type \"${message.type}\"`);\n }\n }),\n ),\n );\n }\n\n const usage: ChatModelUsage = {\n totalTokens: output.usage_metadata?.total_tokens ?? 0,\n promptTokens: output.usage_metadata?.input_tokens ?? 0,\n completionTokens: output.usage_metadata?.output_tokens ?? 0,\n };\n\n const stop: ChatModelFinishReason = output.response_metadata.stop_sequence || \"stop\";\n\n return new ChatModelOutput(messages, usage, stop);\n }\n\n protected async _createStructure<T>(\n input: ChatModelObjectInput<T>,\n run: RunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const { messages, options } = this.prepareInput(input, run);\n const object = this.lcLLM\n .withStructuredOutput(input.schema, {\n method: \"jsonSchema\",\n strict: false,\n })\n .invoke(messages, options);\n\n return { object: object as T };\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), emitter: this.emitter, lcLLM: this.lcLLM };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["chat.ts"],"names":["LangChainChatModel","ChatModel","emitter","constructor","lcLLM","parameters","Emitter","root","child","namespace","creator","modelId","_modelType","providerId","_create","input","run","preparedInput","prepareInput","response","bindTools","tools","invoke","messages","options","prepareOutput","_createStream","stream","chunk","map","msg","role","content","type","runId","stop","stopSequences","signal","tool_choice","toolChoice","output","push","AssistantMessage","message","text","image_url","toString","ValueError","usage","totalTokens","usage_metadata","total_tokens","promptTokens","input_tokens","completionTokens","output_tokens","response_metadata","stop_sequence","ChatModelOutput","_createStructure","object","withStructuredOutput","schema","method","strict","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"chat.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChatModel,\n ChatModelEmitter,\n ChatModelFinishReason,\n ChatModelInput,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n ChatModelOutput,\n ChatModelParameters,\n ChatModelUsage,\n} from \"@/backend/chat.js\";\nimport { RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport {\n BaseChatModel,\n BaseChatModelCallOptions,\n} from \"@langchain/core/language_models/chat_models\";\nimport { AIMessageChunk, BaseMessageLike } from \"@langchain/core/messages\";\nimport { AssistantMessage, Message } from \"@/backend/message.js\";\nimport { ValueError } from \"@/errors.js\";\n\nexport class LangChainChatModel extends ChatModel {\n public readonly emitter: ChatModelEmitter;\n\n constructor(\n protected readonly lcLLM: BaseChatModel,\n public readonly parameters: ChatModelParameters = {},\n ) {\n super();\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", \"langchain\", \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.lcLLM._modelType();\n }\n\n get providerId() {\n return \"langchain\";\n }\n\n protected async _create(input: ChatModelInput, run: RunContext<this>): Promise<ChatModelOutput> {\n const preparedInput = this.prepareInput(input, run);\n const response = this.lcLLM.bindTools\n ? await this.lcLLM\n .bindTools(input.tools ?? [])\n .invoke(preparedInput.messages, preparedInput.options)\n : await this.lcLLM.invoke(preparedInput.messages, preparedInput.options);\n\n return this.prepareOutput(response);\n }\n\n protected async *_createStream(\n input: ChatModelInput,\n run: RunContext<this>,\n ): AsyncGenerator<ChatModelOutput> {\n const preparedInput = this.prepareInput(input, run);\n\n const stream = this.lcLLM.bindTools\n ? await this.lcLLM\n .bindTools(input.tools ?? [])\n .stream(preparedInput.messages, preparedInput.options)\n : await this.lcLLM.stream(preparedInput.messages, preparedInput.options);\n\n for await (const response of stream) {\n const chunk = this.prepareOutput(response);\n yield chunk;\n }\n }\n\n protected prepareInput(input: ChatModelInput, run: RunContext<this>) {\n const messages: BaseMessageLike[] = input.messages.map((msg) => ({\n role: msg.role,\n content: msg.content,\n type: msg.role,\n // TODO\n }));\n\n const options: BaseChatModelCallOptions = {\n runId: run.runId,\n stop: input.stopSequences,\n signal: run.signal,\n tool_choice: input.toolChoice,\n };\n\n return { messages, options };\n }\n\n protected prepareOutput(output: AIMessageChunk) {\n const messages: Message[] = [];\n if (typeof output.content === \"string\") {\n messages.push(new AssistantMessage(output.content));\n } else {\n messages.push(\n new AssistantMessage(\n output.content.map((message) => {\n if (message.type === \"text\") {\n return { type: \"text\", text: message.text };\n } else if (message.type === \"image_url\") {\n return { type: \"text\", text: message.image_url.toString() };\n } else {\n throw new ValueError(`Unknown message type \"${message.type}\"`);\n }\n }),\n ),\n );\n }\n\n const usage: ChatModelUsage = {\n totalTokens: output.usage_metadata?.total_tokens ?? 0,\n promptTokens: output.usage_metadata?.input_tokens ?? 0,\n completionTokens: output.usage_metadata?.output_tokens ?? 0,\n };\n\n const stop: ChatModelFinishReason = output.response_metadata.stop_sequence || \"stop\";\n\n return new ChatModelOutput(messages, usage, stop);\n }\n\n protected async _createStructure<T>(\n input: ChatModelObjectInput<T>,\n run: RunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const { messages, options } = this.prepareInput(input, run);\n const object = this.lcLLM\n .withStructuredOutput<any>(input.schema, {\n method: \"jsonSchema\",\n strict: false,\n })\n .invoke(messages, options);\n\n return { object: object as T };\n }\n\n createSnapshot() {\n return { ...super.createSnapshot(), emitter: this.emitter, lcLLM: this.lcLLM };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { EmbeddingModel, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.cjs';
2
2
  import { RunContext } from '../../../context.cjs';
3
- import { E as Emitter } from '../../../emitter-BWtGHYn0.cjs';
3
+ import { E as Emitter } from '../../../emitter-C9EN5B0j.cjs';
4
4
  import { Embeddings } from '@langchain/core/embeddings';
5
5
  import '../../../internals/serializable.cjs';
6
6
  import '../../../internals/types.cjs';
@@ -1,6 +1,6 @@
1
1
  import { EmbeddingModel, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.js';
2
2
  import { RunContext } from '../../../context.js';
3
- import { E as Emitter } from '../../../emitter-l0W9gC1A.js';
3
+ import { E as Emitter } from '../../../emitter-BxVxGBbJ.js';
4
4
  import { Embeddings } from '@langchain/core/embeddings';
5
5
  import '../../../internals/serializable.js';
6
6
  import '../../../internals/types.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["tools.ts"],"names":["LangChainTool","Tool","tool","serializedSchemaKey","emitter","constructor","options","name","description","Emitter","root","child","namespace","toCamelCase","creator","register","Class","LCTools","DynamicTool","DynamicStructuredTool","Serializer","toPlain","instance","pickBy","pick","schema","ZodEffects","toJsonSchema","sourceType","isTruthy","fromPlain","metadata","inputSchema","getProp","_run","arg","run","outputClass","JSONToolOutput","raw","invoke","signal","createSnapshot","loadSnapshot","snapshot"],"mappings":"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","file":"tools.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolEvents,\n ToolInput,\n} from \"@/tools/base.js\";\nimport type { GetRunContext } from \"@/context.js\";\nimport type { RunnableConfig } from \"@langchain/core/runnables\";\nimport { ZodEffects } from \"zod\";\nimport * as LCTools from \"@langchain/core/tools\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { isTruthy, pick, pickBy, toCamelCase } from \"remeda\";\nimport { toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport type LangChainToolRunOptions = RunnableConfig & BaseToolRunOptions;\nexport type LangChainToolOptions<TOutput = any> = BaseToolOptions & {\n outputClass?: typeof JSONToolOutput<TOutput>;\n};\n\nexport class LangChainTool<T extends LCTools.StructuredTool, TOutput = any> extends Tool<\n JSONToolOutput<TOutput>,\n LangChainToolOptions<TOutput>,\n LangChainToolRunOptions\n> {\n declare name: string;\n declare description: string;\n\n protected readonly tool: T;\n public static serializedSchemaKey = \"_internalJsonSchema\" as const;\n\n public readonly emitter: ToolEmitter<ToolEvents<T>, JSONToolOutput<TOutput>>;\n\n constructor({\n tool,\n ...options\n }: LangChainToolOptions<TOutput> & {\n tool: T;\n }) {\n super(options);\n\n this.tool = tool;\n this.name = tool.name;\n this.description = tool.description;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"langchain\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n static {\n this.register();\n\n for (const Class of [LCTools.DynamicTool, LCTools.DynamicStructuredTool] as ClassConstructor<\n LCTools.DynamicStructuredTool | LCTools.DynamicTool\n >[]) {\n Serializer.register(Class, {\n toPlain: (instance) => ({\n options: pickBy(\n {\n ...pick(instance, [\n \"name\",\n \"description\",\n \"metadata\",\n \"responseFormat\",\n \"returnDirect\",\n \"func\",\n ]),\n schema:\n instance.schema instanceof ZodEffects\n ? toJsonSchema(instance.schema.sourceType())\n : toJsonSchema(instance.schema),\n },\n isTruthy,\n ),\n }),\n fromPlain: ({ options }) => {\n return new Class({\n ...options,\n metadata: { ...options?.metadata, [LangChainTool.serializedSchemaKey]: options.schema },\n });\n },\n });\n }\n }\n\n inputSchema(): T[\"schema\"] {\n const { schema, metadata = {} } = this.tool;\n\n return getProp(\n metadata,\n [LangChainTool.serializedSchemaKey],\n schema instanceof ZodEffects ? schema.sourceType() : schema,\n );\n }\n\n protected async _run(\n arg: ToolInput<this>,\n options: Partial<LangChainToolRunOptions>,\n run: GetRunContext<this>,\n ): Promise<JSONToolOutput<TOutput>> {\n const { outputClass = JSONToolOutput } = this.options;\n const raw = await this.tool.invoke(arg, {\n ...options,\n signal: run.signal,\n });\n return new outputClass(raw);\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n tool: this.tool,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["tools.ts"],"names":["LangChainTool","Tool","tool","serializedSchemaKey","emitter","constructor","options","name","description","Emitter","root","child","namespace","toCamelCase","creator","register","Class","LCTools","DynamicTool","DynamicStructuredTool","Serializer","toPlain","instance","pickBy","pick","schema","ZodEffects","toJsonSchema","sourceType","isTruthy","fromPlain","metadata","inputSchema","getProp","_run","arg","run","outputClass","JSONToolOutput","raw","invoke","signal","createSnapshot","loadSnapshot","snapshot"],"mappings":"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","file":"tools.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolEvents,\n ToolInput,\n} from \"@/tools/base.js\";\nimport type { GetRunContext } from \"@/context.js\";\nimport type { RunnableConfig } from \"@langchain/core/runnables\";\nimport { ZodEffects } from \"zod\";\nimport * as LCTools from \"@langchain/core/tools\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { isTruthy, pick, pickBy, toCamelCase } from \"remeda\";\nimport { toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport type LangChainToolRunOptions = RunnableConfig & BaseToolRunOptions;\nexport type LangChainToolOptions<TOutput = any> = BaseToolOptions & {\n outputClass?: typeof JSONToolOutput<TOutput>;\n};\n\nexport class LangChainTool<T extends LCTools.StructuredTool, TOutput = any> extends Tool<\n JSONToolOutput<TOutput>,\n LangChainToolOptions<TOutput>,\n LangChainToolRunOptions\n> {\n declare name: string;\n declare description: string;\n\n protected readonly tool: T;\n public static serializedSchemaKey = \"_internalJsonSchema\" as const;\n\n public readonly emitter: ToolEmitter<ToolEvents<T>, JSONToolOutput<TOutput>>;\n\n constructor({\n tool,\n ...options\n }: LangChainToolOptions<TOutput> & {\n tool: T;\n }) {\n super(options);\n\n this.tool = tool;\n this.name = tool.name;\n this.description = tool.description;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"langchain\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n static {\n this.register();\n\n for (const Class of [LCTools.DynamicTool, LCTools.DynamicStructuredTool] as ClassConstructor<\n LCTools.DynamicStructuredTool | LCTools.DynamicTool\n >[]) {\n Serializer.register(Class, {\n toPlain: (instance) => ({\n options: pickBy(\n {\n ...pick(instance, [\n \"name\",\n \"description\",\n \"metadata\",\n \"responseFormat\",\n \"returnDirect\",\n \"func\",\n ]),\n schema:\n instance.schema instanceof ZodEffects\n ? toJsonSchema(instance.schema.sourceType())\n : toJsonSchema(instance.schema),\n },\n isTruthy,\n ),\n }),\n fromPlain: ({ options }) => {\n return new Class({\n ...options,\n metadata: { ...options?.metadata, [LangChainTool.serializedSchemaKey]: options.schema },\n });\n },\n });\n }\n }\n\n inputSchema(): T[\"schema\"] {\n const { schema, metadata = {} } = this.tool;\n\n return getProp(\n metadata,\n [LangChainTool.serializedSchemaKey],\n schema instanceof ZodEffects ? schema.sourceType() : schema,\n );\n }\n\n protected async _run(\n arg: ToolInput<this>,\n options: Partial<LangChainToolRunOptions>,\n run: GetRunContext<this>,\n ): Promise<JSONToolOutput<TOutput>> {\n const { outputClass = JSONToolOutput } = this.options;\n const raw = await this.tool.invoke(arg as Record<string, any>, {\n ...options,\n signal: run.signal,\n });\n return new outputClass(raw);\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n tool: this.tool,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { BaseToolRunOptions, BaseToolOptions, JSONToolOutput, Tool, ToolEmitter,
4
4
  import { GetRunContext } from '../../context.cjs';
5
5
  import { RunnableConfig } from '@langchain/core/runnables';
6
6
  import * as LCTools from '@langchain/core/tools';
7
- import { E as Emitter } from '../../emitter-BWtGHYn0.cjs';
7
+ import { E as Emitter } from '../../emitter-C9EN5B0j.cjs';
8
8
  import '../../internals/serializable.cjs';
9
9
  import '../../internals/types.cjs';
10
10
  import '../../internals/helpers/guards.cjs';
@@ -4,7 +4,7 @@ import { BaseToolRunOptions, BaseToolOptions, JSONToolOutput, Tool, ToolEmitter,
4
4
  import { GetRunContext } from '../../context.js';
5
5
  import { RunnableConfig } from '@langchain/core/runnables';
6
6
  import * as LCTools from '@langchain/core/tools';
7
- import { E as Emitter } from '../../emitter-l0W9gC1A.js';
7
+ import { E as Emitter } from '../../emitter-BxVxGBbJ.js';
8
8
  import '../../internals/serializable.js';
9
9
  import '../../internals/types.js';
10
10
  import '../../internals/helpers/guards.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["tools.ts"],"names":["LangChainTool","Tool","tool","serializedSchemaKey","emitter","constructor","options","name","description","Emitter","root","child","namespace","toCamelCase","creator","register","Class","LCTools","DynamicTool","DynamicStructuredTool","Serializer","toPlain","instance","pickBy","pick","schema","ZodEffects","toJsonSchema","sourceType","isTruthy","fromPlain","metadata","inputSchema","getProp","_run","arg","run","outputClass","JSONToolOutput","raw","invoke","signal","createSnapshot","loadSnapshot","snapshot"],"mappings":"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","file":"tools.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolEvents,\n ToolInput,\n} from \"@/tools/base.js\";\nimport type { GetRunContext } from \"@/context.js\";\nimport type { RunnableConfig } from \"@langchain/core/runnables\";\nimport { ZodEffects } from \"zod\";\nimport * as LCTools from \"@langchain/core/tools\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { isTruthy, pick, pickBy, toCamelCase } from \"remeda\";\nimport { toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport type LangChainToolRunOptions = RunnableConfig & BaseToolRunOptions;\nexport type LangChainToolOptions<TOutput = any> = BaseToolOptions & {\n outputClass?: typeof JSONToolOutput<TOutput>;\n};\n\nexport class LangChainTool<T extends LCTools.StructuredTool, TOutput = any> extends Tool<\n JSONToolOutput<TOutput>,\n LangChainToolOptions<TOutput>,\n LangChainToolRunOptions\n> {\n declare name: string;\n declare description: string;\n\n protected readonly tool: T;\n public static serializedSchemaKey = \"_internalJsonSchema\" as const;\n\n public readonly emitter: ToolEmitter<ToolEvents<T>, JSONToolOutput<TOutput>>;\n\n constructor({\n tool,\n ...options\n }: LangChainToolOptions<TOutput> & {\n tool: T;\n }) {\n super(options);\n\n this.tool = tool;\n this.name = tool.name;\n this.description = tool.description;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"langchain\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n static {\n this.register();\n\n for (const Class of [LCTools.DynamicTool, LCTools.DynamicStructuredTool] as ClassConstructor<\n LCTools.DynamicStructuredTool | LCTools.DynamicTool\n >[]) {\n Serializer.register(Class, {\n toPlain: (instance) => ({\n options: pickBy(\n {\n ...pick(instance, [\n \"name\",\n \"description\",\n \"metadata\",\n \"responseFormat\",\n \"returnDirect\",\n \"func\",\n ]),\n schema:\n instance.schema instanceof ZodEffects\n ? toJsonSchema(instance.schema.sourceType())\n : toJsonSchema(instance.schema),\n },\n isTruthy,\n ),\n }),\n fromPlain: ({ options }) => {\n return new Class({\n ...options,\n metadata: { ...options?.metadata, [LangChainTool.serializedSchemaKey]: options.schema },\n });\n },\n });\n }\n }\n\n inputSchema(): T[\"schema\"] {\n const { schema, metadata = {} } = this.tool;\n\n return getProp(\n metadata,\n [LangChainTool.serializedSchemaKey],\n schema instanceof ZodEffects ? schema.sourceType() : schema,\n );\n }\n\n protected async _run(\n arg: ToolInput<this>,\n options: Partial<LangChainToolRunOptions>,\n run: GetRunContext<this>,\n ): Promise<JSONToolOutput<TOutput>> {\n const { outputClass = JSONToolOutput } = this.options;\n const raw = await this.tool.invoke(arg, {\n ...options,\n signal: run.signal,\n });\n return new outputClass(raw);\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n tool: this.tool,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["tools.ts"],"names":["LangChainTool","Tool","tool","serializedSchemaKey","emitter","constructor","options","name","description","Emitter","root","child","namespace","toCamelCase","creator","register","Class","LCTools","DynamicTool","DynamicStructuredTool","Serializer","toPlain","instance","pickBy","pick","schema","ZodEffects","toJsonSchema","sourceType","isTruthy","fromPlain","metadata","inputSchema","getProp","_run","arg","run","outputClass","JSONToolOutput","raw","invoke","signal","createSnapshot","loadSnapshot","snapshot"],"mappings":"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","file":"tools.js","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n BaseToolOptions,\n BaseToolRunOptions,\n ToolEmitter,\n JSONToolOutput,\n Tool,\n ToolEvents,\n ToolInput,\n} from \"@/tools/base.js\";\nimport type { GetRunContext } from \"@/context.js\";\nimport type { RunnableConfig } from \"@langchain/core/runnables\";\nimport { ZodEffects } from \"zod\";\nimport * as LCTools from \"@langchain/core/tools\";\nimport { Serializer } from \"@/serializer/serializer.js\";\nimport { isTruthy, pick, pickBy, toCamelCase } from \"remeda\";\nimport { toJsonSchema } from \"@/internals/helpers/schema.js\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { ClassConstructor } from \"@/internals/types.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\n\nexport type LangChainToolRunOptions = RunnableConfig & BaseToolRunOptions;\nexport type LangChainToolOptions<TOutput = any> = BaseToolOptions & {\n outputClass?: typeof JSONToolOutput<TOutput>;\n};\n\nexport class LangChainTool<T extends LCTools.StructuredTool, TOutput = any> extends Tool<\n JSONToolOutput<TOutput>,\n LangChainToolOptions<TOutput>,\n LangChainToolRunOptions\n> {\n declare name: string;\n declare description: string;\n\n protected readonly tool: T;\n public static serializedSchemaKey = \"_internalJsonSchema\" as const;\n\n public readonly emitter: ToolEmitter<ToolEvents<T>, JSONToolOutput<TOutput>>;\n\n constructor({\n tool,\n ...options\n }: LangChainToolOptions<TOutput> & {\n tool: T;\n }) {\n super(options);\n\n this.tool = tool;\n this.name = tool.name;\n this.description = tool.description;\n this.emitter = Emitter.root.child({\n namespace: [\"tool\", \"langchain\", toCamelCase(this.name)],\n creator: this,\n });\n }\n\n static {\n this.register();\n\n for (const Class of [LCTools.DynamicTool, LCTools.DynamicStructuredTool] as ClassConstructor<\n LCTools.DynamicStructuredTool | LCTools.DynamicTool\n >[]) {\n Serializer.register(Class, {\n toPlain: (instance) => ({\n options: pickBy(\n {\n ...pick(instance, [\n \"name\",\n \"description\",\n \"metadata\",\n \"responseFormat\",\n \"returnDirect\",\n \"func\",\n ]),\n schema:\n instance.schema instanceof ZodEffects\n ? toJsonSchema(instance.schema.sourceType())\n : toJsonSchema(instance.schema),\n },\n isTruthy,\n ),\n }),\n fromPlain: ({ options }) => {\n return new Class({\n ...options,\n metadata: { ...options?.metadata, [LangChainTool.serializedSchemaKey]: options.schema },\n });\n },\n });\n }\n }\n\n inputSchema(): T[\"schema\"] {\n const { schema, metadata = {} } = this.tool;\n\n return getProp(\n metadata,\n [LangChainTool.serializedSchemaKey],\n schema instanceof ZodEffects ? schema.sourceType() : schema,\n );\n }\n\n protected async _run(\n arg: ToolInput<this>,\n options: Partial<LangChainToolRunOptions>,\n run: GetRunContext<this>,\n ): Promise<JSONToolOutput<TOutput>> {\n const { outputClass = JSONToolOutput } = this.options;\n const raw = await this.tool.invoke(arg as Record<string, any>, {\n ...options,\n signal: run.signal,\n });\n return new outputClass(raw);\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n tool: this.tool,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n super.loadSnapshot(snapshot);\n }\n}\n"]}
@@ -8,7 +8,7 @@ import '../../../internals/types.cjs';
8
8
  import '../../../internals/helpers/guards.cjs';
9
9
  import 'ai';
10
10
  import '../../../context.cjs';
11
- import '../../../emitter-BWtGHYn0.cjs';
11
+ import '../../../emitter-C9EN5B0j.cjs';
12
12
  import '../../../internals/helpers/promise.cjs';
13
13
  import '../../../errors.cjs';
14
14
  import 'promise-based-task';
@@ -8,7 +8,7 @@ import '../../../internals/types.js';
8
8
  import '../../../internals/helpers/guards.js';
9
9
  import 'ai';
10
10
  import '../../../context.js';
11
- import '../../../emitter-l0W9gC1A.js';
11
+ import '../../../emitter-BxVxGBbJ.js';
12
12
  import '../../../internals/helpers/promise.js';
13
13
  import '../../../errors.js';
14
14
  import 'promise-based-task';
@@ -7,7 +7,7 @@ import '../../../internals/types.cjs';
7
7
  import '../../../internals/helpers/guards.cjs';
8
8
  import '../../../backend/embedding.cjs';
9
9
  import '../../../context.cjs';
10
- import '../../../emitter-BWtGHYn0.cjs';
10
+ import '../../../emitter-C9EN5B0j.cjs';
11
11
  import '../../../internals/helpers/promise.cjs';
12
12
  import '../../../errors.cjs';
13
13
  import '../../../backend/utils.cjs';
@@ -7,7 +7,7 @@ import '../../../internals/types.js';
7
7
  import '../../../internals/helpers/guards.js';
8
8
  import '../../../backend/embedding.js';
9
9
  import '../../../context.js';
10
- import '../../../emitter-l0W9gC1A.js';
10
+ import '../../../emitter-BxVxGBbJ.js';
11
11
  import '../../../internals/helpers/promise.js';
12
12
  import '../../../errors.js';
13
13
  import '../../../backend/utils.js';
@@ -9,7 +9,7 @@ import '../../../backend/chat.cjs';
9
9
  import '../../../backend/message.cjs';
10
10
  import 'ai';
11
11
  import '../../../context.cjs';
12
- import '../../../emitter-BWtGHYn0.cjs';
12
+ import '../../../emitter-C9EN5B0j.cjs';
13
13
  import '../../../internals/helpers/promise.cjs';
14
14
  import '../../../errors.cjs';
15
15
  import 'promise-based-task';
@@ -9,7 +9,7 @@ import '../../../backend/chat.js';
9
9
  import '../../../backend/message.js';
10
10
  import 'ai';
11
11
  import '../../../context.js';
12
- import '../../../emitter-l0W9gC1A.js';
12
+ import '../../../emitter-BxVxGBbJ.js';
13
13
  import '../../../internals/helpers/promise.js';
14
14
  import '../../../errors.js';
15
15
  import 'promise-based-task';
@@ -7,7 +7,7 @@ import '../../../internals/types.cjs';
7
7
  import '../../../internals/helpers/guards.cjs';
8
8
  import '../../../backend/embedding.cjs';
9
9
  import '../../../context.cjs';
10
- import '../../../emitter-BWtGHYn0.cjs';
10
+ import '../../../emitter-C9EN5B0j.cjs';
11
11
  import '../../../internals/helpers/promise.cjs';
12
12
  import '../../../errors.cjs';
13
13
  import '../../../backend/utils.cjs';
@@ -7,7 +7,7 @@ import '../../../internals/types.js';
7
7
  import '../../../internals/helpers/guards.js';
8
8
  import '../../../backend/embedding.js';
9
9
  import '../../../context.js';
10
- import '../../../emitter-l0W9gC1A.js';
10
+ import '../../../emitter-BxVxGBbJ.js';
11
11
  import '../../../internals/helpers/promise.js';
12
12
  import '../../../errors.js';
13
13
  import '../../../backend/utils.js';