beeai-framework 0.1.3 → 0.1.4

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 (436) hide show
  1. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +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/chat.js.map +1 -1
  5. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  6. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  7. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  8. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +1 -1
  9. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +1 -1
  10. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  11. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  12. package/dist/adapters/anthropic/backend/chat.d.cts +1 -1
  13. package/dist/adapters/anthropic/backend/chat.d.ts +1 -1
  14. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  15. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  16. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  17. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  18. package/dist/adapters/anthropic/backend/embedding.d.cts +1 -1
  19. package/dist/adapters/anthropic/backend/embedding.d.ts +1 -1
  20. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  21. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  22. package/dist/adapters/azure-openai/backend/chat.d.cts +2 -2
  23. package/dist/adapters/azure-openai/backend/chat.d.ts +2 -2
  24. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  25. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  26. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  27. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  28. package/dist/adapters/azure-openai/backend/embedding.d.cts +1 -1
  29. package/dist/adapters/azure-openai/backend/embedding.d.ts +1 -1
  30. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  31. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  32. package/dist/adapters/dummy/backend/chat.d.cts +1 -1
  33. package/dist/adapters/dummy/backend/chat.d.ts +1 -1
  34. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  35. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  36. package/dist/adapters/dummy/backend/embedding.d.cts +1 -1
  37. package/dist/adapters/dummy/backend/embedding.d.ts +1 -1
  38. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  39. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  40. package/dist/adapters/google-vertex/backend/chat.d.cts +1 -1
  41. package/dist/adapters/google-vertex/backend/chat.d.ts +1 -1
  42. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  43. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  44. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  45. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  46. package/dist/adapters/google-vertex/backend/embedding.d.cts +1 -1
  47. package/dist/adapters/google-vertex/backend/embedding.d.ts +1 -1
  48. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  49. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  50. package/dist/adapters/groq/backend/chat.d.cts +1 -1
  51. package/dist/adapters/groq/backend/chat.d.ts +1 -1
  52. package/dist/adapters/groq/backend/chat.js.map +1 -1
  53. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  54. package/dist/adapters/groq/backend/client.js.map +1 -1
  55. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  56. package/dist/adapters/groq/backend/embedding.d.cts +1 -1
  57. package/dist/adapters/groq/backend/embedding.d.ts +1 -1
  58. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  59. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  60. package/dist/adapters/langchain/backend/chat.d.cts +1 -1
  61. package/dist/adapters/langchain/backend/chat.d.ts +1 -1
  62. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  63. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  64. package/dist/adapters/langchain/backend/embedding.d.cts +1 -1
  65. package/dist/adapters/langchain/backend/embedding.d.ts +1 -1
  66. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  67. package/dist/adapters/langchain/tools.cjs.map +1 -1
  68. package/dist/adapters/langchain/tools.d.cts +1 -1
  69. package/dist/adapters/langchain/tools.d.ts +1 -1
  70. package/dist/adapters/langchain/tools.js.map +1 -1
  71. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  72. package/dist/adapters/ollama/backend/chat.d.cts +1 -1
  73. package/dist/adapters/ollama/backend/chat.d.ts +1 -1
  74. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  75. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  76. package/dist/adapters/ollama/backend/client.js.map +1 -1
  77. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  78. package/dist/adapters/ollama/backend/embedding.d.cts +1 -1
  79. package/dist/adapters/ollama/backend/embedding.d.ts +1 -1
  80. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  81. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  82. package/dist/adapters/openai/backend/chat.d.cts +1 -1
  83. package/dist/adapters/openai/backend/chat.d.ts +1 -1
  84. package/dist/adapters/openai/backend/chat.js.map +1 -1
  85. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  86. package/dist/adapters/openai/backend/client.js.map +1 -1
  87. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  88. package/dist/adapters/openai/backend/embedding.d.cts +2 -2
  89. package/dist/adapters/openai/backend/embedding.d.ts +2 -2
  90. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  91. package/dist/adapters/vercel/backend/chat.cjs +2 -2
  92. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  93. package/dist/adapters/vercel/backend/chat.d.cts +1 -1
  94. package/dist/adapters/vercel/backend/chat.d.ts +1 -1
  95. package/dist/adapters/vercel/backend/chat.js +2 -2
  96. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  97. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  98. package/dist/adapters/vercel/backend/embedding.d.cts +5 -5
  99. package/dist/adapters/vercel/backend/embedding.d.ts +5 -5
  100. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  101. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  102. package/dist/adapters/watsonx/backend/chat.d.cts +1 -1
  103. package/dist/adapters/watsonx/backend/chat.d.ts +1 -1
  104. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  105. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  106. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  107. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  108. package/dist/adapters/watsonx/backend/embedding.d.cts +1 -1
  109. package/dist/adapters/watsonx/backend/embedding.d.ts +1 -1
  110. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  111. package/dist/{agent-xmwFrFrh.d.cts → agent-CtPtFtGb.d.cts} +3 -3
  112. package/dist/{agent-D9gpIPf2.d.ts → agent-CxoSeic0.d.ts} +3 -3
  113. package/dist/agents/base.cjs.map +1 -1
  114. package/dist/agents/base.d.cts +2 -2
  115. package/dist/agents/base.d.ts +2 -2
  116. package/dist/agents/base.js.map +1 -1
  117. package/dist/agents/bee/agent.cjs.map +1 -1
  118. package/dist/agents/bee/agent.d.cts +3 -3
  119. package/dist/agents/bee/agent.d.ts +3 -3
  120. package/dist/agents/bee/agent.js.map +1 -1
  121. package/dist/agents/bee/prompts.cjs.map +1 -1
  122. package/dist/agents/bee/prompts.js.map +1 -1
  123. package/dist/agents/bee/runners/base.cjs.map +1 -1
  124. package/dist/agents/bee/runners/base.d.cts +3 -3
  125. package/dist/agents/bee/runners/base.d.ts +3 -3
  126. package/dist/agents/bee/runners/base.js.map +1 -1
  127. package/dist/agents/bee/runners/deep-think/prompts.cjs.map +1 -1
  128. package/dist/agents/bee/runners/deep-think/prompts.js.map +1 -1
  129. package/dist/agents/bee/runners/deep-think/runner.cjs +11 -11
  130. package/dist/agents/bee/runners/deep-think/runner.cjs.map +1 -1
  131. package/dist/agents/bee/runners/deep-think/runner.d.cts +3 -3
  132. package/dist/agents/bee/runners/deep-think/runner.d.ts +3 -3
  133. package/dist/agents/bee/runners/deep-think/runner.js +2 -2
  134. package/dist/agents/bee/runners/deep-think/runner.js.map +1 -1
  135. package/dist/agents/bee/runners/default/runner.cjs.map +1 -1
  136. package/dist/agents/bee/runners/default/runner.d.cts +3 -3
  137. package/dist/agents/bee/runners/default/runner.d.ts +3 -3
  138. package/dist/agents/bee/runners/default/runner.js +1 -1
  139. package/dist/agents/bee/runners/default/runner.js.map +1 -1
  140. package/dist/agents/bee/runners/default/runner.spec.cjs.map +1 -1
  141. package/dist/agents/bee/runners/default/runner.spec.js.map +1 -1
  142. package/dist/agents/bee/runners/granite/prompts.cjs.map +1 -1
  143. package/dist/agents/bee/runners/granite/prompts.js.map +1 -1
  144. package/dist/agents/bee/runners/granite/runner.cjs +11 -11
  145. package/dist/agents/bee/runners/granite/runner.cjs.map +1 -1
  146. package/dist/agents/bee/runners/granite/runner.d.cts +3 -3
  147. package/dist/agents/bee/runners/granite/runner.d.ts +3 -3
  148. package/dist/agents/bee/runners/granite/runner.js +2 -2
  149. package/dist/agents/bee/runners/granite/runner.js.map +1 -1
  150. package/dist/agents/bee/types.d.cts +1 -1
  151. package/dist/agents/bee/types.d.ts +1 -1
  152. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  153. package/dist/agents/experimental/replan/agent.d.cts +2 -2
  154. package/dist/agents/experimental/replan/agent.d.ts +2 -2
  155. package/dist/agents/experimental/replan/agent.js.map +1 -1
  156. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  157. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  158. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  159. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  160. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  161. package/dist/agents/experimental/streamlit/agent.d.cts +2 -2
  162. package/dist/agents/experimental/streamlit/agent.d.ts +2 -2
  163. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  164. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  165. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  166. package/dist/agents/types.d.cts +2 -2
  167. package/dist/agents/types.d.ts +2 -2
  168. package/dist/backend/backend.cjs.map +1 -1
  169. package/dist/backend/backend.d.cts +1 -1
  170. package/dist/backend/backend.d.ts +1 -1
  171. package/dist/backend/backend.js.map +1 -1
  172. package/dist/backend/chat.cjs.map +1 -1
  173. package/dist/backend/chat.d.cts +1 -1
  174. package/dist/backend/chat.d.ts +1 -1
  175. package/dist/backend/chat.js.map +1 -1
  176. package/dist/backend/client.cjs.map +1 -1
  177. package/dist/backend/client.js.map +1 -1
  178. package/dist/backend/constants.cjs.map +1 -1
  179. package/dist/backend/constants.js.map +1 -1
  180. package/dist/backend/core.d.cts +1 -1
  181. package/dist/backend/core.d.ts +1 -1
  182. package/dist/backend/embedding.cjs.map +1 -1
  183. package/dist/backend/embedding.d.cts +1 -1
  184. package/dist/backend/embedding.d.ts +1 -1
  185. package/dist/backend/embedding.js.map +1 -1
  186. package/dist/backend/errors.cjs.map +1 -1
  187. package/dist/backend/errors.js.map +1 -1
  188. package/dist/backend/message.cjs.map +1 -1
  189. package/dist/backend/message.js.map +1 -1
  190. package/dist/backend/utils.cjs.map +1 -1
  191. package/dist/backend/utils.js.map +1 -1
  192. package/dist/{base-daM6fHUP.d.cts → base-Csr9guq2.d.cts} +1 -1
  193. package/dist/{base-mmG-8Pk9.d.ts → base-DHhpWHQm.d.ts} +1 -1
  194. package/dist/cache/base.cjs.map +1 -1
  195. package/dist/cache/base.js.map +1 -1
  196. package/dist/cache/decoratorCache.cjs.map +1 -1
  197. package/dist/cache/decoratorCache.js.map +1 -1
  198. package/dist/cache/fileCache.cjs.map +1 -1
  199. package/dist/cache/fileCache.js.map +1 -1
  200. package/dist/cache/nullCache.cjs.map +1 -1
  201. package/dist/cache/nullCache.js.map +1 -1
  202. package/dist/cache/slidingCache.cjs.map +1 -1
  203. package/dist/cache/slidingCache.js.map +1 -1
  204. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  205. package/dist/cache/unconstrainedCache.js.map +1 -1
  206. package/dist/context.cjs.map +1 -1
  207. package/dist/context.d.cts +1 -1
  208. package/dist/context.d.ts +1 -1
  209. package/dist/context.js.map +1 -1
  210. package/dist/emitter/emitter.cjs.map +1 -1
  211. package/dist/emitter/emitter.d.cts +1 -1
  212. package/dist/emitter/emitter.d.ts +1 -1
  213. package/dist/emitter/emitter.js.map +1 -1
  214. package/dist/emitter/errors.cjs.map +1 -1
  215. package/dist/emitter/errors.js.map +1 -1
  216. package/dist/emitter/types.d.cts +1 -1
  217. package/dist/emitter/types.d.ts +1 -1
  218. package/dist/emitter/utils.cjs.map +1 -1
  219. package/dist/emitter/utils.js.map +1 -1
  220. package/dist/errors.cjs.map +1 -1
  221. package/dist/errors.js.map +1 -1
  222. package/dist/index.d.cts +2 -2
  223. package/dist/index.d.ts +2 -2
  224. package/dist/instrumentation/config.cjs.map +1 -1
  225. package/dist/instrumentation/config.js.map +1 -1
  226. package/dist/instrumentation/create-telemetry-middleware.cjs.map +1 -1
  227. package/dist/instrumentation/create-telemetry-middleware.d.cts +1 -1
  228. package/dist/instrumentation/create-telemetry-middleware.d.ts +1 -1
  229. package/dist/instrumentation/create-telemetry-middleware.js.map +1 -1
  230. package/dist/instrumentation/helpers/create-span.cjs.map +1 -1
  231. package/dist/instrumentation/helpers/create-span.js.map +1 -1
  232. package/dist/instrumentation/helpers/get-error-safe.cjs.map +1 -1
  233. package/dist/instrumentation/helpers/get-error-safe.js.map +1 -1
  234. package/dist/instrumentation/helpers/get-serialized-object-safe.cjs.map +1 -1
  235. package/dist/instrumentation/helpers/get-serialized-object-safe.js.map +1 -1
  236. package/dist/instrumentation/helpers/id-name-manager.cjs.map +1 -1
  237. package/dist/instrumentation/helpers/id-name-manager.js.map +1 -1
  238. package/dist/instrumentation/helpers/trace-serializer.cjs.map +1 -1
  239. package/dist/instrumentation/helpers/trace-serializer.js.map +1 -1
  240. package/dist/instrumentation/helpers/utils.cjs.map +1 -1
  241. package/dist/instrumentation/helpers/utils.d.cts +1 -1
  242. package/dist/instrumentation/helpers/utils.d.ts +1 -1
  243. package/dist/instrumentation/helpers/utils.js.map +1 -1
  244. package/dist/instrumentation/logger.cjs.map +1 -1
  245. package/dist/instrumentation/logger.js.map +1 -1
  246. package/dist/instrumentation/tracer.cjs.map +1 -1
  247. package/dist/instrumentation/tracer.js.map +1 -1
  248. package/dist/internals/env.cjs.map +1 -1
  249. package/dist/internals/env.js.map +1 -1
  250. package/dist/internals/fetcher.cjs.map +1 -1
  251. package/dist/internals/fetcher.d.cts +1 -1
  252. package/dist/internals/fetcher.d.ts +1 -1
  253. package/dist/internals/fetcher.js.map +1 -1
  254. package/dist/internals/helpers/array.cjs.map +1 -1
  255. package/dist/internals/helpers/array.js.map +1 -1
  256. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  257. package/dist/internals/helpers/cancellation.js.map +1 -1
  258. package/dist/internals/helpers/counter.cjs.map +1 -1
  259. package/dist/internals/helpers/counter.js.map +1 -1
  260. package/dist/internals/helpers/general.cjs.map +1 -1
  261. package/dist/internals/helpers/general.js.map +1 -1
  262. package/dist/internals/helpers/guards.cjs.map +1 -1
  263. package/dist/internals/helpers/guards.js.map +1 -1
  264. package/dist/internals/helpers/hash.cjs.map +1 -1
  265. package/dist/internals/helpers/hash.js.map +1 -1
  266. package/dist/internals/helpers/map.cjs.map +1 -1
  267. package/dist/internals/helpers/map.js.map +1 -1
  268. package/dist/internals/helpers/math.cjs.map +1 -1
  269. package/dist/internals/helpers/math.js.map +1 -1
  270. package/dist/internals/helpers/number.cjs.map +1 -1
  271. package/dist/internals/helpers/number.js.map +1 -1
  272. package/dist/internals/helpers/object.cjs.map +1 -1
  273. package/dist/internals/helpers/object.js.map +1 -1
  274. package/dist/internals/helpers/paginate.cjs.map +1 -1
  275. package/dist/internals/helpers/paginate.js.map +1 -1
  276. package/dist/internals/helpers/promise.cjs.map +1 -1
  277. package/dist/internals/helpers/promise.js.map +1 -1
  278. package/dist/internals/helpers/prototype.cjs.map +1 -1
  279. package/dist/internals/helpers/prototype.js.map +1 -1
  280. package/dist/internals/helpers/retry.cjs.map +1 -1
  281. package/dist/internals/helpers/retry.js.map +1 -1
  282. package/dist/internals/helpers/retryable.cjs.map +1 -1
  283. package/dist/internals/helpers/retryable.js.map +1 -1
  284. package/dist/internals/helpers/schema.cjs.map +1 -1
  285. package/dist/internals/helpers/schema.d.cts +1 -1
  286. package/dist/internals/helpers/schema.d.ts +1 -1
  287. package/dist/internals/helpers/schema.js.map +1 -1
  288. package/dist/internals/helpers/stream.cjs.map +1 -1
  289. package/dist/internals/helpers/stream.js.map +1 -1
  290. package/dist/internals/helpers/string.cjs.map +1 -1
  291. package/dist/internals/helpers/string.js.map +1 -1
  292. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  293. package/dist/internals/helpers/weakRef.js.map +1 -1
  294. package/dist/internals/serializable.cjs.map +1 -1
  295. package/dist/internals/serializable.js.map +1 -1
  296. package/dist/internals/types.cjs.map +1 -1
  297. package/dist/internals/types.js.map +1 -1
  298. package/dist/logger/logger.cjs.map +1 -1
  299. package/dist/logger/logger.js.map +1 -1
  300. package/dist/logger/pretty.cjs.map +1 -1
  301. package/dist/logger/pretty.js.map +1 -1
  302. package/dist/memory/base.cjs.map +1 -1
  303. package/dist/memory/base.js.map +1 -1
  304. package/dist/memory/slidingMemory.cjs.map +1 -1
  305. package/dist/memory/slidingMemory.js.map +1 -1
  306. package/dist/memory/summarizeMemory.cjs.map +1 -1
  307. package/dist/memory/summarizeMemory.d.cts +1 -1
  308. package/dist/memory/summarizeMemory.d.ts +1 -1
  309. package/dist/memory/summarizeMemory.js.map +1 -1
  310. package/dist/memory/tokenMemory.cjs.map +1 -1
  311. package/dist/memory/tokenMemory.js.map +1 -1
  312. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  313. package/dist/memory/unconstrainedMemory.js.map +1 -1
  314. package/dist/parsers/errors.cjs.map +1 -1
  315. package/dist/parsers/errors.js.map +1 -1
  316. package/dist/parsers/field.cjs.map +1 -1
  317. package/dist/parsers/field.js.map +1 -1
  318. package/dist/parsers/linePrefix.cjs.map +1 -1
  319. package/dist/parsers/linePrefix.d.cts +1 -1
  320. package/dist/parsers/linePrefix.d.ts +1 -1
  321. package/dist/parsers/linePrefix.js.map +1 -1
  322. package/dist/serializer/error.cjs.map +1 -1
  323. package/dist/serializer/error.js.map +1 -1
  324. package/dist/serializer/serializer.cjs +3 -3
  325. package/dist/serializer/serializer.cjs.map +1 -1
  326. package/dist/serializer/serializer.js +2 -2
  327. package/dist/serializer/serializer.js.map +1 -1
  328. package/dist/serializer/utils.cjs.map +1 -1
  329. package/dist/serializer/utils.js.map +1 -1
  330. package/dist/template.cjs.map +1 -1
  331. package/dist/template.d.cts +1 -1
  332. package/dist/template.d.ts +1 -1
  333. package/dist/template.js.map +1 -1
  334. package/dist/tools/arxiv.cjs.map +1 -1
  335. package/dist/tools/arxiv.d.cts +2 -2
  336. package/dist/tools/arxiv.d.ts +2 -2
  337. package/dist/tools/arxiv.js.map +1 -1
  338. package/dist/tools/base.cjs.map +1 -1
  339. package/dist/tools/base.d.cts +2 -2
  340. package/dist/tools/base.d.ts +2 -2
  341. package/dist/tools/base.js.map +1 -1
  342. package/dist/tools/calculator.cjs.map +1 -1
  343. package/dist/tools/calculator.d.cts +1 -1
  344. package/dist/tools/calculator.d.ts +1 -1
  345. package/dist/tools/calculator.js.map +1 -1
  346. package/dist/tools/custom.cjs.map +1 -1
  347. package/dist/tools/custom.d.cts +1 -1
  348. package/dist/tools/custom.d.ts +1 -1
  349. package/dist/tools/custom.js.map +1 -1
  350. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  351. package/dist/tools/database/elasticsearch.d.cts +1 -1
  352. package/dist/tools/database/elasticsearch.d.ts +1 -1
  353. package/dist/tools/database/elasticsearch.js.map +1 -1
  354. package/dist/tools/database/metadata.cjs.map +1 -1
  355. package/dist/tools/database/metadata.js.map +1 -1
  356. package/dist/tools/database/milvus.cjs.map +1 -1
  357. package/dist/tools/database/milvus.d.cts +1 -1
  358. package/dist/tools/database/milvus.d.ts +1 -1
  359. package/dist/tools/database/milvus.js.map +1 -1
  360. package/dist/tools/database/sql.cjs.map +1 -1
  361. package/dist/tools/database/sql.d.cts +3 -3
  362. package/dist/tools/database/sql.d.ts +3 -3
  363. package/dist/tools/database/sql.js.map +1 -1
  364. package/dist/tools/llm.cjs.map +1 -1
  365. package/dist/tools/llm.d.cts +1 -1
  366. package/dist/tools/llm.d.ts +1 -1
  367. package/dist/tools/llm.js +1 -1
  368. package/dist/tools/llm.js.map +1 -1
  369. package/dist/tools/mcp.cjs.map +1 -1
  370. package/dist/tools/mcp.d.cts +1 -1
  371. package/dist/tools/mcp.d.ts +1 -1
  372. package/dist/tools/mcp.js.map +1 -1
  373. package/dist/tools/openapi.cjs.map +1 -1
  374. package/dist/tools/openapi.d.cts +1 -1
  375. package/dist/tools/openapi.d.ts +1 -1
  376. package/dist/tools/openapi.js +1 -1
  377. package/dist/tools/openapi.js.map +1 -1
  378. package/dist/tools/python/output.cjs.map +1 -1
  379. package/dist/tools/python/output.d.cts +1 -1
  380. package/dist/tools/python/output.d.ts +1 -1
  381. package/dist/tools/python/output.js.map +1 -1
  382. package/dist/tools/python/python.cjs.map +1 -1
  383. package/dist/tools/python/python.d.cts +1 -1
  384. package/dist/tools/python/python.d.ts +1 -1
  385. package/dist/tools/python/python.js.map +1 -1
  386. package/dist/tools/python/storage.cjs.map +1 -1
  387. package/dist/tools/python/storage.js.map +1 -1
  388. package/dist/tools/search/base.cjs.map +1 -1
  389. package/dist/tools/search/base.d.cts +1 -1
  390. package/dist/tools/search/base.d.ts +1 -1
  391. package/dist/tools/search/base.js.map +1 -1
  392. package/dist/tools/search/duckDuckGoSearch.cjs +19 -19
  393. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  394. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -4
  395. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -4
  396. package/dist/tools/search/duckDuckGoSearch.js +17 -13
  397. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  398. package/dist/tools/search/googleSearch.cjs.map +1 -1
  399. package/dist/tools/search/googleSearch.d.cts +1 -1
  400. package/dist/tools/search/googleSearch.d.ts +1 -1
  401. package/dist/tools/search/googleSearch.js.map +1 -1
  402. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  403. package/dist/tools/search/searXNGSearch.d.cts +1 -1
  404. package/dist/tools/search/searXNGSearch.d.ts +1 -1
  405. package/dist/tools/search/searXNGSearch.js.map +1 -1
  406. package/dist/tools/search/wikipedia.cjs.map +1 -1
  407. package/dist/tools/search/wikipedia.d.cts +1 -1
  408. package/dist/tools/search/wikipedia.d.ts +1 -1
  409. package/dist/tools/search/wikipedia.js.map +1 -1
  410. package/dist/tools/similarity.cjs.map +1 -1
  411. package/dist/tools/similarity.d.cts +2 -2
  412. package/dist/tools/similarity.d.ts +2 -2
  413. package/dist/tools/similarity.js.map +1 -1
  414. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  415. package/dist/tools/weather/openMeteo.d.cts +2 -2
  416. package/dist/tools/weather/openMeteo.d.ts +2 -2
  417. package/dist/tools/weather/openMeteo.js.map +1 -1
  418. package/dist/tools/web/webCrawler.cjs.map +1 -1
  419. package/dist/tools/web/webCrawler.d.cts +2 -2
  420. package/dist/tools/web/webCrawler.d.ts +2 -2
  421. package/dist/tools/web/webCrawler.js.map +1 -1
  422. package/dist/version.cjs +1 -1
  423. package/dist/version.cjs.map +1 -1
  424. package/dist/version.js +1 -1
  425. package/dist/version.js.map +1 -1
  426. package/dist/workflows/agent.cjs.map +1 -1
  427. package/dist/workflows/agent.d.cts +10 -10
  428. package/dist/workflows/agent.d.ts +10 -10
  429. package/dist/workflows/agent.js.map +1 -1
  430. package/dist/workflows/workflow.cjs.map +1 -1
  431. package/dist/workflows/workflow.d.cts +1 -1
  432. package/dist/workflows/workflow.d.ts +1 -1
  433. package/dist/workflows/workflow.js.map +1 -1
  434. package/package.json +20 -20
  435. package/dist/{emitter-C9EN5B0j.d.cts → emitter-BWtGHYn0.d.cts} +1 -1
  436. package/dist/{emitter-BxVxGBbJ.d.ts → emitter-l0W9gC1A.d.ts} +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/ollama/backend/embedding.ts"],"names":["OllamaEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OllamaClient","ensure","instance","embedding"],"mappings":";;;;;;;;AAyBO,MAAMA,6BAA6BC,kCAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,eAAO,wBAA0B,EAAA,kBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,wBAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OllamaProvider } from \"ollama-ai-provider\";\nimport { OllamaClient, OllamaClientSettings } from \"@/adapters/ollama/backend/client.js\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OllamaParameters = Parameters<OllamaProvider[\"textEmbeddingModel\"]>;\nexport type OllamaEmbeddingModelId = NonNullable<OllamaParameters[0]>;\nexport type OllamaEmbeddingModelSettings = NonNullable<OllamaParameters[1]>;\n\nexport class OllamaEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OllamaEmbeddingModelId = getEnv(\"OLLAMA_EMBEDDING_MODEL\", \"nomic-embed-text\"),\n settings: OllamaEmbeddingModelSettings = {},\n client?: OllamaClient | OllamaClientSettings,\n ) {\n const model = OllamaClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
1
+ {"version":3,"sources":["embedding.ts"],"names":["OllamaEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OllamaClient","ensure","instance","embedding"],"mappings":";;;;;;;;AAyBO,MAAMA,6BAA6BC,kCAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,eAAO,wBAA0B,EAAA,kBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,wBAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OllamaProvider } from \"ollama-ai-provider\";\nimport { OllamaClient, OllamaClientSettings } from \"@/adapters/ollama/backend/client.js\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OllamaParameters = Parameters<OllamaProvider[\"textEmbeddingModel\"]>;\nexport type OllamaEmbeddingModelId = NonNullable<OllamaParameters[0]>;\nexport type OllamaEmbeddingModelSettings = NonNullable<OllamaParameters[1]>;\n\nexport class OllamaEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OllamaEmbeddingModelId = getEnv(\"OLLAMA_EMBEDDING_MODEL\", \"nomic-embed-text\"),\n settings: OllamaEmbeddingModelSettings = {},\n client?: OllamaClient | OllamaClientSettings,\n ) {\n const model = OllamaClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
@@ -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-C9EN5B0j.cjs';
10
+ import '../../../emitter-BWtGHYn0.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-BxVxGBbJ.js';
10
+ import '../../../emitter-l0W9gC1A.js';
11
11
  import '../../../internals/helpers/promise.js';
12
12
  import '../../../errors.js';
13
13
  import '../../../backend/utils.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/ollama/backend/embedding.ts"],"names":["OllamaEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OllamaClient","ensure","instance","embedding"],"mappings":";;;;;;AAyBO,MAAMA,6BAA6BC,oBAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,OAAO,wBAA0B,EAAA,kBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OllamaProvider } from \"ollama-ai-provider\";\nimport { OllamaClient, OllamaClientSettings } from \"@/adapters/ollama/backend/client.js\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OllamaParameters = Parameters<OllamaProvider[\"textEmbeddingModel\"]>;\nexport type OllamaEmbeddingModelId = NonNullable<OllamaParameters[0]>;\nexport type OllamaEmbeddingModelSettings = NonNullable<OllamaParameters[1]>;\n\nexport class OllamaEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OllamaEmbeddingModelId = getEnv(\"OLLAMA_EMBEDDING_MODEL\", \"nomic-embed-text\"),\n settings: OllamaEmbeddingModelSettings = {},\n client?: OllamaClient | OllamaClientSettings,\n ) {\n const model = OllamaClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
1
+ {"version":3,"sources":["embedding.ts"],"names":["OllamaEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OllamaClient","ensure","instance","embedding"],"mappings":";;;;;;AAyBO,MAAMA,6BAA6BC,oBAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,OAAO,wBAA0B,EAAA,kBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OllamaProvider } from \"ollama-ai-provider\";\nimport { OllamaClient, OllamaClientSettings } from \"@/adapters/ollama/backend/client.js\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OllamaParameters = Parameters<OllamaProvider[\"textEmbeddingModel\"]>;\nexport type OllamaEmbeddingModelId = NonNullable<OllamaParameters[0]>;\nexport type OllamaEmbeddingModelSettings = NonNullable<OllamaParameters[1]>;\n\nexport class OllamaEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OllamaEmbeddingModelId = getEnv(\"OLLAMA_EMBEDDING_MODEL\", \"nomic-embed-text\"),\n settings: OllamaEmbeddingModelSettings = {},\n client?: OllamaClient | OllamaClientSettings,\n ) {\n const model = OllamaClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/openai/backend/chat.ts"],"names":["OpenAIChatModel","VercelChatModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","chat"],"mappings":";;;;;;;;AAyBO,MAAMA,wBAAwBC,wBAAAA,CAAAA;EAzBrC;;;EA0BEC,WACEC,CAAAA,OAAAA,GAA6BC,eAAO,mBAAqB,EAAA,QAAA,GACzDC,QAAoC,GAAA,IACpCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,wBAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,IAAAA,CAAKR,SAASE,QAAAA,CAAAA;AACjE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","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 { OpenAIProvider } from \"@ai-sdk/openai\";\nimport { OpenAIClient, OpenAIClientSettings } from \"@/adapters/openai/backend/client.js\";\nimport { VercelChatModel } from \"@/adapters/vercel/backend/chat.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"chat\"]>;\nexport type OpenAIChatModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIChatModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIChatModel extends VercelChatModel {\n constructor(\n modelId: OpenAIChatModelId = getEnv(\"OPENAI_CHAT_MODEL\", \"gpt-4o\"),\n settings: OpenAIChatModelSettings = {},\n client?: OpenAIClient | OpenAIClientSettings,\n ) {\n const model = OpenAIClient.ensure(client).instance.chat(modelId, settings);\n super(model);\n }\n}\n"]}
1
+ {"version":3,"sources":["chat.ts"],"names":["OpenAIChatModel","VercelChatModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","chat"],"mappings":";;;;;;;;AAyBO,MAAMA,wBAAwBC,wBAAAA,CAAAA;EAzBrC;;;EA0BEC,WACEC,CAAAA,OAAAA,GAA6BC,eAAO,mBAAqB,EAAA,QAAA,GACzDC,QAAoC,GAAA,IACpCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,wBAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,IAAAA,CAAKR,SAASE,QAAAA,CAAAA;AACjE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","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 { OpenAIProvider } from \"@ai-sdk/openai\";\nimport { OpenAIClient, OpenAIClientSettings } from \"@/adapters/openai/backend/client.js\";\nimport { VercelChatModel } from \"@/adapters/vercel/backend/chat.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"chat\"]>;\nexport type OpenAIChatModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIChatModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIChatModel extends VercelChatModel {\n constructor(\n modelId: OpenAIChatModelId = getEnv(\"OPENAI_CHAT_MODEL\", \"gpt-4o\"),\n settings: OpenAIChatModelSettings = {},\n client?: OpenAIClient | OpenAIClientSettings,\n ) {\n const model = OpenAIClient.ensure(client).instance.chat(modelId, settings);\n super(model);\n }\n}\n"]}
@@ -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-C9EN5B0j.cjs';
12
+ import '../../../emitter-BWtGHYn0.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-BxVxGBbJ.js';
12
+ import '../../../emitter-l0W9gC1A.js';
13
13
  import '../../../internals/helpers/promise.js';
14
14
  import '../../../errors.js';
15
15
  import 'promise-based-task';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/openai/backend/chat.ts"],"names":["OpenAIChatModel","VercelChatModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","chat"],"mappings":";;;;;;AAyBO,MAAMA,wBAAwBC,eAAAA,CAAAA;EAzBrC;;;EA0BEC,WACEC,CAAAA,OAAAA,GAA6BC,OAAO,mBAAqB,EAAA,QAAA,GACzDC,QAAoC,GAAA,IACpCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,IAAAA,CAAKR,SAASE,QAAAA,CAAAA;AACjE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","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 { OpenAIProvider } from \"@ai-sdk/openai\";\nimport { OpenAIClient, OpenAIClientSettings } from \"@/adapters/openai/backend/client.js\";\nimport { VercelChatModel } from \"@/adapters/vercel/backend/chat.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"chat\"]>;\nexport type OpenAIChatModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIChatModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIChatModel extends VercelChatModel {\n constructor(\n modelId: OpenAIChatModelId = getEnv(\"OPENAI_CHAT_MODEL\", \"gpt-4o\"),\n settings: OpenAIChatModelSettings = {},\n client?: OpenAIClient | OpenAIClientSettings,\n ) {\n const model = OpenAIClient.ensure(client).instance.chat(modelId, settings);\n super(model);\n }\n}\n"]}
1
+ {"version":3,"sources":["chat.ts"],"names":["OpenAIChatModel","VercelChatModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","chat"],"mappings":";;;;;;AAyBO,MAAMA,wBAAwBC,eAAAA,CAAAA;EAzBrC;;;EA0BEC,WACEC,CAAAA,OAAAA,GAA6BC,OAAO,mBAAqB,EAAA,QAAA,GACzDC,QAAoC,GAAA,IACpCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,IAAAA,CAAKR,SAASE,QAAAA,CAAAA;AACjE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","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 { OpenAIProvider } from \"@ai-sdk/openai\";\nimport { OpenAIClient, OpenAIClientSettings } from \"@/adapters/openai/backend/client.js\";\nimport { VercelChatModel } from \"@/adapters/vercel/backend/chat.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"chat\"]>;\nexport type OpenAIChatModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIChatModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIChatModel extends VercelChatModel {\n constructor(\n modelId: OpenAIChatModelId = getEnv(\"OPENAI_CHAT_MODEL\", \"gpt-4o\"),\n settings: OpenAIChatModelSettings = {},\n client?: OpenAIClient | OpenAIClientSettings,\n ) {\n const model = OpenAIClient.ensure(client).instance.chat(modelId, settings);\n super(model);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/openai/backend/client.ts"],"names":["OpenAIClient","BackendClient","create","extraHeaders","parseEnv","z","preprocess","value","Object","fromEntries","String","split","filter","pair","includes","map","record","string","createOpenAI","settings","compatibility","apiKey","getEnv","baseURL","headers"],"mappings":";;;;;;;;;AAuBO,MAAMA,qBAAqBC,wBAAAA,CAAAA;EAvBlC;;;EAwBYC,MAAyB,GAAA;AACjC,IAAA,MAAMC,eAAeC,gBACnB,CAAA,oBAAA,EACAC,KAAEC,CAAAA,UAAAA,CAAW,CAACC,KAAAA,KAAAA;AACZ,MAAOC,OAAAA,MAAAA,CAAOC,WACZC,CAAAA,MAAAA,CAAOH,KAAS,IAAA,EAAA,EACbI,KAAM,CAAA,GAAA,CACNC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,QAAS,CAAA,GAAA,CAAA,CAAA,CAC/BC,GAAI,CAAA,CAACF,SAASA,IAAKF,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAA,CAAA;AAEhC,KAAA,EAAGN,MAAEW,MAAOX,CAAAA,KAAAA,CAAEY,MAAM,EAAA,CAAA,CAAA,CAAA;AAGtB,IAAA,OAAOC,mBAAa,CAAA;AAClB,MAAA,GAAG,IAAKC,CAAAA,QAAAA;MACRC,aAAe,EAAA,YAAA;AACfC,MAAAA,MAAAA,EAAQ,IAAKF,CAAAA,QAAAA,EAAUE,MAAUC,IAAAA,cAAAA,CAAO,gBAAA,CAAA;AACxCC,MAAAA,OAAAA,EAAS,IAAKJ,CAAAA,QAAAA,EAAUI,OAAWD,IAAAA,cAAAA,CAAO,qBAAA,CAAA;MAC1CE,OAAS,EAAA;QACP,GAAGrB,YAAAA;AACH,QAAA,GAAG,KAAKgB,QAAUK,EAAAA;AACpB;KACF,CAAA;AACF;AACF","file":"client.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 { createOpenAI, OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { getEnv, parseEnv } from \"@/internals/env.js\";\nimport { z } from \"zod\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport type OpenAIClientSettings = OpenAIProviderSettings;\n\nexport class OpenAIClient extends BackendClient<OpenAIClientSettings, OpenAIProvider> {\n protected create(): OpenAIProvider {\n const extraHeaders = parseEnv(\n \"OPENAI_API_HEADERS\",\n z.preprocess((value) => {\n return Object.fromEntries(\n String(value || \"\")\n .split(\",\")\n .filter((pair) => pair.includes(\"=\"))\n .map((pair) => pair.split(\"=\")),\n );\n }, z.record(z.string())),\n );\n\n return createOpenAI({\n ...this.settings,\n compatibility: \"compatible\",\n apiKey: this.settings?.apiKey || getEnv(\"OPENAI_API_KEY\"),\n baseURL: this.settings?.baseURL || getEnv(\"OPENAI_API_ENDPOINT\"),\n headers: {\n ...extraHeaders,\n ...this.settings?.headers,\n },\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["client.ts"],"names":["OpenAIClient","BackendClient","create","extraHeaders","parseEnv","z","preprocess","value","Object","fromEntries","String","split","filter","pair","includes","map","record","string","createOpenAI","settings","compatibility","apiKey","getEnv","baseURL","headers"],"mappings":";;;;;;;;;AAuBO,MAAMA,qBAAqBC,wBAAAA,CAAAA;EAvBlC;;;EAwBYC,MAAyB,GAAA;AACjC,IAAA,MAAMC,eAAeC,gBACnB,CAAA,oBAAA,EACAC,KAAEC,CAAAA,UAAAA,CAAW,CAACC,KAAAA,KAAAA;AACZ,MAAOC,OAAAA,MAAAA,CAAOC,WACZC,CAAAA,MAAAA,CAAOH,KAAS,IAAA,EAAA,EACbI,KAAM,CAAA,GAAA,CACNC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,QAAS,CAAA,GAAA,CAAA,CAAA,CAC/BC,GAAI,CAAA,CAACF,SAASA,IAAKF,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAA,CAAA;AAEhC,KAAA,EAAGN,MAAEW,MAAOX,CAAAA,KAAAA,CAAEY,MAAM,EAAA,CAAA,CAAA,CAAA;AAGtB,IAAA,OAAOC,mBAAa,CAAA;AAClB,MAAA,GAAG,IAAKC,CAAAA,QAAAA;MACRC,aAAe,EAAA,YAAA;AACfC,MAAAA,MAAAA,EAAQ,IAAKF,CAAAA,QAAAA,EAAUE,MAAUC,IAAAA,cAAAA,CAAO,gBAAA,CAAA;AACxCC,MAAAA,OAAAA,EAAS,IAAKJ,CAAAA,QAAAA,EAAUI,OAAWD,IAAAA,cAAAA,CAAO,qBAAA,CAAA;MAC1CE,OAAS,EAAA;QACP,GAAGrB,YAAAA;AACH,QAAA,GAAG,KAAKgB,QAAUK,EAAAA;AACpB;KACF,CAAA;AACF;AACF","file":"client.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 { createOpenAI, OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { getEnv, parseEnv } from \"@/internals/env.js\";\nimport { z } from \"zod\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport type OpenAIClientSettings = OpenAIProviderSettings;\n\nexport class OpenAIClient extends BackendClient<OpenAIClientSettings, OpenAIProvider> {\n protected create(): OpenAIProvider {\n const extraHeaders = parseEnv(\n \"OPENAI_API_HEADERS\",\n z.preprocess((value) => {\n return Object.fromEntries(\n String(value || \"\")\n .split(\",\")\n .filter((pair) => pair.includes(\"=\"))\n .map((pair) => pair.split(\"=\")),\n );\n }, z.record(z.string())),\n );\n\n return createOpenAI({\n ...this.settings,\n compatibility: \"compatible\",\n apiKey: this.settings?.apiKey || getEnv(\"OPENAI_API_KEY\"),\n baseURL: this.settings?.baseURL || getEnv(\"OPENAI_API_ENDPOINT\"),\n headers: {\n ...extraHeaders,\n ...this.settings?.headers,\n },\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/openai/backend/client.ts"],"names":["OpenAIClient","BackendClient","create","extraHeaders","parseEnv","z","preprocess","value","Object","fromEntries","String","split","filter","pair","includes","map","record","string","createOpenAI","settings","compatibility","apiKey","getEnv","baseURL","headers"],"mappings":";;;;;;;AAuBO,MAAMA,qBAAqBC,aAAAA,CAAAA;EAvBlC;;;EAwBYC,MAAyB,GAAA;AACjC,IAAA,MAAMC,eAAeC,QACnB,CAAA,oBAAA,EACAC,CAAEC,CAAAA,UAAAA,CAAW,CAACC,KAAAA,KAAAA;AACZ,MAAOC,OAAAA,MAAAA,CAAOC,WACZC,CAAAA,MAAAA,CAAOH,KAAS,IAAA,EAAA,EACbI,KAAM,CAAA,GAAA,CACNC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,QAAS,CAAA,GAAA,CAAA,CAAA,CAC/BC,GAAI,CAAA,CAACF,SAASA,IAAKF,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAA,CAAA;AAEhC,KAAA,EAAGN,EAAEW,MAAOX,CAAAA,CAAAA,CAAEY,MAAM,EAAA,CAAA,CAAA,CAAA;AAGtB,IAAA,OAAOC,YAAa,CAAA;AAClB,MAAA,GAAG,IAAKC,CAAAA,QAAAA;MACRC,aAAe,EAAA,YAAA;AACfC,MAAAA,MAAAA,EAAQ,IAAKF,CAAAA,QAAAA,EAAUE,MAAUC,IAAAA,MAAAA,CAAO,gBAAA,CAAA;AACxCC,MAAAA,OAAAA,EAAS,IAAKJ,CAAAA,QAAAA,EAAUI,OAAWD,IAAAA,MAAAA,CAAO,qBAAA,CAAA;MAC1CE,OAAS,EAAA;QACP,GAAGrB,YAAAA;AACH,QAAA,GAAG,KAAKgB,QAAUK,EAAAA;AACpB;KACF,CAAA;AACF;AACF","file":"client.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 { createOpenAI, OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { getEnv, parseEnv } from \"@/internals/env.js\";\nimport { z } from \"zod\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport type OpenAIClientSettings = OpenAIProviderSettings;\n\nexport class OpenAIClient extends BackendClient<OpenAIClientSettings, OpenAIProvider> {\n protected create(): OpenAIProvider {\n const extraHeaders = parseEnv(\n \"OPENAI_API_HEADERS\",\n z.preprocess((value) => {\n return Object.fromEntries(\n String(value || \"\")\n .split(\",\")\n .filter((pair) => pair.includes(\"=\"))\n .map((pair) => pair.split(\"=\")),\n );\n }, z.record(z.string())),\n );\n\n return createOpenAI({\n ...this.settings,\n compatibility: \"compatible\",\n apiKey: this.settings?.apiKey || getEnv(\"OPENAI_API_KEY\"),\n baseURL: this.settings?.baseURL || getEnv(\"OPENAI_API_ENDPOINT\"),\n headers: {\n ...extraHeaders,\n ...this.settings?.headers,\n },\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["client.ts"],"names":["OpenAIClient","BackendClient","create","extraHeaders","parseEnv","z","preprocess","value","Object","fromEntries","String","split","filter","pair","includes","map","record","string","createOpenAI","settings","compatibility","apiKey","getEnv","baseURL","headers"],"mappings":";;;;;;;AAuBO,MAAMA,qBAAqBC,aAAAA,CAAAA;EAvBlC;;;EAwBYC,MAAyB,GAAA;AACjC,IAAA,MAAMC,eAAeC,QACnB,CAAA,oBAAA,EACAC,CAAEC,CAAAA,UAAAA,CAAW,CAACC,KAAAA,KAAAA;AACZ,MAAOC,OAAAA,MAAAA,CAAOC,WACZC,CAAAA,MAAAA,CAAOH,KAAS,IAAA,EAAA,EACbI,KAAM,CAAA,GAAA,CACNC,CAAAA,MAAAA,CAAO,CAACC,IAAAA,KAASA,KAAKC,QAAS,CAAA,GAAA,CAAA,CAAA,CAC/BC,GAAI,CAAA,CAACF,SAASA,IAAKF,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAA,CAAA;AAEhC,KAAA,EAAGN,EAAEW,MAAOX,CAAAA,CAAAA,CAAEY,MAAM,EAAA,CAAA,CAAA,CAAA;AAGtB,IAAA,OAAOC,YAAa,CAAA;AAClB,MAAA,GAAG,IAAKC,CAAAA,QAAAA;MACRC,aAAe,EAAA,YAAA;AACfC,MAAAA,MAAAA,EAAQ,IAAKF,CAAAA,QAAAA,EAAUE,MAAUC,IAAAA,MAAAA,CAAO,gBAAA,CAAA;AACxCC,MAAAA,OAAAA,EAAS,IAAKJ,CAAAA,QAAAA,EAAUI,OAAWD,IAAAA,MAAAA,CAAO,qBAAA,CAAA;MAC1CE,OAAS,EAAA;QACP,GAAGrB,YAAAA;AACH,QAAA,GAAG,KAAKgB,QAAUK,EAAAA;AACpB;KACF,CAAA;AACF;AACF","file":"client.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 { createOpenAI, OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { getEnv, parseEnv } from \"@/internals/env.js\";\nimport { z } from \"zod\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport type OpenAIClientSettings = OpenAIProviderSettings;\n\nexport class OpenAIClient extends BackendClient<OpenAIClientSettings, OpenAIProvider> {\n protected create(): OpenAIProvider {\n const extraHeaders = parseEnv(\n \"OPENAI_API_HEADERS\",\n z.preprocess((value) => {\n return Object.fromEntries(\n String(value || \"\")\n .split(\",\")\n .filter((pair) => pair.includes(\"=\"))\n .map((pair) => pair.split(\"=\")),\n );\n }, z.record(z.string())),\n );\n\n return createOpenAI({\n ...this.settings,\n compatibility: \"compatible\",\n apiKey: this.settings?.apiKey || getEnv(\"OPENAI_API_KEY\"),\n baseURL: this.settings?.baseURL || getEnv(\"OPENAI_API_ENDPOINT\"),\n headers: {\n ...extraHeaders,\n ...this.settings?.headers,\n },\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/openai/backend/embedding.ts"],"names":["OpenAIEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","embedding"],"mappings":";;;;;;;;AAyBO,MAAMA,6BAA6BC,kCAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,eAAO,wBAA0B,EAAA,wBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,wBAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OpenAIClient } from \"@/adapters/openai/backend/client.js\";\nimport { OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"embedding\"]>;\nexport type OpenAIEmbeddingModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIEmbeddingModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OpenAIEmbeddingModelId = getEnv(\"OPENAI_EMBEDDING_MODEL\", \"text-embedding-3-small\"),\n settings: OpenAIEmbeddingModelSettings = {},\n client?: OpenAIProviderSettings | OpenAIClient,\n ) {\n const model = OpenAIClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
1
+ {"version":3,"sources":["embedding.ts"],"names":["OpenAIEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","embedding"],"mappings":";;;;;;;;AAyBO,MAAMA,6BAA6BC,kCAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,eAAO,wBAA0B,EAAA,wBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,wBAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OpenAIClient } from \"@/adapters/openai/backend/client.js\";\nimport { OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"embedding\"]>;\nexport type OpenAIEmbeddingModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIEmbeddingModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OpenAIEmbeddingModelId = getEnv(\"OPENAI_EMBEDDING_MODEL\", \"text-embedding-3-small\"),\n settings: OpenAIEmbeddingModelSettings = {},\n client?: OpenAIProviderSettings | OpenAIClient,\n ) {\n const model = OpenAIClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { OpenAIClient } from './client.cjs';
2
- import { OpenAIProviderSettings, OpenAIProvider } from '@ai-sdk/openai';
2
+ import { OpenAIProvider, OpenAIProviderSettings } from '@ai-sdk/openai';
3
3
  import { VercelEmbeddingModel } from '../../vercel/backend/embedding.cjs';
4
4
  import '../../../backend/client.cjs';
5
5
  import '../../../internals/serializable.cjs';
@@ -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-C9EN5B0j.cjs';
10
+ import '../../../emitter-BWtGHYn0.cjs';
11
11
  import '../../../internals/helpers/promise.cjs';
12
12
  import '../../../errors.cjs';
13
13
  import '../../../backend/utils.cjs';
@@ -1,5 +1,5 @@
1
1
  import { OpenAIClient } from './client.js';
2
- import { OpenAIProviderSettings, OpenAIProvider } from '@ai-sdk/openai';
2
+ import { OpenAIProvider, OpenAIProviderSettings } from '@ai-sdk/openai';
3
3
  import { VercelEmbeddingModel } from '../../vercel/backend/embedding.js';
4
4
  import '../../../backend/client.js';
5
5
  import '../../../internals/serializable.js';
@@ -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-BxVxGBbJ.js';
10
+ import '../../../emitter-l0W9gC1A.js';
11
11
  import '../../../internals/helpers/promise.js';
12
12
  import '../../../errors.js';
13
13
  import '../../../backend/utils.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/openai/backend/embedding.ts"],"names":["OpenAIEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","embedding"],"mappings":";;;;;;AAyBO,MAAMA,6BAA6BC,oBAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,OAAO,wBAA0B,EAAA,wBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OpenAIClient } from \"@/adapters/openai/backend/client.js\";\nimport { OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"embedding\"]>;\nexport type OpenAIEmbeddingModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIEmbeddingModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OpenAIEmbeddingModelId = getEnv(\"OPENAI_EMBEDDING_MODEL\", \"text-embedding-3-small\"),\n settings: OpenAIEmbeddingModelSettings = {},\n client?: OpenAIProviderSettings | OpenAIClient,\n ) {\n const model = OpenAIClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
1
+ {"version":3,"sources":["embedding.ts"],"names":["OpenAIEmbeddingModel","VercelEmbeddingModel","constructor","modelId","getEnv","settings","client","model","OpenAIClient","ensure","instance","embedding"],"mappings":";;;;;;AAyBO,MAAMA,6BAA6BC,oBAAAA,CAAAA;EAzB1C;;;EA0BEC,WACEC,CAAAA,OAAAA,GAAkCC,OAAO,wBAA0B,EAAA,wBAAA,GACnEC,QAAyC,GAAA,IACzCC,MACA,EAAA;AACA,IAAMC,MAAAA,KAAAA,GAAQC,aAAaC,MAAOH,CAAAA,MAAAA,EAAQI,QAASC,CAAAA,SAAAA,CAAUR,SAASE,QAAAA,CAAAA;AACtE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;AACF","file":"embedding.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 { OpenAIClient } from \"@/adapters/openai/backend/client.js\";\nimport { OpenAIProvider, OpenAIProviderSettings } from \"@ai-sdk/openai\";\nimport { VercelEmbeddingModel } from \"@/adapters/vercel/backend/embedding.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\ntype OpenAIParameters = Parameters<OpenAIProvider[\"embedding\"]>;\nexport type OpenAIEmbeddingModelId = NonNullable<OpenAIParameters[0]>;\nexport type OpenAIEmbeddingModelSettings = NonNullable<OpenAIParameters[1]>;\n\nexport class OpenAIEmbeddingModel extends VercelEmbeddingModel {\n constructor(\n modelId: OpenAIEmbeddingModelId = getEnv(\"OPENAI_EMBEDDING_MODEL\", \"text-embedding-3-small\"),\n settings: OpenAIEmbeddingModelSettings = {},\n client?: OpenAIProviderSettings | OpenAIClient,\n ) {\n const model = OpenAIClient.ensure(client).instance.embedding(modelId, settings);\n super(model);\n }\n}\n"]}
@@ -153,9 +153,9 @@ class VercelChatModel extends chat_cjs.ChatModel {
153
153
  transformMessages(messages) {
154
154
  return messages.flatMap((msg) => {
155
155
  if (msg.role === "tool") {
156
- return new message_cjs.ToolMessage(msg.content, msg.experimental_providerMetadata);
156
+ return new message_cjs.ToolMessage(msg.content, msg.providerOptions);
157
157
  }
158
- return new message_cjs.AssistantMessage(msg.content, msg.experimental_providerMetadata);
158
+ return new message_cjs.AssistantMessage(msg.content, msg.providerOptions);
159
159
  });
160
160
  }
161
161
  createSnapshot() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/vercel/backend/chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","generateObject","temperature","abortSignal","signal","output","mode","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","text","mapToObj","flatMap","experimental_providerMetadata","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","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 ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n output: \"object\",\n mode: \"json\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n }\n return { role: msg.role as \"user\" | \"system\", content: msg.text };\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.experimental_providerMetadata);\n }\n return new AssistantMessage(msg.content, msg.experimental_providerMetadata);\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","generateObject","temperature","abortSignal","signal","output","mode","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","text","mapToObj","flatMap","providerOptions","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","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 ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n TextPart,\n ToolCallPart,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n output: \"object\",\n mode: \"json\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n }\n return { role: msg.role as \"user\" | \"system\", content: msg.text };\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.providerOptions);\n }\n return new AssistantMessage(\n msg.content as TextPart | ToolCallPart | string,\n msg.providerOptions,\n );\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { ChatModel, ChatModelEvents, ChatModelInput, ChatModelOutput, ChatModelObjectInput, ChatModelObjectOutput, ChatModelCache, ChatModelParameters } from '../../../backend/chat.cjs';
2
2
  import { LanguageModelV1, generateText, CoreAssistantMessage, CoreToolMessage } from 'ai';
3
- import { E as Emitter } from '../../../emitter-C9EN5B0j.cjs';
3
+ import { E as Emitter } from '../../../emitter-BWtGHYn0.cjs';
4
4
  import { Message } from '../../../backend/message.cjs';
5
5
  import { GetRunContext } from '../../../context.cjs';
6
6
  import '../../../internals/serializable.cjs';
@@ -1,6 +1,6 @@
1
1
  import { ChatModel, ChatModelEvents, ChatModelInput, ChatModelOutput, ChatModelObjectInput, ChatModelObjectOutput, ChatModelCache, ChatModelParameters } from '../../../backend/chat.js';
2
2
  import { LanguageModelV1, generateText, CoreAssistantMessage, CoreToolMessage } from 'ai';
3
- import { E as Emitter } from '../../../emitter-BxVxGBbJ.js';
3
+ import { E as Emitter } from '../../../emitter-l0W9gC1A.js';
4
4
  import { Message } from '../../../backend/message.js';
5
5
  import { GetRunContext } from '../../../context.js';
6
6
  import '../../../internals/serializable.js';
@@ -151,9 +151,9 @@ class VercelChatModel extends ChatModel {
151
151
  transformMessages(messages) {
152
152
  return messages.flatMap((msg) => {
153
153
  if (msg.role === "tool") {
154
- return new ToolMessage(msg.content, msg.experimental_providerMetadata);
154
+ return new ToolMessage(msg.content, msg.providerOptions);
155
155
  }
156
- return new AssistantMessage(msg.content, msg.experimental_providerMetadata);
156
+ return new AssistantMessage(msg.content, msg.providerOptions);
157
157
  });
158
158
  }
159
159
  createSnapshot() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/vercel/backend/chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","generateObject","temperature","abortSignal","signal","output","mode","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","text","mapToObj","flatMap","experimental_providerMetadata","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","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 ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n output: \"object\",\n mode: \"json\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n }\n return { role: msg.role as \"user\" | \"system\", content: msg.text };\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.experimental_providerMetadata);\n }\n return new AssistantMessage(msg.content, msg.experimental_providerMetadata);\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["chat.ts"],"names":["VercelChatModel","ChatModel","emitter","supportsToolStreaming","constructor","model","modelId","ValueError","Emitter","root","child","namespace","providerId","creator","provider","split","toCamelCase","_create","input","_run","finishReason","usage","response","messages","generateText","transformInput","ChatModelOutput","transformMessages","_createStructure","schema","run","generateObject","temperature","abortSignal","signal","output","mode","object","_createStream","isEmpty","tools","fullStream","streamText","lastChunk","event","message","type","AssistantMessage","textDelta","toolCallId","toolName","args","ChatModelError","error","ToolMessage","result","Error","Promise","all","map","tool","name","description","parameters","jsonSchema","getInputJsonSchema","msg","role","content","text","mapToObj","flatMap","providerOptions","createSnapshot","loadSnapshot","snapshot","instance","fromName","destroy","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 ChatModelInput,\n ChatModel,\n ChatModelOutput,\n ChatModelEvents,\n ChatModelObjectInput,\n ChatModelObjectOutput,\n} from \"@/backend/chat.js\";\nimport {\n CoreAssistantMessage,\n CoreMessage,\n CoreToolMessage,\n generateObject,\n generateText,\n jsonSchema,\n LanguageModelV1,\n streamText,\n TextPart,\n ToolCallPart,\n} from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { AssistantMessage, Message, ToolMessage } from \"@/backend/message.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { ValueError } from \"@/errors.js\";\nimport { isEmpty, mapToObj, toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\nimport { ChatModelError } from \"@/backend/errors.js\";\n\nexport abstract class VercelChatModel<\n M extends LanguageModelV1 = LanguageModelV1,\n> extends ChatModel {\n public readonly emitter: Emitter<ChatModelEvents>;\n public readonly supportsToolStreaming: boolean = true;\n\n constructor(private readonly model: M) {\n super();\n if (!this.modelId) {\n throw new ValueError(\"No modelId has been provided!\");\n }\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"chat\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(input: ChatModelInput, _run: GetRunContext<this>) {\n const {\n finishReason,\n usage,\n response: { messages },\n } = await generateText(await this.transformInput(input));\n\n return new ChatModelOutput(this.transformMessages(messages), usage, finishReason);\n }\n\n protected async _createStructure<T>(\n { schema, ...input }: ChatModelObjectInput<T>,\n run: GetRunContext<this>,\n ): Promise<ChatModelObjectOutput<T>> {\n const response = await generateObject({\n temperature: 0,\n ...(await this.transformInput(input)),\n schema,\n abortSignal: run.signal,\n model: this.model,\n output: \"object\",\n mode: \"json\",\n });\n\n return { object: response.object };\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n if (!this.supportsToolStreaming && !isEmpty(input.tools ?? [])) {\n const response = await this._create(input, run);\n yield response;\n return;\n }\n\n const { fullStream, usage, finishReason, response } = streamText({\n ...(await this.transformInput(input)),\n abortSignal: run.signal,\n });\n\n let lastChunk: ChatModelOutput | null = null;\n for await (const event of fullStream) {\n let message: Message;\n switch (event.type) {\n case \"text-delta\":\n message = new AssistantMessage(event.textDelta);\n break;\n case \"tool-call\":\n message = new AssistantMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n args: event.args,\n });\n break;\n case \"error\":\n throw new ChatModelError(\"Unhandled error\", [event.error as Error]);\n case \"step-finish\":\n case \"step-start\":\n continue;\n case \"tool-result\":\n message = new ToolMessage({\n type: event.type,\n toolCallId: event.toolCallId,\n toolName: event.toolName,\n result: event.result,\n });\n break;\n case \"tool-call-streaming-start\":\n case \"tool-call-delta\":\n continue;\n case \"finish\":\n continue;\n default:\n throw new Error(`Unhandled event \"${event.type}\"`);\n }\n lastChunk = new ChatModelOutput([message]);\n yield lastChunk;\n }\n\n if (!lastChunk) {\n throw new ChatModelError(\"No chunks have been received!\");\n }\n lastChunk.usage = await usage;\n lastChunk.finishReason = await finishReason;\n await response;\n }\n\n protected async transformInput(\n input: ChatModelInput,\n ): Promise<Parameters<typeof generateText<Record<string, any>>>[0]> {\n const tools = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n name: tool.name,\n description: tool.description,\n parameters: jsonSchema(await tool.getInputJsonSchema()),\n })),\n );\n\n const messages = input.messages.map((msg): CoreMessage => {\n if (msg instanceof AssistantMessage) {\n return { role: \"assistant\", content: msg.content };\n } else if (msg instanceof ToolMessage) {\n return { role: \"tool\", content: msg.content };\n }\n return { role: msg.role as \"user\" | \"system\", content: msg.text };\n });\n\n return {\n ...this.parameters,\n ...input,\n model: this.model,\n tools: mapToObj(tools, ({ name, ...tool }) => [name, tool]),\n messages,\n };\n }\n\n protected transformMessages(messages: (CoreAssistantMessage | CoreToolMessage)[]): Message[] {\n return messages.flatMap((msg) => {\n if (msg.role === \"tool\") {\n return new ToolMessage(msg.content, msg.providerOptions);\n }\n return new AssistantMessage(\n msg.content as TextPart | ToolCallPart | string,\n msg.providerOptions,\n );\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.modelId,\n supportsToolStreaming: this.supportsToolStreaming,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await ChatModel.fromName(`${providerId}:${modelId}` as FullModelName);\n if (!(instance instanceof VercelChatModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/vercel/backend/embedding.ts"],"names":["VercelEmbeddingModel","EmbeddingModel","emitter","constructor","model","Emitter","root","child","namespace","providerId","creator","modelId","provider","split","toCamelCase","_create","input","run","embedMany","values","abortSignal","signal","createSnapshot","loadSnapshot","snapshot","instance","fromName","Error","destroy","Object","assign"],"mappings":";;;;;;;;;AA8BO,MAAMA,6BAEHC,4BAAAA,CAAAA;EAhCV;;;;AAiCkBC,EAAAA,OAAAA;AAEhBC,EAAAA,WAAAA,CAA4BC,KAAU,EAAA;AACpC,IAAK,KAAA,EAAA,EAAA,KADqBA,KAAAA,GAAAA,KAAAA;AAE1B,IAAKF,IAAAA,CAAAA,OAAAA,GAAUG,mBAAQC,CAAAA,IAAAA,CAAKC,KAAM,CAAA;MAChCC,SAAW,EAAA;AAAC,QAAA,SAAA;QAAW,IAAKC,CAAAA,UAAAA;AAAY,QAAA;;MACxCC,OAAS,EAAA;KACX,CAAA;AACF;AAEA,EAAA,IAAIC,OAAkB,GAAA;AACpB,IAAA,OAAO,KAAKP,KAAMO,CAAAA,OAAAA;AACpB;AAEA,EAAA,IAAIF,UAAqB,GAAA;AACvB,IAAA,MAAMG,QAAW,GAAA,IAAA,CAAKR,KAAMQ,CAAAA,QAAAA,CAASC,KAAM,CAAA,GAAA,CAAK,CAAA,CAAA,CAAGA,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAK,CAAA,CAAA;AAC9D,IAAA,OAAOC,mBAAYF,QAAAA,CAAAA;AACrB;EAEA,MAAgBG,OAAAA,CACdC,OACAC,GAC+B,EAAA;AAC/B,IAAA,OAAOC,YAAkB,CAAA;AACvBd,MAAAA,KAAAA,EAAO,IAAKA,CAAAA,KAAAA;AACZe,MAAAA,MAAAA,EAAQH,KAAMG,CAAAA,MAAAA;AACdC,MAAAA,WAAAA,EAAaH,GAAII,CAAAA;KACnB,CAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTb,MAAAA,UAAAA,EAAY,IAAKA,CAAAA,UAAAA;AACjBE,MAAAA,OAAAA,EAAS,IAAKP,CAAAA;AAChB,KAAA;AACF;AAEA,EAAA,MAAMmB,aAAa,EAAEd,UAAAA,EAAYE,OAAS,EAAA,GAAGa,UAAoD,EAAA;AAC/F,IAAMC,MAAAA,QAAAA,GAAW,MAAMzB,oBAAqB0B,CAAAA,QAAAA,CAC1C,GAAGjB,UAAAA,CAAAA,CAAAA,EAAcE,OAAAA,CAAS,CAAA,CAAA;AAE5B,IAAI,IAAA,EAAEc,oBAAoBzB,oBAAuB,CAAA,EAAA;AAC/C,MAAM,MAAA,IAAI2B,MAAM,4BAAA,CAAA;AAClB;AACAF,IAAAA,QAAAA,CAASG,OAAO,EAAA;AAChBC,IAAAA,MAAAA,CAAOC,OAAO,IAAM,EAAA;MAClB,GAAGN,QAAAA;AACHpB,MAAAA,KAAAA,EAAOqB,QAASrB,CAAAA;KAClB,CAAA;AACF;AACF","file":"embedding.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 EmbeddingModel,\n EmbeddingModelInput,\n EmbeddingModelOutput,\n EmbeddingModelEvents,\n} from \"@/backend/embedding.js\";\nimport { embedMany, EmbeddingModel as Model } from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\n\ntype InternalEmbeddingModel = Model<string>;\n\nexport class VercelEmbeddingModel<\n R extends InternalEmbeddingModel = InternalEmbeddingModel,\n> extends EmbeddingModel {\n public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n constructor(public readonly model: R) {\n super();\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"embedding\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(\n input: EmbeddingModelInput,\n run: GetRunContext<this>,\n ): Promise<EmbeddingModelOutput> {\n return embedMany<string>({\n model: this.model,\n values: input.values,\n abortSignal: run.signal,\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.model,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await VercelEmbeddingModel.fromName(\n `${providerId}:${modelId}` as FullModelName,\n );\n if (!(instance instanceof VercelEmbeddingModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["embedding.ts"],"names":["VercelEmbeddingModel","EmbeddingModel","emitter","constructor","model","Emitter","root","child","namespace","providerId","creator","modelId","provider","split","toCamelCase","_create","input","run","embedMany","values","abortSignal","signal","createSnapshot","loadSnapshot","snapshot","instance","fromName","Error","destroy","Object","assign"],"mappings":";;;;;;;;;AA8BO,MAAMA,6BAEHC,4BAAAA,CAAAA;EAhCV;;;;AAiCkBC,EAAAA,OAAAA;AAEhBC,EAAAA,WAAAA,CAA4BC,KAAU,EAAA;AACpC,IAAK,KAAA,EAAA,EAAA,KADqBA,KAAAA,GAAAA,KAAAA;AAE1B,IAAKF,IAAAA,CAAAA,OAAAA,GAAUG,mBAAQC,CAAAA,IAAAA,CAAKC,KAAM,CAAA;MAChCC,SAAW,EAAA;AAAC,QAAA,SAAA;QAAW,IAAKC,CAAAA,UAAAA;AAAY,QAAA;;MACxCC,OAAS,EAAA;KACX,CAAA;AACF;AAEA,EAAA,IAAIC,OAAkB,GAAA;AACpB,IAAA,OAAO,KAAKP,KAAMO,CAAAA,OAAAA;AACpB;AAEA,EAAA,IAAIF,UAAqB,GAAA;AACvB,IAAA,MAAMG,QAAW,GAAA,IAAA,CAAKR,KAAMQ,CAAAA,QAAAA,CAASC,KAAM,CAAA,GAAA,CAAK,CAAA,CAAA,CAAGA,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAK,CAAA,CAAA;AAC9D,IAAA,OAAOC,mBAAYF,QAAAA,CAAAA;AACrB;EAEA,MAAgBG,OAAAA,CACdC,OACAC,GAC+B,EAAA;AAC/B,IAAA,OAAOC,YAAkB,CAAA;AACvBd,MAAAA,KAAAA,EAAO,IAAKA,CAAAA,KAAAA;AACZe,MAAAA,MAAAA,EAAQH,KAAMG,CAAAA,MAAAA;AACdC,MAAAA,WAAAA,EAAaH,GAAII,CAAAA;KACnB,CAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTb,MAAAA,UAAAA,EAAY,IAAKA,CAAAA,UAAAA;AACjBE,MAAAA,OAAAA,EAAS,IAAKP,CAAAA;AAChB,KAAA;AACF;AAEA,EAAA,MAAMmB,aAAa,EAAEd,UAAAA,EAAYE,OAAS,EAAA,GAAGa,UAAoD,EAAA;AAC/F,IAAMC,MAAAA,QAAAA,GAAW,MAAMzB,oBAAqB0B,CAAAA,QAAAA,CAC1C,GAAGjB,UAAAA,CAAAA,CAAAA,EAAcE,OAAAA,CAAS,CAAA,CAAA;AAE5B,IAAI,IAAA,EAAEc,oBAAoBzB,oBAAuB,CAAA,EAAA;AAC/C,MAAM,MAAA,IAAI2B,MAAM,4BAAA,CAAA;AAClB;AACAF,IAAAA,QAAAA,CAASG,OAAO,EAAA;AAChBC,IAAAA,MAAAA,CAAOC,OAAO,IAAM,EAAA;MAClB,GAAGN,QAAAA;AACHpB,MAAAA,KAAAA,EAAOqB,QAASrB,CAAAA;KAClB,CAAA;AACF;AACF","file":"embedding.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 EmbeddingModel,\n EmbeddingModelInput,\n EmbeddingModelOutput,\n EmbeddingModelEvents,\n} from \"@/backend/embedding.js\";\nimport { embedMany, EmbeddingModel as Model } from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\n\ntype InternalEmbeddingModel = Model<string>;\n\nexport class VercelEmbeddingModel<\n R extends InternalEmbeddingModel = InternalEmbeddingModel,\n> extends EmbeddingModel {\n public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n constructor(public readonly model: R) {\n super();\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"embedding\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(\n input: EmbeddingModelInput,\n run: GetRunContext<this>,\n ): Promise<EmbeddingModelOutput> {\n return embedMany<string>({\n model: this.model,\n values: input.values,\n abortSignal: run.signal,\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.model,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await VercelEmbeddingModel.fromName(\n `${providerId}:${modelId}` as FullModelName,\n );\n if (!(instance instanceof VercelEmbeddingModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { EmbeddingModel, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.cjs';
2
- import { EmbeddingModel as EmbeddingModel$1 } from 'ai';
3
- import { E as Emitter } from '../../../emitter-C9EN5B0j.cjs';
1
+ import { EmbeddingModel as EmbeddingModel$1, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.cjs';
2
+ import { EmbeddingModel } from 'ai';
3
+ import { E as Emitter } from '../../../emitter-BWtGHYn0.cjs';
4
4
  import { GetRunContext } from '../../../context.cjs';
5
5
  import '../../../internals/serializable.cjs';
6
6
  import '../../../internals/types.cjs';
@@ -26,8 +26,8 @@ import '../../../internals/helpers/promise.cjs';
26
26
  * limitations under the License.
27
27
  */
28
28
 
29
- type InternalEmbeddingModel = EmbeddingModel$1<string>;
30
- declare class VercelEmbeddingModel<R extends InternalEmbeddingModel = InternalEmbeddingModel> extends EmbeddingModel {
29
+ type InternalEmbeddingModel = EmbeddingModel<string>;
30
+ declare class VercelEmbeddingModel<R extends InternalEmbeddingModel = InternalEmbeddingModel> extends EmbeddingModel$1 {
31
31
  readonly model: R;
32
32
  readonly emitter: Emitter<EmbeddingModelEvents>;
33
33
  constructor(model: R);
@@ -1,6 +1,6 @@
1
- import { EmbeddingModel, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.js';
2
- import { EmbeddingModel as EmbeddingModel$1 } from 'ai';
3
- import { E as Emitter } from '../../../emitter-BxVxGBbJ.js';
1
+ import { EmbeddingModel as EmbeddingModel$1, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.js';
2
+ import { EmbeddingModel } from 'ai';
3
+ import { E as Emitter } from '../../../emitter-l0W9gC1A.js';
4
4
  import { GetRunContext } from '../../../context.js';
5
5
  import '../../../internals/serializable.js';
6
6
  import '../../../internals/types.js';
@@ -26,8 +26,8 @@ import '../../../internals/helpers/promise.js';
26
26
  * limitations under the License.
27
27
  */
28
28
 
29
- type InternalEmbeddingModel = EmbeddingModel$1<string>;
30
- declare class VercelEmbeddingModel<R extends InternalEmbeddingModel = InternalEmbeddingModel> extends EmbeddingModel {
29
+ type InternalEmbeddingModel = EmbeddingModel<string>;
30
+ declare class VercelEmbeddingModel<R extends InternalEmbeddingModel = InternalEmbeddingModel> extends EmbeddingModel$1 {
31
31
  readonly model: R;
32
32
  readonly emitter: Emitter<EmbeddingModelEvents>;
33
33
  constructor(model: R);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/vercel/backend/embedding.ts"],"names":["VercelEmbeddingModel","EmbeddingModel","emitter","constructor","model","Emitter","root","child","namespace","providerId","creator","modelId","provider","split","toCamelCase","_create","input","run","embedMany","values","abortSignal","signal","createSnapshot","loadSnapshot","snapshot","instance","fromName","Error","destroy","Object","assign"],"mappings":";;;;;;;AA8BO,MAAMA,6BAEHC,cAAAA,CAAAA;EAhCV;;;;AAiCkBC,EAAAA,OAAAA;AAEhBC,EAAAA,WAAAA,CAA4BC,KAAU,EAAA;AACpC,IAAK,KAAA,EAAA,EAAA,KADqBA,KAAAA,GAAAA,KAAAA;AAE1B,IAAKF,IAAAA,CAAAA,OAAAA,GAAUG,OAAQC,CAAAA,IAAAA,CAAKC,KAAM,CAAA;MAChCC,SAAW,EAAA;AAAC,QAAA,SAAA;QAAW,IAAKC,CAAAA,UAAAA;AAAY,QAAA;;MACxCC,OAAS,EAAA;KACX,CAAA;AACF;AAEA,EAAA,IAAIC,OAAkB,GAAA;AACpB,IAAA,OAAO,KAAKP,KAAMO,CAAAA,OAAAA;AACpB;AAEA,EAAA,IAAIF,UAAqB,GAAA;AACvB,IAAA,MAAMG,QAAW,GAAA,IAAA,CAAKR,KAAMQ,CAAAA,QAAAA,CAASC,KAAM,CAAA,GAAA,CAAK,CAAA,CAAA,CAAGA,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAK,CAAA,CAAA;AAC9D,IAAA,OAAOC,YAAYF,QAAAA,CAAAA;AACrB;EAEA,MAAgBG,OAAAA,CACdC,OACAC,GAC+B,EAAA;AAC/B,IAAA,OAAOC,SAAkB,CAAA;AACvBd,MAAAA,KAAAA,EAAO,IAAKA,CAAAA,KAAAA;AACZe,MAAAA,MAAAA,EAAQH,KAAMG,CAAAA,MAAAA;AACdC,MAAAA,WAAAA,EAAaH,GAAII,CAAAA;KACnB,CAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTb,MAAAA,UAAAA,EAAY,IAAKA,CAAAA,UAAAA;AACjBE,MAAAA,OAAAA,EAAS,IAAKP,CAAAA;AAChB,KAAA;AACF;AAEA,EAAA,MAAMmB,aAAa,EAAEd,UAAAA,EAAYE,OAAS,EAAA,GAAGa,UAAoD,EAAA;AAC/F,IAAMC,MAAAA,QAAAA,GAAW,MAAMzB,oBAAqB0B,CAAAA,QAAAA,CAC1C,GAAGjB,UAAAA,CAAAA,CAAAA,EAAcE,OAAAA,CAAS,CAAA,CAAA;AAE5B,IAAI,IAAA,EAAEc,oBAAoBzB,oBAAuB,CAAA,EAAA;AAC/C,MAAM,MAAA,IAAI2B,MAAM,4BAAA,CAAA;AAClB;AACAF,IAAAA,QAAAA,CAASG,OAAO,EAAA;AAChBC,IAAAA,MAAAA,CAAOC,OAAO,IAAM,EAAA;MAClB,GAAGN,QAAAA;AACHpB,MAAAA,KAAAA,EAAOqB,QAASrB,CAAAA;KAClB,CAAA;AACF;AACF","file":"embedding.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 EmbeddingModel,\n EmbeddingModelInput,\n EmbeddingModelOutput,\n EmbeddingModelEvents,\n} from \"@/backend/embedding.js\";\nimport { embedMany, EmbeddingModel as Model } from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\n\ntype InternalEmbeddingModel = Model<string>;\n\nexport class VercelEmbeddingModel<\n R extends InternalEmbeddingModel = InternalEmbeddingModel,\n> extends EmbeddingModel {\n public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n constructor(public readonly model: R) {\n super();\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"embedding\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(\n input: EmbeddingModelInput,\n run: GetRunContext<this>,\n ): Promise<EmbeddingModelOutput> {\n return embedMany<string>({\n model: this.model,\n values: input.values,\n abortSignal: run.signal,\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.model,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await VercelEmbeddingModel.fromName(\n `${providerId}:${modelId}` as FullModelName,\n );\n if (!(instance instanceof VercelEmbeddingModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["embedding.ts"],"names":["VercelEmbeddingModel","EmbeddingModel","emitter","constructor","model","Emitter","root","child","namespace","providerId","creator","modelId","provider","split","toCamelCase","_create","input","run","embedMany","values","abortSignal","signal","createSnapshot","loadSnapshot","snapshot","instance","fromName","Error","destroy","Object","assign"],"mappings":";;;;;;;AA8BO,MAAMA,6BAEHC,cAAAA,CAAAA;EAhCV;;;;AAiCkBC,EAAAA,OAAAA;AAEhBC,EAAAA,WAAAA,CAA4BC,KAAU,EAAA;AACpC,IAAK,KAAA,EAAA,EAAA,KADqBA,KAAAA,GAAAA,KAAAA;AAE1B,IAAKF,IAAAA,CAAAA,OAAAA,GAAUG,OAAQC,CAAAA,IAAAA,CAAKC,KAAM,CAAA;MAChCC,SAAW,EAAA;AAAC,QAAA,SAAA;QAAW,IAAKC,CAAAA,UAAAA;AAAY,QAAA;;MACxCC,OAAS,EAAA;KACX,CAAA;AACF;AAEA,EAAA,IAAIC,OAAkB,GAAA;AACpB,IAAA,OAAO,KAAKP,KAAMO,CAAAA,OAAAA;AACpB;AAEA,EAAA,IAAIF,UAAqB,GAAA;AACvB,IAAA,MAAMG,QAAW,GAAA,IAAA,CAAKR,KAAMQ,CAAAA,QAAAA,CAASC,KAAM,CAAA,GAAA,CAAK,CAAA,CAAA,CAAGA,CAAAA,KAAAA,CAAM,GAAA,CAAA,CAAK,CAAA,CAAA;AAC9D,IAAA,OAAOC,YAAYF,QAAAA,CAAAA;AACrB;EAEA,MAAgBG,OAAAA,CACdC,OACAC,GAC+B,EAAA;AAC/B,IAAA,OAAOC,SAAkB,CAAA;AACvBd,MAAAA,KAAAA,EAAO,IAAKA,CAAAA,KAAAA;AACZe,MAAAA,MAAAA,EAAQH,KAAMG,CAAAA,MAAAA;AACdC,MAAAA,WAAAA,EAAaH,GAAII,CAAAA;KACnB,CAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACTb,MAAAA,UAAAA,EAAY,IAAKA,CAAAA,UAAAA;AACjBE,MAAAA,OAAAA,EAAS,IAAKP,CAAAA;AAChB,KAAA;AACF;AAEA,EAAA,MAAMmB,aAAa,EAAEd,UAAAA,EAAYE,OAAS,EAAA,GAAGa,UAAoD,EAAA;AAC/F,IAAMC,MAAAA,QAAAA,GAAW,MAAMzB,oBAAqB0B,CAAAA,QAAAA,CAC1C,GAAGjB,UAAAA,CAAAA,CAAAA,EAAcE,OAAAA,CAAS,CAAA,CAAA;AAE5B,IAAI,IAAA,EAAEc,oBAAoBzB,oBAAuB,CAAA,EAAA;AAC/C,MAAM,MAAA,IAAI2B,MAAM,4BAAA,CAAA;AAClB;AACAF,IAAAA,QAAAA,CAASG,OAAO,EAAA;AAChBC,IAAAA,MAAAA,CAAOC,OAAO,IAAM,EAAA;MAClB,GAAGN,QAAAA;AACHpB,MAAAA,KAAAA,EAAOqB,QAASrB,CAAAA;KAClB,CAAA;AACF;AACF","file":"embedding.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 EmbeddingModel,\n EmbeddingModelInput,\n EmbeddingModelOutput,\n EmbeddingModelEvents,\n} from \"@/backend/embedding.js\";\nimport { embedMany, EmbeddingModel as Model } from \"ai\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { toCamelCase } from \"remeda\";\nimport { FullModelName } from \"@/backend/utils.js\";\n\ntype InternalEmbeddingModel = Model<string>;\n\nexport class VercelEmbeddingModel<\n R extends InternalEmbeddingModel = InternalEmbeddingModel,\n> extends EmbeddingModel {\n public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n constructor(public readonly model: R) {\n super();\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", this.providerId, \"embedding\"],\n creator: this,\n });\n }\n\n get modelId(): string {\n return this.model.modelId;\n }\n\n get providerId(): string {\n const provider = this.model.provider.split(\".\")[0].split(\"-\")[0];\n return toCamelCase(provider);\n }\n\n protected async _create(\n input: EmbeddingModelInput,\n run: GetRunContext<this>,\n ): Promise<EmbeddingModelOutput> {\n return embedMany<string>({\n model: this.model,\n values: input.values,\n abortSignal: run.signal,\n });\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n providerId: this.providerId,\n modelId: this.model,\n };\n }\n\n async loadSnapshot({ providerId, modelId, ...snapshot }: ReturnType<typeof this.createSnapshot>) {\n const instance = await VercelEmbeddingModel.fromName(\n `${providerId}:${modelId}` as FullModelName,\n );\n if (!(instance instanceof VercelEmbeddingModel)) {\n throw new Error(\"Incorrect deserialization!\");\n }\n instance.destroy();\n Object.assign(this, {\n ...snapshot,\n model: instance.model,\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapters/watsonx/backend/chat.ts"],"names":["Type","WatsonxAiMlVml_v1","WatsonxChatModel","ChatModel","client","emitter","providerId","constructor","modelId","getEnv","Emitter","root","child","namespace","creator","WatsonxClient","ensure","config","name","parameters","undefined","NotImplementedError","_create","input","result","instance","textChat","prepareInput","messages","finishReason","usage","extractOutput","choices","ChatModelOutput","_createStream","run","stream","textChatStream","returnObject","raw","signal","aborted","controller","abort","data","map","delta","choice","message","findLast","Boolean","finish_reason","completionTokens","completion_tokens","promptTokens","prompt_tokens","totalTokens","total_tokens","flatMap","content","msg","AssistantMessage","type","text","push","tool_calls","call","toolCallId","id","toolName","function","args","parseBrokenJson","arguments","refusal","filter","isTruthy","overrides","tools","Promise","all","tool","description","getInputJsonSchema","ToolMessage","role","JSON","stringify","tool_call_id","SystemMessage","toPlain","spaceId","projectId","isEmpty","responseFormat","JSON_OBJECT","topP","frequencyPenalty","temperature","n","maxTokens","presencePenalty","toolChoice","stop","stopSequences","seed","createSnapshot","shallowCopy","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 ChatConfig,\n ChatModel,\n ChatModelEmitter,\n ChatModelInput,\n ChatModelOutput,\n ChatModelParameters,\n} from \"@/backend/chat.js\";\nimport { WatsonxClient, WatsonxClientSettings } from \"@/adapters/watsonx/backend/client.js\";\nimport { findLast, isEmpty, isTruthy } from \"remeda\";\nimport WatsonxAiMlVml_v1, {\n TextChatMessages,\n TextChatParameterTools,\n TextChatParams,\n TextChatResultChoice,\n TextChatUsage,\n} from \"@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { AssistantMessage, Message, SystemMessage, ToolMessage } from \"@/backend/message.js\";\nimport { ToolCallPart } from \"ai\";\nimport Type = WatsonxAiMlVml_v1.TextChatResponseFormat.Constants.Type;\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { getEnv } from \"@/internals/env.js\";\nimport { NotImplementedError } from \"@/errors.js\";\n\nexport class WatsonxChatModel extends ChatModel {\n protected readonly client: WatsonxClient;\n public readonly emitter: ChatModelEmitter = Emitter.root.child({\n namespace: [\"backend\", \"watsonx\", \"chat\"],\n creator: this,\n });\n\n get providerId() {\n return \"watsonx\";\n }\n\n constructor(\n public readonly modelId = getEnv(\"WATSONX_CHAT_MODEL\", \"ibm/granite-3-8b-instruct\"),\n client?: WatsonxClient | WatsonxClientSettings,\n ) {\n super();\n this.client = WatsonxClient.ensure(client);\n }\n\n config(config: ChatConfig) {\n super.config(config);\n for (const name of [\"topK\"] as (keyof ChatModelParameters)[]) {\n if (this.parameters[name] !== undefined) {\n this.parameters[name] = undefined;\n throw new NotImplementedError(\n `Setting \"${name}\" parameter is not supported for WatsonX Chat Models.`,\n );\n }\n }\n return this;\n }\n\n protected async _create(input: ChatModelInput) {\n // TODO: support abortion (https://github.com/IBM/watsonx-ai-node-sdk/issues/3)\n const { result } = await this.client.instance.textChat(await this.prepareInput(input));\n const { messages, finishReason, usage } = this.extractOutput(result.choices, result.usage);\n return new ChatModelOutput(messages, usage, finishReason);\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n const stream = await this.client.instance.textChatStream({\n ...(await this.prepareInput(input)),\n returnObject: true,\n });\n for await (const raw of stream) {\n if (run.signal.aborted) {\n stream.controller.abort(run.signal.aborted);\n break;\n }\n const { messages, finishReason, usage } = this.extractOutput(\n raw.data.choices.map(({ delta, ...choice }) => ({ ...choice, message: delta })),\n raw.data.usage,\n );\n yield new ChatModelOutput(messages, usage, finishReason);\n }\n }\n\n protected extractOutput(choices: TextChatResultChoice[], usage?: TextChatUsage) {\n return {\n finishReason: findLast(choices, (choice) => Boolean(choice?.finish_reason))\n ?.finish_reason as ChatModelOutput[\"finishReason\"],\n usage: usage\n ? {\n completionTokens: usage.completion_tokens ?? 0,\n promptTokens: usage.prompt_tokens ?? 0,\n totalTokens: usage.total_tokens ?? 0,\n }\n : undefined,\n messages: choices\n .flatMap(({ message }) => {\n const messages: Message[] = [];\n if (message?.content) {\n const msg = new AssistantMessage({ type: \"text\", text: message.content });\n // msg.role = message.role || msg.role;\n messages.push(msg);\n }\n if (message?.tool_calls) {\n const msg = new AssistantMessage(\n message.tool_calls.map(\n (call): ToolCallPart => ({\n type: \"tool-call\",\n toolCallId: call.id,\n toolName: call.function.name,\n args: parseBrokenJson(call.function.arguments),\n }),\n ),\n );\n // msg.role = message.role || msg.role;\n messages.push(msg);\n }\n if (message?.refusal) {\n const msg = new AssistantMessage({ type: \"text\", text: message.refusal });\n // msg.role = message.role || msg.role;\n messages.push(msg);\n }\n return messages;\n })\n .filter(isTruthy),\n };\n }\n\n protected async prepareInput(overrides: ChatModelInput): Promise<TextChatParams> {\n const input: ChatModelInput = { ...this.parameters, ...overrides };\n const tools: TextChatParameterTools[] = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: await tool.getInputJsonSchema(),\n },\n })),\n );\n\n return {\n modelId: this.modelId,\n messages: input.messages.flatMap((message): TextChatMessages[] => {\n if (message instanceof ToolMessage) {\n return message.content.map((content) => ({\n role: \"tool\",\n content: JSON.stringify(content.result),\n tool_call_id: content.toolCallId,\n }));\n } else if (message instanceof SystemMessage) {\n return message.content.map((content) => ({\n role: \"system\",\n content: content.text,\n }));\n } else if (message instanceof AssistantMessage) {\n return message.content.map((content) => ({\n role: \"assistant\",\n ...(content.type === \"text\" && {\n content: content.text,\n }),\n ...(content.type === \"tool-call\" && {\n id: content.toolCallId,\n type: \"function\",\n function: {\n name: content.toolName,\n arguments: JSON.stringify(content.args),\n },\n }),\n }));\n } else {\n return [message.toPlain()];\n }\n }),\n spaceId: this.client.spaceId,\n projectId: this.client.projectId,\n tools: isEmpty(tools) ? undefined : tools,\n responseFormat: undefined,\n ...(input.responseFormat?.type === \"object-json\" && {\n responseFormat: { type: Type.JSON_OBJECT },\n }),\n topP: input.topP,\n frequencyPenalty: input.frequencyPenalty,\n temperature: input.temperature,\n n: input.n,\n maxTokens: input.maxTokens,\n presencePenalty: input.presencePenalty,\n toolChoice: input.toolChoice,\n stop: input.stopSequences,\n seed: input.seed,\n };\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n modelId: this.modelId,\n parameters: shallowCopy(this.parameters),\n client: this.client,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["chat.ts"],"names":["Type","WatsonxAiMlVml_v1","WatsonxChatModel","ChatModel","client","emitter","providerId","constructor","modelId","getEnv","Emitter","root","child","namespace","creator","WatsonxClient","ensure","config","name","parameters","undefined","NotImplementedError","_create","input","result","instance","textChat","prepareInput","messages","finishReason","usage","extractOutput","choices","ChatModelOutput","_createStream","run","stream","textChatStream","returnObject","raw","signal","aborted","controller","abort","data","map","delta","choice","message","findLast","Boolean","finish_reason","completionTokens","completion_tokens","promptTokens","prompt_tokens","totalTokens","total_tokens","flatMap","content","msg","AssistantMessage","type","text","push","tool_calls","call","toolCallId","id","toolName","function","args","parseBrokenJson","arguments","refusal","filter","isTruthy","overrides","tools","Promise","all","tool","description","getInputJsonSchema","ToolMessage","role","JSON","stringify","tool_call_id","SystemMessage","toPlain","spaceId","projectId","isEmpty","responseFormat","JSON_OBJECT","topP","frequencyPenalty","temperature","n","maxTokens","presencePenalty","toolChoice","stop","stopSequences","seed","createSnapshot","shallowCopy","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 ChatConfig,\n ChatModel,\n ChatModelEmitter,\n ChatModelInput,\n ChatModelOutput,\n ChatModelParameters,\n} from \"@/backend/chat.js\";\nimport { WatsonxClient, WatsonxClientSettings } from \"@/adapters/watsonx/backend/client.js\";\nimport { findLast, isEmpty, isTruthy } from \"remeda\";\nimport WatsonxAiMlVml_v1, {\n TextChatMessages,\n TextChatParameterTools,\n TextChatParams,\n TextChatResultChoice,\n TextChatUsage,\n} from \"@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { AssistantMessage, Message, SystemMessage, ToolMessage } from \"@/backend/message.js\";\nimport { ToolCallPart } from \"ai\";\nimport Type = WatsonxAiMlVml_v1.TextChatResponseFormat.Constants.Type;\nimport { parseBrokenJson } from \"@/internals/helpers/schema.js\";\nimport { getEnv } from \"@/internals/env.js\";\nimport { NotImplementedError } from \"@/errors.js\";\n\nexport class WatsonxChatModel extends ChatModel {\n protected readonly client: WatsonxClient;\n public readonly emitter: ChatModelEmitter = Emitter.root.child({\n namespace: [\"backend\", \"watsonx\", \"chat\"],\n creator: this,\n });\n\n get providerId() {\n return \"watsonx\";\n }\n\n constructor(\n public readonly modelId = getEnv(\"WATSONX_CHAT_MODEL\", \"ibm/granite-3-8b-instruct\"),\n client?: WatsonxClient | WatsonxClientSettings,\n ) {\n super();\n this.client = WatsonxClient.ensure(client);\n }\n\n config(config: ChatConfig) {\n super.config(config);\n for (const name of [\"topK\"] as (keyof ChatModelParameters)[]) {\n if (this.parameters[name] !== undefined) {\n this.parameters[name] = undefined;\n throw new NotImplementedError(\n `Setting \"${name}\" parameter is not supported for WatsonX Chat Models.`,\n );\n }\n }\n return this;\n }\n\n protected async _create(input: ChatModelInput) {\n // TODO: support abortion (https://github.com/IBM/watsonx-ai-node-sdk/issues/3)\n const { result } = await this.client.instance.textChat(await this.prepareInput(input));\n const { messages, finishReason, usage } = this.extractOutput(result.choices, result.usage);\n return new ChatModelOutput(messages, usage, finishReason);\n }\n\n async *_createStream(input: ChatModelInput, run: GetRunContext<this>) {\n const stream = await this.client.instance.textChatStream({\n ...(await this.prepareInput(input)),\n returnObject: true,\n });\n for await (const raw of stream) {\n if (run.signal.aborted) {\n stream.controller.abort(run.signal.aborted);\n break;\n }\n const { messages, finishReason, usage } = this.extractOutput(\n raw.data.choices.map(({ delta, ...choice }) => ({ ...choice, message: delta })),\n raw.data.usage,\n );\n yield new ChatModelOutput(messages, usage, finishReason);\n }\n }\n\n protected extractOutput(choices: TextChatResultChoice[], usage?: TextChatUsage) {\n return {\n finishReason: findLast(choices, (choice) => Boolean(choice?.finish_reason))\n ?.finish_reason as ChatModelOutput[\"finishReason\"],\n usage: usage\n ? {\n completionTokens: usage.completion_tokens ?? 0,\n promptTokens: usage.prompt_tokens ?? 0,\n totalTokens: usage.total_tokens ?? 0,\n }\n : undefined,\n messages: choices\n .flatMap(({ message }) => {\n const messages: Message[] = [];\n if (message?.content) {\n const msg = new AssistantMessage({ type: \"text\", text: message.content });\n // msg.role = message.role || msg.role;\n messages.push(msg);\n }\n if (message?.tool_calls) {\n const msg = new AssistantMessage(\n message.tool_calls.map(\n (call): ToolCallPart => ({\n type: \"tool-call\",\n toolCallId: call.id,\n toolName: call.function.name,\n args: parseBrokenJson(call.function.arguments),\n }),\n ),\n );\n // msg.role = message.role || msg.role;\n messages.push(msg);\n }\n if (message?.refusal) {\n const msg = new AssistantMessage({ type: \"text\", text: message.refusal });\n // msg.role = message.role || msg.role;\n messages.push(msg);\n }\n return messages;\n })\n .filter(isTruthy),\n };\n }\n\n protected async prepareInput(overrides: ChatModelInput): Promise<TextChatParams> {\n const input: ChatModelInput = { ...this.parameters, ...overrides };\n const tools: TextChatParameterTools[] = await Promise.all(\n (input.tools ?? []).map(async (tool) => ({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: await tool.getInputJsonSchema(),\n },\n })),\n );\n\n return {\n modelId: this.modelId,\n messages: input.messages.flatMap((message): TextChatMessages[] => {\n if (message instanceof ToolMessage) {\n return message.content.map((content) => ({\n role: \"tool\",\n content: JSON.stringify(content.result),\n tool_call_id: content.toolCallId,\n }));\n } else if (message instanceof SystemMessage) {\n return message.content.map((content) => ({\n role: \"system\",\n content: content.text,\n }));\n } else if (message instanceof AssistantMessage) {\n return message.content.map((content) => ({\n role: \"assistant\",\n ...(content.type === \"text\" && {\n content: content.text,\n }),\n ...(content.type === \"tool-call\" && {\n id: content.toolCallId,\n type: \"function\",\n function: {\n name: content.toolName,\n arguments: JSON.stringify(content.args),\n },\n }),\n }));\n } else {\n return [message.toPlain()];\n }\n }),\n spaceId: this.client.spaceId,\n projectId: this.client.projectId,\n tools: isEmpty(tools) ? undefined : tools,\n responseFormat: undefined,\n ...(input.responseFormat?.type === \"object-json\" && {\n responseFormat: { type: Type.JSON_OBJECT },\n }),\n topP: input.topP,\n frequencyPenalty: input.frequencyPenalty,\n temperature: input.temperature,\n n: input.n,\n maxTokens: input.maxTokens,\n presencePenalty: input.presencePenalty,\n toolChoice: input.toolChoice,\n stop: input.stopSequences,\n seed: input.seed,\n };\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n modelId: this.modelId,\n parameters: shallowCopy(this.parameters),\n client: this.client,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { ChatModel, ChatModelEmitter, ChatConfig, ChatModelInput, ChatModelOutpu
2
2
  import { Message, MessageContentPart } from '../../../backend/message.cjs';
3
3
  import { WatsonxClient, WatsonxClientSettings } from './client.cjs';
4
4
  import { TextChatResultChoice, TextChatUsage, TextChatParams } from '@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js';
5
- import { E as Emitter } from '../../../emitter-C9EN5B0j.cjs';
5
+ import { E as Emitter } from '../../../emitter-BWtGHYn0.cjs';
6
6
  import { GetRunContext } from '../../../context.cjs';
7
7
  import 'ai';
8
8
  import '../../../internals/serializable.cjs';
@@ -2,7 +2,7 @@ import { ChatModel, ChatModelEmitter, ChatConfig, ChatModelInput, ChatModelOutpu
2
2
  import { Message, MessageContentPart } from '../../../backend/message.js';
3
3
  import { WatsonxClient, WatsonxClientSettings } from './client.js';
4
4
  import { TextChatResultChoice, TextChatUsage, TextChatParams } from '@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js';
5
- import { E as Emitter } from '../../../emitter-BxVxGBbJ.js';
5
+ import { E as Emitter } from '../../../emitter-l0W9gC1A.js';
6
6
  import { GetRunContext } from '../../../context.js';
7
7
  import 'ai';
8
8
  import '../../../internals/serializable.js';