beeai-framework 0.1.4 → 0.1.6

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 (190) hide show
  1. package/README.md +2 -2
  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 +5 -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 +5 -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.d.cts +1 -1
  53. package/dist/adapters/watsonx/backend/chat.d.ts +1 -1
  54. package/dist/adapters/watsonx/backend/embedding.d.cts +1 -1
  55. package/dist/adapters/watsonx/backend/embedding.d.ts +1 -1
  56. package/dist/{agent-CtPtFtGb.d.cts → agent-BZ-_ATuJ.d.cts} +3 -3
  57. package/dist/{agent-CxoSeic0.d.ts → agent-BqoZ6FbM.d.ts} +3 -3
  58. package/dist/agents/base.cjs +1 -1
  59. package/dist/agents/base.cjs.map +1 -1
  60. package/dist/agents/base.d.cts +2 -2
  61. package/dist/agents/base.d.ts +2 -2
  62. package/dist/agents/base.js +1 -1
  63. package/dist/agents/base.js.map +1 -1
  64. package/dist/agents/bee/agent.d.cts +3 -3
  65. package/dist/agents/bee/agent.d.ts +3 -3
  66. package/dist/agents/bee/runners/base.d.cts +3 -3
  67. package/dist/agents/bee/runners/base.d.ts +3 -3
  68. package/dist/agents/bee/runners/deep-think/runner.d.cts +3 -3
  69. package/dist/agents/bee/runners/deep-think/runner.d.ts +3 -3
  70. package/dist/agents/bee/runners/default/runner.d.cts +3 -3
  71. package/dist/agents/bee/runners/default/runner.d.ts +3 -3
  72. package/dist/agents/bee/runners/granite/runner.d.cts +3 -3
  73. package/dist/agents/bee/runners/granite/runner.d.ts +3 -3
  74. package/dist/agents/bee/types.d.cts +1 -1
  75. package/dist/agents/bee/types.d.ts +1 -1
  76. package/dist/agents/experimental/remote/agent.cjs +103 -0
  77. package/dist/agents/experimental/remote/agent.cjs.map +1 -0
  78. package/dist/agents/experimental/remote/agent.d.cts +77 -0
  79. package/dist/agents/experimental/remote/agent.d.ts +77 -0
  80. package/dist/agents/experimental/remote/agent.js +101 -0
  81. package/dist/agents/experimental/remote/agent.js.map +1 -0
  82. package/dist/agents/experimental/replan/agent.d.cts +2 -2
  83. package/dist/agents/experimental/replan/agent.d.ts +2 -2
  84. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  85. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  86. package/dist/agents/experimental/streamlit/agent.d.cts +2 -2
  87. package/dist/agents/experimental/streamlit/agent.d.ts +2 -2
  88. package/dist/agents/types.d.cts +2 -2
  89. package/dist/agents/types.d.ts +2 -2
  90. package/dist/backend/backend.d.cts +1 -1
  91. package/dist/backend/backend.d.ts +1 -1
  92. package/dist/backend/chat.cjs +1 -1
  93. package/dist/backend/chat.cjs.map +1 -1
  94. package/dist/backend/chat.d.cts +1 -1
  95. package/dist/backend/chat.d.ts +1 -1
  96. package/dist/backend/chat.js +1 -1
  97. package/dist/backend/chat.js.map +1 -1
  98. package/dist/backend/core.d.cts +1 -1
  99. package/dist/backend/core.d.ts +1 -1
  100. package/dist/backend/embedding.cjs +1 -1
  101. package/dist/backend/embedding.cjs.map +1 -1
  102. package/dist/backend/embedding.d.cts +1 -1
  103. package/dist/backend/embedding.d.ts +1 -1
  104. package/dist/backend/embedding.js +1 -1
  105. package/dist/backend/embedding.js.map +1 -1
  106. package/dist/backend/utils.cjs +2 -1
  107. package/dist/backend/utils.cjs.map +1 -1
  108. package/dist/backend/utils.js +2 -1
  109. package/dist/backend/utils.js.map +1 -1
  110. package/dist/{base-Csr9guq2.d.cts → base-daM6fHUP.d.cts} +1 -1
  111. package/dist/{base-DHhpWHQm.d.ts → base-mmG-8Pk9.d.ts} +1 -1
  112. package/dist/context.d.cts +1 -1
  113. package/dist/context.d.ts +1 -1
  114. package/dist/emitter/emitter.d.cts +1 -1
  115. package/dist/emitter/emitter.d.ts +1 -1
  116. package/dist/emitter/types.d.cts +1 -1
  117. package/dist/emitter/types.d.ts +1 -1
  118. package/dist/errors.cjs +4 -4
  119. package/dist/errors.cjs.map +1 -1
  120. package/dist/errors.js +4 -4
  121. package/dist/errors.js.map +1 -1
  122. package/dist/index.d.cts +2 -2
  123. package/dist/index.d.ts +2 -2
  124. package/dist/instrumentation/create-telemetry-middleware.cjs +1 -1
  125. package/dist/instrumentation/create-telemetry-middleware.cjs.map +1 -1
  126. package/dist/instrumentation/create-telemetry-middleware.d.cts +1 -1
  127. package/dist/instrumentation/create-telemetry-middleware.d.ts +1 -1
  128. package/dist/instrumentation/create-telemetry-middleware.js +1 -1
  129. package/dist/instrumentation/create-telemetry-middleware.js.map +1 -1
  130. package/dist/instrumentation/helpers/utils.d.cts +1 -1
  131. package/dist/instrumentation/helpers/utils.d.ts +1 -1
  132. package/dist/internals/env.cjs +2 -2
  133. package/dist/internals/env.cjs.map +1 -1
  134. package/dist/internals/env.js +2 -2
  135. package/dist/internals/env.js.map +1 -1
  136. package/dist/internals/fetcher.d.cts +1 -1
  137. package/dist/internals/fetcher.d.ts +1 -1
  138. package/dist/memory/summarizeMemory.d.cts +1 -1
  139. package/dist/memory/summarizeMemory.d.ts +1 -1
  140. package/dist/parsers/linePrefix.d.cts +1 -1
  141. package/dist/parsers/linePrefix.d.ts +1 -1
  142. package/dist/tools/arxiv.d.cts +1 -1
  143. package/dist/tools/arxiv.d.ts +1 -1
  144. package/dist/tools/base.d.cts +1 -1
  145. package/dist/tools/base.d.ts +1 -1
  146. package/dist/tools/calculator.d.cts +1 -1
  147. package/dist/tools/calculator.d.ts +1 -1
  148. package/dist/tools/custom.d.cts +1 -1
  149. package/dist/tools/custom.d.ts +1 -1
  150. package/dist/tools/database/elasticsearch.d.cts +1 -1
  151. package/dist/tools/database/elasticsearch.d.ts +1 -1
  152. package/dist/tools/database/milvus.d.cts +1 -1
  153. package/dist/tools/database/milvus.d.ts +1 -1
  154. package/dist/tools/database/sql.d.cts +1 -1
  155. package/dist/tools/database/sql.d.ts +1 -1
  156. package/dist/tools/llm.d.cts +1 -1
  157. package/dist/tools/llm.d.ts +1 -1
  158. package/dist/tools/mcp.d.cts +1 -1
  159. package/dist/tools/mcp.d.ts +1 -1
  160. package/dist/tools/openapi.d.cts +1 -1
  161. package/dist/tools/openapi.d.ts +1 -1
  162. package/dist/tools/python/output.d.cts +1 -1
  163. package/dist/tools/python/output.d.ts +1 -1
  164. package/dist/tools/python/python.d.cts +1 -1
  165. package/dist/tools/python/python.d.ts +1 -1
  166. package/dist/tools/search/base.d.cts +1 -1
  167. package/dist/tools/search/base.d.ts +1 -1
  168. package/dist/tools/search/duckDuckGoSearch.d.cts +1 -1
  169. package/dist/tools/search/duckDuckGoSearch.d.ts +1 -1
  170. package/dist/tools/search/googleSearch.d.cts +1 -1
  171. package/dist/tools/search/googleSearch.d.ts +1 -1
  172. package/dist/tools/search/searXNGSearch.d.cts +1 -1
  173. package/dist/tools/search/searXNGSearch.d.ts +1 -1
  174. package/dist/tools/search/wikipedia.d.cts +1 -1
  175. package/dist/tools/search/wikipedia.d.ts +1 -1
  176. package/dist/tools/similarity.d.cts +1 -1
  177. package/dist/tools/similarity.d.ts +1 -1
  178. package/dist/tools/weather/openMeteo.d.cts +1 -1
  179. package/dist/tools/weather/openMeteo.d.ts +1 -1
  180. package/dist/tools/web/webCrawler.d.cts +1 -1
  181. package/dist/tools/web/webCrawler.d.ts +1 -1
  182. package/dist/version.cjs +1 -1
  183. package/dist/version.js +1 -1
  184. package/dist/workflows/agent.d.cts +10 -10
  185. package/dist/workflows/agent.d.ts +10 -10
  186. package/dist/workflows/workflow.d.cts +1 -1
  187. package/dist/workflows/workflow.d.ts +1 -1
  188. package/package.json +26 -10
  189. package/dist/{emitter-l0W9gC1A.d.ts → emitter-BxVxGBbJ.d.ts} +1 -1
  190. package/dist/{emitter-BWtGHYn0.d.cts → emitter-C9EN5B0j.d.cts} +1 -1
package/README.md CHANGED
@@ -120,7 +120,7 @@ npm run start [project_name].ts
120
120
 
121
121
  The BeeAI Framework is an open-source project and we ❤️ contributions.<br>
122
122
 
123
- If you'd like to help build BeeAI, take a look at our [contribution guidelines](/typescript/docs/CONTRIBUTING.md).
123
+ If you'd like to help build BeeAI, take a look at our [contribution guidelines](/typescript/CONTRIBUTING.md).
124
124
 
125
125
  ## Bugs
126
126
 
@@ -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';