beeai-framework 0.1.16 → 0.1.17

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 (627) hide show
  1. package/dist/adapters/acp/agents/agent.cjs.map +1 -1
  2. package/dist/adapters/acp/agents/agent.d.cts +3 -14
  3. package/dist/adapters/acp/agents/agent.d.ts +3 -14
  4. package/dist/adapters/acp/agents/agent.js.map +1 -1
  5. package/dist/adapters/acp/agents/events.d.cts +2 -13
  6. package/dist/adapters/acp/agents/events.d.ts +2 -13
  7. package/dist/adapters/acp/agents/types.d.cts +1 -12
  8. package/dist/adapters/acp/agents/types.d.ts +1 -12
  9. package/dist/adapters/amazon-bedrock/backend/chat.cjs.map +1 -1
  10. package/dist/adapters/amazon-bedrock/backend/chat.d.cts +3 -14
  11. package/dist/adapters/amazon-bedrock/backend/chat.d.ts +3 -14
  12. package/dist/adapters/amazon-bedrock/backend/chat.js.map +1 -1
  13. package/dist/adapters/amazon-bedrock/backend/client.cjs.map +1 -1
  14. package/dist/adapters/amazon-bedrock/backend/client.d.cts +1 -12
  15. package/dist/adapters/amazon-bedrock/backend/client.d.ts +1 -12
  16. package/dist/adapters/amazon-bedrock/backend/client.js.map +1 -1
  17. package/dist/adapters/amazon-bedrock/backend/embedding.cjs.map +1 -1
  18. package/dist/adapters/amazon-bedrock/backend/embedding.d.cts +3 -14
  19. package/dist/adapters/amazon-bedrock/backend/embedding.d.ts +3 -14
  20. package/dist/adapters/amazon-bedrock/backend/embedding.js.map +1 -1
  21. package/dist/adapters/anthropic/backend/chat.cjs.map +1 -1
  22. package/dist/adapters/anthropic/backend/chat.d.cts +3 -14
  23. package/dist/adapters/anthropic/backend/chat.d.ts +3 -14
  24. package/dist/adapters/anthropic/backend/chat.js.map +1 -1
  25. package/dist/adapters/anthropic/backend/client.cjs +1 -4
  26. package/dist/adapters/anthropic/backend/client.cjs.map +1 -1
  27. package/dist/adapters/anthropic/backend/client.d.cts +1 -12
  28. package/dist/adapters/anthropic/backend/client.d.ts +1 -12
  29. package/dist/adapters/anthropic/backend/client.js +3 -6
  30. package/dist/adapters/anthropic/backend/client.js.map +1 -1
  31. package/dist/adapters/anthropic/backend/embedding.cjs.map +1 -1
  32. package/dist/adapters/anthropic/backend/embedding.d.cts +3 -14
  33. package/dist/adapters/anthropic/backend/embedding.d.ts +3 -14
  34. package/dist/adapters/anthropic/backend/embedding.js.map +1 -1
  35. package/dist/adapters/azure-openai/backend/chat.cjs.map +1 -1
  36. package/dist/adapters/azure-openai/backend/chat.d.cts +3 -14
  37. package/dist/adapters/azure-openai/backend/chat.d.ts +3 -14
  38. package/dist/adapters/azure-openai/backend/chat.js.map +1 -1
  39. package/dist/adapters/azure-openai/backend/client.cjs.map +1 -1
  40. package/dist/adapters/azure-openai/backend/client.d.cts +1 -12
  41. package/dist/adapters/azure-openai/backend/client.d.ts +1 -12
  42. package/dist/adapters/azure-openai/backend/client.js.map +1 -1
  43. package/dist/adapters/azure-openai/backend/embedding.cjs.map +1 -1
  44. package/dist/adapters/azure-openai/backend/embedding.d.cts +3 -14
  45. package/dist/adapters/azure-openai/backend/embedding.d.ts +3 -14
  46. package/dist/adapters/azure-openai/backend/embedding.js.map +1 -1
  47. package/dist/adapters/beeai_platform/agents/agent.cjs.map +1 -1
  48. package/dist/adapters/beeai_platform/agents/agent.d.cts +2 -2
  49. package/dist/adapters/beeai_platform/agents/agent.d.ts +2 -2
  50. package/dist/adapters/beeai_platform/agents/agent.js.map +1 -1
  51. package/dist/adapters/beeai_platform/agents/events.d.cts +2 -13
  52. package/dist/adapters/beeai_platform/agents/events.d.ts +2 -13
  53. package/dist/adapters/beeai_platform/agents/types.d.cts +1 -12
  54. package/dist/adapters/beeai_platform/agents/types.d.ts +1 -12
  55. package/dist/adapters/dummy/backend/chat.cjs +9 -9
  56. package/dist/adapters/dummy/backend/chat.cjs.map +1 -1
  57. package/dist/adapters/dummy/backend/chat.d.cts +2 -2
  58. package/dist/adapters/dummy/backend/chat.d.ts +2 -2
  59. package/dist/adapters/dummy/backend/chat.js +9 -9
  60. package/dist/adapters/dummy/backend/chat.js.map +1 -1
  61. package/dist/adapters/dummy/backend/embedding.cjs +9 -9
  62. package/dist/adapters/dummy/backend/embedding.cjs.map +1 -1
  63. package/dist/adapters/dummy/backend/embedding.d.cts +3 -14
  64. package/dist/adapters/dummy/backend/embedding.d.ts +3 -14
  65. package/dist/adapters/dummy/backend/embedding.js +9 -9
  66. package/dist/adapters/dummy/backend/embedding.js.map +1 -1
  67. package/dist/adapters/google-vertex/backend/chat.cjs.map +1 -1
  68. package/dist/adapters/google-vertex/backend/chat.d.cts +3 -14
  69. package/dist/adapters/google-vertex/backend/chat.d.ts +3 -14
  70. package/dist/adapters/google-vertex/backend/chat.js.map +1 -1
  71. package/dist/adapters/google-vertex/backend/client.cjs.map +1 -1
  72. package/dist/adapters/google-vertex/backend/client.d.cts +1 -12
  73. package/dist/adapters/google-vertex/backend/client.d.ts +1 -12
  74. package/dist/adapters/google-vertex/backend/client.js.map +1 -1
  75. package/dist/adapters/google-vertex/backend/embedding.cjs.map +1 -1
  76. package/dist/adapters/google-vertex/backend/embedding.d.cts +3 -14
  77. package/dist/adapters/google-vertex/backend/embedding.d.ts +3 -14
  78. package/dist/adapters/google-vertex/backend/embedding.js.map +1 -1
  79. package/dist/adapters/groq/backend/chat.cjs.map +1 -1
  80. package/dist/adapters/groq/backend/chat.d.cts +3 -14
  81. package/dist/adapters/groq/backend/chat.d.ts +3 -14
  82. package/dist/adapters/groq/backend/chat.js.map +1 -1
  83. package/dist/adapters/groq/backend/client.cjs.map +1 -1
  84. package/dist/adapters/groq/backend/client.d.cts +1 -12
  85. package/dist/adapters/groq/backend/client.d.ts +1 -12
  86. package/dist/adapters/groq/backend/client.js.map +1 -1
  87. package/dist/adapters/groq/backend/embedding.cjs.map +1 -1
  88. package/dist/adapters/groq/backend/embedding.d.cts +3 -14
  89. package/dist/adapters/groq/backend/embedding.d.ts +3 -14
  90. package/dist/adapters/groq/backend/embedding.js.map +1 -1
  91. package/dist/adapters/langchain/backend/chat.cjs.map +1 -1
  92. package/dist/adapters/langchain/backend/chat.d.cts +2 -2
  93. package/dist/adapters/langchain/backend/chat.d.ts +2 -2
  94. package/dist/adapters/langchain/backend/chat.js.map +1 -1
  95. package/dist/adapters/langchain/backend/embedding.cjs.map +1 -1
  96. package/dist/adapters/langchain/backend/embedding.d.cts +3 -14
  97. package/dist/adapters/langchain/backend/embedding.d.ts +3 -14
  98. package/dist/adapters/langchain/backend/embedding.js.map +1 -1
  99. package/dist/adapters/langchain/tools.cjs.map +1 -1
  100. package/dist/adapters/langchain/tools.d.cts +1 -1
  101. package/dist/adapters/langchain/tools.d.ts +1 -1
  102. package/dist/adapters/langchain/tools.js.map +1 -1
  103. package/dist/adapters/mcp/serve/http_server.cjs.map +1 -1
  104. package/dist/adapters/mcp/serve/http_server.d.cts +1 -12
  105. package/dist/adapters/mcp/serve/http_server.d.ts +1 -12
  106. package/dist/adapters/mcp/serve/http_server.js.map +1 -1
  107. package/dist/adapters/mcp/serve/in_memory_store.cjs.map +1 -1
  108. package/dist/adapters/mcp/serve/in_memory_store.d.cts +1 -12
  109. package/dist/adapters/mcp/serve/in_memory_store.d.ts +1 -12
  110. package/dist/adapters/mcp/serve/in_memory_store.js.map +1 -1
  111. package/dist/adapters/mcp/serve/server.cjs.map +1 -1
  112. package/dist/adapters/mcp/serve/server.d.cts +1 -12
  113. package/dist/adapters/mcp/serve/server.d.ts +1 -12
  114. package/dist/adapters/mcp/serve/server.js.map +1 -1
  115. package/dist/adapters/ollama/backend/chat.cjs.map +1 -1
  116. package/dist/adapters/ollama/backend/chat.d.cts +3 -14
  117. package/dist/adapters/ollama/backend/chat.d.ts +3 -14
  118. package/dist/adapters/ollama/backend/chat.js.map +1 -1
  119. package/dist/adapters/ollama/backend/client.cjs +12 -3
  120. package/dist/adapters/ollama/backend/client.cjs.map +1 -1
  121. package/dist/adapters/ollama/backend/client.d.cts +4 -13
  122. package/dist/adapters/ollama/backend/client.d.ts +4 -13
  123. package/dist/adapters/ollama/backend/client.js +13 -4
  124. package/dist/adapters/ollama/backend/client.js.map +1 -1
  125. package/dist/adapters/ollama/backend/embedding.cjs.map +1 -1
  126. package/dist/adapters/ollama/backend/embedding.d.cts +3 -14
  127. package/dist/adapters/ollama/backend/embedding.d.ts +3 -14
  128. package/dist/adapters/ollama/backend/embedding.js.map +1 -1
  129. package/dist/adapters/openai/backend/chat.cjs.map +1 -1
  130. package/dist/adapters/openai/backend/chat.d.cts +3 -14
  131. package/dist/adapters/openai/backend/chat.d.ts +3 -14
  132. package/dist/adapters/openai/backend/chat.js.map +1 -1
  133. package/dist/adapters/openai/backend/client.cjs +1 -4
  134. package/dist/adapters/openai/backend/client.cjs.map +1 -1
  135. package/dist/adapters/openai/backend/client.d.cts +1 -12
  136. package/dist/adapters/openai/backend/client.d.ts +1 -12
  137. package/dist/adapters/openai/backend/client.js +3 -6
  138. package/dist/adapters/openai/backend/client.js.map +1 -1
  139. package/dist/adapters/openai/backend/embedding.cjs.map +1 -1
  140. package/dist/adapters/openai/backend/embedding.d.cts +3 -14
  141. package/dist/adapters/openai/backend/embedding.d.ts +3 -14
  142. package/dist/adapters/openai/backend/embedding.js.map +1 -1
  143. package/dist/adapters/vercel/backend/chat.cjs +2 -2
  144. package/dist/adapters/vercel/backend/chat.cjs.map +1 -1
  145. package/dist/adapters/vercel/backend/chat.d.cts +2 -2
  146. package/dist/adapters/vercel/backend/chat.d.ts +2 -2
  147. package/dist/adapters/vercel/backend/chat.js +2 -2
  148. package/dist/adapters/vercel/backend/chat.js.map +1 -1
  149. package/dist/adapters/vercel/backend/embedding.cjs.map +1 -1
  150. package/dist/adapters/vercel/backend/embedding.d.cts +3 -14
  151. package/dist/adapters/vercel/backend/embedding.d.ts +3 -14
  152. package/dist/adapters/vercel/backend/embedding.js.map +1 -1
  153. package/dist/adapters/vercel/backend/utils.cjs +11 -2
  154. package/dist/adapters/vercel/backend/utils.cjs.map +1 -1
  155. package/dist/adapters/vercel/backend/utils.d.cts +3 -13
  156. package/dist/adapters/vercel/backend/utils.d.ts +3 -13
  157. package/dist/adapters/vercel/backend/utils.js +11 -3
  158. package/dist/adapters/vercel/backend/utils.js.map +1 -1
  159. package/dist/adapters/watsonx/backend/chat.cjs +13 -13
  160. package/dist/adapters/watsonx/backend/chat.cjs.map +1 -1
  161. package/dist/adapters/watsonx/backend/chat.d.cts +2 -2
  162. package/dist/adapters/watsonx/backend/chat.d.ts +2 -2
  163. package/dist/adapters/watsonx/backend/chat.js +13 -13
  164. package/dist/adapters/watsonx/backend/chat.js.map +1 -1
  165. package/dist/adapters/watsonx/backend/client.cjs.map +1 -1
  166. package/dist/adapters/watsonx/backend/client.d.cts +1 -12
  167. package/dist/adapters/watsonx/backend/client.d.ts +1 -12
  168. package/dist/adapters/watsonx/backend/client.js.map +1 -1
  169. package/dist/adapters/watsonx/backend/embedding.cjs.map +1 -1
  170. package/dist/adapters/watsonx/backend/embedding.d.cts +3 -14
  171. package/dist/adapters/watsonx/backend/embedding.d.ts +3 -14
  172. package/dist/adapters/watsonx/backend/embedding.js.map +1 -1
  173. package/dist/adapters/xai/backend/chat.cjs +24 -0
  174. package/dist/adapters/xai/backend/chat.cjs.map +1 -0
  175. package/dist/adapters/xai/backend/chat.d.cts +39 -0
  176. package/dist/adapters/xai/backend/chat.d.ts +39 -0
  177. package/dist/adapters/xai/backend/chat.js +22 -0
  178. package/dist/adapters/xai/backend/chat.js.map +1 -0
  179. package/dist/adapters/xai/backend/client.cjs +26 -0
  180. package/dist/adapters/xai/backend/client.cjs.map +1 -0
  181. package/dist/adapters/xai/backend/client.d.cts +17 -0
  182. package/dist/adapters/xai/backend/client.d.ts +17 -0
  183. package/dist/adapters/xai/backend/client.js +24 -0
  184. package/dist/adapters/xai/backend/client.js.map +1 -0
  185. package/dist/{agent-CgsoqVL5.d.ts → agent-CUzHyTQd.d.ts} +3 -3
  186. package/dist/{agent-Ca5UE2P1.d.cts → agent-Cqh2zuKJ.d.cts} +3 -3
  187. package/dist/agents/base.cjs.map +1 -1
  188. package/dist/agents/base.d.cts +2 -2
  189. package/dist/agents/base.d.ts +2 -2
  190. package/dist/agents/base.js.map +1 -1
  191. package/dist/agents/experimental/replan/agent.cjs +8 -8
  192. package/dist/agents/experimental/replan/agent.cjs.map +1 -1
  193. package/dist/agents/experimental/replan/agent.d.cts +4 -15
  194. package/dist/agents/experimental/replan/agent.d.ts +4 -15
  195. package/dist/agents/experimental/replan/agent.js +8 -8
  196. package/dist/agents/experimental/replan/agent.js.map +1 -1
  197. package/dist/agents/experimental/replan/prompts.cjs.map +1 -1
  198. package/dist/agents/experimental/replan/prompts.d.cts +1 -1
  199. package/dist/agents/experimental/replan/prompts.d.ts +1 -1
  200. package/dist/agents/experimental/replan/prompts.js.map +1 -1
  201. package/dist/agents/experimental/streamlit/agent.cjs +9 -9
  202. package/dist/agents/experimental/streamlit/agent.cjs.map +1 -1
  203. package/dist/agents/experimental/streamlit/agent.d.cts +4 -15
  204. package/dist/agents/experimental/streamlit/agent.d.ts +4 -15
  205. package/dist/agents/experimental/streamlit/agent.js +9 -9
  206. package/dist/agents/experimental/streamlit/agent.js.map +1 -1
  207. package/dist/agents/experimental/streamlit/prompts.cjs.map +1 -1
  208. package/dist/agents/experimental/streamlit/prompts.d.cts +1 -12
  209. package/dist/agents/experimental/streamlit/prompts.d.ts +1 -12
  210. package/dist/agents/experimental/streamlit/prompts.js.map +1 -1
  211. package/dist/agents/react/agent.cjs +8 -8
  212. package/dist/agents/react/agent.cjs.map +1 -1
  213. package/dist/agents/react/agent.d.cts +4 -4
  214. package/dist/agents/react/agent.d.ts +4 -4
  215. package/dist/agents/react/agent.js +8 -8
  216. package/dist/agents/react/agent.js.map +1 -1
  217. package/dist/agents/react/prompts.cjs.map +1 -1
  218. package/dist/agents/react/prompts.d.cts +2 -13
  219. package/dist/agents/react/prompts.d.ts +2 -13
  220. package/dist/agents/react/prompts.js.map +1 -1
  221. package/dist/agents/react/runners/base.cjs +2 -2
  222. package/dist/agents/react/runners/base.cjs.map +1 -1
  223. package/dist/agents/react/runners/base.d.cts +4 -4
  224. package/dist/agents/react/runners/base.d.ts +4 -4
  225. package/dist/agents/react/runners/base.js +2 -2
  226. package/dist/agents/react/runners/base.js.map +1 -1
  227. package/dist/agents/react/runners/deep-think/prompts.cjs.map +1 -1
  228. package/dist/agents/react/runners/deep-think/prompts.d.cts +2 -13
  229. package/dist/agents/react/runners/deep-think/prompts.d.ts +2 -13
  230. package/dist/agents/react/runners/deep-think/prompts.js.map +1 -1
  231. package/dist/agents/react/runners/deep-think/runner.cjs.map +1 -1
  232. package/dist/agents/react/runners/deep-think/runner.d.cts +5 -5
  233. package/dist/agents/react/runners/deep-think/runner.d.ts +5 -5
  234. package/dist/agents/react/runners/deep-think/runner.js.map +1 -1
  235. package/dist/agents/react/runners/default/runner.cjs.map +1 -1
  236. package/dist/agents/react/runners/default/runner.d.cts +5 -5
  237. package/dist/agents/react/runners/default/runner.d.ts +5 -5
  238. package/dist/agents/react/runners/default/runner.js.map +1 -1
  239. package/dist/agents/react/runners/default/runner.spec.cjs.map +1 -1
  240. package/dist/agents/react/runners/default/runner.spec.js.map +1 -1
  241. package/dist/agents/react/runners/granite/prompts.cjs.map +1 -1
  242. package/dist/agents/react/runners/granite/prompts.d.cts +2 -13
  243. package/dist/agents/react/runners/granite/prompts.d.ts +2 -13
  244. package/dist/agents/react/runners/granite/prompts.js.map +1 -1
  245. package/dist/agents/react/runners/granite/runner.cjs.map +1 -1
  246. package/dist/agents/react/runners/granite/runner.d.cts +5 -5
  247. package/dist/agents/react/runners/granite/runner.d.ts +5 -5
  248. package/dist/agents/react/runners/granite/runner.js.map +1 -1
  249. package/dist/agents/react/types.d.cts +3 -14
  250. package/dist/agents/react/types.d.ts +3 -14
  251. package/dist/agents/toolCalling/agent.cjs +8 -8
  252. package/dist/agents/toolCalling/agent.cjs.map +1 -1
  253. package/dist/agents/toolCalling/agent.d.cts +4 -15
  254. package/dist/agents/toolCalling/agent.d.ts +4 -15
  255. package/dist/agents/toolCalling/agent.js +8 -8
  256. package/dist/agents/toolCalling/agent.js.map +1 -1
  257. package/dist/agents/toolCalling/prompts.cjs.map +1 -1
  258. package/dist/agents/toolCalling/prompts.d.cts +1 -12
  259. package/dist/agents/toolCalling/prompts.d.ts +1 -12
  260. package/dist/agents/toolCalling/prompts.js.map +1 -1
  261. package/dist/agents/toolCalling/types.d.cts +2 -13
  262. package/dist/agents/toolCalling/types.d.ts +2 -13
  263. package/dist/agents/types.d.cts +2 -2
  264. package/dist/agents/types.d.ts +2 -2
  265. package/dist/backend/backend.cjs.map +1 -1
  266. package/dist/backend/backend.d.cts +3 -14
  267. package/dist/backend/backend.d.ts +3 -14
  268. package/dist/backend/backend.js.map +1 -1
  269. package/dist/backend/chat.cjs.map +1 -1
  270. package/dist/backend/chat.d.cts +2 -2
  271. package/dist/backend/chat.d.ts +2 -2
  272. package/dist/backend/chat.js.map +1 -1
  273. package/dist/backend/client.cjs.map +1 -1
  274. package/dist/backend/client.d.cts +1 -12
  275. package/dist/backend/client.d.ts +1 -12
  276. package/dist/backend/client.js.map +1 -1
  277. package/dist/backend/constants.cjs +8 -0
  278. package/dist/backend/constants.cjs.map +1 -1
  279. package/dist/backend/constants.d.cts +6 -12
  280. package/dist/backend/constants.d.ts +6 -12
  281. package/dist/backend/constants.js +8 -0
  282. package/dist/backend/constants.js.map +1 -1
  283. package/dist/backend/core.d.cts +2 -2
  284. package/dist/backend/core.d.ts +2 -2
  285. package/dist/backend/embedding.cjs.map +1 -1
  286. package/dist/backend/embedding.d.cts +2 -2
  287. package/dist/backend/embedding.d.ts +2 -2
  288. package/dist/backend/embedding.js.map +1 -1
  289. package/dist/backend/errors.cjs.map +1 -1
  290. package/dist/backend/errors.d.cts +1 -12
  291. package/dist/backend/errors.d.ts +1 -12
  292. package/dist/backend/errors.js.map +1 -1
  293. package/dist/backend/message.cjs.map +1 -1
  294. package/dist/backend/message.d.cts +1 -12
  295. package/dist/backend/message.d.ts +1 -12
  296. package/dist/backend/message.js.map +1 -1
  297. package/dist/backend/utils.cjs.map +1 -1
  298. package/dist/backend/utils.d.cts +2 -2
  299. package/dist/backend/utils.d.ts +2 -2
  300. package/dist/backend/utils.js.map +1 -1
  301. package/dist/{base-szR2Izbt.d.cts → base-Bc-Xv1jG.d.cts} +2 -13
  302. package/dist/{base-BOCDDBvG.d.ts → base-BrMAtrc_.d.ts} +2 -13
  303. package/dist/cache/base.cjs.map +1 -1
  304. package/dist/cache/base.d.cts +1 -12
  305. package/dist/cache/base.d.ts +1 -12
  306. package/dist/cache/base.js.map +1 -1
  307. package/dist/cache/decoratorCache.cjs +2 -2
  308. package/dist/cache/decoratorCache.cjs.map +1 -1
  309. package/dist/cache/decoratorCache.d.cts +1 -12
  310. package/dist/cache/decoratorCache.d.ts +1 -12
  311. package/dist/cache/decoratorCache.js +2 -2
  312. package/dist/cache/decoratorCache.js.map +1 -1
  313. package/dist/cache/fileCache.cjs.map +1 -1
  314. package/dist/cache/fileCache.d.cts +1 -12
  315. package/dist/cache/fileCache.d.ts +1 -12
  316. package/dist/cache/fileCache.js.map +1 -1
  317. package/dist/cache/nullCache.cjs.map +1 -1
  318. package/dist/cache/nullCache.d.cts +1 -12
  319. package/dist/cache/nullCache.d.ts +1 -12
  320. package/dist/cache/nullCache.js.map +1 -1
  321. package/dist/cache/slidingCache.cjs.map +1 -1
  322. package/dist/cache/slidingCache.d.cts +1 -12
  323. package/dist/cache/slidingCache.d.ts +1 -12
  324. package/dist/cache/slidingCache.js.map +1 -1
  325. package/dist/cache/unconstrainedCache.cjs.map +1 -1
  326. package/dist/cache/unconstrainedCache.d.cts +1 -12
  327. package/dist/cache/unconstrainedCache.d.ts +1 -12
  328. package/dist/cache/unconstrainedCache.js.map +1 -1
  329. package/dist/{chat-DvMzAHj6.d.cts → chat-CR4yfOR9.d.cts} +3 -14
  330. package/dist/{chat-BdN8hGWn.d.ts → chat-W9j8T6UU.d.ts} +3 -14
  331. package/dist/context.cjs +3 -4
  332. package/dist/context.cjs.map +1 -1
  333. package/dist/context.d.cts +2 -13
  334. package/dist/context.d.ts +2 -13
  335. package/dist/context.js +3 -4
  336. package/dist/context.js.map +1 -1
  337. package/dist/emitter/emitter.cjs.map +1 -1
  338. package/dist/emitter/emitter.d.cts +1 -1
  339. package/dist/emitter/emitter.d.ts +1 -1
  340. package/dist/emitter/emitter.js.map +1 -1
  341. package/dist/emitter/errors.cjs.map +1 -1
  342. package/dist/emitter/errors.d.cts +1 -12
  343. package/dist/emitter/errors.d.ts +1 -12
  344. package/dist/emitter/errors.js.map +1 -1
  345. package/dist/emitter/types.d.cts +1 -1
  346. package/dist/emitter/types.d.ts +1 -1
  347. package/dist/emitter/utils.cjs.map +1 -1
  348. package/dist/emitter/utils.d.cts +1 -12
  349. package/dist/emitter/utils.d.ts +1 -12
  350. package/dist/emitter/utils.js.map +1 -1
  351. package/dist/{emitter-C3dO-s2P.d.ts → emitter-C9nwGLt6.d.ts} +3 -25
  352. package/dist/{emitter-D5Mu0EEH.d.cts → emitter-DWEsd-ud.d.cts} +3 -25
  353. package/dist/errors.cjs.map +1 -1
  354. package/dist/errors.d.cts +1 -12
  355. package/dist/errors.d.ts +1 -12
  356. package/dist/errors.js.map +1 -1
  357. package/dist/index.d.cts +4 -4
  358. package/dist/index.d.ts +4 -4
  359. package/dist/internals/env.cjs.map +1 -1
  360. package/dist/internals/env.d.cts +1 -12
  361. package/dist/internals/env.d.ts +1 -12
  362. package/dist/internals/env.js.map +1 -1
  363. package/dist/internals/fetcher.cjs +8 -8
  364. package/dist/internals/fetcher.cjs.map +1 -1
  365. package/dist/internals/fetcher.d.cts +2 -13
  366. package/dist/internals/fetcher.d.ts +2 -13
  367. package/dist/internals/fetcher.js +8 -8
  368. package/dist/internals/fetcher.js.map +1 -1
  369. package/dist/internals/helpers/array.cjs.map +1 -1
  370. package/dist/internals/helpers/array.d.cts +1 -12
  371. package/dist/internals/helpers/array.d.ts +1 -12
  372. package/dist/internals/helpers/array.js.map +1 -1
  373. package/dist/internals/helpers/cancellation.cjs.map +1 -1
  374. package/dist/internals/helpers/cancellation.d.cts +1 -12
  375. package/dist/internals/helpers/cancellation.d.ts +1 -12
  376. package/dist/internals/helpers/cancellation.js.map +1 -1
  377. package/dist/internals/helpers/counter.cjs.map +1 -1
  378. package/dist/internals/helpers/counter.d.cts +1 -12
  379. package/dist/internals/helpers/counter.d.ts +1 -12
  380. package/dist/internals/helpers/counter.js.map +1 -1
  381. package/dist/internals/helpers/general.cjs.map +1 -1
  382. package/dist/internals/helpers/general.d.cts +1 -12
  383. package/dist/internals/helpers/general.d.ts +1 -12
  384. package/dist/internals/helpers/general.js.map +1 -1
  385. package/dist/internals/helpers/guards.cjs.map +1 -1
  386. package/dist/internals/helpers/guards.d.cts +1 -12
  387. package/dist/internals/helpers/guards.d.ts +1 -12
  388. package/dist/internals/helpers/guards.js.map +1 -1
  389. package/dist/internals/helpers/hash.cjs.map +1 -1
  390. package/dist/internals/helpers/hash.d.cts +1 -12
  391. package/dist/internals/helpers/hash.d.ts +1 -12
  392. package/dist/internals/helpers/hash.js.map +1 -1
  393. package/dist/internals/helpers/map.cjs.map +1 -1
  394. package/dist/internals/helpers/map.d.cts +1 -12
  395. package/dist/internals/helpers/map.d.ts +1 -12
  396. package/dist/internals/helpers/map.js.map +1 -1
  397. package/dist/internals/helpers/math.cjs.map +1 -1
  398. package/dist/internals/helpers/math.d.cts +1 -12
  399. package/dist/internals/helpers/math.d.ts +1 -12
  400. package/dist/internals/helpers/math.js.map +1 -1
  401. package/dist/internals/helpers/number.cjs.map +1 -1
  402. package/dist/internals/helpers/number.d.cts +1 -12
  403. package/dist/internals/helpers/number.d.ts +1 -12
  404. package/dist/internals/helpers/number.js.map +1 -1
  405. package/dist/internals/helpers/object.cjs.map +1 -1
  406. package/dist/internals/helpers/object.d.cts +1 -12
  407. package/dist/internals/helpers/object.d.ts +1 -12
  408. package/dist/internals/helpers/object.js.map +1 -1
  409. package/dist/internals/helpers/paginate.cjs.map +1 -1
  410. package/dist/internals/helpers/paginate.d.cts +1 -12
  411. package/dist/internals/helpers/paginate.d.ts +1 -12
  412. package/dist/internals/helpers/paginate.js.map +1 -1
  413. package/dist/internals/helpers/promise.cjs +1 -3
  414. package/dist/internals/helpers/promise.cjs.map +1 -1
  415. package/dist/internals/helpers/promise.d.cts +1 -12
  416. package/dist/internals/helpers/promise.d.ts +1 -12
  417. package/dist/internals/helpers/promise.js +1 -3
  418. package/dist/internals/helpers/promise.js.map +1 -1
  419. package/dist/internals/helpers/prototype.cjs.map +1 -1
  420. package/dist/internals/helpers/prototype.d.cts +1 -12
  421. package/dist/internals/helpers/prototype.d.ts +1 -12
  422. package/dist/internals/helpers/prototype.js.map +1 -1
  423. package/dist/internals/helpers/retry.cjs.map +1 -1
  424. package/dist/internals/helpers/retry.d.cts +1 -12
  425. package/dist/internals/helpers/retry.d.ts +1 -12
  426. package/dist/internals/helpers/retry.js.map +1 -1
  427. package/dist/internals/helpers/retryable.cjs.map +1 -1
  428. package/dist/internals/helpers/retryable.d.cts +1 -12
  429. package/dist/internals/helpers/retryable.d.ts +1 -12
  430. package/dist/internals/helpers/retryable.js.map +1 -1
  431. package/dist/internals/helpers/schema.cjs.map +1 -1
  432. package/dist/internals/helpers/schema.d.cts +1 -12
  433. package/dist/internals/helpers/schema.d.ts +1 -12
  434. package/dist/internals/helpers/schema.js.map +1 -1
  435. package/dist/internals/helpers/stream.cjs.map +1 -1
  436. package/dist/internals/helpers/stream.d.cts +1 -12
  437. package/dist/internals/helpers/stream.d.ts +1 -12
  438. package/dist/internals/helpers/stream.js.map +1 -1
  439. package/dist/internals/helpers/string.cjs.map +1 -1
  440. package/dist/internals/helpers/string.d.cts +1 -12
  441. package/dist/internals/helpers/string.d.ts +1 -12
  442. package/dist/internals/helpers/string.js.map +1 -1
  443. package/dist/internals/helpers/weakRef.cjs.map +1 -1
  444. package/dist/internals/helpers/weakRef.d.cts +1 -12
  445. package/dist/internals/helpers/weakRef.d.ts +1 -12
  446. package/dist/internals/helpers/weakRef.js.map +1 -1
  447. package/dist/internals/serializable.cjs.map +1 -1
  448. package/dist/internals/serializable.d.cts +1 -12
  449. package/dist/internals/serializable.d.ts +1 -12
  450. package/dist/internals/serializable.js.map +1 -1
  451. package/dist/internals/types.cjs.map +1 -1
  452. package/dist/internals/types.d.cts +1 -12
  453. package/dist/internals/types.d.ts +1 -12
  454. package/dist/internals/types.js.map +1 -1
  455. package/dist/logger/logger.cjs.map +1 -1
  456. package/dist/logger/logger.js.map +1 -1
  457. package/dist/logger/pretty.cjs.map +1 -1
  458. package/dist/logger/pretty.js.map +1 -1
  459. package/dist/memory/base.cjs.map +1 -1
  460. package/dist/memory/base.js.map +1 -1
  461. package/dist/memory/slidingMemory.cjs.map +1 -1
  462. package/dist/memory/slidingMemory.js.map +1 -1
  463. package/dist/memory/summarizeMemory.cjs.map +1 -1
  464. package/dist/memory/summarizeMemory.d.cts +2 -2
  465. package/dist/memory/summarizeMemory.d.ts +2 -2
  466. package/dist/memory/summarizeMemory.js.map +1 -1
  467. package/dist/memory/tokenMemory.cjs.map +1 -1
  468. package/dist/memory/tokenMemory.js.map +1 -1
  469. package/dist/memory/unconstrainedMemory.cjs.map +1 -1
  470. package/dist/memory/unconstrainedMemory.js.map +1 -1
  471. package/dist/parsers/errors.cjs.map +1 -1
  472. package/dist/parsers/errors.d.cts +1 -12
  473. package/dist/parsers/errors.d.ts +1 -12
  474. package/dist/parsers/errors.js.map +1 -1
  475. package/dist/parsers/field.cjs +2 -2
  476. package/dist/parsers/field.cjs.map +1 -1
  477. package/dist/parsers/field.js +2 -2
  478. package/dist/parsers/field.js.map +1 -1
  479. package/dist/parsers/linePrefix.cjs +15 -15
  480. package/dist/parsers/linePrefix.cjs.map +1 -1
  481. package/dist/parsers/linePrefix.d.cts +2 -13
  482. package/dist/parsers/linePrefix.d.ts +2 -13
  483. package/dist/parsers/linePrefix.js +15 -15
  484. package/dist/parsers/linePrefix.js.map +1 -1
  485. package/dist/serializer/error.cjs.map +1 -1
  486. package/dist/serializer/error.d.cts +1 -12
  487. package/dist/serializer/error.d.ts +1 -12
  488. package/dist/serializer/error.js.map +1 -1
  489. package/dist/serializer/serializer.cjs.map +1 -1
  490. package/dist/serializer/serializer.d.cts +1 -1
  491. package/dist/serializer/serializer.d.ts +1 -1
  492. package/dist/serializer/serializer.js.map +1 -1
  493. package/dist/serializer/utils.cjs +1 -2
  494. package/dist/serializer/utils.cjs.map +1 -1
  495. package/dist/serializer/utils.d.cts +1 -1
  496. package/dist/serializer/utils.d.ts +1 -1
  497. package/dist/serializer/utils.js +1 -2
  498. package/dist/serializer/utils.js.map +1 -1
  499. package/dist/{serializer-Dz4AIM2O.d.cts → serializer-BKn50Vnx.d.cts} +2 -24
  500. package/dist/{serializer-BswFRdT8.d.ts → serializer-CQxucveV.d.ts} +2 -24
  501. package/dist/serve/server.cjs +1 -2
  502. package/dist/serve/server.cjs.map +1 -1
  503. package/dist/serve/server.d.cts +1 -12
  504. package/dist/serve/server.d.ts +1 -12
  505. package/dist/serve/server.js +1 -2
  506. package/dist/serve/server.js.map +1 -1
  507. package/dist/template.cjs.map +1 -1
  508. package/dist/template.d.cts +1 -12
  509. package/dist/template.d.ts +1 -12
  510. package/dist/template.js.map +1 -1
  511. package/dist/tools/arxiv.cjs.map +1 -1
  512. package/dist/tools/arxiv.d.cts +2 -13
  513. package/dist/tools/arxiv.d.ts +2 -13
  514. package/dist/tools/arxiv.js.map +1 -1
  515. package/dist/tools/base.cjs.map +1 -1
  516. package/dist/tools/base.d.cts +1 -1
  517. package/dist/tools/base.d.ts +1 -1
  518. package/dist/tools/base.js.map +1 -1
  519. package/dist/tools/calculator.cjs.map +1 -1
  520. package/dist/tools/calculator.d.cts +2 -13
  521. package/dist/tools/calculator.d.ts +2 -13
  522. package/dist/tools/calculator.js.map +1 -1
  523. package/dist/tools/custom.cjs.map +1 -1
  524. package/dist/tools/custom.d.cts +3 -14
  525. package/dist/tools/custom.d.ts +3 -14
  526. package/dist/tools/custom.js.map +1 -1
  527. package/dist/tools/database/elasticsearch.cjs.map +1 -1
  528. package/dist/tools/database/elasticsearch.d.cts +2 -13
  529. package/dist/tools/database/elasticsearch.d.ts +2 -13
  530. package/dist/tools/database/elasticsearch.js.map +1 -1
  531. package/dist/tools/database/metadata.cjs.map +1 -1
  532. package/dist/tools/database/metadata.d.cts +1 -12
  533. package/dist/tools/database/metadata.d.ts +1 -12
  534. package/dist/tools/database/metadata.js.map +1 -1
  535. package/dist/tools/database/milvus.cjs.map +1 -1
  536. package/dist/tools/database/milvus.d.cts +2 -13
  537. package/dist/tools/database/milvus.d.ts +2 -13
  538. package/dist/tools/database/milvus.js.map +1 -1
  539. package/dist/tools/database/qdrant.cjs.map +1 -1
  540. package/dist/tools/database/qdrant.d.cts +2 -13
  541. package/dist/tools/database/qdrant.d.ts +2 -13
  542. package/dist/tools/database/qdrant.js.map +1 -1
  543. package/dist/tools/database/sql.cjs.map +1 -1
  544. package/dist/tools/database/sql.d.cts +2 -13
  545. package/dist/tools/database/sql.d.ts +2 -13
  546. package/dist/tools/database/sql.js.map +1 -1
  547. package/dist/tools/llm.cjs +3 -3
  548. package/dist/tools/llm.cjs.map +1 -1
  549. package/dist/tools/llm.d.cts +3 -14
  550. package/dist/tools/llm.d.ts +3 -14
  551. package/dist/tools/llm.js +3 -3
  552. package/dist/tools/llm.js.map +1 -1
  553. package/dist/tools/mcp.cjs +2 -1
  554. package/dist/tools/mcp.cjs.map +1 -1
  555. package/dist/tools/mcp.d.cts +2 -13
  556. package/dist/tools/mcp.d.ts +2 -13
  557. package/dist/tools/mcp.js +2 -1
  558. package/dist/tools/mcp.js.map +1 -1
  559. package/dist/tools/openapi.cjs.map +1 -1
  560. package/dist/tools/openapi.d.cts +1 -1
  561. package/dist/tools/openapi.d.ts +1 -1
  562. package/dist/tools/openapi.js.map +1 -1
  563. package/dist/tools/python/output.cjs.map +1 -1
  564. package/dist/tools/python/output.d.cts +2 -13
  565. package/dist/tools/python/output.d.ts +2 -13
  566. package/dist/tools/python/output.js.map +1 -1
  567. package/dist/tools/python/python.cjs.map +1 -1
  568. package/dist/tools/python/python.d.cts +2 -2
  569. package/dist/tools/python/python.d.ts +2 -2
  570. package/dist/tools/python/python.js.map +1 -1
  571. package/dist/tools/python/storage.cjs.map +1 -1
  572. package/dist/tools/python/storage.d.cts +1 -12
  573. package/dist/tools/python/storage.d.ts +1 -12
  574. package/dist/tools/python/storage.js.map +1 -1
  575. package/dist/tools/search/base.cjs.map +1 -1
  576. package/dist/tools/search/base.d.cts +2 -13
  577. package/dist/tools/search/base.d.ts +2 -13
  578. package/dist/tools/search/base.js.map +1 -1
  579. package/dist/tools/search/duckDuckGoSearch.cjs +7 -1
  580. package/dist/tools/search/duckDuckGoSearch.cjs.map +1 -1
  581. package/dist/tools/search/duckDuckGoSearch.d.cts +2 -13
  582. package/dist/tools/search/duckDuckGoSearch.d.ts +2 -13
  583. package/dist/tools/search/duckDuckGoSearch.js +7 -1
  584. package/dist/tools/search/duckDuckGoSearch.js.map +1 -1
  585. package/dist/tools/search/googleSearch.cjs.map +1 -1
  586. package/dist/tools/search/googleSearch.d.cts +1 -1
  587. package/dist/tools/search/googleSearch.d.ts +1 -1
  588. package/dist/tools/search/googleSearch.js.map +1 -1
  589. package/dist/tools/search/searXNGSearch.cjs.map +1 -1
  590. package/dist/tools/search/searXNGSearch.d.cts +2 -13
  591. package/dist/tools/search/searXNGSearch.d.ts +2 -13
  592. package/dist/tools/search/searXNGSearch.js.map +1 -1
  593. package/dist/tools/search/wikipedia.cjs +11 -11
  594. package/dist/tools/search/wikipedia.cjs.map +1 -1
  595. package/dist/tools/search/wikipedia.d.cts +1 -1
  596. package/dist/tools/search/wikipedia.d.ts +1 -1
  597. package/dist/tools/search/wikipedia.js +11 -11
  598. package/dist/tools/search/wikipedia.js.map +1 -1
  599. package/dist/tools/similarity.cjs.map +1 -1
  600. package/dist/tools/similarity.d.cts +2 -13
  601. package/dist/tools/similarity.d.ts +2 -13
  602. package/dist/tools/similarity.js.map +1 -1
  603. package/dist/tools/weather/openMeteo.cjs.map +1 -1
  604. package/dist/tools/weather/openMeteo.d.cts +2 -13
  605. package/dist/tools/weather/openMeteo.d.ts +2 -13
  606. package/dist/tools/weather/openMeteo.js.map +1 -1
  607. package/dist/tools/web/webCrawler.cjs.map +1 -1
  608. package/dist/tools/web/webCrawler.d.cts +1 -1
  609. package/dist/tools/web/webCrawler.d.ts +1 -1
  610. package/dist/tools/web/webCrawler.js.map +1 -1
  611. package/dist/version.cjs +1 -1
  612. package/dist/version.cjs.map +1 -1
  613. package/dist/version.d.cts +1 -12
  614. package/dist/version.d.ts +1 -12
  615. package/dist/version.js +1 -1
  616. package/dist/version.js.map +1 -1
  617. package/dist/workflows/agent.cjs.map +1 -1
  618. package/dist/workflows/agent.d.cts +3 -3
  619. package/dist/workflows/agent.d.ts +3 -3
  620. package/dist/workflows/agent.js.map +1 -1
  621. package/dist/workflows/workflow.cjs +3 -3
  622. package/dist/workflows/workflow.cjs.map +1 -1
  623. package/dist/workflows/workflow.d.cts +1 -1
  624. package/dist/workflows/workflow.d.ts +1 -1
  625. package/dist/workflows/workflow.js +3 -3
  626. package/dist/workflows/workflow.js.map +1 -1
  627. package/package.json +37 -73
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["encodeCustomMessage","msg","UserMessage","type","text","role","content","slice","decodeCustomMessage","value","_","id","split","join","unmaskCustomMessage","Role","USER","key","Array","isArray","map","val","filter","isTruthy","decoded","vercelFetcher","customFetch","url","options","isString","body","getProp","headers","JSON","parse","isPlainObject","messages","forEach","stringify","fetcher","fetch"],"mappings":"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","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\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 { CustomMessage, Role, UserMessage } from \"@/backend/message.js\";\nimport { isPlainObject, isString, isTruthy } from \"remeda\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { TextPart } from \"ai\";\n\nexport function encodeCustomMessage(msg: CustomMessage): UserMessage {\n return new UserMessage([\n {\n type: \"text\",\n text: `#custom_role#${msg.role}#`,\n },\n ...(msg.content.slice() as TextPart[]),\n ]);\n}\n\nexport function decodeCustomMessage(value: string) {\n const [_, id, role, ...content] = value.split(\"#\");\n if (id !== \"custom_role\") {\n return;\n }\n return { role, content: content.join(\"#\") };\n}\n\nfunction unmaskCustomMessage(msg: Record<string, any>) {\n if (msg.role !== Role.USER) {\n return;\n }\n\n for (const key of [\"content\", \"text\"]) {\n let value = msg[key];\n if (!value) {\n continue;\n }\n\n if (Array.isArray(value)) {\n value = value\n .map((val) => (val.type === \"text\" ? val.text || val.content : null))\n .filter(isTruthy)\n .join(\"\");\n }\n\n const decoded = decodeCustomMessage(value);\n if (decoded) {\n msg.role = decoded.role;\n msg[key] = decoded.content;\n break;\n }\n }\n}\n\nexport function vercelFetcher(customFetch?: typeof fetch): typeof fetch {\n return async (url, options) => {\n if (\n options &&\n isString(options.body) &&\n (getProp(options.headers, [\"content-type\"]) == \"application/json\" ||\n getProp(options.headers, [\"Content-Type\"]) == \"application/json\")\n ) {\n const body = JSON.parse(options.body);\n if (isPlainObject(body) && Array.isArray(body.messages)) {\n body.messages.forEach((msg) => {\n if (!isPlainObject(msg)) {\n return;\n }\n unmaskCustomMessage(msg);\n });\n }\n options.body = JSON.stringify(body);\n }\n\n const fetcher = customFetch ?? fetch;\n return await fetcher(url, options);\n };\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/vercel/backend/utils.ts"],"names":["encodeCustomMessage","msg","UserMessage","type","text","role","content","slice","decodeCustomMessage","value","_","id","split","join","unmaskCustomMessage","Role","USER","key","Array","isArray","map","val","filter","isTruthy","decoded","vercelFetcher","customFetch","url","options","isString","body","getProp","headers","JSON","parse","isPlainObject","messages","forEach","stringify","fetcher","fetch","parseHeadersFromEnv","env","parseEnv","z","preprocess","Object","fromEntries","String","pair","includes","record","string"],"mappings":"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","file":"utils.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { CustomMessage, Role, UserMessage } from \"@/backend/message.js\";\nimport { isPlainObject, isString, isTruthy } from \"remeda\";\nimport { getProp } from \"@/internals/helpers/object.js\";\nimport { TextPart } from \"ai\";\nimport { z } from \"zod\";\nimport { parseEnv } from \"@/internals/env.js\";\n\nexport function encodeCustomMessage(msg: CustomMessage): UserMessage {\n return new UserMessage([\n {\n type: \"text\",\n text: `#custom_role#${msg.role}#`,\n },\n ...(msg.content.slice() as TextPart[]),\n ]);\n}\n\nexport function decodeCustomMessage(value: string) {\n const [_, id, role, ...content] = value.split(\"#\");\n if (id !== \"custom_role\") {\n return;\n }\n return { role, content: content.join(\"#\") };\n}\n\nfunction unmaskCustomMessage(msg: Record<string, any>) {\n if (msg.role !== Role.USER) {\n return;\n }\n\n for (const key of [\"content\", \"text\"]) {\n let value = msg[key];\n if (!value) {\n continue;\n }\n\n if (Array.isArray(value)) {\n value = value\n .map((val) => (val.type === \"text\" ? val.text || val.content : null))\n .filter(isTruthy)\n .join(\"\");\n }\n\n const decoded = decodeCustomMessage(value);\n if (decoded) {\n msg.role = decoded.role;\n msg[key] = decoded.content;\n break;\n }\n }\n}\n\nexport function vercelFetcher(customFetch?: typeof fetch): typeof fetch {\n return async (url, options) => {\n if (\n options &&\n isString(options.body) &&\n (getProp(options.headers, [\"content-type\"]) === \"application/json\" ||\n getProp(options.headers, [\"Content-Type\"]) === \"application/json\")\n ) {\n const body = JSON.parse(options.body);\n if (isPlainObject(body) && Array.isArray(body.messages)) {\n body.messages.forEach((msg) => {\n if (!isPlainObject(msg)) {\n return;\n }\n unmaskCustomMessage(msg);\n });\n }\n options.body = JSON.stringify(body);\n }\n\n const fetcher = customFetch ?? fetch;\n return await fetcher(url, options);\n };\n}\n\nexport function parseHeadersFromEnv(env: string): Record<string, any> {\n return parseEnv(\n env,\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"]}
@@ -25,23 +25,23 @@ class WatsonxChatModel extends chat_cjs.ChatModel {
25
25
  }
26
26
  modelId;
27
27
  client;
28
- emitter;
29
- toolChoiceSupport;
28
+ emitter = emitter_cjs.Emitter.root.child({
29
+ namespace: [
30
+ "backend",
31
+ "watsonx",
32
+ "chat"
33
+ ],
34
+ creator: this
35
+ });
36
+ toolChoiceSupport = [
37
+ "none",
38
+ "single"
39
+ ];
30
40
  get providerId() {
31
41
  return "watsonx";
32
42
  }
33
43
  constructor(modelId = env_cjs.getEnv("WATSONX_CHAT_MODEL", "ibm/granite-3-8b-instruct"), client) {
34
- super(), this.modelId = modelId, this.emitter = emitter_cjs.Emitter.root.child({
35
- namespace: [
36
- "backend",
37
- "watsonx",
38
- "chat"
39
- ],
40
- creator: this
41
- }), this.toolChoiceSupport = [
42
- "none",
43
- "single"
44
- ];
44
+ super(), this.modelId = modelId;
45
45
  this.client = client_cjs.WatsonxClient.ensure(client);
46
46
  }
47
47
  config(config) {
@@ -1 +1 @@
1
- {"version":3,"sources":["chat.ts"],"names":["Type","WatsonxAiMlVml_v1","WatsonxChatModel","ChatModel","client","emitter","toolChoiceSupport","providerId","constructor","modelId","getEnv","Emitter","root","child","namespace","creator","WatsonxClient","ensure","config","name","parameters","undefined","NotImplementedError","_create","input","run","result","instance","textChat","prepareInput","signal","messages","finishReason","usage","extractOutput","choices","ChatModelOutput","_createStream","stream","textChatStream","returnObject","raw","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","toolConfig","toolChoice","toolChoiceOption","Tool","includes","ToolMessage","role","JSON","stringify","tool_call_id","SystemMessage","toPlain","spaceId","projectId","isEmpty","responseFormat","JSON_OBJECT","topP","frequencyPenalty","temperature","n","maxTokens","presencePenalty","stop","stopSequences","seed","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"chat.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\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 ChatModelToolChoiceSupport,\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\";\nimport { Tool } from \"@/tools/base.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 public readonly toolChoiceSupport: ChatModelToolChoiceSupport[] = [\"none\", \"single\"];\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, run: GetRunContext<any>) {\n const { result } = await this.client.instance.textChat({\n ...(await this.prepareInput(input)),\n signal: run.signal,\n });\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 signal: run.signal,\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 const toolConfig: Pick<TextChatParams, \"toolChoice\" | \"toolChoiceOption\"> = {\n toolChoice: undefined,\n toolChoiceOption: undefined,\n };\n if (input.toolChoice) {\n if (input.toolChoice instanceof Tool) {\n toolConfig.toolChoice = {\n type: \"function\",\n function: { name: input.toolChoice.name },\n };\n } else if (this.toolChoiceSupport.includes(input.toolChoice)) {\n toolConfig.toolChoiceOption = input.toolChoice;\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 && {\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 stop: input.stopSequences,\n seed: input.seed,\n ...toolConfig,\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":["../../../../src/adapters/watsonx/backend/chat.ts"],"names":["Type","WatsonxAiMlVml_v1","WatsonxChatModel","ChatModel","client","emitter","Emitter","root","child","namespace","creator","toolChoiceSupport","providerId","modelId","getEnv","WatsonxClient","ensure","config","name","parameters","undefined","NotImplementedError","_create","input","run","result","instance","textChat","prepareInput","signal","messages","finishReason","usage","extractOutput","choices","ChatModelOutput","_createStream","stream","textChatStream","returnObject","raw","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","toolConfig","toolChoice","toolChoiceOption","Tool","includes","ToolMessage","role","JSON","stringify","tool_call_id","SystemMessage","toPlain","spaceId","projectId","isEmpty","responseFormat","JSON_OBJECT","topP","frequencyPenalty","temperature","n","maxTokens","presencePenalty","stop","stopSequences","seed","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"chat.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n ChatConfig,\n ChatModel,\n ChatModelEmitter,\n ChatModelInput,\n ChatModelOutput,\n ChatModelParameters,\n ChatModelToolChoiceSupport,\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\";\nimport { Tool } from \"@/tools/base.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 public readonly toolChoiceSupport: ChatModelToolChoiceSupport[] = [\"none\", \"single\"];\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, run: GetRunContext<any>) {\n const { result } = await this.client.instance.textChat({\n ...(await this.prepareInput(input)),\n signal: run.signal,\n });\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 signal: run.signal,\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 const toolConfig: Pick<TextChatParams, \"toolChoice\" | \"toolChoiceOption\"> = {\n toolChoice: undefined,\n toolChoiceOption: undefined,\n };\n if (input.toolChoice) {\n if (input.toolChoice instanceof Tool) {\n toolConfig.toolChoice = {\n type: \"function\",\n function: { name: input.toolChoice.name },\n };\n } else if (this.toolChoiceSupport.includes(input.toolChoice)) {\n toolConfig.toolChoiceOption = input.toolChoice;\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 && {\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 stop: input.stopSequences,\n seed: input.seed,\n ...toolConfig,\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,9 +1,9 @@
1
1
  import { Logger } from '../../../logger/logger.cjs';
2
- import { m as ChatModel, h as ChatModelEmitter, l as ChatModelToolChoiceSupport, k as ChatConfig, d as ChatModelInput, n as ChatModelOutput, C as ChatModelParameters, i as ChatModelCache, g as ChatModelEvents } from '../../../chat-DvMzAHj6.cjs';
2
+ import { m as ChatModel, h as ChatModelEmitter, l as ChatModelToolChoiceSupport, k as ChatConfig, d as ChatModelInput, n as ChatModelOutput, C as ChatModelParameters, i as ChatModelCache, g as ChatModelEvents } from '../../../chat-CR4yfOR9.cjs';
3
3
  import { Message, MessageContentPart } from '../../../backend/message.cjs';
4
4
  import { WatsonxClient, WatsonxClientSettings } from './client.cjs';
5
5
  import { TextChatResultChoice, TextChatUsage, TextChatParams } from '@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js';
6
- import { E as Emitter } from '../../../emitter-D5Mu0EEH.cjs';
6
+ import { E as Emitter } from '../../../emitter-DWEsd-ud.cjs';
7
7
  import { GetRunContext } from '../../../context.cjs';
8
8
  import 'pino';
9
9
  import '../../../errors.cjs';
@@ -1,9 +1,9 @@
1
1
  import { Logger } from '../../../logger/logger.js';
2
- import { m as ChatModel, h as ChatModelEmitter, l as ChatModelToolChoiceSupport, k as ChatConfig, d as ChatModelInput, n as ChatModelOutput, C as ChatModelParameters, i as ChatModelCache, g as ChatModelEvents } from '../../../chat-BdN8hGWn.js';
2
+ import { m as ChatModel, h as ChatModelEmitter, l as ChatModelToolChoiceSupport, k as ChatConfig, d as ChatModelInput, n as ChatModelOutput, C as ChatModelParameters, i as ChatModelCache, g as ChatModelEvents } from '../../../chat-W9j8T6UU.js';
3
3
  import { Message, MessageContentPart } from '../../../backend/message.js';
4
4
  import { WatsonxClient, WatsonxClientSettings } from './client.js';
5
5
  import { TextChatResultChoice, TextChatUsage, TextChatParams } from '@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js';
6
- import { E as Emitter } from '../../../emitter-C3dO-s2P.js';
6
+ import { E as Emitter } from '../../../emitter-C9nwGLt6.js';
7
7
  import { GetRunContext } from '../../../context.js';
8
8
  import 'pino';
9
9
  import '../../../errors.js';
@@ -19,23 +19,23 @@ class WatsonxChatModel extends ChatModel {
19
19
  }
20
20
  modelId;
21
21
  client;
22
- emitter;
23
- toolChoiceSupport;
22
+ emitter = Emitter.root.child({
23
+ namespace: [
24
+ "backend",
25
+ "watsonx",
26
+ "chat"
27
+ ],
28
+ creator: this
29
+ });
30
+ toolChoiceSupport = [
31
+ "none",
32
+ "single"
33
+ ];
24
34
  get providerId() {
25
35
  return "watsonx";
26
36
  }
27
37
  constructor(modelId = getEnv("WATSONX_CHAT_MODEL", "ibm/granite-3-8b-instruct"), client) {
28
- super(), this.modelId = modelId, this.emitter = Emitter.root.child({
29
- namespace: [
30
- "backend",
31
- "watsonx",
32
- "chat"
33
- ],
34
- creator: this
35
- }), this.toolChoiceSupport = [
36
- "none",
37
- "single"
38
- ];
38
+ super(), this.modelId = modelId;
39
39
  this.client = WatsonxClient.ensure(client);
40
40
  }
41
41
  config(config) {
@@ -1 +1 @@
1
- {"version":3,"sources":["chat.ts"],"names":["Type","WatsonxChatModel","ChatModel","client","emitter","toolChoiceSupport","providerId","constructor","modelId","getEnv","Emitter","root","child","namespace","creator","WatsonxClient","ensure","config","name","parameters","undefined","NotImplementedError","_create","input","run","result","instance","textChat","prepareInput","signal","messages","finishReason","usage","extractOutput","choices","ChatModelOutput","_createStream","stream","textChatStream","returnObject","raw","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","toolConfig","toolChoice","toolChoiceOption","Tool","includes","ToolMessage","role","JSON","stringify","tool_call_id","SystemMessage","toPlain","spaceId","projectId","isEmpty","responseFormat","JSON_OBJECT","topP","frequencyPenalty","temperature","n","maxTokens","presencePenalty","stop","stopSequences","seed","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"chat.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\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 ChatModelToolChoiceSupport,\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\";\nimport { Tool } from \"@/tools/base.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 public readonly toolChoiceSupport: ChatModelToolChoiceSupport[] = [\"none\", \"single\"];\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, run: GetRunContext<any>) {\n const { result } = await this.client.instance.textChat({\n ...(await this.prepareInput(input)),\n signal: run.signal,\n });\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 signal: run.signal,\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 const toolConfig: Pick<TextChatParams, \"toolChoice\" | \"toolChoiceOption\"> = {\n toolChoice: undefined,\n toolChoiceOption: undefined,\n };\n if (input.toolChoice) {\n if (input.toolChoice instanceof Tool) {\n toolConfig.toolChoice = {\n type: \"function\",\n function: { name: input.toolChoice.name },\n };\n } else if (this.toolChoiceSupport.includes(input.toolChoice)) {\n toolConfig.toolChoiceOption = input.toolChoice;\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 && {\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 stop: input.stopSequences,\n seed: input.seed,\n ...toolConfig,\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":["../../../../src/adapters/watsonx/backend/chat.ts"],"names":["Type","WatsonxChatModel","ChatModel","client","emitter","Emitter","root","child","namespace","creator","toolChoiceSupport","providerId","modelId","getEnv","WatsonxClient","ensure","config","name","parameters","undefined","NotImplementedError","_create","input","run","result","instance","textChat","prepareInput","signal","messages","finishReason","usage","extractOutput","choices","ChatModelOutput","_createStream","stream","textChatStream","returnObject","raw","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","toolConfig","toolChoice","toolChoiceOption","Tool","includes","ToolMessage","role","JSON","stringify","tool_call_id","SystemMessage","toPlain","spaceId","projectId","isEmpty","responseFormat","JSON_OBJECT","topP","frequencyPenalty","temperature","n","maxTokens","presencePenalty","stop","stopSequences","seed","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign"],"mappings":"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","file":"chat.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n ChatConfig,\n ChatModel,\n ChatModelEmitter,\n ChatModelInput,\n ChatModelOutput,\n ChatModelParameters,\n ChatModelToolChoiceSupport,\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\";\nimport { Tool } from \"@/tools/base.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 public readonly toolChoiceSupport: ChatModelToolChoiceSupport[] = [\"none\", \"single\"];\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, run: GetRunContext<any>) {\n const { result } = await this.client.instance.textChat({\n ...(await this.prepareInput(input)),\n signal: run.signal,\n });\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 signal: run.signal,\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 const toolConfig: Pick<TextChatParams, \"toolChoice\" | \"toolChoiceOption\"> = {\n toolChoice: undefined,\n toolChoiceOption: undefined,\n };\n if (input.toolChoice) {\n if (input.toolChoice instanceof Tool) {\n toolConfig.toolChoice = {\n type: \"function\",\n function: { name: input.toolChoice.name },\n };\n } else if (this.toolChoiceSupport.includes(input.toolChoice)) {\n toolConfig.toolChoiceOption = input.toolChoice;\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 && {\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 stop: input.stopSequences,\n seed: input.seed,\n ...toolConfig,\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 +1 @@
1
- {"version":3,"sources":["client.ts"],"names":["WatsonxClient","BackendClient","constructor","settings","region","getEnv","baseUrl","projectId","spaceId","undefined","version","create","WatsonXAI","newInstance","serviceUrl","authenticator","IamAuthenticator","apikey","apiKey","url"],"mappings":";;;;;;;;;AA6BO,MAAMA,sBAAsBC,wBAAAA,CAAAA;EA7BnC;;;AA8BEC,EAAAA,WAAAA,CAAYC,QAAiC,EAAA;AAC3C,IAAA,MAAMC,MAASD,GAAAA,QAAAA,EAAUC,MAAUC,IAAAA,cAAAA,CAAO,gBAAA,CAAA;AAC1C,IAAA,MAAMC,UACJH,QAAUG,EAAAA,OAAAA,IAAWD,eAAO,kBAAA,CAAA,IAAuB,WAAWD,MAAAA,CAAAA,iBAAAA,CAAAA;AAEhE,IAAA,MAAMG,SAAYJ,GAAAA,QAAAA,EAAUI,SAAaF,IAAAA,cAAAA,CAAO,oBAAA,CAAA;AAChD,IAAA,MAAMG,UAAUD,SAAYE,GAAAA,MAAAA,GAAYN,QAAUK,EAAAA,OAAAA,IAAWH,eAAO,kBAAA,CAAA;AACpE,IAAA,MAAMK,OAAUP,GAAAA,QAAAA,EAAUO,OAAWL,IAAAA,cAAAA,CAAO,iBAAA,CAAsB,IAAA,YAAA;AAElE,IAAM,KAAA,CAAA;MACJ,GAAGF,QAAAA;AACHG,MAAAA,OAAAA;AACAC,MAAAA,SAAAA;AACAC,MAAAA,OAAAA;AACAE,MAAAA;KACF,CAAA;AACF;AACA,EAAA,IAAIF,OAAU,GAAA;AACZ,IAAA,OAAO,KAAKL,QAASK,CAAAA,OAAAA;AACvB;AAEA,EAAA,IAAID,SAAY,GAAA;AACd,IAAA,OAAO,KAAKJ,QAASI,CAAAA,SAAAA;AACvB;EAEUI,MAAS,GAAA;AACjB,IAAA,OAAOC,oBAAUC,WAAY,CAAA;AAC3BH,MAAAA,OAAAA,EAAS,KAAKP,QAASO,CAAAA,OAAAA;AACvBI,MAAAA,UAAAA,EAAY,KAAKX,QAASG,CAAAA,OAAAA;AAC1BS,MAAAA,aAAAA,EACE,IAAKZ,CAAAA,QAAAA,EAAUY,aACf,IAAA,IAAIC,gCAAiB,CAAA;AACnBC,QAAAA,MAAAA,EAAQ,IAAKd,CAAAA,QAAAA,EAAUe,MAAUb,IAAAA,cAAAA,CAAO,mBAAmB,EAAA,CAAA;QAC3Dc,GAAK,EAAA;OACP;KACJ,CAAA;AACF;AACF","file":"client.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\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 { WatsonXAI } from \"@ibm-cloud/watsonx-ai\";\nimport { getEnv } from \"@/internals/env.js\";\nimport { IamAuthenticator, UserOptions } from \"ibm-cloud-sdk-core\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport interface WatsonxClientSettings extends Pick<UserOptions, \"authenticator\" | \"version\"> {\n spaceId?: string;\n baseUrl?: string;\n region?: string;\n projectId?: string;\n apiKey?: string;\n}\n\nexport class WatsonxClient extends BackendClient<WatsonxClientSettings, WatsonXAI> {\n constructor(settings: WatsonxClientSettings) {\n const region = settings?.region || getEnv(\"WATSONX_REGION\");\n const baseUrl =\n settings?.baseUrl || getEnv(\"WATSONX_BASE_URL\") || `https://${region}.ml.cloud.ibm.com`;\n\n const projectId = settings?.projectId || getEnv(\"WATSONX_PROJECT_ID\");\n const spaceId = projectId ? undefined : settings?.spaceId || getEnv(\"WATSONX_SPACE_ID\");\n const version = settings?.version || getEnv(\"WATSONX_VERSION\") || \"2024-05-31\";\n\n super({\n ...settings,\n baseUrl,\n projectId,\n spaceId,\n version,\n });\n }\n get spaceId() {\n return this.settings.spaceId;\n }\n\n get projectId() {\n return this.settings.projectId;\n }\n\n protected create() {\n return WatsonXAI.newInstance({\n version: this.settings.version,\n serviceUrl: this.settings.baseUrl,\n authenticator:\n this.settings?.authenticator ||\n new IamAuthenticator({\n apikey: this.settings?.apiKey || getEnv(\"WATSONX_API_KEY\", \"\"),\n url: \"https://iam.cloud.ibm.com\",\n }),\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/watsonx/backend/client.ts"],"names":["WatsonxClient","BackendClient","settings","region","getEnv","baseUrl","projectId","spaceId","undefined","version","create","WatsonXAI","newInstance","serviceUrl","authenticator","IamAuthenticator","apikey","apiKey","url"],"mappings":";;;;;;;;;AAkBO,MAAMA,sBAAsBC,wBAAAA,CAAAA;EAlBnC;;;AAmBE,EAAA,WAAA,CAAYC,QAAAA,EAAiC;AAC3C,IAAA,MAAMC,MAAAA,GAASD,QAAAA,EAAUC,MAAAA,IAAUC,cAAAA,CAAO,gBAAA,CAAA;AAC1C,IAAA,MAAMC,UACJH,QAAAA,EAAUG,OAAAA,IAAWD,eAAO,kBAAA,CAAA,IAAuB,WAAWD,MAAAA,CAAAA,iBAAAA,CAAAA;AAEhE,IAAA,MAAMG,SAAAA,GAAYJ,QAAAA,EAAUI,SAAAA,IAAaF,cAAAA,CAAO,oBAAA,CAAA;AAChD,IAAA,MAAMG,UAAUD,SAAAA,GAAYE,MAAAA,GAAYN,QAAAA,EAAUK,OAAAA,IAAWH,eAAO,kBAAA,CAAA;AACpE,IAAA,MAAMK,OAAAA,GAAUP,QAAAA,EAAUO,OAAAA,IAAWL,cAAAA,CAAO,iBAAA,CAAA,IAAsB,YAAA;AAElE,IAAA,KAAA,CAAM;MACJ,GAAGF,QAAAA;AACHG,MAAAA,OAAAA;AACAC,MAAAA,SAAAA;AACAC,MAAAA,OAAAA;AACAE,MAAAA;KACF,CAAA;AACF;AACA,EAAA,IAAIF,OAAAA,GAAU;AACZ,IAAA,OAAO,KAAKL,QAAAA,CAASK,OAAAA;AACvB;AAEA,EAAA,IAAID,SAAAA,GAAY;AACd,IAAA,OAAO,KAAKJ,QAAAA,CAASI,SAAAA;AACvB;EAEUI,MAAAA,GAAS;AACjB,IAAA,OAAOC,oBAAUC,WAAAA,CAAY;AAC3BH,MAAAA,OAAAA,EAAS,KAAKP,QAAAA,CAASO,OAAAA;AACvBI,MAAAA,UAAAA,EAAY,KAAKX,QAAAA,CAASG,OAAAA;AAC1BS,MAAAA,aAAAA,EACE,IAAA,CAAKZ,QAAAA,EAAUY,aAAAA,IACf,IAAIC,gCAAAA,CAAiB;AACnBC,QAAAA,MAAAA,EAAQ,IAAA,CAAKd,QAAAA,EAAUe,MAAAA,IAAUb,cAAAA,CAAO,mBAAmB,EAAA,CAAA;QAC3Dc,GAAAA,EAAK;OACP;KACJ,CAAA;AACF;AACF","file":"client.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { WatsonXAI } from \"@ibm-cloud/watsonx-ai\";\nimport { getEnv } from \"@/internals/env.js\";\nimport { IamAuthenticator, UserOptions } from \"ibm-cloud-sdk-core\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport interface WatsonxClientSettings extends Pick<UserOptions, \"authenticator\" | \"version\"> {\n spaceId?: string;\n baseUrl?: string;\n region?: string;\n projectId?: string;\n apiKey?: string;\n}\n\nexport class WatsonxClient extends BackendClient<WatsonxClientSettings, WatsonXAI> {\n constructor(settings: WatsonxClientSettings) {\n const region = settings?.region || getEnv(\"WATSONX_REGION\");\n const baseUrl =\n settings?.baseUrl || getEnv(\"WATSONX_BASE_URL\") || `https://${region}.ml.cloud.ibm.com`;\n\n const projectId = settings?.projectId || getEnv(\"WATSONX_PROJECT_ID\");\n const spaceId = projectId ? undefined : settings?.spaceId || getEnv(\"WATSONX_SPACE_ID\");\n const version = settings?.version || getEnv(\"WATSONX_VERSION\") || \"2024-05-31\";\n\n super({\n ...settings,\n baseUrl,\n projectId,\n spaceId,\n version,\n });\n }\n get spaceId() {\n return this.settings.spaceId;\n }\n\n get projectId() {\n return this.settings.projectId;\n }\n\n protected create() {\n return WatsonXAI.newInstance({\n version: this.settings.version,\n serviceUrl: this.settings.baseUrl,\n authenticator:\n this.settings?.authenticator ||\n new IamAuthenticator({\n apikey: this.settings?.apiKey || getEnv(\"WATSONX_API_KEY\", \"\"),\n url: \"https://iam.cloud.ibm.com\",\n }),\n });\n }\n}\n"]}
@@ -7,18 +7,7 @@ import '../../../internals/helpers/guards.cjs';
7
7
 
8
8
  /**
9
9
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
10
+ * SPDX-License-Identifier: Apache-2.0
22
11
  */
23
12
 
24
13
  interface WatsonxClientSettings extends Pick<UserOptions, "authenticator" | "version"> {
@@ -7,18 +7,7 @@ import '../../../internals/helpers/guards.js';
7
7
 
8
8
  /**
9
9
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
10
+ * SPDX-License-Identifier: Apache-2.0
22
11
  */
23
12
 
24
13
  interface WatsonxClientSettings extends Pick<UserOptions, "authenticator" | "version"> {
@@ -1 +1 @@
1
- {"version":3,"sources":["client.ts"],"names":["WatsonxClient","BackendClient","constructor","settings","region","getEnv","baseUrl","projectId","spaceId","undefined","version","create","WatsonXAI","newInstance","serviceUrl","authenticator","IamAuthenticator","apikey","apiKey","url"],"mappings":";;;;;;;AA6BO,MAAMA,sBAAsBC,aAAAA,CAAAA;EA7BnC;;;AA8BEC,EAAAA,WAAAA,CAAYC,QAAiC,EAAA;AAC3C,IAAA,MAAMC,MAASD,GAAAA,QAAAA,EAAUC,MAAUC,IAAAA,MAAAA,CAAO,gBAAA,CAAA;AAC1C,IAAA,MAAMC,UACJH,QAAUG,EAAAA,OAAAA,IAAWD,OAAO,kBAAA,CAAA,IAAuB,WAAWD,MAAAA,CAAAA,iBAAAA,CAAAA;AAEhE,IAAA,MAAMG,SAAYJ,GAAAA,QAAAA,EAAUI,SAAaF,IAAAA,MAAAA,CAAO,oBAAA,CAAA;AAChD,IAAA,MAAMG,UAAUD,SAAYE,GAAAA,MAAAA,GAAYN,QAAUK,EAAAA,OAAAA,IAAWH,OAAO,kBAAA,CAAA;AACpE,IAAA,MAAMK,OAAUP,GAAAA,QAAAA,EAAUO,OAAWL,IAAAA,MAAAA,CAAO,iBAAA,CAAsB,IAAA,YAAA;AAElE,IAAM,KAAA,CAAA;MACJ,GAAGF,QAAAA;AACHG,MAAAA,OAAAA;AACAC,MAAAA,SAAAA;AACAC,MAAAA,OAAAA;AACAE,MAAAA;KACF,CAAA;AACF;AACA,EAAA,IAAIF,OAAU,GAAA;AACZ,IAAA,OAAO,KAAKL,QAASK,CAAAA,OAAAA;AACvB;AAEA,EAAA,IAAID,SAAY,GAAA;AACd,IAAA,OAAO,KAAKJ,QAASI,CAAAA,SAAAA;AACvB;EAEUI,MAAS,GAAA;AACjB,IAAA,OAAOC,UAAUC,WAAY,CAAA;AAC3BH,MAAAA,OAAAA,EAAS,KAAKP,QAASO,CAAAA,OAAAA;AACvBI,MAAAA,UAAAA,EAAY,KAAKX,QAASG,CAAAA,OAAAA;AAC1BS,MAAAA,aAAAA,EACE,IAAKZ,CAAAA,QAAAA,EAAUY,aACf,IAAA,IAAIC,gBAAiB,CAAA;AACnBC,QAAAA,MAAAA,EAAQ,IAAKd,CAAAA,QAAAA,EAAUe,MAAUb,IAAAA,MAAAA,CAAO,mBAAmB,EAAA,CAAA;QAC3Dc,GAAK,EAAA;OACP;KACJ,CAAA;AACF;AACF","file":"client.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\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 { WatsonXAI } from \"@ibm-cloud/watsonx-ai\";\nimport { getEnv } from \"@/internals/env.js\";\nimport { IamAuthenticator, UserOptions } from \"ibm-cloud-sdk-core\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport interface WatsonxClientSettings extends Pick<UserOptions, \"authenticator\" | \"version\"> {\n spaceId?: string;\n baseUrl?: string;\n region?: string;\n projectId?: string;\n apiKey?: string;\n}\n\nexport class WatsonxClient extends BackendClient<WatsonxClientSettings, WatsonXAI> {\n constructor(settings: WatsonxClientSettings) {\n const region = settings?.region || getEnv(\"WATSONX_REGION\");\n const baseUrl =\n settings?.baseUrl || getEnv(\"WATSONX_BASE_URL\") || `https://${region}.ml.cloud.ibm.com`;\n\n const projectId = settings?.projectId || getEnv(\"WATSONX_PROJECT_ID\");\n const spaceId = projectId ? undefined : settings?.spaceId || getEnv(\"WATSONX_SPACE_ID\");\n const version = settings?.version || getEnv(\"WATSONX_VERSION\") || \"2024-05-31\";\n\n super({\n ...settings,\n baseUrl,\n projectId,\n spaceId,\n version,\n });\n }\n get spaceId() {\n return this.settings.spaceId;\n }\n\n get projectId() {\n return this.settings.projectId;\n }\n\n protected create() {\n return WatsonXAI.newInstance({\n version: this.settings.version,\n serviceUrl: this.settings.baseUrl,\n authenticator:\n this.settings?.authenticator ||\n new IamAuthenticator({\n apikey: this.settings?.apiKey || getEnv(\"WATSONX_API_KEY\", \"\"),\n url: \"https://iam.cloud.ibm.com\",\n }),\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/watsonx/backend/client.ts"],"names":["WatsonxClient","BackendClient","settings","region","getEnv","baseUrl","projectId","spaceId","undefined","version","create","WatsonXAI","newInstance","serviceUrl","authenticator","IamAuthenticator","apikey","apiKey","url"],"mappings":";;;;;;;AAkBO,MAAMA,sBAAsBC,aAAAA,CAAAA;EAlBnC;;;AAmBE,EAAA,WAAA,CAAYC,QAAAA,EAAiC;AAC3C,IAAA,MAAMC,MAAAA,GAASD,QAAAA,EAAUC,MAAAA,IAAUC,MAAAA,CAAO,gBAAA,CAAA;AAC1C,IAAA,MAAMC,UACJH,QAAAA,EAAUG,OAAAA,IAAWD,OAAO,kBAAA,CAAA,IAAuB,WAAWD,MAAAA,CAAAA,iBAAAA,CAAAA;AAEhE,IAAA,MAAMG,SAAAA,GAAYJ,QAAAA,EAAUI,SAAAA,IAAaF,MAAAA,CAAO,oBAAA,CAAA;AAChD,IAAA,MAAMG,UAAUD,SAAAA,GAAYE,MAAAA,GAAYN,QAAAA,EAAUK,OAAAA,IAAWH,OAAO,kBAAA,CAAA;AACpE,IAAA,MAAMK,OAAAA,GAAUP,QAAAA,EAAUO,OAAAA,IAAWL,MAAAA,CAAO,iBAAA,CAAA,IAAsB,YAAA;AAElE,IAAA,KAAA,CAAM;MACJ,GAAGF,QAAAA;AACHG,MAAAA,OAAAA;AACAC,MAAAA,SAAAA;AACAC,MAAAA,OAAAA;AACAE,MAAAA;KACF,CAAA;AACF;AACA,EAAA,IAAIF,OAAAA,GAAU;AACZ,IAAA,OAAO,KAAKL,QAAAA,CAASK,OAAAA;AACvB;AAEA,EAAA,IAAID,SAAAA,GAAY;AACd,IAAA,OAAO,KAAKJ,QAAAA,CAASI,SAAAA;AACvB;EAEUI,MAAAA,GAAS;AACjB,IAAA,OAAOC,UAAUC,WAAAA,CAAY;AAC3BH,MAAAA,OAAAA,EAAS,KAAKP,QAAAA,CAASO,OAAAA;AACvBI,MAAAA,UAAAA,EAAY,KAAKX,QAAAA,CAASG,OAAAA;AAC1BS,MAAAA,aAAAA,EACE,IAAA,CAAKZ,QAAAA,EAAUY,aAAAA,IACf,IAAIC,gBAAAA,CAAiB;AACnBC,QAAAA,MAAAA,EAAQ,IAAA,CAAKd,QAAAA,EAAUe,MAAAA,IAAUb,MAAAA,CAAO,mBAAmB,EAAA,CAAA;QAC3Dc,GAAAA,EAAK;OACP;KACJ,CAAA;AACF;AACF","file":"client.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { WatsonXAI } from \"@ibm-cloud/watsonx-ai\";\nimport { getEnv } from \"@/internals/env.js\";\nimport { IamAuthenticator, UserOptions } from \"ibm-cloud-sdk-core\";\nimport { BackendClient } from \"@/backend/client.js\";\n\nexport interface WatsonxClientSettings extends Pick<UserOptions, \"authenticator\" | \"version\"> {\n spaceId?: string;\n baseUrl?: string;\n region?: string;\n projectId?: string;\n apiKey?: string;\n}\n\nexport class WatsonxClient extends BackendClient<WatsonxClientSettings, WatsonXAI> {\n constructor(settings: WatsonxClientSettings) {\n const region = settings?.region || getEnv(\"WATSONX_REGION\");\n const baseUrl =\n settings?.baseUrl || getEnv(\"WATSONX_BASE_URL\") || `https://${region}.ml.cloud.ibm.com`;\n\n const projectId = settings?.projectId || getEnv(\"WATSONX_PROJECT_ID\");\n const spaceId = projectId ? undefined : settings?.spaceId || getEnv(\"WATSONX_SPACE_ID\");\n const version = settings?.version || getEnv(\"WATSONX_VERSION\") || \"2024-05-31\";\n\n super({\n ...settings,\n baseUrl,\n projectId,\n spaceId,\n version,\n });\n }\n get spaceId() {\n return this.settings.spaceId;\n }\n\n get projectId() {\n return this.settings.projectId;\n }\n\n protected create() {\n return WatsonXAI.newInstance({\n version: this.settings.version,\n serviceUrl: this.settings.baseUrl,\n authenticator:\n this.settings?.authenticator ||\n new IamAuthenticator({\n apikey: this.settings?.apiKey || getEnv(\"WATSONX_API_KEY\", \"\"),\n url: \"https://iam.cloud.ibm.com\",\n }),\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["embedding.ts"],"names":["WatsonxEmbeddingModel","EmbeddingModel","client","emitter","providerId","constructor","modelId","getEnv","parameters","WatsonxClient","ensure","Emitter","root","child","namespace","creator","_create","input","response","instance","embedText","spaceId","projectId","inputs","values","return_options","input_text","embeddings","result","results","map","e","embedding","i","at","usage","tokens","input_token_count","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;;;AA6BO,MAAMA,8BAA8BC,4BAAAA,CAAAA;EA7B3C;;;;;AA8BqBC,EAAAA,MAAAA;AACHC,EAAAA,OAAAA;AAEhB,EAAA,IAAIC,UAAa,GAAA;AACf,IAAO,OAAA,SAAA;AACT;EAEAC,WACkBC,CAAAA,OAAAA,GAAkBC,eAChC,yBACA,EAAA,yCAAA,GAEcC,UAA8C,GAAA,IAC9DN,MACA,EAAA;AACA,IAAA,KAAA,EAAK,EAAA,IAAA,CAPWI,OAAAA,GAAAA,OAAAA,EAAAA,KAIAE,UAAAA,GAAAA,UAAAA;AAIhB,IAAKN,IAAAA,CAAAA,MAAAA,GAASO,wBAAcC,CAAAA,MAAAA,CAAOR,MAAAA,CAAAA;AACnC,IAAKC,IAAAA,CAAAA,OAAAA,GAAUQ,mBAAQC,CAAAA,IAAAA,CAAKC,KAAM,CAAA;MAChCC,SAAW,EAAA;AAAC,QAAA,SAAA;AAAW,QAAA,SAAA;AAAW,QAAA;;MAClCC,OAAS,EAAA;KACX,CAAA;AACF;AAEA,EAAA,MAAgBC,QAAQC,KAA2D,EAAA;AACjF,IAAA,MAAMC,QAAW,GAAA,MAAM,IAAKhB,CAAAA,MAAAA,CAAOiB,SAASC,SAAU,CAAA;AACpDd,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACde,MAAAA,OAAAA,EAAS,KAAKnB,MAAOmB,CAAAA,OAAAA;AACrBC,MAAAA,SAAAA,EAAW,KAAKpB,MAAOoB,CAAAA,SAAAA;AACvBC,MAAAA,MAAAA,EAAQN,KAAMO,CAAAA,MAAAA;MACdhB,UAAY,EAAA;QACViB,cAAgB,EAAA;UAAEC,UAAY,EAAA;AAAK,SAAA;AACnC,QAAA,GAAG,IAAKlB,CAAAA;AACV;KACF,CAAA;AAEA,IAAMmB,MAAAA,UAAAA,GAAaT,SAASU,MAAOC,CAAAA,OAAAA,CAAQC,IAAI,CAACC,CAAAA,KAAMA,EAAEC,SAAS,CAAA;AACjE,IAAA,MAAMR,MAASN,GAAAA,QAAAA,CAASU,MAAOC,CAAAA,OAAAA,CAAQC,IAAI,CAACC,CAAAA,EAAGE,CAAMF,KAAAA,CAAAA,CAAEd,KAASA,IAAAA,KAAAA,CAAMO,MAAOU,CAAAA,EAAAA,CAAGD,CAAAA,CAAAA,CAAAA;AAEhF,IAAO,OAAA;AACLN,MAAAA,UAAAA;AACAH,MAAAA,MAAAA;MACAW,KAAO,EAAA;AACLC,QAAAA,MAAAA,EAAQlB,SAASU,MAAOS,CAAAA;AAC1B;AACF,KAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACThC,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACdJ,MAAAA,MAAAA,EAAQ,IAAKA,CAAAA;AACf,KAAA;AACF;AAEAqC,EAAAA,YAAAA,CAAaC,QAAwD,EAAA;AACnEC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"embedding.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\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 { WatsonxClient, WatsonxClientSettings } from \"@/adapters/watsonx/backend/client.js\";\nimport {\n EmbeddingModel,\n EmbeddingModelInput,\n EmbeddingModelOutput,\n EmbeddingModelEvents,\n} from \"@/backend/embedding.js\";\nimport { EmbeddingParameters as WXEmbeddingParameters } from \"@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\nexport type WatsonxEmbeddingModelParameters = WXEmbeddingParameters;\n\nexport class WatsonxEmbeddingModel extends EmbeddingModel {\n protected readonly client: WatsonxClient;\n public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n get providerId() {\n return \"watsonx\";\n }\n\n constructor(\n public readonly modelId: string = getEnv(\n \"WATSONX_EMBEDDING_MODEL\",\n \"ibm/granite-embedding-107m-multilingual\",\n ),\n public readonly parameters: WatsonxEmbeddingModelParameters = {},\n client?: WatsonxClient | WatsonxClientSettings,\n ) {\n super();\n this.client = WatsonxClient.ensure(client);\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", \"watsonx\", \"embedding\"],\n creator: this,\n });\n }\n\n protected async _create(input: EmbeddingModelInput): Promise<EmbeddingModelOutput> {\n const response = await this.client.instance.embedText({\n modelId: this.modelId,\n spaceId: this.client.spaceId,\n projectId: this.client.projectId,\n inputs: input.values,\n parameters: {\n return_options: { input_text: true },\n ...this.parameters,\n },\n });\n\n const embeddings = response.result.results.map((e) => e.embedding);\n const values = response.result.results.map((e, i) => e.input || input.values.at(i)!);\n\n return {\n embeddings,\n values,\n usage: {\n tokens: response.result.input_token_count,\n },\n };\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n modelId: this.modelId,\n client: this.client,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/watsonx/backend/embedding.ts"],"names":["WatsonxEmbeddingModel","EmbeddingModel","client","emitter","providerId","modelId","getEnv","parameters","WatsonxClient","ensure","Emitter","root","child","namespace","creator","_create","input","response","instance","embedText","spaceId","projectId","inputs","values","return_options","input_text","embeddings","result","results","map","e","embedding","i","at","usage","tokens","input_token_count","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;;;AAkBO,MAAMA,8BAA8BC,4BAAAA,CAAAA;EAlB3C;;;;;AAmBqBC,EAAAA,MAAAA;AACHC,EAAAA,OAAAA;AAEhB,EAAA,IAAIC,UAAAA,GAAa;AACf,IAAA,OAAO,SAAA;AACT;EAEA,WAAA,CACkBC,OAAAA,GAAkBC,eAChC,yBAAA,EACA,yCAAA,GAEcC,UAAAA,GAA8C,IAC9DL,MAAAA,EACA;AACA,IAAA,KAAA,EAAK,EAAA,IAAA,CAPWG,OAAAA,GAAAA,OAAAA,EAAAA,KAIAE,UAAAA,GAAAA,UAAAA;AAIhB,IAAA,IAAA,CAAKL,MAAAA,GAASM,wBAAAA,CAAcC,MAAAA,CAAOP,MAAAA,CAAAA;AACnC,IAAA,IAAA,CAAKC,OAAAA,GAAUO,mBAAAA,CAAQC,IAAAA,CAAKC,KAAAA,CAAM;MAChCC,SAAAA,EAAW;AAAC,QAAA,SAAA;AAAW,QAAA,SAAA;AAAW,QAAA;;MAClCC,OAAAA,EAAS;KACX,CAAA;AACF;AAEA,EAAA,MAAgBC,QAAQC,KAAAA,EAA2D;AACjF,IAAA,MAAMC,QAAAA,GAAW,MAAM,IAAA,CAAKf,MAAAA,CAAOgB,SAASC,SAAAA,CAAU;AACpDd,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACde,MAAAA,OAAAA,EAAS,KAAKlB,MAAAA,CAAOkB,OAAAA;AACrBC,MAAAA,SAAAA,EAAW,KAAKnB,MAAAA,CAAOmB,SAAAA;AACvBC,MAAAA,MAAAA,EAAQN,KAAAA,CAAMO,MAAAA;MACdhB,UAAAA,EAAY;QACViB,cAAAA,EAAgB;UAAEC,UAAAA,EAAY;AAAK,SAAA;AACnC,QAAA,GAAG,IAAA,CAAKlB;AACV;KACF,CAAA;AAEA,IAAA,MAAMmB,UAAAA,GAAaT,SAASU,MAAAA,CAAOC,OAAAA,CAAQC,IAAI,CAACC,CAAAA,KAAMA,EAAEC,SAAS,CAAA;AACjE,IAAA,MAAMR,MAAAA,GAASN,QAAAA,CAASU,MAAAA,CAAOC,OAAAA,CAAQC,IAAI,CAACC,CAAAA,EAAGE,CAAAA,KAAMF,CAAAA,CAAEd,KAAAA,IAASA,KAAAA,CAAMO,MAAAA,CAAOU,EAAAA,CAAGD,CAAAA,CAAAA,CAAAA;AAEhF,IAAA,OAAO;AACLN,MAAAA,UAAAA;AACAH,MAAAA,MAAAA;MACAW,KAAAA,EAAO;AACLC,QAAAA,MAAAA,EAAQlB,SAASU,MAAAA,CAAOS;AAC1B;AACF,KAAA;AACF;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACThC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdH,MAAAA,MAAAA,EAAQ,IAAA,CAAKA;AACf,KAAA;AACF;AAEAoC,EAAAA,YAAAA,CAAaC,QAAAA,EAAwD;AACnEC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"embedding.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { WatsonxClient, WatsonxClientSettings } from \"@/adapters/watsonx/backend/client.js\";\nimport {\n EmbeddingModel,\n EmbeddingModelInput,\n EmbeddingModelOutput,\n EmbeddingModelEvents,\n} from \"@/backend/embedding.js\";\nimport { EmbeddingParameters as WXEmbeddingParameters } from \"@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\nexport type WatsonxEmbeddingModelParameters = WXEmbeddingParameters;\n\nexport class WatsonxEmbeddingModel extends EmbeddingModel {\n protected readonly client: WatsonxClient;\n public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n get providerId() {\n return \"watsonx\";\n }\n\n constructor(\n public readonly modelId: string = getEnv(\n \"WATSONX_EMBEDDING_MODEL\",\n \"ibm/granite-embedding-107m-multilingual\",\n ),\n public readonly parameters: WatsonxEmbeddingModelParameters = {},\n client?: WatsonxClient | WatsonxClientSettings,\n ) {\n super();\n this.client = WatsonxClient.ensure(client);\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", \"watsonx\", \"embedding\"],\n creator: this,\n });\n }\n\n protected async _create(input: EmbeddingModelInput): Promise<EmbeddingModelOutput> {\n const response = await this.client.instance.embedText({\n modelId: this.modelId,\n spaceId: this.client.spaceId,\n projectId: this.client.projectId,\n inputs: input.values,\n parameters: {\n return_options: { input_text: true },\n ...this.parameters,\n },\n });\n\n const embeddings = response.result.results.map((e) => e.embedding);\n const values = response.result.results.map((e, i) => e.input || input.values.at(i)!);\n\n return {\n embeddings,\n values,\n usage: {\n tokens: response.result.input_token_count,\n },\n };\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n modelId: this.modelId,\n client: this.client,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { WatsonxClient, WatsonxClientSettings } from './client.cjs';
2
2
  import { EmbeddingModel, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.cjs';
3
3
  import { EmbeddingParameters } from '@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js';
4
- import { E as Emitter } from '../../../emitter-D5Mu0EEH.cjs';
4
+ import { E as Emitter } from '../../../emitter-DWEsd-ud.cjs';
5
5
  import '@ibm-cloud/watsonx-ai';
6
6
  import 'ibm-cloud-sdk-core';
7
7
  import '../../../backend/client.cjs';
@@ -11,7 +11,7 @@ import '../../../internals/helpers/guards.cjs';
11
11
  import '../../../context.cjs';
12
12
  import '../../../internals/helpers/promise.cjs';
13
13
  import '../../../errors.cjs';
14
- import '../../../chat-DvMzAHj6.cjs';
14
+ import '../../../chat-CR4yfOR9.cjs';
15
15
  import '../../../backend/message.cjs';
16
16
  import 'ai';
17
17
  import 'promise-based-task';
@@ -28,18 +28,7 @@ import 'pino';
28
28
 
29
29
  /**
30
30
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
31
- *
32
- * Licensed under the Apache License, Version 2.0 (the "License");
33
- * you may not use this file except in compliance with the License.
34
- * You may obtain a copy of the License at
35
- *
36
- * http://www.apache.org/licenses/LICENSE-2.0
37
- *
38
- * Unless required by applicable law or agreed to in writing, software
39
- * distributed under the License is distributed on an "AS IS" BASIS,
40
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
41
- * See the License for the specific language governing permissions and
42
- * limitations under the License.
31
+ * SPDX-License-Identifier: Apache-2.0
43
32
  */
44
33
 
45
34
  type WatsonxEmbeddingModelParameters = EmbeddingParameters;
@@ -1,7 +1,7 @@
1
1
  import { WatsonxClient, WatsonxClientSettings } from './client.js';
2
2
  import { EmbeddingModel, EmbeddingModelEvents, EmbeddingModelInput, EmbeddingModelOutput } from '../../../backend/embedding.js';
3
3
  import { EmbeddingParameters } from '@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js';
4
- import { E as Emitter } from '../../../emitter-C3dO-s2P.js';
4
+ import { E as Emitter } from '../../../emitter-C9nwGLt6.js';
5
5
  import '@ibm-cloud/watsonx-ai';
6
6
  import 'ibm-cloud-sdk-core';
7
7
  import '../../../backend/client.js';
@@ -11,7 +11,7 @@ import '../../../internals/helpers/guards.js';
11
11
  import '../../../context.js';
12
12
  import '../../../internals/helpers/promise.js';
13
13
  import '../../../errors.js';
14
- import '../../../chat-BdN8hGWn.js';
14
+ import '../../../chat-W9j8T6UU.js';
15
15
  import '../../../backend/message.js';
16
16
  import 'ai';
17
17
  import 'promise-based-task';
@@ -28,18 +28,7 @@ import 'pino';
28
28
 
29
29
  /**
30
30
  * Copyright 2025 © BeeAI a Series of LF Projects, LLC
31
- *
32
- * Licensed under the Apache License, Version 2.0 (the "License");
33
- * you may not use this file except in compliance with the License.
34
- * You may obtain a copy of the License at
35
- *
36
- * http://www.apache.org/licenses/LICENSE-2.0
37
- *
38
- * Unless required by applicable law or agreed to in writing, software
39
- * distributed under the License is distributed on an "AS IS" BASIS,
40
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
41
- * See the License for the specific language governing permissions and
42
- * limitations under the License.
31
+ * SPDX-License-Identifier: Apache-2.0
43
32
  */
44
33
 
45
34
  type WatsonxEmbeddingModelParameters = EmbeddingParameters;
@@ -1 +1 @@
1
- {"version":3,"sources":["embedding.ts"],"names":["WatsonxEmbeddingModel","EmbeddingModel","client","emitter","providerId","constructor","modelId","getEnv","parameters","WatsonxClient","ensure","Emitter","root","child","namespace","creator","_create","input","response","instance","embedText","spaceId","projectId","inputs","values","return_options","input_text","embeddings","result","results","map","e","embedding","i","at","usage","tokens","input_token_count","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;AA6BO,MAAMA,8BAA8BC,cAAAA,CAAAA;EA7B3C;;;;;AA8BqBC,EAAAA,MAAAA;AACHC,EAAAA,OAAAA;AAEhB,EAAA,IAAIC,UAAa,GAAA;AACf,IAAO,OAAA,SAAA;AACT;EAEAC,WACkBC,CAAAA,OAAAA,GAAkBC,OAChC,yBACA,EAAA,yCAAA,GAEcC,UAA8C,GAAA,IAC9DN,MACA,EAAA;AACA,IAAA,KAAA,EAAK,EAAA,IAAA,CAPWI,OAAAA,GAAAA,OAAAA,EAAAA,KAIAE,UAAAA,GAAAA,UAAAA;AAIhB,IAAKN,IAAAA,CAAAA,MAAAA,GAASO,aAAcC,CAAAA,MAAAA,CAAOR,MAAAA,CAAAA;AACnC,IAAKC,IAAAA,CAAAA,OAAAA,GAAUQ,OAAQC,CAAAA,IAAAA,CAAKC,KAAM,CAAA;MAChCC,SAAW,EAAA;AAAC,QAAA,SAAA;AAAW,QAAA,SAAA;AAAW,QAAA;;MAClCC,OAAS,EAAA;KACX,CAAA;AACF;AAEA,EAAA,MAAgBC,QAAQC,KAA2D,EAAA;AACjF,IAAA,MAAMC,QAAW,GAAA,MAAM,IAAKhB,CAAAA,MAAAA,CAAOiB,SAASC,SAAU,CAAA;AACpDd,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACde,MAAAA,OAAAA,EAAS,KAAKnB,MAAOmB,CAAAA,OAAAA;AACrBC,MAAAA,SAAAA,EAAW,KAAKpB,MAAOoB,CAAAA,SAAAA;AACvBC,MAAAA,MAAAA,EAAQN,KAAMO,CAAAA,MAAAA;MACdhB,UAAY,EAAA;QACViB,cAAgB,EAAA;UAAEC,UAAY,EAAA;AAAK,SAAA;AACnC,QAAA,GAAG,IAAKlB,CAAAA;AACV;KACF,CAAA;AAEA,IAAMmB,MAAAA,UAAAA,GAAaT,SAASU,MAAOC,CAAAA,OAAAA,CAAQC,IAAI,CAACC,CAAAA,KAAMA,EAAEC,SAAS,CAAA;AACjE,IAAA,MAAMR,MAASN,GAAAA,QAAAA,CAASU,MAAOC,CAAAA,OAAAA,CAAQC,IAAI,CAACC,CAAAA,EAAGE,CAAMF,KAAAA,CAAAA,CAAEd,KAASA,IAAAA,KAAAA,CAAMO,MAAOU,CAAAA,EAAAA,CAAGD,CAAAA,CAAAA,CAAAA;AAEhF,IAAO,OAAA;AACLN,MAAAA,UAAAA;AACAH,MAAAA,MAAAA;MACAW,KAAO,EAAA;AACLC,QAAAA,MAAAA,EAAQlB,SAASU,MAAOS,CAAAA;AAC1B;AACF,KAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACThC,MAAAA,OAAAA,EAAS,IAAKA,CAAAA,OAAAA;AACdJ,MAAAA,MAAAA,EAAQ,IAAKA,CAAAA;AACf,KAAA;AACF;AAEAqC,EAAAA,YAAAA,CAAaC,QAAwD,EAAA;AACnEC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"embedding.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\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 { WatsonxClient, WatsonxClientSettings } from \"@/adapters/watsonx/backend/client.js\";\nimport {\n EmbeddingModel,\n EmbeddingModelInput,\n EmbeddingModelOutput,\n EmbeddingModelEvents,\n} from \"@/backend/embedding.js\";\nimport { EmbeddingParameters as WXEmbeddingParameters } from \"@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\nexport type WatsonxEmbeddingModelParameters = WXEmbeddingParameters;\n\nexport class WatsonxEmbeddingModel extends EmbeddingModel {\n protected readonly client: WatsonxClient;\n public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n get providerId() {\n return \"watsonx\";\n }\n\n constructor(\n public readonly modelId: string = getEnv(\n \"WATSONX_EMBEDDING_MODEL\",\n \"ibm/granite-embedding-107m-multilingual\",\n ),\n public readonly parameters: WatsonxEmbeddingModelParameters = {},\n client?: WatsonxClient | WatsonxClientSettings,\n ) {\n super();\n this.client = WatsonxClient.ensure(client);\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", \"watsonx\", \"embedding\"],\n creator: this,\n });\n }\n\n protected async _create(input: EmbeddingModelInput): Promise<EmbeddingModelOutput> {\n const response = await this.client.instance.embedText({\n modelId: this.modelId,\n spaceId: this.client.spaceId,\n projectId: this.client.projectId,\n inputs: input.values,\n parameters: {\n return_options: { input_text: true },\n ...this.parameters,\n },\n });\n\n const embeddings = response.result.results.map((e) => e.embedding);\n const values = response.result.results.map((e, i) => e.input || input.values.at(i)!);\n\n return {\n embeddings,\n values,\n usage: {\n tokens: response.result.input_token_count,\n },\n };\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n modelId: this.modelId,\n client: this.client,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/adapters/watsonx/backend/embedding.ts"],"names":["WatsonxEmbeddingModel","EmbeddingModel","client","emitter","providerId","modelId","getEnv","parameters","WatsonxClient","ensure","Emitter","root","child","namespace","creator","_create","input","response","instance","embedText","spaceId","projectId","inputs","values","return_options","input_text","embeddings","result","results","map","e","embedding","i","at","usage","tokens","input_token_count","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;AAkBO,MAAMA,8BAA8BC,cAAAA,CAAAA;EAlB3C;;;;;AAmBqBC,EAAAA,MAAAA;AACHC,EAAAA,OAAAA;AAEhB,EAAA,IAAIC,UAAAA,GAAa;AACf,IAAA,OAAO,SAAA;AACT;EAEA,WAAA,CACkBC,OAAAA,GAAkBC,OAChC,yBAAA,EACA,yCAAA,GAEcC,UAAAA,GAA8C,IAC9DL,MAAAA,EACA;AACA,IAAA,KAAA,EAAK,EAAA,IAAA,CAPWG,OAAAA,GAAAA,OAAAA,EAAAA,KAIAE,UAAAA,GAAAA,UAAAA;AAIhB,IAAA,IAAA,CAAKL,MAAAA,GAASM,aAAAA,CAAcC,MAAAA,CAAOP,MAAAA,CAAAA;AACnC,IAAA,IAAA,CAAKC,OAAAA,GAAUO,OAAAA,CAAQC,IAAAA,CAAKC,KAAAA,CAAM;MAChCC,SAAAA,EAAW;AAAC,QAAA,SAAA;AAAW,QAAA,SAAA;AAAW,QAAA;;MAClCC,OAAAA,EAAS;KACX,CAAA;AACF;AAEA,EAAA,MAAgBC,QAAQC,KAAAA,EAA2D;AACjF,IAAA,MAAMC,QAAAA,GAAW,MAAM,IAAA,CAAKf,MAAAA,CAAOgB,SAASC,SAAAA,CAAU;AACpDd,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACde,MAAAA,OAAAA,EAAS,KAAKlB,MAAAA,CAAOkB,OAAAA;AACrBC,MAAAA,SAAAA,EAAW,KAAKnB,MAAAA,CAAOmB,SAAAA;AACvBC,MAAAA,MAAAA,EAAQN,KAAAA,CAAMO,MAAAA;MACdhB,UAAAA,EAAY;QACViB,cAAAA,EAAgB;UAAEC,UAAAA,EAAY;AAAK,SAAA;AACnC,QAAA,GAAG,IAAA,CAAKlB;AACV;KACF,CAAA;AAEA,IAAA,MAAMmB,UAAAA,GAAaT,SAASU,MAAAA,CAAOC,OAAAA,CAAQC,IAAI,CAACC,CAAAA,KAAMA,EAAEC,SAAS,CAAA;AACjE,IAAA,MAAMR,MAAAA,GAASN,QAAAA,CAASU,MAAAA,CAAOC,OAAAA,CAAQC,IAAI,CAACC,CAAAA,EAAGE,CAAAA,KAAMF,CAAAA,CAAEd,KAAAA,IAASA,KAAAA,CAAMO,MAAAA,CAAOU,EAAAA,CAAGD,CAAAA,CAAAA,CAAAA;AAEhF,IAAA,OAAO;AACLN,MAAAA,UAAAA;AACAH,MAAAA,MAAAA;MACAW,KAAAA,EAAO;AACLC,QAAAA,MAAAA,EAAQlB,SAASU,MAAAA,CAAOS;AAC1B;AACF,KAAA;AACF;EAEAC,cAAAA,GAAiB;AACf,IAAA,OAAO;AACL,MAAA,GAAG,MAAMA,cAAAA,EAAAA;AACThC,MAAAA,OAAAA,EAAS,IAAA,CAAKA,OAAAA;AACdH,MAAAA,MAAAA,EAAQ,IAAA,CAAKA;AACf,KAAA;AACF;AAEAoC,EAAAA,YAAAA,CAAaC,QAAAA,EAAwD;AACnEC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"embedding.js","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { WatsonxClient, WatsonxClientSettings } from \"@/adapters/watsonx/backend/client.js\";\nimport {\n EmbeddingModel,\n EmbeddingModelInput,\n EmbeddingModelOutput,\n EmbeddingModelEvents,\n} from \"@/backend/embedding.js\";\nimport { EmbeddingParameters as WXEmbeddingParameters } from \"@ibm-cloud/watsonx-ai/dist/watsonx-ai-ml/vml_v1.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { getEnv } from \"@/internals/env.js\";\n\nexport type WatsonxEmbeddingModelParameters = WXEmbeddingParameters;\n\nexport class WatsonxEmbeddingModel extends EmbeddingModel {\n protected readonly client: WatsonxClient;\n public readonly emitter: Emitter<EmbeddingModelEvents>;\n\n get providerId() {\n return \"watsonx\";\n }\n\n constructor(\n public readonly modelId: string = getEnv(\n \"WATSONX_EMBEDDING_MODEL\",\n \"ibm/granite-embedding-107m-multilingual\",\n ),\n public readonly parameters: WatsonxEmbeddingModelParameters = {},\n client?: WatsonxClient | WatsonxClientSettings,\n ) {\n super();\n this.client = WatsonxClient.ensure(client);\n this.emitter = Emitter.root.child({\n namespace: [\"backend\", \"watsonx\", \"embedding\"],\n creator: this,\n });\n }\n\n protected async _create(input: EmbeddingModelInput): Promise<EmbeddingModelOutput> {\n const response = await this.client.instance.embedText({\n modelId: this.modelId,\n spaceId: this.client.spaceId,\n projectId: this.client.projectId,\n inputs: input.values,\n parameters: {\n return_options: { input_text: true },\n ...this.parameters,\n },\n });\n\n const embeddings = response.result.results.map((e) => e.embedding);\n const values = response.result.results.map((e, i) => e.input || input.values.at(i)!);\n\n return {\n embeddings,\n values,\n usage: {\n tokens: response.result.input_token_count,\n },\n };\n }\n\n createSnapshot() {\n return {\n ...super.createSnapshot(),\n modelId: this.modelId,\n client: this.client,\n };\n }\n\n loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>): void {\n Object.assign(this, snapshot);\n }\n}\n"]}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var chat_cjs = require('../../vercel/backend/chat.cjs');
4
+ var client_cjs = require('./client.cjs');
5
+ var env_cjs = require('../../../internals/env.cjs');
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ class XAIChatModel extends chat_cjs.VercelChatModel {
10
+ static {
11
+ __name(this, "XAIChatModel");
12
+ }
13
+ constructor(modelId = env_cjs.getEnv("XAI_CHAT_MODEL", "grok-3-mini"), settings = {}, client) {
14
+ const model = client_cjs.XaiClient.ensure(client).instance.languageModel(modelId, settings);
15
+ super(model);
16
+ }
17
+ static {
18
+ XAIChatModel.register();
19
+ }
20
+ }
21
+
22
+ exports.XAIChatModel = XAIChatModel;
23
+ //# sourceMappingURL=chat.cjs.map
24
+ //# sourceMappingURL=chat.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/adapters/xai/backend/chat.ts"],"names":["XAIChatModel","VercelChatModel","modelId","getEnv","settings","client","model","XaiClient","ensure","instance","languageModel","register"],"mappings":";;;;;;;;AAcO,MAAMA,qBAAqBC,wBAAAA,CAAAA;EAdlC;;;EAeE,WAAA,CACEC,OAAAA,GAA0BC,eAAO,gBAAA,EAAkB,aAAA,GACnDC,QAAAA,GAAiC,IACjCC,MAAAA,EACA;AACA,IAAA,MAAMC,KAAAA,GAAQC,qBAAUC,MAAAA,CAAOH,MAAAA,EAAQI,QAAAA,CAASC,aAAAA,CAAcR,SAASE,QAAAA,CAAAA;AACvE,IAAA,KAAA,CAAME,KAAAA,CAAAA;AACR;EAEA;AACEN,IAAAA,YAAAA,CAAaW,QAAAA,EAAQ;AACvB;AACF","file":"chat.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { VercelChatModel } from \"@/adapters/vercel/backend/chat.js\";\nimport { XaiClient, type XaiClientSettings } from \"@/adapters/xai/backend/client.js\";\nimport { getEnv } from \"@/internals/env.js\";\nimport type { XaiProvider } from \"@ai-sdk/xai\";\n\ntype XaiParameters = Parameters<XaiProvider[\"languageModel\"]>;\nexport type XAIChatModelId = NonNullable<XaiParameters[0]>;\nexport type XAIChatModelSettings = NonNullable<XaiParameters[1]>;\n\nexport class XAIChatModel extends VercelChatModel {\n constructor(\n modelId: XAIChatModelId = getEnv(\"XAI_CHAT_MODEL\", \"grok-3-mini\"),\n settings: XAIChatModelSettings = {},\n client?: XaiClientSettings | XaiClient,\n ) {\n const model = XaiClient.ensure(client).instance.languageModel(modelId, settings);\n super(model);\n }\n\n static {\n XAIChatModel.register();\n }\n}\n"]}