@llumiverse/drivers 0.20.0 → 0.22.0-dev.1

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 (293) hide show
  1. package/lib/cjs/adobe/firefly.js +6 -5
  2. package/lib/cjs/adobe/firefly.js.map +1 -1
  3. package/lib/cjs/azure/azure_foundry.js +388 -0
  4. package/lib/cjs/azure/azure_foundry.js.map +1 -0
  5. package/lib/cjs/bedrock/index.js +62 -39
  6. package/lib/cjs/bedrock/index.js.map +1 -1
  7. package/lib/cjs/groq/index.js +178 -22
  8. package/lib/cjs/groq/index.js.map +1 -1
  9. package/lib/cjs/huggingface_ie.js +5 -4
  10. package/lib/cjs/huggingface_ie.js.map +1 -1
  11. package/lib/cjs/index.js +3 -2
  12. package/lib/cjs/index.js.map +1 -1
  13. package/lib/cjs/mistral/index.js +5 -3
  14. package/lib/cjs/mistral/index.js.map +1 -1
  15. package/lib/cjs/openai/azure_openai.js +72 -0
  16. package/lib/cjs/openai/azure_openai.js.map +1 -0
  17. package/lib/cjs/openai/index.js +13 -16
  18. package/lib/cjs/openai/index.js.map +1 -1
  19. package/lib/cjs/openai/openai.js +2 -2
  20. package/lib/cjs/openai/openai.js.map +1 -1
  21. package/lib/cjs/openai/openai_format.js +138 -0
  22. package/lib/cjs/openai/openai_format.js.map +1 -0
  23. package/lib/cjs/replicate.js +3 -3
  24. package/lib/cjs/replicate.js.map +1 -1
  25. package/lib/cjs/test/utils.js +1 -1
  26. package/lib/cjs/test/utils.js.map +1 -1
  27. package/lib/cjs/test-driver/TestErrorCompletionStream.js +20 -0
  28. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +1 -0
  29. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +24 -0
  30. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
  31. package/lib/cjs/test-driver/index.js +109 -0
  32. package/lib/cjs/test-driver/index.js.map +1 -0
  33. package/lib/cjs/test-driver/utils.js +30 -0
  34. package/lib/cjs/test-driver/utils.js.map +1 -0
  35. package/lib/cjs/togetherai/index.js +2 -2
  36. package/lib/cjs/togetherai/index.js.map +1 -1
  37. package/lib/cjs/vertexai/embeddings/embeddings-text.js +1 -1
  38. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +1 -1
  39. package/lib/cjs/vertexai/index.js +90 -28
  40. package/lib/cjs/vertexai/index.js.map +1 -1
  41. package/lib/cjs/vertexai/models/claude.js +14 -12
  42. package/lib/cjs/vertexai/models/claude.js.map +1 -1
  43. package/lib/cjs/vertexai/models/gemini.js +158 -52
  44. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  45. package/lib/cjs/vertexai/models/imagen.js +11 -22
  46. package/lib/cjs/vertexai/models/imagen.js.map +1 -1
  47. package/lib/cjs/vertexai/models/llama.js +4 -3
  48. package/lib/cjs/vertexai/models/llama.js.map +1 -1
  49. package/lib/cjs/watsonx/index.js +3 -3
  50. package/lib/cjs/watsonx/index.js.map +1 -1
  51. package/lib/cjs/xai/index.js +4 -4
  52. package/lib/cjs/xai/index.js.map +1 -1
  53. package/lib/esm/adobe/firefly.js +6 -5
  54. package/lib/esm/adobe/firefly.js.map +1 -1
  55. package/lib/esm/azure/azure_foundry.js +382 -0
  56. package/lib/esm/azure/azure_foundry.js.map +1 -0
  57. package/lib/esm/bedrock/index.js +62 -39
  58. package/lib/esm/bedrock/index.js.map +1 -1
  59. package/lib/esm/groq/index.js +178 -22
  60. package/lib/esm/groq/index.js.map +1 -1
  61. package/lib/esm/huggingface_ie.js +6 -5
  62. package/lib/esm/huggingface_ie.js.map +1 -1
  63. package/lib/esm/index.js +3 -2
  64. package/lib/esm/index.js.map +1 -1
  65. package/lib/esm/mistral/index.js +5 -3
  66. package/lib/esm/mistral/index.js.map +1 -1
  67. package/lib/esm/openai/azure_openai.js +68 -0
  68. package/lib/esm/openai/azure_openai.js.map +1 -0
  69. package/lib/esm/openai/index.js +12 -15
  70. package/lib/esm/openai/index.js.map +1 -1
  71. package/lib/esm/openai/openai.js +2 -2
  72. package/lib/esm/openai/openai.js.map +1 -1
  73. package/lib/esm/openai/openai_format.js +134 -0
  74. package/lib/esm/openai/openai_format.js.map +1 -0
  75. package/lib/esm/replicate.js +3 -3
  76. package/lib/esm/replicate.js.map +1 -1
  77. package/lib/esm/src/adobe/firefly.js +116 -0
  78. package/lib/esm/src/adobe/firefly.js.map +1 -0
  79. package/lib/esm/src/azure/azure_foundry.js +382 -0
  80. package/lib/esm/src/azure/azure_foundry.js.map +1 -0
  81. package/lib/esm/src/bedrock/converse.js +278 -0
  82. package/lib/esm/src/bedrock/converse.js.map +1 -0
  83. package/lib/esm/src/bedrock/index.js +819 -0
  84. package/lib/esm/src/bedrock/index.js.map +1 -0
  85. package/lib/esm/src/bedrock/nova-image-payload.js +203 -0
  86. package/lib/esm/src/bedrock/nova-image-payload.js.map +1 -0
  87. package/lib/esm/src/bedrock/payloads.js +2 -0
  88. package/lib/esm/src/bedrock/payloads.js.map +1 -0
  89. package/lib/esm/src/bedrock/s3.js +99 -0
  90. package/lib/esm/src/bedrock/s3.js.map +1 -0
  91. package/lib/esm/src/groq/index.js +286 -0
  92. package/lib/esm/src/groq/index.js.map +1 -0
  93. package/lib/esm/src/huggingface_ie.js +196 -0
  94. package/lib/esm/src/huggingface_ie.js.map +1 -0
  95. package/lib/esm/src/index.js +14 -0
  96. package/lib/esm/src/index.js.map +1 -0
  97. package/lib/esm/src/mistral/index.js +169 -0
  98. package/lib/esm/src/mistral/index.js.map +1 -0
  99. package/lib/esm/src/mistral/types.js +80 -0
  100. package/lib/esm/src/mistral/types.js.map +1 -0
  101. package/lib/esm/src/openai/azure_openai.js +68 -0
  102. package/lib/esm/src/openai/azure_openai.js.map +1 -0
  103. package/lib/esm/src/openai/index.js +460 -0
  104. package/lib/esm/src/openai/index.js.map +1 -0
  105. package/lib/esm/src/openai/openai.js +14 -0
  106. package/lib/esm/src/openai/openai.js.map +1 -0
  107. package/lib/esm/src/openai/openai_format.js +134 -0
  108. package/lib/esm/src/openai/openai_format.js.map +1 -0
  109. package/lib/esm/src/replicate.js +268 -0
  110. package/lib/esm/src/replicate.js.map +1 -0
  111. package/lib/esm/src/test/TestErrorCompletionStream.js +16 -0
  112. package/lib/esm/src/test/TestErrorCompletionStream.js.map +1 -0
  113. package/lib/esm/src/test/TestValidationErrorCompletionStream.js +20 -0
  114. package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +1 -0
  115. package/lib/esm/src/test/index.js +91 -0
  116. package/lib/esm/src/test/index.js.map +1 -0
  117. package/lib/esm/src/test/utils.js +25 -0
  118. package/lib/esm/src/test/utils.js.map +1 -0
  119. package/lib/esm/src/togetherai/index.js +122 -0
  120. package/lib/esm/src/togetherai/index.js.map +1 -0
  121. package/lib/esm/src/togetherai/interfaces.js +2 -0
  122. package/lib/esm/src/togetherai/interfaces.js.map +1 -0
  123. package/lib/esm/src/vertexai/debug.js +6 -0
  124. package/lib/esm/src/vertexai/debug.js.map +1 -0
  125. package/lib/esm/src/vertexai/embeddings/embeddings-image.js +24 -0
  126. package/lib/esm/src/vertexai/embeddings/embeddings-image.js.map +1 -0
  127. package/lib/esm/src/vertexai/embeddings/embeddings-text.js +20 -0
  128. package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +1 -0
  129. package/lib/esm/src/vertexai/index.js +332 -0
  130. package/lib/esm/src/vertexai/index.js.map +1 -0
  131. package/lib/esm/src/vertexai/models/claude.js +372 -0
  132. package/lib/esm/src/vertexai/models/claude.js.map +1 -0
  133. package/lib/esm/src/vertexai/models/gemini.js +806 -0
  134. package/lib/esm/src/vertexai/models/gemini.js.map +1 -0
  135. package/lib/esm/src/vertexai/models/imagen.js +302 -0
  136. package/lib/esm/src/vertexai/models/imagen.js.map +1 -0
  137. package/lib/esm/src/vertexai/models/llama.js +179 -0
  138. package/lib/esm/src/vertexai/models/llama.js.map +1 -0
  139. package/lib/esm/src/vertexai/models.js +21 -0
  140. package/lib/esm/src/vertexai/models.js.map +1 -0
  141. package/lib/esm/src/watsonx/index.js +157 -0
  142. package/lib/esm/src/watsonx/index.js.map +1 -0
  143. package/lib/esm/src/watsonx/interfaces.js +2 -0
  144. package/lib/esm/src/watsonx/interfaces.js.map +1 -0
  145. package/lib/esm/src/xai/index.js +64 -0
  146. package/lib/esm/src/xai/index.js.map +1 -0
  147. package/lib/esm/test/utils.js +1 -1
  148. package/lib/esm/test/utils.js.map +1 -1
  149. package/lib/esm/test-driver/TestErrorCompletionStream.js +16 -0
  150. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +1 -0
  151. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js +20 -0
  152. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
  153. package/lib/esm/test-driver/index.js +91 -0
  154. package/lib/esm/test-driver/index.js.map +1 -0
  155. package/lib/esm/test-driver/utils.js +25 -0
  156. package/lib/esm/test-driver/utils.js.map +1 -0
  157. package/lib/esm/togetherai/index.js +2 -2
  158. package/lib/esm/togetherai/index.js.map +1 -1
  159. package/lib/esm/tsconfig.tsbuildinfo +1 -0
  160. package/lib/esm/vertexai/embeddings/embeddings-text.js +1 -1
  161. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +1 -1
  162. package/lib/esm/vertexai/index.js +91 -29
  163. package/lib/esm/vertexai/index.js.map +1 -1
  164. package/lib/esm/vertexai/models/claude.js +14 -12
  165. package/lib/esm/vertexai/models/claude.js.map +1 -1
  166. package/lib/esm/vertexai/models/gemini.js +159 -53
  167. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  168. package/lib/esm/vertexai/models/imagen.js +8 -16
  169. package/lib/esm/vertexai/models/imagen.js.map +1 -1
  170. package/lib/esm/vertexai/models/llama.js +4 -3
  171. package/lib/esm/vertexai/models/llama.js.map +1 -1
  172. package/lib/esm/vertexai/models.js.map +1 -1
  173. package/lib/esm/watsonx/index.js +3 -3
  174. package/lib/esm/watsonx/index.js.map +1 -1
  175. package/lib/esm/xai/index.js +3 -3
  176. package/lib/esm/xai/index.js.map +1 -1
  177. package/lib/types/adobe/firefly.d.ts +3 -3
  178. package/lib/types/adobe/firefly.d.ts.map +1 -1
  179. package/lib/types/azure/azure_foundry.d.ts +50 -0
  180. package/lib/types/azure/azure_foundry.d.ts.map +1 -0
  181. package/lib/types/bedrock/index.d.ts +4 -4
  182. package/lib/types/bedrock/index.d.ts.map +1 -1
  183. package/lib/types/groq/index.d.ts +8 -5
  184. package/lib/types/groq/index.d.ts.map +1 -1
  185. package/lib/types/huggingface_ie.d.ts +8 -5
  186. package/lib/types/huggingface_ie.d.ts.map +1 -1
  187. package/lib/types/index.d.ts +3 -2
  188. package/lib/types/index.d.ts.map +1 -1
  189. package/lib/types/mistral/index.d.ts +4 -4
  190. package/lib/types/mistral/index.d.ts.map +1 -1
  191. package/lib/types/openai/azure_openai.d.ts +25 -0
  192. package/lib/types/openai/azure_openai.d.ts.map +1 -0
  193. package/lib/types/openai/index.d.ts +6 -7
  194. package/lib/types/openai/index.d.ts.map +1 -1
  195. package/lib/types/openai/openai.d.ts +2 -2
  196. package/lib/types/openai/openai.d.ts.map +1 -1
  197. package/lib/types/openai/openai_format.d.ts +19 -0
  198. package/lib/types/openai/openai_format.d.ts.map +1 -0
  199. package/lib/types/replicate.d.ts +6 -3
  200. package/lib/types/replicate.d.ts.map +1 -1
  201. package/lib/types/src/adobe/firefly.d.ts +29 -0
  202. package/lib/types/src/azure/azure_foundry.d.ts +49 -0
  203. package/lib/types/src/bedrock/converse.d.ts +8 -0
  204. package/lib/types/src/bedrock/index.d.ts +57 -0
  205. package/lib/types/src/bedrock/nova-image-payload.d.ts +73 -0
  206. package/lib/types/src/bedrock/payloads.d.ts +11 -0
  207. package/lib/types/src/bedrock/s3.d.ts +22 -0
  208. package/lib/types/src/groq/index.d.ts +26 -0
  209. package/lib/types/src/huggingface_ie.d.ts +34 -0
  210. package/lib/types/src/index.d.ts +13 -0
  211. package/lib/types/src/mistral/index.d.ts +24 -0
  212. package/lib/types/src/mistral/types.d.ts +131 -0
  213. package/lib/types/src/openai/azure_openai.d.ts +24 -0
  214. package/lib/types/src/openai/index.d.ts +24 -0
  215. package/lib/types/src/openai/openai.d.ts +14 -0
  216. package/lib/types/src/openai/openai_format.d.ts +18 -0
  217. package/lib/types/src/replicate.d.ts +47 -0
  218. package/lib/types/src/test/TestErrorCompletionStream.d.ts +8 -0
  219. package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +8 -0
  220. package/lib/types/src/test/index.d.ts +23 -0
  221. package/lib/types/src/test/utils.d.ts +4 -0
  222. package/lib/types/src/togetherai/index.d.ts +22 -0
  223. package/lib/types/src/togetherai/interfaces.d.ts +95 -0
  224. package/lib/types/src/vertexai/debug.d.ts +1 -0
  225. package/lib/types/src/vertexai/embeddings/embeddings-image.d.ts +10 -0
  226. package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +9 -0
  227. package/lib/types/src/vertexai/index.d.ts +52 -0
  228. package/lib/types/src/vertexai/models/claude.d.ts +17 -0
  229. package/lib/types/src/vertexai/models/gemini.d.ts +17 -0
  230. package/lib/types/src/vertexai/models/imagen.d.ts +74 -0
  231. package/lib/types/src/vertexai/models/llama.d.ts +19 -0
  232. package/lib/types/src/vertexai/models.d.ts +14 -0
  233. package/lib/types/src/watsonx/index.d.ts +26 -0
  234. package/lib/types/src/watsonx/interfaces.d.ts +64 -0
  235. package/lib/types/src/xai/index.d.ts +18 -0
  236. package/lib/types/test-driver/TestErrorCompletionStream.d.ts +9 -0
  237. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +1 -0
  238. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts +9 -0
  239. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +1 -0
  240. package/lib/types/test-driver/index.d.ts +24 -0
  241. package/lib/types/test-driver/index.d.ts.map +1 -0
  242. package/lib/types/test-driver/utils.d.ts +5 -0
  243. package/lib/types/test-driver/utils.d.ts.map +1 -0
  244. package/lib/types/togetherai/index.d.ts +3 -3
  245. package/lib/types/togetherai/index.d.ts.map +1 -1
  246. package/lib/types/vertexai/index.d.ts +10 -7
  247. package/lib/types/vertexai/index.d.ts.map +1 -1
  248. package/lib/types/vertexai/models/claude.d.ts.map +1 -1
  249. package/lib/types/vertexai/models/gemini.d.ts +3 -2
  250. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  251. package/lib/types/vertexai/models/imagen.d.ts +2 -2
  252. package/lib/types/vertexai/models/imagen.d.ts.map +1 -1
  253. package/lib/types/vertexai/models/llama.d.ts +2 -2
  254. package/lib/types/vertexai/models/llama.d.ts.map +1 -1
  255. package/lib/types/vertexai/models.d.ts +2 -2
  256. package/lib/types/vertexai/models.d.ts.map +1 -1
  257. package/lib/types/watsonx/index.d.ts +3 -3
  258. package/lib/types/watsonx/index.d.ts.map +1 -1
  259. package/lib/types/xai/index.d.ts.map +1 -1
  260. package/package.json +29 -25
  261. package/src/adobe/firefly.ts +12 -20
  262. package/src/azure/azure_foundry.ts +458 -0
  263. package/src/bedrock/index.ts +65 -43
  264. package/src/groq/index.ts +219 -32
  265. package/src/huggingface_ie.ts +13 -14
  266. package/src/index.ts +3 -2
  267. package/src/mistral/index.ts +11 -9
  268. package/src/openai/azure_openai.ts +92 -0
  269. package/src/openai/index.ts +27 -28
  270. package/src/openai/openai.ts +2 -5
  271. package/src/openai/openai_format.ts +165 -0
  272. package/src/replicate.ts +12 -12
  273. package/src/{test → test-driver}/utils.ts +1 -1
  274. package/src/togetherai/index.ts +7 -7
  275. package/src/vertexai/embeddings/embeddings-text.ts +2 -2
  276. package/src/vertexai/index.ts +104 -38
  277. package/src/vertexai/models/claude.ts +18 -16
  278. package/src/vertexai/models/gemini.ts +195 -67
  279. package/src/vertexai/models/imagen.ts +15 -26
  280. package/src/vertexai/models/llama.ts +6 -5
  281. package/src/vertexai/models.ts +4 -4
  282. package/src/watsonx/index.ts +10 -10
  283. package/src/xai/index.ts +13 -15
  284. package/lib/cjs/openai/azure.js +0 -31
  285. package/lib/cjs/openai/azure.js.map +0 -1
  286. package/lib/esm/openai/azure.js +0 -27
  287. package/lib/esm/openai/azure.js.map +0 -1
  288. package/lib/types/openai/azure.d.ts +0 -20
  289. package/lib/types/openai/azure.d.ts.map +0 -1
  290. package/src/openai/azure.ts +0 -54
  291. /package/src/{test → test-driver}/TestErrorCompletionStream.ts +0 -0
  292. /package/src/{test → test-driver}/TestValidationErrorCompletionStream.ts +0 -0
  293. /package/src/{test → test-driver}/index.ts +0 -0
@@ -38,11 +38,13 @@ function maxTokenFallbackClaude(option) {
38
38
  return modelOptions.max_tokens;
39
39
  }
40
40
  else {
41
+ const thinking_budget = modelOptions?.thinking_budget_tokens ?? 0;
42
+ let maxSupportedTokens = (0, core_1.getMaxTokensLimitBedrock)(option.model) ?? 8192; // Should always return a number for claude, 8192 is to satisfy the TypeScript type checker;
41
43
  // Fallback to the default max tokens limit for the model
42
- if (option.model.includes('claude-3-7-sonnet') && (modelOptions?.thinking_budget_tokens ?? 0) < 64000) {
43
- return 64000; // Claude 3.7 can go up to 128k with a beta header, but when no max tokens is specified, we default to 64k.
44
+ if (option.model.includes('claude-3-7-sonnet') && (modelOptions?.thinking_budget_tokens ?? 0) < 48000) {
45
+ maxSupportedTokens = 64000; // Claude 3.7 can go up to 128k with a beta header, but when no max tokens is specified, we default to 64k.
44
46
  }
45
- return (0, core_1.getMaxTokensLimitBedrock)(option.model) ?? 8192; // Should always return a number for claude, 8192 is to satisfy the TypeScript type checker
47
+ return Math.min(16000 + thinking_budget, maxSupportedTokens); // Cap to 16k, to avoid taking up too much context window and quota.
46
48
  }
47
49
  }
48
50
  class BedrockDriver extends core_1.AbstractDriver {
@@ -82,7 +84,7 @@ class BedrockDriver extends core_1.AbstractDriver {
82
84
  }
83
85
  return await (0, converse_js_1.formatConversePrompt)(segments, opts);
84
86
  }
85
- static getExtractedExecution(result, _prompt, options) {
87
+ getExtractedExecution(result, _prompt, options) {
86
88
  let resultText = "";
87
89
  let reasoning = "";
88
90
  if (result.output?.message?.content) {
@@ -91,9 +93,9 @@ class BedrockDriver extends core_1.AbstractDriver {
91
93
  if (content.text) {
92
94
  resultText += content.text;
93
95
  }
94
- // Get reasoning content only if include_thoughts is true
95
- if (content.reasoningContent && options) {
96
- const claudeOptions = options.model_options;
96
+ else if (content.reasoningContent) {
97
+ // Get reasoning content only if include_thoughts is true
98
+ const claudeOptions = options?.model_options;
97
99
  if (claudeOptions?.include_thoughts) {
98
100
  if (content.reasoningContent.reasoningText) {
99
101
  reasoning += content.reasoningContent.reasoningText.text;
@@ -104,6 +106,14 @@ class BedrockDriver extends core_1.AbstractDriver {
104
106
  reasoning += `[Redacted thinking: ${redactedData}]`;
105
107
  }
106
108
  }
109
+ else {
110
+ this.logger.info("[Bedrock] Not outputting reasoning content as include_thoughts is false");
111
+ }
112
+ }
113
+ else {
114
+ // Get content block type
115
+ const type = Object.keys(content).find(key => key !== '$unknown' && content[key] !== undefined);
116
+ this.logger.info("[Bedrock] Unsupported content response type:", type);
107
117
  }
108
118
  }
109
119
  // Add spacing if we have reasoning content
@@ -112,7 +122,7 @@ class BedrockDriver extends core_1.AbstractDriver {
112
122
  }
113
123
  }
114
124
  const completionResult = {
115
- result: reasoning + resultText,
125
+ result: reasoning + resultText ? [{ type: "text", value: reasoning + resultText }] : [],
116
126
  token_usage: {
117
127
  prompt: result.usage?.inputTokens,
118
128
  result: result.usage?.outputTokens,
@@ -123,7 +133,7 @@ class BedrockDriver extends core_1.AbstractDriver {
123
133
  return completionResult;
124
134
  }
125
135
  ;
126
- static getExtractedStream(result, _prompt, options) {
136
+ getExtractedStream(result, _prompt, options) {
127
137
  let output = "";
128
138
  let reasoning = "";
129
139
  let stop_reason = "";
@@ -158,8 +168,15 @@ class BedrockDriver extends core_1.AbstractDriver {
158
168
  else if (delta.reasoningContent.signature) {
159
169
  // Handle signature updates for reasoning content - end of thinking
160
170
  reasoning = "\n\n";
171
+ // Putting logging here so it only triggers once.
172
+ this.logger.info("[Bedrock] Not outputting reasoning content as include_thoughts is false");
161
173
  }
162
174
  }
175
+ else if (delta) {
176
+ // Get content block type
177
+ const type = Object.keys(delta).find(key => key !== '$unknown' && delta[key] !== undefined);
178
+ this.logger.info("[Bedrock] Unsupported content response type:", type);
179
+ }
163
180
  }
164
181
  // Handle content block stop events
165
182
  if (result.contentBlockStop) {
@@ -180,7 +197,7 @@ class BedrockDriver extends core_1.AbstractDriver {
180
197
  };
181
198
  }
182
199
  const completionResult = {
183
- result: reasoning + output,
200
+ result: reasoning + output ? [{ type: "text", value: reasoning + output }] : [],
184
201
  token_usage: token_usage,
185
202
  finish_reason: converseFinishReason(stop_reason),
186
203
  };
@@ -275,25 +292,23 @@ class BedrockDriver extends core_1.AbstractDriver {
275
292
  modelId: prompt.modelId,
276
293
  });
277
294
  let tool_use = undefined;
278
- //Get tool requests
279
- if (res.stopReason == "tool_use") {
280
- tool_use = res.output?.message?.content?.reduce((tools, c) => {
281
- if (c.toolUse) {
282
- tools.push({
283
- tool_name: c.toolUse.name ?? "",
284
- tool_input: c.toolUse.input,
285
- id: c.toolUse.toolUseId ?? "",
286
- });
287
- }
288
- return tools;
289
- }, []);
290
- //If no tools were used, set to undefined
291
- if (tool_use && tool_use.length == 0) {
292
- tool_use = undefined;
295
+ //Get tool requests, we check tool use regardless of finish reason, as you can hit length and still get a valid response.
296
+ tool_use = res.output?.message?.content?.reduce((tools, c) => {
297
+ if (c.toolUse) {
298
+ tools.push({
299
+ tool_name: c.toolUse.name ?? "",
300
+ tool_input: c.toolUse.input,
301
+ id: c.toolUse.toolUseId ?? "",
302
+ });
293
303
  }
304
+ return tools;
305
+ }, []);
306
+ //If no tools were used, set to undefined
307
+ if (tool_use && tool_use.length == 0) {
308
+ tool_use = undefined;
294
309
  }
295
310
  const completion = {
296
- ...BedrockDriver.getExtractedExecution(res, prompt, options),
311
+ ...this.getExtractedExecution(res, prompt, options),
297
312
  original_response: options.include_original_response ? res : undefined,
298
313
  conversation: conversation,
299
314
  tool_use: tool_use,
@@ -311,10 +326,10 @@ class BedrockDriver extends core_1.AbstractDriver {
311
326
  throw new Error("[Bedrock] Stream not found in response");
312
327
  }
313
328
  return (0, async_1.transformAsyncIterator)(stream, (streamSegment) => {
314
- return BedrockDriver.getExtractedStream(streamSegment, prompt, options);
329
+ return this.getExtractedStream(streamSegment, prompt, options);
315
330
  });
316
331
  }).catch((err) => {
317
- this.logger.error("[Bedrock] Failed to stream", err);
332
+ this.logger.error("[Bedrock] Failed to stream", { error: err });
318
333
  throw err;
319
334
  });
320
335
  }
@@ -361,7 +376,6 @@ class BedrockDriver extends core_1.AbstractDriver {
361
376
  else if (options.model.includes("mistral")) {
362
377
  //7B instruct and 8x7B instruct
363
378
  if (options.model.includes("7b")) {
364
- supportsJSONPrefill = true;
365
379
  additionalField = { top_k: model_options.top_k };
366
380
  //Does not support system messages
367
381
  if (prompt.system && prompt.system?.length != 0) {
@@ -424,10 +438,16 @@ class BedrockDriver extends core_1.AbstractDriver {
424
438
  else if (options.model.includes("deepseek")) {
425
439
  //DeepSeek models support no additional options
426
440
  }
441
+ else if (options.model.includes("gpt-oss")) {
442
+ const gptOssOptions = model_options;
443
+ additionalField = {
444
+ reasoning_effort: gptOssOptions?.reasoning_effort,
445
+ };
446
+ }
427
447
  //If last message is "```json", add corresponding ``` as a stop sequence.
428
448
  if (prompt.messages && prompt.messages.length > 0) {
429
449
  if (prompt.messages[prompt.messages.length - 1].content?.[0].text === "```json") {
430
- let stopSeq = model_options.stop_sequence;
450
+ const stopSeq = model_options.stop_sequence;
431
451
  if (!stopSeq) {
432
452
  model_options.stop_sequence = ["```"];
433
453
  }
@@ -456,8 +476,8 @@ class BedrockDriver extends core_1.AbstractDriver {
456
476
  ...additionalField,
457
477
  }
458
478
  };
459
- //Only add tools if they are defined
460
- if (tool_defs) {
479
+ //Only add tools if they are defined and not empty
480
+ if (tool_defs?.length) {
461
481
  request.toolConfig = {
462
482
  tools: tool_defs,
463
483
  };
@@ -489,12 +509,13 @@ class BedrockDriver extends core_1.AbstractDriver {
489
509
  });
490
510
  const decoder = new TextDecoder();
491
511
  const body = decoder.decode(res.body);
492
- const result = JSON.parse(body);
512
+ const bedrockResult = JSON.parse(body);
493
513
  return {
494
- error: result.error,
495
- result: {
496
- images: result.images,
497
- }
514
+ error: bedrockResult.error,
515
+ result: bedrockResult.images.map((image) => ({
516
+ type: "image",
517
+ value: image
518
+ }))
498
519
  };
499
520
  }
500
521
  async startTraining(dataset, options) {
@@ -587,7 +608,7 @@ class BedrockDriver extends core_1.AbstractDriver {
587
608
  if (foundationFilter) {
588
609
  foundationModels = foundationModels.filter(foundationFilter);
589
610
  }
590
- const supportedPublishers = ["amazon", "anthropic", "cohere", "ai21", "mistral", "meta", "deepseek", "writer"];
611
+ const supportedPublishers = ["amazon", "anthropic", "cohere", "ai21", "mistral", "meta", "deepseek", "writer", "openai"];
591
612
  const unsupportedModelsByPublisher = {
592
613
  amazon: ["titan-image-generator", "nova-reel", "nova-sonic", "rerank"],
593
614
  anthropic: [],
@@ -597,6 +618,7 @@ class BedrockDriver extends core_1.AbstractDriver {
597
618
  meta: [],
598
619
  deepseek: [],
599
620
  writer: [],
621
+ openai: [],
600
622
  };
601
623
  // Helper function to check if model should be filtered out
602
624
  const shouldIncludeModel = (modelId, providerName) => {
@@ -626,7 +648,6 @@ class BedrockDriver extends core_1.AbstractDriver {
626
648
  id: m.modelArn ?? m.modelId,
627
649
  name: `${m.providerName} ${m.modelName}`,
628
650
  provider: this.provider,
629
- //description: ``,
630
651
  owner: m.providerName,
631
652
  can_stream: m.responseStreamingSupported ?? false,
632
653
  input_modalities: m.inputModalities ? formatAmazonModalities(m.inputModalities) : (0, core_1.modelModalitiesToArray)(modelCapability.input),
@@ -646,6 +667,7 @@ class BedrockDriver extends core_1.AbstractDriver {
646
667
  id: m.modelArn,
647
668
  name: m.modelName ?? m.modelArn,
648
669
  provider: this.provider,
670
+ owner: "custom",
649
671
  description: `Custom model from ${m.baseModelName}`,
650
672
  is_custom: true,
651
673
  input_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.input),
@@ -679,6 +701,7 @@ class BedrockDriver extends core_1.AbstractDriver {
679
701
  id: p.inferenceProfileArn ?? p.inferenceProfileId,
680
702
  name: p.inferenceProfileName ?? p.inferenceProfileArn,
681
703
  provider: this.provider,
704
+ owner: providerName,
682
705
  input_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.input),
683
706
  output_modalities: (0, core_1.modelModalitiesToArray)(modelCapability.output),
684
707
  tool_support: modelCapability.tool_support,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bedrock/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GroqDriver = void 0;
7
7
  const core_1 = require("@llumiverse/core");
8
8
  const async_1 = require("@llumiverse/core/async");
9
- const formatters_1 = require("@llumiverse/core/formatters");
9
+ const openai_format_js_1 = require("../openai/openai_format.js");
10
10
  const groq_sdk_1 = __importDefault(require("groq-sdk"));
11
11
  class GroqDriver extends core_1.AbstractDriver {
12
12
  static PROVIDER = "groq";
@@ -40,24 +40,146 @@ class GroqDriver extends core_1.AbstractDriver {
40
40
  return undefined;
41
41
  }
42
42
  async formatPrompt(segments, opts) {
43
- const messages = (0, formatters_1.formatOpenAILikeTextPrompt)(segments);
44
- //Add JSON instruction is schema is provided
45
- if (opts.result_schema) {
46
- messages.push({
47
- role: "user",
48
- content: "IMPORTANT: " + (0, formatters_1.getJSONSafetyNotice)(opts.result_schema)
49
- });
43
+ // Use OpenAI's multimodal formatter as base then convert to Groq types
44
+ const openaiMessages = await (0, openai_format_js_1.formatOpenAILikeMultimodalPrompt)(segments, {
45
+ ...opts,
46
+ multimodal: true,
47
+ });
48
+ // Convert OpenAI ChatCompletionMessageParam[] to Groq ChatCompletionMessageParam[]
49
+ // Handle differences between OpenAI and Groq SDK types
50
+ const groqMessages = openaiMessages.map(msg => {
51
+ // Handle OpenAI developer messages - convert to system messages for Groq
52
+ if (msg.role === 'developer' || msg.role === 'system') {
53
+ const systemMsg = {
54
+ role: 'system',
55
+ content: Array.isArray(msg.content)
56
+ ? msg.content.map(part => part.text).join('\n')
57
+ : msg.content,
58
+ // Preserve name if present
59
+ ...(msg.name && { name: msg.name })
60
+ };
61
+ return systemMsg;
62
+ }
63
+ // Handle user messages - filter content parts to only supported types
64
+ if (msg.role === 'user') {
65
+ let content = undefined;
66
+ if (typeof msg.content === 'string') {
67
+ content = msg.content;
68
+ }
69
+ else if (Array.isArray(msg.content)) {
70
+ // Filter to only text and image_url parts that Groq supports
71
+ const supportedParts = msg.content.filter(part => part.type === 'text' || part.type === 'image_url').map(part => {
72
+ if (part.type === 'text') {
73
+ return { type: 'text', text: part.text };
74
+ }
75
+ else if (part.type === 'image_url') {
76
+ return {
77
+ type: 'image_url',
78
+ image_url: {
79
+ url: part.image_url.url,
80
+ ...(part.image_url.detail && { detail: part.image_url.detail })
81
+ }
82
+ };
83
+ }
84
+ return null;
85
+ }).filter(Boolean);
86
+ content = supportedParts.length > 0 ? supportedParts : 'Content not supported';
87
+ }
88
+ const userMsg = {
89
+ role: 'user',
90
+ content: content ?? "",
91
+ // Preserve name if present
92
+ ...(msg.name && { name: msg.name })
93
+ };
94
+ return userMsg;
95
+ }
96
+ // Handle assistant messages - handle content arrays if needed
97
+ if (msg.role === 'assistant') {
98
+ const assistantMsg = {
99
+ role: 'assistant',
100
+ content: Array.isArray(msg.content)
101
+ ? msg.content.map(part => 'text' in part ? part.text : '').filter(Boolean).join('\n') || null
102
+ : msg.content,
103
+ // Preserve other assistant message properties
104
+ ...(msg.tool_calls && { tool_calls: msg.tool_calls }),
105
+ ...(msg.name && { name: msg.name })
106
+ };
107
+ return assistantMsg;
108
+ }
109
+ // For tool and function messages, they should be compatible
110
+ if (msg.role === 'tool') {
111
+ const toolMsg = {
112
+ role: 'tool',
113
+ tool_call_id: msg.tool_call_id,
114
+ content: Array.isArray(msg.content)
115
+ ? msg.content.map(part => part.text).join('\n')
116
+ : msg.content
117
+ };
118
+ return toolMsg;
119
+ }
120
+ if (msg.role === 'function') {
121
+ const functionMsg = {
122
+ role: 'function',
123
+ name: msg.name,
124
+ content: msg.content
125
+ };
126
+ return functionMsg;
127
+ }
128
+ // Fallback - should not reach here but provides type safety
129
+ throw new Error(`Unsupported message role: ${msg.role}`);
130
+ });
131
+ return groqMessages;
132
+ }
133
+ getToolDefinitions(tools) {
134
+ if (!tools || tools.length === 0) {
135
+ return undefined;
136
+ }
137
+ return tools.map(tool => ({
138
+ type: 'function',
139
+ function: {
140
+ name: tool.name,
141
+ description: tool.description,
142
+ parameters: tool.input_schema,
143
+ }
144
+ }));
145
+ }
146
+ extractToolUse(message) {
147
+ if (!message.tool_calls || message.tool_calls.length === 0) {
148
+ return undefined;
50
149
  }
51
- return messages;
150
+ return message.tool_calls.map((toolCall) => ({
151
+ id: toolCall.id,
152
+ tool_name: toolCall.function.name,
153
+ tool_input: JSON.parse(toolCall.function.arguments || '{}'),
154
+ }));
155
+ }
156
+ sanitizeMessagesForGroq(messages) {
157
+ return messages.map(message => {
158
+ // Remove any reasoning field from message objects
159
+ const { reasoning, ...sanitizedMessage } = message;
160
+ // If message has content array, filter out reasoning content types
161
+ if (Array.isArray(sanitizedMessage.content)) {
162
+ sanitizedMessage.content = sanitizedMessage.content.filter((part) => {
163
+ // Filter out any reasoning-related content parts
164
+ return part.type !== 'reasoning' && !('reasoning' in part);
165
+ });
166
+ }
167
+ return sanitizedMessage;
168
+ });
52
169
  }
53
170
  async requestTextCompletion(messages, options) {
54
171
  if (options.model_options?._option_id !== "text-fallback" && options.model_options?._option_id !== "groq-deepseek-thinking") {
55
172
  this.logger.warn("Invalid model options", { options: options.model_options });
56
173
  }
57
174
  options.model_options = options.model_options;
175
+ // Update conversation with current messages
176
+ let conversation = updateConversation(options.conversation, messages);
177
+ // Filter out any reasoning content that Groq doesn't support
178
+ conversation = this.sanitizeMessagesForGroq(conversation);
179
+ const tools = this.getToolDefinitions(options.tools);
58
180
  const res = await this.client.chat.completions.create({
59
181
  model: options.model,
60
- messages: messages,
182
+ messages: conversation,
61
183
  max_completion_tokens: options.model_options?.max_tokens,
62
184
  temperature: options.model_options?.temperature,
63
185
  top_p: options.model_options?.top_p,
@@ -66,18 +188,29 @@ class GroqDriver extends core_1.AbstractDriver {
66
188
  presence_penalty: options.model_options?.presence_penalty,
67
189
  frequency_penalty: options.model_options?.frequency_penalty,
68
190
  response_format: this.getResponseFormat(options),
191
+ tools: tools,
69
192
  });
70
193
  const choice = res.choices[0];
71
194
  const result = choice.message.content;
195
+ // Extract tool use from the response
196
+ const tool_use = this.extractToolUse(choice.message);
197
+ // Update conversation with the response
198
+ conversation = updateConversation(conversation, [choice.message]);
199
+ let finish_reason = choice.finish_reason;
200
+ if (tool_use && tool_use.length > 0) {
201
+ finish_reason = "tool_calls";
202
+ }
72
203
  return {
73
- result: result,
204
+ result: result ? [{ type: "text", value: result }] : [],
74
205
  token_usage: {
75
206
  prompt: res.usage?.prompt_tokens,
76
207
  result: res.usage?.completion_tokens,
77
208
  total: res.usage?.total_tokens,
78
209
  },
79
- finish_reason: choice.finish_reason,
210
+ finish_reason: finish_reason,
80
211
  original_response: options.include_original_response ? res : undefined,
212
+ conversation,
213
+ tool_use,
81
214
  };
82
215
  }
83
216
  async requestTextCompletionStream(messages, options) {
@@ -85,9 +218,14 @@ class GroqDriver extends core_1.AbstractDriver {
85
218
  this.logger.warn("Invalid model options", { options: options.model_options });
86
219
  }
87
220
  options.model_options = options.model_options;
221
+ // Update conversation with current messages
222
+ let conversation = updateConversation(options.conversation, messages);
223
+ // Filter out any reasoning content that Groq doesn't support
224
+ conversation = this.sanitizeMessagesForGroq(conversation);
225
+ const tools = this.getToolDefinitions(options.tools);
88
226
  const res = await this.client.chat.completions.create({
89
227
  model: options.model,
90
- messages: messages,
228
+ messages: conversation,
91
229
  max_completion_tokens: options.model_options?.max_tokens,
92
230
  temperature: options.model_options?.temperature,
93
231
  top_p: options.model_options?.top_p,
@@ -96,16 +234,25 @@ class GroqDriver extends core_1.AbstractDriver {
96
234
  presence_penalty: options.model_options?.presence_penalty,
97
235
  frequency_penalty: options.model_options?.frequency_penalty,
98
236
  stream: true,
237
+ tools: tools,
238
+ });
239
+ return (0, async_1.transformAsyncIterator)(res, (chunk) => {
240
+ const choice = chunk.choices[0];
241
+ let finish_reason = choice.finish_reason;
242
+ // Check for tool calls in the delta
243
+ if (choice.delta.tool_calls && choice.delta.tool_calls.length > 0) {
244
+ finish_reason = "tool_calls";
245
+ }
246
+ return {
247
+ result: choice.delta.content ? [{ type: "text", value: choice.delta.content }] : [],
248
+ finish_reason: finish_reason,
249
+ token_usage: {
250
+ prompt: chunk.x_groq?.usage?.prompt_tokens,
251
+ result: chunk.x_groq?.usage?.completion_tokens,
252
+ total: chunk.x_groq?.usage?.total_tokens,
253
+ },
254
+ };
99
255
  });
100
- return (0, async_1.transformAsyncIterator)(res, (res) => ({
101
- result: res.choices[0].delta.content ?? '',
102
- finish_reason: res.choices[0].finish_reason,
103
- token_usage: {
104
- prompt: res.x_groq?.usage?.prompt_tokens,
105
- result: res.x_groq?.usage?.completion_tokens,
106
- total: res.x_groq?.usage?.total_tokens,
107
- },
108
- }));
109
256
  }
110
257
  async listModels() {
111
258
  const models = await this.client.models.list();
@@ -134,4 +281,13 @@ class GroqDriver extends core_1.AbstractDriver {
134
281
  }
135
282
  }
136
283
  exports.GroqDriver = GroqDriver;
284
+ /**
285
+ * Update the conversation messages by combining existing conversation with new messages
286
+ * @param conversation Existing conversation messages
287
+ * @param messages New messages to add
288
+ * @returns Combined conversation
289
+ */
290
+ function updateConversation(conversation, messages) {
291
+ return (conversation || []).concat(messages);
292
+ }
137
293
  //# sourceMappingURL=index.js.map